Introducción al análisis
Introducción al análisis
orientado a objetos
orientado a objetos
Objetivo:
Objetivo:
Conocer los atributos de los modelos orientados a
Conocer los atributos de los modelos orientados a
objetos para poder establecer las necesidades del
objetos para poder establecer las necesidades del
diseño de un sistema con estas características,
diseño de un sistema con estas características,
así como ubicar las
así como ubicar las
etapas de vida del software.
etapas de vida del software.
Competencia especíca:
Competencia especíca:
Identicar las etapas de un sistema orientado a
Identicar las etapas de un sistema orientado a
objetos para decidir su ciclo de vida, utiliando los
objetos para decidir su ciclo de vida, utiliando los
conceptos de orientación a objetos.
!nálisis " diseño orientado a
objetos
Objetos: Objetos #eredan los atributos
" operaciones de una clase.$
Clase: %epresenta a una entidad &ue
tiene
un
estado
interno
"
un
comportamiento característico.
!tributo: !tributos: '(na colección de
valores de los datos &ue describen
una clase$ )p. *+*. -on los datos a
los &ue se reere el estado del objeto
)ooc#/0rad", 1223.
Clases de estilo de
pro4ramación:
Orientada a procedimientos
)al4oritmos.
Orientada a objetos )clases "
objetos.
Orientada a la ló4ica )e5presado
en cálculo de predicados.
Orientada a re4las )re4las if/
!nálisis " diseño orientado a
objetos )!7OO
8s un enfo&ue de la in4eniería de
software &ue modela un sistema
como un 4rupo de objetos &ue
interact9an entre sí.
8ste enfo&ue representa un
dominio
en
trminos
de
conceptos
compuestos
por
verbos " sustantivos, clasicados
de acuerdo con su dependencia
funcional.
8n este mtodo de análisis " diseño se crea
un conjunto de modelos utiliando una
notación acordada, por ejemplo, el len4uaje
unicado de modelado )(;<. !7OO aplica
tcnicas de modelado de objetos para
analiar los re&uerimientos en un conte5to
)un sistema de ne4ocio, un conjunto de
módulos de software " para diseñar una
solución
para
mejorar
los
procesos
involucrados. 8ste mtodo no está restrin4ido
al diseño de pro4ramas de computadora, sino
&ue cubre sistemas enteros de distinto tipo.
<as metodolo4ías de análisis " diseño más
modernas son casos de uso 4uiados a travs
de re&uerimientos, diseño, implementación,
pruebas, " desplie4ue.
<en4uaje (nicado de ;odelado
8l len4uaje unicado de modelado se #a vuelto el len4uaje de
Características
8l modelo !OO se basa en el concepto de
objeto.
(n
objeto
tiene
estado,
comportamiento e identidad. <a estructura "
el comportamiento de los objetos son
similares " están denidos en su clase com9n.
7e tal modo, los sistemas deben estar
funcionando siempre de manera correcta, su
complejidad a veces es tan 4rande &ue el
mismo ser #umano o su capacidad intelectual
se ve e5cedida, por lo &ue resulta imposible
comprenderlo en su totalidad por una sola
persona.
!sí, el software es complejo de
forma innata, esto es una
característica esencial de l. 8s
complejo por&ue #ereda la
complejidad del problema, la
dicultad de 4estionar el proceso
de desarrollo, la =e5ibilidad &ue
se puede alcanar a travs del
software " los problemas &ue
plantea:
1. 8l problema presenta tantos re&uisitos &ue compiten entre sí o se contradicen, " esas contradicciones e5isten por&ue los usuarios no saben e5presar sus necesidades de forma clara para &ue las otras personas &ue participan en el pro"ecto lo puedan entender.
*. <os re&uisitos son cambiados con frecuencia durante el desarrollo, incluso por&ue la mera e5istencia de un pro"ecto de solución altera al sistema real.
>. (n sistema 4rande debido a la inversión nanciera &ue implica, no puede desec#arse " reemplaarse por uno nuevo cada ve &ue los re&uisitos cambian, debe evolucionar considerando los si4uientes puntos:
8volución del software: responder al cambio de re&uerimientos. ;antenimiento del software: corre4ir errores.
Conservación del software: emplear recursos para mantener en
operación un elemento de software anticuado " decadente.
?. <a principal tarea del 4rupo de desarrollo es dar una ilusión de simplicidad para los usuarios de esta complejidad arbitraria del problema, se #ace lo posible por escribir menos códi4o pero a veces es imposible " más en un sistema tan 4rande, por lo &ue se debe recurrir a la aplicación de varias tcnicas de re/utiliación de códi4o e5istente.
@. 7ebe tambin enfrentarse la e5istencia de miles de módulos
separados " esto implica un 4rupo de desarrolladores, nunca una 9nica persona.
3. (n pro"ecto de software es mu" frecuentemente apo"ado en pilares construidos por los mismos desarrolladores, por lo &ue el desarrollo del pro"ecto de software si4ue siendo una tarea mu" laboriosa.
A. 8n al4unos sistemas una pe&ueña modicación en la entrada provoca una pe&ueña modicación en la salida. ;ientras &ue en otros, " sobre todo de 4ran tamaño, se percibe una e5plosión combinatoria &ue #ace &ue la salida se modi&ue enormemente.
B. -e intenta diseñar los sistemas con una separación de intereses de forma &ue el comportamiento de una parte del sistema ten4a el mínimo impacto en el comportamiento de otra parte del sistema.
2. 8n un sistema de 4ran volumen uno debe contentarse con un 4rado de conana determinado a lo &ue reere su corrección, "a &ue no puede llevarse a cabo una prueba a fondo e5#austiva por no tener las #erramientas matemáticas ni intelectuales para un sistema no continuo.
1+. <as consecuencias de la complejidad ilimitada, mientras más complejo es el sistema, más abierto está al derrumbamiento total. 11. Crisis del software, #a e5istido tanto tiempo &ue debe considerarse
normal. 8s cuando se pretende dominar la complejidad del sistema a un e5tremo &ue lleva al presupuesto a niveles e5cedentes " &ue transforman en deciente al sistema respecto a los re&uerimientos jados.
Ventajas
1. <os benecios del enfo&ue OO, de acuerdo con ooc#/0rad"
)1223, son:
rimero, el uso del modelo OO a"uda a e5plotar el poder
e5presivo de todos los len4uajes de pro4ramación basados en
objetos " los orientados a objetos, como -malltalD, Object
ascal, CEE, C<O-, !da " recientemente Fava.
-e4undo, el uso del modelo OO alienta el re/uso no sólo del
software, sino de diseños completos.
6ercero, produce sistemas &ue están construidos en formas
intermedias estables " por ello son más resistentes al cambio
en especicaciones " tecnolo4ía.
-e considera &ue el principal benecio del !OO, es &ue da un
es&uema para formaliar el modelo real.
*. 8l análisis orientado a objetos )!OO es un mtodo de análisis
&ue e5amina los re&uerimientos desde la perspectiva de las
clases " objetos encontrados en el vocabulario
del dominio del problema. 8l diseño orientado a objetos
es un mtodo de diseño &ue abarca el proceso de
descomposición orientado a objetos " una notación para
representar ambos modelos )ló4ico " físico, como los
modelos estáticos " dinámicos del sistema bajo diseño.
>. 7entro de las metodolo4ías del análisis " diseño orientado a
objetos #a" una variedad de mtodos en la actualidad.
;uc#os de los mtodos pueden ser clasicados como
orientados a objetos por&ue soportan de manera central los
conceptos de la orientación a objetos. !l4unas de las
metodolo4ías más conocidas " estudiadas #asta antes de
(;<, de acuerdo con Facobson )1223, citado en ooc#/
0rad" )1223, son:
Metodología Autor
7iseño orientado a objetos )7OO 0rad" ooc# 6cnica de modelado de objetos )6;O %umbau4#
!nálisis orientado a objetos )!OO CoadGHourdon Ferar&uía de diseño orientada a objetos
)F7OO
8-!
7iseño estructurado orientado a objetos )78OO
asserman
!nálisis de sistemas orientado a objetos )!-OO
?. !ctualmente las metodolo4ías más importantes de análisis "
diseño de sistemas orientados a objetos se #an basado en lo
&ue es el (;<, bajo el respaldo del 4rupo administrador de
objetos.
8l modelo de objetos #a demostrado ser aplicable a una amplia
variedad de dominios de problema. 8n la actualidad, el
!7OO puede &ue sea el 9nico mtodo &ue lo4re emplearse
para atacar la complejidad innata de muc#os sistemas
4randes. -in embar4o, puede no ser aconsejable en
dominios, no por raones tcnicas, sino por cuestiones como
la falta de personal con entrenamiento adecuado o buenos
entornos de desarrollo. .
<o interesante de la pro4ramación orientada a objetos )OO es
&ue proporciona conceptos " #erramientas con las cuales se
modela " representa el mundo real tan elmente como sea
posible.
Identifcación y conceptos básicos
de modelos orientados a objetos
1. 8l análisis orientado a objetos es una forma de #acer frente a la comprensión " solución de problemas, usando modelos a partir de conceptos. <a piea fundamental es el objeto, el cual se combina en una sola entidad.
ara dar nfasis sobre los conceptos en el análisis orientado a objetos, a continuación se detallan los más básicos o utiliados con ma"or frecuencia. *. Objeto. 8s una entidad bien denida, real o abstracta, &ue tiene sentido
sobre el conte5to de al4una aplicación " un papel bien denido. ! su ve se pueden diferenciar dos tipos:
Concretos: ejemplo de objetos concreto, una unidad de almacenamiento, un
arc#ivo de computadora, un automóvil, un profesor.
Conceptuales: ejemplo de objetos conceptuales, un pro4rama de
computadora, una variable de pro4ramación, un pensamiento.
>. !tributo. 8s un valor atribuido a un objeto, por ejemplo un alumno es un objeto " sus atributos podrían ser su n9mero de control, su nombre " su calicación. -e entiende &ue se pueden lle4ar a tener más atributos, pero si el conte5to de la aplicación es sólo obtener un resultado especíco, los atributos serán los 9nicos &ue son relevantes para esa aplicación.
?. Comportamiento. 8s el conjunto de cada acción o transformación &ue el objeto ejecuta, tambin podría ser llamado operación " mtodo. or ejemplo, para el objeto alumno se re&uiere de al4unas acciones " transformaciones: asi4nar calicación, leer nombre " leer n9mero de controlJ estas acciones representan el comportamiento del objeto alumno. 8n el caso de asi4nar calicación, leer nombre " leer n9mero de control, se reeren a transformaciones, "a &ue modicarán el valor de la calicación nal.
@. Identicación. Cada objeto posee una identicación mediante la cual se puede #acer alusión a l de modo e5clusivo.
3. Clase. 7escribe propiedades importantes para una aplicación " &ue i4nora el resto. <a selección de clases es arbitraria " depende de la aplicación.
A. Instancia. -e considera &ue cada objeto es una instancia de su clase. 6oda clase describe un conjunto posiblemente nito de objetos individuales.
B. Identidad. -e reere a &ue cada objeto conserva de manera in#erente su propia identidad. O sea, dos objetos son distintos a9n si el valor de todos sus atributos es idntico. or ejemplo, los oc#o peones ne4ros de un jue4o de ajedre, son todos ne4ros, tienen las mismas dimensiones, te5tura, pero todos son diferentes, e5isten " tienen su propia identidad. 7os 4otas de a4ua es otro ejemplo de la característica de identidad de los objetos.
2. Clasicación. -e reere a &ue los objetos con los mismos atributos " comportamiento, mtodos, son a4rupados en clases. Cada objeto perteneciente a una clase, se dice &ue es una instancia de la clase. Así que una clase, representa a un posible conjunto infnito de objetos individuales. Por ejemplo, a todos los alumnos que aparecerán en la lista de califcaciones fnales, se clasifcaron en la clase alumno. A todos los amigos que se registran en una agenda, se les puede clasifcar en la clase persona.