2.16.5 SE/Diseño de Software (3 horas Core-Tier1, 5 horas Core-Tier2)

Tópicos:
Core Tier1

Core Tier2

Electivo

Objetivos de Aprendizaje:
Core-Tier1:

  1. Formular los principios de diseño, incluyendo la separación de problemas, ocultación de información, acoplamiento y cohesión, y la encapsulación [Familiarizarse]
  2. Usar un paradigma de diseño para diseñar un sistema de software básico y explicar cómo los principios de diseño del sistema se han aplicado en este diseño [Usar]
  3. Construir modelos del diseño de un sistema de software simple los cuales son apropiado para el paradigma utilizado para diseñarlo [Usar]
  4. En el contexto de un paradigma de diseño simple, describir uno o más patrones de diseño que podrían ser aplicables al diseño de un sistema de software simple [Familiarizarse]
Core-Tier2:
  1. Para un sistema simple adecuado para una situación dada, discutir y seleccionar un paradigma de diseño apropiado [Usar]
  2. Crear modelos apropiados para la estructura y el comportamiento de los productos de software desde la especificaciones de requisitos [Usar]
  3. Explicar las relaciones entre los requisitos para un producto de software y su diseño, utilizando los modelos apropiados [Evaluar]
  4. Para el diseño de un sistema de software simple dentro del contexto de un único paradigma de diseño, describir la arquitectura de software de ese sistema [Familiarizarse]
  5. Dado un diseño de alto nivel, identificar la arquitectura de software mediante la diferenciación entre las arquitecturas comunes de software, tales como 3 capas (3-tier), pipe-and-filter, y cliente-servidor [Familiarizarse]
  6. Investigar el impacto de la selección arquitecturas de software en el diseño de un sistema simple [Evaluar]
  7. Aplicar ejemplos simples de patrones en un diseño de software [Usar]
  8. Describir una manera de refactorar y discutir cuando esto debe ser aplicado [Familiarizarse]
  9. Seleccionar componentes adecuados para el uso en un diseño de un producto de software [Usar]
  10. Explicar cómo los componentes deben ser adaptados para ser usados en el diseño de un producto de software [Familiarizarse]
  11. Diseñar un contrato para un típico componente de software pequeño para el uso de un dado sistema [Usar]
Elective:
  1. Discutir y seleccionar la arquitectura de software adecuada para un sistema de software simple para un dado escenario [Usar]
  2. Aplicar modelos de cualidades internas y externas en el diseño de componentes de software para lograr un equilibrio aceptable entre los aspectos de calidad en conflictos [Usar]
  3. Analizar un diseño de software desde la perspectiva de un atributo significativo de la calidad interna [Evaluar]
  4. Analizar un diseño de software desde la perspectiva de un atributo significativo de calidad externa [Evaluar]
  5. Explicar el papel de los objetos en los sistemas de middleware y la relación con los componentes [Familiarizarse]
  6. Aplicar métodos orientado a componentes para el diseño de una amplia gama de software, tales como el uso de componentes para la concurrencia y transacciones, para los servicios de comunicación confiables, para la interacción con la base de datos que incluye los servicios de consulta remota y gestión de bases de datos, o para la comunicación segura y el acceso [Usar]
  7. Refactorizar una implementación de software existente para mejorar algún aspecto de su diseño [Usar]
  8. Determinar y aplicar los principios de mínimo privilegio y defectos-a prueba de errores [Familiarizarse]

Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, Universidad de Ingeniería y Tecnología, Lima-Perú
basado en el modelo de la Computing Curricula de IEEE-CS/ACM