Beruflich Dokumente
Kultur Dokumente
Modelos y Proceso
de desarrollo de
Software.
1.1- Modelos,
conceptos.
Qu es un modelo y por qu
modelamos?
Los proyectos de software que fracasan lo hacen por circunstancias
propias, pero todos los proyectos con xito se parecen en muchos
aspectos. Entre todos los aspectos que hacen que un proyecto tenga xito
uno en comn es el uso del modelado.
El modelado es una tcnica de Ingeniera probada y bien aceptada. Se
construyen modelos arquitectnicos de casas y edificios para ayudar a sus
usuarios a visualizar el producto final antes que el mismo est construido.
Incluso podemos elaborar modelos matemticos para analizar los efectos
de vientos o terremotos sobre los edificios.
Un modelo es una simplificacin de la realidad. Un modelo proporciona los
planos de un sistema. Pueden ser planos generales, que ofrecen una visin
global del sistema en consideracin, as como planos detallados. Un buen
modelo incluye, para un nivel de abstraccin dado, los elementos que
tienen gran influencia y omite aquellos menores que no son relevantes.
Todo sistema puede ser caracterizado desde diferentes perspectivas,
utilizando diferentes modelos. Un modelo puede ser estructural resaltando
la organizacin del sistema o puede ser de comportamiento, destacando su
dinmica.
Se construyen modelos para comprender mejor el sistema que estamos
desarrollando. A travs del modelado se persiguen los siguientes objetivos:
la
estructura
el
Esto quiere decir que hay que elegir bien los modelos. Los modelos
adecuados pueden arrojar mucha luz sobre los problemas de desarrollo
ms complicados, brindando una comprensin que no podramos obtener
de otra manera. Ahora bien, si se incurre en la utilizacin de modelos
errneos o inadecuados, stos desorientarn haciendo que uno se centre
en cuestiones irrelevantes.
Los mejores tipos de modelos son aquellos que permiten elegir el grado de
detalle dependiendo de quin est viendo el sistema y por qu necesita
verlo. Lo que un usuario final espera de un modelo del sistema no es lo
mismo que necesita un diseador. Un analista o un usuario final se
centrarn en qu hace el sistema; un diseador/desarrollador se
1.2- Tipos de
metodologas
Concepto de Metodologa.
En principio podemos definir una metodologa como ... un conjunto de
filosofas, fases, procedimientos, reglas, tcnicas, herramientas,
documentacin y aspectos de formacin para los desarrolladores de
sistemas de informacin 2, segn lo expresa Piattini (2004, pg. 79)citando a Maddison - . De acuerdo a esta definicin, una metodologa es
entonces un conjunto de componentes que especifican:
Fuente: Libro Ingeniera del Software Roger Pressman (2006), Pg. 50.
Fuente: Libro Ingeniera del Software Roger Pressman (2006), pg. 52.
Fuente: Libro Ingeniera del Software Roger Pressman (2006), pg. 54.
10
11
Fuente: Libro Ingeniera del Software Roger Pressman (2006), pg. 55.
12
Fuente: Libro Ingeniera del Software Roger Pressman (2006), pg. 58.
13
1.3- Caractersticas de
los Modelos Orientados
a Objetos
El Paradigma Orientado a Objetos
En los Modelos Orientados a Objetos, el sistema se puede ver (en trminos
de percepcin) como una coleccin de objetos que colaboran entre s para
obtener un objetivo comn. Las operaciones que modifican el estado de los
objetos son sencillas; los objetos se construyen a partir de otros objetos lo
que lleva a que los sistemas se puedan construir a partir de componentes
probados.
Por lo enunciado anteriormente, las tcnicas orientadas a objetos se
pueden utilizar como medios para el diseo sencillo de sistemas complejos.
La orientacin a objetos es muy poderosa cuando se combinan varias
tecnologas: metodologas de Anlisis y Diseo Orientado a Objetos,
herramientas CASE (Ingeniera de Software Asistida por Computadora),
Programacin Visual, Generadores de Cdigo, entre otras.
El anlisis y diseo orientado a objetos tiene algunas caractersticas
importantes:
14
Abstraccin
Encapsulamiento
Modularidad
Jerarqua
Abstraccin
15
Encapsulamiento
16
Modularidad
17
Jerarqua
Objetos y Clases
OBJETO.
Concepto
18
Estado:
19
Comportamiento:
Ningn objeto existe de forma aislada. Los objetos reciben acciones y ellos
mismos actan sobre otros objetos.
El comportamiento es cmo acta y reacciona un objeto, en trminos de
sus cambios de estado y paso de mensajes (Booch Grady, 1996, pg. 101).
es decir, el comportamiento de un objeto representa su actividad visible y
comprobable exteriormente. Una operacin representa un servicio que
todos los objetos de una clase ofrecen a sus clientes. Se reconocen cinco
tipos de operaciones sobre un objeto. Los tres tipos ms comunes de
operaciones son los siguientes:
Modificador: Una operacin que altera el estado de un objeto
(modifica el valor de alguno/s de sus atributos. Por ejemplo:
depositar, extraer, transferir para un objeto cajaDeAhorro.
Selector: Una operacin que accede al estado de un objeto (a
alguno/s de sus atributos) pero no altera ese estado. Por ejemplo:
mostrarTitular, mostrarSaldo, mostrarNumeroCuenta.
Iterador: Una operacin que permite acceder a todas las partes de
un objeto en algn orden perfectamente establecido. Por ejemplo,
si un objeto Titular tiene una propiedad nroTelfono con mltiples
valores (para el telfono particular, laboral, celular) la operacin
mostrarTelfono ser una operacin iteradota.
Hay otros dos tipos de operaciones habituales, que representan la
infraestructura necesaria para crear y destruir objetos (instancias de una
clase):
Constructor: Una operacin que crea un objeto y/o inicializa su
estado.
Destructor: Una operacin que libera el estado de un objeto y/o
destruye el propio objeto.
Unificando las definiciones de estado y comportamiento, Rebecca WirfsBrock defini las responsabilidades de un objeto de manera que stas
incluyen el conocimiento que un objeto mantiene y las acciones que puede
llevar a cabo.
20
Identidad:
CLASE
Concepto:
21
22
23
Enlaces:
Como nos cita Booch el trmino enlace es definido por Rumbaugh como
una conexin fsica o conceptual entre objetos. (Booch Grady, 1996).
Un objeto colabora con otros a travs de sus enlaces con stos. Esto
quiere decir que un enlace denota la asociacin especfica por la cual un
24
objeto (el cliente) utiliza los servicios de otro objeto (el servidor) o a travs
de la cual un objeto puede comunicarse con otro.
Un concepto esencial en el paradigma orientado a objetos, es el hecho de
que los objetos colaboran entre s para llevar a cabo un comportamiento
superior.
Una colaboracin representa la solicitud de un servicio desde un objeto
cliente a un objeto servidor para cumplir una responsabilidad del cliente.
Los objetos de una clase pueden cumplir una responsabilidad por s solos o
pueden requerir la asistencia de otros objetos (de otras clases).
Se dice que un objeto S colabora con otro objeto C, si el objeto C para
cumplir con una responsabilidad, necesita enviar algn mensaje a S
solicitndole un servicio. Desde el punto de vista del cliente, C, cada una
de sus colaboraciones estn asociadas con una responsabilidad particular
implementada por el servidor, S.
Un mensaje enviado de un objeto a otro representa la existencia de un
enlace entre ambos. Los mensajes se muestran como lneas dirigidas, que
representan su direccin, con una etiqueta que nombra al propio mensaje.
Aunque el paso de mensajes es iniciado por el cliente y dirigido hacia el
servidor los datos pueden fluir en ambas direcciones a travs de un enlace:
del cliente al servidor: parmetros
del servidor al cliente: respuesta
Supongamos que el objeto cajaDeAhorro, que conoce quin es su
titular, como parte de su responsabilidad de mostrar sus datos
completos debe mostrar el nombre del titular. Entonces necesita pedirle al
objeto Titular que le retorne su nombre, para ello le enviar un mensaje
indicndole tal solicitud. El objeto Titular responder retornndole su
nombre. As se manifiesta el enlace entre ambos objetos. Esto puede
representarse grficamente de la siguiente manera:
25
Agregacin:
Herencia:
26
27
Observacin: La simbologa que se est utilizando para graficar las relaciones entre clases es
la establecida por UML.
Asociacin:
Una asociacin es una relacin estructural que especifica que los objetos
de una clase estn conectados con los objetos de otra. Una asociacin slo
denota una dependencia semntica entre dos clases pero no establece la
forma exacta en que una clase se relaciona con la otra; slo puede
denotarse esa semntica nombrando el papel que desempea cada clase
en relacin con la otra.
Dada una asociacin entre dos clases se puede navegar desde un objeto de
una clase hasta un objeto de la otra.
Grficamente, una asociacin se representa como una lnea continua que
conecta la misma o diferentes clases:
28
29
30
Agregacin:
31
32
Dependencia:
DIAGRAMA DE CLASES
Los diagramas de clases son los ms utilizados en el modelado de sistemas
orientados a objetos. Un diagrama de clases muestra un conjunto de clases
as como sus relaciones.
Los diagramas de clases se utilizan para modelar la vista de diseo esttica
de un sistema (ver el punto 2.1 Vistas de UML en este mismo mdulo).
Principalmente esto incluye modelar el vocabulario del sistema. Un
33
diagrama de clases se puede utilizar para modelar las clases lgicas, que
son tpicamente la clase de cosas de las que habla la gente de negocios de
una organizacin (los usuarios). En este caso se usa el diagrama de clases
para modelar el dominio del problema pero tambin se utiliza el
diagrama de clases para mostrar las clases de implementacin, que son las
cosas con las que trabajan los programadores. Este enfoque se aplica a
partir de la actividad de Diseo de un sistema.
En un diagrama de clases podemos encontrar:
Clases
Relaciones: herencia,
dependencia.
asociacin
(su
variante:
agregacin),
34
1.4- Metodologas
estructuradas vs.
Metodologas
Orientadas a Objetos
El tema del carcter del software es tratado por Grady Booch entre otros
autores, al explicar que la complejidad innata del software se deriva de:
35
36
37
38
39
40
41
42
de
43
Grfico de las vistas 4+1 Fuente: Libro El Lenguaje Unificado de Modelado Grady
Booch y otros (1999), Pg. 27.
44
2.2- El proceso
unificado de desarrollo
Un proceso es un conjunto de pasos ordenados para alcanzar un objetivo.
En la ingeniera de software el objetivo es construir un producto de
software o mejorar uno existente de modo que satisfaga las necesidades
del usuario de forma eficiente y predecible.
Un proceso de desarrollo de software es el conjunto de actividades
necesarias para transformar los requisitos de un usuario en un sistema
software.
45
46
Comprender el sistema.
Organizar el desarrollo.
Fomentar la reutilizacin.
47
48
Cada ciclo produce una nueva versin del sistema, que es un producto
preparado para su entrega. Consta de cdigo fuente incluido en
componentes que puede compilarse y ejecutarse, manuales y otros
productos asociados. Para llegar a ese producto, debern desarrollarse los
siguientes modelos:
49
Fase de Inicio
Principalmente esta fase responde a las preguntas sobre cules son las
principales funciones del sistema para sus usuarios ms importantes, cmo
podra ser la arquitectura del sistema y cul es el plan del proyecto,
adems de cunto costar desarrollar el sistema.
Se realiza un modelo de casos de uso simplificado, con los ms crticos; la
arquitectura es un esbozo que muestra los principales subsistemas, se
identifican y priorizan los riesgos, se planifica en detalle la fase de
elaboracin y se estima el proyecto.
Fase de elaboracin
Fase de construccin
Fase de transicin
50
Artefacto
Trabajador
Actividades
Son trabajos significativos para una persona que acta como trabajador.
Requisitos
Anlisis
Diseo
Implementacin
Prueba
Sobre estos flujos de trabajo, las actividades que se realizan en ellos, los
trabajadores que intervienen y los artefactos que se producen, tratan las
unidades que siguen.
En la figura que se muestra a continuacin se visualiza cmo se combinan
los flujos de trabajos por cada iteracin en cada una de las fases.
52
53
Bibliografa
www.uesiglo21.edu.ar
54