Вы находитесь на странице: 1из 49

Ian Sommerville2000 Ingenierade Software, 6a edicin.

Captulo3 Pantalla 1
Captulo 3
Procesos del software
Diapositivas traducidas por:
Dr. Aurelio Lpez Lpez
Dr. Gustavo Rodrguez Gmez
Coordinacin de Ciencias Computacionales
INAOE, Tonanzintla, Mxico
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 2
Procesos del software
Conjuntos coherentes de actividades para
especificar, disear, instrumentar y probar
sistemas de software
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 3
Objetivos
Introducir modelos de proceso del software
Describir varios modelos diferentes de proceso y
cuando pueden ser usados
Describir esquemticamente modelos de proceso para
ingeniera de requerimientos, desarrollo del software,
pruebas y evolucin
Introducir tecnologa CASE para apoyar actividades del
proceso de software
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 4
Tpicos cubiertos
Modelos de proceso del software
Iteracin de proceso
Especificacin del software
Diseo e implementacin del software
Validacin del software
Evolucin del software
Apoyo automatizado del proceso
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 5
El proceso del software
Un conjunto estructurado de actividades requerido para
desarrollar un sistema de software
Especificacin
Diseo
Validacin
Evolucin
Un modelo de proceso de software es una
representacin abstracta de un proceso. Presenta una
descripcin de un proceso desde alguna perspectiva
particular
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 6
Modelos genricos de proceso de
software
El modelo en cascada
Fases separadas y distintas de especificacin y desarrollo
Desarrollo evolutivo
Se entrelazan especificacin y desarrollo
Desarrollo formal de sistemas
Un modelo matemtico de sistema se transforma formalmente
a una instrumentacin
Desarrollo basado en reuso
El sistema se ensambla de componentes existentes
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 7
Modelo de cascada
Requirements
definition
System and
software design
Implementation
and unit testing
Integration and
system testing
Operation and
maintenance
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 8
Fases del modelo en cascada
Anlisis y definicin de requerimientos
Diseo de sistema y software
Implementacin y prueba de unidad
Integracin y pruebas del sistema
Operacin y mantenimiento
El inconveniente del modelo de cascada es la dificultad
de acomodar cambios despus que el proceso est en
marcha
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 9
Problemas del modelo en cascada
Particin inflexible del proyecto en fases distintas
sto hace difcil responder a requerimientos cambiantes
del cliente
Por eso, este modelo es slo apropiado cuando los
requerimientos estn bien entendidos
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 10
Desarrollo evolutivo
Desarrollo exploratorio
El objetivo es trabajar con clientes y evolucionar un sistema
final a partir de una especificacin esquemtica inicial. Debe
comenzar con requerimientos bien entendidos
Prototipos desechables
El objetivo es entender los requerimientos del sistema. Debe
comenzar con requerimientos pobremente entendidos
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 11
Desarrollo evolutivo
Validation
Final
version
Development
Intermediate
versions
Specification
Initial
version
Outline
description
Concurrent
activities
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 12
Desarrollo evolutivo
Problemas
Falta de visibilidad del proceso
Sistemas son a menudo pobremente estructurados
Habilidades especiales (por ej. en lenguajes para desarrollo
rpido de prototipos) pueden requerirse
Aplicabilidad
Para sistemas interactivos de tamao pequeo o medio
Para partes de sistemas grandes (por ej. la interfaz de
usuario)
Para sistemas de corta vida
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 13
Desarrollo formal de sistemas
Basado en la transformacin de una especificacin
matemtica a travs de diferentes representaciones a
un programa ejecutable
Transformaciones preservan lo correcto, as es director
mostrar que el programa se ajusta a su especificacin
Plasmado en el enfoque 'Cuarto limpio' al desarrollo de
software
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 14
Desarrollo formal de sistemas
Requirements
definition
Formal
specification
Formal
transformation
Integration and
system testing
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 15
Transformaciones formales
R2
Formal
specification
R3
Executable
program
P2 P3
P4
T1
T2 T3 T4
Proofs of transformation correctness
Formal transformations
R1
P1
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 16
Desarrollo formal de sistemas
Problemas
Necesidad de habilidades especializadas y entrenamiento
para aplicar la tcnica
Difcil de formalmente especificar algunos aspectos del
sistema tales como la interfaz de usuario
Aplicabilidad
Sistemas crticos sobre todo aquellos donde se debe hacer un
caso de seguridad o de proteccin antes que el sistema es
puesto en funcionamiento
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 17
Desarrollo orientado al reuso
Basado en reuso sistemtico donde se integran
sistemas a partir de componentes existentes o
sistemas COTS (Commercial-off-the-shelf)
Fases del proceso
Anlisis de componente
Modificacin de requerimientos
Diseo de sistema con reuso
Desarrollo e integracin
Este enfoque est llegando a ser ms importante pero
todava hay experiencia limitada con l
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 18
Desarrollo orientado al reuso
Requirements
specification
Component
analysis
Development
and integration
Systemdesign
with reuse
Requirements
modification
System
validation
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 19
Iteracin del proceso
Requerimientos del sistema SIEMPRE evolucionan en
el transcurso de un proyecto, as iteracin del proceso
donde fases tempranas son retrabajadas es parte
siempre del proceso para sistemas grandes
Se puede aplicar iteracin a cualquiera de los modelos
genricos de proceso
Dos enfoques (relacionados)
Desarrollo incremental
Desarrollo espiral
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 20
Desarrollo incremental
En lugar de entregar el sistema como una entrega
nica, el desarrollo y entrega se descompone en
incrementos, en que cada incremento entrega parte
de la funcionalidad requerida
Requerimientos del usuario son priorizados y los
requerimientos de la prioridad ms alta se incluyen
en incrementos tempranos
Una vez que se inicia el desarrollo de un
incremento, los requerimientos se congelan aunque
los requerimientos para incrementos posteriores
pueden continuar evolucionando
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 21
Desarrollo incremental
Validate
increment
Develop system
increment
Design system
architecture
Integrate
increment
Validate
system
Define outline
requirements
Assign requirements
to increments
System incomplete
Final
system
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 22
Ventajas del desarrollo incremental
Valor al cliente se puede entregar con cada incremento
as funcionalidad del sistema es disponible antes
Incrementos tempranos actan como un prototipo para
ayudar a obtener requerimientos para incrementos
posteriores
Menor riesgo de fracaso total del proyecto
Los servicios del sistema de la ms alta prioridad
tienden a recibir pruebas mas exhaustivas
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 23
Programacin extrema
Nuevo enfoque al desarrollo basado en el desarrollo y
entrega de muy pequeos incrementos de funcionalidad
Depende de mejora constante del cdigo, participacin
del usuario en el equipo de desarrollo y programacin a
pares (libre de ego)
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 24
Desarrollo en espiral
El proceso se representa como un espiral en lugar de
como una sucesin de actividades con retrospectiva
Cada vuelta en la espiral representa una fase en el
proceso.
No hay fases fijas tales como especificacin o diseo
las vueltas en la espiral se escogen dependiendo de lo
qu se requiere
Riesgos son explcitamente evaluados y resueltos por
todo el proceso
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 25
Modelo en espiral del proceso de
software
Risk
analysis
Risk
analysis
Risk
analysis
Risk
analysis
Proto-
type 1
Prototype 2
Prototype 3
Opera-
ti onal
protoype
Concept of
Operati on
Simul ati ons, models, benchmarks
S/W
requi rements
Requi rement
validati on
Desi gn
V&V
Product
desi gn
Detail ed
desi gn
Code
Uni t test
I ntegrati on
test
Acceptance
test
Service
Develop, verify
next-l evel product
Evaluate alternatives
identify, resol ve risks
Determine objectives
alternatives and
constraints
Plan next phase
I ntegrati on
and test plan
Development
pl an
Requi rements pl an
Li fe-cycle pl an
REVI EW
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 26
Sectores del modelo en espiral
Definicin de objetivos
Se identifican objetivos especficos para la fase
Valoracin del riesgo y reduccin
Se evalan riesgos y ubican actividades para reducir los
riesgos importantes
Desarrollo y validacin
Se escoge un modelo de desarrollo para el sistema que puede
ser cualquiera de los modelos genricos
Planeacin
El proyecto es revisado y se planea la prxima fase del espiral
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 27
Especificacin del software
El proceso de establecer qu servicios se requieren y
las restricciones en la operacin y desarrollo del sistema
Proceso de ingeniera de requerimientos
Estudio de viabilidad
Obtencin y anlisis de los requerimientos
Especificacin de los requerimientos
Validacin de requerimientos
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 28
El proceso de ingeniera de
requerimientos
Feasibility
study
Requirements
elicitation and
analysis
Requirements
specification
Requirements
validation
Feasibility
report
System
models
User and system
requirements
Requirements
document
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 29
Diseo e implementacin de
software
El proceso de convertir la especificacin del sistema en
un sistema ejecutable
Diseo del software
Disear una estructura de software que lleve a cabo la
especificacin
Implementacin
Traducir esta estructura en un programa ejecutable
Las actividades de diseos e implementacin estn
estrechamente relacionadas y pueden estar
entremezclada
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 30
Actividades del proceso de diseo
Diseo arquitectnico
Especificacin abstracta
Diseo de interfaz
Diseo de componente
Diseo de estructura de datos
Diseo de algoritmos
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 31
El proceso de diseo de software
Architectur al
design
Abstract
specification
Interface
design
Component
design
Data
structur e
design
Algorithm
design
System
architectur e
Software
specification
Interface
specification
Component
specification
Data
structur e
specification
Algorithm
specification
Requirements
specification
Design acti vities
Design pr oducts
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 32
Mtodos de diseo
Enfoques sistemticos para desarrollar un diseo de
software
El diseo es usualmente documentado como un
conjunto de modelos grficos
Modelos posibles
Modelo de flujo de datos
Modelo entidad-relacin-atributo
Modelo estructural
Modelos de objeto
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 33
Programacin y depuracin
Traducir un diseo en un programa y remover errores
de ese programa
Programacin es una actividad personal no hay
proceso genrico de programacin
Programadores llevan a cabo alguna prueba de
programa para descubrir fallas en el programa y quitar
estas fallas en el proceso de depuracin
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 34
El proceso de depuracin
Locate
error
Design
error repair
Repair
error
Re-test
program
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 35
Validacin del software
Verificacin y validacin se utilizan para mostrar que un
sistema se conforma a su especificacin y satisface los
requerimientos del cliente del sistema
Involucra procesos para verificar y revisar y pruebas del
sistema
Pruebas del sistema involucra ejecutar el sistema con
casos de prueba que se derivan de la especificacin de
los datos reales procesados por el sistema
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 36
El proceso de pruebas
Sub-system
testing
Module
testing
Unit
testing
System
testing
Acceptance
testing
Component
testing
Integration testing User
testing
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 37
Fases de pruebas
Pruebas de unidad
Se prueban componentes individuales
Pruebas de mdulos
Se prueban colecciones relacionadas de componentes
dependientes
Pruebas de subsistemas
Se integran mdulos en subsistemas y se prueban. El enfoque
aqu debe ser en pruebas de interfaces
Pruebas de sistema
Pruebas del sistema como un todo. Pruebas de propiedades
emergentes
Pruebas de aceptacin
Pruebas con datos del cliente para verificar que es aceptable
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 38
Fases de pruebas
Requirements
specification
System
specification
System
design
Detailed
design
Module and
unit code
and tess
Sub-system
integration
test plan
System
integration
test plan
Acceptance
test plan
Service
Acceptance
test
System
integration test
Sub-system
integration test
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 39
Evolucin del software
Software es inherentemente flexible y puede cambiar.
Como los requerimientos cambian segn cambian las
circunstancias del negocio, el software que apoya el
negocio debe evolucionar tambin y cambiar
Aunque ha habido una demarcacin entre desarrollo y
evolucin (mantenimiento) esto es cada mas irrelevante
dado que menos y menos sistemas son completamente
nuevos
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 40
Evolucin del sistema
Assess existing
systems
Define system
requirements
Propose system
changes
Modify
systems
New
system
Existing
systems
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 41
Apoyo automatizado del
proceso (CASE)
Ingeniera del software asistida por computadora
(CASE) es software para apoyar el desarrollo de
software y procesos de la evolucin
Automatizacin de actividades
Editores grficos para desarrollo del modelo de sistema
Diccionario de datos para administrar entidades del diseo
Generadores para construccin de interfaces de usuario
Depuradores para apoyar el hallazgo de fallas del programa
Traductores automatizados para generar nuevas versiones de
un programa
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 42
Tecnologa Case
Tecnologa CASE ha llevado a mejoras significativas en
el proceso de software aunque no mejoras del orden de
magnitud que se predijeron alguna vez
Ingeniera del software requiere pensamiento creativo - ste
no es prontamente automatizable
Ingeniera del software es una actividad de equipo y, para
proyectos grandes, se gasta mucho tiempo en interacciones
del equipo. Tecnologa CASE no apoya realmente estas
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 43
Clasificacin CASE
Clasificacin nos ayuda a entender los tipos diferentes
de herramientas CASE y su apoyo para actividades del
proceso
Perspectiva funcional
Herramientas se clasifican segn su funcin especfica
Perspectiva de proceso
Herramientas se clasifican segn las actividades del proceso
que se apoyan
Perspectiva de integracin
Herramientas se clasifican segn su organizacin en unidades
integradas
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 44
Clasificacin funcional de
herramientas
Tipo de Herramienta Ejemplos
De planeacin Herramientas PERT, herramientas de estimacin, hojas de clculo
De Edicin Editores de texto, editores de diagramas, procesadores de texto
De administracin de cambios Herramientas de rastreo de requerimientos, sistemas de control de
cambios
De administracin de la
configuracin
Sistemas de administracin de las versiones, herramientas de
construccin de sistemas
De construccin de prototipos Lenguajes de muy alto nivel, generadores de interfaz de usuario
De ayuda a los mtodos Editores de diseo, diccionario de datos, generadores de cdigo
De procesamiento de lenguajes Compiladores, interpretes
De anlisis de programas Generadores de referencias cruzadas, analizadores estticos
dinmicos
Para pruebas Generadores de pruebas de datos, comparadores de archivos
De depuracin Sistemas de depuracin interactiva
De documentacin Programas de esquemas de pginas, editores de imgenes
De reingeniera Sistemas de referencia cruzada, sistemas de reestructuracin de
programas
Clasificacin basada en actividad
Reengineering tools
Testing tools
Debugging tools
Program analysis tools
Language-processing
tools
Method support tools
Prototyping tools
Configuration
management tools
Change management tools
Documentation tools
Editing tools
Planning tools
Specification Design Implementation Verification
and
Validation
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 46
Integracin CASE
Herramientas
Apoyan tareas individuales del proceso tales como
consistencia del diseo, verificacin, edicin de texto, etc.
Bancos de trabajo (Workbenches)
Apoyan una fase del proceso tal como especificacin o diseo,
normalmente incluye varias herramientas integradas
Ambientes
Apoyan todo o una parte substancial de un proceso de
software completo. Normalmente incluyen varios bancos de
trabajo integrados
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 47
Herramientas, bancos de trabajo,
ambientes
Single-method
workbenches
General-purpose
workbenches
Multi-method
workbenches
Language-specific
workbenches
Programming Testing
Analysis and
design
Integrated
environments
Process-centred
environments
File
comparators
Compilers Editors
Environments Workbenches Tools
CASE
technology
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 48
Puntos importantes
Procesos de software son las actividades involucradas
en producir y evolucionar un sistema de software. Se
representan en un modelo de proceso de software
Actividades generales son especificacin, diseo e
implementacin, validacin y evolucin
Modelos genricos del proceso describen la
organizacin de los procesos del software
Modelos de proceso iterativo describen el proceso del
software como un ciclo de actividades
Ian Sommerville2000 Ingenierade Software, 6a edicin. Captulo3 Pantalla 49
Puntos importantes
Ingeniera de requerimientos es el proceso de
desarrollar una especificacin de software
Procesos de diseo e implementacin transforman la
especificacin a un programa ejecutable
Validacin involucra verificar que el sistema satisface su
especificacin y las necesidades del usuario
Evolucin se aboca a modificar el sistema despus de
que est en uso
Tecnologa CASE apoya actividades del proceso del
software

Вам также может понравиться