web viewen este tema veremos a continuación, el análisis y el diseño que...

19
INSTITUTO TECNOLOGICO SUPERIOR DE ALAMO TEMAPACHE INGENIERIA EN SISTEMAS COMPUTACIONALES NOMBRE DE LA INVESTIGACON: ANALISIS Y DISEÑO ORIENTADO A OBJETOS” PRESENTAN: JONATHAN CRUZ NUÑEZ ONESIMO IGLESIAS HIDALGO RICARDO CRUZ GONZALES NESTOR HERNANDEZ MARTINEZ MATERIA: FUNDAMENTOS DE DESARROLLO DE SOFTWARE ASESOR: Ing. KARIME VIZARRAGA CAM

Upload: lycong

Post on 30-Jan-2018

215 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Web viewEn este tema veremos a continuación, El análisis y el diseño que definen como solucionar el problema, que programar y que este diseño de forma sea fácil de

INSTITUTO TECNOLOGICO SUPERIOR DE ALAMO TEMAPACHE

INGENIERIA EN SISTEMAS COMPUTACIONALES

NOMBRE DE LA INVESTIGACON:

“ANALISIS Y DISEÑO ORIENTADO A OBJETOS”

PRESENTAN:

JONATHAN CRUZ NUÑEZ ONESIMO IGLESIAS HIDALGO

RICARDO CRUZ GONZALESNESTOR HERNANDEZ MARTINEZ

MATERIA:

FUNDAMENTOS DE DESARROLLO DE SOFTWARE

ASESOR:

Ing. KARIME VIZARRAGA CAM

Xoyotitla, Álamo Temapache, Ver. Mayo 2010

Page 2: Web viewEn este tema veremos a continuación, El análisis y el diseño que definen como solucionar el problema, que programar y que este diseño de forma sea fácil de

INTRODUCCIÓN

En este tema veremos a continuación, El análisis y el diseño que definen como solucionar el problema, que programar y que este diseño de forma sea fácil de comunicar, revisar, implementar y evolucionar. Uno de los aspectos del análisis y diseño orientado a objetos es el hecho de que es relativamente nuevo de usar.

Para el desarrollo orientado a objetos no basta usar un lenguaje orientado a objetos, también se necesitará realizar un análisis y diseño orientado a objetos. El uso de Análisis orientado a objetos puede facilitar mucho la creación de prototipos, y las técnicas de desarrollo evolutivo de software.

Existen también las técnicas orientadas a objetos que permiten que el software se construya a partir de objetos de compartimiento específico. Los propios objetos se pueden constituir a partir de otros, que a su vez pueden estar formados por otros objetos para poder conseguir solucionar un problema específico.

Page 3: Web viewEn este tema veremos a continuación, El análisis y el diseño que definen como solucionar el problema, que programar y que este diseño de forma sea fácil de

LA INGENIERIA DE SOFTWARE

Según la definición del IEEE citado por Lewis 1994, software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos que pertenecen a un sistema de cómputo. Según el mismo autor “un producto de software es un producto diseñado para un usuario. En este contexto la ingeniería de software es un enfoque sistemático del desarrollo, operación, mantenimiento y retiro del software”, que en palabras más llanas se considera que la “ingeniería de software” es la rama de la ingeniería que aplica los principios de la ciencia de la computación y las matemáticas para lograr soluciones costo-efectivas a los problemas de desarrollo de software, es decir permite elaborar consistentemente productos correctos, utilizables y costo-efectivos.

El proceso de ingeniería de software se define como “un conjunto de etapas parcialmente ordenadas con la intención de lograr un objetivo”. El proceso de desarrollo de software es aquel en que las necesidades del usuario son traducidas en requerimientos de software, estos requerimientos transformados en diseño y el diseño implementado en código es probado, documentado y certificado para uso operativo.

Actualmente se encuentra en una etapa de madurez el enfoque orientado a objetos como un paradigma del desarrollo de sistemas de información.

EL PARADIGMA ORIENTADO A OBJETOS

Durante muchos años el término Orientado a Objetos (OO) se usó para referirse a un enfoque de desarrollo de software que usaba uno de los lenguajes orientados a objetos. El historiador Thomas K describía un paradigma como un conjunto de teorías, estándar y métodos que juntos representan un medio de organización del conocimiento: es decir, un medio de visualizar el mundo. En este sentido, la programación orientada a objetos es un nuevo paradigma. La orientación a objetos fuerza a reconsiderar nuestro pensamiento sobre la computación, sobre lo que significa realizar computación y sobre cómo se estructura la información dentro de la computadora.

Jenkins y Glasgow observan que “la mayoría de los programadores trabajan en un lenguaje y utilizan sólo un estilo de programación. Ellos programan en un paradigma forzado por el lenguaje que utilizan. Con frecuencia, no se enfrentan a métodos

Page 4: Web viewEn este tema veremos a continuación, El análisis y el diseño que definen como solucionar el problema, que programar y que este diseño de forma sea fácil de

alternativos de resolución de un problema, y por consiguiente tienen dificultad en ver la ventaja de elegir un estilo más apropiado al problema a manejar”. Bobrow y Stefik sugieren que existen cuatro clases de estilos de programación:

Orientados a procedimientos: Algoritmos. Orientados a objetos: Clases y Objetos. Orientados a lógica: Expresado en cálculo de predicados. Orientados a reglas: Reglas if-then.

No existe ningún estilo de programación idóneo para todas las clases de programación. La orientación a objetos se acopla a la simulación de situaciones del mundo real.

LENGUAJES DE PROGRAMACIÓN ORIENTADO A OBJETOS

En 1985, E. Stroustrup extendió el lenguaje de programación C a C++, es decir C con conceptos de clases y objetos, también por esas fechas se creó desde sus bases el lenguaje EIFFEL.

En 1995 apareció el más reciente lenguaje OO, Java desarrollado por SUN, que hereda conceptos de C++.

El lenguaje de desarrollo más extendido para aplicaciones Web, el PHP 5, trae todas las características necesarias para desarrollar software orientado a objetos.

Además de otros lenguajes que fueron evolucionando, como el Pascal a Delphi.

Finalmente también otros lenguajes script como el ActionScript que si bien no es totalmente orientado a objetos pero sí posee las características.

¿QUÉ ES ANALISIS Y DISEÑO?

El Análisis pone énfasis en una investigación del problema y los requisitos, en vez de ponerlo en una solución (estudio de los objetos del dominio).

El Diseño pone en énfasis en una solución conceptual que satisface los requisitos, en vez de ponerlo en la implementación.

Page 5: Web viewEn este tema veremos a continuación, El análisis y el diseño que definen como solucionar el problema, que programar y que este diseño de forma sea fácil de

Ejemplo: descripción del esquema de una base de datos y objetos software.

Finalmente, los diseños pueden ser implementados (diseño de objetos o diseño de base de datos).

Análisis y Diseño Orientado a Objetos (A/DOO)

Programar es divertido, pero desarrollar software de calidad es difícil. El análisis y el diseño definen como solucionar el problema, que programar y que este diseño de forma sea fácil de comunicar, revisar, implementar y evolucionar.

Es un método de análisis que examina los requisitos desde la perspectiva de las clases y objetos que se encuentran en el vocabulario del dominio del problema.

El Análisis orientado a objetos ofrece un enfoque nuevo para el análisis de requisitos de sistemas software. En lugar de considerar el software desde una perspectiva clásica de entrada/proceso/salida, como los métodos estructurados clásicos, se basa en modelar el sistema mediante los objetos que forman parte de él y las relaciones estáticas (herencia y composición) o dinámicas (uso) entre estos objetos.

El uso de Análisis orientado a objetos puede facilitar mucho la creación de prototipos, y las técnicas de desarrollo evolutivo de software. Los objetos son inherentemente reutilizables, y se puede crear un catálogo de objetos que podemos usar en sucesivas aplicaciones. De esta forma, podemos obtener rápidamente un prototipo del sistema, que

Page 6: Web viewEn este tema veremos a continuación, El análisis y el diseño que definen como solucionar el problema, que programar y que este diseño de forma sea fácil de

pueda ser evaluado por el cliente, a partir de objetos analizados, diseñados e implementados en aplicaciones anteriores. Y lo que es más importante, dada la facilidad de reutilización de estos objetos, el prototipo puede ir evolucionando hacia convertirse en el sistema final, según vamos refinando los objetos de acuerdo a un proceso de especificación incremental.

Para el desarrollo de software orientado a objetos no basta usar un lenguaje orientado a objetos. También se necesitará realizar un análisis y diseño orientado a objetos.

El modelamiento visual es la clave para realizar el análisis OO. Desde los inicios del desarrollo de software OO han existido diferentes metodologías para hacer esto del modelamiento, pero sin lugar a duda, el Lenguaje de Modelamiento Unificado (UML) puso fin a la guerra de metodologías.

Según los mismos diseñadores del lenguaje UML, éste tiene como fin modelar cualquier tipo de sistemas (no solamente de software) usando los conceptos de la orientación a objetos. Y además, este lenguaje debe ser entendible para los humanos y máquinas.

Actualmente en la industria del desarrollo de software tenemos al UML como un estándar para el modelamiento de sistemas OO. Fue la empresa Racional que creó estas definiciones y especificaciones del estándar UML, y lo abrió al mercado. La misma empresa creó uno de los programas más conocidos hoy en día para este fin; el Racional Rose, pero también existen otros programas como el Poseidón que trae licencias del tipo community edition que permiten su uso libremente.

El UML consta de todos los elementos y diagramas que permiten modelar los sistemas en base al paradigma orientado a objetos. Los modelos orientados a objetos cuando se construyen en forma correcta, son fáciles de comunicar, cambiar, expandir, validar y verificar. Este modelamiento en UML es flexible al cambio y permite crear componentes plenamente reutilizables.

INTRODUCCION AL A/DOO

UML es una notación visual estándar. UML no es A/DOO o un método, es simplemente una notación.

El A/DOO está fuertemente relacionado con la actividad que es un requisito previo del análisis de requisitos, que incluye escribir casos de uso.

El análisis de requisitos y el A/DOO requieren que se presenten en el contexto de algún proceso de desarrollo, para ello utilizaremos el proceso de desarrollo iterativo conocido como Proceso Unificado.

Page 7: Web viewEn este tema veremos a continuación, El análisis y el diseño que definen como solucionar el problema, que programar y que este diseño de forma sea fácil de

La construcción de software conlleva innumerables habilidades y pasos mas alla del análisis de requisitos, el A/DOO y la programación orientada a objetos. Por ejemplo la ingeniería de usabilidad y el diseño de interfaces de usuario son claves para el éxito, de igual modo que el diseño de base de datos.

DESARROLLO ITERATIVO Y EL PROCESO UNIFICADO

El desarrollo iterativo es un enfoque para el desarrollo de software. El proceso unificado es un ejemplo de proceso iterativo para proyectos que utilizan el A/DOO.

Un proceso de desarrollo de software describe un enfoque para la construcción, desarrollo, y posiblemente mantenimiento de software.

El proceso unificado de rational o RUP es un refinamiento detallado del proceso unificado.

La idea más importante del UP: desarrollo iterativo.

El UP fomenta el desarrollo iterativo. En este enfoque, el desarrollo se organiza en una serie de mini-proyectos cortos, de duración fija llamados iteraciones: el resultado de cada uno es un sistema que puede ser probado, integrado y ejecutado. Cada iteración incluye sus propias actividades de análisis de requisitos, diseño, implementación y pruebas.

El ciclo de vida iterativo se basa en la implementación y refinamiento sucesivos del sistema mediante múltiples iteraciones, con retroalimentación cíclica y adaptación como elementos principales que dirigen para converger hacia un sistema adecuado. El sistema crece incrementalmente a lo largo del tiempo, iteración tras iteración, y por ello, este enfoque también se conoce como desarrollo iterativo e incremental.

Beneficios del desarrollo iterativo

La retroalimentación iterativa y la adaptación nos conducen hacia el sistema deseado. La inestabilidad de los requisitos y el diseño disminuyen a lo largo del tiempo.

Page 8: Web viewEn este tema veremos a continuación, El análisis y el diseño que definen como solucionar el problema, que programar y que este diseño de forma sea fácil de

Características del análisis Orientado a Objetos

Las técnicas orientadas a objetos se basan en organizar el software como una colección de objetos discretos que incorporan tanto estructuras de datos como comportamiento. Esto contrasta con la programación convencional, en la que las estructuras de datos y el comportamiento estaban escasamente relacionadas.

Las características principales del enfoque orientado a objetos son:

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.

Clasificación.

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

Polimorfismo.

El polimorfismo permite que una misma operación pueda llevarse a cabo de forma diferente en clases diferentes. La implementación específica de una operación determinada en una clase determinada se denomina método.

Herencia.

El concepto de herencia se refiere a la compartición de atributos y operaciones basada en una relación jerárquica 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 añade sus propiedades particulares.

Ventajas de las Técnicas Orientada a Objetos

Desventajas de las Técnicas Orientada a Objetos

Reutilización

Estabilidad

Comportamiento de objetos

Alta curva de aprendizaje

Costosa

Requiere

Page 9: Web viewEn este tema veremos a continuación, El análisis y el diseño que definen como solucionar el problema, que programar y que este diseño de forma sea fácil de

Construcción de clases más complejas

Confiabilidad

Nuevos mercados de software

Rápido diseño

Mayor calidad de diseño

Integridad

Programación más sencilla

Mantenimiento más sencillo

conocimientos adicionales

No recomendable para proyectos pequeños

Requiere personal especializado

DEFINICION DE LOS CASOS DE USO

El análisis de requisitos podría incluir una descripción de los procesos del dominio relacionados, que podrían representarse como casos de uso.

Definición de casos de uso

Definición del modelo del

dominio

Definición de diagramas de

interacción

Definición de diagrama de

clases de diseño

Page 10: Web viewEn este tema veremos a continuación, El análisis y el diseño que definen como solucionar el problema, que programar y que este diseño de forma sea fácil de

Los casos de uso no son artefactos orientados a objetos, son simplemente historias escritas. Sin embargo, son una herramienta importante del proceso unificado. Por ejemplo, aquí esta una visión breve del caso de uso jugar una partida de datos.

- Jugar una partida de datos: un jugador recoge y lanza los dados. Si el valor de las caras de los dados suman siete, gana; en otro caso, pierde.

DEFINICION DEL MODELO DEL DOMINIO

La finalidad del AOO es crear una descripción del dominio desde la perspectiva de la clasificación de objetos que conlleva una identificación de los conceptos, atributos y asociaciones que se consideran significativas. El resultado se puede expresar en un modelo del dominio, que se ilustra mediante un conjunto de diagramas que muestran los objetos o conceptos del dominio.

Modelo del dominio parcial del juego de dados.

Definición de casos de uso

Definición del modelo del

dominio

Definición de diagramas de

interacción

Definición de diagrama de

clases de diseño

Page 11: Web viewEn este tema veremos a continuación, El análisis y el diseño que definen como solucionar el problema, que programar y que este diseño de forma sea fácil de

Este modelo ilustra los conceptos importantes Jugador, Dado y Juego Dados, con sus asociaciones y atributos. Un modelo del dominio es una visualización de los conceptos en el dominio del mundo real.

DEFINICION DE LOS DIAGRAMAS DE INTERACCION

La finalidad del diseño orientado a objetos es definir los objetos software y sus colaboraciones. El diagrama de interacción muestra el flujo de mensajes entre los objetos software y, por tanto, la invocación de métodos.

Diagrama de interacción que muestra los mensajes entre los objetos software

DEFINICION DE LOS DIAGRAMAS DE CLASE DE DISEÑO

Además de la vista dinámica de las colaboraciones entre los objetos que se muestra mediante los diagramas de interacción, es útil crear una vista estática de las definiciones de las clases mediante un diagrama de clases de diseño.

Definición de casos de uso

Definición del modelo del

dominio

Definición de diagramas de interacción

Definición de diagrama de

clases de diseño

Definición de casos de uso

Definición del modelo del

dominio

Definición de diagramas de

interacción

Definición de diagrama de

clases de diseño

Page 12: Web viewEn este tema veremos a continuación, El análisis y el diseño que definen como solucionar el problema, que programar y que este diseño de forma sea fácil de

Por ejemplo, en el juego de dados, un estudio del diagrama de interacción nos conduce al diagrama de clases de diseño parcial que se muestra en la siguiente figura. Puesto que se envía el mensaje jugar al objeto juego dados, Juego Dados requiere un método jugar, mientras la clase Dado requiere los métodos lanzar y obtener Valor Cara.

METODOLOGÍA DE ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS

El modelo y diseño orientado a objetos u OMT ( técnica de modelado de objetos ) se extiende desde el análisis hasta la implementación pasando por el diseño. Actualmente es una de las metodologías mas implantadas.

Las técnicas orientadas a objetos permiten que el software se construya a partir de objetos de compartimiento específico.

Los propios objetos se pueden constituir a partir de otros, que a su vez pueden estar formados por otros objetos. Esto nos recuerda a una maquina compleja construida por partes, subpartes y sub-subpartes, etc.

La metodología de desarrollo de software orientada a objetos es cada día más usada, pues permite desarrollar software fácilmente extensible y reusable. Esto último es sólo posible si los desarrolladores conocen muy bien los fundamentos que estén basados en esta metodología.

Page 13: Web viewEn este tema veremos a continuación, El análisis y el diseño que definen como solucionar el problema, que programar y que este diseño de forma sea fácil de

CONCLUSION

El análisis y diseño orientado a objetos es frecuentemente visto como un enorme paquete de complejos diagramas que pueden significar poco o nada para los usuarios del sistema. Es frecuentemente visto como un proceso que envuelve una gran cantidad de conceptos abstractos y teóricos modelos que realmente aportan muy poco al proyecto.

No tiene que ser de esta forma. El análisis y diseño orientado a objetos puede ser un enfoque muy pragmático del desarrollo de un sistema. No tienen que ser frases distintas que nunca sean revisadas.

El uso de un enfoque iterativo, ya que este proceso puede ser un aspecto que vive y respira en el desarrollo del sistema. Puede enriquecer nuestra habilidad de encontrar la necesidad de los usuarios y el control de los riesgos asociados con el proyecto. Cuando se usan efectivamente, el enfoque iterativo puede realmente reducir el tiempo requerido para la creación de un proyecto.

Page 14: Web viewEn este tema veremos a continuación, El análisis y el diseño que definen como solucionar el problema, que programar y que este diseño de forma sea fácil de

CITAS BIBLIOGRAFICAS

Booch, G. 1988. Object Oriented Development. Trans. of Soft. Eng. Vol. SE-12. Num. 2. Feb. 1986. pp. 211-221.

Cota A. 1994 "Ingeniería de Software". Soluciones Avanzadas. Julio de 1994. pp. 5-13.

Jacobson, I. et. al. 1992. Object-Oriented Software Engineering; A Use Case Driven Aproach. ACM Press. Adison-Wesley Publishing. Co. U.S.A. 524 p. Ilus. pp. 465-493.

Booch G. 1998. Software Architecture and the UML. Presentación disponible en: http://www.rational.com/uml como arch.zip.

Jacobson, I. 1998. "Applying UML in The Unified Process" Presentación. Rational Software. Presentación disponible en http://www.rational.com/uml como UMLconf.zip

Conallen, J. "Modeling Web Applications with UML" Conallen, Inc. 9-Mar-1999 Disponible:http://www.conallen.com/whitepapers/webapps/ModelingWebApplications.htm

http://www.worldlingo.com/ma/enwiki/es/Object-oriented_analysis_and_design

http://www.jamesbooth.com/newpage12.htm

http://www.angelfire.com/scifi/jzavalar/apuntes/IngSoftware.html

http://es.wikipedia.org/wiki/An%C3%A1lisis_y_dise%C3%B1o_orientado_a_objetos

http://www.portalfox.com/index.php?name=Sections&req=viewarticle&artid=49