diseño software - quegrande.orgquegrande.org/apuntes/grado/1g/dsg/teoria/11-12/introduccion.pdf ·...
TRANSCRIPT
![Page 1: Diseño Software - QueGrande.orgquegrande.org/apuntes/grado/1G/DSG/teoria/11-12/introduccion.pdf · Diseño de software El proceso de definición de la arquitectura, componentes,](https://reader034.vdocuments.pub/reader034/viewer/2022052310/5f06b1687e708231d4194345/html5/thumbnails/1.jpg)
Diseño Software
2º de Grado en Ingeniería Informática
![Page 2: Diseño Software - QueGrande.orgquegrande.org/apuntes/grado/1G/DSG/teoria/11-12/introduccion.pdf · Diseño de software El proceso de definición de la arquitectura, componentes,](https://reader034.vdocuments.pub/reader034/viewer/2022052310/5f06b1687e708231d4194345/html5/thumbnails/2.jpg)
(1) Diseño y desarrollo de software
![Page 3: Diseño Software - QueGrande.orgquegrande.org/apuntes/grado/1G/DSG/teoria/11-12/introduccion.pdf · Diseño de software El proceso de definición de la arquitectura, componentes,](https://reader034.vdocuments.pub/reader034/viewer/2022052310/5f06b1687e708231d4194345/html5/thumbnails/3.jpg)
● Proceso complejo
Desarrollo de software
![Page 4: Diseño Software - QueGrande.orgquegrande.org/apuntes/grado/1G/DSG/teoria/11-12/introduccion.pdf · Diseño de software El proceso de definición de la arquitectura, componentes,](https://reader034.vdocuments.pub/reader034/viewer/2022052310/5f06b1687e708231d4194345/html5/thumbnails/4.jpg)
Desarrollo software
● No sólo diseño y codificación
![Page 5: Diseño Software - QueGrande.orgquegrande.org/apuntes/grado/1G/DSG/teoria/11-12/introduccion.pdf · Diseño de software El proceso de definición de la arquitectura, componentes,](https://reader034.vdocuments.pub/reader034/viewer/2022052310/5f06b1687e708231d4194345/html5/thumbnails/5.jpg)
Desarrollo de software
● Desarrollo software:– Programación y mantenimiento del código
– Concepción del software, planificación, diseño, control de calidad, ...
● Contexto en el Grado:– Proceso Software (PS)
![Page 6: Diseño Software - QueGrande.orgquegrande.org/apuntes/grado/1G/DSG/teoria/11-12/introduccion.pdf · Diseño de software El proceso de definición de la arquitectura, componentes,](https://reader034.vdocuments.pub/reader034/viewer/2022052310/5f06b1687e708231d4194345/html5/thumbnails/6.jpg)
Perspectiva histórica
● Origen: “code & fix”● Mayor complejidad => necesidad metodología● Mejora de las metodologías
A tiempo, en presupuesto o sin fallos. Escoja una de las dos.
![Page 7: Diseño Software - QueGrande.orgquegrande.org/apuntes/grado/1G/DSG/teoria/11-12/introduccion.pdf · Diseño de software El proceso de definición de la arquitectura, componentes,](https://reader034.vdocuments.pub/reader034/viewer/2022052310/5f06b1687e708231d4194345/html5/thumbnails/7.jpg)
Ingeniería de software
● El desarrollo de software se convierte en una actividad “ingenieril”: métodos, herramientas, procedimientos
– Estructuración
– Sistematización
– Definición de procesos
– ...
![Page 8: Diseño Software - QueGrande.orgquegrande.org/apuntes/grado/1G/DSG/teoria/11-12/introduccion.pdf · Diseño de software El proceso de definición de la arquitectura, componentes,](https://reader034.vdocuments.pub/reader034/viewer/2022052310/5f06b1687e708231d4194345/html5/thumbnails/8.jpg)
Ciclo de vida del software
● Entorno en que se concibe, desarrolla, usa y mantiene el software
– Metodología sistemática
– ISO 12207, IEEE 1074
– Definición de procesos y actividades
● Incluye– Gestión del proyecto
– Implementación (realización del producto)
– Puesta en producción
![Page 9: Diseño Software - QueGrande.orgquegrande.org/apuntes/grado/1G/DSG/teoria/11-12/introduccion.pdf · Diseño de software El proceso de definición de la arquitectura, componentes,](https://reader034.vdocuments.pub/reader034/viewer/2022052310/5f06b1687e708231d4194345/html5/thumbnails/9.jpg)
Actividades del ciclo de vida
● Análisis
(cc) Stéfan (http://www.flickr.com/photos/st3f4n)
![Page 10: Diseño Software - QueGrande.orgquegrande.org/apuntes/grado/1G/DSG/teoria/11-12/introduccion.pdf · Diseño de software El proceso de definición de la arquitectura, componentes,](https://reader034.vdocuments.pub/reader034/viewer/2022052310/5f06b1687e708231d4194345/html5/thumbnails/10.jpg)
Actividades del ciclo de vida
● Diseño e implementación
![Page 11: Diseño Software - QueGrande.orgquegrande.org/apuntes/grado/1G/DSG/teoria/11-12/introduccion.pdf · Diseño de software El proceso de definición de la arquitectura, componentes,](https://reader034.vdocuments.pub/reader034/viewer/2022052310/5f06b1687e708231d4194345/html5/thumbnails/11.jpg)
Actividades del ciclo de vida
● Depuración● Validación● Mantenimiento● Documentación● Seguimiento● etc.
![Page 12: Diseño Software - QueGrande.orgquegrande.org/apuntes/grado/1G/DSG/teoria/11-12/introduccion.pdf · Diseño de software El proceso de definición de la arquitectura, componentes,](https://reader034.vdocuments.pub/reader034/viewer/2022052310/5f06b1687e708231d4194345/html5/thumbnails/12.jpg)
Análisis vs. Diseño
● Investigación (descripción del problema y requisitos)
● Solución lógica (cumplimiento de requisitos: asignación de responsabilidades, interacciones entre objetos, etc.)
![Page 13: Diseño Software - QueGrande.orgquegrande.org/apuntes/grado/1G/DSG/teoria/11-12/introduccion.pdf · Diseño de software El proceso de definición de la arquitectura, componentes,](https://reader034.vdocuments.pub/reader034/viewer/2022052310/5f06b1687e708231d4194345/html5/thumbnails/13.jpg)
Modelos de desarrollo
● Cascada (waterfall)● En espiral● Iterativo● Métodologías ágiles● ...
![Page 14: Diseño Software - QueGrande.orgquegrande.org/apuntes/grado/1G/DSG/teoria/11-12/introduccion.pdf · Diseño de software El proceso de definición de la arquitectura, componentes,](https://reader034.vdocuments.pub/reader034/viewer/2022052310/5f06b1687e708231d4194345/html5/thumbnails/14.jpg)
Diseño de software
El proceso de definición de la arquitectura, componentes, interfaces y otras característias de
un sistema o componente que resulta de este proceso [IEEE610.12-90]
● Objetivos– Obtener un modelo “implementable”
– Documentar la implementación
● Contexto– Análisis - Diseño - Implementación
![Page 15: Diseño Software - QueGrande.orgquegrande.org/apuntes/grado/1G/DSG/teoria/11-12/introduccion.pdf · Diseño de software El proceso de definición de la arquitectura, componentes,](https://reader034.vdocuments.pub/reader034/viewer/2022052310/5f06b1687e708231d4194345/html5/thumbnails/15.jpg)
Diseño de software
● Proceso– Diseño arquitectónico (componentes)
– Diseño detallado
● Técnicas– Abstracción
– Acoplamiento y cohesión
– Descomposición y modularización
– Encapsulamiento/ocultar información
– Separación de interfaz y aplicación
![Page 16: Diseño Software - QueGrande.orgquegrande.org/apuntes/grado/1G/DSG/teoria/11-12/introduccion.pdf · Diseño de software El proceso de definición de la arquitectura, componentes,](https://reader034.vdocuments.pub/reader034/viewer/2022052310/5f06b1687e708231d4194345/html5/thumbnails/16.jpg)
Tipos de diseño software
● Diferentes aproximaciones al diseño de software:
– Diseño orientado a objetos
– Diseño centrado en el usuario
– Diseño orientado a procesos
– Diseño basado en agentes
– Diseño en paralelo
– Diseño visual/gráfico
![Page 17: Diseño Software - QueGrande.orgquegrande.org/apuntes/grado/1G/DSG/teoria/11-12/introduccion.pdf · Diseño de software El proceso de definición de la arquitectura, componentes,](https://reader034.vdocuments.pub/reader034/viewer/2022052310/5f06b1687e708231d4194345/html5/thumbnails/17.jpg)
Diseño orientado a objetos
● Basado en el paradigma OO– Abstracción, encapsulación, polimorfismo
– ¿cómo asignar responsabilidades a los objetos?
– ¿cómo deben interactuar?
– ¿qué clases deben hacer qué?
● Promueve modularidad, extensibilidad, reutilización, ...
– Capacidad para modelar sistemas complejos
– Más facilidad de mantenimiento
![Page 18: Diseño Software - QueGrande.orgquegrande.org/apuntes/grado/1G/DSG/teoria/11-12/introduccion.pdf · Diseño de software El proceso de definición de la arquitectura, componentes,](https://reader034.vdocuments.pub/reader034/viewer/2022052310/5f06b1687e708231d4194345/html5/thumbnails/18.jpg)
Lenguaje de modelado: UML
● Lenguaje para la descripción de modelos sw● Lenguajes formales vs no formales
– Ambigüedad
– Flexibilidad
– Generalidad
● UML (Unified Modeling Language)– Análisis y diseño
– Lenguaje visual
– Lenguaje documental
– Artefactos software orientados a objetos
![Page 19: Diseño Software - QueGrande.orgquegrande.org/apuntes/grado/1G/DSG/teoria/11-12/introduccion.pdf · Diseño de software El proceso de definición de la arquitectura, componentes,](https://reader034.vdocuments.pub/reader034/viewer/2022052310/5f06b1687e708231d4194345/html5/thumbnails/19.jpg)
Diseño software
● En la asignatura:– Diseño
– Implementación como validación del diseño
– Paradigma OO
– UML