AI U8 Mejoramiento para El Proceso de Software - MHB
AI U8 Mejoramiento para El Proceso de Software - MHB
AI U8 Mejoramiento para El Proceso de Software - MHB
Unidad VIII:
MEJORAMIENTO DEL PROCESO DE SOFTWARE
Contenido
• Elementos para el mejoramiento para el proceso de
software
• Ventajas del mejoramiento del proceso de software
Elementos para el mejoramiento para el proceso de software
Cuando los procesos se discuten y describen, por lo general se habla de actividades como especificar un
modelo de datos, diseñar una interfaz de usuario, etcétera, así como del orden de dichas actividades. AL
igual que las actividades, también las descripciones de los procesos deben incluir:
1. Productos, que son los resultados de una actividad del proceso. Por ejemplo, el resultado de la
actividad del diseño arquitectónico es un modelo de la arquitectura de software.
2. Roles, que reflejan las responsabilidades de la gente que interviene en el proceso. Ejemplos de roles:
gerente de proyecto, gerente de configuración, programador, etcétera.
3. Precondiciones y postcondiciones, que son declaraciones válidas antes y después de que se realice
una actividad del proceso o se cree un producto. Por ejemplo, antes de comenzar el diseño
arquitectónico, una precondición es que el cliente haya aprobado todos los requerimientos; después
de terminar esta actividad, una postcondición podría ser que se revisen aquellos modelos UML que
describen la arquitectura.
Elementos para el mejoramiento para el proceso de software
1. Análisis y definición de requerimientos: Los servicios, las restricciones y las metas del sistema se establecen mediante
consulta a los usuarios del sistema. Luego, se definen con detalle y sirven como una especificación del sistema.
2. Diseño del sistema y del software. El proceso de diseño de sistemas asigna los requerimientos, para sistemas de
hardware o de software, al establecer una arquitectura de sistema global. El diseño del software implica identificar y
describir las abstracciones fundamentales del sistema de software y sus relaciones.
3. Implementación y prueba de unidad. Durante esta etapa, el diseño de software se realiza como un conjunto de
programas o unidades del programa. La prueba de unidad consiste en verificar que cada unidad cumpla con su
especificación.
4. Integración y prueba de sistema. Las unidades del programa o los programas individuales se integran y prueban como un
sistema completo para asegurarse de que se cumplan los requerimientos de software. Después de probarlo, se libera el
sistema de software al cliente.
5. Operación y mantenimiento Por lo general (aunque no necesariamente), ésta es la fase más larga del ciclo de vida,
donde el sistema se instala y se pone en práctica. El mantenimiento incluye corregir los errores que no se detectaron en
etapas anteriores del ciclo de vida, mejorar la implementación de las unidades del sistema e incrementar los servicios del
sistema conforme se descubren nuevos requerimientos
Ventajas del mejoramiento del proceso de software
El desarrollo incremental se basa en la idea de diseñar una implementación inicial, exponer ésta al
comentario del usuario, y luego desarrollarla en sus diversas versiones hasta producir un sistema adecuado
(figura 2.2). Las actividades de especificación, desarrollo y validación están entrelazadas en vez de separadas,
con rápida retroalimentación a través de las actividades.
Ventajas del mejoramiento del proceso de software
El desarrollo de software incremental, que es una parte fundamental de los enfoques ágiles, es mejor que un
enfoque en cascada para la mayoría de los sistemas empresariales, de comercio electrónico y personales. El
desarrollo incremental refleja la forma en que se resuelven problemas. Rara vez se trabaja por adelantado una
solución completa del problema, más bien se avanza en una serie de pasos hacia una solución y se retrocede
cuando se detecta que se cometieron errores
1. Se reduce el costo de adaptar los requerimientos cambiantes del cliente. La cantidad de análisis y la
documentación que tiene que reelaborarse son mucho menores de lo requerido con el modelo en cascada.
2. Es más sencillo obtener retroalimentación del cliente sobre el trabajo de desarrollo que se realizó. Los clientes
pueden comentar las demostraciones del software y darse cuenta de cuánto se ha implementado. Los clientes
encuentran difícil juzgar el avance a partir de documentos de diseño de software.
3. Es posible que sea más rápida la entrega e implementación de software útil al cliente, aun si no se ha incluido
toda la funcionalidad. Los clientes tienen posibilidad de usar y ganar valor del software más temprano de lo que
sería posible con un proceso en cascada.
Ventajas del mejoramiento del proceso de software
Etapas:
1. Análisis de componentes Dada la especificación de requerimientos, se realiza una búsqueda de componentes para
implementar dicha especificación. Por lo general, no hay coincidencia exacta y los componentes que se usan
proporcionan sólo parte de la funcionalidad requerida.
2. Modificación de requerimientos Durante esta etapa se analizan los requerimientos usando información de los
componentes descubiertos. Luego se modifican para reflejar los componentes disponibles. Donde las
modificaciones son imposibles, puede regresarse a la actividad de análisis de componentes para buscar soluciones
alternativas.
3. Diseño de sistema con reutilización Durante esta fase se diseña el marco conceptual del sistema o se reutiliza un
marco conceptual existente. Los creadores toman en cuenta los componentes que se reutilizan y organizan el marco
de referencia para atenderlo. Es posible que deba diseñarse algo de software nuevo, si no están disponibles los
componentes reutilizables.
4. Desarrollo e integración Se diseña el software que no puede procurarse de manera externa, y se integran los
componentes y los sistemas COTS para crear el nuevo sistema. La integración del sistema, en este modelo, puede
ser parte del proceso de desarrollo, en vez de una actividad independiente
Ventajas del mejoramiento del proceso de software
1. Servicios Web que se desarrollan en concordancia para atender servicios estándares y que están
disponibles para la invocación remota.
2. Colecciones de objetos que se desarrollan como un paquete para su integración con un marco de
componentes como .NET o J2EE.
La ingeniería de software orientada a la reutilización tiene la clara ventaja de reducir la cantidad de software a
desarrollar y, por lo tanto, la de disminuir costos y riesgos; por lo general, también conduce a entregas más
rápidas del software. Sin embargo, son inevitables los compromisos de requerimientos y esto conduciría hacia
un sistema que no cubra las necesidades reales de los usuarios
Ventajas del mejoramiento del proceso de software
Ventajas del mejoramiento del proceso de software
Las cuatro actividades básicas de proceso de especificación, desarrollo, validación y evolución se organizan de
diversa manera en diferentes procesos de desarrollo. En el modelo en cascada se organizan en secuencia, mientras
que se entrelazan en el desarrollo incremental. La forma en que se llevan a cabo estas actividades depende del tipo
de software, del personal y de la inclusión de estructuras organizativas. En la programación extrema, por ejemplo,
las especificaciones se escriben en tarjetas. Las pruebas son ejecutables y se desarrollan antes del programa en sí.
La evolución incluye la reestructuración o refactorización sustancial del sistema.
Ventajas del mejoramiento del proceso de software
Ventajas
❖ Reducción de los costos indirectos que ocurren cuando el software se entrega tarde
Ventajas del mejoramiento del proceso de software
Mejoramiento del
Proceso de Software
Mejoramiento del Proceso de Software
Elementos de un
marco conceptual
MPS
Fuente:
Pressman 2002
Mejoramiento del Proceso de Software
Marco conceptual MPS Proporcionar un indicio global de la “madurez del proceso” que
muestra una organización de software, es decir, un indicio de la
calidad del proceso de software, el grado en el que los
profesionales entienden y aplican el proceso, y el estado
Modelo de Madurez general de la práctica de ingeniería del software.
Medida global de la
Indicadores de calidad
del proceso
calidad del proceso
Nivel 0, negligente.
Fracaso para permitir que tenga éxito un proceso de
desarrollo exitoso. Todos los problemas se perciben como
problemas técnicos.
Mejoramiento del Proceso de Software
Nivel 1, obstructivo.
Se imponen procesos contraproducentes. Los procesos se
definen rígidamente y se adhieren a la forma que subrayan.
Abundan las ceremonias rituales.
La administración colectiva impide la asignación de
responsabilidad.
Mejoramiento del Proceso de Software
Nivel 2, despreciador.
No se preocupa por la buena ingeniería de software
institucionalizada. Hay desunión completa entre actividades
de desarrollo de software y actividades de mejoramiento
del proceso de software y falta completa de programas de
capacitación.
Mejoramiento del Proceso de Software
Nivel 3, socavación.
Desprecio total por la propia organización, descrédito
consciente de los esfuerzos de mejoramiento del proceso de
software de los pares de la organización.
Recompensa al fracaso y al pobre desempeño.
Mejoramiento del Proceso de Software
Bibliografí
a
Pressman, R.S., Ingeniería del Software. Un enfoque práctico, quinta edición, 2002, España.
Sommerville I., Ingeniería de Software, Addison-Wesley, 6ª. Edición, 2002, México.
McConnell Steve, "Desarrollo y Gestión de proyectos informáticos", Ed. McGraw-Hill, 1997,
España.
Mejoramiento del Proceso de Software
SELECCIÓN DE LA MUESTRA