Please enable JavaScript.
Coggle requires JavaScript to display documents.
Ingeniería de softwre Segundo Parcial (Fundamentos de diseño de software,…
Ingeniería de softwre
Segundo Parcial
Modelos de planeación
PRINCE2
Metodo estructurado de Gestión de proyectos.
Divide los proyectos en fases permitiendo el control eficiente en los recursos y control de su evolución.
Principios:
Justificación Comercial
Apender de la experiencia
Roles definidos
Gestión por fases
Gestión por excepción
Orientación aa productos
Adaptación
Permimite un comienzo, desarrollo y final controlado y orgnizado
Reisiones periodicas de progresos
Buena comunicación,
Pero no cubre la gestión de servicios ni la gestión empresarial
Proceso Racional Unificado
Conjunto de metodologías adaptables al contexto y necesidades de la organizacion.
Abarca el anlálisis, implementación y documentación
Es iterativo e incremetal, se basa en casos de uso
Elementos:
Inicio
Se verifica el modelado del negocio y los requisitos presentes.
Elaboración
Se realiza el Analaisis y Diseño del proyecto.
Construcción
Se implementan las clases y objetos diseñados.
Se prueban y verifican las funciones del producto
Transición
EL despliegue del producto y s funcionamiento en su entorno final.
Desarrollo Rápido de Apliaciones
Desaroollo interactivo, construcción de prototipos y uso de utlidades
Utiliza equipos de trabaja amplios y completos
Hace usp de herrammietas especializadas
Puede recirrir al Timeboxing
Estructura:
Modelado de gestión
Modelado de datos
Modelado de proceso
Generación de aplicaciones
Pruebas de entrega
Ofrece visibilidad del progreso de manera temprana
Ciclos de desarrollo más cortos
Mayor flexibilidad
Pero tiene menor precisión
Progreso real dificil de medir
Mayor dependencia de terceros
Cotización el proyecto
Identificación del cliente
Necesidades del Cliente
Cubrir aspectos del cliente
Competencia
Habilidad para la cotización
Tiempo de entrega
Gastos para el proyecto
No prometer realizar cumplir lo que no domines
Se objetivo
Fundamentos de diseño de software
Diseño Preliminar
Representa un primer borrador, ofrece un marco de trabajo y las especificaciones iníciales
Diseño detallado
Especificación algorítmicos, representaciones concretas de datos, interconexiones yestructura de datos.
Diseño de datos
"¿Qué datos requiere la aplicación?", hasta los procesos y estructuras de datos
Diseño arquitectónico
Descomposición en subsistemas para su control y comunicación
Diseño procedimental
Especificación del funcionamiento interno de cada módulo
Fundamentos del diseño
Abstracción
Refinamiento
Modularidad
Criterios para calidad del diseño
• Desempeño
• Escalabilidad
• Modificabilidad
• Seguridad
• Disponibilidad
• Integración
• Portabilidad
• Testeabilidad
• Mantenibilidad
Cohesión
Grado de independencia entre módulos
Acoplamiento
Grado de dependencia entre módulos
Evaluación y validación
Proceso de comprobación y análisis, aseguran que se cumplan las necesidades y especificaciones del cliente.
Principios de diseño de sofware
DRY (Don´t repeat yourself)
No hay que escribir código duplicado.
KISS (Keep It Simple Stupid)
El diseño de un programa debe ser sencillo
SOLID
SRP (Single Responsibility Principle)
Una sola responsabilidad
Open/Close Principle
Modificar su comportamiento sin cambiar su código fuente
Sustitución de Liskov
"cuidado con los pingüinos"
Una clase derivada no debe modificar el comportamiento de la clase base
ISP (Interface segregation principle)
Una clase que implementa una interfaz no debe depender de métodos que no utiliza
DIP (Dependency Inversion Principle)
Clases de alto nivel, no deben depender de clases de bajo nivel
SoC (separation of concerns)
Separa los asuntos
YAGNI (You ain't gonna need it)
No debemos implementar algo si no estamos seguros de necesitarlo
Boy Scout
Debemos refactorizar el código para dejarlo todavía más limpio y simple que antes
Ley de Demeter
No hay que hablar con extraños
Principio de Hollywood
No nos llame, nosotros le llamaremos
Patrones de diseño de software
Creacionales
Procuran independizar al sistema de cómo sus objetos son creados y/o representados.
Inicialización y configuración de objetos.
Corresponden a patrones de diseño software que solucionan problemas de creación de instancias.
Patrón de diseño Abstract Factory
De Comportamiento
Ofrecen soluciones respecto a la interacción entre clases y objetos, además asigna responsabilidades a los objetos.
Patrón de diseño Iterator
Estructurales
Se refieren a como las clases y los objetos son organizados para conformar estructuras más complejas, es como trabajar en conjunto
Patrón de diseño Composite