Você está na página 1de 34

El Producto y el Proceso

(Cap. I y II , Ing. del Software - Un Enfoque Prctico, Roger S.


Pressman, 5ta Edicin).

Qu es la Ingeniera del Software?

(1) La aplicacin de un enfoque sistemtico,


disciplinado y cuantificable hacia el desarrollo,
operacin y mantenimiento del Software; es decir
la aplicacin de la Ingeniera al Software.
(2) El estudio de enfoques como (1).[IEEE, 1993]

1
El Producto Caractersticas del SW
Producto y vehculo.
Lgico, no fsico.
Se desarrolla, no se fabrica.
No se desgasta, se deteriora.
Mayora hecho a medida, tendencia a reusar.
En los 60s, subrutinas de clculos numricos.
Actualidad, biliotecas de componentes (objetos).

2
El Producto Aplicaciones del SW
Dificil establecer compartimientos netamente separados.
SW de Sistemas
SW de Tiempo Real
SW de Negocio o Gestin
SW de Ingeniera o Cientfico
SW Embebido o Empotrado
SW de PC
SW de IA
SW basado en la Web
3
El Producto - Mitos del Software
Propagaron confusin e informacin errnea.

Del administrador del proyecto


Mitos del SW Del usuario final o cliente
Del desarrollador

4
El Producto - Mitos del Software
Ejemplos
Si fallamos en la planificacin, podemos aadir ms
programadores y adelantar el tiempo perdido (MA)

Los requisitos cambian continuamente, pero los cambios pueden


acomodarse fcilmente porque el SW es flexible (MC)

Lo nico que se entrega al terminar el proyecto es el programa


funcionando (MD).

5
El Proceso

Qu es?
Marco de trabajo de tareas a realizar para desarrollar SW de
alta calidad.

Es sinnimo de Ingeniera del Software?


Define un enfoque para desarrollar SW en forma ingenieril,
pero la ISW comprende, adems de un Proceso, Mtodos y
Herramientas.

6
Qu es la Ingeniera del Software?

Pressman: Tecnologa multicapa

Herramientas
Mtodos
Proceso Capa fundamental
Un enfoque de calidad

7
El Proceso Visin Genrica

Ing. Sistemas
Definicin
Planificacin (QUE)
Anlisis de req.
Desarrollo
Diseo (COMO)
G. de Cdigo
Prueba Mant. Correctivo Soporte
Mant. Adaptativo (CAMBIOS)
Mant. Perfectivo
Mant. Preventivo o Reingeniera
del Software 8
El Proceso
Modelo de Capacidad de Madurez (CMM)

Nivel 1: Inicial
Nivel 2: Repetible
Nivel 3: Definido
Nivel 4: Gestionado
Nivel 5: Optimizado

9
Modelo Lineal Secuencial

Ciclo de vida clsico, modelo en cascada


+ antiguo, + usado
Enfoque sistemtico secuencial

Anlisis
Diseo
Codif.
Ing. de Sistemas Prueba
Mant.
10
Modelo Lineal Secuencial
Crticas:
Proyectos reales raras veces se ajustan.
Raras veces cliente expone todos los req. de entrada.
Producto operativo al final => Paciencia (cliente) alta.
Consejo:
Usar cuando todos los requerimientos han sido establecidos
claramente de entrada.

11
Modelo de Construccin de Prototipos

No estn claros los reqs. de entrada


Iterativo. Hasta cuando se itera?
Working prototype, desechar y empezar con desarrollo de sistema.

Escuchar al Construir
cliente prototipo

Validar
prototipo 12
Modelo de Construccin de Prototipos

Crticas:
Cliente cree que es el sistema.
Peligro de familiarizacin con malas elecciones iniciales
(quick and dirty).
Consejo:
Usar cuando inicialmente no estn claros los requerimientos.
Definir claramente de entrada las reglas de juego con el
cliente.
No ceder a presin del cliente.
13
Modelo DRA (Desarrollo Rpido de
Aplicaciones)

Lineal secuencial con ciclo extremadamente corto.


Candidatos: sistemas que se pueden modularizar
=> equipos de desarrollo paralelos.
Basado en el uso de componentes y T4G.

14
Equipo # n

Modelo de
Negocio
Modelo DRA
Equipo # 2 Modelo de
Datos
Modelo de
Negocio Modelo de
Proceso
Equipo # 1 Modelo de
Qu informacin? Datos Generacin
Quin la genera? Modelo de de Aplic.
Negocio Modelo de
A dnde va? Prueba y
Proceso
Entrega
Identificacin de Modelo de Generacin de
Objetos y relaciones Datos Aplic.

Descripciones de procesos de Modelo de Prueba y


negocio para ABM de objetos de MD Proceso Entrega

T4G + Reusabilidad de Generacin de


Componentes Aplicacin

Prueba de Comp. Nuevos e interfaces. Prueba y


Entrega Tiempo
15
Modelo DRA

Crticas:
Proyectos grandes => gran nro. de personas.
Alto compromiso en tiempo.
No apto para todo tipo de sistema (ej. no modularizable,
baja reusabilidad de componentes).
Desaconsejable cuando riesgos tecnolgicos altos (ej.
Uso de nuevo lenguaje) o alta interoperatividad con
programas ya existentes.

16
Modelos Evolutivos

Se adaptan ms fcilmente a los cambios


introducidos a lo largo del desarrollo.
Iterativos
En cada iteracin se obtienen versiones ms
completas del SW.
Modelos Evolutivos:
Modelo Incremental (*)
Modelo en Espiral (*)
Modelo de Desarrollo Basado en Componentes (*)
Modelo WINWIN
Modelo de Desarrollo Concurrente
17
Modelo Incremental

Iteracin de Lineal Secuencial.


Cada iteracin devuelve un Incremento
o versin operativa. (Ej. Editor de texto).
Util cuando no se est seguro de cumplir
con plazos de tiempo o se tiene una fecha
imposible de cambiar.
18
Modelo Incremental

Ing. de Sistemas
Entrega 1er
Inc1 Anlisis Diseo Codif. Prueba Incremento

Inc2 Anlisis Diseo Codif. Prueba Entrega 2do


Incremento

Entrega 3er
Inc3 Anlisis Diseo Codif. Prueba Incremento

Tiempo
19
Modelo en Espiral

20
Modelo en Espiral
Util para proyectos grandes.
Permite usar el prototipado en todas las etapas de la evolucin
para reducir el riesgo.
Mantiene el enfoque sistemtico de los pasos sugeridos por el
lineal secuencial, pero lo incorpora dentro de un marco
iterativo ms real.
Crticas:
Dificil de convencer a los clientes de que es controlable.
Requiere mucha habilidad para el anlisis de riesgos y de esta
habilidad depende su xito.
No ha sido utilizado tanto como el lineal secuencial o el de
prototipos.

21
Desarrollo Basado en Componentes
Basado en modelo en Espiral (evolutivo e iterativo) +
Tecnologas de Objetos.
Enfatiza la Reusabilidad.
Planificacin Ident. Comps. candidatos
Anlisis de Riesgos
Comunicacin
Buscar Comps. en biblioteca
con el Cliente


Ingeniera,
Construccin y Construir Extraer
Entrega
Evaluacin
Colocar en biblioteca
del Cliente

Construir iteracin 22
Modelo de Mtodos Formales
Usan notacin rigurosa.
Especificaciones sin ambigedades.
Utiles para sistemas crticos.
Demostraciones formales de propiedades.
Dificulta validacin con cliente => combinacin
con otras tcnicas semi-formales.
Alto nivel de experticia en lgica y matemtica.

23
Tcnicas de Cuarta Generacin (T4G)
Herramientas que facilitan la realizacin de
especificaciones a alto nivel -> cdigo fuente.
Basadas en Lenguajes de 4ta Generacin (L4G).
Ventajas: Reduccin en tiempo de desarrollo.

Lenguaje de Generador de Planillas de Generador de Generador de


Consulta a BD Pantallas Clculo Informes Cdigo

Sistema de Administracin de Base de Datos

Un entorno de desarrollo de software


24
basado en Tcnicas de 4ta Generacin
Tcnicas de Cuarta Generacin (T4G)
Crticas:
Cdigo ineficiente.
No mas fciles de usar que L3G.
Mantenimiento cuestionable.
Consejo: Aunque se usen T4G se debe hacer anlisis,
diseo y pruebas (sino mala calidad, mantenimiento
pobre, baja aceptacin por el cliente).

25
LAS
METODOLOGIAS
AGILES
Procesos y tcnicas para desarrollo de software

Manifiesto gil (2001)


Origen de los mtodos giles
En marzo de 2001, 17 crticos de estos modelos,
convocados por Kent Beck, que acababa de definir una
nueva metodologa denominada Extreme Programming, se
reunieron en Salt Lake City para discutir sobre los modelos
de desarrollo de software.
En la reunin se acu el trmino Mtodos giles para
definir a aquellos que estaban surgiendo como alternativa a
las metodologas formales, (CMM-SW, PMI, SPICE) a las que
consideraban excesivamente pesadas y rgidas por su
carcter normativo y fuerte dependencia de planificaciones
detalladas, previas al desarrollo.

27
Procesos y tcnicas para desarrollo de software

Manifiesto gil (2001)


Origen de los mtodos giles
Los integrantes de la reunin resumieron en cuatro
postulados lo que ha quedado denominado como
Manifiesto gil, que compendia el espritu en el que se
basan estos mtodos.
Aunque como se ver ms adelante, en la actualidad hay
aproximaciones que combinan lo mejor de ambos enfoques
(formal y gil), hasta 2010, en cada lado sus defensores
adoptaron posturas radicales, quiz ms ocupadas en
descalificar a la contraria que en estudiarla y conocerla para
mejorar la propia.

28
Procesos y tcnicas para desarrollo de software

Manifiesto gil (2001)

Estamos poniendo al descubierto mejores mtodos para desarrollar software, hacindolo y


ayudando a otros a que lo hagan. Con este trabajo hemos llegado a valorar:

A los individuos y su interaccin por encima de los procesos y las herramientas

El software que funciona por encima de la documentacin exhaustiva

La colaboracin con el cliente por encima la negociacin contractual

La respuesta al cambio por encima seguimiento de un plan

Aunque hay valor en los elementos de la derecha, valoramos ms los de la izquierda

Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew
Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas

http://agilemanifesto.org/

29
Principios del Manifiesto gil

Nuestra mayor prioridad es satisfacer al cliente mediante la entrega temprana y


continua de software con valor.

Aceptamos que los requisitos cambien, incluso en etapas tardas del desarrollo.
Los procesos giles aprovechan el cambio para proporcionar ventaja
competitiva al cliente.

Entregamos software funcional frecuentemente, entre dos semanas y dos meses,


con preferencia al periodo de tiempo ms corto posible.

Los responsables de negocio y los desarrolladores trabajamos juntos de forma


cotidiana durante todo el proyecto.

http://agilemanifesto.org/iso/es/principles.html
Principios del Manifiesto gil

Los proyectos se desarrollan en torno a individuos motivados. Hay que


darles el entorno y el apoyo que necesitan, y confiarles la ejecucin del
trabajo.
El mtodo ms eficiente y efectivo de comunicar informacin al equipo de
desarrollo y entre sus miembros es la conversacin cara a cara.

El software funcionando es la medida principal de progreso.

Los procesos giles promueven el desarrollo sostenible. Los promotores,


desarrolladores y usuarios debemos ser capaces de mantener un ritmo
constante de forma indefinida.

http://agilemanifesto.org/iso/es/principles.html
Principios del Manifiesto gil

La atencin continua a la excelencia tcnica y al buen diseo mejora la


Agilidad.
La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado,
es esencial.

Las mejores arquitecturas, requisitos y diseos emergen de equipos auto-


organizados.

A intervalos regulares el equipo reflexiona sobre cmo ser ms efectivo


para a continuacin ajustar y perfeccionar su comportamiento en
consecuencia.

http://agilemanifesto.org/iso/es/principles.html
Procesos y tcnicas para desarrollo de software

Mtodos giles

Modelos genricos Modelos para software

Adaptaciones
para softw.
1997
TickIT
Modelos y estndares

1991
ISO 9000-3
de calidad

1959 1979 1987 Trillium


MIL-Q 9858 BS 5750 ISO 9000 Bootstrap
1995

Modelos especficos
ISO 12207

para software.
1995 TR 15504 2003-05
Proy. SPICE ISO 15504
1993 Modelos 2001
CMM-SW CMM CMMI

DSDM
Tcnicas y mtodos

SCRUM
CRYSTAL
XP
giles

ASD
PP
ISD
AM

2000
1995 Manifiesto
gil
33
Procesos y tcnicas para desarrollo de software

Mtodos giles

5. Procesos primarios 5. Procesos de soporte

5.1 Adquisicin 6.1 Documentacin


Recogen tcnicas, buenas prcticas
contrastadas por profesionales 5.2 Suministro 6.2 Gestin de la configuracin
reconocidos.
6.3 Control de calidad
Cada una tiene sus caractersticas propias
y cubre un rango de reas de procesos 5.3
6.4 Verificacin
ms o menos amplia: Operacin

Tendencia a combinarlas para dar


6.5 Validacin
mayor cobertura en el ciclo de vida 5.3
Desarrollo
6.6 Reuniones
Han surgido de entornos reales de
desarrollo de software 5.3

Responden mejor a la realidad del Mantenimiento 6.7 Auditora

software y las diferencias con


6.8 Resolucin de problemas
produccin industrial.

7. Procesos organizacionales

7.1 Gestin 7.2 Infraestructura

7.3 Mejora 7.4 Formacin

34

Você também pode gostar