Professional Documents
Culture Documents
(790464)
Unidad 1
Introduccin a la Ingeniera de Software
(Producto y Proceso)
Contenidos de la Unidad 1
Introduccin
Definicin de Ingeniera del software.
Crisis del software.
Evolucin del software.
Caractersticas del software.
Mitos del software.
Componentes del Software.
Proceso, Mtodos y Herramientas.
Actividades protectoras (SQA, GCS).
Construccin de prototipos
Modelos de Desarrollo de Software
Modelo Clsico o de Cascada
Evolutivos
Modelo Incremental
Modelo de Espiral
Tcnicas de Cuarta Generacin
Modelo de Mtodos Formales
2
Aprendizajes Esperados
Objetivos:
1. Reconocer la importancia y los componentes asociados al
software.
2. Identificar el proceso involucrado en el desarrollo de software.
3. Reconocer las etapas genricas en el desarrollo de un Proyecto
de Software y su relacin con los distintos modelos de
desarrollo.
4. Explicar los distintos Modelos de Procesos (Paradigmas de
desarrollo) de Software, reconociendo las caractersticas,
ventajas y desventajas de cada uno.
Motivacin
El reciente aumento de aplicaciones en donde se utiliza el
computador ha sido posible debido a la constante disminucin en el
costo del hardware, por lo cual la demanda de software ha crecido
de forma exponencial. Esto implica que son necesarias tcnicas y
tecnologa eficientes de Ingeniera de Software para resolver los
mltiples problemas que se derivan de las aplicaciones en donde se
desarrollan sistemas de software de gran tamao.
Este curso tiene como objetivo presentar al alumno el espectro de
tcnicas de Ingeniera de Software que pueden ser aplicadas en
proyectos de software prcticos.
Introduccin
(1/3)
Introduccin
(2/3)
Introduccin
(3/3)
1950
1960
Distribucin limitada
Software a medida
Diseo implcito, s/docum.
La tercera era
Sistemas distribuidos
Incorporac. de inteligencia
(microcomp., PC)
Hardware econmico
Impacto en el consumo
1970
1980
1990
2000
La segunda era
Multiusuario
Tiempo real
Bases de datos
Producto de software (mantenimiento)
La cuarta era
Sist. Personales potentes
Cliente-servidor
Comput. en paralelo
Redes de computadores
Internet
Tecnologas O-O
Sistemas expertos
Redes neuronales artificiales
8
El Producto Software
Definicin de Software: (1) instrucciones de computador que
cuando se ejecutan proporcionan la funcin y el comportamiento
deseado, (2) estructuras de datos que facilitan a los programas
manipular adecuadamente la informacin, y (3) documentos que
describen la operacin y el uso de los programas.
Caractersticas:
El software se desarrolla, no se fabrica en un sentido clsico.
El software no se Estropea.
La mayora del software se construye a medida.
Existe variedad de aplicaciones de software.
tiempo
10
tiempo
11
tiempo
12
13
Software
Software
Software
Software
Software
Software
Software
Software
de Sistemas
de tiempo real
de gestin
de Ingeniera y cientfico
empotrado
de computadores personales
basado en la Web
de Inteligencia Artificial
14
15
Productos de Software
Productos genricos.
l Productos que son producidos por una organizacin para ser
vendidos al mercado.
Productos hechos a medida.
l Sistemas que son desarrollados bajo pedido a un
desarrollador especfico.
La mayor parte del gasto del software es en productos
genricos, pero hay ms esfuerzo en el desarrollo de los
sistemas hechos a medida.
16
19
para
desarrollo
22
24
25
26
27
28
31
32
33
(Brooks).
34
600
600
500
400
300
200
150
100
0
10
Definicin
Desarrollo
Despus de la
Entrega
35
36
37
38
39
Comunicacin Compleja
40
41
42
43
Definicin de Proceso
Procedimiento, poltica o estndar.
Razones del ciclo de vida del software:
Incremento de calidad del producto
Facilidad de entendimiento humano y comunicacin
Mejora en los procesos de soporte
Procesos automatizados
Soporte en la gestin de procesos
44
Procesos de Software
Un conjunto de actividades cuyo objetivo es el
desarrollo y evolucin de Software.
Especificacin Desarrollo - Validacin Evolucin
Procesos de Software
Un proceso de software proporciona el marco de trabajo o
framework desde el cual se puede establecer un plan detallado
para el desarrollo del software.
46
47
SQA
SQA es Software Quality Assurance o Aseguramiento de la
Calidad del Software.
En cuanto al Aseguramiento de la calidad (QA), ... es el
conjunto de actividades sistemticas, desarrolladas dentro del
Sistema de Calidad, para garantizar que el proyecto va a
satisfacer las Normas de Calidad. [PMBOK-2004]
Por tanto, SQA es el proceso de asegurar la calidad, aplicado al
software, que debe realizarse a lo largo de todos los procesos
de fabricacin: desde el anlisis de requerimientos hasta la
puesta en produccin.
48
Hitos y Entregas
Los hitos que son seales que se colocan en un momento
especfico del proceso y que coinciden con la entrega de un
resultado concreto y los puntos SQA (Software Quality
Assurance o Aseguramiento de la Calidad del Software).
Es el punto de control de objetivo intermedio antes de que el
proyecto finalice.
49
Actividades Protectoras
Las actividades protectoras son un complemento a las fases de un
modelo de desarrollo de software.
La visin Genrica de la Ingeniera de Software, segn Pressman
se complementa con un nmero de Actividades Protectoras:
Seguimiento y control del software
(MPS)
es
una
51
Modelos Genricos
Modelo de Cascada
Desarrollo Evolutivo
Las fases de especificacin y desarrollo se intercalan.
de
un
Modelo de Cascada
53
Modelo de Cascada
Definicin de
Requerimientos
Diseo de Sistema
y de Software
Implementacin y
Prueba de Unidades
Integracin y
Prueba del
Sistema
Operacin y
Mantenimiento
54
Modelo de Cascada
Aplicable en:
Sistemas pequeos con requerimientos bien entendidos
Sistemas grandes con requerimientos muy estables.
Problemas por:
Escasa flexibilidad al particionar el proyecto en estas
distintas etapas secuenciales.
Dificultad para dar respuesta a cambios drsticos en los
requerimientos de los clientes.
55
Desarrollo Evolutivo
Desarrolla una implementacin inicial exponindola segn los comentarios
de los usuarios y refinndola a travs de diferentes versiones.
1. Desarrollo Exploratorio
El objetivo es trabajar con el cliente para explorar sus requerimientos y evolucionar
al sistema final. El desarrollo comienza con las partes del sistema mejor
comprendidas.
2. Prototipos Desechables
El objetivo es entender los requerimientos del cliente y cumplido el objetivo se
descarta el prototipo y se construye el sistema. El prototipo se centra en
experimentar con los requerimientos del cliente ms confusos o complejos.
56
Desarrollo Evolutivo
Actividades
Concurrentes
Bosquejo de
la descripcin
Especificacin
Versin
Inicial
Desarrollo
Versiones
Intermedias
Validacin
Versin
Final
57
Modelos Evolutivos
Modelos flexibles que permiten la modificacin del sistema
durante su proceso de desarrollo.
Procesos iterativos que permiten a los desarrolladores construir
versiones del software cada vez ms completas
Ejemplos:
Modelo Incremental.
Modelo Espiral.
Modelo Espiral WINWIN.
Modelo de Desarrollo Concurrente.
Modelo de Prototipos
58
Modelo Incremental
Aplica el enfoque lineal secuencial (cascada) escalonadamente.
Incrementos parciales de la herramienta completa (versiones).
Cada incremento agrega funcionalidad adicional o mejorada
sobre el sistema.
Cada etapa debe cumplir con los requisitos de las desarrolladas.
59
Modelo Espiral
Utilizacin de ciclos en lugar de sucesin de actividades.
Facilita el desarrollo rpido de versiones incrementales de
software.
60
61
Modelo Concurrente
Provee una meta descripcin del proceso de software.
Mientras que en el Espiral la principal contribucin es que las
actividades del software ocurran repetidamente, en el
Concurrente es la capacidad de describir las mltiples
actividades del software que ocurren simultneamente.
Dado que los requerimientos cambian es muy probable que una
vez haya comenzado la fase de diseo, sea necesario incorporar
cambios. En estos casos No se debe detener el diseo, sino que
se debe continuar si es posible al mismo tiempo que se
modifican los requerimientos.
Por lo tanto en este modelo, diversas actividades pueden estar
ocurriendo concurrentemente.
Posibilita el conocimiento del verdadero estado del proyecto.
62
Modelo de Prototipos
Los prototipos (cambiando de modelo), son una herramienta
muy eficaz para imaginar el software completo de una forma
rpida y sencilla. De esta forma, incluso observando el prototipo
podemos descubrir requerimientos del software en los que
antes no habamos reparado
El paradigma de construccin de prototipos tiene tres pasos:
1.
2.
3.
63
Modelo de Prototipos
El ciclo de vida del modelo de construccin por prototipos es:
64
Desarrollo Evolutivo
Aplicable en:
Sistemas interactivos pequeos o medianos
Subsistemas de un gran sistema (Interfaz de Usuario)
Sistemas de requerimientos voltiles
Problemas por:
Prdida de visibilidad del proceso
El sistema es a menudo pobremente estructurado
Se requiere de habilidades especiales para mantener el
proyecto bajo control (desarrollo rpido, lenguajes,
herramientas, gestin)
65
66
67
69
70
Resumen
La Ingeniera del Software es una disciplina que
integra procesos, mtodos y herramientas para el
desarrollo del software de computadora.
Se han propuesto varios modelos de procesos para la
Ingeniera del Software diferentes, cada uno
exhibiendo ventajas e inconvenientes pero todos
tienen una serie de fases genricas en comn.
En el resto de este curso se consideran los principios,
conceptos y mtodos que permiten llevar a cabo el
proceso que se llama Ingeniera del Software.
71