Taller libro Ingeniería del Software 9na Edición Ian Sommerville
capítulo 5
Santiago Vanegas
Sebastián Romero
Sayjog Nicolas Mosquera
Fundación Escuela Tecnológica del Huila.
Ingeniería de Software.
Arquitectura de Software
Abril 2020
5.1 Explique por qué es importante modelar el contexto de un sistema que se
desarrollará. Mencione dos ejemplos de posibles errores que surgirían si los ingenieros
de software no entienden el contexto del sistema.
Como tal el modelar es una atracción en la cual se establecen las características del
sistema para poder tener una vista simple de lo que se desea en el sistema a realizar para que
el desarrollador tenga claridad lo que se desea del sistema.
● Por ejemplo, es muy posible encontrar una noticia en la cual, en un periódico, la forma
por la cual se trasmite la noticia sería el punto clave, el cómo lo transmiten otros medios
sería la alternativa.
● Por ejemplo, en Colombia todos los carros tienen el lado del conductor a la izquierda del
vehículo, el lugar del de donde se ubica la posición del conductor en el vehículo sería el
punto clave. El dónde se posiciona el lado del conductor en el vehículo en otros países
sería la alternativa.
5.2. ¿Cómo podría usar un modelo de un sistema que ya existe? Explique por qué
no siempre es necesario que un modelo de sistema esté completo y sea correcto. ¿Lo
mismo sería cierto si estuviera desarrollando un modelo de un sistema nuevo?
El hacer un modelo de un sistema existente se hace más que nada para la comparación
y análisis de requerimientos para poder especificar lo que hace el sistema con base de
establecer siestas fortalecen tanto como debilidades que pueden servir para un nuevo sistema.
Como tal el modelado es parte del desarrollo por lo que indica al desarrollador lo que
tiene que codificar para el sistema, por eso no es muy importante el que el sistema funcione o
esté completo antes del modelado.
5.3. Se le pide desarrollar un sistema que ayudará con la planeación de eventos y
fiestas a gran escala, como bodas, fiestas de graduación, cumpleaños, etcétera. Con un
diagrama de actividad, modele el contexto del proceso para tal sistema, que muestre las
actividades que hay en la planeación de una fiesta (reservación de local, organización de
invitaciones, y más) y los elementos del sistema que se tengan que usar en cada etapa.
5.4. Para el MHC-PMS, proponga un conjunto de casos de uso que ilustran las
interacciones entre un médico, que atiende pacientes y prescribir medicamentos y
tratamientos, y el MHC-PMS.
5.5. Desarrolle un diagrama de secuencia que muestre las interacciones que hay
cuando un estudiante se registra para un curso en una universidad. Los cursos pueden
tener matrícula limitada, de modo que el proceso de registro debe incluir la
comprobación de qué lugares están disponibles. Suponga que el estudiante accede a un
catálogo electrónico de cursos para encontrar los cursos disponibles.
5.6. Busque cuidadosamente cómo se representan los mensajes y buzones en el
sistema de correo electrónico que utilice. Modele las clases de objetos que puedan usarse
en la implementación del sistema para representar un buzón y un mensaje de correo
electrónico.
5.7. Con base en su experiencia con un cajero automático (ATM), dibuje un
diagrama de actividad que modele el procesamiento de datos cuando un cliente retira
dinero de la máquina.
5.8. Dibuje un diagrama de secuencia para el mismo sistema. Explique por qué
debe desarrollar tanto diagramas de actividad como de secuencia, cuando modela el
comportamiento de un sistema.
5.9. Dibuje diagramas de estado del software de control para:
■ Una lavadora automática con diferentes programas para distintos tipos de
ropa.
El software para un reproductor de DVD.
■ Una contestadora telefónica que registre los mensajes entrantes y muestre el
número de mensajes aceptados en un display de LEDs. El sistema debe permitir al
usuario del teléfono marcar desde cualquier ubicación, escribir una secuencia de
números (identificados como tonos) y reproducir cualquier mensaje grabado.
5.10. Usted es administrador de ingeniería de software y su equipo propone que
debe usarse la ingeniería dirigida por modelo para desarrollar el sistema nuevo. ¿Qué
factores debe tomar en cuenta cuando decide introducir o no este nuevo enfoque al
desarrollo de software?
A partir de la recomendación recibida por el equipo, se debe tomar en cuenta que: En
el MDD (por las siglas de Model-Driven Engineering) hay mayor énfasis en los modelos
arquitectónicos con una separación entre modelos abstractos independientes de
implementación y modelos específicos de implementación. Los modelos se desarrollan con
detalle suficiente, de manera que el sistema ejecutable puede generarse a partir de ellos.
Una de las ventajas de emplear MDE en un equipo de desarrollo es que La ingeniería
basada en modelo permite a los ingenieros pensar sobre sistemas en un nivel de abstracción
elevado, sin preocuparse por los detalles de su implementación. Con base en esto se tiende a
tener menos errores, así como también permite la creación de modelos reutilizables,
independientes a la plataforma. Algunas herramientas poderosas la implementación del
modelo puede generarse para diferentes plataformas a partir del mismo modelo.
Los modelos son una buena forma de facilitar el diseño de software. Es de tener en
cuenta que las abstracciones que soporta el modelo no siempre son las necesarias. También se
debe tener en cuenta que los argumentos de plataforma solo son válidos cuando estos son
grandes sistemas y de larga duración, en el cual se tiende a quedar obsoleto.
En la página de El OMG (www.omg.org/mda/products_success.htm) se puede
observar historias de éxitos para grandes compañías.