Publicado el 14 de Enero del 2017
1.627 visualizaciones desde el 14 de Enero del 2017
281,6 KB
10 paginas
Creado hace 15a (16/02/2010)
Prácticas de Programación
Tema 1. Introducción al análisis y diseño de programas
Tema 2. Clases y objetos
Tema 3. Herencia y Polimorfismo
Tema 4. Tratamiento de errores
Tema 5. Aspectos avanzados de los tipos de datos
Tema 6. Modularidad y abstracción: aspectos avanzados
Tema 7. Entrada/salida con ficheros
Tema 8. Verificación y prueba de programas
Prácticas de Programación
© M. Aldea y M. González
11/05/09
Tema 1. Introducción al análisis y diseño de programas
Tema 1. Introducción al análisis y diseño de
programas
1
Ingeniería del software
1.1.
1.2. Actividades en el desarrollo del software
1.3. Modelo clásico: desarrollo en cascada
1.4. Objetivos de los nuevos modelos
1.5. Modelo de desarrollo evolutivo
1.6. Modelo de desarrollo en espiral
1.7.
1.8. Diagrama de Clases en UML
1.9. Análisis orientado a objetos
1.10. Diseño orientado a objetos
1.11. Programación orientada a objetos
1.12. Resumen
1.13. Bibliografía
Introducción al análisis de requisitos
© M. Aldea y M. González
11/05/09
2
Prácticas de Programación
Tema 1. Introducción al análisis y diseño de programas
1.1 Ingeniería del software
Meta: desarrollo costeable de sistemas software
Surge en 1968 debido a la “crisis del software”
• el aumento de potencia de los computadores
hacía pensar que sería posible abordar
problemas cada vez más complejos
• pero las aplicaciones se finalizaban con
retraso, costando mucho más de lo
presupuestado y con muchos errores
1.1 Ingeniería del software
100
HardWare
e
t
s
o
c
%
0
1955
SoftWare
actualidad
Principal aportación de la Ingeniería del Software:
• Definición de modelos de proceso de desarrollo del software:
conjunto de actividades y resultados asociados utilizados para
concebir, desarrollar, instalar y mantener un producto software
La Ingeniería del Software todavía es una disciplina en evolución
Prácticas de Programación
© M. Aldea y M. González
11/05/09
3
Tema 1. Introducción al análisis y diseño de programas
1.2 Actividades en el desarrollo del software
1.2 Actividades en el desarrollo del software
No existe un proceso de desarrollo universal
• depende de la naturaleza del producto y de la empresa
Todos los procesos incluyen las siguientes actividades:
• Análisis de requisitos: estudio de la naturaleza del problema y
definición de qué debe hacer el sistema software
• Diseño e implementación: comienza con el diseño de la
estructura general del software para, tras sucesivas etapas de
refinamiento, alcanzar la fase de escritura del código
• Pruebas e integración: suelen ser fases cíclicas, en las que de
forma incremental se van probando e integrando las diversas
partes del sistema
• Mantenimiento: reparación de problemas, adaptación a nuevas
condiciones, mejoras, etc.
Prácticas de Programación
© M. Aldea y M. González
11/05/09
Tema 1. Introducción al análisis y diseño de programas
1.3 Modelo clásico: desarrollo en cascada
Se basa en una secuencia de pasos que son optimizados uno a
uno a nivel individual
1.3 Modelo clásico: desarrollo en cascada
Tiempo
Análisis de
requisitos
Diseño
Avance
Codificación y
Depuración
Eliminación
de errores
Pruebas e
Integración
Operación y
Mantenimiento
Eliminación
de errores de
alto coste
Implementación
Prácticas de Programación
© M. Aldea y M. González
11/05/09
Tema 1. Introducción al análisis y diseño de programas
Resultados de las etapas
Cada etapa se basa en los resultados de la anterior
1.3 Modelo clásico: desarrollo en cascada
Requisitos
Informales
Análisis de
requisitos
Documento de
requisitos
Documento de
Arquitectura
Diseño de la
Arquitectura
Resultados de
las Pruebas
Programa
final
Prácticas de Programación
código
Pruebas e
Integración
Codificación y
Depuración
© M. Aldea y M. González
11/05/09
4
5
6
Tema 1. Introducción al análisis y diseño de programas
1.3 Modelo clásico: desarrollo en cascada
Limitaciones del modelo de desarrollo en cascada
La calidad del proceso se ve limitada ya que este modelo:
• Exige la toma de decisiones en fases iniciales, sin conocer su
efecto en fases sucesivas
• Considera que los requisitos del programa están definidos
antes de que éste haya sido diseñado
• Se basa en criterios tales como la experiencia del programador,
y es difícil de automatizar
• Hace muy difícil y costoso el proceso de mantenimiento del
software
Sin embargo, su uso reporta muchos beneficios con respecto a un
proceso desordenado, en el que no se siga una metodología clara
Prácticas de Programación
Tema 1. Introducción al análisis y diseño de programas
© M. Aldea y M. González
11/05/09
7
1.4 Objetivos de los nuevos modelos
1.4 Objetivos de los nuevos modelos
Los nuevos modelos de desarrollo tratan de:
• Proporcionar a los usuarios un objeto ejecutable en las etapas
iniciales del proceso para clarificar los requisitos
• Posibilitar que el usuario actúe como analista
• Minimizar los errores cometidos en las etapas iniciales del
desarrollo
• Facilitar el mantenimiento
• Mantener actualizada la documentación
• Analizar y reducir el riesgo
Se pueden utilizar en combinación con el modelo clásico, o una
combinación de varios de ellos
Prácticas de Programación
Tema 1. Introducción al análisis y diseño de programas
© M. Aldea y M. González
11/05/09
8
1.5 Modelo de desarrollo evolutivo
1.5 Modelo de desarrollo evolutivo
Se basa en evolucionar un prototipo hasta lograr el sistema final
• se crea un prototipo inicial al comienzo del proyecto
(posiblemente con funcionalidad reducida)
• se entrega al usuario
- lo que le permite definir más claramente sus requisitos:
“sabré lo que quiero cuando lo vea”
• el prototipo se va refinando en sucesivas versiones
Cuando el prototipo alcanza un nivel adecuado se puede:
• Transformar en el sistema completo
- Se corre el peligro de que tenga una estructura deficiente
• Iniciar un nuevo proceso de desarrollo en cascada basándose
en la experiencia adquirida
- Más costoso, pero normalmente más seguro
Prácticas de Programación
© M. Aldea y M. González
11/05/09
9
Tema 1. Introducción al análisis y diseño de programas
Esquema del modelo de desarrollo evolutivo
1.5 Modelo de desarrollo evolutivo
Lista de cambios
propuesta por el usuario
Desarrollo del sistema final
por evolución del prototipo
requisitos
del sistema
(informales e
incompletos)
Requisitos
del prototipo
Prototipo
Sistema
Final
Arquitectura
del prototipo
Desarrollo del sistema final
por método en cascada
Requisitos
acordes a los
deseos del
usuario
Diseño de la
Arquitectura
Codificación
Sistema
Final
Prácticas de Programación
Tema 1. Introducción al análisis y diseño de programas
© M. Aldea y M. González
11/05/09
10
1.6 Modelo de desarrollo en espiral
Trata de aunar las ventajas de los modelos clásico y evolutivo
• realiza el desarrollo del producto a través de varias etapas
• añade un elemento nuevo: el análisis de riesgos
1.6 Modelo de desarrollo en espiral
Cada etapa se compone de las siguientes fases:
• Planificación: determinación de objetivos, alternativas, y
restricciones, de acuerdo con la etapa actual. Salvo en la
primera etapa, se tendrán en cuenta las valoraciones del cliente
• Análisis de riesgo: análisis de las alternativas, e identificación
y valoración de riesgos. Como resultado se eligen las
alternativas de menor riesgo, o si el riesgo es demasiado alto
se abandona el proyecto
• Implementación: desarrollo del producto del siguiente nivel
• Evaluación del cliente: valoración de los resultados por parte
del cliente
© M. Aldea y M. González
11/05/09
11
Prácticas de Programación
Tema 1. Introducción al análisis y diseño de programas
Esquema del modelo de desarrollo en espiral
1.6 Modelo de desarrollo en espiral
Planificación
Análisis de riesgo
Recolección inicial de
requisitos y planificación
inicial del proyecto
Planificación basada en
los comentarios del
cliente
Evaluación del cliente
Hacia el sistema final
Evaluación del cliente
Implementación
Análisis de riesgo basado
en los requisitos iniciales
Análisis de riesgo basado
en la reacción del cliente
Decisión de seguir o no
Prototipo inicial
Prototipo del siguiente nivel
1ª versión sistema completo
Prácticas de Programación
© M. Aldea y M. González
11/05/09
12
Tema 1. Introducción al análisis y diseño de programas
1.7 Introducción al análisis de requisitos
1.7 Introducción al análisis de requisitos
Análisis
de requisitos
Resultado final del análisis
Diseño
Codificación
Pruebas
Operación
Documento de
Requisitos
Para construir algo lo primero que debemos saber es qué es ese
“algo”
Análisis de requisitos:
• proceso de entender y documentar lo que queremos hacer
• generalmente se centra en qué debe hacer el sistema
• no en cómo debe hacerlo
• Requisito (requerimiento o requirement): necesidad o
restricción que debe satisfacer un producto software para
contribuir a la solución de un problema real
Prácticas de Programación
Tema 1. Introducción al análisis y diseño de programas
© M. Aldea y M. González
11/05/09
13
1.7 Introducción al análisis de requisitos
Requisitos del cliente y del desarrollador
Existen dos tipos de requisitos:
• Requisitos del cliente (C-requisitos): lo que el cliente quiere y
necesita, expresado en un lenguaje claro para él
• Requisitos del desarrollador (D-requisitos): más detallados que
los C-requisitos y expresados en un lenguaje más formal y
estructurado
Escritos por el Cliente
Con colaboración y revisión del desarrollador
Escritos por el Desarrollador
Con colaboración y revisión del cliente
Descripción breve
del proyecto y
principales
características
Prácticas de Programación
C-requisitos
D-requisitos
Audiencia principal: cliente y usuario
Audiencia secundaria: desarrollador
Audiencia principal: desarrollador
Audiencia secundaria: cliente
© M. Aldea y M. González
11/05/09
14
Tema 1. Introducción al análisis y diseño de programas
1.7 Int
Comentarios de: Prácticas de Programación - Tema 1. Introducción al análisis y diseño de programas (0)
No hay comentarios