You are on page 1of 3

Unidad 2: Actividad 1 - Análisis y Diseño Orientado a Objetos

1. ¿Qué es el análisis y diseño de software orientado a objetos?

Análisis y diseño orientado a objetos (ADOO) es un enfoque de la ingeniería de software que modela un
sistema como un grupo de objetos que interactúan entre sí. Este enfoque representa un dominio en
términos de conceptos compuestos por verbos y sustantivos, clasificados de acuerdo a su dependencia
funcional.

En éste método de análisis y diseño se crea un conjunto de modelos utilizando una notación acordada
como, por ejemplo, el lenguaje unificado de modelado (UML). ADOO aplica técnicas de modelado de
objetos para analizar los requerimientos para un contexto - por ejemplo, un sistema de negocio, un
conjunto de módulos de software - y para diseñar una solución para mejorar los procesos involucrados.
No está restringido al diseño de programas de computadora, sino que cubre sistemas enteros de distinto
tipo. Las metodologías de análisis y diseño más modernas son casos de uso guiados a través de
requerimientos, diseño, implementación, pruebas, y despliegue.
El lenguaje unificado de modelado se ha vuelto el lenguaje de modelado estándar usado en análisis y
diseño orientado a objetos.

La programación orientada a objetos difiere de la programación por procedimientos tradicional, pues


examina los objetos que son parte de un sistema. Cada objeto es una representación en computadora
de alguna cosa o evento real. En esta sección se presentan descripciones generales de los principales
conceptos orientados a objetos de las clases, la herencia y los objetos.

2. ¿Cuáles son sus principales características?

Abstracción: Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar
trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo
se implementan estas características. Los procesos, las funciones o los métodos pueden tambien ser
abstraídos y cuando los están, una variedad de técnicas son requeridas para ampliar una abstracción.

Encapsulación: También llamada "ocultación de la información", esto asegura que los objetos no
pueden cambiar el estado interno de otros objetos de maneras inesperadas; solamente los propios
métodos internos del objeto pueden acceder a su estado. Cada tipo de objeto expone una interfaz a
otros objetos que especifica cómo otros objetos pueden interactuar con él. Algunos lenguajes relajan
esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y
limitando el grado de abstracción.

Polimorfismo: Las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos,
y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el
tipo real del referente. Cuando esto ocurre en "tiempo de ejecución", esta última característica se llama
asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios más estáticos (en
"tiempo de compilación") de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C+
+.

Herencia: Organiza y facilita el polimorfismo y la encapsulación permitiendo a los objetos ser definidos y
creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su
comportamiento sin tener que reimplementar su comportamiento. Esto suele hacerse habitualmente
agrupando los objetos en clases y las clases en árboles o enrejados que reflejan un comportamiento
común.

La programación orientada a objetos se basa en 8 principios, que se muestran para un mejor


entendimiento de la metodología:

Clases: Una clase es una categoría de objetos similares. Los objetos se agrupan en clases.

Herencia: Las clases pueden tener hijos, esto es, una clase puede ser creada a partir de otra clase. La
clase original, o madre, es llamada “clase base”. La clase hija es llamada “clase derivada”. Una clase
derivada puede ser creada en forma tal que herede todos los atributos y comportamientos de la clase
base.

Objetos: Un objeto es una representación en una computadora de alguna cosa o evento del mundo real.

Encapsulación: Típicamente, la información dentro de un objeto esta encapsulada por su


comportamiento. Esto significa que un objeto mantiene datos acerca de cosas del mundo real a las que
representa en un sentido verdadero.

Atributo: dato asociado a un objeto.

Mensajes: Se puede enviar información de un objeto a otro.


Método: proceso que realiza un objeto cuando recibe un mensaje.
Polimorfismo: El término polimorfismo se refiere a comportamientos alternos entre clases derivadas
relacionadas. Cuando varias clases heredan atributos y comportamientos, pude haber casos en donde el
comportamiento de una clase derivada debe ser diferente del de su clase base o de sus clases derivadas
parientes.

Un enfoque orientado a objetos, dependiendo de la naturaleza del software a desarrollar, puede facilitar
la elaboración de la aplicación, debido a que los objetos describen de forma abstracta a los elementos
del mundo en que vivimos.

3. ¿Qué lenguajes de programación están orientados a esta metodología de desarrollo?

Entre los lenguajes orientados a objetos más importantes que se pueden mencionar, aparecen los
siguientes:

 Ada

 C++

 C#

 VB.NET
 Clarion

 Delphi

 Eiffel

 Jave

 Lexico (en castellano)

 Objective-C

 Ocaml

 Oz

 PHP

 PowerBuilder

 Pitón

 Ruby

 Smalltal

4. ¿Qué diferencia existe con la técnica de programación procedimental o imperativa?

La programación orientada a objetos es más moderna, es una evolución de la programación imperativa


plasmada en el diseño de una familia de lenguajes conceptos que existían previamente, con algunos
nuevos.
La programación orientada a objetos se basa en lenguajes que soportan sintáctica y semánticamente la
unión entre los tipos abstractos de datos y sus operaciones (a esta unión se la suele llamar clase).
La programación orientada a objetos incorpora en su entorno de ejecución mecanismos tales como el
polimorfismo y el envío de mensajes entre objetos.

You might also like