Clase 1
-
Upload
walter-chacon -
Category
Documents
-
view
48 -
download
0
Transcript of Clase 1
![Page 1: Clase 1](https://reader036.fdocuments.ec/reader036/viewer/2022081516/5571f99449795991698fecd8/html5/thumbnails/1.jpg)
13/01/2011
1
Parte1. Proceso de desarrollo de Software
Andrés Moya Brizuela
Enero, 2011
Universidad Metropolitana Castro Carazo
IN5034 Análisis y Diseño de Programas
Agenda
• Presentación de los colaboradores
• Revisión del paquete académico
• Proceso de desarrollo de software
¿Que queremos decir con proceso
de desarrollo de software?
Deseos,
necesidades,
Especificaciones,
…
SoftwareProceso
![Page 2: Clase 1](https://reader036.fdocuments.ec/reader036/viewer/2022081516/5571f99449795991698fecd8/html5/thumbnails/2.jpg)
13/01/2011
2
Introducción al proceso de
desarrollo.
• En general, cuando las personas abordan el
desarrollo de cualquier proyecto evolucionan
desde ideas abstractas hacia concreciones
realizables.
Normalmente el planteamiento es:
• Se debe desarrollar un sistema para un proceso
»Se elaboran las especificaciones
• En herramientas de desarrollo y base de datos
»Se realiza el diseño
• Aprobado el proyecto se procede a la
programación.
El grado de precisión con que se
lleve a cabo cada paso influirá en
el resultado
• El éxito del proyecto de desarrollo de software,
consiste principalmente, en que los entregables de
cada etapa de desarrollo se elaboren de manera
detallada y precisa.
• Además que sean totalmente interpetable por todos
los que participan en el desarrollo del proyecto,
incluyendo los interesados (stakeholders)
![Page 3: Clase 1](https://reader036.fdocuments.ec/reader036/viewer/2022081516/5571f99449795991698fecd8/html5/thumbnails/3.jpg)
13/01/2011
3
Ingeniería e Ingeniería del
Software
• ¿Dónde nos encontramos?
• ¿Qué hace un Ingeniero?
• Definiciones de Ingeniería del software
• Técnicas básicas utilizadas históricamente
¿Dónde nos encontramos?
• Lo ideal es que contemos con:
Técnicas de desarrollo que minimicen la complejidad de un
sistema software.
Métodos y conceptos que permitan al desarrollador y al
cliente explorar la naturaleza del sistema software, lo mas
pronto posible.
Técnicas que minimicen los efectos devastadores de las
modificaciones durante el desarrollo y la explotación.
¿Qué hace un Ingeniero?
• Construir artefactos dentro de unas limitaciones
de costos, utilizando el conocimiento y las teorías
científicas.
![Page 4: Clase 1](https://reader036.fdocuments.ec/reader036/viewer/2022081516/5571f99449795991698fecd8/html5/thumbnails/4.jpg)
13/01/2011
4
Definición de la ingeniería del
software (NATO „68)
• La ingeniería del software es el
establecimiento y uso de principios de
ingeniería razonables con el objetivo de
obtener software económicamente, que sea de
confianza y trabaje eficientemente en las
maquinas reales.
Definición
(R.E. Fairley 1985)
• Hemos definido la Ingeniería del Software como la
disciplina tecnológica concerniente a la producción y
mantenimiento sistemáticos de productos software
que son desarrollados y modificados en el tiempo y
con los costos estimados...
• Además, la Ingeniería del software tiene que ver con
cuestiones de gestión que caen fuera del dominio de
la programación tradicional.
Características de la ingeniería del
software (Van Vliet 1993)
• Construcción de programas grandes
• Controlar la complejidad
• Cooperación entre las personas implicadas
(stakeholders)
• Evolución del software
• Eficiencia en el desarrollo
• Soporte real a los usuarios
![Page 5: Clase 1](https://reader036.fdocuments.ec/reader036/viewer/2022081516/5571f99449795991698fecd8/html5/thumbnails/5.jpg)
13/01/2011
5
Modelo de la Ingeniería del software
(Thayer 1988)
AnalisisDiseñoCodificaciónPruebas
Desarrollo de Software
PlanificaciónOrganizaciónReclutamientoDirecciónControl
Gestión de proyectos
FiabilidadUsabilidadFlexibilidadMantenibilidadReusabilidadEtc.
Metricasdel software
Corrección de ErroresModificaciones
Mantenimiento de software
Ingenieríadel software
Técnicas básicas usadas en las
ingenierías
• Históricamente se han utilizado técnicas como:
– El modelado
– División del Producto
– División del Proceso
• En principio se deberían utilizar estas técnicas,
también en informática .
El modelado.
• Simplificación del objeto en el mundo real, pero
que es suficientemente realista como para dar
una idea de lo que ocurrirá en la realidad y
usarse como base del desarrollo.
![Page 6: Clase 1](https://reader036.fdocuments.ec/reader036/viewer/2022081516/5571f99449795991698fecd8/html5/thumbnails/6.jpg)
13/01/2011
6
División del Producto.
• Se fracciona el producto de modo que cada
fragmento lo puede realizar un miembro del
grupo de desarrollo.
División del Proceso.
• Implica dividir el desarrollo del artefacto por fases.
Normalmente se habla de especificación, diseño y
fabricación.
En el desarrollo de software nos
encontramos con la siguiente
situación
Ciclos de
Vida del
SOFTWARE
Metodologías de
Desarrollo del
SOFTWARE
![Page 7: Clase 1](https://reader036.fdocuments.ec/reader036/viewer/2022081516/5571f99449795991698fecd8/html5/thumbnails/7.jpg)
13/01/2011
7
Ciclo de Vida del Software
• Consiste en determinar:
las fases productivas de un proyecto,
los objetivos de cada fase productiva, y
los productos obtenidos en cada una de
estas fases así como sus características.
Ciclos de Vida del Software
Se han propuesto muchos ciclos de vida para el
desarrollo del software, pero estos son los más
representativos:
Ciclo de vida clásico o en cascada.
Construcción rápida de Prototipos Desechables
Incremental
Evolución de prototipos
Reutilización de Software
Síntesis automática de software
En espiral.
Ciclo de vida clásico o en cascada.
• La Versión Ideal (Perfecta)
• El Modelo en V
• El Modelo Real
• Propuesta de Yourdon
![Page 8: Clase 1](https://reader036.fdocuments.ec/reader036/viewer/2022081516/5571f99449795991698fecd8/html5/thumbnails/8.jpg)
13/01/2011
8
La Versión Ideal
Análisis
Diseño
ProgramaciónPruebas
Conversión
Producción y
mantenimiento
El Modelo en V
Identificación
de
requerimientos
Explotación
Especificación
esencialValidación
Especificación
físicaEmpaquetado
Programación
Diseño Integración
El Modelo Real
Identificación
de
requerimientos
Explotación
Especificación
esencialValidación
Especificación
físicaEmpaquetado
Programación
Diseño Integración
![Page 9: Clase 1](https://reader036.fdocuments.ec/reader036/viewer/2022081516/5571f99449795991698fecd8/html5/thumbnails/9.jpg)
13/01/2011
9
Propuesta de Yourdon
Requerimientos del Usuario
Encuesta
Análisis
Estudio
del HWNecesidades de
Rendimiento
Especificación
Funcional
Diseño
Preliminar
Especificación
del Sistema Diseño
Detallado
Configuración
Final
Especificaciones
de los Programas
Codificación Módulos
Codificados
Pruebas de
Unidad
Módulos
Probados
Pruebas de
Subsistemas
Subsistemas
Probados
Pruebas de
Sistema
Sistema
Probado
26
Construcción Rápida de Prototipos
Desechables
• Al igual que otras ingenierías se utilizan los
prototipos para que el cliente observe,
confirme y mejore el producto
– Este enfoque es apropiado cuando:
• El cliente no tiene claro lo que quiere,
• Al cliente le gustaría ver algo similar para
poder hacerse una idea de lo que
obtendrá
El ciclo de vida de Prototipos
Desechables es el siguiente:
Aceptado
NO Aceptado
Evaluación
Cliente
Mejora de la
Especificación
Construcción
PrototipoObtención
Especificación
Ciclo de
Vida
Clásico
Evaluación
del cliente
![Page 10: Clase 1](https://reader036.fdocuments.ec/reader036/viewer/2022081516/5571f99449795991698fecd8/html5/thumbnails/10.jpg)
13/01/2011
10
Existen dos clases de prototipos
• De INTERFACE
Usualmente un modelo de papel o sobre PC en el que se
muestran pantallas y listados.
• De COMPORTAMIENTO:
– Ofrece todos los menús del sistema y simula débilmente
los procesos.
– En profundidad. Cubre funciones que presentan
ambigüedades al cliente o a los informáticos.
– Completo pero de baja calidad y rendimiento.
Incremental
Requerimien
tos
Bloque
1
Bloque
N
Bloque
1
Bloque
N
oPermite el
desarrollo
concurrente
Requerimien
tos
DiseñoImplementa
ciónPruebas
Requerimien
tosDiseño
Implementa
ciónPruebas
DiseñoImplementa
ciónPruebas
DiseñoImplementa
ciónPruebas
30
Evolución de Prototipos
Observación
Requerimientos
Abstracción
Validación
Especificación
Verificación
Prototipo
Verificación
Experimentar
Validación
Empezamos por los
requerimientos más claros,
menos complejos y más
necesarios.
Prototipo rápido
![Page 11: Clase 1](https://reader036.fdocuments.ec/reader036/viewer/2022081516/5571f99449795991698fecd8/html5/thumbnails/11.jpg)
13/01/2011
11
Reutilización de Software
• Tiene como objetivos:
– reducir el coste del software.
– Producir sistemas de mayor calidad.
• Se basa en reutilizar Diseños, programas,
módulos y datos.
• Es compatible con el prototipo evolutivo.
Síntesis automática de
software
Requerimientos
Informales Análisis de
Requerimientos
Especificación
Formal (Prototipo)
Validación
Mantenimiento Optimización
Mecánica
Desarrollo
Formal
Ajuste
(tuning)
Programa
Fuete
Racionalidad
y Decisiones
En espiral.
Determinar objetivos,
alternativas, restricciones
Evaluar alternativas,
identificar y resolver
riesgos
Desarrollar, verificarPlanificar las próximas
fases
REVISIÓN
Acuerdo
![Page 12: Clase 1](https://reader036.fdocuments.ec/reader036/viewer/2022081516/5571f99449795991698fecd8/html5/thumbnails/12.jpg)
13/01/2011
12
Metodologías de Desarrollo del
Software
• Métodos informales
• Métodos Semiformales
• Métodos Formales
Métodos informales
• Joaquín Lucio-Villegas los clasifica como:
– Quick & Dirty (USA)
– Match stick box (Europa)
– Balones p'alante y maricón el último
Métodos Semiformales
• Métodos Estructurados
– SA/SD (structured analysis & structured
design)
– Métrica
• Métodos Orientados a Objetos
– OMT
– UML
![Page 13: Clase 1](https://reader036.fdocuments.ec/reader036/viewer/2022081516/5571f99449795991698fecd8/html5/thumbnails/13.jpg)
13/01/2011
13
PROCESOS DATOS
Métodos Estructurados
• Métodos Orientados a la Estructura de los
Datos
• Métodos de flujo de datos
Métodos Orientados a Objetos
• Los métodos orientados a objeto describen e
implementan los sistemas de información desde un
punto de vista ontológico.
Modelo de Construcción de
Prototipos
El desarrollador y el cliente deben ser conscientes de que el
prototipo se utiliza para precisar los requisitos del software y
así evitar inconvenientes como:
– El cliente cree que el prototipo es una primera versión
funcional del Sistema.
– El desarrollador construye el prototipo rápidamente y
en ocasiones sin hacer uso de la tecnología optima
disponible.
![Page 14: Clase 1](https://reader036.fdocuments.ec/reader036/viewer/2022081516/5571f99449795991698fecd8/html5/thumbnails/14.jpg)
13/01/2011
14
Modelo de Desarrollo Rápido de
Aplicaciones (DRA)
• Basado en el Modelo Lineal Secuencial
• Modelo llevado a cabo por varias equipos de trabajo que
siguen las etapas del proceso de manera simultanea.
• Modelo aplicable a la construcción de sistemas de
información fácilmente modularizables.
• El Modelo DRA necesita clientes y desarrolladores
comprometidos con el proceso.
• No es muy útil para aplicaciones que requieren adopción
de nuevas tecnologías porque la curva de aprendizaje
puede afectar el cronograma del proyecto.
Modelo de Desarrollo Rápido de
Aplicaciones (DRA)
Modelo de Métodos Formales
• El proceso de desarrollo se basa en la transformación matemática formal de la especificación del sistema a un programa ejecutable
• Facilita la verificación de programas a través de un riguroso análisis matemático.
• La ejecución de este tipo de modelos requiere mucho tiempo y esfuerzo.
• “Ingeniería de Software de Sala Limpia”
![Page 15: Clase 1](https://reader036.fdocuments.ec/reader036/viewer/2022081516/5571f99449795991698fecd8/html5/thumbnails/15.jpg)
13/01/2011
15
Modelo de Métodos Formales
• Ventaja: Consistencia!!!
• Desventaja: complejo, demanda mucho tiempo
Técnicas de cuarta generación
• Facilita al ingeniero desarrollador del software la especificación de las características del software a alto nivel, con el fin de generar automáticamente el código a partir de allí.
• Existencia de herramientas CASE (Computer Aide Software Engineering) Ingeniería de software asistida por computador
Algunos métodos de desarrollo
de software
• RUP
• CDM
• FDD
• XP
• UN-METODO
![Page 16: Clase 1](https://reader036.fdocuments.ec/reader036/viewer/2022081516/5571f99449795991698fecd8/html5/thumbnails/16.jpg)
13/01/2011
16
Muchas gracias
Andrés Moya Brizuela
Enero, 2011
Universidad Metropolitana Castro Carazo
Licenciatura en Ingeniería Informática
Calidad de software