viernes, 5 de agosto de 2011

Analisis y Diseño Orientado a Objetos

La Crisis del Software

Casos del Dpto de vehiculos motorizados de California y el caso de American Airlines

Razones:
Base Inestable, documentos no están estandarizados, formatos diferentes... diseños incomprensibles
Fallas en el Manejo de riesgo, faltó plan de contingencia, no planteó estrategia... y ante los problemas, no hay acción.
La complejidad del SW. Coplejidad en la lógica, complejidad en los procesos de negocio que conllevan a procesos automatizados complejos.

Soluciones:

  • Buen análisis y Diseño, RUP tiene contemplado todas las herramientas para esto.
  • Conservar un modelado sencillo. Programación lo más sencilla posible
  • Usar un lenguaje de modelamiento común
  • Compatible con diversas herramientas, no siempre tenemos las herramientas con las licencias... es mejor exportar los documentos a forma libre o estándar.
UML es necesario porque es un lenguaje estandarizado que permite graficar el sistema desde todas las perspectivas, por dentro y por fuera.. en cada evento, cada botón, cómo se registra en la base de datos, qué componentes salen producto de esa implementación y cómo se va a desplegar la aplicación.

Así como vamos a picar nuestras paredes y suelos de casa para poner el gas natural cuando no lo contemplamos en los planos, así también parcharemos los sistemas a la mala cuando tengamos que poner nuevas funcionalidades en nuestras aplicaciones.

Para lograr esto el concepto de orientación a objetos es muy útil, podremos armar el sistema como armando un rompecabezas.

Los objetos son comunes en la realidad, al nacer la RENIEC nos exige registrar a cada bebe. Así se reconoce la individualidad de cada persona. Y a su vez necesita información específica de cada uno, no quieren saber nuestro signo zodiacal o tipo de sangre, ellos necesitan los nombres, apellidos, fecha de nacimiento, y algunos datos más. No todos, solo algunos datos. Una universidad pide otro tipo de información, y así cada realidad exige distintos datos del objeto.

Un objeto posee características y comportamiento propios, únicos e inconfundibles.

Un buen análisis buscará encontrar esos elementos que lo hacen único e inconfundible.

Nunca asumir nada, siempre hay que analizar y preguntar siempre para conocer la identidad de un objeto.
Siempre observar las reglas de negocio preguntando

Los objetos tienen dos elementos: Atributos y Operaciones.

Los estados son valores de los atributos: Prendido, Apagado, Activo, Inacivo, Casado, Soltero, Aprobado, Desaprobado...

Siempre que vamos a hacer un sistema, se pregunta el alcance, para qué es el sistema y deben decirme qué atributos usar. Sino, corremos el riesgo de asumir.

==
Ejercicio: Hemos resaltado los objetos de este enunciado:

Juan Pérez es profesor del curso de Ingeniería de software dictado en la Escuela de Sistemas de la Facultad de Sistemas de la Universidad Peruana de Ciencias Aplicadas, también lo dicta en la escuela de sistemas de la Facultad de Sistemas de la UNI. Juan Pérez es profesor contratado en la UNI, pero es profesor nombrado en la Universidad. Es profesor principal en la UNI y es profesor asociado en la Universidad Peruana de Ciencias Aplicadas. Nació en Arequipa pero actualmente vive en Lima.

Pedro Alegría ingresa su código de estudiante al sistema de Reserva de cursos, el sistema le pregunta por el semestre a matricularse y este le indica que corresponde al semestre 2003-02, luego elige de la lista de horarios existentes, el horario nocturno.
De una lista de cursos disponibles, Pedro elige Inglés Básico, Electrónica Digital y Algoritmos Matemáticos. Como cursos electivos escoge Teoría de la Música y Programación en C++.

El sistema de Reservas de Cursos determina que los datos son conformes y le imprime el comprobante N° 0015264 para que se acerque al departamento de Caja puesto que internamente se acaba de enviar sus datos al sistema de Cobranzas para su proceso.
==

Programación Orientada a Objetos (características de objetos)
  • Abstracción
  • Encapsulamiento
  • Cliente Servidor
  • Jerarquía (dependencia) de dos tipos: Generalización (herencia) y Agregación (agrupamiento)
  • Polimorfismo, una entidad que puede tomar diversas formas
  • Modularidad, subdividir en partes más pequeñas para darles independencia
  • Persistencia, capacidad de poder almacenarse en un lugar fijo para poder existir.

Clases

Agrupaciones de objetos con características y comportamientos similares. 
  • Guía de estilo que recomienda RUP:
  • Usar sustantivo singular
  • Empezar con mayúscula
  • No usar subrayado (los subrayado se usan en objetos, no en clases)
  • Los nombres compuestos se escriben juntos.


Graficando:

Objeto:
Los objetos tienen los nombres subrayados


==
Ejercicio: se han  resaltado las clases en el siguiente enunciado:



En la base de datos de la Universidad Peruana de Ciencias Aplicadas, se representan datos sobre estudiantes y profesores. Para los estudiantes, se representa el apellido, edad, sexo, ciudad y provincia de nacimiento, ciudad y provincia de residencia de sus familias, lugares y provincias donde vivieron antes (con el lapso que vivieron en cada uno), cursos que han aprobado, con nombre, código, profesor, nota y fecha. Aunque para el caso de Alicia Fernández fue difícil registrar el lugar de residencia de sus padres porque es huérfana y su familia actual no recordaba ese dato.

Asimismo, se representan los cursos a los que un alumno asiste en la actualidad y, para cada uno, día, sitios y horas de dictado de las clases (cada curso se imparte a lo sumo una vez en un día).
Para estudiantes graduados, se representa el nombre del consejero y el número total de créditos en el último año. El Ing. Rubén De la Cruz es consejero de esta universidad por más de tres años consecutivos pero dejo de ser docente el ciclo pasado.

Para estudiantes de doctorado, se representa el título y área de investigación de sus tesis. Para los maestros, se representa el apellido, edad, lugar y provincia de nacimiento, nombre del departamento académico al que pertenecen, número de teléfono, título, situación y temas de investigación.
Algunos temas de investigación, como la Exportación de Espárragos, ya están prohibidos por haberse saturado el número de tesis presentadas.

==

Por qué fracasan los Proyectos de Software
Nos ponen algunas pero tienen maneras de resolverlas, RUP ofrece mejores practicas


Aplicar una metodología pero apliquémosla bien: una metodología y un lenguaje común



=====
Reflexiones para el trabajo:

- El Gestor no es Modulado... se puede hacer algo con esto?
- Control de versionamiento siempre

No hay comentarios:

Publicar un comentario