48
Proceso de desarrollo de SoftWare Ciclo de Vida y Metodologías

Lenguajes de programación parte i.3

Embed Size (px)

DESCRIPTION

UpMor - Parte III - Metodologías de Programación - Metodología para desarrollo para el curso UpMor

Citation preview

Page 1: Lenguajes de programación parte i.3

Proceso de desarrollo de SoftWareCiclo de Vida y Metodologías

Page 2: Lenguajes de programación parte i.3

Producto: Resultadode Cada étapa

Procedimiento:Definición de la formade ejecutar la tarea.

Tarea: Actividadeselementales en que

se dividen losprocesos.

Metodologías deDesarrollo de

SoftWare

Herramienta:Softwarede aplicación que a través

de una técnica o unlenguaje se obtiene

código fuente.

Proceso:Se denominaproceso al conjunto de

acciones oactividades

sistematizadas que serealizan o tienen lugar

con un fin

Metodología: Conjuntode procedimientos,

Técnicas, Herramientas yun soporte documental

que ayuda a losdesarrolladores a realizar

un nuevo software

Definiciones

Programa:Conjunto de instrucciones escritas en un lenguaje de programación que indican a la computadora la secuencia de pasos para resolver un problema.

Page 3: Lenguajes de programación parte i.3

Ciclo de Vida

Page 4: Lenguajes de programación parte i.3

Ciclo de vida

Page 5: Lenguajes de programación parte i.3

Una metodología puede seguir uno o varios modelos de ciclo de vida, es decir, el ciclo de vida indica qué es lo que hay que obtener a lo largo del desarrollo del

proyecto pero no cómo hacerlo.La metodología indica cómo hay que

obtener los distintos productos parciales yFinales.

Metodología Vs Ciclo de Vida

Page 6: Lenguajes de programación parte i.3

Elementos deun buen

desarrollo

Metodologíaen el ciclo de

vida delproducto

ProcesoAdministrativo

Comunicación yGestión de proyecto

ApoyoTecnológico -Herramientas

Soportey

mantenimiento

Documentación deproceso

Elementos a considerar en el ciclo de vida

Page 7: Lenguajes de programación parte i.3

Ingeniería deSoftware

Herramientas Case,Herramientas de

Diseño,Herramientas Tipo

Visual

Reingeniería deSoftware

Metodologías deDesarrollo de

SoftWare

Tiempo Real

Modelo Estructurado

Modelo Orientado aObjetos

Modelo Convencional

Técnicas deDiseño

Técnicas deNormalizaciónTécnicas deAnálisis yDiseño

METODOLOGÍAS ESTRATEGIAS DE DESARROLLO

Metodologías y Modelos

Page 8: Lenguajes de programación parte i.3

Proceso de Desarrollo del Ciclo de Vida de Software

ConvencionalLos resultados no son exactos,

impredicibles, sujeto a cambios,falta de coordinación y

comunicación.Mala organización, planeación y

control (ProcesoAdministrativo).

EstructuradoProgramación estructurada,diseño estructurado, Análisisestructurado, Especificaciones

funcionales, técnicas ysimbología.

Redeundancia mínima.Orientado a Procesos.

Especificación estruturada(diagrama de flujo, diccionario

de datos y especifcación deprocesos).

Orientad a Objetosidentificación de clases,

Herencias y eventosReutilización de componentes.Incorporación de bibliotecas de

clases.Sudivisión del sistema en varios

subsistemas independientes.

Tiempo RealManejo de Interrupciones

Comunicación y sincronizaciónentre tareas.

Gestión de procesosconcurrentes

Respuesta oportuna entreeventos externos.

Datos continuos o discretos

Tipo de Metodologías

Page 9: Lenguajes de programación parte i.3

Programación Estructurada

Page 10: Lenguajes de programación parte i.3

Programación Estructurada

Page 11: Lenguajes de programación parte i.3

Construcciones

Page 12: Lenguajes de programación parte i.3

Trabajo en Equipo

Page 13: Lenguajes de programación parte i.3

Problemas que se enfrenta la PE

Ejemplo: Nueva sede del Senado, Antulio, Colonos, PeopleSoft, manuales, .net, administración de proyectos, paradigmas, certificación, actitud personal,bomberazos, parches, “esto urge”, el cliente es 1ero….Proceso Administrativo

Problemas a los que se enfrenta laPE

Page 14: Lenguajes de programación parte i.3

Fase tradicional de desarrollo

Page 15: Lenguajes de programación parte i.3

Metodología James Martin

Page 16: Lenguajes de programación parte i.3

Metodología Yourdan

Page 17: Lenguajes de programación parte i.3
Page 18: Lenguajes de programación parte i.3

Metodología Jackson

Page 19: Lenguajes de programación parte i.3

Metodología Merise

Page 20: Lenguajes de programación parte i.3

Metodología SSADM

Page 21: Lenguajes de programación parte i.3

Metodología SSADM

Page 22: Lenguajes de programación parte i.3

Desarrollo Case

Page 23: Lenguajes de programación parte i.3

Metodologías

Page 24: Lenguajes de programación parte i.3
Page 25: Lenguajes de programación parte i.3

Metodología Propuesta(Resumen Programación Estructurada)

Técnicas Top-Down CodificaciónAlgoritmos

Diagrama de FlujosPseudocódigo

Elementos de Calidad

Documentar todas las étapas

Page 26: Lenguajes de programación parte i.3

Metodología Modelo Estudio de Viabilidad Estudio Preliminar

Planteamiento del ProblemaAntecedentesObjetivosAlcances

Page 27: Lenguajes de programación parte i.3

Análisis Lógico oAnálisis Funcional

Diseño Físico yRealización

Documento de RequerimientosDocumento de FuncionalidadDiagrama de flujo

AlgoritmosDiagrama de flujo

Page 28: Lenguajes de programación parte i.3

Continuación…Diseño Físico yRealización

Diseño Top-Dow• Manual de Usuario.• Manual Técnico.• Informe de Pruebas.

Page 29: Lenguajes de programación parte i.3

Puesta en Marcha oImplantación

Explotación y Mtto

Page 30: Lenguajes de programación parte i.3

Diseño Top-Down Técnicas

Técnicas más conocidasTopDown (diseño descendente).BottonUpWarnierOff

Con el objeto de facilitar el diseño de algoritmos y la organización de los divesos elementos de los que se comopne se ututilizan algunas tecnicas que muestran una metodoslo a se seguir para resolver prolemas. Estas tecnicas hacen que los programas sean mas fáciles de escribir, verificar, leer y mantener.

Page 31: Lenguajes de programación parte i.3

TopDownTopDown Es una técnica para diseñar que consiste en tomar el problema en forma

inicial como una cuestiuon global y descomponerlo sucesivamente en problemas más pequeños y por lo tanto entender la solución de una forma más sencilla.

La descomposición del problema original (y de las etapas subsecuentes), puede detenerse cuandos los probnlemas resultantes alcanzan un nivel de detalle que el programado o analista puede implmentar fácilmente.

El problema se descompone en etapas o estructuras jerárquicas de modo que se puede considerar cada estructura como dos putnso de vista, lo que hace y como se hace.

Page 32: Lenguajes de programación parte i.3

Diseño Top-Down

Page 33: Lenguajes de programación parte i.3

Diseño Top-Down

Page 34: Lenguajes de programación parte i.3

Diseño Top-Down

Page 35: Lenguajes de programación parte i.3

Diseño Top-Down

Page 36: Lenguajes de programación parte i.3

Ciclo de vida

Page 37: Lenguajes de programación parte i.3

Elementos de Calidad en el Desarrollo Software

Page 38: Lenguajes de programación parte i.3

CodificaciónCodificación Es la obtención de un programa fuente definitivo que será comprensible para la máquina.

Una vez codificado el programa deberá seguir la etapa de compilación (o bien con interprete). El diseño se transcribe a código.

Diseño

Codifcación

Compilación

Link

.exe

Concepto de Codificación

Page 39: Lenguajes de programación parte i.3

Codificación

Page 40: Lenguajes de programación parte i.3

Codificación

Page 41: Lenguajes de programación parte i.3

Técnica de algoritmos

Page 42: Lenguajes de programación parte i.3

Un algoritmo es un conjunto de reglas que determinan la secuencia de las operaciones a seguir para resolver un problema específico y que cumple con las siguientes cinco características:

1) Finitud: Un algoritmo debe terminar después de ejecutar un número finito de pasos.2) Definición: Cada paso en un algoritmo debe estar definido con precisión, esto es, la acción a seguir no debe ser ambigua, sino rigurosamente especificada. UN algoritmo descrito en un lenguaje como inglés o español, en el cual una misma palabra puede significar varias cosas, puede no cumplir con este punto. Es por eso que se han definido los lenguajes de programación o lenguajes de computación para especificar algoritmos, ya que en ellos el significado de cada palabra es uno y sólo uno.3) Entrada: Se considera como entrada el conjunto de datos o información requerida para resolver un problema dado. No cualquier grupo de datos se puede considerar como entrada en el procedimiento señalado.4) Salida: La salida es un conjunto de resultados que se obtienen al aplicar el algoritmo al conjunto de datos de entrada.5) Efectividad: Un algoritmo debe llevar a la solución del problema planteado, en otras palabras, se puede decir que todas las operaciones que efectúa el algoritmo, deben ser lo suficientemente simples para que en principio, se puedan ejecutar con papel y lápiz y al final obtener el resultado deseado.

Lenguaje de Algoritmo; AlgoritmoLenguaje de Algoritmo; Algoritmo

¿Papá que usaban en la escuela?

Page 43: Lenguajes de programación parte i.3

AlgoritmosAlgoritmosEn la práctica, un algoritmo es un método para resolver problemas mediante los pasos o etapas siguientes:

1. Diseño del algoritmo que describe la secuencia ordenada de pasos —sin ambigüedades— conduncentes a la solución de un problema dado (Análisis del problema y desarrollo del algoritmo).

2. Expresar el algoritmo como un programa en un lenguaje de programación adecuado. (Fase de codificación).

3. Ejecución y validación del programa por la computadora.

Para llegar a la realización de un programa es necesario el diseño previo de un algoritmo indicando cómo hace el algoritmo la tarea solicitada, y eso se traduce en la construcción de un algoritmo. El resultado final del diseño es una solución que debe ser fácil de traducir a estructuras de datos y estructuras de control de un lenguaje de programación específico.

Las dos herramientas más comúnmente utilizadas para diseñar algoritmos son: diagramas de flujo y pseudocódigos.

• Diagrama de flujo (flowchart). Representación gráfica de un algoritmo.• Pseudocódigo. Lenguaje de especificación de algoritmos, mediante palabras similares al inglés o español

Page 44: Lenguajes de programación parte i.3

44

Algoritmos cotidianosAlgoritmos cotidianos

Aquellos algoritmos que nos ayudan a resolver problemas diarios y seguimos una metodología para realizarlos.◦ Cambiar una llanta en el coche

◦ Inicio

◦ Traer Gato

◦ Levantar el coche con el gato

◦ Aflojar tornillos de las llantas

◦ Sacar los tornillos de las llantas

◦ Quitar la llanta

◦ Poner la llanta de respuesto

◦ Poner los tornillos

◦ Aoretar los tornillos Bajar gato

◦ Fin

Ejercicio: Un cliente realiza un pedido a una fabrica. La fabrica examina en su banco de datos la ficha del cliente, si el cliente es solvente entonces la empresa acepta el pedido, en caso contrario rechaza el pedido.

Ejercicio2: Determinar el mayor de 3 números enteros. Ejercicio 3: De un directorio telefónico determinar que empleados inician con la letra A.

Page 45: Lenguajes de programación parte i.3

Pasos del Algoritmo Ejemplo 1 Inicio

Examinar ficha del cliente Si el cliente es solvente se acepta pedido caso contrario se

rechaza.

Ejemplo 2 Inicio

Comparar el 1 y el 2do número para determinar cuál es mayor.

Comparar el mayor anterior con el 3ero y deducir cuál es el mayor.

Ejemplo3 Examinar primer registro y letra inicial de nombre. Si el nombre del registro n inicio con “A”; presentar

nombre. Salto de registro y repetir proceso hasta el último registro.

Page 46: Lenguajes de programación parte i.3

AnexoAnexo

Metodología básica para el desarrollo de una aplicación: Definición del problema. Requerimientos. Análisis de los datos. Diseño de la solución. Codificación. Prueba y depuración. Documentación. Mantenimiento.

COMUNICACIÓN

Page 47: Lenguajes de programación parte i.3

Metodologías para el desarrolloMetodologías para el desarrollo Definición del problema:

Es el planteamiento en base a la necesidad de lo que se requiere y se desea, desde un punto de vista operativo, claro y definido.

Requerimientos: Se especifican todas las necesidades del problema, desde los alcances, limitaciones,

crecimiento y operación. Análisis de los datos

Una vez que se cuenta con un documento de requerimientos se especifican las entradas/salidas deseadas a detalle. Los aspectos a analizar son:

Resultados esperados, Datos de entradas disponibles. Herramientas necesarias para el desarrollo (lenguajes de alto nvel, hardware,

software, administración, etc). Esta etapa debe analizar los tipos de datos de captura, resultados, interfaz, etc.

Diseño de la solución: Esta etapa incluye la descripción del algoritmo del programa, los diagramas de

flujo y pseudocódigo. En esta etapa se ve la solución del problema en forma conceptual.

Page 48: Lenguajes de programación parte i.3

Pruebas, depuración y documentaciónPruebas, depuración y documentación Pruebas y depuración.

Una vez que se obtiene el programa ejecutable, se instala y se realizan las pruebas en base a los requerimientos y análisis del programa.

Se deben introducir datos validos, no validos, incongruentes, saturar el sistema y ver su comportamiento.

El proceso de depuración consiste en encontrar inconsistencia, localizar errores y corregirlos en caso de que existan. Si no existen errores, puede entenderse la depuración como una etapa de refinamiento en la que se ajustan detalles para optimizar el desempeño del programa.

Documentación Se documenta todo el proceso de desarrollo, instrucciones de uso del programa y su

mantenimiento. La documentación debe estar dirigida al usuario final, al administrador y a los analistas

del programa. Mantenimiento

Se refiere a las actualizaciones que deben aplicarse al programa cuando las circunstancias asi lo requieran. Le programa puede ser modificable a nuevas condiciones de operación.