diseño software - quegrande.orgquegrande.org/apuntes/grado/1g/dsg/teoria/11-12/introduccion.pdf ·...

19
Diseño Software 2º de Grado en Ingeniería Informática

Upload: others

Post on 14-Jun-2020

15 views

Category:

Documents


0 download

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,

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,

(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,

● 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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

Diseño software

● En la asignatura:– Diseño

– Implementación como validación del diseño

– Paradigma OO

– UML