Академический Документы
Профессиональный Документы
Культура Документы
Programa de la asignatura
Mtodos y modelos de desarrollo de software
Clave:
Licenciatura
TSU
15142420 / 16142420
1
Ciencias Exactas, Ingenieras y Tecnologa | Desarrollo de Software
1
ndice
Presentacin de la unidad ................................................................................................. 3
Propsito ........................................................................................................................... 3
Competencia especfica..................................................................................................... 3
Temario de la unidad ......................................................................................................... 3
2. Modelos para el desarrollo de software.......................................................................... 4
2.1. Modelos de diseo ...................................................................................................... 4
2.2. Modelos de desarrollo ................................................................................................. 7
Autorreflexiones ............................................................................................................... 11
Cierre de la unidad .......................................................................................................... 11
Para saber ms ............................................................................................................... 15
Fuentes de consulta ........................................................................................................ 16
2
Ciencias Exactas, Ingenieras y Tecnologa | Desarrollo de Software
2
Presentacin de la unidad
Bienvenido (a) a la segunda unidad de la asignatura Mtodos y Modelos de Desarrollo
de Software (MMDS). En la unidad anterior conociste conceptos y tcnicas para disear
diagramas UML, con el objetivo de especificar los procesos que cubren los requerimientos
para la creacin de sistemas solicitados por un cliente, adems conociste una
metodologa para la administracin y desarrollo de software conocido como RUP. Pero
RUP no es la nica metodologa existente con un modelo de desarrollo que cubra a toda
la gama de proyectos requeridos por los diferentes clientes, existen otros modelos de
desarrollo de software, que te podrn ayudar para dar solucin a esos proyectos, por ese
motivo es importante en esta unidad conocer los diferentes tipos de modelos, los modelos
de diseo (arquitectnicos) y los de desarrollo de software. Los modelos de diseo te
servirn para definir la arquitectura que debe de existir en el sistema para que los
usuarios encuentren disponibles los servicios y programas que t desarrollars y los
modelos de desarrollo te servirn para definir la metodologa apropiada para la creacin
de un software de acuerdo a las necesidades del cliente. Cada uno de los dos tipos de
modelos contienen varios modelos, que estudiars en el transcurso de la Unidad dos.
Al finalizar, debers ser capaz de distinguir cada uno de los modelos de desarrollo de
software para la creacin de un sistema y seleccionar el adecuado para las problemticas
presentadas de los clientes.
Propsito
Identificar los modelos utilizados para el desarrollo de software y disear grficamente el
modelo de sistemas mediante el uso de las herramientas de UML y RUP.
Competencia especfica
Utilizar los modelos de desarrollo de software mediante UML y RUP para la creacin de
un sistema.
Temario de la unidad
2. Modelos para el desarrollo de software
2.1. Modelos de diseo.
2.1.1. Modelo de repositorios
2.1.2. Modelo cliente servidor
2.1.3. Modelo de capas
2.1.4. Modelo de control centralizado
3
Ciencias Exactas, Ingenieras y Tecnologa | Desarrollo de Software
3
4
Ciencias Exactas, Ingenieras y Tecnologa | Desarrollo de Software
4
5
Ciencias Exactas, Ingenieras y Tecnologa | Desarrollo de Software
5
Modelo de capas
Recordando lo visto anteriormente: revisaste un modelo que va con la disponibilidad de
las bases de datos y otro para la arquitectura de la disponibilidad de servicios que se
facilitan en la red; conocers ahora el modelo en capas que va en funcin de la
arquitectura pensada para organizar un sistema y en cada capa del sistema se pone a
disposicin un conjunto de servicios.
Para profundizar en el tema, debers leer el tema El modelo de capas en Sommerville,
(2005, pp. 227-229). Ah encontrars la descripcin del modelo de capas, beneficios,
desventajas y ejemplos. Hay ms ejemplos que te ayudarn a comprender mejor el tema,
por lo tanto, revisa los ejemplos que se muestran en el mismo libro Sommerville, (2005,
pp. 272-276), tema 13.2.1 Sistemas de informacin y de gestin de recursos.
As pues, el modelo de capas trabajar modelando el sistema; este sistema que se
crear, deber de ser pensando en capas y en los servicios que se ofrecern en cada
una de ellas, una puede estar la interfaz del usuario, en la que sigue el gestor de
consultas a tus bases de datos, en la siguiente las polticas de los recursos y, por ltimo,
el gestor de transacciones de la base de datos. Estos cuatro niveles o capas son las ms
comunes en el desarrollo de software. Recuerda que su ventaja es que puedes hacer
cambios en algunas de ellas, sin afectar a las dems, esto puede ser muy rpido.
Hasta este modelo has revisado modelos arquitectnicos, pero continuamos con un ltimo
modelo de este grupo.
Modelo de control centralizado
Este modelo pertenece a un subgrupo de modelos llamados: estilos de control, los
anteriores pertenecan al subgrupo organizacin del sistema (repositorio, clienteservidor y capas). Pero los dos subgrupos pertenecen al grupo de diseo arquitectnico
o modelo de diseo.
En el modelo control centralizado, el sistema diseado debe contemplar un subsistema
que controla y tiene la responsabilidad de gestionar la ejecucin de otros subsistemas.
Para iniciar el tema, lee el Control centralizado Sommerville, (2005, pp. 233-234). En
estas pginas encontrars la definicin del modelo, la clasificacin del modelo en dos
clases o tipos, encontrars dos ejemplos: el primero de tipo retorno (como los que se
utilizan en los lenguajes de programacin java, pascal, c, etc., y es de los ms utilizados
por los principiantes en programacin) y el segundo es de gestin de control centralizado.
Estas lecturas te ayudarn a identificar caractersticas de los lenguajes de programacin
que te sirven para implementar control centralizado y la importancia de implementa una
administracin de concurrencia en un sistema.
6
Ciencias Exactas, Ingenieras y Tecnologa | Desarrollo de Software
6
A modo de resumen, recuerda que todos los modelos que hemos analizado son de tipo
arquitectnico y que estos va en relacin al establecimiento de una estructura bsica
que influye en un sistema de desarrollo de software en cuanto al rendimiento, solidez,
distribucin y mantenibilidad del sistema. Revisaste el modelo repositorio que va en
funcin de la disponibilidad de bases de datos; el modelo cliente-servidor en funcin de
servicios disponibles en servidores mediante una red; el modelo de capas, los niveles que
integran a un sistema (interfaz del usuario, gestor de consultas, polticas de los recursos y
transacciones de la base de datos) y el ltimo modelo el control de centralizado, que se
clasifica en dos tipos llamada-retorno (se caracteriza por la forma estructurada de la
programacin en los lenguajes de 4 nivel en adelante). El modelo de gestor que se
aplica en la concurrencia de sistemas, esto requiere de control de procesos, un proyecto
tpico de esto es como software sistema operativo. Con todo este tema, podrs adentrarte
al contexto de los modelos de desarrollo de software.
Para concluir con el tema debers realizar la Actividad 1. Modelos de diseo, que se
presenta en el documento: Actividades de la Unidad, el propsito es que de lo que se te
present en los materiales, puedas relacionar conceptos, componentes, simbologa con el
modelo de diseo correspondiente.
Modelo Evolutivo
Este es un modelo de desarrollo de software especialmente utilizado por proyectos
complejos, pues requieren del constante contacto con el cliente, bajo este modelo de
desarrollo, se realizan varias versiones del desarrollo hasta tener el sistema ideal.
Ahora, revisa el tema Evolucionario de Weitzenfeld, (2005, p. 52). En dicho texto
encontrars la descripcin del modelo evolutivo, qu es DRA y las principales creencias
del modelo. Es importante que reconozcas sus caractersticas para que sepas en qu tipo
de proyectos te puede ser til emplearlo.
Para complementar tu conocimiento lee El modelo DRA, en Pressman, (2005, pp. 53 -54).
Ah se te explicar que el modelo DRA, es un modelo de desarrollo incremental de
software, no precisamente en paralelo, sino que se crean prototipos; primero se hace una
primera versin del desarrollo y luego se planea otra versin, agregando nuevas
funciones o complementando lo existente, en fin, en varios procesos vas desarrollando el
software. Este tipo de modelo se utiliza para proyectos complejos, principalmente en
donde desarrollas a pasos seguros, por eso mismo haces versiones con el paso del
tiempo y entregas parciales de desarrollo.
Hasta el momento has revisado dos modelos de desarrollo, como habrs observado va
enfocado en una metodologa para abordar un desarrollo; las actividades principales son:
requerimientos, anlisis, diseo, implementacin, pruebas, instalacin y mantenimiento.
Seguirs revisando otros modelos de desarrollo, pero antes reflexiona entorno a la
siguiente pregunta: identificas la diferencia entre modelos de desarrollo y modelos de
diseo?, recuerda que la diferencia radica en que el primero va enfocado al proceso de
desarrollo de software, y el segundo en cuanto al diseo arquitectnico (repositorio,
capas, cliente-servidor y el control centralizado). Seguiremos con los modelos de
desarrollo de software.
Modelo basado en componentes
Este es un modelo que se apoya en la reutilizacin de software, actualmente muchos
desarrollos reutilizan cdigo, pero en este modelo especialmente se realiza esta accin.
Revisa Somerville, (2005, pp. 64-66), en este bloque encontrars la definicin del modelo,
las etapas involucradas en el desarrollo, los beneficios, y los riesgos. Esto te servir para
comprender una tcnica de desarrollo de software, que consiste, en parte en la
reutilizacin del software, como afecta en los tiempos y costos del desarrollo.
9
Ciencias Exactas, Ingenieras y Tecnologa | Desarrollo de Software
9
Para concluir con la unidad dos, debers realizar la Actividad 3. El modelo RUP, que se
encuentra en el documento: Actividades de la Unidad, el propsito es que distingas en un
proyecto las fases del proceso con la metodologa RUP y las etapas de desarrollo de un
mtodo de desarrollo, organizando la secuencia de un modelo RUP que se te
proporciona.
Autorreflexiones
Adems de enviar tu trabajo de la Evidencia de aprendizaje, es importante que ingreses
al foro Preguntas de Autorreflexin y consultes las preguntas que tu Docente en lnea
presente, a partir de ellas, debes elaborar tu Autorreflexin en un archivo de texto llamado
DMMS_U2_ATR_XXYZ. Posteriormente enva tu archivo mediante la herramienta
Autorreflexiones.
Cierre de la unidad
La segunda unidad ha llegado a su conclusin. En esta unidad pudiste conocer dos tipos
de modelos de desarrollo los de diseo centrado en la arquitectura del sistema y los
modelos de desarrollo de software, centrados en las fases o etapas para desarrollar un
software.
11
Ciencias Exactas, Ingenieras y Tecnologa | Desarrollo de Software
11
EVOLUTIVO
Algunos
Algunos
Algunos
12
Complejidad
del proyecto.
Entendimiento
de los
requerimiento
s
Tecnologa del
producto.
Manejo de la
perspectiva
del riesgo.
Conocimiento
y dominio del
problema
Baja
Media
Media
Media
Alta
Especfico
Vago
Vago
Vago
Vago
Existente
Nueva
Nueva
Nueva
Nueva
No
Si
Si
Si
Si
Alto
Regular
Regular
Regular
pobre
Analiza t situacin. Lo anterior son ideas importantes que debes de contemplar para
decidir qu modelo utilizar. Con base en lo anterior debes tomar decisiones, tus opciones
se encuentran en la tabla anterior:
- Puedes decir qu complejo es el proyecto y catalogarlo? Recuerda las opciones
son: baja, media y alta (segn la tabla).
- Los requerimientos son especficos o vagos para ti?
- La tecnologa del producto, es nueva en tu localidad, o ya exista desde hace
mucho tiempo y hay muchos expertos que la dominan, t la conoces?
- El riesgo?, qu impacto tendr los errores, haciendo diagnsticos de
enfermedades del corazn?, podrs controlar los riesgos del proyecto? Si o No
- Dominas el tema?, tus opciones: Alto, regular y pobre.
Una posible solucin para el caso presentado es utilizar el mtodo espiral, no obstante,
puedes utilizar algn otro. Pero, tambin existen algunos modelos que pueden ser una
mala decisin y te traer muchos problemas. El menos recomendado sera el mtodo de
cascada, para justificar la recomendacin, se desarroll la siguiente tabla con los anlisis
que se hicieron: se seleccion con colores verdes las opciones apropiadas, la tabla
qued de la siguiente forma:
CRITERIO
Disponibilidad
de recursos.
Complejidad
del proyecto.
Entendimiento
de los
requerimiento
s
Tecnologa
del producto.
Manejo de la
CASCAD
A
EVOLUTIV
O
COMPONENTE
S
PROTOTIPO
S
ESPIRA
L
Todos
Algunos
Algunos
Algunos
Algunos
Baja
Media
Media
Media
Alta
Especfico
Vago
Vago
Vago
Vago
Existente
Nueva
Nueva
Nueva
Nueva
No
Si
Si
Si
Si
14
perspectiva
del riesgo.
Conocimiento
y dominio del
problema
Alto
Regular
Regular
Regular
pobre
Para saber ms
En el link http://ww.dsic.upv.es/asignaturas/facultad/ existe un documento llamado
IntroduccionProcesoSW.doc, en el que encontrars de manera resumida todos los
mtodos de desarrollo e incluso revisars una tabla comparativa entre los mtodos de
desarrollo de software, este documento es proporcionado por el departamento de
Sistemas Informticos y Computacin de la Universidad Politcnica de Valencia.
Tambin te recomiendo que revises el material Piattini, (2004, pp. 102-105), en estas
pginas encontrars informacin sobre en qu momentos se integran los modelos de
desarrollo en la metodologa RUP, es muy importante su comprensin para que tengas
una vista de no solamente las etapas de desarrollo de software sino, comprender todo el
15
Ciencias Exactas, Ingenieras y Tecnologa | Desarrollo de Software
15
Fuentes de consulta
16
Ciencias Exactas, Ingenieras y Tecnologa | Desarrollo de Software
16