Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Tema 1. Introduccin al anlisis y diseo 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 abstraccin: aspectos avanzados Tema 7. Entrada/salida con ficheros Tema 8. Verificacin y prueba de programas
Prcticas de Programacin
0 1955
SoftWare actualidad
Principal aportacin de la Ingeniera del Software: Definicin 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 Ingeniera del Software todava es una disciplina en evolucin
Prcticas de Programacin M. Aldea y M. Gonzlez 11/05/09
Tema 1. Introduccin al anlisis y diseo de programas 1.2 Actividades en el desarrollo del software
Tema 1. Introduccin al anlisis y diseo de programas 1.3 Modelo clsico: desarrollo en cascada
Eliminacin de errores
Implementacin
Prcticas de Programacin
Tema 1. Introduccin al anlisis y diseo de programas 1.3 Modelo clsico: desarrollo en cascada
Anlisis de requisitos
Diseo de la Arquitectura
Programa final
Prcticas de Programacin
Pruebas e Integracin
M. Aldea y M. Gonzlez 11/05/09
c di go
Codificacin y Depuracin 6
Tema 1. Introduccin al anlisis y diseo de programas 1.3 Modelo clsico: desarrollo en cascada
Prcticas de Programacin
Tema 1. Introduccin al anlisis y diseo de programas 1.4 Objetivos de los nuevos modelos
Prcticas de Programacin
Prototipo
Sistema Final
Diseo de la Arquitectura
Codificacin
Sistema Final
Prcticas de Programacin
10
11
Recoleccin inicial de requisitos y planificacin inicial del proyecto Planificacin basada en los comentarios del cliente Evaluacin del cliente
Planificacin
Anlisis de riesgo
Anlisis de riesgo basado en los requisitos iniciales Anlisis de riesgo basado en la reaccin del cliente
Decisin de seguir o no Prototipo inicial Prototipo del siguiente nivel Hacia el sistema final Evaluacin del cliente Implementacin 1 versin sistema completo
Prcticas de Programacin
12
Documento de Requisitos
Para construir algo lo primero que debemos saber es qu es ese algo Anlisis de requisitos: proceso de entender y documentar lo que queremos hacer generalmente se centra en qu debe hacer el sistema no en cmo debe hacerlo Requisito (requerimiento o requirement): necesidad o restriccin que debe satisfacer un producto software para contribuir a la solucin de un problema real
Prcticas de Programacin M. Aldea y M. Gonzlez 11/05/09
13
Prcticas de Programacin
14
Prcticas de Programacin
15
Prcticas de Programacin
16
Tema 1. Introduccin al anlisis y diseo de programas 1.7 Introduccin al anlisis de requisitos Cmo se expresan los C-requisitos (cont.)
Con casos de uso detallados: describen una interaccin entre un actor y la aplicacin
Ejemplo: Caso de uso Registra Usuario 1. El bibliotecario selecciona la opcin Registrar Usuario 2. La aplicacin muestra una ventana que permite introducir el nombre y el DNI del usuario 3. El bibliotecario introduce los datos solicitados 4. La aplicacin aade el nuevo usuario a la lista de usuarios registrados de la biblioteca - En el caso de que ya exista un usuario registrado con el mismo DNI se notifica el error y no se aade el nuevo usuario
Prcticas de Programacin M. Aldea y M. Gonzlez 11/05/09
17
18
Prcticas de Programacin
19
Objetos :NombreClase
nombreObjeto
Prcticas de Programacin
20
Sensor de proximidad
1 Sirena - encendida + encender + apagar Multiplicidad 0..1 1 1..* * uno o ninguno siempre 1 uno o ms cero o ms 21
Prcticas de Programacin
22
Objetos y clases
Objeto: entidad que existe en el espacio y en el tiempo, posee: identidad: nombre modelo estado: atributos Coche color comportamiento: operaciones que otros matrcula objetos pueden realizar sobre l
pinta()
Clase: descripcin de un conjunto de objetos con los mismos atributos y comportamiento El anlisis orientado a objetos realiza el modelado del problema en trminos de: - clases - objetos - comunicacin entre objetos - herencia y polimorfismo
Prcticas de Programacin
mundo real
23
Identificacin de clases
Durante las primeras fases del anlisis se procede a la identificacin de las clases que componen nuestro problema: espacio de nombres del problema candidatos a clases relaciones (verbos) entre los nombres candidatos a casos de uso (u operaciones de las clases)
El alumno deber matricularse como mnimo de cinco asignaturas candidatos a operaciones candidatos a clases
El cliente deber poder acceder al saldo de su cuenta desde cualquier cajero automtico
Prcticas de Programacin
24
Modelo de anlisis
Se comienza identificando las clases que forman el dominio de nuestro problema Asignatura
Alumno Curso
Posteriormente se identifican las relaciones entre clases, sus atributos y sus mtodos
Alumno dni nombre 1..* alumnos 4 asignaturas Asignatura Alumno ttulo matriculaAlumno
Curso nombre
Prcticas de Programacin
25
Diseo de la Arquitectura
Identificacin de clases auxiliares (obviadas en el anlisis) Descripcin completa de la jerarqua de clases Interfaz de los mtodos pblicos Relaciones entre clases
Diseo
Diseo detallado
Representacin (tipo) de los atributos de cada clase Diseo de los mtodos (pseudocdigo)
refinamientos sucesivos
Codificacin y Depuracin
Documento de Arquitectura
Prcticas de Programacin M. Aldea y M. Gonzlez 11/05/09
Pruebas e Integracin
Operacin y Mantenimiento
26
Modelo de diseo
Aade detalles al modelo de anlisis (tipos, visibilidad, etc.) tambin se aaden clases auxiliares (en caso de que las haya)
Alumno -dni: string -nombre: string +dni(): string +nombre(): string Curso Alumno -nombre: string +nombre(): string 1..* -alumnos Asignatura Alumno -ttulo: string +ttulo(): string 4 +matriculaAlumno(a: Alumno) -asignaturas
El diagrama final deber incluir todo lo necesario para verificar todos los requisitos de nuestro sistema
Los problemas a tratar en esta asignatura sern sencillos por lo que, en general, no distinguiremos entre los modelos de anlisis y diseo
Prcticas de Programacin M. Aldea y M. Gonzlez 11/05/09
27
Pruebas Operacin
La implementacin de un diseo orientado a objetos es mucho ms sencilla si se utiliza un lenguaje orientado a objetos Tambin es posible utilizar un lenguaje no orientado a objetos pero se repite mucho cdigo y no se aprovechan todas las ventajas del diseo Un lenguaje orientado a objetos (como Java): proporciona primitivas para definir clases y objetos soporta de forma directa la herencia y el polimorfismo
Prcticas de Programacin M. Aldea y M. Gonzlez 11/05/09
c di go
28
1.12 Resumen
Proceso de desarrollo (sencillo) que seguiremos en la asignatura
Anlisis de requisitos Diseo Lenguaje natural Casos de uso Casos de uso detallados Documento de Requisitos Diagrama de clases UML Pseudocdigo Documento de Arquitectura
c di go
Operacin y Mantenimiento
En lenguaje Java
29
1.13 Bibliografa
Eric J. Braude, Ingeniera de Software. Alfaomega, 2003. Parte de los captulos 1, 3 y 4 Ian Sommerville, Ingeniera de software (6 edicin). Pearson Educacin de Mxico, 2002. Parte de los captulos 3 y 5 Russell Miles, Kim Hamilton. Learning UML 2.0. O'Reilly Media, Inc. April 25, 2006. Disponible on-line en la biblioteca:
http://proquestcombo.safaribooksonline.com/0596009828
30