Você está na página 1de 35

Vicerrectora Acadmica

Cuaderno de Apuntes 2013




Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.



















































Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.

Estimado Estudiante de AIEP, en este Cuaderno de Apuntes, junto a cada Aprendizaje Esperado que se te presenta y que
corresponde al Mdulo que cursas, encontrars Conceptos, Ideas Centrales y Aplicaciones que reforzarn el
aprendizaje que debes lograr.

Esperamos que estas Ideas Claves entregadas a modo de sntesis te orienten en el desarrollo del saber, del hacer y del
ser.

Mucho xito.-

Direccin de Desarrollo Curricular y Evaluacin
VICERRECTORA ACADMICA AIEP







































Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.

Mdulo: TALLER DE HERRAMIENTAS DE PRODUCTIVIDAD

UNIDAD 1 : Proceso de desarrollo orientado a objetos enfocado en el anlisis orientado a objetos (ADO)

Aprendizaje Esperado: Aplicar el proceso de desarrollo de software a travs de las herramientas esenciales para el
proceso de software y fases de un ciclo de vida, con anlisis orientado a objetos.
El anlisis y diseo orientado a objetos (ADO) es un enfoque de la ingeniera de software que modela un sistema como un
grupo de objetos que interactan entre s. Las metodologas de anlisis y diseo ms modernas son casos de uso guiados
a travs de requerimientos, diseo, implementacin, pruebas, y despliegue.

1.1 Proceso de desarrollo de software.

Un sistema informtico se compone de HW y SW. En relacion al HW, su produccin se realiza sistemticamente y la base
de conocimiento para el desarrollo se define claramente. Respecto al SW, su construccin y resultados siempre se han
puesto en duda debido a ciertos problemas, como son:
Los sistemas no responden a las expectativas de los usuarios.
Los programas fallan con cierta frecuencia.
Los costos del software son difciles de prever y normalmente superan las estimaciones.
La modificacin del software es una tarea difcil y costosa.
El software se suele presentar fuera del plazo establecido y con menos prestaciones de las consideradas
inicialmente.
El aprovechamiento ptimo de los recursos (personas, tiempo, dinero, herramientas, etc.) no suele cumplirse.

Problemas comunes en el desarrollo de software son:
Escasa o tarda validacin con el cliente.
Inadecuada gestin de los requisitos.
No existe medicin del proceso ni registro de datos histricos.
Estimaciones imprevistas de plazos y costos.
Excesiva e irracional presin en los plazos.
Escaso o deficiente control en el progreso del proceso de desarrollo.
No se hace gestin de riesgos formalmente.
No se realiza un proceso formal de pruebas.
No se realizan revisiones tcnicas formales e inspecciones de cdigo.

Ingeniera del software:
La aplicacin de un enfoque sistemtico, disciplinado y cuantificable para el desarrollo, operacin y
mantenimiento del software.

El libro Ingenieria de Software de Pressman define la Ingeniera de Software como una tecnologa multicapa, como
aparece en la Figura 1.


Figura 1: Capas de la Ingeniera de Software.

Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.
Cualquier disciplina de ingeniera debe estar sustentada sobre la calidad. Gestionar con calidad permite tener una
cultura de mejoras de procesos.
El fundamento de la ingeniera de software es la capa proceso. El proceso define un marco de trabajo para un
conjunto de reas clave, las cuales forman la base del control de gestin de proyectos y establecen el contexto.
Los mtodos de la ingeniera de software indican cmo construir tcnicamente el software. Los mtodos abarcan
anlisis de requisitos, diseo, construccin de programas, pruebas y mantenimiento.
Las herramientas de la ingeniera del software proporcionan un soporte automtico o semi-automtico para el proceso
y los mtodos (herramientas CASE).

El objetivo de la ingeniera de software es lograr productos de software de calidad (tanto en su forma final como
durante su elaboracin), mediante un proceso apoyado por mtodos y herramientas.

El proceso de desarrollo del software
Su objetivo es la produccin eficiente de un producto software que rena los requisitos del cliente (figura 2). Este proceso
es intelectual, creativo y juicio de las personas involucradas. Un proyecto de desarrollo de software es equiparable en
muchos aspectos a cualquier otro proyecto de ingeniera, a continuacin se explican algunas particularidades asociadas al
desarrollo de software y que influyen en su proceso de construccin:

Un producto software en s es complejo, es prcticamente inviable conseguir un 100% de confiabilidad de un
programa por pequeo que sea.
Un producto software es intangible y por lo general muy abstracto, esto dificulta la definicin del producto y sus
requisitos, sobre todo cuando no se tiene precedentes en productos software similares.
La inmadurez de la ingeniera del software como disciplina, justificada por su corta vida comparada con otras
disciplinas de la ingeniera.

Requisitos nuevos
o modificados
Sistema nuevo
o modificado
Proceso de Desarrollo
de Software
Requisitos nuevos
o modificados
Sistema nuevo
o modificado
Proceso de Desarrollo
de Software

Figura 2: proceso de desarrollo de software.


No existe un proceso de software universal que sea efectivo para todos los contextos de proyectos de desarrollo, es difcil
automatizar todo un proceso de desarrollo de software.
A pesar de la variedad de propuestas, existe un conjunto de actividades fundamentales que se encuentran presentes en
todos ellos:

1. Especificacin de software: Se define la funcionalidad y restricciones operacionales que debe cumplir el software.
2. Diseo e Implementacin: Se disea y construye el software segn la especificacin.
3. Validacin: El software debe validarse, debe cumplir con lo que quiere el cliente.
4. Evolucin: El software debe evolucionar, adaptarse a las necesidades del cliente.

Adems de estas actividades fundamentales, Pressman menciona un conjunto de actividades protectoras, que se
aplican a lo largo de todo el proceso del software:

Seguimiento y control de proyecto de software.
Revisiones tcnicas formales.
Garanta de calidad del software.
Gestin de configuracin del software.
Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.
Preparacin y produccin de documentos.
Gestin de reutilizacin.
Mediciones.
Gestin de riesgos.

Pressman caracteriza un proceso de desarrollo de software como se muestra en la Figura 3. Los elementos son:

Un marco comn del proceso, definiendo un pequeo nmero de actividades del marco de trabajo que son
aplicables a todos los proyectos de software, con independencia del tamao o complejidad.

Un conjunto de tareas, cada uno es una coleccin de tareas de ingeniera del software, hitos de proyectos, entregas y
productos de trabajo del software, y puntos de garanta de calidad, que permiten que las actividades del marco de
trabajo se adapten a las caractersticas del proyecto de software y los requisitos del equipo del proyecto.

Las actividades de proteccin, tales como garanta de calidad del software, gestin de configuracin del software y
medicin, abarcan el modelo del proceso. Las actividades de proteccin son independientes de cualquier actividad del
marco de trabajo y aparecen durante todo el proceso.


Figura 3: Elementos del proceso del software

Fuente: Ingeniera de software, Pressman.

Los elementos del proceso de desarrollo de software deben responder Quin debe hacer Qu, Cundo y Cmo
debe hacerlo.

Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.

Figura 4: Relacin entre elementos del proceso del software


Quin: Las Personas participantes en el proyecto de desarrollo desempeando uno o ms Roles especficos.

Qu: Un Artefacto es producido por un Rol en una de sus Actividades. Los Artefactos se especifican utilizando
Notaciones especficas. Las Herramientas apoyan la elaboracin de Artefactos soportando ciertas Notaciones.

Cmo y Cundo: Las Actividades son una serie de pasos que lleva a cabo un Rol durante el proceso de desarrollo. El
avance del proyecto est controlado mediante hitos que establecen un determinado estado de terminacin de ciertos
Artefactos.

Fuente: Proceso de desarrollo de software, departamento de sistemas informticos y computacin, Universidad de
Valencia.


1.2. Qu es un Proceso?
conjunto de actividades enlazadas entre s que, partiendo de uno o ms inputs (entradas) los transforma,
generando un output (resultado).

Para la definicin de los procesos debemos considerar los siguientes elementos:

PROCESO: cualquier actividad, o serie de actividades, que transforma inputs en outputs, utilizando recursos y estando
bajo ciertos controles.

OUTPUTS: Los resultados de la transformacin de los inputs. Los outputs es lo que reciben los clientes del proceso. Si
satisfacen o superan sus necesidades, entonces se habr logrado el resultado. Los outputs suelen ser pocos y suelen ser
productos / servicios o informacin. Deben expresarse en formato nombre/verbo (oferta entregada al cliente, informe
trimestral presentado,...).
Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.

INPUTS: son entidades que se transforman mediante procesos para convertirse en outputs. Por lo general tambin suelen
ser productos / servicios y/o informacin. Los inputs los reciben las personas que llevan a cabo el proceso. Se generan
fuera del proceso y pueden servir como entrada para desencadenar el proceso o ser requeridos en alguna de las etapas
intermedias para poder realizar alguna actividad.

CONTROLES: Definen, regulan e influyen en el proceso, aunque ste no los transforma. Los controles son internos o
externos a la organizacin de transporte. En los controles internos se incluyen procedimientos, presupuestos, calendarios,
etc. En los controles externos se incluye la legislacin aplicable y el asesoramiento profesional.

RECURSOS: son factores necesarios para llevar a cabo la transformacin, pero que en s no se transforman. Aqu se
consideran las personas que realizan el proceso y los recursos fsicos que necesitan para hacerlo (mquinas,
herramientas, formacin, etc.).


Figura 5: Definicin de proceso segn norma ISO 9001:2000


Definicin de los procesos.

La definicin de los procesos es una de las herramientas esenciales ms importantes para la mejora continua ya que:

Se utiliza para entender y/o perfeccionar los procesos existentes y para disear nuevos procesos.
Permite asegurarse de que los procesos estn correctamente diseados, as como detectar las carencias y
necesidades de los clientes.
Contribuye a definir otras influencias en el proceso y, de este modo, ayuda al equipo a entenderse con la
complejidad

Fuente: http://www.fundacioncetmo.org/dgt%20mejora%20continua/pdf/Anexos/IV/IV.A.4.pdf

Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.

Principales tipos de Procesos:

Procesos Incrementales:

Se busca realizar un proyecto por partes que al final del contrato terminar siendo la solucin completa requerida por el
cliente pero estas partes no se pueden hacer como sea, sino que dependen de lo que el cliente este necesitando con ms
urgencia, de los puntos mas importantes del proyecto, los requerimientos ms bsicos, difciles y con mayor grado de
riesgo ya que estos se deben hacer al principio, de manera que se disminuya la dificultad y el riesgo en cada versin. Se
debe entregar una aplicacin ejecutable (primera versin) al cliente para que este pueda trabajar en ella, y el programador
pueda considerar las recomendaciones que el cliente de para hacer mejoras en el producto.



Procesos Iterativos:

Son parecidos a los incrementales en lo que es la entrega de versiones pero, la diferencia es que la primera versin debe
contener todos los requerimientos del usuario y lo que se va a hacer en las siguientes versiones es ir mejorando aspectos
como la funcionalidad o el tiempo de respuesta.
Las mejoras en cada versin pueden hacerse en un solo componente o para solucionar problemas en las versiones
anteriores.



Fuente: Introduccin ingeniera de software, http://esalas334.blogspot.es/1193761920/

Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.
Ciclos de vida del desarrollo de software.

Hay distintos modelos de ciclo de vida que son utilizados para el desarrollo de un sistema software, algunos son mas
conocidos por lo que se sabe sus virtudes y sus carencias. Cada uno es libre de utilizar cualquier tipo ya existente o
incluso elaborar uno propio, ya que esto es libre y lo que se va buscando es optimizar el proceso de desarrollo conforme a
los requerimientos que se nos piden en el mismo, logrando as desarrollar un programa de mayor calidad.
Los factores que influyen a la hora de elegir un ciclo de vida para resolver un problema son:

1. Disponibilidad de recursos ya sean econmicos, tiempo, equipos, humano, etc.
2. Entender los requerimientos.
3. Dominio del problema, si se tiene los conocimientos para dar solucin al problema central.
4. Complejidad y magnitud del proyecto.


Modelo en cascada:

Implica un previo y absoluto conocimiento de los requisitos. Implica un diseo exacto y sin errores ni probable modificacin
o evolucin ya que no permite retroceder para volver a disear. Cualquier cambio implica reiniciar el ciclo completo desde
el principio.



Modelo en V:

Es un modelo similar al modelo en cascada, pero en este caso se agrupan las actividades de anlisis en la primera rama
de la V y las actividades de la composicin en la otra. Tiene muchos mdulos que debes comprobar primero por separado
y luego al juntarlos. En este modelo ves todo el conjunto no solo lo que estas haciendo.

Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.


Modelo de proceso incremental:

En este modelo se entrega un primer incremento al usuario y luego se van haciendo nuevas iteraciones hasta finalizarlo.
1. Planificar los incrementos a dar al usuario.
2. Dar a cada incremento una tarea a seguir.
3. Decidir los principales bloques del programa y saber como conectarlos.





Modelo de prototipado rpido:

Se realizan prototipos cuando no se logra definir lo que quiere el cliente, o el diseo que desea, as rpidamente se sabr
si se trabaja en el camino adecuado. Estos prototipos no pueden llevar mucho esfuerzo ni un gran coste ya que se van a
desechar. Los prototipos sern esencialmente fachada, sin realizar las operaciones de manera correcta, incluso en un
lenguaje que no sera el que se utilizar posteriormente. Se suele aplicar en mtodos como el de cascada.

Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.

Modelo de prototipado evolutivo:

Similar al modelo de prototipado rpido, pero en este caso el prototipo creado no se desecha, sino que se vuelve a utilizar
aadindole lo que le falte, volvindole a entregar al cliente el nuevo prototipo.


Modelo en espiral:

El modelo en espiral se divide en cuatro partes y se pasa por todas en cada una de las iteraciones.

1. Planificacin: Economa, tiempo para realizarlo y los recursos para cada iteracin.
2. Anlisis de riesgos: Evaluar las posibilidades que tenemos y buscar si hay algn software parecido. Identificar
posibles riesgos que puedan surgir en un futuro y preparar soluciones.
3. Ingeniera: Se abordan las tareas propias del proyecto, las actividades estructurales. Es un punto importante ya
que incluye todos los pasos anteriores.
4. Evaluacin: Comprobar que todo funciona correctamente y satisface al cliente.

Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.



Modelo basado en componentes:

Este modelo se basa en la reutilizacin de partes de proyectos anteriores, sobre todo de la parte de cdigo fuente, aunque
tambin en diseo, anlisis, etc. No tienen porque ser etapas completas, pueden ser partes de estas que las adaptamos a
nuestro proyecto.








Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.
Modelos de mtodo formal:

Se basa en modelos matemticos, sobre todo lgebra, para el anlisis de requisitos. La ventaja de este modelo es que no
da lugar a ambigedad ya que utilizamos un lenguaje especifico y no un lenguaje natural. Este modelo es valido solo para
software de computo no para iteracin con el usuario. Suele ser muy complejo por la gran especializacin de las
matemticas.


1.3.-Fases de un ciclo de proceso de desarrollo de software.


- Planificacin
- Anlisis
- Diseo
- Implementacin
- Pruebas
- Instalacin o despliegue
- Uso y mantenimiento



Planificacin

Las tareas iniciales en esta fase son:

Delimitacin del mbito del proyecto
Estudio de viabilidad
Anlisis de riesgos
Estimacin
Planificacin temporal y asignacin de recursos


Algunos errores comunes

- Abreviar las etapas iniciales del proceso de desarrollo de software (planificacin y anlisis, generalmente) para pasar
directamente a la "construccin" del sistema.
- Los errores cometidos en las fases iniciales de un proyecto son mucho ms costosos de corregir a la larga, por lo que
abreviar las etapas iniciales tiene graves consecuencias.
- No gestionar adecuadamente los cambios que inevitablemente ocurren durante el proyecto.
- Reducir la interaccin con el cliente, ya que aparentemente slo se dedica a entorpecer nuestro trabajo con sus
continuos cambios de opinin y sus expectativas poco realistas.
- Olvidar que aadir personal a un proyecto retrasado, por lo general, slo lo retrasa ms (la ley de Brooks). La curva de
aprendizaje que se necesita para comenzar a ser productivo ha de tenerse siempre en cuenta.
- Someter a los miembros de nuestro equipo a continuas interrupciones durante su jornada de trabajo (llamadas
telefnicas, reuniones, consultas...).
- Hacer trabajar horas extra a los miembros del equipo de desarrollo slo sirve para disminuir su productividad (trabajo
realizado por unidad de tiempo).
- No informar de pequeos retrasos pensando que ms tarde se recuperar el tiempo perdido. La planificacin temporal
del proyecto debe ir ajustndose conforme vamos aprendiendo ms cosas acerca del problema al que nos enfrentamos.
En el peor de los casos, se deben negociar algunos recortes con el cliente si ste desea mantener los plazos estipulados
al comienzo del proyecto.
Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.
Anlisis

La etapa de anlisis en el ciclo de vida del software corresponde al proceso mediante el cual se intenta descubrir qu es lo
que realmente se necesita y se llega a una comprensin adecuada de los requerimientos del sistema (las caractersticas
que el sistema debe poseer).

Un buen analista debera tener una formacin adecuada en:
- Tcnicas de elicitacin de requerimientos.
- Herramientas de modelado de sistemas.
- Metodologas de anlisis de requerimientos.


Diseo

Los modelos que se utilizan en la fase de diseo representan las caractersticas del sistema que nos permitirn
implementarlo de forma efectiva (el cmo).
En la fase de diseo se han de estudiar posibles alternativas de implementacin para el sistema de informacin que
hemos de construir y se ha de decidir la estructura general que tendr el sistema (su diseo arquitectnico). La solucin
inicial que propongamos probablemente no resulte la ms adecuada para nuestro sistema de informacin, por lo que
deberemos refinarla.


Implementacin

Antes de escribir una sola lnea de cdigo es fundamental haber comprendido bien el problema que se pretende resolver y
haber aplicado principios bsicos de diseo que nos permitan construir un sistema de informacin de calidad.
Para la fase de implementacin hemos de seleccionar las herramientas adecuadas, un entorno de desarrollo que facilite
nuestro trabajo y un lenguaje de programacin apropiado para el tipo de sistema que vayamos a construir. Adems de las
tareas de programacin asociadas a los distintos componentes de nuestro sistema, en la fase de implementacin tambin
hemos de encargarnos de la adquisicin de todos los recursos necesarios para que el sistema funcione (por ejemplo, las
licencias de uso del sistema gestor de bases de datos que vayamos a utilizar).

Control de versiones

En todo proyecto es fundamental una adecuada gestin de la configuracin del software (SCM, Software Configuration
Management), ms conocida vulgarmente por uno de sus aspectos, el control de versiones. De hecho, es una actividad
clave en el nivel 2 del CMMI.
Su valor es incalculable para evitar prdidas irreparables (siempre y cuando se hagan copias de seguridad de la base de
datos) y tambin para volver cmodamente a una versin anterior de nuestro cdigo si nuestras ltimas modificaciones del
cdigo no resultaron del todo acertadas.











Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.
Pruebas

La etapa de pruebas tiene como objetivo detectar los errores que se hayan podido cometer en las etapas anteriores del
proyecto (y, eventualmente, corregirlos), adems hacerlo antes de que el usuario final del sistema los tenga que sufrir. De
hecho, una prueba es un xito cuando se detecta un error (y no al revs).
Tipos de pruebas:
- Las pruebas de unidad
- Las pruebas de integracin
- Las pruebas alfa
- las pruebas beta
- Test de aceptacin
- Revisiones a todos los productos generados a lo largo del proyecto.


Instalacin / Despliegue

Se debe planificar el entorno en el que el sistema debe funcionar, tanto hardware como software: equipos necesarios y su
configuracin fsica, redes de interconexin entre los equipos y de acceso a sistemas externos, sistemas operativos
(actualizados para evitar problemas de seguridad), bibliotecas y componentes suministrados por terceras partes, etctera.
Si nuestro sistema reemplaza a un sistema anterior o se despliega paulatinamente en distintas fases, tambin hemos de
planificar cuidadosamente la transicin del sistema antiguo al nuevo de forma que sus usuarios no sufran una disrupcin
en el funcionamiento del sistema.

Uso y mantenimiento

La etapa de mantenimiento consume tpicamente del 40 al 80 por ciento de los recursos de una empresa de desarrollo de
software. De hecho, con un 60% de media, es probablemente la etapa ms importante del ciclo de vida del software. Dada
la naturaleza del software, que ni se rompe ni se desgasta con el uso, su mantenimiento incluye tres facetas diferentes:
- Eliminar los defectos que se detecten durante su vida til (mantenimiento correctivo).
- Adaptarlo a nuevas necesidades (mantenimiento adaptativo)
- Aadirle nueva funcionalidad (mantenimiento perfectivo)
De las distintas facetas del mantenimiento, la eliminacin de defectos slo supone el 17% del coste de mantenimiento de
un sistema, mientras que el diseo e implementacin de mejoras es responsable del 60% del coste de mantenimiento. Es
decir, ms de un tercio del coste total del software se emplea en aadirle caractersticas a software ya existente (el 60%
del 60%).
Se ha observado que, cuanto mejor sea el software, ms tendremos que invertir en su mantenimiento, aun cuando se
emplee menos esfuerzo en corregir defectos.

Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.
1.4.- Define, conceptualiza e identifica los conceptos bsicos del anlisis de la orientacin a objeto y del paradigma de la
orientacin de objetos.

Anlisis y Diseo Orientado a Objetos

Es un mtodo de anlisis que examina los requisitos desde la perspectiva de las clases y objetos que se encuentran en el
vocabulario del dominio del problema.
El Anlisis orientado a objetos ofrece un enfoque nuevo para el anlisis de requisitos de sistemas software. En lugar de
considerar el software desde una perspectiva clsica de entrada/proceso/salida, como los mtodos estructurados clsicos,
se basa en modelar el sistema mediante los objetos que forman parte de l y las relaciones estticas (herencia y
composicin) o dinmicas (uso) entre estos objetos.
El uso de Anlisis orientado a objetos puede facilitar mucho la creacin de prototipos, y las tcnicas de desarrollo evolutivo
de software.

Caractersticas del anlisis Orientado a Objetos

Las tcnicas orientadas a objetos se basan en organizar el software como una coleccin de objetos discretos que
incorporan tanto estructuras de datos como comportamiento. Esto contrasta con la programacin convencional, en la que
las estructuras de datos y el comportamiento estaban escasamente relacionadas.
Las caractersticas principales del enfoque orientado a objetos son:

Objeto.

Se define a un objeto como "una entidad tangible que muestra alguna conducta bien definida". Un objeto "es
cualquier cosa, real o abstracta, acerca de la cual almacenamos datos y los mtodos que controlan dichos datos".
Los objetos tienen una cierta "integridad" la cual no deber ser violada. En particular, un objeto puede solamente cambiar
estado, conducta, ser manipulado o estar en relacin con otros objetos de manera apropiada a este objeto.


Identidad.

Los datos se organizan en entidades discretas y distinguibles llamadas objetos. Estos objetos pueden ser concretos o
abstractos, pero cada objeto tiene su propia identidad.

Clasificacin (clases).

Los objetos que tengan los mismos atributos y comportamiento se agrupan en clases. Una clase es una abstraccin que
describe propiedades (atributos y comportamiento) relevantes para una aplicacin determinada, ignorando el resto. La
eleccin de clases es arbitraria, y depende del dominio del problema.

Polimorfismo.

El polimorfismo permite que una misma operacin pueda llevarse a cabo de forma diferente en clases diferentes. La
implementacin especfica de una operacin determinada en una clase determinada se denomina mtodo.

Herencia.

El concepto de herencia se refiere a la comparticin de atributos y operaciones basada en una relacin jerrquica entre
varias clases. Una clase puede definirse de forma general y luego refinarse en sucesivas subclases. Cada clase hereda
todas las propiedades (atributos y operaciones) de su superclase y aade sus propiedades particulares.

Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.
Encapsulamiento.

Hay muchos datos que no tiene porque conocerlo aquel que este usando la clase Persona; ya que son inherentes al
objeto y solo controlan su funcionamiento interno; por ejemplo, cuando alguien te ve puede saber inmediatamente si eres
hombre o mujer (propiedad); tambien puede conocer el color de tu cabello y ojos. En cambio, jamas sabra que cantidad de
energia exacta tienes o cuantas neuronas te quedan, ni siquiera preguntandote ya que ninguna de tus propiedades
externas visibles o funciones de comunicacin al publico te permiten saber esos datos.

La encapsulacin es muy conveniente y nos permite (Si programamos bien) colocar en funcionamiento nuestro
objeto en cualquier tipo de sistema, de una manera modular y escalable (algunas de las reglas de la ingenieria del
software).

Abstraccin.

Significa extraer las propiedades esenciales de un objeto que lo distinguen de los dems tipos de Objetos y proporciona
fronteras conceptuales definidas respecto al punto de vista del observador. Es la capacidad para encapsular y aislar la
informacin de diseo y ejecucin.
El proceso de abstraccin presenta dos aspectos complementarios.
1. Destacar los aspectos relevantes del objeto.
2. Ignorar los aspectos irrelevantes del mismo (la irrelevancia depende del nivel de abstraccin, ya que si se pasa a
niveles ms concretos, es posible que ciertos aspectos pasen a ser relevantes).

Tipos de abstraccin que podemos encontrar en un programa:
1. Abstraccin funcional: crear procedimientos y funciones e invocarlos mediante un nombre donde se destaca qu hace la
funcin y se ignora cmo lo hace. El usuario slo necesita conocer la especificacin de la abstraccin (el qu) y puede
ignorar el resto de los detalles (el cmo).
2. Abstraccin de datos:
Tipo de datos: proporcionado por los leguajes de alto nivel. La representacin usada es invisible al programador, al cual
solo se le permite ver las operaciones predefinidas para cada tipo.
Tipos definidos: por el programador que posibilitan la definicin de valores de datos ms cercanos al problema que se
pretende resolver.
TDA: para la definicin y representacin de tipos de datos (valores + operaciones), junto con sus propiedades.
Objetos: Son TDA a los que se aade propiedades de reutilizacin y de comparticin de cdigo.

Reutilizacin

Una de las caractersticas ms importantes de la programacin orientada a objetos es la habilidad para modificar las
soluciones existentes para resolver nuevos problemas. Si un tipo particular de problema ha sido resuelto utilizando la
POO, un problema similar, aunque diferente, puede ser resuelto haciendo algunos cambios en el protocolo del objeto-
mensaje ya existente.










Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.
1.5.- Define, identifica y aplica los conceptos bsicos para la obtencin de requerimientos funcionales y no funcionales en
el proceso de desarrollo de software.
Qu es el Levantamiento de Requerimientos
El Levantamiento de requerimientos se define como el proceso de identificar las necesidades del negocio,
solucionando las posibles disparidades entre las personas involucradas en el mismo, con el propsito de definir y
destilar los requerimientos para cumplir las restricciones impuestas por las distintas partes.
Un buen proceso de levantamiento de requerimientos soporta el desarrollo de la especificacin de los requerimientos, de
tal forma que tengan los siguientes atributos:
Deben ser completos, consistentes y han de estar dentro del alcance del proyecto.
Deben tener un nico identificador.
Cumplen con los objetivos de los clientes.
Son viables y apropiados para el desarrollo.
Los requerimientos han de ser "testeables" (deben tener capacidad de prueba).


Requisito Funcional: caracterstica requerida del sistema que expresa una capacidad de accin del mismo una
funcionalidad; generalmente expresada en una declaracin en forma verbal.
Requisito no funcional: caracterstica requerida del sistema, del proceso de desarrollo, del servicio prestado o de
cualquier otro aspecto del desarrollo, que seala una restriccin del mismo.




Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.
1.6.- Construye modelos conceptuales, aplicando el anlisis orientado a objeto.

El modelo conceptual se ha diseado para:

proporcionar un marco de referencia, estructurado y claramente definido, para relacionar los datos recogidos en
los registros de autoridad con las necesidades de los usuarios de estos registros;

ayudar en el anlisis de las posibilidades de intercambio internacional y utilizacin de los de datos de autoridad
tanto en el sector bibliotecario como en otros sectores.


ACTIVIDADES Y DEPENDENCIAS
Una de las primeras actividades centrales de un ciclo de desarrollo consiste en crear un modelo conceptual para
los casos de uso del ciclo actual.
Esto no puede hacerse si no se cuentan con los casos y con otros documentos que permitan identificar los
conceptos (objetos).
La creacin no siempre es lineal; por ejemplo, el modelo conceptual puede formularse en paralelo con el
desarrollo de los casos.

Puede mostrarnos:
Conceptos
Asociaciones entre conceptos
Atributos de conceptos.












Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.
Conocimiento de la nomenclatura del dominio
Los Modelos Conceptuales permiten:
Descomponer el espacio del problema en unidades comprensibles (conceptos),
Adems, contribuye a esclarecer la terminologa o nomenclatura del dominio.


Los modelos conceptuales no son modelos de diseo de software.
No corresponden al Modelo conceptual:
Los artefactos del software, como una ventana o una base de datos, salvo que el dominio a modelar se refiera a
conceptos de software; por ejemplo, un modelo de interfaces grficas para el usuario.
Las responsabilidades o mtodos.


Conceptos:
En trminos informales el concepto es una idea, cosa u objeto.
En un lenguaje ms formal, podemos considerarlo a partir de su smbolo, intensin y extensin.
Smbolo: palabras o imgenes que representan un concepto.
Intensin: la definicin del concepto.
Extensin: el conjunto de ejemplos a que se aplica el concepto.


Estrategias para identificar los conceptos:
Obtencin de conceptos a partir de una lista de categoras de conceptos
Obtencin de conceptos a partir de la identificacin de frases nominales

Ejemplo:

Categora de concepto Ejemplos
Objetos fsicos o tangibles Puesto de venta Avin
Especificaciones, diseo o descripciones de
cosas
EspecificaciondeProducto Descripcionde Vuelo
Lugares Tienda Aeropuerto
Transacciones Venta, Pago Reservacin
Lnea o rengln de elemento de transacciones VentasLineadeProducto
Papel de personas Cajero Piloto
Contenedores de cosas Tienda, Cesto Avin
Cosas dentro de un contenedor Producto Pasajero
Otro sistemas de cmputos Electromecnicos
externos al sistema
SistemadeAutorizaciondeTarjetadeCredito
ControldeTraficoAereo
Otro sistemas de cmputos Electromecnicos
externos al sistema
SistemadeAutorizaciondeTarjetadeCredito
ControldeTraficoAereo
Conceptos de nombres abstractos Hambre Acrofobia
Organizaciones Departamentode VentasObj etoLineaAerea
Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.
Procesos (a menudo no estn repre sentados
como conceptos, pero pueden estarlo)
VentaUnProduct ReservaAsiento
Reglas y Polticas PoliticadeReembolso PoliticadeCancelaciones
Catlogos CatalogodeProducto Catalogodepartes
Registro de finanzas, de trabajo, de contratos de
asuntos legales
Recibo, Mayor, ContratodeEmpleo
BitcoradeMantenimiento
Instrumentos y servicios financieros LineadeCredito Existencia
Manuales, libros ManualdePersonal ManualdeReparaciones

Ejemplo:
Escenario principal
El cliente llega a un puesto de venta con mercaderas y/o servicios que comprar.
El cajero comienza una nueva venta.
El cajero introduce el identificador del artculo.
El sistema registra la lnea de venta y presenta la descripcin del artculo, precio y suma parcial.
El cajero repite los pasos 3 y 4 hasta que se indique.
El sistema presenta el total con los impuestos calculados.
El cajero le dice al cliente el total y solicita el pago.
Clases conceptuales candidatas para el dominio de ventas
Cliente, puesto de venta, mercadera, servicio, cajero, venta, identificador de artculo, sistema, lnea de venta, descripcin
de artculo, precio, etc.


Directrices para construir modelos conceptuales

Cmo construir un Modelo Conceptual:

Aplique los siguientes pasos para crear un Modelo Conceptual:
Liste los conceptos idneos usando la lista de categora de conceptos la identificacin de la frase nominal
relacionadas con los requerimientos en cuestin.
Dibjelos en un Modelo Conceptual o Modelo de Dominio,
Incorpore las asociaciones necesarias para registrar las relaciones
Agregue los atributos necesarios para cumplir con las necesidades de informacin

Asignacin de nombres y modelado de cosas:

El Modelo Conceptual es una especie de mapa de conceptos o cosas de un dominio:
Utilice nombres existentes en el territorio
Excluya las caractersticas irrelevantes
No agregue cosas que no existan








Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.
Errores que se cometen frecuentemente al identificar conceptos:

Tal vez el error ms frecuente cuando se crea un Modelo Conceptual es el de representar algo como atributo,
cuando debi ser un concepto.
Una regla prctica para no caer en l es:
Si en el mundo real no consideramos algn concepto X como nmero o texto, probablemente X sea un concepto y no un
atribulo.
Por ejemplo: en el mundo real un aeropuerto de destino no se considera nmero ni texto: es una cosa masiva que
ocupa espacio, por lo tanto aeropuerto debera ser un concepto. En caso de duda, convierta el atributo en un concepto
independiente.
Analizar aquellos conceptos semejantes con distinto nombre
Modelado de un mundo irreal

Especificacin o descripcin de conceptos

Incorpore una especificacin o descripcin de conceptos cuando:
Se necesita la descripcin de un artculo o servicio independiente de la existencia.
La eliminacin de las instancias de las cosas que describen da por resultado una prdida de informacin que ha
de conservarse, debido a la asociacin incorrecta de la informacin con lo eliminado.
Reduce informacin redundante o duplicada


1.7.- Identifica, aplica y conceptualiza las asociaciones y atributos de clases, para un anlisis con orientacin a objetos.

Diagrama de Clase
Una clase es una descripcin de conjunto de objetos que comparten los mismos atributos, operaciones, mtodos,
relaciones y semntica.

Las clases son grficamente representadas por cajas con compartimentos para:
Nombre de la clase, atributos y operaciones / mtodos
Responsabilidades, Reglas, Historia de Modificaciones, etc.

Los diseadores desarrollan clases como conjuntos de compartimentos que crecen en el tiempo agregando
incrementalmente aspectos y funcionalidades.

Diagrama de Clases
Un diagrama de clases sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden
ser asociativas, de herencia, de uso y de agregacin, ya que una clase es una descripcin de conjunto de objetos que
comparten los mismos atributos, operaciones, mtodos, relaciones y semntica; mostrando un conjunto de elementos que
son estticos, como las clases y tipos junto con sus contenidos y relaciones.
Notacin de Clase
Las clases se representan por rectngulos que muestran el nombre de la clase y opcionalmente el nombre de las
operaciones y atributos. Los compartimientos se usan para dividir el nombre de la clase, atributos y operaciones.
Adicionalmente las restricciones, valores iniciales y parmetros se pueden asignar a clases.

Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.
Tablas
Una tabla es una clase estereotipada. Esto se dibuja con un pequeo icono de la tabla en la esquina superior derecha. Los
atributos de la tabla son columnas estereotipadas. La mayora de las tablas tendrn una clave primaria, siendo uno o
ms campos los que forman una combinacin nica usada para acceder la tabla, ms una operacin de clave primaria que
es PK estereotipada.
Atributos y Mtodos
Los atributos o caractersticas de una Clase pueden ser de tres tipos, los que definen el grado de comunicacin y
visibilidad de ellos con el entorno, estos son:
public (+,): Indica que el atributo ser visible tanto dentro como fuera de la clase, es decir, es accesible desde
todos lados.
private (-,): Indica que el atributo slo ser accesible desde dentro de la Clase (slo sus mtodos lo pueden
accesar).
protected (#,): Indica que el atributo no ser accesible desde fuera de la clase, pero si podr ser accesado por
mtodos de la clase adems de las subclases que se deriven.
Relaciones
Ahora ya definido el concepto de Clase, es necesario explicar como se pueden interrelacionar dos o ms clases (cada uno
con caractersticas y objetivos diferentes). Antes es necesario explicar el concepto de cardinalidad de relaciones: En UML,
la cardinalidad de las relaciones indica el grado y nivel de dependencia, se anotan en cada extremo de la relacin y stas
pueden ser: uno o muchos: 1..* (1..n) 0 o muchos: 0..* (0..n) nmero fijo: m (m denota el nmero).
Herencia
Indica que una subclase hereda los mtodos y atributos especificados por una superclase, de esta forma la subclase
adems de poseer sus propios mtodos y atributos, poseer las caractersticas y atributos visibles de la superclase.
Agregacin
Para modelar objetos complejos, no es suficiente con los tipos de datos bsicos que proveen los lenguajes:
Enteros, reales y secuencias de caracteres. Cuando se requiere componer objetos que son instancias de clases
definidas por el desarrollador de la aplicacin, tenemos dos posibilidades:
Por Valor: Es un tipo de relacin esttica, en donde el tiempo de vida del objeto incluido esta condicionado por el
tiempo de vida del que lo incluye. Este tipo de relacin es comnmente llamada Composicin (el Objeto base se
construye a partir del objeto incluido, es decir, es "parte/todo").
Por Referencia: Es un tipo de relacin dinmica, en donde el tiempo de vida del objeto incluido es independiente
del que lo incluye. Este tipo de relacin es comnmente llamada Agregacin (el objeto base utiliza al incluido para
su funcionamiento).
Asociacin
La relacin entre clases conocida como Asociacin, permite asociar objetos que colaboran entre si. Cabe destacar que no
es una relacin fuerte, es decir, el tiempo de vida de un objeto no depende del otro.

Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.
Dependencia o Instanciacin
Representa un tipo de relacin muy particular, en la que una clase es instanciada (su instanciacin es dependiente de otro
objeto/clase). Se denota por una flecha punteada. El uso ms particular de este tipo de relacin es para denotar la
dependencia que tiene una clase de otra, como por ejemplo una aplicacin Grfica que instancia una ventana (la creacin
del Objeto Ventana esta condicionado a la instanciacin proveniente desde el objeto Aplicacin):
Ventajas y Desventajas
Ventajas
Genera un cdigo automticamente.
Propone soluciones a algunos errores.
Representa las relaciones entre las clases de sistema.
Se disea los componentes de los sistemas.
Se protegen los datos.
Se posibilita una reduccin de acoplamiento.
Mas fcil la comunicacin entre los programadores, descubrimiento de fallas del sistema en el diseo Mejor
diseo del sistema ofrece ms documentacin.
Desventajas
Los diagramas de clases especifican qu clases hay y cmo estn relacionadas, pero no cmo interactan para
alcanzar comportamientos particulares.
El mtodo tiende hacer muy lento.
La instalacin es muy costosa


1.8.- Define, aplica y crea diagramas de casos de uso, utilizando el anlisis orientado a objetos, demostrando capacidad
de abstraccin.

Casos de Uso (Use Case)
El diagrama de casos de uso representa la forma en como un Cliente (Actor) opera con el sistema en desarrollo,
adems de la forma, tipo y orden en como los elementos interactuan (operaciones o casos de uso).
Un diagrama de casos de uso consta de los siguientes elementos:
Actor.
Casos de Uso.
Relaciones de Uso, Herencia y Comunicacin.




Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.
Elementos
Actor:

Una definicin previa, es que un Actor es un rol que un usuario juega con respecto al sistema. Es importante
destacar el uso de la palabra rol, pues con esto se especifica que un Actor no necesariamente representa a una
persona en particular, sino ms bien la labor que realiza frente al sistema.

Caso de Uso:

Es una operacin/tarea especfica que se realiza tras una orden de algn agente externo, sea desde una peticin
de un actor o bien desde la invocacin desde otro caso de uso.
Relaciones:
o Asociacin
Es el tipo de relacin ms bsica que indica la invocacin desde un actor o caso de uso a otra operacin
(caso de uso). Dicha relacin se denota con una flecha simple.
o Dependencia o Instanciacin
Es una forma muy particular de relacin entre clases, en la cual una clase depende de otra, es decir, se
instancia (se crea). Dicha relacin se denota con una flecha punteada.
o Generalizacin
Este tipo de relacin es uno de los ms utilizados, cumple una doble funcin dependiendo de su
estereotipo, que puede ser de Uso (<<uses>>) o de Herencia (<<extends>>).
Este tipo de relacin esta orientado exclusivamente para casos de uso (y no para actores).
Extends: Se recomienda utilizar cuando un caso de uso es similar a otro (caractersticas).
Uses: Se recomienda utilizar cuando se tiene un conjunto de caractersticas que son similares en ms
de un caso de uso y no se desea mantener copiada la descripcin de la caracterstica.
Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.
Ejemplo:
Como ejemplo esta el caso de una Mquina Recicladora:
Sistema que controla una mquina de reciclamiento de botellas, tarros y jabas. El sistema debe controlar y/o aceptar:
Registrar el nmero de temes ingresados.
Imprimir un recibo cuando el usuario lo solicita:
a. Describe lo depositado
b. El valor de cada item
c. Total
El usuario/cliente presiona el botn de comienzo
Existe un operador que desea saber lo siguiente:
a. Cuantos temes han sido retornados en el da.
b. Al final de cada da el operador solicita un resumen de todo lo depositado en el da.
El operador debe adems poder cambiar:
a. Informacin asociada a temes.
b. Dar una alarma en el caso de que:
i. Item se atora.
ii. No hay ms papel.
Como una primera aproximacin identificamos a los actores que interactuan con el sistema:

Luego, tenemos que un Cliente puede Depositar Itemes y un Operador puede cambiar la informacin de un Item o bien
puede Imprimir un informe:


Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.
Adems podemos notar que un item puede ser una Botella, un Tarro o una Jaba.

Otro aspecto es la impresin de comprobantes, que puede ser realizada despus de depositar algn item por un cliente o
bien puede ser realizada a peticin de un operador.

Entonces, el diseo completo del diagrama Use Case es:
Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.




A qu nivel se describen los casos de uso?
No hay reglas explcitas para establecer el nivel al que se identifican los casos de uso
La forma ideal de describirlos es NO describiendo el funcionamiento interno del sistema.

Ejemplo:
Caso de uso: Registrar Venta

NO DESCRIBIRLO COMO:
El sistema escribe la venta en una base de datos.
El sistema genera una sentencia SQL insert para .











Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.


2 UNIDAD: Proceso de desarrollo orientado a objetos enfocado en Diseo orientado a objetos (DOO).

Aprendizaje esperado: Construyen proyectos de software con enfoque en DOO, demostrando manejo de herramientas
de asistencia computarizada a la ingeniera para el anlisis y diseo OO.

2.1.- Define y conceptualiza los conceptos bsicos de DOO.

Diseo orientado a objetos es una etapa de la metodologa orientada a objetos en lo referente al desarrollo de Software.
Busca incentivar y ayudar a los programadores a pensar en trminos de objetos, en vez de procedimientos cuando definen
y planifican el cdigo. Un objeto agrupa datos encapsulados y procedimientos para representar una entidad.
La interfaz del objeto (las formas de interactuar con el objeto) tambin se definen en esta etapa. Un programa orientado a
objetos se caracteriza por la interaccin de esos objetos. El diseo orientado a objetos es la disciplina que define los
objetos y sus interacciones para resolver un problema de negocio que fue identificado y documentado durante el anlisis
orientado a objetos.

Fuente: Fundamentos del diseo de software, unidad 4 diseo orientado a objeto,
http://cufmingsoftware.wordpress.com/diseno-orientado-a-objeto/


Etapas del diseo orientado a objetos.
1. Planificacin y Especificacin de Requisitos: Planificacin, definicin de requisitos, conocer los procesos del
dominio, etc.
2. Construccin: La construccin del sistema. Se subdivide en las siguientes:
Anlisis: analizar el problema a resolver desde la perspectiva de los usuarios y de las entidades externas que
van a solicitar servicios al sistema.
Diseo: Se especifica el diseo en detalle, describiendo cmo funcionar internamente para satisfacer lo
especificado en el anlisis.
Implementacin: Se lleva lo especificado en el diseo a un lenguaje de programacin.
Pruebas: Se realizan una serie de pruebas para corroborar que el software funciona correctamente y que
satisface lo especificado en la etapa de Planificacin y Especificacin de Requisitos.
3. Instalacin: La puesta en marcha del sistema en el entorno previsto.
Fuente: Universidad de Alcal, http://www.cc.uah.es/jlcastillo/POO/POO_07.htm
2.2.- Identifica y aplica los aspectos bsicos y necesarios en el diseo de sistemas con orientacin a objetos.

Principios del diseo orientado a objetos:

Responsabilidad nica: Cada clase debe ser responsable de realizar solo una actividad del sistema
Clase Abierta y Cerrada: Una clase debe ser abierta a la extensin y cerrada a la modificacin
Principio de Substitucin de Liskov: Cada clase que hereda de otra puede usarse como su padre sin necesidad de
conocer las diferencias entre ellas
Principio de Inversin de Dependencia: Los mdulos de nivel superior no deben depender sino de las abstracciones.
Los detalles deben depender a su vez de las abstracciones, no al contrario
Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.
Principio de Segregacin de Interfaces: La implementacin de las abstracciones (que contradictorio) debe estar en la
medida de lo posible en interfaces y no en clases

Nota: estos 5 primeros principios no se deben olvidar mientras se utilicen las clases.

Principio de Equivalencia de Reuso y Distribucin: Solo los componentes que se distribuyen de manera final pueden
ser reutilizados, el elemento mas importante es entonces el paquete.

Principio de Cierre Comn: Los componentes que comparten funciones entre ellos o que dependen uno del otro
deberan ser colocados juntos

Principio de Reuso Comn: Si se reutiliza una clase de un paquete entonces se reutilizan todas

Principio de Dependencias acclicas: Los paquetes y sus dependencias no deben formar ciclos entre s.
Principio de Dependencias Estables: Los paquetes menos estables han de depender de los paquetes ms estables
Principio de Abstraccin Estable: Los paquetes deben ser ms abstractos mientras mas estables son



















2.3.- Define, conceptualiza y aplica el concepto de arquitectura sobre el diseo con orientacin a objetos.

Arquitectura de 3 niveles

Busca ayudar a construir componentes fsicos a partir de los niveles lgicos. Se toman decisiones sobre qu parte lgica
de la aplicacin se va a encapsular en cada uno de los componentes de igual modo que se encapsulan los componentes
en varios niveles.
Un nivel est conformado por varios componentes, por tanto puede suplir varios servicios.
Ventajas de las Tcnicas Orientada a Objetos Desventajas de las Tcnicas Orientada a Objetos
Reutilizacin
Estabilidad
Comportamiento de objetos
Construccin de clases ms complejas
Confiabilidad
Nuevos mercados de software
Rpido diseo
Mayor calidad de diseo
Integridad
Programacin ms sencilla
Mantenimiento ms sencillo
Alta curva de aprendizaje
Costosa
Requiere conocimientos adicionales
No recomendable para proyectos pequeos
Requiere personal especializado
Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.

Nivel de Usuario
Los componentes del nivel de usuario, proporcionan la interfaz visual que los clientes utilizarn para ver la
informacin y los datos. En este nivel, los componentes son responsables de solicitar y recibir servicios de otros
componentes del mismo nivel o del nivel de servicios de negocio. La forma de operar del sistema es transparente para el
usuario.


Nivel de Negocios
Los servicios de usuario no pueden contactar directamente con el nivel de servicios de datos, es responsabilidad
de los servicios de negocio hacer de puente entre estos. Los componentes de los servicios de negocio evitan que el
usuario tenga acceso directo a la base de datos, lo cual proporciona mayor seguridad en la integridad de sta.

Nivel de Datos
El nivel de datos se encarga de las tpicas tareas con los datos: Insercin, modificacin, consulta y borrado. Un
nivel de servicios de datos apropiadamente implementado, debera permitir cambiar su localizacin sin afectar a los
servicios proporcionados por los componentes de negocio.


Ventajas
Los componentes de la aplicacin pueden ser desarrollados en cualquier lenguaje.
Los componentes son independientes.
Los componentes pueden estar distribuidos en mltiples servidores.
La D.B. es solo vista desde la capa intermedia y no desde todos los clientes.
Los drivers del D.B. No tienen que estar en los clientes.
Mejora la administracin de los recursos cuando existe mucha concurrencia.
Permite reutilizacin real del software y construir aplicaciones escalables.

Paquetes
Ver el primer proyecto y darse cuenta que por ejemplo tiene tantos diagramas que se ha hace imposible entender las ideas
macro del mismo es una situacin mas comn de lo que uno cree, incluso se puede llevar esta situacin a la vida misma.
Solo se debe utilizar una filosofa antigua:divide y vencers.
Lo que se debe hacer es dividir un modelo (lneas de cdigo, de casos de uso, clases, etc.) en varias partes agrupando
elementos que tengan algn tipo de coincidencia entre s.
As como en un computador se organizan documentos en carpetas, se pueden organizar casos de uso, clases,
componentes, actores y todo tipo de elementos en los paquetes de UML.

2.4.- Define, aplica y crea diagramas de casos de uso explotados utilizando el anlisis orientado a objetos, demostrando
capacidad de abstraccin.

Creacin de casos de uso

Crear casos de uso es una verdadera ciencia. No existen reglas absolutas. La idea es comunicar informacin de manera
clara, precisa y detallada, que sea entendible para cualquier tipo de audiencia para poder tener proyectos exitosos.

Un caso de uso es una lista de pasos que especifican como un usuario interacta con el negocio o sistema,
teniendo en cuenta el valor que esta interaccin le da al usuario o a otros grupos de inters.
Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.
Un Caso de uso es la historia de cmo un negocio o un sistema interacta con el usuario
Fuente: Consejos para escribir buenos casos de uso, TIS 2009

Consejos para los casos de uso.

Los casos de uso se representan mediante valos y tambin como especificaciones textuales, pues bien el texto es la
esencia del modelo de casos de uso, pero diagramar ayuda mucho mas a comunicar los requerimientos al alto nivel y lo
que esta dentro y fuera del alcance.

Los actores humanos deben ser el elemento ms importante, ya que el actor humano representa las relaciones e
interacciones mas interesantes y difciles para los sistemas.

Ser estructurado para crear casos de uso, crear una larga lista de pasos de principio a fin.

Un caso de uso debera tener un nico flujo principal y mltiples flujos alternativos.

Ser cuidadoso con la sentencia if, ya que utilizarla ms de una vez en un flujo significa que se estn especificando
mltiples requerimientos, es poco legible. Se debe romper cada if en su propio flujo.


2.5.- Define, aplica y crea diagramas de colaboracin utilizando el anlisis orientado a objetos, demostrando capacidad de
abstraccin.

Diagrama de colaboracin: es una forma de representar interaccin entre objetos.

Muestra cmo las instancias especficas de las clases trabajan juntas para conseguir un objetivo comn.
Consiste especificar un contrato entre objetos
Implementa las asociaciones del diagrama de clases mediante el paso de mensajes de un objeto a otro.
Dicha implementacin es llamada "enlace".

Un Diagrama de Colaboracin muestra una interaccin ordenada y organizada basndose en los objetos que
interactan y los enlaces entre ellos.

UML Interacciones
Los objetos interactan entre s envindose mensajes.
Los objetos se conectan a travs de enlaces.

Mensaje: especfica transmisin de informacin entre objetos.

Enlace: especifica un camino a lo largo del cual un objeto puede enviar un mensaje a otro objeto.
Es una conexin semntica entre objetos.
Es una instancia de una relacin.
Puede contener los adornos de la relacin.

Elementos de un diagrama de colaboracin.

Objetos o Roles: nodos del grafo.
Enlaces o comunicaciones: arcos del grafo.
Mensajes: llevan nmero de secuencia y flecha dirigida.
Anidamiento: se utiliza la numeracin decimal Ej.: 1, 1.1, 1.1.1.....
Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.
Iteracin: colocar un * antes del nmero de secuencia y una clusula de condicin, si es necesario. ej.
*[x>0].

Bifurcacin: los caminos alternativos tendrn el mismo nmero de secuencia, seguido del nmero de
subsecuencia, y se deben distinguir por una condicin.

Ejemplo: Un lector solicita un libro al bibliotecario, y le brinda su ttulo. El bibliotecario busca el libro en un ndice y
solicita al asistente que le alcance el libro.
Diagrama de secuencia





Fuente: Diagrama de colaboracin, virtual.usalesiana.edu.bo/web/practica/archiv/colabora2.ppt

Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.

2.6.- Define, aplica y crea diagramas de secuencia utilizando el anlisis orientado a objetos, demostrando capacidad de
abstraccin.

Diagrama de secuencia: indica mdulos o clases que son parte del programa y las llamadas que se hacen en cada uno
de ellos para realizar una tarea determinada.
Se realizan para definir acciones que se pueden realizar en una aplicacin. En el caso de una aplicacin para jugar al
ajedrez, se podran realizar diagramas de secuencia para jugar una partida o bien para acciones ms especficas como
mover pieza.
El detalle que se muestre en el diagrama de secuencia debe ser acorde con lo que se desea mostrar o bien con la fase de
desarrollo en la que se encuentra el proyecto.
El detalle del diagrama depende de la fase en la que estemos, lo que pretendamos contar con el diagrama y a quin.
En el diagrama de secuencia no se ponen situaciones errneas (poner todos los detalles crea un diagrama muchas veces
imposible de entender). El diagrama puede acompaarse con un texto en el que se detallen todas estas situaciones
errneas y particularidades.

Fuente: Diagrama de secuencia, Jess Caceres Tello, depto. ciencias de la computacin, Universidad de Alcal.


2.7.- Disea un sistema sencillo utilizando los recursos de la orientacin a objetos, utilizando herramientas de asistencia
computarizada a la ingeniera.
2.8.- Crea un proceso de desarrollo de software, aplicando los conceptos de la orientacin a objetos.


Proceso de desarrollo de software

Define el qu, quin, cundo y cmo del desarrollo de software.
Cuatro actividades fundamentales que son comunes para todos los procesos de desarrollo de software:
Especificacin del software
Desarrollo del software
Validacin del software
Evolucin del software

Dividir un proyecto en mini-proyectos, ms fciles de manejar y completar.
Cada mini-proyecto es una iteracin.
Cada iteracin contiene todos los elementos de un proyecto normal:
Planificacin
Anlisis y diseo
Construccin
Integracin y pruebas
Versin del producto (interna o externa)

Cada iteracin genera una lnea base (baseline) que comprende una versin parcialmente completa del sistema final, y
toda la documentacin asociada.
Las sucesivas iteraciones se construyen unas sobre otras hasta que se alcanza el sistema final terminado

Fuente: Proceso de desarrollo de software, Universidad Carlos III de Madrid.




Vicerrectora Acadmica
Cuaderno de Apuntes 2013


Cuaderno de Apuntes de uso exclusivo de los estudiantes del Instituto Profesional AIEP. Prohibida su reproduccin. Derechos reservados AIEP.

BIBLIOGRAFA

Ingeniera de software de presuman

Você também pode gostar