Publicado el 12 de Julio del 2017
837 visualizaciones desde el 12 de Julio del 2017
546,9 KB
19 paginas
Creado hace 13a (21/09/2011)
Diseño Software
2º de Grado en Ingeniería Informática
(1) Diseño y desarrollo de software
Desarrollo de software
● Proceso complejo
Desarrollo software
● No sólo diseño y codificación
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)
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.
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
– ...
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
Actividades del ciclo de vida
● Análisis
(cc) Stéfan (http://www.flickr.com/photos/st3f4n)
Actividades del ciclo de vida
● Diseño e implementación
Actividades del ciclo de vida
● Depuración
● Validación
● Mantenimiento
● Documentación
● Seguimiento
● etc.
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.)
Modelos de desarrollo
● Cascada (waterfall)
● En espiral
● Iterativo
● Métodologías ágiles
● ...
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
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
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
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
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
Diseño software
● En la asignatura:
– Diseño
– Implementación como validación del diseño
– Paradigma OO
– UML
Comentarios de: Diseño Software (0)
No hay comentarios