Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingeneria de Sotware
Ingeneria de Sotware
Métodos
Herramientas
Consideraciones Generales:
Ciclo de Vida del Software
Modelos
Análisis Requerimientos
Prototipaje
1
Métodos para desarrollar software
Método del ciclo de vida clásico:
Actividades que son realizadas por el analista para desarrollar e implantar un
sistema.
Método de desarrollo por análisis estructurado:
Incorpora elementos tanto de análisis como de diseño.
Especifica lo que se requiere que haga el sistema o la aplicación.
Permite que las personas observen los elementos lógicos (lo que hará el sistema)
separados de los componentes físicos (computadora, terminales, sistemas de
almacenamiento, etc.).
Desarrolla un diseño físico eficiente para la situación donde será utilizado.
Es un método para el análisis de sistemas manuales o automatizados, que conduce
al desarrollo de especificaciones para sistemas nuevos o para efectuar
modificaciones a los ya existentes.
2
Métodos para desarrollar software
3
Herramientas para desarrollar software
Las herramientas de desarrollo de software diseñan y construyen
aplicaciones y dan soporte al desarrollo e implantación de las mismas.
1.Calidad del Software
Herramientas que tratan todos los aspectos de
la calidad de software: funcionalidad, fiabilidad
2. Construcción y Diseño
y rendimiento.
Herramientas para la arquitectura y el
modelado, el desarrollo dirigido por modelos,
componentes, verificación de componentes,
actividades de análisis de ejecución.
5. Requisitos y análisis
Herramientas integradas para la gestión de
requisitos, de desarrollo de casos de estudio,
los modelos de negocios y modelos de datos.
4
Herramientas para desarrollar software
Herramientas para análisis
Éstas herramientas ayudan a los especialistas en sistemas a documentar un
sistema existente, ya sea manual o automatizado. También sirve para
determinar los requerimientos de una nueva aplicación. Incluye:
Herramientas para recolección de datos: capturan detalles que
describen sistemas y procedimientos en uso. Documentan procesos y
actividades de decisión, se utilizan para apoyar la tarea de identificar
requerimientos.
Herramientas para diagramación: crean representaciones gráficas de
sistemas y actividades. Apoyan el dibujo y revisión de diagramas de flujos
de datos e iconos asociados con el análisis estructurado. Incluyen
programas para representación en diagramas de flujo.
5
Herramientas para desarrollar software
Herramientas CASE :(Computer Aided/Assisted Software/System Engineering) se
puede definir como:
“ el conjunto de herramientas y metodologías que soportan un enfoque de
ingeniería para las distintas fases del desarrollo de software”
En primer lugar se suele distinguir, atendiendo a la fase del ciclo de vida que
soportan, entre:
•CASE frontales ("front-end") o superiores ("Upper CASE"), abarcan las primeras
fases de análisis y diseño. Automatizan las primeras actividades del proceso de
desarrollo de sistemas. Esta herramienta proporciona soporte para el desarrollo de
modelos gráficos de sistemas y procesos. Los diagramas de flujo son representativos
de este tipo de herramientas.
•CASE dorsales ("back-end") o inferiores ("Lower CASE"), cuyo objetivo suele ser
el diseño detallado y la generación de código
Categorias de herramientas CASE mas frecuentes:
a)Herramientas de análisis y diseño
b) Generación de código y documentación
c)Herramientas de prueba
d)Herramientas de gestión de configuración
e) Herramientas de ingeniería inversa
Herramientas de prototipado:Como son los diseñadores de pantallas, generadores
6
de menús, generadores de informes y lenguajes de especificación ejecutables.
Actividades en el proceso de desarrollo de
software
Los modelos
encadenan las diversas
actividades
7
Actividades usuales
8
Acerca de las actividades
El método se fundamenta en
principios
Análisis del
problema
Liberación del
producto
Comprensión del
problema
Desarrollo del
software
11
Ciclo de vida del software
Transición
...casi siempre...!!
Mantenimiento
del producto
12
Obsolescencia del producto
13
Actividades – Modelos - Procesos
La cascada
Separa y secuencia las fases
Evolutivo
Especificación y desarrollo son intercalados
De transformaciones
Un modelo formal del sistema es transformado en otro
modelo de más bajo nivel de abstracción
Basado en reuso
El sistema es producto de ensamblaje de componentes
15
¿Cuál modelo han usado?
Análisis de
Requerimientos
Mantenimiento Diseño del
Sistema
Liberación
Diseño de
Programas
Validación
del Sistema
Integración Construcción
de Programas
Validación 16
de componentes
Modelo de la cascada
Análisis de
requerimientos
• Encadenamiento
secuencial de las Diseño
actividades
Implementación
• Cada etapa produce
documentos que son la Validación de
componentes
entrada a la siguiente
• Para desarrollar una etapa Integración y
validación del
debe concluirse la anterior sistema
• Popular en la década 70.
Liberación y
mantenimiento
17
Modelo de la cascada (cont.)
Análisis de
requerimientos
• El modelo original no se
adapta a ciertas Diseño
aplicaciones
Implementación
• Los costos al descubrir
errores en etapas Validación de
avanzadas son muy altos componentes
• Es rígido Integración y
validación del
• Se incorporan variantes
sistema
al modelo.
Liberación y
mantenimiento
18
Análisis de requerimientos
- Comprensibles
- Precisos
Es una actividad - Completos
requerida en
cualquier
- Consistentes
modelo - Fáciles de modificar
19
Análisis de requerimientos
Identificar el problema
Documentar los requerimientos
Involucrar a los usuarios y expertos en el dominio
de aplicación (requiere diálogo y comunicación)
Existen estándares para la especificación de los
requerimientos
Esta actividad puede mantenerse a lo largo del
proceso.
20
Requerimientos de software:
sub áreas
1. Proceso de ingeniería de requerimientos:
modelos de proceso, actores, soporte y gerencia y mejora
de calidad de proceso
2. Captura de requerimientos:
origen de requerimientos, como capturarlos; incluye
fuentes y técnicas.
3. Análisis de requerimientos:
Detectar y resolver conflictos. Limites del sistema y como
interactúa con el medio. Trasladar requerimientos de
sistema a requerimientos de software
21
Requerimientos de software:
sub áreas
22
Prototipaje
Resultados
Prototipo
parciales del
análisis (esbozo parcial, no
definitivo,..)
Prototipo
Desarrollo rápido de -a nivel de la interfaz
partes del sistema - a nivel de componentes
del sistema 23
Prototipaje
24
Especificación
Datos resultantes del Descripción
análisis de requerimientos orientada al
y consideraciones técnicas desarrollador
Describe en
forma precisa
el sistema a
desarrollar
25
Diseño
Resultados del
Descripción
análisis, de la
detallada
especificación y
orientada al
consideraciones
implementador
técnicas
Constituye un
refinamiento
del análisis 26
Programación
Componentes de
Diseño y programas
consideraciones -Código - en un LP
técnicas
“echar código”...
27
Integración y gestión de configuraciones
Componentes de
Ensamblaje de
programa
versiones coherentes
de
los componentes
Obtener el
sistema
ejecutable
28
Validación y verificación
Documentos
Documentos
(textos, programas, validados/
etc) verificados
Permite
determinar la
confiabilidad o
correctitud del
producto 29
Validación y verificación
Validación: el software responde a lo que espera
el usuario
•Verificación: el software satisface la
especificación
•Técnicas diversas :
–Pruebas formales: garantizar que el programa
satisface la especificación
–Chequeo “testing” : búsqueda de errores en los
componentes, en la integración, en el sistema
–Pruebas de usabilidad: “medir” la satisfacción del
usuario al usar el producto
30
Tipos de pruebas
•Test unitario
Chequeo de componentes individuales
•Test de módulo
Chequeo de colecciones de componentes dependientes
•Test de sub-sistemas
Prueba de Módulos integrados en sub-sistemas .
El centro es la prueba de las interfaces
•Test de sistemas
Se prueba el sistema como un todo
•Test de aceptación
Pruebas con datos del cliente para chequear las expectativas
del usuario 31
Prueba de software
32
Mantenimiento de software
33
Bibliografía
- Ghezzi &al, “Fundamentals of Software
Engineering”. PrenticeHall. Cap.7