Publicado el 18 de Diciembre del 2018
458 visualizaciones desde el 18 de Diciembre del 2018
654,4 KB
49 paginas
Creado hace 8a (14/10/2015)
Tema 02 –
Proceso de desarrollo de software
Ingeniería del Software
Rubén Fuentes Fernández
Dep. Ingeniería del Software e Inteligencia Artificial
Facultad de Informática
Universidad Complutense Madrid
Trabajando con Antonio Navarro, Juan Pavón y Pablo Gervás
Contenidos
• El proceso de desarrollo de software
– Introducción
– Modelos de proceso
• Modelo de madurez de capacidades del software
Rubén Fuentes Fernández
Ingeniería del Software
2
Objetivos
• Entender qué es el proceso de desarrollo de software
• Cuáles son los componentes que debe considerar un proceso
de desarrollo de software
• Modelos de proceso de desarrollo de software
• Calidad del proceso de desarrollo de software
Rubén Fuentes Fernández
Ingeniería del Software
3
INTRODUCCIÓN
Rubén Fuentes Fernández
Ingeniería del Software
4
El producto como base del proceso
• La Ingeniería es el análisis, diseño, construcción y verificación
de entidades técnicas (o sociales).
• La entidad sobre la que trabaja caracteriza a la ingeniería:
– Caminos, canales y puertos
– Aeronaves
– Buques
– …
Rubén Fuentes Fernández
Ingeniería del Software
5
Conceptos clave del proceso
• Personas: los que trabajan
• Producto: lo que se obtiene
• Proyecto: la pauta a seguir para desarrollar un producto
• Proceso: la pauta a seguir para desarrollar un proyecto
Rubén Fuentes Fernández
Ingeniería del Software
6
Una cena
• Personas: Empleados de una empresa de catering
• Producto: La cena que se sirve
• Proyecto: La secuencia de acciones de servir una cena
concreta
• Proceso: Las instrucciones
de la empresa sobre
cómo se sirve una cena
Rubén Fuentes Fernández
Ingeniería del Software
7
Una gama de automóviles
• Personas: Empleados de la marca
• Producto: Los automóviles
• Proyecto: Desarrollo de un modelo nuevo
• Proceso: Las instrucciones de la empresa sobre cómo
desarrollar un
modelo nuevo
Rubén Fuentes Fernández
Ingeniería del Software
8
Software
• Personas: Vosotros
• Producto: ???
• Proyecto: ???
• Proceso: Asignatura de IS
Rubén Fuentes Fernández
Ingeniería del Software
9
Aspectos a considerar en la Ingeniería
• Con independencia de la entidad debemos identificar y
solucionar:
– Problema a resolver
– Características de la entidad
– Forma de construir la entidad
– Enfoque para resolver los errores cometidos durante el diseño y
construcción de la entidad
– Mantenimiento de la entidad frente a su evolución
Rubén Fuentes Fernández
Ingeniería del Software
10
Tecnología estratificada
• La IS es una tecnología multicapa:
– Capa de enfoque de calidad
• Base de cualquier proceso de ingeniería
• Mejores técnicas o buenas prácticas
• Conjunto de actividades y resultados asociados que sirven para construir
– Capa de proceso
un producto software.
– Capa de métodos
• Un método ofrece pautas para:
análisis de requisitos, diseño,
construcción de programas,
prueba, instalación y
mantenimiento
– Capa de herramientas
Rubén Fuentes Fernández
Ingeniería del Software
11
Objetivos de un proceso del software
• Desarrollar, operar y mantener software de forma que:
– Se apliquen principios y metodologías de ingeniería
– Se construya software que satisfaga las necesidades del cliente
• No sólo funcionales
• También coste, fiabilidad y eficiencia
– Se pueda sistematizar, disciplinar y cuantificar
• Establecer pautas sobre las que orientar, reflexionar, aprender y mejorar
Rubén Fuentes Fernández
Ingeniería del Software
12
Producto y fases genéricas
• En IS, entidad = software
• Soporte para el desarrollo de la entidad/soporte para la IS:
modelo de proceso
• Con independencia del modelo de proceso hay tres fases
genéricas:
– Fase de definición
– Fase de desarrollo
– Fase de mantenimiento
Rubén Fuentes Fernández
Ingeniería del Software
13
Fase de definición
• Centrada en el qué
• Se identifican los requisitos del sistema y software:
– Información a procesar
– Función y rendimiento deseados
– Comportamiento del sistema
– Interfaces establecidas
– Restricciones de diseño
• Tareas principales:
– Planificación del proyecto software
– Ingeniería de sistemas o de información
– Análisis de requisitos
Rubén Fuentes Fernández
Ingeniería del Software
14
Fase de desarrollo
• Centrada en el cómo
• Se define cómo han de plasmarse los requisitos en el sistema:
– Diseño de las estructuras de datos
– Implementación de las funciones
– Caracterización de las interfaces
– Traducción del diseño a un lenguaje de programación
– Pruebas
• Tareas principales:
– Diseño del software
– Generación del código
– Pruebas del software
Rubén Fuentes Fernández
Ingeniería del Software
15
Fase de mantenimiento
• Centrada en el cambio.
• Pueden producirse 4 tipos de cambio:
– Corrección. Corregir los defectos
– Adaptación. Modificaciones por cambio en el entorno externo
– Mejora. Ampliar los requisitos originales, a petición del cliente
– Prevención. Cambio para facilitar el cambio
• En esta fase se vuelven a aplicar las fases de definición y
desarrollo, pero sobre software ya existente.
Rubén Fuentes Fernández
Ingeniería del Software
16
Fases, actividades y tareas
• Las fases de un proceso del software se realizan mediante una
serie de actividades.
– Las actividades se pueden extender a lo largo de varias fases.
– Ej. comunicación con el cliente, planificación, diseño e
implementación del software
• Las actividades a su vez se articulan mediante acciones.
– Una acción es un conjunto de tareas relacionadas que produce un
producto del trabajo o artefacto.
– Ej. la actividad diseño e implementación puede incluir una acción de
análisis, que puede descomponerse en las tareas realizar diagramas
casos de uso, realizar diagramas actividades, realizar diagramas clases
análisis…
Rubén Fuentes Fernández
Ingeniería del Software
17
Actividades de protección
•
Las actividades de creación de artefactos se complementan con las
actividades de soporte o protección.
– No crean software
– Mejoran su calidad
– Facilitan su desarrollo
• Se aplican a lo largo de todo el proceso del software.
• Ejemplos de actividades de soporte:
– Documentación
– Gestión de configuración
– Seguimiento y control del proyecto de software
– Revisiones técnicas formales
– Garantía de la calidad del software
– Gestión de reutilización
– Mediciones
– Gestión de riesgos
Rubén Fuentes Fernández
Ingeniería del Software
18
Proceso del software
• Conjunto estructurado de actividades y resultados asociados
requeridos para desarrollar un sistema de software
– Especificación: establecer los requisitos y restricciones del sistema
– Diseño: producir un modelo del sistema
– Implementación: construcción del sistema de software
– Validación: verificar que el sistema cumple con las especificaciones
requeridas
– Instalación: entregar el sistema al usuario y asegurar su operacionalidad
– Evolución y mantenimiento: cambiar/adaptar el software según las
demandas; reparar fallos en el sistema cuando sean descubiertos
• Debe estar explícitamente modelado si va a ser bien administrado.
Rubén Fuentes Fernández
Ingeniería del Software
19
Modelos de proceso
• Un modelo de proceso del software (o paradigma de IS) es
una representación abstracta de un proceso del software.
– Plantilla, patrón o marco que define el proceso a través del cual se
crea software
• Los modelos de proceso tienen en cuenta, en mayor o menor
medida, las actividades estructurales comunes a todos los
procesos de construcción de software.
• Un modelo de proceso ha de definir sus actividades
estructurales así como su flujo de realización.
Rubén Fuentes Fernández
Ingeniería del Software
20
Adaptación de los modelos de proceso
• Los modelos de proceso no son fijos para una organización o
tipo de proyecto.
• Una organización puede variar su modelo de proceso para
cada proyecto según:
– La naturaleza del proyecto
– La naturaleza de la aplicación
– Los métodos y herramientas a utilizar
– Los controles y entregas requeridos
• Los modelos de proceso se ajustan a los proyectos concretos
variando el conjunto de tareas en que se dividen las
actividades estructurales.
Rubén Fuentes Fernández
Ingeniería del Software
21
Características para seleccionar el proceso
– Grado en que las actividades del proceso proporcionan resultados
Soportable por herramientas CASE
•
– Grado en que los desarrolladores aceptan y usan el proceso
Fiabilidad
– Capacidad de evitar o detectar errores antes de que sean defectos
– Continuidad del proceso a pesar de los problemas
– Capacidad de evolución para adaptarse
•
Entendible
• Visibilidad
•
• Aceptabilidad
• Robustez
• Mantenible
• Rapidez
– Velocidad con que el proceso proporciona un sistema a partir de una especificación
Rubén Fuentes Fernández
Ingeniería del Software
22
MODELOS DE PROCESO QUE SÍ
SON…
Rubén Fuentes Fernández
Ingeniería del Software
23
Principales modelos de proceso del software
– Separa en distintas fases de especificación y desarrollo que se realizan
• Modelo en cascada
en secuencia lineal.
• Prototipado
– Un prototipo sirve de modelo para la construcción del sistema final.
• Desarrollo evolutivo
• Transformación formal
– La especificación y el desarrollo están intercalados.
– Un modelo matemático del sistema se transforma formalmente en la
implementación.
• Desarrollo basado en reutilización
– El sistema es ensamblado a partir de componentes existentes.
Rubén Fuentes Fernández
Ingeniería del Software
24
Mode
Comentarios de: Tema 02 - Proceso de Desarrollo de Software - Ingeniería del Software (0)
No hay comentarios