1.1. Conceptualización de tecnología orientada a objetos

63
El modelo del proceso de software

Transcript of 1.1. Conceptualización de tecnología orientada a objetos

Page 1: 1.1. Conceptualización de tecnología orientada a objetos

El modelo del proceso de software

Page 2: 1.1. Conceptualización de tecnología orientada a objetos

1.1 Conceptualización de tecnología orientada a objetos

Conceptos de la Programación tradicional.

Conocida como programaciónEstructurada consta de múltiples datos y funciones «globales». Todos los datos o funciones son “visibles” en todo el

programa Pueden ser llamados desde cualquier ubicación en la

aplicación.

Page 3: 1.1. Conceptualización de tecnología orientada a objetos

Las instrucciones de un programa:

Estaban en funciones o procedimientos Se ejecutaban por el procesador de manera secuencial Afectando los datos del programa Los datos se almacenaban en la memoria.

Dos problemas principales: a) La organización del programa de ser de

acuerdo a la arquitectura de la computadora

b) Los datos se vuelven globalmente visibles al estar separados de las funciones. Dado esto cualquier cambio en la estructura de los datos pudiera llegar a requerir la modificación de todas las funciones del programa

Page 4: 1.1. Conceptualización de tecnología orientada a objetos

Conceptos de la Programación Orientada a Objetos

Tiene una estructura de más alto nivel llamada objeto, que ofrece dos ventajas sobre la tradicional:

a) Permite al programador que organice su programa de acuerdo con abstracciones de más alto nivel. «los objetos son las unidades de representación de las

aplicaciones»

Ejemplo: cuentas de bancos, reservaciones de vuelo, etc.

Page 5: 1.1. Conceptualización de tecnología orientada a objetos

b) Los datos globales y las funciones son parte interna de los objetos. Por lo tanto los cambio en la estructura de alguno de los datos solo deberá afectar las funciones definidas en ese mismo objeto.

Un programa orientado a objetos, se define exclusivamente en términos de objetos y sus relaciones.

Page 6: 1.1. Conceptualización de tecnología orientada a objetos

Una Perspectiva Histórica

Tradicionalmente, la programación fue hecha :

Secuencial o lineal: serie de pasos consecutivos con estructuras consecutivas y bifurcaciones.

Esta forma de programación Tenia el problema ocurre cuando los sistemas es complejos.programas estilo “espaguetti”

Page 7: 1.1. Conceptualización de tecnología orientada a objetos

Frente a esta dificultad:

Aparece la programación estructurada:

La idea principal es separar las partes complejas del programa en módulos.

Diseño modular ( comunicación entre ellos)

Poco a poco este estilo de programación fue reemplazando al estilo “espaguetti” impuesto por la programación lineal.

Page 8: 1.1. Conceptualización de tecnología orientada a objetos

La evolución que se fue dando en la programación se orientaba siempre a ir descomponiendo más el programa

Este tipo de descomposición conduce directamente a la programación orientada a objetos.

Así aparece la Programación Orientada a Objetos (POO).

Viene de la evolución de la programación estructurada; básicamente simplifica la programación con la nueva filosofía y nuevos conceptos que tiene.

Page 9: 1.1. Conceptualización de tecnología orientada a objetos

La POO se basa en la dividir el programa en pequeñas unidades lógicas de código.

Objetos. unidades independientes que se comunican entre ellos mediante mensajes.

¿Cuáles son las ventajas de un lenguaje orientado a objetos?

Fomenta la reutilización y extensión del código. Permite crear sistemas más complejos. Relacionar el sistema al mundo real. Facilita la creación de programas visuales. Construcción de prototipos Agiliza el desarrollo de software Facilita el trabajo en equipo Facilita el mantenimiento del software

Page 10: 1.1. Conceptualización de tecnología orientada a objetos

El modelo Orientado a Objetos

Conceptos básicos: Objetos, Clases, Herencia, Envío de mensajes (métodos)

Los objetos son entidades quetienen un determinado comportamiento (método) e identidad.

El estado está compuesto de datos «atributos» a los que se asignado un valor (datos).

El comportamiento está definido por los métodos «operaciones» se pueden realizar con él.

La identidad es lo que diferencia del resto, es su identificador (variable o constante).

Page 11: 1.1. Conceptualización de tecnología orientada a objetos

Características

Un objeto contiene toda la información que permite identificarlo frente a otros objetos

Disponen de mecanismos de interacción llamados métodos (comunicación entre ellos) Esta comunicación favorece a su vez el cambio de estado en los propios objetos.

Esta característica lleva a tratarlos como unidades indivisibles, en las que no se separa el estado y el comportamiento

Page 12: 1.1. Conceptualización de tecnología orientada a objetos

Conceptos Fundamentales

POOPara entender este modelo vamos a revisar 4 conceptos básicos:

Objetos Clases Herencia Envío de mensajes

Page 13: 1.1. Conceptualización de tecnología orientada a objetos

1.- Objeto: Primero que es un objeto del mundo real: es cualquier cosa que vemos a nuestro alrededor.

Un monitor y una computadora, ambos son objetos, al igual que nuestro teléfono celular, un árbol o un automóvil.

Page 14: 1.1. Conceptualización de tecnología orientada a objetos

Analicemos un poco más a un objeto del mundo real, como la computadora.

una computadora está compuesta internamente por varios componentes:

Tarjeta madre Procesador Disco duro Tarjeta de video, y otras partes más.

El trabajo en conjunto de todos estos componentes hace operar a una computadora.

Page 15: 1.1. Conceptualización de tecnología orientada a objetos

Cada componente es una unidad autónoma, y todo lo que necesitamos saber de adentro es cómo interactúan entre.

• Por ejemplo si el procesador y las memorias son compatibles con la tarjeta madre, o conocer donde se coloca la tarjeta devideo.

Cuando conocemos como interaccionan, podremos armar fácilmente una computadora.

Page 16: 1.1. Conceptualización de tecnología orientada a objetos

¿Que tiene que ver esto con la programación?

La POO trabaja de esta manera.

Todo el programa está construido en base a diferentes componentes «Objetos»

Cada uno tiene un rol específico Todos los componentes pueden comunicarse entre ellos de

formas predefinidas

Todo objeto del mundo real tiene 2 componentes:

1. Características2. Comportamiento.

Page 17: 1.1. Conceptualización de tecnología orientada a objetos

Por ejemplo, los automóviles tienen: Características:marca, modelo, color, velocidadmáxima, etc. Comportamiento:frenar, acelerar, retroceder, llenar combustible, cambiar llantas, etc.

Los Objetos de Software, también tienen características y comportamientos.

Sus características en una o más «variables» Su comportamientocon «métodos»

Page 18: 1.1. Conceptualización de tecnología orientada a objetos

Para redondear estas ideas

Imaginemos que tenemos estacionado en nuestra cochera un Ford Focus color azul que corre hasta 260 km/h.

Si pasamos ese objeto del mundo real al mundo del software, tendremos un objeto Automóvil con sus características predeterminadas:

objeto del mundo objeto del mundo SW

Marca = FordModelo = FocusColor = AzulVel_Máx = 260 km/h

Page 19: 1.1. Conceptualización de tecnología orientada a objetos

Cuando a las características del objeto le ponemos valores decimos que el objeto tiene estados.

Las variables almacenan los estados de un objeto en un determinado momento.

Page 20: 1.1. Conceptualización de tecnología orientada a objetos

Definición teórica: Un objeto es una unidad de código compuesto de variables y métodos relacionados.

Entidad provista de un conjunto de atributos (datos) y de comportamiento (métodos) los mismos que consecuentemente reaccionan a eventos.

Se corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase.

Page 21: 1.1. Conceptualización de tecnología orientada a objetos

2. ClaseEn el mundo real, normalmente tenemos muchos objetos del mismo tipo.

Por ejemplo, nuestro celular es sólo uno de los miles que hay en el mundo.

Si hablamos en términos de la POO, podemos decir que nuestro objeto celular es una instancia de una clase conocida como "celular".

Page 22: 1.1. Conceptualización de tecnología orientada a objetos

Los celulares tienen:

Características marca, modelo, sistema operativo, pantalla, teclado, etc.

Comportamientoshacer y recibir llamadas, enviar mensajes multimedia, transmisión de datos, etc.

Celular

+Marca+Modelo

+Colgar()+Llamar()

Page 23: 1.1. Conceptualización de tecnología orientada a objetos

Ejemplo

Los fabricantes de celulares

• Aprovechan que los celulares comparten esas características comunes

• Construyen modelos o plantillas comunes

A partir de esas se puedan crear muchos equipos celulares del mismo modelo.

Page 24: 1.1. Conceptualización de tecnología orientada a objetos

A ese modelo o plantilla le llamamos CLASE, y a los equipos que sacamos a partir de ella la llamamos OBJETOS.

Esto mismo se aplica a los objetos de software, se puede tener muchos objetos del mismo tipo y mismas características.

Objeto

+Marca: Sagem+Modelo: X5

+Colgar()+Llamar()

Objeto

+Marca: Sagem+Modelo: X5

+Colgar()+Llamar()

Creando un objeto de la clase

Page 25: 1.1. Conceptualización de tecnología orientada a objetos

Definición teórica: es un modelo o prototipo que define las variables y métodos comunes a todos los objetos de cierta clase.

También se puede decir que una clase es una plantilla genérica para un conjunto de objetos de similares características.

Es la definiciones de las propiedades y comportamiento de un tipo de objeto

La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas.

Page 26: 1.1. Conceptualización de tecnología orientada a objetos

3. La herencia: consiste en que una clase puede heredar sus variables y métodos a varias subclases (la clase que hereda es llamada superclase o clase padre).

La subclase, aparte de los atributos y métodos propios, tiene incorporados los atributos y métodos heredados de la superclase.

Jerarquía de Herencia

Page 27: 1.1. Conceptualización de tecnología orientada a objetos

Por ejemploimaginemos que estamos haciendo el análisis de un Sistema para una tienda que vende y repara equipos celulares.

En el imagen vemos 2 Clases más que requerimos nuestro Sistema.

Las cuales se construirán a partir de la Clase Celular existente. De esa forma utilizamos el comportamiento de la SuperClase.

Celular

+Marca+Modelo

+Llamar()+Colgar()

Celular_nuevo

+Marca+Modelo+Precio+Fecha_ingreso

+Llamar()+Colgar()

Celula_reparar

+Marca+Modelo+Motivo+Dueño

+Llamar()+Colgar()

Page 28: 1.1. Conceptualización de tecnología orientada a objetos

Ejemplo : herencia de la clase C a la clase D

Es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D.

Por lo tanto, puede usar (públicas declaradas en C)

Métodos Variables.

Los componentes "privados" también se heredan sólo pueden ser accedidos a través de otros métodos públicos.

Page 29: 1.1. Conceptualización de tecnología orientada a objetos

4. Envío de Mensajes

Un objeto es inútil si está aislado. El medio para interactúe con otro son los mensajes «invocaciones a los métodos de los objetos»

Los Mensaje: es la comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.

Page 30: 1.1. Conceptualización de tecnología orientada a objetos

Propiedad o atributo:

contenedor de un tipo de datos asociados a un objeto, que hace los datos visibles desde fuera del objeto y esto se define como:

Sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método.

Page 31: 1.1. Conceptualización de tecnología orientada a objetos

Estado interno:

Es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos).

No es visible al programador que maneja una instancia de la clase.

Page 32: 1.1. Conceptualización de tecnología orientada a objetos

Componentes de un objeto:

Atributos Identidad Relaciones Métodos.

Identificación de un objeto:

Se representa por una tabla compuesta por sus atributos y funciones correspondientes.

Page 33: 1.1. Conceptualización de tecnología orientada a objetos

Características de la POO

Las características siguientes son las más importantes:

1. La abstracción

consiste en captar las características esenciales de un objeto, así como su comportamiento. Por ejemplo, volvamos al ejemplo de los automóviles,

¿Qué características podemos abstraer de los automóviles?

¿Qué características semejantes tienen todos los automóviles?

Page 34: 1.1. Conceptualización de tecnología orientada a objetos

Todos tendrán atributos :o Marcao Modeloo Número de chasiso Pesoo Llantaso Puertaso Ventanas, etc.

Y en cuanto a su comportamientoo Aceleraro Frenaro Retroceder, etc.

En los lenguajes de POO, el concepto de Clase es la representación y el mecanismo por el cual se gestionan las abstracciones

Page 35: 1.1. Conceptualización de tecnología orientada a objetos

2. Encapsulamiento

Es el mecanismo básico de la POO para ocultar los detalle internos del objeto de los damas objetos.

Consiste en unir en la Clase las características y comportamientos, esto es, los atributos y métodos. Es tener todo esto es una sola entidad.

Es evidente que el encapsulamiento se logra gracias a la abstracción y el ocultamiento que veremos a continuación

Page 36: 1.1. Conceptualización de tecnología orientada a objetos

La utilidad del encapsulamiento va por la facilidad para manejar la complejidad, ya que tendremos a las Clases como cajas negras donde sólo se conoce el comportamiento pero no los detalles internos, y esto es conveniente porque nos interesará será conocer qué hace la Clase pero no será necesario saber cómo lo hace.

Es evidente que el encapsulamiento se logra gracias a la abstracción y el ocultamiento que veremos a continuación

Page 37: 1.1. Conceptualización de tecnología orientada a objetos

3. OcultamientoEs la capacidad de ocultar los detalles internos del comportamiento de una Clase y exponer sólo los detalles que sean necesarios para el resto del sistema.

Page 38: 1.1. Conceptualización de tecnología orientada a objetos

El ocultamiento permite 2 cosas:

Restringir el uso de la Clase: porque habrá cierto comportamiento privado de la Clase que no podrá ser accedido por otras Clases.

Controlar el uso de la Clase:porque daremos ciertos mecanismos para modificar el estado de nuestra Clase y es en estos mecanismos dónde se validarán que algunas condiciones se cumplan.

Page 39: 1.1. Conceptualización de tecnología orientada a objetos

¿Por qué seguimos buscando

nuevas técnicas de desarrollo?

Por el aumento de la complejidad de los sistemas. En un POO tendremos a un conjunto de objetos

colaborando entre ellos. La O. O. es paradigma de que está de moda para

el desarrollo de software.

Page 40: 1.1. Conceptualización de tecnología orientada a objetos

En Resumen

Page 41: 1.1. Conceptualización de tecnología orientada a objetos

Un objeto es una abstracción conceptual del mundo real que se puede traducir a un lenguaje de POO

Un objeto del mundo real tiene atributos y comportamientos, al igual que un objeto del mundo del software.

Una Clase es una plantilla que define las variables y métodos a ser incluidas en un tipo de objeto específico.

Page 42: 1.1. Conceptualización de tecnología orientada a objetos

Los objetos también son llamados instancias de la Clase. Los objetos sólo almacenan su estado. «valores en sus variables».

Los objetos se comunican entre ellos usando los mensajes. Un mensaje es la invocación de un método del objeto.

La O. O. requiere de una metodología que integre el proceso de desarrollo y un lenguaje de modelamiento con herramientas y técnicas adecuadas.

Page 43: 1.1. Conceptualización de tecnología orientada a objetos

Modularidad:

Propiedad que permite subdividir una aplicación en partes más pequeñas «llamadas módulos»

Cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes.

Estos módulos se pueden compilar por separado, pero tienen conexiones con otros módulos.

Page 44: 1.1. Conceptualización de tecnología orientada a objetos

Polimorfismo:En java es la habilidad de una variable por referencia de cambiar su comportamiento en función de que instancia de objeto posee.

Esto permite tratar de lamisma manera, como objetos de la superclase,a múltiples objetos de la subclase, seleccionado en cada caso los métodos apropiados.

Page 45: 1.1. Conceptualización de tecnología orientada a objetos

Ejemplo: Dada una clase Vehicular, la característica de polimorfismo habilita al programador para definir métodos en sus subclases (por ejemplo: coche, camión y moto). No importa qué tipo de Vehículo sea ya que si llamamos al método getNumeroruedas() llamara al propio de cada subclase, pero el objeto deja de ser Vehículo también.

Page 46: 1.1. Conceptualización de tecnología orientada a objetos

Recolección de basura

La garbage collector es la técnica por la cual el entorno de objetos se encarga de destruir automáticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos.

Page 47: 1.1. Conceptualización de tecnología orientada a objetos

Esto significa que el programador no debe preocuparse por la asignación o liberación de memoria, ya que el entorno la asignará al crear un nuevo objeto y la liberará cuando nadie lo esté usando.

Page 48: 1.1. Conceptualización de tecnología orientada a objetos

Evento:

Es un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente.

También se puede definir como la reacción que puede desencadenar un objeto, es decir la acción que genera.

Page 49: 1.1. Conceptualización de tecnología orientada a objetos

Estado interno:

Es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase.

Page 50: 1.1. Conceptualización de tecnología orientada a objetos

Lenguajes orientados a objetos

ABL Leng de programación de OpenEdge de Progress Software

Ada C++ Object Pascal (Embarcadero Delphi) JavaScript (la herencia se realiza por medio de la

programación basada en prototipos) Lexico (en castellano) Objective-C Visual FoxPro (en su versión 6) Visual Basic 6.0 Visual Objects

Page 51: 1.1. Conceptualización de tecnología orientada a objetos

1.2. Metodologías emergentes de desarrollo

de software.Proceso

Define quién hace qué, cuándo y cómo para alcanzar cierto objetivo.Los sistemas de software pueden llegar a ser muy complejos, para administrar dicha complejidad es necesario contar con modelos deprocesos y tecnologías de software apropiadas.

Page 52: 1.1. Conceptualización de tecnología orientada a objetos

Modelo de proceso

Define cómo solucionar la problemática del desarrollo de sistemas de software.

Para desarrollar software se requiere resolver ciertas fases de su proceso, las cuales se conocen como el ciclo de vida de desarrollo de software. U

Debe considerar aspectos como: Personas Estructuras organizacionales Reglas Políticas Actividades Componentes de software Metodologías y herramientas.

Page 53: 1.1. Conceptualización de tecnología orientada a objetos

No existe un solo modelo de proceso, depende del tipo particular de proyecto:

• Primer proyecto de su tipo. Se crea desde cero, requiere de más tiempo para especificarlo y analizarlo, la incertidumbre crea riesgos adicionales.

• Segundo proyecto de su tipo. Se busca agregar nueva funcionalidad a un o conocido.

• Variación de un proyecto. Se extiende un sistema ya existente, lo cual involucra introducir componentes de software reutilizables como un marco de trabajo (framework), crear nuevos componentes o simplemente extender la aplicación existente mediante nueva funcionalidad. Dependiendo de la estrategia a utilizar, el modelo del proceso debe variar.

Page 54: 1.1. Conceptualización de tecnología orientada a objetos

• Proyecto de reescritura de legado (legacy). Se busca transformar o hacer una reingeniería de un sistema ya existente, desarrollado bajo tecnologías anteriores y transformarlo a tecnologías nuevas.

• Proyecto de creación de software reutilizable. Se busca crear uno o más componentes de software reutilizables, debe ser diseñado de tal manera que se asegure de que el diseño sea lo suficientemente general para ser útil en otras situaciones desconocidas, por ello no hay muchos proyectos así.

• Proyecto de mejora de sistema o mantenimiento. Se busca modificar los componentes básicos de un sistema para apoyar a una nueva funcionalidad. Son regularmente pequeños y afectan solo a partes del sistema.

Page 55: 1.1. Conceptualización de tecnología orientada a objetos

Componentes de un modelo de proceso

• Arquitectura. Estructura general de un sistema y varía de acuerdo con el tipo de sistema a desarrollarse:

• Transformación en lote (batch). Sistemas de transformación sobre un conjunto de entradas de valor constante, para generar un conjunto de salidas, ejemplo un compilador.

• Transformación continúa. Sistemas de transformación sobre un conjunto de entradas de valor constante, para generar un conjunto de salidas que difieren en el tiempo, ejemplo sistema de control de señales.

Page 56: 1.1. Conceptualización de tecnología orientada a objetos

• Sistemas interactivos. Regidos por interacciones externas, por lo general un usuario, son controlados por manejadores de eventos, encargados de procesar acontecimientos generados por el usuario, ejemplo un click o presionar una tecla.

• Simulación dinámica. Sistemas que simulan sistemas del mundo real y evolucionan con el tiempo, ejemplo simuladores de sistemas financieros, redes neuronales, etc.

• Sistemas de tiempo real. Regidos por restricciones estrictas en el tiempo y requieren garantías en el tiempo de respuesta, ejemplos controladores de procesos industriales y dispositivos de comunicación.

• Administración de transacción. Sistemas para interactuar con las bases de datos y que incluyen acceso concurrente y distribuido de múltiples usuarios, ejemplo reservaciones de vuelo y control de inventario.

Page 57: 1.1. Conceptualización de tecnología orientada a objetos

• También la arquitectura involucra las interfaces (elementos gráficos), la funcionalidad (reglas del negocio), los datos y las funciones (elementos internos de los objetos)

Page 58: 1.1. Conceptualización de tecnología orientada a objetos

• Actividad. Es una unidad o paso básico de un proceso. En el proceso de software las actividades definen los pasos necesarios para lograr las metas y los objetivos. Las actividades básicas del proceso de desarrollo de software son conocidas como el ciclo de vida:

Page 59: 1.1. Conceptualización de tecnología orientada a objetos

• Requisitos. Para especificar aspectos funcionales del sistema, que describen cómo interactuaría un usuario con la aplicación, se genera un Modelo de Requisitos.

• Análisis. Para dar al sistema una estructura o arquitectura robusta y extensible, se genera un Modelo de Análisis.

• Diseño. Para adoptar y refinar la arquitectura del sistema y adaptarla sl ambiente de implementación, se genera un Modelo de Diseño (de estructuras o de objetos y de sistema).

• Implementación. Para codificar el sistema, se genera un Modelo de Implementación (lenguajes de programación, bases de datos).

• Integración. Para combinar componentes del sistema, se genera un Modelo de Integración.

• Pruebas. Para validar y verificar el sistema, se genera un Modelo de Pruebas (validación de acuerdo a la especificación del cliente y verificación si el sistema está siendo desarrollado correctamente).

• Documentación. Para describir los diversos aspectos del sistema, se generan los manuales de usuario, programador, operador, administrador).

• Mantenimiento. Para extender la funcionalidad del sistema, es la continuación del ciclo de vida, una vez concluida la primera versión del sistema.

Page 60: 1.1. Conceptualización de tecnología orientada a objetos

•  • Métodos y Metodologías. Los métodos definen

las reglas para las transformaciones internas de las actividades, mientras que las metodologías definen el conjunto de métodos. Un método es un procedimiento que define tareas o acciones a realizar, donde cada tarea incluye condiciones de entrada y de salida que se deben satisfacer antes y después de completarse.

Page 61: 1.1. Conceptualización de tecnología orientada a objetos

• Los métodos deben:• Apoyar conceptos básicos significativos para resolver problemas. Se deben utilizar

en distintos dominios de aplicación según las arquitecturas: secuencial, concurrente, distribuido, en tiempo real.

• Deben ajustarse al ciclo de vida del proceso, apoyando a todas las actividades.• Deben proveer técnicas para recopilar información.• Deben apoyar su propia extensibilidad, su propia documentación.• Deben permitir la generación de modelos a partir de la información recopilada por

el método.• Deben apoyar la integridad de los modelos generados, verificando y evitando

errores de consistencia.• Deben ofrecer entradas y salidas bien definidas que permitan la integración de

varios métodos.• Deben contar con notaciones específicas y estandarizadas para representar los

modelos desarrollados, los cuales deben incluir elementos gráficos, de texto o combinación de ambos.

• Deben tener confianza en los métodos y las herramientas correspondientes; para lo cual se debe contemplar que éstos se mantendrán en el mercado y, que cuenten con capacitación y apoyo técnico.

Page 62: 1.1. Conceptualización de tecnología orientada a objetos

• Existen una gran variedad de métodos y metodologías en apoyo al proceso de software, como son las estructuras y orientadas a objetos.

• Estructuradas: Se enfocan en la descomposición funcional de un sistema. El objetivo es lograr una definición completa del sistema, estableciendo los datos de entrada y salida. Estas metodologías se conocen como análisis y diseño estructurado (SA/SD Structured Analysis and Structured Design) y se basan en herramientas como:o Diagramas de flujo de datos. Modelado de transformación de datos entre funciones del sistema. Se compone de

procesos, flujo de datos, actores, y almacenamiento de datos (DFD).o Diagramas de transición de estado. Sirven para modelar el comportamiento a través del tiempo, describen el efecto

de eventos externos en los procesos y funciones.o Diagramas entidad-relación. Para modelar un almacenamiento de datos.

• Orientadas a objetos: Se enfocan en el modelado de un sistema en términos de objetos. Se identifican inicialmente los objetos del sistema para luego especificar su comportamiento y usan las herramientas siguientes:o Diagramas de clase. Describen los componentes esenciales de la arquitectura de un sistema. A diferencia de los DFD, los

de clases muestran relaciones de asociación entre clases y no flujo de datos entre ellas.o Diagramas de casos de uso. Especifican un sistema en términos de su funcionalidad. A diferencia de las metodologías

estructuradas los de casos de uso no son descompuestos en funciones de programación.o Diagramas de transición de estado. Describen los cambios de estado de los objetos.o Diagramas de secuencia. Describen los aspectos dinámicos de sistema, mostrando el flujo de eventos entre objetos en el

tiempo.o Diagramas de colaboración. Describen la comunicación entre objetos de un sistema.o Diagramas de subsistemas. Se usan para describir agrupaciones de clases en un sistema.

Page 63: 1.1. Conceptualización de tecnología orientada a objetos

Metodologías Emergentes