introduccion metododologias de analisis y diseño de software
1. Introducción a las
Metodologías
de Análisis y diseño de
Software
Ing. Ariel Adolfo Rodríguez
ariel.rodriguez@uptc.edu.co
3141163790
@aadolforh
arielrodriguezh.blogspot.com
2. Metodologías de Diseño y Desarrollo de
Software
Según su enfoque tenemos:
Estructuradas
Orientadas a Procesos
Orientadas a Objetos
• Cascada
• Incremental
• Prototipado evolutivo
• Espiral
• Cluster (Meyer (1990))
• Fuente (Henderson-Seller (1990))
• Remolino (Rumbaugh (1992))
• Pinball (Amler (1994))
• Gane y Sarsons (1979)
• DeMarco (1979)
• Yourdon (1989)
(Piattini, 1996)
3. Modelo Cascada (Royce (1970), Boehm (1981), Sommerville
(1985) y Sigwart et al. (1990).
En este modelo, el producto evoluciona a
través de una secuencia de fases
ordenadas en forma lineal, permitiendo
iteraciones al estado anterior.
Fases
◦ Análisis de requisitos del sistema.
◦ Análisis de requisitos del software.
◦ Diseño preliminar.
◦ Diseño detallado.
◦ Codificación y pruebas.
◦ Explotación (u operación) y mantenimiento
4. Modelo Incremental (Lehman 1984)
En este modelo, el producto evoluciona a
través de una secuencia de fases
ordenadas en forma lineal ciclica,
Fases
◦ Análisis de requisitos del sistema.
◦ Análisis de requisitos del software.
◦ Diseño preliminar.
◦ Diseño detallado.
◦ Codificación y pruebas.
◦ Explotación (u operación) y mantenimiento
5. Modelo Prototipado Evolutivo (J. Jusgado 1996)
El uso de prototipos se centra en la idea de ayudar a comprender
los requisitos que plantea el usuario, sobre
todo si este no tiene una idea muy clara de lo que desea.
Esta versión temprana de lo que será el producto, con una
funcionalidad reducida, en principio, podrá incrementarse
paulatinamente a través de refinamientos sucesivos de las
especificaciones del sistema, evolucionando hasta llegar al sistema
final.
Fases
◦ Análisis de requisitos del sistema.
◦ Análisis de requisitos del software.
◦ Diseño, desarrollo e implementación del prototipo Diseño detallado.
◦ Prueba del prototipo.
◦ Refinamiento iterativo del prototipo.
◦ Refinamiento de las especificaciones del prototipo.
◦ Diseño e implementación del sistema final.
◦ Explotación (u operación) y mantenimiento
6. Modelo en espiral de Boehm (Boehm, 1988)
El movimiento de la espiral,
ampliando con cada iteración su
amplitud radial, indica que cada
vez se van construyendo versiones
sucesivas del software, cada vez
más completas.
Fases
Planeación : determinación de los objetivos, alternativas y
restricciones
Análisis de riesgo : análisis de alternativas e
identificación/resolución de riesgos
Ingeniería : desarrollo del producto hasta "el siguiente
nivel".
Evaluación : valoración por parte del cliente de los resultados
obtenidos.
8. Fases del Ciclo de Vida de un
Desarrollo de Software
1. La planificación de la gestión proyecto, se la
puede describir en términos de: las actividades a
realizar, los documentos de salida y las técnicas a
utilizar.
9. Fases del Ciclo de Vida de un
Desarrollo de Software
2. La identificación de la necesidad, , enunciada en
términos concretos, es el punto de partida para la
puesta en marcha de un proyecto y la evaluación de las
posibles soluciones darán la viabilidad del mismo.
10. Fases del Ciclo de Vida de un
Desarrollo de Software
3. El proceso de especificación de los requisitos
, Aquí hay que establecer de un modo conciso, claro y preciso el conjunto de
requisitos que deben ser satisfechos por el software a desarrollar. El objetivo es
determinar en forma total y consistente los requisitos de software. El análisis se
realiza sobre la salida resultante, la descomposición de los datos, el procesamiento
de los mismos, las bases de datos y las interfaces de usuario.
(J. Juzgado, 1996).
11. Fases del Ciclo de Vida de un
Desarrollo de Software
4. El proceso de diseño, es la piedra angular para la obtención de un
producto coherente que satisfaga los requisitos de software. El diseño desde el
punto de vista técnico comprende cuatro tipos de actividades: el diseño de
datos, arquitectónico, procedimental y diseño de interfaces y desde el punto de vista
del proyecto evoluciona desde un diseño preliminar al diseño detallado.
◦ El diseño de datos, modela las estructuras de datos necesarias para
el desarrollo.
◦ El diseño arquitectónico define las relaciones entre las estructuras
del programa, considerando el desarrollo de módulos que se
relacionan, mezcla la estructura de programas y de datos, y define las
interfaces.
◦ El diseño procedimental transforma estructuras en descripción
procedimental del software.
◦ El diseño de interface establece los mecanismos de interacción
humano- computadora.
Existen herramientas de tipo CASE (Computer Aided Software Engineerig).
(Pressman, 1996).
12. Fases del Ciclo de Vida de un
Desarrollo de Software
4. El proceso de diseño, este proceso requiere tener
en cuenta:
13. Fases del Ciclo de Vida de un
Desarrollo de Software
5. El proceso de Implementación, Este proceso produce
código fuente, código de la base de datos y documentación de base de acuerdo a los
estándares utilizados. La salida de este proceso conduce a las pruebas de validación
y verificación.
14. Fases del Ciclo de Vida de un
Desarrollo de Software
6. El proceso de Instalación, Este proceso se centra en la
verificación de la implementación adecuada del software y en la conformidad del
cliente, previa prueba de aceptación.
15. Fases del Ciclo de Vida de un
Desarrollo de Software
7. Los procesos de mantenimiento y retiro, El proceso
de mantenimiento se centra en el cambio asociado a los errores
detectados, fallas, mejoras solicitadas y cambios. Se lo considera como una vuelta a
la aplicación del ciclo de vida pero con un software existente como iteraciones de
desarrollo. Los tipos de mantenimiento pueden ser:
◦ Correctivos, ante defectos encontrados,
◦ Adaptativos, o sea, cambios del software de acuerdo al cambio en el entorno.
◦ De mejoras, con agregado de funciones adicionales.
16. Fases del Ciclo de Vida de un
Desarrollo de Software
8. El proceso de verificación y validación, Las tareas que
abarca son las siguientes:
◦ Pruebas de verificación
◦ Revisiones y auditoría e incluye las tareas de validación
◦ Pruebas de validación que se realizan durante el ciclo de vida del software para
asegurar la satisfacción con los requisitos.
17. Fases del Ciclo de Vida de un
Desarrollo de Software
9. El proceso de la gestión de la configuración, este
involucra la gestión de los cambios durante el ciclo de vida que a partir de la
configuración del sistema en un dado momento, tiene como objetivo un control de
los cambios producidos y la coherencia del mismo.
18. Fases del Ciclo de Vida de un
Desarrollo de Software
10. Los procesos de desarrollo de la
documentación y de formación, Este proceso permite
planificar, diseñar, implementar, editar, producir, distribuir y mantener los
documentos para los desarrolladores y los usuarios. Para una utilización efectiva del
sistema se debe proporcionar al usuario las instrucciones y guías necesarias acerca
del uso del software y de sus limitaciones. Es un punto fundamental la formación del
usuario en el sistema. También es importante la formación de los desarrolladores y
soporte técnico.
19. Bibliografía
Jacobson, I., Booch, G. & Rumbaugh, G. (2000). El Proceso Unificado de Desarrollo de Software. Madrid. Pearson
Educación S.A.
Pressman R. (2010). Ingeniería del software. Un enfoque práctico. Editorial Mc Graw Hill. Séptima edición.
Rational Software Corporation. (2006). Rational Unified Process, Versión 2002.05.00.
http://www.ts.mah.se/RUP/RationalUnifiedProcess. Página web vigente al 8/05/2012.
Software Engineering Standards Committee of the IEEE Computer Society. (1990). IEEE Std 610.12-1990. IEEE Standard
Glossary of Software Engineering Terminology. (Revision and redesignation of IEEE Std 792-1983). IEEE-SA Standards
Board. The Institute of Electrical and Electronics Engineers.
Software Engineering Standards Committee of the IEEE Computer Society. (1998). IEEE Std 830. IEEE Recommended
Practice for Software Requirements Specifications. IEEE-SA Standards Board. The Institute of Electrical and Electronics
Engineers, Inc. ISBN 0-7381-0332-2. http://www.mug.org.ar/Descargas/Jornadas/default.aspx. Página web vigente al
09/10/2009.
Software Engineering Standards Committee of the IEEE Computer Society. (1998). IEEE Std 1233. 1998. IEEE Guía para
el desarrollo de Especificaciones de Requerimientos de Sistemas. (incluye IEEE Std 1233–1996. e IEEE Std 1233a-1998).
IEEE-SA Standards Board. The Institute of Electrical and Electronics Engineers.
Software Engineering Institute, Carnegie Mellon University. (2010). CMMI® for Development, Version 1.3. CMMI-
DEV, V1.3. Improving processes for developing better products and services. TECHNICAL REPORT CMU/SEI-2010-TR-033.
ESC-TR-2010-033. Software Engineering Process Management Program. http://www.sei.cmu.edu/reports/10tr033.pdf .
Página web vigente al 21/04/2012.
Sommerville, I. (2005). Ingeniería de software. 7 Edición. México: Addison – Wesley.
Sommerville, I. (2011). Ingeniería de software. 9 Edición. México. Pearson Educación.
Whitten. J, & Bentley. L. (2008). Análisis de sistemas: diseño y métodos. Séptima edición. Mc Graw Hill. México.
Yourdon, E. (2000). Análisis Estructurado Moderno. México: Pearson. ISBN 968-880-330-0.