Upload
dinhtu
View
222
Download
0
Embed Size (px)
Citation preview
HERRAMIENTAS DE SOFTWARE
1
Sesión No. 4
Nombre: Paradigmas y filosofía de desarrollo de software. Segunda parte.
Objetivo: Al finalizar la sesión, los estudiantes conocerán la funcionalidad del
modelo en espiral y el modelo de la estructura del sistema del desarrollo de
software.
Contextualización
¿Cómo se estructura un desarrollo de software?
Hasta ahora conocemos dos modelos de ciclo de vida de software (clásico y de
prototipos), como sabemos, el modelo de ciclo de vida es la base de desarrollo
de nuestro sistema, ya que a partir de ahí construimos nuestro desarrollo de
estructura o desarrollo arquitectónico del sistema.
El modelo de estructura del sistema debe ser claro para la implementación y la
consulta y está hecho para diferentes puntos de vista desde el cliente final, al
cual no daremos una vista técnica sino lo más relacionada al proceso, hasta el
desarrollador o los demás participantes del equipo técnico.
El diseño arquitectónico lleva a cabo la implementación del ciclo de vida elegido
para el proyecto y otros factores como análisis de casos de uso, vistas finales,
capas del proyecto, entre otros.
HERRAMIENTAS DE SOFTWARE
2
https://arquitecturasoftware.wordpre
ss.com/tag/arquitectura-de-negocio/
HERRAMIENTAS DE SOFTWARE
3
Introducción al Tema
¿Qué es el modelo de espiral?
El modelo de ciclo de vida en espiral surge en 1986, desarrollado por Barry
Boehm, quien nota el riesgo que existe en la etapa del desarrollo e identifica las
posibles alternativas, selecciona el riesgo con mayor nivel de alcance y crea un
ciclo en espiral.
El modelo se basa en la conjunción del modelo de prototipos y la secuencialidad
del clásico, la unión permite generar un ciclo que parte desde el centro, si el
cliente prefiere hacer alguna mejoría en el producto, o existe algún cambio
importante, se evalúan alternativas nuevas y se crea un nuevo análisis de
riesgos lo que genera una nueva vuelta de espiral, de esta manera se
incrementa el número de vueltas hasta que el producto quede terminado.
http://csse.usc.edu/csse/TECHRPTS/1988/usccse88-
500/usccse88-500.pdf
HERRAMIENTAS DE SOFTWARE
4
Explicación
Modelo en espiral
Como vimos al inicio de esta sesión, el modelo en espiral es de un software
evolutivo en la conjunción del modelo de prototipos y la secuencialidad del
clásico, en su primer bucle se puede considerar un prototipo, pero en sus últimos
la versión del software se vuelve más completa. No existe un número definido de
bucles e iteraciones.
Se divide en regiones de tareas, aunque el modelo original de Bohem consta
de 4 regiones, surge una variante del modelo de 3 a 6 regiones, las cuales son:
→ Comunicación con el cliente. Dialogo establecido entre el desarrollador
y el cliente acerca de los requerimientos del producto.
→ Planificación. Definición de recursos, tiempo y otros aspectos para la
elaboración del producto.
→ Análisis de riesgos. Evaluación de los posibles riesgos físicos y lógicos.
→ Ingeniería. Definición de requerimientos para la construcción del producto.
→ Construcción y adaptación. Desarrollo, implementación, pruebas
internas y posibles mejoras al producto.
→ Evaluación del cliente. Pruebas realizadas por el cliente.
http://modeloespiral.blogspot.mx/
HERRAMIENTAS DE SOFTWARE
5
Cuando el proceso es iniciado, cada paso por la región de planificación genera
ajustes en el proyecto y así se crea una nueva iteración, es por esto que la
última región es la evaluación del cliente, ya que suelen reajustarse los
requerimientos debido a las mejoras detectadas por el cliente.
El producto evoluciona a través de las iteraciones que tenga el espiral sin olvidar
las iniciales en las que ha sido basado, esto es, desde imitar a la anterior hasta
mejorarla.
Modelo espiral WINWIN
En el diálogo entre el desarrollador y el cliente puede que no se lleve una
negociación adecuada, o que las partes no se vean beneficiadas a la par, de
esta necesidad surge la variante del modelo espiral, conocida como modelo espiral WINWIN.
En esta variante el cliente gana obteniendo el producto que cumple la mayoría
de sus necesidades y el desarrollador logra entregar el proyecto en tiempo y
forma.
http://sofware1nathalygrijalva.blogsp
ot.mx/2012/10/modelo-espiral.html
HERRAMIENTAS DE SOFTWARE
6
En el modelo se identifican los sistemas o subsistemas entre los directivos, las
condiciones de beneficio para cada uno y se llevan a cabo las negociaciones
entre las dos entidades.
Modelo de la estructura del sistema
Los grandes sistemas o sistemas complejos se componen de subsistemas, el
diseño arquitectónico o la estructura del sistema es una estructura que organiza
los elementos que se requieren para el desarrollo de un software, sus elementos
dependen de los requerimientos, conocimientos, tiempos y recursos con los que
se cuentan para realizar el sistema.
Cada desarrollo de software debe estar basado en modelo o estilo arquitectónico,
pero la mayoría de las veces, no se utiliza un sólo estilo, si no que se adaptan
las partes relevantes o útiles de varios estilos para formar el que más se adapta
a las necesidades.
Para que la estructura sea la más adecuada, debe cumplir con los
requerimientos del sistema, el sistema debe ser estructurado por componentes o
http://csse.usc.edu/csse/TECHRPTS/1998/usccse9
8-511/usccse98-511.pdf
HERRAMIENTAS DE SOFTWARE
7
módulos, esto permite identificar las partes por separado que componen al
sistema, esta propiedad es útil para sistemas que son desarrollados por más de
una persona.
La estructura del sistema define el uso del sistema sobre las plataformas en las
que será utilizado como el performance, limitación de usuarios, disponibilidad,
seguridad, entre otros elementos, y uno de los elementos más importantes es
que debe estar pensada para posibles modificaciones de diseño, por ejemplo, se
da el caso de que uno de los requerimientos principales, como puede ser un
módulo extra, no estaba contemplado cuando se levantaron los requerimientos,
en este caso se debe cambiar una parte principal del sistema, sin afectar las que
ya han sido desarrolladas.
Una manera de categorizar la estructura del sistema es por medio de vistas, las
cuales pueden ser:
http://www.inegi.org.mx/inegi/contenidos/servicios/sdm
x/
HERRAMIENTAS DE SOFTWARE
8
Vista del modelo de casos de uso. Define los casos más importantes
que influyen en el proceso, además de los actores que lo ejecutan, por
ejemplo, en un sistema de almacén, un caso de uso puede ser la entrada
de productos, donde interactúa el proveedor del producto, la persona que
recibe el producto y el control del stock de existencias de ese producto.
Vista del modelo de análisis. Define las entidades de análisis basadas
en los casos de uso, pueden ser clases u objetos.
Vista del modelo de diseño. Define las interfaces, clases, objetos y
posibles subsistemas dentro de nuestro sistema, dependiendo de la
tecnología que se use, ya que no todas las tecnologías de desarrollo
requieren las mismas entidades de diseño.
Vista del modelo de despliegue. Define los elementos de hardware que
soportarán el sistema, por medio de nodos e interconexiones entre los
mismos.
Vista del modelo de implantación. Define la intersección entre los
elementos lógicos del sistema definidos en el modelo de diseño (clases,
objetos, interfaces, etcétera) y los elementos definidos en el modelo de
despliegue así como sus conexiones.
http://www.ibm.com/developerworks/rational/library/content/0
3July/1000/1156/1156 fig1.gif
HERRAMIENTAS DE SOFTWARE
9
Como podemos ver, los modelos de ciclo de vida comparten una secuencia
desde el modelo clásico, prototipos y espiral comparten las etapas en las que se
dividen pero el modelo de la estructura del sistema se diseña con base en los
casos de uso, después de proceder a desarrollar el sistema.
HERRAMIENTAS DE SOFTWARE
10
Conclusión
Todos los modelos de software tienen ventajas y desventajas en su uso, como
hemos visto, el modelo en espiral conjunta el modelo de prototipos al
implementar sus bucles y la secuencialidad del modelo clásico y no existe una
cantidad de bucles definidos para éste.
Ventajas:
→ Reduce riesgos en cada etapa del proyecto antes de que evolucione.
→ Es adaptable en las etapas del proyecto.
→ Integra las etapas del proyecto entre sí.
→ En su modelo variante WINWIN, los requerimientos junto con la
funcionalidad son balanceados para los mismos fines.
Desventajas:
→ Se sugiere que la implementación sólo sea para grandes sistemas, ya que
es costoso.
→ Requiere mayor tiempo en análisis de riesgos y desarrollo del sistema.
→ Algunas veces resulta complicado lograr un balance con el cliente entre la
funcionalidad y sus necesidades.
El modelo de la estructura del sistema parte del modelo
de ciclo de vida que se va a utilizar, cuando se desarrolla
su arquitectura debemos tomar varios factores en cuenta
como el desarrollo de casos de uso, el análisis de
requerimientos a partir de los casos de uso realizados, el
diseño de los elementos lógicos y su interacción con el
entorno físico, así como la implementación sobre su versión final, todo enfocado
principalmente en los casos de uso, ya que definen su funcionalidad.
HERRAMIENTAS DE SOFTWARE
11
Para aprender más
Análisis comparativo de técnicas, metodologías y herramientas de ingeniería de requerimientos.
• Medina, J. (2004). Análisis Comparativo de Técnicas, Metodologías y
Herramientas de Ingeniería de Requerimientos. (Tesis de maestría
inédita). En Departamento de Ingeniería Eléctrica Sección de
Computación/Centro de Investigación y de estudios Avanzados del
Instituto Politécnico Nacional. Consultado el 7 de agosto de 2015:
http://delta.cs.cinvestav.mx/~pmalvarez/tesis-medina.pdf
Vistas arquitectónicas de software y gestión de modelos
• Limón, R. (s/f). Las vistas arquitectónicas de software y sus
correspondencias mediante gestión de modelos. (Tesis de doctorado
inédita). En Departamento de Sistemas Informáticos y Computación de la
Universidad Politécnica de Valencia. Consultado el 7 de agosto de 2015:
http://www.dsic.upv.es/docs/bib-dig/tesis/etd-10132009-094823/borrador-
tesis-rogelio-2.pdf
Metodologías de desarrollo de softwares más utilizados
• Cervantes, J.; Gómez, M. (2012). Taxonomía de los modelos y
metodologías de desarrollo de software más utilizados. Consultado el 7 de
agosto de 2015:
HERRAMIENTAS DE SOFTWARE
12
http://www.redalyc.org/articulo.oa?id=37326902005
Modelo de planificación instruccional
• Jiménez, J. (s/f). Un modelo de planificación Instruccional usando
Razonamiento Basado en Casos en Sistemas Multi-Agente para entornos
integrados de Sistemas Tutoriales Inteligentes y Ambientes Colaborativos
de Aprendizaje. (Tesis de doctorado inédita). En Doctorado en Ingeniería
–Sistemas e Informática de la Universidad Nacional de Colombia.
Consultado el 7 de agosto de 2015:
http://www.bdigital.unal.edu.co/8381/1/15510904.2006.pdf
HERRAMIENTAS DE SOFTWARE
13
Actividad de Aprendizaje
Instrucciones:
Con la finalidad de aplicar tus conocimientos adquiridos en esta sesión, tendrás
que complementar el cuadro comparativo de la sesión pasada, incluyendo el
modelo en espiral con el siguiente formato:
MODELO
DEFINICIÓN CARACTERISTICAS VENTAJAS DESVENTAJAS
MODELO
CLÁSICO
MODELO DE PROTOTIPOS
MODELO EN ESPIRAL
HERRAMIENTAS DE SOFTWARE
14
Escribe una introducción y una conclusión a tu trabajo. Recuerda que la
actividad te ayudará a diferenciar las características entre los modelos.
La actividad representa el 5% de tu calificación y se tomará en cuenta lo
siguiente:
• Tus datos generales
• Referencias bibliográficas
• Ortografía y redacción
• Conclusión e Introducción
• Actividad.