Guia de Estudio Capítulo 2 Procesos de software INGENIERÍA DE SOFTWARE, Novena edición, Ian Sommerville
Enviado por Martin Lacheski • 5 de Septiembre de 2019 • Apuntes • 1.711 Palabras (7 Páginas) • 5.965 Visitas
EJERCICIOS
2.1. Explicando las razones para su respuesta, y con base en el tipo de sistema a desarrollar, sugiera el modelo de proceso de software genérico más adecuado que se use como fundamento para administrar el desarrollo de los siguientes sistemas:
Un sistema para controlar el antibloqueo de frenos en un automóvil
Se utilizaría un modelo en cascada, porque este tipo de desarrollo es muy adecuado para el nivel riguroso de seguridad, fiabilidad y protección que debe cumplir el sistema por lo crítico del mismo. Y también porque el mismo no es solo software, sino el hardware del vehículo.
Un sistema de realidad virtual para apoyar el mantenimiento de software
En este tipo de sistema sería necesario utilizar un desarrollo de tipo incremental, porque el mismo se iría construyendo y evolucionando según el testeo del sistema, pudiendo corregir fácilmente errores, o si no cumple con lo requerido.
Un sistema de contabilidad universitario que sustituya a uno existente
Este sistema se podría realizar mediante la ingeniería de software orientada a la reutilización, porque se parte de un sistema existente, el cual se puede reutilizar parte del mismo, por ej: la base de datos. El problema es que dependiendo de las nuevas necesidades, puede ser que el sistema no cumpla todas las demandas que se requieren, producto de las limitaciones del sistema anterior.
Un sistema interactivo de programación de viajes que ayude a los usuarios a planear viajes con el menor impacto ambiental
Se podría utilizar un desarrollo de tipo incremental, porque se puede ir desarrollando parcialmente y ver si se cubren las necesidades del cliente, y a su vez, permite que se pueda modificar o encarar otra solución sin mayores costos de tiempo y presupuesto.
2.2. Explique por qué el desarrollo incremental es el enfoque más efectivo para diseñar sistemas de software empresariales. ¿Por qué este modelo es menos adecuado para ingeniería de sistemas de tiempo real?
El desarrollo incremental es mejor para el software empresarial porque refleja la forma en que se resuelven los problemas, se avanza en una serie de pasos hacia la solución de los mismos, lo cual permite retroceder cuando se detectaron errores.
Si bien, el desarrollo incremental es efectivo para resolver los problemas empresariales, en sistemas de tiempo real presenta la dificultad de alterar los procesos empresariales normales, porque las entregas incrementales requieren que se vaya usando el sistema sobre procesos reales.
2.3. Considere el modelo de proceso basado en reutilización que se muestra en la figura 2.3. Explique por qué durante el proceso es esencial tener dos actividades separadas de ingeniería de requerimientos.
En este modelo de proceso, es necesario tener dos actividades referidas a requerimientos porque al trabajar con un sistema donde se reutilizan procesos, hay que adecuar los nuevos requerimientos a los componentes que se puedan reutilizar y los que se descubran que se puedan adaptar al sistema. Muchas veces no se pueden cumplir los requerimientos necesarios, entonces hay que volver a la etapa de diseño para encontrar soluciones alternativas.
2.4. Sugiera por qué, en el proceso de ingeniería de requerimientos, es importante hacer una distinción entre desarrollar los requerimientos del usuario y desarrollar los requerimientos del sistema.
En el proceso de ingeniería de requerimientos es necesario hacer una distinción entre los requerimientos del usuario y los requerimientos del sistema, porque requieren niveles de detalle distintos. Por un lado los usuarios finales necesitan un informe de requerimientos de nivel alto, en donde se especifiquen los requerimientos que cumplirá el sistema, sin abordar en los detalles de cómo hace eso el sistema. En cambio, los desarrolladores del sistema si necesitan una descripción más detallada de la funcionalidad de los requerimientos del sistema.
2.5. Describa las principales actividades en el proceso de diseño de software y las salidas de dichas actividades. Con un diagrama, muestre las posibles relaciones entre las salidas de dichas actividades.
Las actividades varían según el tipo de software a diseñar, pero en general, en el proceso de diseño de software se presentan las siguientes principales actividades:
• Diseño Arquitectónico: En esta actividad se identifica la estructura global del sistema, los principales componentes, sus relaciones y como se distribuyen.
• Diseño de Interfaz: Se definen las interfaces entre los componentes de sistemas. No debe presentar ambigüedades, tiene que ser precisa. Una vez que se acuerdan las especificaciones de interfaz, los componentes se diseñan y se desarrollan.
• Diseño de Componentes: Se toma cada componente del sistema y se diseña cómo funcionará. Al usuario puede presentárselo simplemente como un dato de la funcionalidad que se espera de dicho componente, y al desarrollador se le presenta el diseño específico.
• Diseño de Base de Datos: En esta actividad, se diseñan las estructuras del sistema de datos y como se representarán en una base de datos. Este trabajo depende si se va a implementar una base de datos nueva o se va a reutilizar una existente.
Estas actividades de diseño conducen a un conjunto de salidas de diseño. El detalle y representación de las mismas varían según el tipo de sistema. Por ejemplo, para sistemas críticos, deben producirse documentos con mucho nivel de detalle donde se especifiquen las descripciones exactas del sistema. Si en cambio el sistema se utiliza un enfoque dirigido por un modelo, las salidas
...