Unidad 1, El Modelo Del Proceso Del Software
Unidad 1, El Modelo Del Proceso Del Software
Unidad 1, El Modelo Del Proceso Del Software
Lo interesante de la POO es que proporciona conceptos y herramientas con las cuales se modela y representa el
mundo real tan fielmente como sea posible.
El modelo Orientado a Objetos.
Para entender este modelo vamos a revisar 4 conceptos bsicos:
1. Objetos:
Entender que es un objeto es la clave para entender cualquier lenguaje orientado a objetos. Existen muchas
definiciones que se le ha dado al Objeto. Primero empecemos entendiendo que es un objeto del mundo real. Un
objeto del mundo real es cualquier cosa que vemos a nuestro alrededor. Digamos que para leer este artculo lo
hacemos a travs del monitor y una computadora, ambos son objetos, al igual que nuestro telfono celular, un rbol
o un automvil.
Analicemos un poco ms a un objeto del mundo real, como la computadora. No necesitamos ser expertos en
hardware para saber que una computadora est compuesta internamente por varios componentes: la tarjeta madre,
el chip del procesador, un disco duro, una tarjeta de video, y otras partes ms. El trabajo en conjunto de todos estos
componentes hace operar a una computadora.
Internamente, cada uno de estos componentes puede ser sumamente complicado y puede ser fabricado por diversas
compaas con diversos mtodos de diseo. Pero nosotros no necesitamos saber cmo trabajan cada uno de estos
componentes, como saber que hace cada uno de los chips de la tarjeta madre, o cmo funciona internamente el
procesador. Cada componente es una unidad autnoma, y todo lo que necesitamos saber de adentro es cmo
interactan entre s los componentes, saber por ejemplo si el procesador y las memorias compatibles con la tarjeta
madre, o conocer donde se coloca la tarjeta de video. Cuando conocemos como interaccionan los componentes
entre s, podremos armar fcilmente una computadora.
Que tiene que ver esto con la programacin? La programacin orientada a objetos trabaja
de esta manera. Todo el programa est construido en base a diferentes componentes
(Objetos), cada uno tiene un rol especfico en el programa y todos los componentes pueden
comunicarse entre ellos de formas predefinidas. Todo objeto del mundo real tiene 2
componentes: caractersticas y comportamiento.
Por ejemplo, los automviles tienen caractersticas (marca, modelo, color, velocidad
mxima, etc.) y comportamiento (frenar, acelerar, retroceder, llenar combustible, cambiar
llantas, etc.). Los Objetos de Software, al igual que los objetos del mundo real, tambin
tienen caractersticas y comportamientos. Un objeto de software mantiene sus caractersticas
L.S.C.A. Ral2Monforte Chuln
MORCH Systems
Modelo:
Programacin estructurada sol
Programacin estructurada Jackson
Structured Systems Analysis and Design Methodology (SSADM)
Structured Analysis and Design Technique (SADT)
Ingeniera de la informacin (IE/IEM)
Rapid application development (RAD)
Programacin orientada a objetos (OOP)
Virtual finite state machine (VFSM)
Dynamic Systems Development Method desarrollado en UK
Scrum (desarrollo)
Rational Unified Process (RUP)
Extreme Programming(XP)
Enterprise Unified Process (EUP) extensiones RUP
Constructionist design methodology (CDM)
Unified Process (AUP)
Ao:
1969
1975
1980
1980
1981
1991
1990
1990
1995
1990
1999
1999
2002
2004
2005
Enfoque:
Framework iterativo.
Combinacin de framework lineal e iterativo.
Combinacin de framework lineal e iterativo.
Framework iterativo.
Ao:
1988.
1980
1986
1980
Modelo en cascada
Es un proceso secuencial de desarrollo en el que los pasos de desarrollo son vistos hacia abajo (como en una
cascada de agua) a travs de las fases de anlisis de las necesidades, el diseo, implementacin, pruebas
(validacin), la integracin, y mantenimiento. La primera descripcin formal del modelo de cascada se cita a
menudo a un artculo publicado por Winston Royce W.2 en 1970, aunque Royce no utiliza el trmino "cascada" de
este artculo.
Es un refinamiento altamente influenciado del modelo de etapas. Existe, para este modelo, un reconocimiento de
los ciclos de retroalimentacin entre etapas, y una gua para confinar las retroalimentaciones a las etapas sucesivas
con el objetivo de minimizar el costo del retrabajo involucrado en retroalimentaciones a travs de muchas etapas.
Las ventajas que presentan tanto el modelo de etapas y de cascada tiene relacin con la idea de postular un marco
de trabajo claro, que reconoce y define las actividades involucradas en el desarrollo de software, permitiendo
establecer relaciones de cooperacin entre ellas. Corresponden, tambin, a los mtodos ms usados en desarrollo de
software y que han sido exitosos durante dcadas tanto en el desarrollo de grandes sistemas como en el de
pequeos.
Tanto el modelo de etapas como el de cascada, presentan algunas dificultades comunes. Por ejemplo, la
especificacin de los problemas. Ambos mtodos asumen que el diseador puede distinguir entre lo que el sistema
debe hacer y como el sistema lo har; pero algunos problemas no pueden ser divididos tan fcilmente para ser
atacados desde este prisma.
Por otro lado, generalmente los requerimientos son especificados al inicio del proyecto y, paradojalmente, cuando
se tiene la claridad suficiente para definir precisamente lo que se quiere es cuando se est en las ltimas etapas del
proyecto. Esto es consecuencia, en general, de que los clientes no estn familiarizados con la tecnologa, con lo
cual producen requerimientos muy vagos, que son interpretados arbitrariamente por los desarrolladores.
Otro factor importante es que estos mtodos asumen que una vez que los requerimientos han sido definidos
entonces ellos no cambiarn ms. Pero, dependiendo de la complejidad del proyecto, la implementacin final
puede ocurrir meses o, eventualmente, aos despus de que los requerimientos han sido especificados; as, en las
ltimas etapas del proyecto, los requerimientos pueden haber cambiado.
Existira un nfasis en la elaboracin de documentos. El sistema completo es descrito y registrado en papel, cada
etapa produce cierta cantidad de documentos. Esto lleva a que, por ejemplo, para sistemas complejos las
especificaciones de requerimientos pueden ser de cientos de pginas, explicando todos u cada uno de los detalles
del sistema. Y es difcil poder visualizar a priori, desde ste volumen de papel, las caractersticas del sistema.
Por ltimo, se ha detectado que el enfoque lineal de estos mtodos no sera el adecuado para reflejar el proceso de
desarrollo de software. Esto explica que se diga que para algunos proyectos el modelo clsico los lleva a seguir las
etapas en orden incorrecto. Ms an, es posible que todas las etapas del proyecto, estn comprimidas dentro de
L.S.C.A. Ral7Monforte Chuln
MORCH Systems
el
c) Diseo.
La estructura de los datos, la arquitectura del sw,
detalle procedimental, y la caracterizacin de la
interfase.
L.S.C.A. Ral8Monforte Chuln
MORCH Systems
el
El prototipado
El prototipado es el framework de actividades dedicada al desarrollo de software prototipo, es decir, versiones
incompletas del software a desarrollar.
Este es un modelo del comportamiento del sistema que puede ser usado para entenderlo completamente o ciertos
aspectos de l y as clarificar los requerimientos... Un prototipo es una representacin de un sistema, aunque no es
un sistema completo, posee las caractersticas del sistema final o parte de ellas".
Las fases que comprende el mtodo de desarrollo orientado a prototipos seran:
a) Investigacin preliminar
Las metas principales de esta fase son: determinar el problema y su mbito, la importancia y sus efectos
potenciales sobre la organizacin por una parte y, por otro lado, identificar una idea general de la solucin para
realizar un estudio de factibilidad que determine la factibilidad de una solucin software.
b) Definicin de los requerimientos del sistema
El objetivo de esta etapa es registrar todos los requerimientos y deseos que los usuarios tienen en relacin al
proyecto bajo desarrollo. Esta etapa es la ms importante de
todo el ciclo de vida, es aqu donde el desarrollador determina
los requisitos mediante la construccin, demostracin y
retroalimentaciones del prototipo. Por lo mismo esta etapa ser
revisada con ms detalle luego de esta descripcin.
c) Diseo tcnico
Durante la construccin del prototipo, el desarrollador ha
obviado el diseo detallado. El sistema debe ser entonces
rediseado y documentado segn los estndares de la
organizacin y para ayudar a las mantenciones futuras. Esta
fase de diseo tcnico tiene dos etapas: por un lado, la
produccin de una documentacin de diseo que especifica y
describe la estructura del software, el control de flujo, las
interfaces de usuario y las funciones y, como segunda etapa, la
produccin de todo lo requerido para promover cualquier
mantencin futura del software.
L.S.C.A. Ral9Monforte Chuln
MORCH Systems
Note que el desarrollo incremental es 100% compatible con el modelo cascada. El desarrollo incremental no
demanda una forma especfica de observar el desarrollo de algn otro incremento. As, el modelo cascada puede
ser usado para administrar cada esfuerzo de desarrollo, como se muestra en la figura.
El modelo de desarrollo incremental provee algunos beneficios significativos para los proyectos:
Construir un sistema pequeo es siempre menos riesgoso que construir un sistema grande.
Al ir desarrollando parte de las funcionalidades, es ms fcil determinar si los requerimientos planeados para
los niveles subsiguientes son correctos.
Reduciendo el tiempo de desarrollo de un sistema (en este caso en incremento del sistema) decrecen las
probabilidades que esos requerimientos de usuarios puedan cambiar durante el desarrollo.
L.S.C.A. Ral11
Monforte Chuln
MORCH Systems
Los errores de desarrollo realizados en un incremento, pueden ser arreglados antes del comienzo del prximo
incremento.
Espiral
Los principios bsicos son:
La atencin se centra en la evaluacin y reduccin del riesgo del proyecto dividiendo el proyecto en segmentos
ms pequeos y proporcionar ms facilidad de cambio durante el proceso de desarrollo, as como ofrecer la
oportunidad de evaluar los riesgos y con un peso de la consideracin de la continuacin del proyecto durante todo
el ciclo de vida.
Cada viaje alrededor de la espiral atraviesa cuatro
cuadrantes bsicos:
(1)
determinar
objetivos,
alternativas,
y
desencadenantes de la iteracin; (2) Evaluar
alternativas; Identificar y resolver los riesgos; (3)
desarrollar y verificar los resultados de la iteracin,
y (4) plan de la prxima iteracin.
Cada ciclo comienza con la identificacin de los
interesados y sus condiciones de ganancia, y
termina con la revisin y examinacin.
El modelo Espiral de Boehm para Ingeniera de
Software agrupa las mejores caractersticas del
modelo del ciclo de vida clsico y de prototipos.
Pero tambin agrega nuevas funciones que no estn
incluidas en los otros modelos, como el anlisis de
riesgo. El modelo espiral define cuatro actividades principales para el ciclo de vida.
I. Planificacin
La determinacin de los objetivos del proyecto, alternativas y restricciones.
II. Anlisis de Riesgo
El anlisis de alternativas y la identificacin y solucin de riesgos.
III. Ingeniera
Desarrollo del producto.
IV. Evaluacin del cliente
El asentimiento de los resultados de la ingeniera.
El modelo es representado por una espiral dividida en cuatro cuadrantes, en que cada uno describe las actividades
mencionadas anteriormente. El modelo espiral utiliza un esquema de desarrollo iterativo donde la primera iteracin
comienza en el centro del crculo e, incrementalmente, se va desplazando hacia afuera. Las siguientes iteraciones
sucesivas son versiones ms completas del software que est siendo construido. Al principio de cada iteracin del
ciclo de vida se hace un anlisis de riesgo, mientras, por el otro extremo, la revisin del proyecto se realiza al final
de la iteracin. As, se puede contrarrestar cualquier riesgo observado mediante las acciones adecuadas en el
tiempo preciso.
L.S.C.A. Ral12
Monforte Chuln
MORCH Systems
L.S.C.A. Ral14
Monforte Chuln
MORCH Systems
Top-down programming, evolucionado en la dcada de 1970 por el investigador de IBM Harlan Mills (y Niklaus
Wirth) en Desarrollo Estructurado.
Proceso Unificado, es una metodologa de desarrollo de software, basado en UML. Organiza el desarrollo de
software en cuatro fases, cada una de ellas con la ejecucin de una o ms iteraciones de desarrollo de software:
creacin, elaboracin, construccin, y las directrices. Hay una serie de herramientas y productos diseados para
facilitar la aplicacin. Una de las versiones ms populares es la de Rational Unified Process.
Cambios de negocio: el problema que resolva nuestro software ha cambiado y nuestro software no se ha
adaptado.
Falsa riqueza: el software hace muchas cosas tcnicamente muy interesantes y divertidas, pero no resuelven el
problema de nuestro cliente, ni hace que ste gane ms dinero.
Cambios de personal: despus de unos aos de trabajo los programadores comienzan a odiar el proyecto y lo
abandonan.
Como respuesta a los problemas aplicando metodologas tradicionales surgieron otras metodologas que tratan de
adaptarse a la realidad del desarrollo de software.
El encanto de estas metodologas giles es su reaccin ante la burocracia de las metodologas monumentales. Estos
nuevos mtodos buscan un justo medio entre ningn proceso y demasiado proceso, proporcionando simplemente
suficiente proceso para que el esfuerzo valga la pena.
El resultado de todo esto es que los mtodos giles cambian significativamente algunos de los nfasis de los
mtodos ingenieriles. La diferencia inmediata es que son menos orientados al documento, exigiendo una cantidad
ms pequea de documentacin para una tarea dada. De muchas maneras son ms bien orientados al cdigo:
siguiendo un camino que dice que la parte importante de la documentacin es el cdigo fuente.
Desarrollo
Metodologas pesadas.
Una metodologa de desarrollo de software Orientado a Objetos consta de:
Conceptos y diagramas.
Etapas y definicin de entregas en cada una de ellas.
Actividades y recomendaciones.
Una metodologa de desarrollo de software Orientada a Objetos basada en UML.
Se presenta a continuacin un resumen de las principales etapas y actividades basadas en UML.
Esta metodologa es extractada de las metodologas existentes, en particular:
Object
Grady Booch
Object
Oriented
Design Anlisis de Requerimientos
Oriented
with
Applications Anlisis
de
Dominio
Design
Benjamming
Cummings Diseo
1991
Objectory
Ivar Jacobson
Object-Oriented
Software Anlisis de Requerimientos
Enginnering
Anlisis
de
Robustez
A Use Case Driven Approach Diseo
Addison-Wesley
Implementacin
1992
Pruebas
Object
James Rumbaugh et. al.
Object Oriented Modeling and Anlisis
Modeling
Design
Diseo
del
Sistema
Technique
Prentice
Hall Diseo
de
Objetos
1991
Implementacin
Estas tres metodologas van a ser fusionadas a finales de 1997 en una sola, basada en la notacin UML.
L.S.C.A. Ral16
Monforte Chuln
MORCH Systems
Lema:
El mejor amigo del estudiante es el conocimiento, pues en el encontraras que hacer en el maana. Y recuerda un licenciado no
es una copia, es original y se atreve a cambiar una realidad, no importa el tiempo o el espacio, todo es posible mientras creas
que es as.
Gracias a Dios: Ya vas hacer profesionista, ser profesional es parte de una mejor calidad de vida para ti y para toda tu
familia, lograrlo es una gran satisfaccin de manera espiritual, emocional, social y laboral; bscalo, esfurzate y disfrtalo; y
veras que ser profesionista es excelentemente profesional.
MORCH Systems.
L.S.C.A. Ral19
Monforte Chuln
MORCH Systems