Conceptos Fundamentales en Ingeniería de Software y Desarrollo
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 5,2 KB
Conceptos Fundamentales en Ingeniería de Software
- Caso de Uso:
- Representa un requisito funcional de un sistema. Especifica un conjunto de secuencias de acciones, incluyendo variantes que el sistema puede ejecutar y que produce un resultado observable de valor para un particular actor.
- Escenario de un Caso de Uso:
- Instancia de un caso de uso. Secuencia concreta de interacciones entre los actores y el sistema.
- Actor de un Caso de Uso:
- Representa un conjunto coherente de roles que juegan los usuarios de los casos de uso al interaccionar con el sistema.
- Colaboración:
- "Sociedad de clases y otros elementos que colaborarán para realizar el comportamiento expresado en un caso de uso".
Modelado de Datos
- ¿Qué se modela en un modelo conceptual de datos?:
- Modela los requisitos de datos de un sistema.
- ¿Qué es una clase asociativa?:
- Una asociación modelada como clase (con atributos y operaciones).
Relaciones entre Casos de Uso
- Include:
- Un caso de uso base incorpora explícitamente el comportamiento de otro en algún lugar de su secuencia.
- Extend:
- Un caso de uso base incorpora implícitamente el comportamiento de otro caso de uso en el lugar especificado indirectamente por este otro caso de uso.
Diagramas y Eventos del Sistema
- Diagrama de Secuencia del Sistema:
- Muestra para un escenario particular de un caso de uso, la secuencia de eventos generados por los actores externos y las operaciones del sistema que resultan de su invocación.
- Evento del Sistema:
- Evento externo generado por un actor que desencadena un comportamiento en el sistema.
- Operación del Sistema:
- Operación interna que se ejecuta como respuesta a la comunicación del evento.
La comunicación de un evento del sistema provoca la ejecución de una operación del sistema con el mismo nombre y los mismos parámetros.
Otros Conceptos
- Clasificación:
- Los objetos del lado "muchos" de una asociación tienen un orden explícito.
Patrones de Diseño
- Patrón de Diseño:
- Un patrón de diseño propone una solución a un problema de diseño concreto que puede aparecer en un determinado contexto.
- GRASP:
- Los patrones GRASP son principios generales para asignar responsabilidades a objetos. Incluyen: Experto en Información, Creador, Controlador, Bajo Acoplamiento, Alta Cohesión.
Patrón GRASP: Controlador
Contexto: Una vez recibido un evento en la capa de presentación, algún objeto de la capa de dominio ha de recibir este evento y ejecutar las acciones correspondientes.
Problema: ¿Qué objeto es el responsable de tratar un evento externo?
Solución: Asignar esta responsabilidad a un controlador que es un objeto de la capa de dominio. Tipos de Controlador: Controlador Fachada (clase que representa todo el sistema) y Controlador Caso de Uso (clase que representa una instancia de un caso de uso).
Arquitectura de Software
Arquitectura en Tres Capas
Contexto: Descomponer un sistema en grupos de subtareas de manera que cada subgrupo esté en un determinado nivel de abstracción.
Problema: Diseñar un sistema de manera que las tareas de alto nivel se basen en las tareas de bajo nivel.
Fuerzas a equilibrar:
- Sistema mantenible
- Reusabilidad
- Separación de interfaz e implementación
- Cohesión
- Portabilidad
Solución: Estructurar el sistema en tres capas colocadas verticalmente. Todos los componentes de una capa tienen que trabajar al mismo nivel de abstracción. Los servicios que proporciona la capa j utilizan servicios proporcionados por la capa j-1. Al mismo tiempo, los servicios de la capa j pueden depender de otros servicios de la misma capa.
Procesos de Desarrollo de Software
- UML:
- Cualquier proceso software OO debe utilizarlo como notación.
- UP:
- Proceso OO genérico ampliamente aceptado (estándar). Cualquier proceso basado en UML debe ser compatible con UP.
- RUP:
- Materialización particular de UP.
Gestión de Proyectos de Software
Actividades de Gestión de Proyectos:
- Planificación de proyectos
- Estimación de costes y plazos
- Seguimiento y supervisión del proyecto
- Gestión de riesgos del software
Planificar un Proyecto:
Cubre todos los aspectos de la realización de un proyecto por parte del director o jefe de proyecto y la gestión de compromisos.
Técnicas de planificación:
- Diagrama de hitos
- Diagramas de Gantt
- Programas de tiempos "full wall"
- Redes de precedencia