antología_anÁlisis y modelado de s.i._ultimo

Upload: hector-rojas

Post on 04-Apr-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    1/48

  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    2/48

    representacin de las aplicaciones, por ejemplo, cuentas de bancos,reservaciones de vuelo, etc.

    b) Los datos globales desaparecen, siendo stos junto con las funciones parteinterna de los objetos. Por lo tanto cualquier cambio en la estructura dealguno de los datos solo deber afectar las funciones definidas en ese

    mismo objeto y no en los dems.

    En general, un programa orientado a objetos, se define exclusivamente entrminos de objetos y sus relaciones.

    Fig. Programacin orientada a objetos

    Los datos y funciones se guardan dentro de los objetos, como se muestra en lafigura.

    Objeto

    Fig. Programacin orientada a objetos: objetos globales que contienen datos y funciones locales

    Hoy en da la tecnologa orientada a objetos ya no se aplica solamente a loslenguajes de programacin, adems se viene aplicando en el anlisis y diseo conmucho xito, al igual que en las bases de datos. Es que para hacer una buenaprogramacin orientada a objetos hay que desarrollar todo el sistema aplicando

    esta tecnologa, de ah la importancia del anlisis y el diseo orientado a objetos.

    La programacin orientada a objetos es una de las formas ms populares deprogramar y viene teniendo gran acogida en el desarrollo de proyectos de softwaredesde los ltimos aos. Esta acogida se debe a sus grandes capacidades yventajas frente a las antiguas formas de programar.

    objeto objeto

    objeto

    Funciones

    Datos

  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    3/48

    Una Perspectiva Histrica

    Tradicionalmente, la programacin fue hecha en una manera secuencial o lineal,es decir una serie de pasos consecutivos con estructuras consecutivas ybifurcaciones.

    Los lenguajes basados en esta forma de programacin ofrecan ventajas alprincipio, pero el problema ocurre cuando los sistemas se vuelven complejos.Estos programas escritos al estilo espaguetti no ofrecen flexibilidad y el manteneruna gran cantidad de lneas de cdigo en slo bloque se vuelve una tarea

    complicada.

    Frente a esta dificultad aparecieron los lenguajes basados en la programacinestructurada. La idea principal de esta forma de programacin es separar laspartes complejas del programa en mdulos o segmentos que sean ejecutadosconforme se requieran. De esta manera tenemos un diseo modular, compuestopor mdulos independientes que puedan comunicarse entre s. Poco a poco esteestilo de programacin fue reemplazando al estilo espaguetti impuesto por laprogramacin lineal.

    Entonces, vemos que la evolucin que se fue dando en la programacin se

    orientaba siempre a ir descomponiendo ms el programa. Este tipo dedescomposicin conduce directamente a la programacin orientada a objetos.

    Pues la creciente tendencia de crear programas cada vez ms grandes ycomplejos llev a los desarrolladores a crear una nueva forma de programar queles permita crear sistemas de niveles empresariales y con reglas de negocios muycomplejas. Para estas necesidades ya no bastaba la programacin estructurada nimucho menos la programacin lineal. Es as como aparece la programacin

  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    4/48

    orientada a objetos (POO). La POO viene de la evolucin de la programacinestructurada; bsicamente la POO simplifica la programacin con la nuevafilosofa y nuevos conceptos que tiene. La POO se basa en la dividir el programaen pequeas unidades lgicas de cdigo. A estas pequeas unidades lgicas decdigo se les llama objetos. Los objetos son unidades independientes que se

    comunican entre ellos mediante mensajes.

    Origen

    Los conceptos de la programacin orientada a objetos tienen origen en Simula 67,un lenguaje diseado para hacer simulaciones, creado por Ole-Johan Dahl yKristen Nygaard del Centro de Cmputo Noruego en Oslo. En este centro, setrabajaba en simulaciones de naves, que fueron confundidas por la explosincombinatoria de cmo las diversas cualidades de diferentes naves podan afectarunas a las otras. La idea surgi al agrupar los diversos tipos de naves en diversasclases de objetos, siendo responsable cada clase de objetos de definir sus propios

    datos y comportamientos. Fueron refinados ms tarde en Smalltalk, desarrolladoen Simula en Xerox PARC (cuya primera versin fue escrita sobre Basic) perodiseado para ser un sistema completamente dinmico en el cual los objetos sepodran crear y modificar "sobre la marcha" (en tiempo de ejecucin) en lugar detener un sistema basado en programas estticos.

    La programacin orientada a objetos se fue convirtiendo en el estilo deprogramacin dominante a mediados de los aos ochenta, en gran parte debido ala influencia de C++, una extensin del lenguaje de programacin C. Sudominacin fue consolidada gracias al auge de las Interfaces grficas de usuario,para las cuales la programacin orientada a objetos est particularmente bienadaptada. En este caso, se habla tambin de Programacin dirigida por eventos.

    Las caractersticas de orientacin a objetos fueron agregadas a muchos lenguajesexistentes durante ese tiempo, incluyendo Ada, BASIC, Lisp, Pascal, entre otros.La adicin de estas caractersticas a los lenguajes que no fueron diseadosinicialmente para ellas condujo a menudo a problemas de compatibilidad y en lacapacidad de mantenimiento del cdigo. Los lenguajes orientados a objetos"puros", por su parte, carecan de las caractersticas de las cuales muchosprogramadores haban venido a depender. Para saltar este obstculo, se hicieronmuchas tentativas para crear nuevos lenguajes basados en mtodos orientados aobjetos, pero permitiendo algunas caractersticas imperativas de maneras"seguras". El Eiffel de Bertrand Meyer fue un temprano y moderadamenteacertado lenguaje con esos objetivos pero ahora ha sido esencialmentereemplazado por Java, en gran parte debido a la aparicin de Internet, y a laimplementacin de la mquina virtual de Java en la mayora de navegadores. PHPen su versin 5 se ha modificado, soporta una orientacin completa a objetos,cumpliendo todas las caractersticas propias de la orientacin a objetos.

  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    5/48

    Cules son las ventajas de un lenguaje orientado a objetos?

    Fomenta la reutilizacin y extensin del cdigo. Permite crear sistemas ms complejos. Relacionar el sistema al mundo real.

    Facilita la creacin de programas visuales. Construccin de prototipos Agiliza el desarrollo de software Facilita el trabajo en equipo Facilita el mantenimiento del software

    Lo interesante de la POO es que proporciona conceptos y herramientas con lascuales se modela y representa el mundo real tan fielmente como sea posible.

    El modelo Orientado a Objetos

    Conceptos bsicos: Objetos, Clases, Herencia, Envo de mensajes (mtodos)

    La programacin orientada a objetos o POO (OOP segn sus siglas en ingls)es un paradigma de programacin que usa objetos y sus interacciones, paradisear aplicaciones y programas informticos. Est basado en varias tcnicas,incluyendo herencia, abstraccin, polimorfismo y encapsulamiento. Su uso sepopulariz a principios de la dcada de los aos 1990. En la actualidad, existevariedad de lenguajes de programacin que soportan la orientacin a objetos.

    Los objetos son entidades que tienen un determinado comportamiento (mtodo) eidentidad.

    El estadoest compuesto de datos, ser uno o varios atributos a los que sehabrn asignado unos valores concretos (datos).

    El comportamiento est definido por los mtodos o mensajes a los quesabe responder dicho objeto, es decir, qu operaciones se pueden realizarcon l.

    La identidad es una propiedad de un objeto que lo diferencia del resto,dicho con otras palabras, es su identificador (concepto anlogo al deidentificador de una variable o una constante).

    Un objeto contiene toda la informacin que permite definirlo e identificarlo frente a

    otros objetos pertenecientes a otras clases e incluso frente a objetos de unamisma clase, al poder tener valores bien diferenciados en sus atributos. A su vez,los objetos disponen de mecanismos de interaccin llamados mtodos, quefavorecen la comunicacin entre ellos. Esta comunicacin favorece a su vez elcambio de estado en los propios objetos. Esta caracterstica lleva a tratarlos comounidades indivisibles, en las que no se separa el estado y el comportamiento.

  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    6/48

    Los mtodos (comportamiento) y atributos (estado) estn estrechamenterelacionados por la propiedad de conjunto. Esta propiedad destaca que una claserequiere de mtodos para poder tratar los atributos con los que cuenta. Elprogramador debe pensar indistintamente en ambos conceptos, sin separar nidarle mayor importancia a alguno de ellos. Hacerlo podra producir el hbito

    errneo de crear clases contenedoras de informacin por un lado y clases conmtodos que manejen a las primeras por el otro. De esta manera se estararealizando una programacin estructurada camuflada en un lenguaje deprogramacin orientado a objetos.

    La POO difiere de la programacin estructurada tradicional, en la que los datos ylos procedimientos estn separados y sin relacin, ya que lo nico que se buscaes el procesamiento de unos datos de entrada para obtener otros de salida. Laprogramacin estructurada anima al programador a pensar sobre todo en trminosde procedimientos o funciones, y en segundo lugar en las estructuras de datosque esos procedimientos manejan. En la programacin estructurada slo seescriben funciones que procesan datos. Los programadores que emplean POO,en cambio, primero definen objetos para luego enviarles mensajes solicitndolesque realicen sus mtodos por s mismos.

    Conceptos fundamentales

    La programacin orientada a objetos es una forma de programar que trata deencontrar una solucin a estos problemas. Introduce nuevos conceptos, quesuperan y amplan conceptos antiguos ya conocidos. Entre ellos destacan lossiguientes:

    Clase: definiciones de las propiedades y comportamiento de un tipo deobjeto concreto. La instanciacin es la lectura de estas definiciones y lacreacin de un objeto a partir de ellas.

    Herencia: (por ejemplo, herencia de la clase C a la clase D) Es la facilidadmediante la cual la clase D hereda en ella cada uno de los atributos yoperaciones de C, como si esos atributos y operaciones hubiesen sidodefinidos por la misma D. Por lo tanto, puede usar los mismos mtodos yvariables pblicas declaradas en C. Los componentes registrados como"privados" (private) tambin se heredan, pero como no pertenecen a laclase, se mantienen escondidos al programador y slo pueden seraccedidos a travs de otros mtodos pblicos. Esto es as para mantenerhegemnico el ideal de OOP.

    Objeto: entidad provista de un conjunto de propiedades o atributos (datos)y de comportamiento o funcionalidad (mtodos) los mismos queconsecuentemente reaccionan a eventos. Se corresponde con los objetosreales del mundo que nos rodea, o a objetos internos del sistema (delprograma). Es una instancia a una clase.

    Mtodo: Algoritmo asociado a un objeto (o a una clase de objetos), cuyaejecucin se desencadena tras la recepcin de un "mensaje". Desde elpunto de vista del comportamiento, es lo que el objeto puede hacer. Un

  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    7/48

    mtodo puede producir un cambio en las propiedades del objeto, o lageneracin de un "evento" con un nuevo mensaje para otro objeto delsistema.

    Evento: Es un suceso en el sistema (tal como una interaccin del usuariocon la mquina, o un mensaje enviado por un objeto). El sistema maneja el

    evento enviando el mensaje adecuado al objeto pertinente. Tambin sepuede definir como evento, a la reaccin que puede desencadenar unobjeto, es decir la accin que genera.

    Mensaje: una comunicacin dirigida a un objeto, que le ordena que ejecuteuno de sus mtodos con ciertos parmetros asociados al evento que logener.

    Propiedad o atributo: contenedor de un tipo de datos asociados a unobjeto (o a una clase de objetos), que hace los datos visibles desde fueradel objeto y esto se define como sus caractersticas predeterminadas, ycuyo valor puede ser alterado por la ejecucin de algn mtodo.

    Estado interno: es una variable que se declara privada, que puede sernicamente accedida y alterada por un mtodo del objeto, y que se utilizapara indicar distintas situaciones posibles para el objeto (o clase deobjetos). No es visible al programador que maneja una instancia de laclase.

    Componentes de un objeto: atributos, identidad, relaciones y mtodos. Identificacin de un objeto: un objeto se representa por medio de una

    tabla o entidad que est compuesta por sus atributos y funcionescorrespondientes.

    En comparacin con un lenguaje imperativo, una "variable", no es ms que uncontenedor interno del atributo del objeto o de un estado interno, as como la"funcin" es un procedimiento interno del mtodo del objeto.

    Caractersticas de la POO

    Existe un acuerdo acerca de qu caractersticas contempla la "orientacin aobjetos", las caractersticas siguientes son las ms importantes:

    Abstraccin: denota las caractersticas esenciales de un objeto, donde secapturan sus comportamientos. Cada objeto en el sistema sirve comomodelo de un "agente" abstracto que puede realizar trabajo, informar ycambiar su estado, y "comunicarse" con otros objetos en el sistema sinrevelar cmo se implementan estas caractersticas. Los procesos, lasfunciones o los mtodos pueden tambin ser abstrados y cuando lo estn,una variedad de tcnicas son requeridas para ampliar una abstraccin. Elproceso de abstraccin permite seleccionar las caractersticas relevantesdentro de un conjunto e identificar comportamientos comunes para definirnuevos tipos de entidades en el mundo real. La abstraccin es clave en elproceso de anlisis y diseo orientado a objetos, ya que mediante ellapodemos llegar a armar un conjunto de clases que permitan modelar larealidad o el problema que se quiere atacar.

  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    8/48

    Encapsulamiento: Significa reunir a todos los elementos que puedenconsiderarse pertenecientes a una misma entidad, al mismo nivel deabstraccin. Esto permite aumentar la cohesin de los componentes delsistema. Algunos autores confunden este concepto con el principio deocultacin, principalmente porque se suelen emplear conjuntamente.

    Modularidad: Se denomina Modularidad a la propiedad que permitesubdividir una aplicacin en partes ms pequeas (llamadas mdulos),cada una de las cuales debe ser tan independiente como sea posible de laaplicacin en s y de las restantes partes. Estos mdulos se puedencompilar por separado, pero tienen conexiones con otros mdulos. Al igualque la encapsulacin, los lenguajes soportan la Modularidad de diversasformas.

    Principio de ocultacin: Cada objeto est aislado del exterior, es unmdulo natural, y cada tipo de objeto expone una interfaza otros objetos

    que especifica cmo pueden interactuar con los objetos de la clase. Elaislamiento protege a las propiedades de un objeto contra su modificacinpor quien no tenga derecho a acceder a ellas, solamente los propiosmtodos internos del objeto pueden acceder a su estado. Esto asegura queotros objetos no pueden cambiar el estado interno de un objeto de manerasinesperadas, eliminando efectos secundarios e interacciones inesperadas.

    Algunos lenguajes relajan esto, permitiendo un acceso directo a los datosinternos del objeto de una manera controlada y limitando el grado deabstraccin. La aplicacin entera se reduce a un agregado o rompecabezasde objetos.

    Polimorfismo: comportamientos diferentes, asociados a objetos distintos,pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizarel comportamiento correspondiente al objeto que se est usando. O dichode otro modo, las referencias y las colecciones de objetos pueden contenerobjetos de diferentes tipos, y la invocacin de un comportamiento en unareferencia producir el comportamiento correcto para el tipo real del objetoreferenciado. Cuando esto ocurre en "tiempo de ejecucin", esta ltimacaracterstica se llama asignacin tarda o asignacin dinmica. Algunoslenguajes proporcionan medios ms estticos (en "tiempo de compilacin")de polimorfismo, tales como las plantillas y la sobrecarga de operadores deC++.

    Herencia: las clases no estn aisladas, sino que se relacionan entre s,formando una jerarqua de clasificacin. Los objetos heredan laspropiedades y el comportamiento de todas las clases a las que pertenecen.La herencia organiza y facilita el polimorfismo y el encapsulamientopermitiendo a los objetos ser definidos y creados como tipos especializadosde objetos preexistentes. Estos pueden compartir (y extender) sucomportamiento sin tener que volver a implementarlo. Esto suele hacersehabitualmente agrupando los objetos en clases y estas en rboles oenrejados que reflejan un comportamiento comn. Cuando un objetohereda de ms de una clase se dice que hay herencia mltiple.

  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    9/48

    Recoleccin de basura: la recoleccin de basura o garbage collectores latcnica por la cual el entorno de objetos se encarga de destruirautomticamente, y por tanto desvincular la memoria asociada, los objetosque hayan quedado sin ninguna referencia a ellos. Esto significa que elprogramador no debe preocuparse por la asignacin o liberacin de

    memoria, ya que el entorno la asignar al crear un nuevo objeto y la liberarcuando nadie lo est usando. En la mayora de los lenguajes hbridos quese extendieron para soportar el Paradigma de Programacin Orientada aObjetos como C++ u Object Pascal, esta caracterstica no existe y lamemoria debe desasignarse manualmente.

    Repasando, la programacin orientada a objetos es un paradigma que utilizaobjetos como elementos fundamentales en la construccin de la solucin. Surgeen los aos 70. Un objeto es una abstraccin de algn hecho o ente del mundoreal que tiene atributos que representan sus caractersticas o propiedades ymtodos que representan su comportamiento o acciones que realizan. Todas laspropiedades y mtodos comunes a los objetos se encapsulan o se agrupan enclases. Una clase es una plantilla o un prototipo para crear objetos, por eso sedice que los objetos son instancias de clases.

    Lenguajes orientados a objetos

    Simula (1967) es aceptado como el primer lenguaje que posee las caractersticasprincipales de un lenguaje orientado a objetos. Fue creado para hacer programasde simulacin, en donde los "objetos" son la representacin de la informacin msimportante. Smalltalk (1972 a 1980) es posiblemente el ejemplo cannico, y con elque gran parte de la teora de la programacin orientada a objetos se hadesarrollado.

    Entre los lenguajes orientados a objetos se destacan los siguientes:

    ABAP ABL Lenguaje de programacin de OpenEdge de Progress Software ActionScript ActionScript 3 Ada C++ C# Clarion Clipper (lenguaje de programacin) (Versin 5.x con librera de objetos

    Class(y)) D Object Pascal(Embarcadero Delphi) Gambas Harbour Eiffel Java

    http://es.wikipedia.org/wiki/ABAPhttp://es.wikipedia.org/wiki/ABAPhttp://es.wikipedia.org/wiki/ActionScripthttp://es.wikipedia.org/wiki/ActionScripthttp://es.wikipedia.org/wiki/ActionScript_3http://es.wikipedia.org/wiki/ActionScript_3http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Adahttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Adahttp://es.wikipedia.org/wiki/C%2B%2Bhttp://es.wikipedia.org/wiki/C%2B%2Bhttp://es.wikipedia.org/wiki/C_Sharphttp://es.wikipedia.org/wiki/C_Sharphttp://es.wikipedia.org/wiki/Clarion_%28lenguaje_de_programaci%C3%B3n%29http://es.wikipedia.org/wiki/Clarion_%28lenguaje_de_programaci%C3%B3n%29http://es.wikipedia.org/wiki/Clipper_%28lenguaje_de_programaci%C3%B3n%29http://es.wikipedia.org/wiki/Clipper_%28lenguaje_de_programaci%C3%B3n%29http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Dhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Dhttp://es.wikipedia.org/wiki/Object_Pascalhttp://es.wikipedia.org/wiki/Object_Pascalhttp://es.wikipedia.org/wiki/Embarcadero_Delphihttp://es.wikipedia.org/wiki/Embarcadero_Delphihttp://es.wikipedia.org/wiki/Embarcadero_Delphihttp://es.wikipedia.org/wiki/Gambashttp://es.wikipedia.org/wiki/Gambashttp://es.wikipedia.org/w/index.php?title=Harbour&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Harbour&action=edit&redlink=1http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Eiffelhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Eiffelhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Javahttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Javahttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Javahttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Eiffelhttp://es.wikipedia.org/w/index.php?title=Harbour&action=edit&redlink=1http://es.wikipedia.org/wiki/Gambashttp://es.wikipedia.org/wiki/Embarcadero_Delphihttp://es.wikipedia.org/wiki/Object_Pascalhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Dhttp://es.wikipedia.org/wiki/Clipper_%28lenguaje_de_programaci%C3%B3n%29http://es.wikipedia.org/wiki/Clarion_%28lenguaje_de_programaci%C3%B3n%29http://es.wikipedia.org/wiki/C_Sharphttp://es.wikipedia.org/wiki/C%2B%2Bhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Adahttp://es.wikipedia.org/wiki/ActionScript_3http://es.wikipedia.org/wiki/ActionScripthttp://es.wikipedia.org/wiki/ABAP
  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    10/48

    JavaScript(la herencia se realiza por medio de laprogramacin basada enprototipos)

    Lexico(en castellano) Objective-C Ocaml

    Oz R Perl (soporta herencia mltiple. La resolucin se realiza enpreorden, pero

    puede modificarse al algoritmo linearization C3 por medio del mduloClass::C3enCPAN)

    PHP(a partir de su versin 5) PowerBuilder Python Ruby Smalltalk(Entorno de objetos puro) Magik(SmallWorld) Vala VB.NET Visual FoxPro(en su versin 6) Visual Basic 6.0 Visual Objects XBase++ Lenguaje DRP Lenguaje de programacin Scala (lenguaje usado por Twitter)

    http://www.scala-lang.org/page.jsp

    Muchos de estos lenguajes de programacin no son puramente orientados aobjetos, sino que son hbridos que combinan la POO con otros paradigmas.

    Al igual que C++ otros lenguajes, como OOCOBOL, OOLISP, OOPROLOG yObject REXX, han sido creados aadiendo extensiones orientadas a objetos a unlenguaje de programacin clsico.

    Un nuevo paso en la abstraccin de paradigmas de programacin es laProgramacin Orientada a Aspectos (POA). Aunque es todava una metodologaen estado de maduracin, cada vez atrae a ms investigadores e inclusoproyectos comerciales en todo el mundo.

    Estructura de un objeto

    Un objeto puede considerarse como una especie de cpsula dividida en trespartes: relaciones, propiedades, mtodos. Cada uno de estos componentesdesempea un papel totalmente independiente:

    Las relaciones permiten que el objeto se inserte en la organizacin y estnformadas esencialmente por punteros a otros objetos.

    http://es.wikipedia.org/wiki/JavaScripthttp://es.wikipedia.org/wiki/JavaScripthttp://es.wikipedia.org/wiki/Programaci%C3%B3n_basada_en_prototiposhttp://es.wikipedia.org/wiki/Programaci%C3%B3n_basada_en_prototiposhttp://es.wikipedia.org/wiki/Programaci%C3%B3n_basada_en_prototiposhttp://es.wikipedia.org/wiki/Programaci%C3%B3n_basada_en_prototiposhttp://es.wikipedia.org/wiki/Lexicohttp://es.wikipedia.org/wiki/Lexicohttp://es.wikipedia.org/wiki/Objective-Chttp://es.wikipedia.org/wiki/Objective-Chttp://es.wikipedia.org/wiki/Ocamlhttp://es.wikipedia.org/wiki/Ocamlhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Ozhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Ozhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Rhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Rhttp://es.wikipedia.org/wiki/Perlhttp://es.wikipedia.org/wiki/Perlhttp://es.wikipedia.org/wiki/%C3%81rbol_%28estructura_de_datos%29http://es.wikipedia.org/wiki/%C3%81rbol_%28estructura_de_datos%29http://es.wikipedia.org/wiki/%C3%81rbol_%28estructura_de_datos%29http://es.wikipedia.org/w/index.php?title=Linearization_C3&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Linearization_C3&action=edit&redlink=1http://search.cpan.org/perldoc?Class::C3http://search.cpan.org/perldoc?Class::C3http://es.wikipedia.org/wiki/CPANhttp://es.wikipedia.org/wiki/CPANhttp://es.wikipedia.org/wiki/CPANhttp://es.wikipedia.org/wiki/PHPhttp://es.wikipedia.org/wiki/PHPhttp://es.wikipedia.org/wiki/PowerBuilderhttp://es.wikipedia.org/wiki/PowerBuilderhttp://es.wikipedia.org/wiki/Pythonhttp://es.wikipedia.org/wiki/Pythonhttp://es.wikipedia.org/wiki/Rubyhttp://es.wikipedia.org/wiki/Rubyhttp://es.wikipedia.org/wiki/Smalltalkhttp://es.wikipedia.org/wiki/Smalltalkhttp://es.wikipedia.org/w/index.php?title=Magik&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Magik&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=SmallWorld&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=SmallWorld&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=SmallWorld&action=edit&redlink=1http://es.wikipedia.org/wiki/Vala_%28lenguaje_de_programaci%C3%B3n%29http://es.wikipedia.org/wiki/Vala_%28lenguaje_de_programaci%C3%B3n%29http://es.wikipedia.org/wiki/VB.NEThttp://es.wikipedia.org/wiki/VB.NEThttp://es.wikipedia.org/wiki/Visual_FoxProhttp://es.wikipedia.org/wiki/Visual_FoxProhttp://es.wikipedia.org/w/index.php?title=Visual_Basic_6.0&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Visual_Basic_6.0&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Visual_Objects&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Visual_Objects&action=edit&redlink=1http://es.wikipedia.org/wiki/XBase%2B%2Bhttp://es.wikipedia.org/wiki/XBase%2B%2Bhttp://es.wikipedia.org/w/index.php?title=Lenguaje_DRP&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Lenguaje_DRP&action=edit&redlink=1http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Scalahttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Scalahttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3nhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3nhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3nhttp://es.wikipedia.org/wiki/Twitterhttp://es.wikipedia.org/wiki/Twitterhttp://www.scala-lang.org/page.jsphttp://www.scala-lang.org/page.jsphttp://es.wikipedia.org/w/index.php?title=OOCOBOL&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=OOCOBOL&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=OOLISP&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=OOLISP&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=OOPROLOG&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=OOPROLOG&action=edit&redlink=1http://es.wikipedia.org/wiki/Object_REXXhttp://es.wikipedia.org/wiki/Object_REXXhttp://es.wikipedia.org/wiki/Programaci%C3%B3n_Orientada_a_Aspectoshttp://es.wikipedia.org/wiki/Programaci%C3%B3n_Orientada_a_Aspectoshttp://es.wikipedia.org/wiki/Programaci%C3%B3n_Orientada_a_Aspectoshttp://es.wikipedia.org/wiki/Object_REXXhttp://es.wikipedia.org/w/index.php?title=OOPROLOG&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=OOLISP&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=OOCOBOL&action=edit&redlink=1http://www.scala-lang.org/page.jsphttp://es.wikipedia.org/wiki/Twitterhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3nhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Scalahttp://es.wikipedia.org/w/index.php?title=Lenguaje_DRP&action=edit&redlink=1http://es.wikipedia.org/wiki/XBase%2B%2Bhttp://es.wikipedia.org/w/index.php?title=Visual_Objects&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Visual_Basic_6.0&action=edit&redlink=1http://es.wikipedia.org/wiki/Visual_FoxProhttp://es.wikipedia.org/wiki/VB.NEThttp://es.wikipedia.org/wiki/Vala_%28lenguaje_de_programaci%C3%B3n%29http://es.wikipedia.org/w/index.php?title=SmallWorld&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Magik&action=edit&redlink=1http://es.wikipedia.org/wiki/Smalltalkhttp://es.wikipedia.org/wiki/Rubyhttp://es.wikipedia.org/wiki/Pythonhttp://es.wikipedia.org/wiki/PowerBuilderhttp://es.wikipedia.org/wiki/PHPhttp://es.wikipedia.org/wiki/CPANhttp://search.cpan.org/perldoc?Class::C3http://es.wikipedia.org/w/index.php?title=Linearization_C3&action=edit&redlink=1http://es.wikipedia.org/wiki/%C3%81rbol_%28estructura_de_datos%29http://es.wikipedia.org/wiki/Perlhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Rhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Ozhttp://es.wikipedia.org/wiki/Ocamlhttp://es.wikipedia.org/wiki/Objective-Chttp://es.wikipedia.org/wiki/Lexicohttp://es.wikipedia.org/wiki/Programaci%C3%B3n_basada_en_prototiposhttp://es.wikipedia.org/wiki/Programaci%C3%B3n_basada_en_prototiposhttp://es.wikipedia.org/wiki/JavaScript
  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    11/48

    Las propiedades distinguen un objeto determinado de los restantes queforman parte de la misma organizacin y tienevaloresque dependen de lapropiedad de que se trate. Las propiedades de un objeto pueden serheredadas a sus descendientes en la organizacin.

    Los mtodos son las operacionesque pueden realizarse sobre el objeto,

    que normalmente estarn incorporados en forma de programas (cdigo)que el objeto es capaz de ejecutar y que tambin pone a disposicin de susdescendientes a travs de la herencia.

    Encapsulamiento y ocultacin

    Como hemos visto, cada objeto es una estructura compleja en cuyo interior haydatos y programas, todos ellos relacionados entre s, como si estuvieranencerrados conjuntamente en una cpsula. Esta propiedad (encapsulamiento),es una de las caractersticas fundamentales en la OOP.

    Los objetos son inaccesibles, e impiden que otros objetos, los usuarios, o inclusolos programadores conozcan cmo est distribuida la informacin o quinformacin hay disponible. Esta propiedad de los objetos se denomina ocultacinde la informacin. Esto no quiere decir, sin embargo, que sea imposible conocer lonecesario respecto a un objeto y a lo que contiene. Si as fuera no se podra hacergran cosa con l. Lo que sucede es que las peticiones de informacin a un objeto.Deben realizarse a travs de mensajes dirigidos a l, con la orden de realizar laoperacin pertinente. La respuesta a estas rdenes ser la informacin requerida,siempre que el objeto considere que quien enva el mensaje est autorizado paraobtenerla.

    El hecho de que cada objeto sea una cpsula facilita enormemente que un objetodeterminado pueda ser transportado a otro punto de la organizacin, o incluso aotra organizacin totalmente diferente que precise de l. Si el objeto ha sido bienconstruido, susmtodosseguirn funcionando en el nuevo entorno sin problemas.Esta cualidad hace que la OOP sea muy apta para la reutilizacin de programas.

    Organizacin de los objetos

    En principio, los objetos forman siempre una organizacin jerrquica, en el sentidode que ciertos objetos son superiores a otros de cierto modo.

    Existen varios tipos de jerarquas: sern simples cuando su estructura pueda serrepresentada por medio de un "rbol". En otros casos puede ser ms compleja.

    En cualquier caso, sea la estructura simple o compleja, podrn distinguirse en ellatres niveles de objetos.

    -Laraz de la jerarqua. Se trata de un objeto nico y especial. Este se caracterizapor estar en el nivel ms alto de la estructura y suele recibir un nombre muy

    http://www.monografias.com/trabajos14/nuevmicro/nuevmicro.shtmlhttp://www.monografias.com/trabajos14/nuevmicro/nuevmicro.shtmlhttp://www.monografias.com/trabajos14/nuevmicro/nuevmicro.shtmlhttp://www.monografias.com/trabajos16/romano-limitaciones/romano-limitaciones.shtmlhttp://www.monografias.com/trabajos16/romano-limitaciones/romano-limitaciones.shtmlhttp://www.monografias.com/trabajos6/diop/diop.shtmlhttp://www.monografias.com/trabajos6/diop/diop.shtmlhttp://www.monografias.com/trabajos7/sisinf/sisinf.shtmlhttp://www.monografias.com/trabajos7/sisinf/sisinf.shtmlhttp://www.monografias.com/trabajos11/metods/metods.shtmlhttp://www.monografias.com/trabajos11/metods/metods.shtmlhttp://www.monografias.com/trabajos11/metods/metods.shtmlhttp://www.monografias.com/trabajos11/metods/metods.shtmlhttp://www.monografias.com/trabajos7/sisinf/sisinf.shtmlhttp://www.monografias.com/trabajos6/diop/diop.shtmlhttp://www.monografias.com/trabajos16/romano-limitaciones/romano-limitaciones.shtmlhttp://www.monografias.com/trabajos14/nuevmicro/nuevmicro.shtml
  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    12/48

    genrico, que indica su categora especial, como por ejemplo objeto madre, Raz oEntidad.

    -Los objetos intermedios. Son aquellos que descienden directamente de la raz yque a su vez tienen descendientes. Representan conjuntoso clases de objetos,

    que pueden ser muy generales o muy especializados, segn la aplicacin.Normalmente reciben nombres genricos que denotan al conjunto de objetos querepresentan, por ejemplo, VENTANA, CUENTA, FICHERO. En un conjuntoreciben el nombre de clases o tipos si descienden de otraclaseo subclase.

    -Los objetos terminales. Son todos aquellos que descienden de una clase osubclase y no tienen descendientes. Suelen llamarse casos particulares,instancias o tems porque representan los elementos del conjunto representadopor la clase o subclase a la que pertenecen.

    Veamos ahora en detalle los tres elementos mencionados en "Estructura de un

    Objeto".

    1. Relaciones. Las relaciones entre objetos son, precisamente, los enlaces quepermiten a un objeto relacionarse con aquellos que forman parte de la mismaorganizacin.

    Las hay de dos tipos fundamentales:

    -Relaciones jerrquicas. Son esenciales para la existencia misma de la aplicacinporque la construyen. Son bidireccionales, es decir, un objeto es padre de otrocuando el primer objeto se encuentra situado inmediatamente encima del segundoen la organizacin en la que ambos forman parte; asimismo, si un objeto es padrede otro, el segundo es hijo del primero (en la fig. 2, B es padre de D,E y F, esdecir, D,E y F son hijos de B; en la fig. 3, los objetos B y C son padres de F, que asu vez es hijo de ambos). Una organizacin jerrquica simple puede definirsecomo aquella en la que un objeto puede tener un solo padre, mientras que en unaorganizacin jerrquica compleja un hijo puede tener varios padres).

    -Relaciones semnticas. Se refieren a las relaciones que no tienen nada que vercon la organizacin de la que forman parte los objetos que las establecen. Suspropiedades y consecuencia solo dependen de los objetos en s mismos (de susignificado) y no de su posicin en la organizacin. Se puede ver mejor con unejemplo: supongamos que vamos a construir un diccionario informatizado quepermita al usuario obtener la definicin de una palabra cualquiera. Supongamosque, en dicho diccionario, las palabras son objetos y que la organizacin jerrquicaes la que proviene de forma natural de la estructura de nuestros conocimientossobre el mundo. La raz del diccionario podra llamarse TEMAS. De ste trminogenrico descendern tres grandes ramas de objetos llamadas VIDA, MUNDO yHOMBRE. El primero (vida) comprender las ciencias biolgicas: Biologa yMedicina. El segundo (mundo), las ciencias de la naturaleza inerte: las

    http://www.monografias.com/trabajos10/historix/historix.shtmlhttp://www.monografias.com/trabajos10/historix/historix.shtmlhttp://www.monografias.com/trabajos901/debate-multicultural-etnia-clase-nacion/debate-multicultural-etnia-clase-nacion.shtmlhttp://www.monografias.com/trabajos901/debate-multicultural-etnia-clase-nacion/debate-multicultural-etnia-clase-nacion.shtmlhttp://www.monografias.com/trabajos901/debate-multicultural-etnia-clase-nacion/debate-multicultural-etnia-clase-nacion.shtmlhttp://www.monografias.com/trabajos6/napro/napro.shtmlhttp://www.monografias.com/trabajos6/napro/napro.shtmlhttp://www.monografias.com/trabajos12/diccienc/diccienc.shtmlhttp://www.monografias.com/trabajos12/diccienc/diccienc.shtmlhttp://www.monografias.com/trabajos15/fundamento-ontologico/fundamento-ontologico.shtmlhttp://www.monografias.com/trabajos15/fundamento-ontologico/fundamento-ontologico.shtmlhttp://www.monografias.com/trabajos11/concient/concient.shtmlhttp://www.monografias.com/trabajos11/concient/concient.shtmlhttp://www.monografias.com/Biologia/index.shtmlhttp://www.monografias.com/Biologia/index.shtmlhttp://www.monografias.com/trabajos29/especialistas-medicos/especialistas-medicos.shtmlhttp://www.monografias.com/trabajos29/especialistas-medicos/especialistas-medicos.shtmlhttp://www.monografias.com/trabajos36/naturaleza/naturaleza.shtmlhttp://www.monografias.com/trabajos36/naturaleza/naturaleza.shtmlhttp://www.monografias.com/trabajos36/naturaleza/naturaleza.shtmlhttp://www.monografias.com/trabajos29/especialistas-medicos/especialistas-medicos.shtmlhttp://www.monografias.com/Biologia/index.shtmlhttp://www.monografias.com/trabajos11/concient/concient.shtmlhttp://www.monografias.com/trabajos15/fundamento-ontologico/fundamento-ontologico.shtmlhttp://www.monografias.com/trabajos12/diccienc/diccienc.shtmlhttp://www.monografias.com/trabajos6/napro/napro.shtmlhttp://www.monografias.com/trabajos901/debate-multicultural-etnia-clase-nacion/debate-multicultural-etnia-clase-nacion.shtmlhttp://www.monografias.com/trabajos10/historix/historix.shtml
  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    13/48

    Matemticas, laFsica, laQumicay laGeologa. El tercero (hombre) comprenderlas ciencias humanas: laGeografa, laHistoria, etc.

    Como ejemplo: estableceremos la relacin trabajoentre los objetos NEWTON yOPTICA y la interpretaremos diciendo que significa que Newton trabajenptica

    (vase la fig. 4). La relacin es, evidentemente, semntica, pues no estableceninguna connotacin jerrquica entre NEWTON y OPTICA y su interpretacindepende exclusivamente del significado de ambos objetos.

    La existencia de esta relacin nos permitir responder a preguntas como: Quintrabajen ptica?, En qu trabajNewton?, Quien trabajen Fsica?

    Las dos primeras se deducen inmediatamente de la existencia de la relacintrabajo. Para la tercera observamos que si Newton trabaj en pticaautomticamente sabemos que trabaj en Fsica, por ser ptica una rama de laFsica (en nuestro diccionario, el objeto OPTICA es hijo del objeto FISICA).

    Entonces gracias a la OOP podemos responder a la tercera pregunta sinnecesidad de establecer una relacin entre NEWTON y FISICA, apoyndonos sloen la relacin definida entre NEWTON y OPTICA y en que OPTICA es hijo deFISICA. De este modo se elimina toda redundancia innecesaria y la cantidad deinformacin que tendremos que definir para todo el diccionario ser mnima.

    2. Propiedades. Todo objeto puede tener cierto nmero de propiedades, cada unade las cuales tendr, a su vez, uno o varios valores. En OOP, las propiedadescorresponden a las clsicas "variables" de la programacin estructurada. Son, porlo tanto, datos encapsulados dentro del objeto, junto con los mtodos (programas)y las relaciones (punteros a otros objetos). Las propiedades de un objeto puedentener un valor nico o pueden contener un conjunto de valores ms o menosestructurados (matrices,vectores, listas, etc.). Adems,los valorespueden ser decualquier tipo (numrico, alfabtico, etc.) si elsistemade programacin lo permite.Pero existe una diferencia con las "variables", y es que las propiedades se puedenheredar de unos objetos a otros. En consecuencia, un objeto puede tener unapropiedad de maneras diferentes:

    -Propiedades propias. Estn formadas dentro de la cpsula del objeto.

    -Propiedades heredadas. Estn definidas en un objeto diferente, antepasado deste (padre, "abuelo", etc.). A veces estas propiedades se llaman propiedadesmiembro porque el objeto las posee por el mero hecho de ser miembro de unaclase.

    3. Mtodos. Una operacin que realiza acceso a los datos. Podemos definirmtodo como un programa procedimental o procedural escrito en cualquierlenguaje, que est asociado a un objeto determinado y cuya ejecucin slo puededesencadenarse a travs de un mensaje recibido por ste o por susdescendientes.

    http://www.monografias.com/Matematicas/index.shtmlhttp://www.monografias.com/Matematicas/index.shtmlhttp://www.monografias.com/Fisica/index.shtmlhttp://www.monografias.com/Fisica/index.shtmlhttp://www.monografias.com/Fisica/index.shtmlhttp://www.monografias.com/Quimica/index.shtmlhttp://www.monografias.com/Quimica/index.shtmlhttp://www.monografias.com/Quimica/index.shtmlhttp://www.monografias.com/trabajos/geologia/geologia.shtmlhttp://www.monografias.com/trabajos/geologia/geologia.shtmlhttp://www.monografias.com/trabajos/geologia/geologia.shtmlhttp://www.monografias.com/Geografia/index.shtmlhttp://www.monografias.com/Geografia/index.shtmlhttp://www.monografias.com/Geografia/index.shtmlhttp://www.monografias.com/Historia/index.shtmlhttp://www.monografias.com/Historia/index.shtmlhttp://www.monografias.com/Historia/index.shtmlhttp://www.monografias.com/trabajos14/sirisaac/sirisaac.shtmlhttp://www.monografias.com/trabajos14/sirisaac/sirisaac.shtmlhttp://www.monografias.com/trabajos14/opticatp/opticatp.shtmlhttp://www.monografias.com/trabajos14/opticatp/opticatp.shtmlhttp://www.monografias.com/trabajos14/opticatp/opticatp.shtmlhttp://www.monografias.com/trabajos29/semantica-conectores-aplicaciones-obras-literarias/semantica-conectores-aplicaciones-obras-literarias.shtmlhttp://www.monografias.com/trabajos29/semantica-conectores-aplicaciones-obras-literarias/semantica-conectores-aplicaciones-obras-literarias.shtmlhttp://www.monografias.com/trabajos37/interpretacion/interpretacion.shtmlhttp://www.monografias.com/trabajos37/interpretacion/interpretacion.shtmlhttp://www.monografias.com/trabajos12/guiainf/guiainf.shtml#HIPOTEShttp://www.monografias.com/trabajos12/guiainf/guiainf.shtml#HIPOTEShttp://www.monografias.com/trabajos12/guiainf/guiainf.shtml#HIPOTEShttp://www.monografias.com/trabajos14/nuevmicro/nuevmicro.shtmlhttp://www.monografias.com/trabajos14/nuevmicro/nuevmicro.shtmlhttp://www.monografias.com/trabajos14/matriz-control/matriz-control.shtmlhttp://www.monografias.com/trabajos14/matriz-control/matriz-control.shtmlhttp://www.monografias.com/trabajos14/matriz-control/matriz-control.shtmlhttp://www.monografias.com/trabajos35/vectores/vectores.shtmlhttp://www.monografias.com/trabajos35/vectores/vectores.shtmlhttp://www.monografias.com/trabajos35/vectores/vectores.shtmlhttp://www.monografias.com/trabajos14/nuevmicro/nuevmicro.shtmlhttp://www.monografias.com/trabajos14/nuevmicro/nuevmicro.shtmlhttp://www.monografias.com/trabajos14/nuevmicro/nuevmicro.shtmlhttp://www.monografias.com/trabajos11/teosis/teosis.shtmlhttp://www.monografias.com/trabajos11/teosis/teosis.shtmlhttp://www.monografias.com/trabajos11/teosis/teosis.shtmlhttp://www.monografias.com/trabajos11/metods/metods.shtmlhttp://www.monografias.com/trabajos11/metods/metods.shtmlhttp://www.monografias.com/Computacion/Programacion/http://www.monografias.com/Computacion/Programacion/http://www.monografias.com/Computacion/Programacion/http://www.monografias.com/trabajos11/metods/metods.shtmlhttp://www.monografias.com/trabajos11/teosis/teosis.shtmlhttp://www.monografias.com/trabajos14/nuevmicro/nuevmicro.shtmlhttp://www.monografias.com/trabajos35/vectores/vectores.shtmlhttp://www.monografias.com/trabajos14/matriz-control/matriz-control.shtmlhttp://www.monografias.com/trabajos14/nuevmicro/nuevmicro.shtmlhttp://www.monografias.com/trabajos12/guiainf/guiainf.shtml#HIPOTEShttp://www.monografias.com/trabajos37/interpretacion/interpretacion.shtmlhttp://www.monografias.com/trabajos29/semantica-conectores-aplicaciones-obras-literarias/semantica-conectores-aplicaciones-obras-literarias.shtmlhttp://www.monografias.com/trabajos14/opticatp/opticatp.shtmlhttp://www.monografias.com/trabajos14/sirisaac/sirisaac.shtmlhttp://www.monografias.com/Historia/index.shtmlhttp://www.monografias.com/Geografia/index.shtmlhttp://www.monografias.com/trabajos/geologia/geologia.shtmlhttp://www.monografias.com/Quimica/index.shtmlhttp://www.monografias.com/Fisica/index.shtmlhttp://www.monografias.com/Matematicas/index.shtml
  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    14/48

    Son sinnimos de 'mtodo' todos aquellos trminos que se han aplicadotradicionalmente a los programas, como procedimiento, funcin, rutina, etc. Sinembargo, es conveniente utilizar el trmino 'mtodo' para que se distinganclaramente las propiedades especiales que adquiere un programa en el entornoOOP, que afectan fundamentalmente a la forma de invocarlo (nicamente a travs

    de un mensaje) y a su campo de accin, limitado a un objeto y a susdescendientes, aunque posiblemente no a todos.

    Si los mtodos son programas, se deduce que podran tener argumentos, oparmetros. Puesto que los mtodos pueden heredarse de unos objetos a otros,un objeto puede disponer de un mtodo de dos maneras diferentes:

    -Mtodos propios. Estn incluidos dentro de la cpsula del objeto.

    -Mtodos heredados. Estn definidos en un objeto diferente, antepasado de ste(padre, "abuelo", etc.). A veces estos mtodos se llaman mtodos miembro

    porque el objeto los posee por el mero hecho de ser miembro de una clase.

    Polimorfsmo

    Una de las caractersticas fundamentales de la OOP es el polimorfsmo, que no esotra cosa que la posibilidad de construir varios mtodos con el mismo nombre,pero con relacin a la clase a la que pertenece cada uno, con comportamientosdiferentes. Esto conlleva la habilidad de enviar un mismo mensaje a objetos declases diferentes. Estos objetos recibiran el mismo mensaje global peroresponderan a l de formas diferentes; por ejemplo, un mensaje "+" a un objetoENTERO significara suma, mientras que para un objeto STRING significaraconcatenacin ("pegar" strings uno seguido al otro)

    Beneficios que se obtienen del desarrollo con OOP

    Da a da los costos del Hardware decrecen. As surgen nuevas reas deaplicacin cotidianamente: procesamiento de imgenesysonido,bases de datosmultimediales, automatizacin de oficinas, ambientes de ingeniera de software,etc. An en las aplicaciones tradicionales encontramos que definir interfaceshombre-mquina "a-la-Windows" suele ser bastante conveniente.

    Lamentablemente, los costos de produccin de software siguen aumentando; elmantenimiento y la modificacin de sistemas complejos suele ser una tareatrabajosa; cada aplicacin, (aunque tenga aspectos similares a otra) sueleencararse como unproyectonuevo, etc.

    Todos estos problemas an no han sido solucionados en forma completa. Perocomo los objetos son portables (tericamente) mientras que la herencia permite lareusabilidad del cdigo orientado a objetos, es ms sencillo modificar cdigoexistente porque los objetos no interaccionan excepto a travs de mensajes; en

    http://www.monografias.com/trabajos13/mapro/mapro.shtmlhttp://www.monografias.com/trabajos13/mapro/mapro.shtmlhttp://www.monografias.com/trabajos7/mafu/mafu.shtmlhttp://www.monografias.com/trabajos7/mafu/mafu.shtmlhttp://www.monografias.com/trabajos35/categoria-accion/categoria-accion.shtmlhttp://www.monografias.com/trabajos35/categoria-accion/categoria-accion.shtmlhttp://www.monografias.com/trabajos4/costos/costos.shtmlhttp://www.monografias.com/trabajos4/costos/costos.shtmlhttp://www.monografias.com/Computacion/Hardware/http://www.monografias.com/Computacion/Hardware/http://www.monografias.com/trabajos3/color/color.shtmlhttp://www.monografias.com/trabajos3/color/color.shtmlhttp://www.monografias.com/trabajos3/color/color.shtmlhttp://www.monografias.com/trabajos5/elso/elso.shtmlhttp://www.monografias.com/trabajos5/elso/elso.shtmlhttp://www.monografias.com/trabajos5/elso/elso.shtmlhttp://www.monografias.com/trabajos11/basda/basda.shtmlhttp://www.monografias.com/trabajos11/basda/basda.shtmlhttp://www.monografias.com/trabajos6/auti/auti.shtmlhttp://www.monografias.com/trabajos6/auti/auti.shtmlhttp://www.monografias.com/trabajos14/historiaingenieria/historiaingenieria.shtmlhttp://www.monografias.com/trabajos14/historiaingenieria/historiaingenieria.shtmlhttp://www.monografias.com/trabajos15/ms-windows/ms-windows.shtmlhttp://www.monografias.com/trabajos15/ms-windows/ms-windows.shtmlhttp://www.monografias.com/trabajos15/ms-windows/ms-windows.shtmlhttp://www.monografias.com/trabajos54/produccion-sistema-economico/produccion-sistema-economico.shtmlhttp://www.monografias.com/trabajos54/produccion-sistema-economico/produccion-sistema-economico.shtmlhttp://www.monografias.com/trabajos12/pmbok/pmbok.shtmlhttp://www.monografias.com/trabajos12/pmbok/pmbok.shtmlhttp://www.monografias.com/trabajos12/pmbok/pmbok.shtmlhttp://www.monografias.com/trabajos12/pmbok/pmbok.shtmlhttp://www.monografias.com/trabajos54/produccion-sistema-economico/produccion-sistema-economico.shtmlhttp://www.monografias.com/trabajos15/ms-windows/ms-windows.shtmlhttp://www.monografias.com/trabajos14/historiaingenieria/historiaingenieria.shtmlhttp://www.monografias.com/trabajos6/auti/auti.shtmlhttp://www.monografias.com/trabajos11/basda/basda.shtmlhttp://www.monografias.com/trabajos5/elso/elso.shtmlhttp://www.monografias.com/trabajos3/color/color.shtmlhttp://www.monografias.com/Computacion/Hardware/http://www.monografias.com/trabajos4/costos/costos.shtmlhttp://www.monografias.com/trabajos35/categoria-accion/categoria-accion.shtmlhttp://www.monografias.com/trabajos7/mafu/mafu.shtmlhttp://www.monografias.com/trabajos13/mapro/mapro.shtml
  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    15/48

    consecuencia un cambioen lacodificacinde un objeto no afectar la operacincon otro objeto siempre que los mtodos respectivos permanezcan intactos. Laintroduccin de tecnologa de objetos como una herramienta conceptual paraanalizar, disear e implementar aplicaciones permite obtener aplicaciones msmodificables, fcilmente extendibles y a partir de componentes reusables. Esta

    reusabilidad del cdigo disminuye el tiempoque se utiliza en el desarrollo y haceque el desarrollo del software sea ms intuitivo porque la gente piensanaturalmente en trminos de objetos ms que en trminos de algoritmos desoftware.

    Problemas derivados de la utilizacin de OOP en la actualidad

    Un sistema orientado a objetos, por lo visto, puede parecer un paraso virtual. Elproblema sin embargo surge en la implementacin de tal sistema. Muchascompaas oyen acerca de los beneficios de un sistema orientado a objetos einvierten gran cantidad de recursos luego comienzan a darse cuenta que han

    impuesto una nueva cultura que es ajena a los programadores actuales.Especficamente los siguientes temas suelen aparecer repetidamente:

    Curvas deaprendizajelargas. Un sistema orientado a objetos ve al mundo en unaforma nica. Involucra la conceptualizacin de todos los elementos de unprograma, desde subsistemas a los datos, en la forma de objetos. Toda lacomunicacinentre los objetos debe realizarse en la forma de mensajes. Esta noes la forma en que estn escritos los programas orientados a objetos actualmente;al hacer la transicin a un sistema orientado a objetos la mayora de losprogramadores deben capacitarse nuevamente antes depoderusarlo.

    Dependencia del lenguaje. A pesar de la portabilidad conceptual de los objetos enun sistema orientado a objetos, en la prctica existen muchas dependencias.Muchos lenguajes orientados a objetos estn compitiendo actualmente paradominar el mercado. Cambiar el lenguaje de implementacin de un sistemaorientado a objetos no es una tarea sencilla; por ejemplo C++ soporta el conceptode herencia mltiple mientras que SmallTalk no lo soporta; en consecuencia laeleccin de un lenguaje tiene ramificaciones de diseo muy importantes.

    Determinacin de las clases. Una clase es un molde que se utiliza para crearnuevos objetos. En consecuencia es importante crear el conjunto de clasesadecuado para un proyecto. Desafortunadamente la definicin de las clases esms unarteque unaciencia. Si bien hay muchas jerarquas de clase predefinidasusualmente se deben crear clases especficas para la aplicacin que se estdesarrollando. Luego, en 6 meses 1 ao se da cuenta que las clases que seestablecieron no son posibles; en ese caso ser necesario reestructurar la

    jerarqua de clases devastando totalmente laplanificacinoriginal.

    Performance. En un sistema donde todo es un objeto y toda interaccin es atravs de mensajes, el trfico de mensajes afecta la performance. A medida que latecnologa avanza y lavelocidadde microprocesamiento,potenciay tamao dela

    http://www.monografias.com/trabajos2/mercambiario/mercambiario.shtmlhttp://www.monografias.com/trabajos2/mercambiario/mercambiario.shtmlhttp://www.monografias.com/trabajos37/codificacion/codificacion.shtmlhttp://www.monografias.com/trabajos37/codificacion/codificacion.shtmlhttp://www.monografias.com/trabajos37/codificacion/codificacion.shtmlhttp://www.monografias.com/trabajos13/discurso/discurso.shtmlhttp://www.monografias.com/trabajos13/discurso/discurso.shtmlhttp://www.monografias.com/Tecnologia/index.shtmlhttp://www.monografias.com/Tecnologia/index.shtmlhttp://www.monografias.com/trabajos901/evolucion-historica-concepciones-tiempo/evolucion-historica-concepciones-tiempo.shtmlhttp://www.monografias.com/trabajos901/evolucion-historica-concepciones-tiempo/evolucion-historica-concepciones-tiempo.shtmlhttp://www.monografias.com/trabajos901/evolucion-historica-concepciones-tiempo/evolucion-historica-concepciones-tiempo.shtmlhttp://www.monografias.com/trabajos15/algoritmos/algoritmos.shtmlhttp://www.monografias.com/trabajos15/algoritmos/algoritmos.shtmlhttp://www.monografias.com/trabajos4/refrec/refrec.shtmlhttp://www.monografias.com/trabajos4/refrec/refrec.shtmlhttp://www.monografias.com/trabajos7/impu/impu.shtmlhttp://www.monografias.com/trabajos7/impu/impu.shtmlhttp://www.monografias.com/trabajos13/quentend/quentend.shtml#INTROhttp://www.monografias.com/trabajos13/quentend/quentend.shtml#INTROhttp://www.monografias.com/trabajos5/teap/teap.shtmlhttp://www.monografias.com/trabajos5/teap/teap.shtmlhttp://www.monografias.com/trabajos5/teap/teap.shtmlhttp://www.monografias.com/trabajos12/fundteo/fundteo.shtmlhttp://www.monografias.com/trabajos12/fundteo/fundteo.shtmlhttp://www.monografias.com/trabajos35/el-poder/el-poder.shtmlhttp://www.monografias.com/trabajos35/el-poder/el-poder.shtmlhttp://www.monografias.com/trabajos35/el-poder/el-poder.shtmlhttp://www.monografias.com/trabajos13/mercado/mercado.shtmlhttp://www.monografias.com/trabajos13/mercado/mercado.shtmlhttp://www.monografias.com/trabajos16/desarrollo-del-lenguaje/desarrollo-del-lenguaje.shtmlhttp://www.monografias.com/trabajos16/desarrollo-del-lenguaje/desarrollo-del-lenguaje.shtmlhttp://www.monografias.com/Arte_y_Cultura/index.shtmlhttp://www.monografias.com/Arte_y_Cultura/index.shtmlhttp://www.monografias.com/Arte_y_Cultura/index.shtmlhttp://www.monografias.com/trabajos10/fciencia/fciencia.shtmlhttp://www.monografias.com/trabajos10/fciencia/fciencia.shtmlhttp://www.monografias.com/trabajos10/fciencia/fciencia.shtmlhttp://www.monografias.com/trabajos34/planificacion/planificacion.shtmlhttp://www.monografias.com/trabajos34/planificacion/planificacion.shtmlhttp://www.monografias.com/trabajos34/planificacion/planificacion.shtmlhttp://www.monografias.com/trabajos13/cinemat/cinemat2.shtml#TEORICOhttp://www.monografias.com/trabajos13/cinemat/cinemat2.shtml#TEORICOhttp://www.monografias.com/trabajos13/cinemat/cinemat2.shtml#TEORICOhttp://www.monografias.com/trabajos14/trmnpot/trmnpot.shtmlhttp://www.monografias.com/trabajos14/trmnpot/trmnpot.shtmlhttp://www.monografias.com/trabajos14/trmnpot/trmnpot.shtmlhttp://www.monografias.com/trabajos16/memorias/memorias.shtmlhttp://www.monografias.com/trabajos16/memorias/memorias.shtmlhttp://www.monografias.com/trabajos16/memorias/memorias.shtmlhttp://www.monografias.com/trabajos14/trmnpot/trmnpot.shtmlhttp://www.monografias.com/trabajos13/cinemat/cinemat2.shtml#TEORICOhttp://www.monografias.com/trabajos34/planificacion/planificacion.shtmlhttp://www.monografias.com/trabajos10/fciencia/fciencia.shtmlhttp://www.monografias.com/Arte_y_Cultura/index.shtmlhttp://www.monografias.com/trabajos16/desarrollo-del-lenguaje/desarrollo-del-lenguaje.shtmlhttp://www.monografias.com/trabajos13/mercado/mercado.shtmlhttp://www.monografias.com/trabajos35/el-poder/el-poder.shtmlhttp://www.monografias.com/trabajos12/fundteo/fundteo.shtmlhttp://www.monografias.com/trabajos5/teap/teap.shtmlhttp://www.monografias.com/trabajos13/quentend/quentend.shtml#INTROhttp://www.monografias.com/trabajos7/impu/impu.shtmlhttp://www.monografias.com/trabajos4/refrec/refrec.shtmlhttp://www.monografias.com/trabajos15/algoritmos/algoritmos.shtmlhttp://www.monografias.com/trabajos901/evolucion-historica-concepciones-tiempo/evolucion-historica-concepciones-tiempo.shtmlhttp://www.monografias.com/Tecnologia/index.shtmlhttp://www.monografias.com/trabajos13/discurso/discurso.shtmlhttp://www.monografias.com/trabajos37/codificacion/codificacion.shtmlhttp://www.monografias.com/trabajos2/mercambiario/mercambiario.shtml
  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    16/48

    memoriaaumentan, la situacin mejorar; pero en la situacin actual, un diseode una aplicacin orientada a objetos que no tiene en cuenta la performance noser viable comercialmente.

    Idealmente, habra una forma de atacar estos problemas eficientemente al mismo

    tiempo que se obtienen los beneficios del desarrollo de unaestrategiaorientada aobjetos. Debera existir una metodologa fcil de aprender e independiente dellenguaje, y fcil de reestructurar que no drene la performance del sistema.

    Bibliografa consultada

    Revista COMPU MAGAZINE, Nmero 51, Octubre '92

    Revista COMPU MAGAZINE, Nmero 50, Septiembre '92

    1.2. Metodologas emergentes de desarrollo de software.

    Proceso. Un proceso define quin hace qu, cundo y cmo para alcanzar ciertoobjetivo. El xito de las organizaciones radica en gran medida en la correctadefinicin y empleo de sus procesos. Los sistemas de software pueden llegar a sermuy complejos, para administrar dicha complejidad es necesario contar conmodelos de procesos y tecnologas de software apropiadas.

    Modelo de proceso. Define cmo solucionar la problemtica del desarrollo desistemas de software. Para desarrollar software se requiere resolver ciertas fasesde su proceso, las cuales se conocen como el ciclo de vida de desarrollo desoftware. Un modelo de proceso debe considerar aspectos como el conjunto de

    personas, estructuras organizacionales, reglas, polticas, actividades,componentes de software, metodologas y herramientas.

    No existe un solo modelo de proceso aplicable a cualquier proyecto, pues elmodelo de proceso depende del tipo particular de proyecto:

    Primer proyecto de su tipo. Se crea desde cero, requiere de ms tiempopara especificarlo y analizarlo, la incertidumbre crea riesgos adicionales.

    Segundo proyecto de su tipo. Se busca agregar nueva funcionalidad a un oconocido.

    Variacin de un proyecto. Se extiende un sistema ya existente, lo cual

    involucra introducir componentes de software reutilizables como un marcode trabajo (framework), crear nuevos componentes o simplemente extenderla aplicacin existente mediante nueva funcionalidad. Dependiendo de laestrategia a utilizar, el modelo del proceso debe variar.

    Proyecto de reescritura de legado (legacy). Se busca transformar o haceruna reingeniera de un sistema ya existente, desarrollado bajo tecnologasanteriores y transformarlo a tecnologas nuevas.

    http://www.monografias.com/trabajos16/memorias/memorias.shtmlhttp://www.monografias.com/trabajos16/memorias/memorias.shtmlhttp://www.monografias.com/trabajos11/henrym/henrym.shtmlhttp://www.monografias.com/trabajos11/henrym/henrym.shtmlhttp://www.monografias.com/trabajos11/henrym/henrym.shtmlhttp://www.monografias.com/trabajos11/metods/metods.shtmlhttp://www.monografias.com/trabajos11/metods/metods.shtmlhttp://www.monografias.com/trabajos11/metods/metods.shtmlhttp://www.monografias.com/trabajos11/henrym/henrym.shtmlhttp://www.monografias.com/trabajos16/memorias/memorias.shtml
  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    17/48

    Proyecto de creacin de software reutilizable. Se busca crear uno o mscomponentes de software reutilizables, debe ser diseado de tal maneraque se asegure de que el diseo sea lo suficientemente general para sertil en otras situaciones desconocidas, por ello no hay muchos proyectosas.

    Proyecto de mejora de sistema o mantenimiento. Se busca modificar loscomponentes bsicos de un sistema para apoyar a una nuevafuncionalidad. Son regularmente pequeos y afectan solo a partes delsistema.

    Componentes de un modelo de proceso

    Arquitectura. Estructura general de un sistema y vara de acuerdo con el tipo desistema a desarrollarse:

    Transformacin en lote (batch). Sistemas de transformacin sobre unconjunto de entradas de valor constante, para generar un conjunto de

    salidas, ejemplo un compilador. Transformacin continua. Sistemas de transformacin sobre un conjunto de

    entradas de valor constante, para generar un conjunto de salidas quedifieren en el tiempo, ejemplo sistema de control de seales.

    Sistemas interactivos. Regidos por interacciones externas, por lo general unusuario, son controlados por manejadores de eventos, encargados deprocesar acontecimientos generados por el usuario, ejemplo un click opresionar una tecla.

    Simulacin dinmica. Sistemas que simulan sistemas del mundo real yevolucionan con el tiempo, ejemplo simuladores de sistemas financieros,redes neuronales, etc.

    Sistemas de tiempo real. Regidos por restricciones estrictas en el tiempo yrequieren garantas en el tiempo de respuesta, ejemplos controladores deprocesos industriales y dispositivos de comunicacin.

    Administracin de transaccin. Sistemas para interactuar con las bases dedatos y que incluyen acceso concurrente y distribuido de mltiples usuarios,ejemplo reservaciones de vuelo y control de inventario.

    Tambin la arquitectura involucra las interfaces (elementos grficos), lafuncionalidad (reglas del negocio), los datos y las funciones (elementos internosde los objetos)

    Actividad. Es una unidad o paso bsico de un proceso. En el proceso de softwarelas actividades definen los pasos necesarios para lograr las metas y los objetivos.Las actividades bsicas del proceso de desarrollo de software son conocidascomo el ciclo de vida:

    Requisitos. Para especificar aspectos funcionales del sistema, quedescriben cmo interactuara un usuario con la aplicacin, se genera unModelo de Requisitos.

  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    18/48

    Anlisis. Para dar al sistema una estructura o arquitectura robusta yextensible, se genera un Modelo de Anlisis.

    Diseo. Para adoptar y refinar la arquitectura del sistema y adaptarla slambiente de implementacin, se genera un Modelo de Diseo (deestructuras o de objetos y de sistema).

    Implementacin. Para codificar el sistema, se genera un Modelo deImplementacin (lenguajes de programacin, bases de datos).

    Integracin. Para combinar componentes del sistema, se genera un Modelode Integracin.

    Pruebas. Para validar y verificar el sistema, se genera un Modelo dePruebas (validacin de acuerdo a la especificacin del cliente y verificacinsi el sistema est siendo desarrollado correctamente).

    Documentacin. Para describir los diversos aspectos del sistema, segeneran los manuales de usuario, programador, operador, administrador).

    Mantenimiento. Para extender la funcionalidad del sistema, es lacontinuacin del ciclo de vida, una vez concluida la primera versin del

    sistema.

    Mtodos y Metodologas. Los mtodos definen las reglas para lastransformaciones internas de las actividades, mientras que las metodologasdefinen el conjunto de mtodos. Un mtodo es un procedimiento que define tareaso acciones a realizar, donde cada tarea incluye condiciones de entrada y de salidaque se deben satisfacer antes y despus de completarse.

    Los mtodos deben:

    Apoyar conceptos bsicos significativos para resolver problemas. Se debenutilizar en distintos dominios de aplicacin segn las arquitecturas:

    secuencial, concurrente, distribuido, en tiempo real. Deben ajustarse al ciclo de vida del proceso, apoyando a todas las

    actividades.

    Deben proveer tcnicas para recopilar informacin.

    Deben apoyar su propia extensibilidad, su propia documentacin.

    Deben permitir la generacin de modelos a partir de la informacinrecopilada por el mtodo.

    Deben apoyar la integridad de los modelos generados, verificando yevitando errores de consistencia.

    Deben ofrecer entradas y salidas bien definidas que permitan la integracinde varios mtodos.

    Deben contar con notaciones especficas y estandarizadas para representarlos modelos desarrollados, los cuales deben incluir elementos grficos, detexto o combinacin de ambos.

    Deben tener confianza en los mtodos y las herramientas correspondientes;para lo cual se debe contemplar que stos se mantendrn en el mercado y,que cuenten con capacitacin y apoyo tcnico.

  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    19/48

    Existen una gran variedad de mtodos y metodologas en apoyo al proceso desoftware, como son las estructuras y orientadas a objetos.

    Estructuradas: Se enfocan en la descomposicin funcional de un sistema.El objetivo es lograr una definicin completa del sistema, estableciendo los

    datos de entrada y salida. Estas metodologas se conocen como anlisis ydiseo estructurado (SA/SD Structured Analysis and Structured Design) yse basan en herramientas como:

    o Diagramas de flujo de datos. Modelado de transformacin de datosentre funciones del sistema. Se compone de procesos, flujo dedatos, actores, y almacenamiento de datos (DFD).

    o Diagramas de transicin de estado. Sirven para modelar elcomportamiento a travs del tiempo, describen el efecto de eventosexternos en los procesos y funciones.

    o Diagramas entidad-relacin. Para modelar un almacenamiento de

    datos.

    Orientadas a objetos: Se enfocan en el modelado de un sistema entrminos de objetos. Se identifican inicialmente los objetos del sistema paraluego especificar su comportamiento y usan las herramientas siguientes:

    o Diagramas de clase. Describen los componentes esenciales de laarquitectura de un sistema. A diferencia de los DFD, los de clasesmuestran relaciones de asociacin entre clases y no flujo de datosentre ellas.

    o Diagramas de casos de uso. Especifican un sistema en trminos de

    su funcionalidad. A diferencia de las metodologas estructuradas losde casos de uso no son descompuestos en funciones deprogramacin.

    o Diagramas de transicin de estado. Describen los cambios de estadode los objetos.

    o Diagramas de secuencia. Describen los aspectos dinmicos desistema, mostrando el flujo de eventos entre objetos en el tiempo.

    o Diagramas de colaboracin. Describen la comunicacin entre objetosde un sistema.

    o Diagramas de subsistemas. Se usan para describir agrupaciones declases en un sistema.

    Estrategias. Una estrategia es como un plan para lograr un objetivo. Afectanaspectos como la arquitectura del sistema, el orden en que se llevarn a cabo lasactividades del proceso y las metodologas a utilizarse. Las estrategias incluyen laseleccin del tipo de proyecto a desarrollarse, seleccin de una tecnologa ylenguaje de programacin (ej. Tecnologa OO y lenguaje JAVA), otras estrategiasaceptadas son los prototipos (versin preliminar de un sistema)y la reutilizacin(componentes desarrollados anteriormente).

  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    20/48

    Herramientas. Aplicaciones que apoyan la administracin del proceso de softwarey el conjunto de estas herramientas se le conoce como ingeniera de softwareasistida por computadora (CASE, Computer-Aided Software Engineering), cuyoobjetivo es asistir al desarrollador durante las diferentes actividades del ciclo devida del proceso de software: Editores de texto, generadores de modelos grficos

    (diagramas), generadores de cdigo, compiladores, depuradores, verificadores,validadores, medidores (monitores), administracin de configuracin yadministradores de proyecto.

    Metodologas de desarrollo de software1970s

    Programacin estructurada soldesde 1969

    Programacin estructurada Jacksondesde 1975

    1980s

    Structured Systems Analysis and Design Methodology(SSADM) desde 1980

    Structured Analysis and Design Technique(SADT) desde 1980

    Ingeniera de la informacin(IE/IEM) desde 1981

    1990s

    Rapid application development(RAD) desde 1991.

    Programacin orientada a objetos(OOP) a lo largo de la dcada de los 90's

    Virtual finite state machine(VFSM) desde 1990s

    Dynamic Systems Development Methoddesarrollado en UK desde 1995.

    Scrum(desarrollo), en la ltima parte de los 90's

    Rational Unified Process(RUP) desde 1999.

    Emergentes Ganar-ganar (win-win). Extiende el modelo de espiral, haciendo nfasis en

    la identificacin de las condiciones de ganancia para todas las partes,creando un plan para alcanzar las condiciones ganadoras y los riesgoscorrespondientes. Se consideran cuatro ciclos compuestos de cuatro

    actividades:1. Elaborar los objetivos, restricciones y alternativas del proceso y productodel sistema y subsistema.

    2. Evaluar las alternativas con respecto a los objetivos y restricciones.Identificar y resolver las fuentes principales de riesgo en el proceso y elproducto.

    3. Elaborar la definicin del producto y el proceso.

    http://es.wikipedia.org/w/index.php?title=Programaci%C3%B3n_estructurada_sol&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Programaci%C3%B3n_estructurada_sol&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Programaci%C3%B3n_estructurada_Jackson&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Programaci%C3%B3n_estructurada_Jackson&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Structured_Systems_Analysis_and_Design_Methodology&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Structured_Systems_Analysis_and_Design_Methodology&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Structured_Analysis_and_Design_Technique&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Structured_Analysis_and_Design_Technique&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Ingenier%C3%ADa_de_la_informaci%C3%B3n&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Ingenier%C3%ADa_de_la_informaci%C3%B3n&action=edit&redlink=1http://es.wikipedia.org/wiki/Rapid_application_developmenthttp://es.wikipedia.org/wiki/Rapid_application_developmenthttp://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetoshttp://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetoshttp://es.wikipedia.org/w/index.php?title=Virtual_finite_state_machine&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Virtual_finite_state_machine&action=edit&redlink=1http://es.wikipedia.org/wiki/Dynamic_Systems_Development_Methodhttp://es.wikipedia.org/wiki/Dynamic_Systems_Development_Methodhttp://es.wikipedia.org/wiki/Scrumhttp://es.wikipedia.org/wiki/Scrumhttp://es.wikipedia.org/wiki/Rational_Unified_Processhttp://es.wikipedia.org/wiki/Rational_Unified_Processhttp://es.wikipedia.org/wiki/Rational_Unified_Processhttp://es.wikipedia.org/wiki/Scrumhttp://es.wikipedia.org/wiki/Dynamic_Systems_Development_Methodhttp://es.wikipedia.org/w/index.php?title=Virtual_finite_state_machine&action=edit&redlink=1http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetoshttp://es.wikipedia.org/wiki/Rapid_application_developmenthttp://es.wikipedia.org/w/index.php?title=Ingenier%C3%ADa_de_la_informaci%C3%B3n&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Structured_Analysis_and_Design_Technique&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Structured_Systems_Analysis_and_Design_Methodology&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Programaci%C3%B3n_estructurada_Jackson&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Programaci%C3%B3n_estructurada_sol&action=edit&redlink=1
  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    21/48

    4. Planear el siguiente ciclo y actualizar el plan de su ciclo de vida,incluyendo la particin del sistema en subsistemas para ser consideradosen ciclos paralelos.

    Programacin Extrema (XP, eXtreme Programming. .. desde 1999

    Proceso Unificado (UP, Unified Process). Es una extensin al proceso

    objectory (object factory), que tiene sus orgenes en la dcada de 1980. Sebasa especialmente en la especificacin de requerimientos de un sistemamediante casos de uso; parte de la arquitectura del sistema, siguiendo unproceso iterativo e incremental; integra aspectos como ciclos, fases, flujosde trabajo, mitigacin de riesgo, control de calidad, administracin deproyecto y control de configuracin; considera las 4 P del desarrollo delsoftware (personas, proyecto, producto y proceso); y se basa en lascreencias de que para que un sistema sea exitoso se debe saber ququiere y necesita el usuario, as como que las arquitecturas de los sistemasde software deben permitir visualizar un sistema desde diferentesperspectivas (como los edificioselectricidad, estructura, etc.-) y que dividir

    en etapas es prctico porque el desarrollo y la implementacin puedendurar mucho tiempo.

    Enterprise Unified Process(EUP) extensiones RUP desde 2002

    Constructionist design methodology(CDM) desde 2004 porKristinn R. Thrisson

    Agile Unified Process(AUP) desde 2005 porScott Ambler

    Cada metodologa de desarrollo de software tiene ms o menos su propio enfoque paraeldesarrollo de software. Estos son los enfoques ms generales, que se desarrollan envarias metodologas especficas. Estos enfoques son los siguientes:

    Modelo en cascada: Framework lineal.

    Prototipado: Framework iterativo.

    Incremental: Combinacin de framework lineal e iterativo.

    Espiral: Combinacin de framework lineal e iterativo.

    RAD: Rapid Application Development, framework iterativo.

    1.3. Mtodos de desarrollo de software orientado a objetos. (AlfredoWeitzenfeld)

    Mtodos de desarrollo de software orientados a objetosSiglas Mtodo

    RDD Responsability-Driven Design

    CRC Tarjetas Clase-Responsabilidad-Colaboracin

    OOAD Object-Oriented Analysis and Design

    OOD Object-Oriented Design

    OMT Object Modeling Technique

    OOSE Object Oriented Software Engineering

    OOK/MOSES Object-Oriented Knowledge

    http://es.wikipedia.org/w/index.php?title=Enterprise_Unified_Process&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Enterprise_Unified_Process&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Constructionist_design_methodology&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Constructionist_design_methodology&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Kristinn_R._Th%C3%B3risson&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Kristinn_R._Th%C3%B3risson&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Kristinn_R._Th%C3%B3risson&action=edit&redlink=1http://es.wikipedia.org/wiki/Agile_Unified_Processhttp://es.wikipedia.org/wiki/Agile_Unified_Processhttp://es.wikipedia.org/w/index.php?title=Scott_Ambler&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Scott_Ambler&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Scott_Ambler&action=edit&redlink=1http://es.wikipedia.org/wiki/Desarrollo_de_softwarehttp://es.wikipedia.org/wiki/Desarrollo_de_softwarehttp://es.wikipedia.org/wiki/Desarrollo_de_softwarehttp://es.wikipedia.org/wiki/Desarrollo_de_softwarehttp://es.wikipedia.org/w/index.php?title=Scott_Ambler&action=edit&redlink=1http://es.wikipedia.org/wiki/Agile_Unified_Processhttp://es.wikipedia.org/w/index.php?title=Kristinn_R._Th%C3%B3risson&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Constructionist_design_methodology&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Enterprise_Unified_Process&action=edit&redlink=1
  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    22/48

    OOSA Object-Oriented System Analysis

    OBA Object Behavior Analysis

    OORA Object-Oriented Requirements Analysis

    Synthesis Synthesis Method

    OOSD Object-Oriented System Development

    OOAD/ROSE Object-Oriented Analysis and Design

    FUSION Object-Oriented DevelopmentUP Unified Software Development Process

    Actividad Mtodo Notacin

    Mtodos de requisitos

    OBA

    FUSIONUP Actor 1 Casos de uso en UML Actor 2

    Mtodos de anlisis

    OBA FUSIONUP Asociacin de clases en UML

    Mtodos de diseo

    UML

    FUSION

    RDDAsociacin de clases en UML

    Mtodos de codificacin class Clase 1 extends Clase X

    Tcnicas de JAVA ..

    Tcnicas de C++

    Tcnicas de Smalltalk

    Fig. Contraste de las actividades, mtodos y notaciones de desarrollo de software

    1.4. El proceso de desarrollo unificado RUP.

    El modelo de requisitos tiene como objetivo delimitar el sistema y capturar lafuncionalidad que ofrecer desde la perspectiva del usuario. Este modelo puede trabajarcomo un contrato entre el desarrollador y el cliente o usuario del sistema, por lo quedeber proyectar lo que el cliente desea segn la percepcin del desarrollador. Por ello,es esencial que los clientes lo comprendan.

    El modelo de requisitos es el primero en desarrollarse, y es la base para formar todos losdems modelos en el desarrollo de software. En general, cualquier cambio en lafuncionalidad del sistema es ms fcil de hacer, y con menores consecuencias a estenivel que posteriormente. El modelo de requisitos que se desarrollar se basa en lametodologa Objectory (Jacobson, 1992), que tiene su fundamento en el modelo de casosde uso. Actualmente esta metodologa es parte del Proceso Unificado Racional (RUP,Rational Unified Process). El modelo de casos de uso y el propio modelo de requisitos sonla base para los dems modelos.

    Requisitos

    Anlisis

    Implementacin

    Diseo

    Clase 1 Clase 2

    Clase 1 Clase 2

  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    23/48

    El proceso unificado de desarrollo de software es el conjunto de actividades necesariaspara transformar requisitos de usuarios en software.

    La tendencia actual en el software lleva a la construccin de sistemas ms grandes y mscomplejos. El UP (proceso unificado) naci bajo la premisa de renovar la manera dedesarrollar software empleando lo mejor de las viejas prcticas y adoptando nuevas y ms

    eficientes maneras, de tal manera que el UP es un intento de obtener lo mejor de otrosmodelos.

    El proceso unificado est basado en componentes interconectados a travs de interfacesbien definidas, utiliza las bases del UML (Lenguaje Unificado de Modelado UnifiedModeling Languaje), se resume en tres fases clave: Dirigido por casos de uso, Centradoen la arquitectura, Iterativo e incremental.

    El UP est dirigido por casos de uso.

    Para construir un sistema con xito debemos conocer lo que sus futuros usuariosnecesitan y desean. El trmino usuario no hacer referencia solo a humanos sino tambin

    a otros sistemas, as el trmino usuario representa a alguien o algo que interacta con elsistema en desarrollo, ejemplo, un persona utiliza un cajero automtico, inserta la tarjetade plstico, responde a las preguntas que le hace la mquina mediante la pantalla yrecibe su dinero; con este proceso se llevan a cabo una secuencia de acciones queproporcionan al usuario un resultado.

    Un caso de uso es un fragmento de funcionalidad del sistema que proporciona al usuarioun resultado, los casos de uso representan los requisitos funcionales, todos los casos deuso juntos constituyen el modelo de casos de uso, el cual describe la funcionalidad totaldel sistema (qu debe hacer el sistema), los casos de uso guan el diseo,implementacin y prueba del sistema, es decir el proceso de desarrollo de software

    Centrado en la arquitectura.

    El papel de la arquitectura de software es parecido al papel que juega la arquitectura de laconstruccin de edificios. El edificio se contempla desde varios puntos de vista:estructura, servicios, calefaccin, fontanera, electricidad, etc. Esto permite a unconstructor ver una imagen completa antes de que comience la construccin.

    Analgicamente, la arquitectura de un sistema de software se describe mediantediferentes vistas del sistema.

    La arquitectura se ve influida por la plataforma de software y surge de las necesidades dela empresa y se refleja en los casos de uso (arquitectura hardware, sistema operativo,sistemas de gestin de bases de datos, protocolos de red), los bloques de construccin

    reutilizables, consideraciones de implantacin, sistemas heredados, y requisitos nofuncionales (rendimiento, fiabilidad).

    La arquitectura y los casos de uso se relacionan en que todo producto de software tienetanto una forma como una funcin, los casos de uso representan la funcin(funcionalidad) y la arquitectura representa la forma (que permite el desarrollo inicial y lasadecuaciones en el futuro).

  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    24/48

    El arquitecto: crea un borrador de la arquitectura (plataforma), debe tener en mente loscasos de uso generales; contina con un subconjunto de casos de uso en detalle(subsistemas, clases, componentes); a medida que los casos de uso se especifican ymaduran, se descubre mejor la arquitectura, esto lleva a ms casos de uso y continahasta que se considera la arquitectura ya es estable.

    Iterativo e incremental.

    El proceso de desarrollo puede durar meses hasta un ao o ms. Por tal motivo esprctico dividir el trabajo en partes o miniproyectos, cada miniproyecto es una iteracin(pasos en el flujo de trabajo) que resulta en un incremento (crecimiento del producto).

    Los desarrolladores basan su implementacin en dos factores: La iteracin trata un grupode casos de uso y juntos amplan la utilidad del producto desarrollado hasta ahora; y Laiteracin trata los riesgos ms importantes.

    Los beneficios del proceso iterativo controlado:

    La iteracin reduce el costo del riesgo, ya que se van controlando a la vez que se

    visualizan, con lo que se fortalece el producto desde el principio y no se vanarrastrando riesgos que en el futuro podran llevar al producto de software alfracaso; as la organizacin slo perdera el esfuerzo empleado en la iteracin y node todo el producto.

    La iteracin controlada reduce el riesgo de no sacar al mercado el producto en eltiempo previsto, se reconoce mejor el problema desde el principio y no hasta lafase de pruebas.

    La iteracin controlada acelera el ritmo del esfuerzo de desarrollo porque losdesarrolladores trabajan ms eficientemente para obtener resultados claros a cortoplazo y no tener un periodo de desarrollo prolongado.

    La iteracin controlada reconoce una realidad que a menudo se ignora: que lasnecesidades del usuario y sus requisitos no pueden definirse completamente al

    principio, pues stas se refinan en iteraciones sucesivas; esto hace ms fcil laadaptacin a requerimientos cambiantes.

    La arquitectura proporciona la estructura para guiar la iteracin y los casos de usodefinen objetivos y dirigen el trabajo de cada iteracin.

    La VIDA del UP, FASES del proceso unificado. (I. Jacobson, 2000)

    Se repite a lo largo de una serie de ciclos que constituyen la vida de un sistema, dondecada ciclo es una versin del producto, las fases del ciclo de vida son: Requisitos,

    Anlisis, Diseo, Implementacin, Pruebas.

    Nacimiento Muerte

    Tiempo

    Ciclos/versiones

  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    25/48

    Fases del proceso unificado. (Roger P., 2010)

    Elaboracin

    Concepcin

    Construccin

    Transicin

    Lanzamiento

    Produccin

    Concepcin. Agrupa actividades tanto de comunicacin con el cliente como deplaneacin. Al colaborar con los participantes, se identifican los requerimientos delnegocio, se propone una arquitectura aproximada para el sistema y se desarrolla un plan

    para la naturaleza iterativa e incremental del proyecto en cuestin, los requerimientosfundamentales del negocio se describen por medio de un conjunto de casos de usopreliminares que detallan las caractersticas y funciones que desea cada clase principalde usuarios. La planeacin identifica los recursos, evala los riesgos principales, define unprograma de actividades y establece una base para las fases que siguen.

    Elaboracin. Incluye las actividades de planeacin y modelado del modelo general delproceso. La elaboracin mejora y ampla los casos de uso preliminares desarrolladoscomo parte de la fase de concepcin y aumenta la representacin de la arquitectura paraincluir cinco puntos de vista distintos del software; en algunos casos en este punto se creauna versin ejecutable. La planeacin incluye aspectos como la estimacin,programacin de tiempos y anlisis de riesgos; el modelado incluye aspectos de anlisis,

    diseo).

    Construccin. En esta fase se hacen operativos los casos de uso para los usuariosfinales; se obtiene el cdigo fuente y a medida que se va codificando se van desarrollandopruebas unitarias y poco a poco las actividades de integracin (ensamble decomponentes y pruebas de integracin).

    Transicin. Incluye la entrega y la retroalimentacin, es donde se proporciona a losusuarios para la prueba beta, para que reporten los defectos y los cambios necesarios. El

    Incremento del software

  • 7/31/2019 Antologa_ANLISIS Y MODELADO DE S.I._ultimo

    26/48

    equipo de software genera la informacin de apoyo necesaria (manuales de usuario,guas de solucin de problemas, procedimientos de instalacin, etc.) que se requierenpara el lanzamiento. Incluye a las actividades de construccin y despliegue.

    Produccin. No siempre las fases son secuenciales, pueden darse en forma escalonada obien pueden desarrollarse algunas a la vez. Coincide con la actividad del despliegue,

    durante la produccin se vigila el uso que se le da al software, se brinda apoyo para laoperacin y se reportan defectos y solicitudes de cambio para su evaluacin.

    Las cuatro P en el desarrollo de software.(I. Jacobson, 2000)

    El resultado final de un proyecto de software es un producto que toma forma durante sudesarrollo gracias a la intervencin de muchos tipos distintos de personas. Un proceso dedesarrollo de software gua los esfuerzos de las personas implicadas en el proyecto, amodo de plantilla que explica los pasos necesarios para terminar el proyecto. Todoproceso de software est automatizado por medio de una herramienta o conjunto de ellas.

    Plantilla

    Participantes Automatizacin

    Resultado

    Personas. Los principales autores de un proyecto de software son los arquitectos,desarrolladores, ingenieros de prueba y el personal de gestin que les da soporte,adems de los usuarios, clientes y otros interesados.

    Las personas son decisivas y los procesos afectan el comportamiento de las personas,considerando el modo en que se organizan y gestionan los proyectos de software,conceptos como la viabilidad del proyecto (la gente no se siente cmoda trabajando en unproyecto que parece imposible, se afecta la moral de las personas), la gestin del riesgo(cuando la gente siente que los riesgos no han sido analizados y reducidos, se sientenincmodos), la organizacin de los equipos (la gente trabaja mejor en equipos o grupospequeos de seis a ocho miembros), la planificacin del proyecto (en ocasiones la gentecree que la planificacin de un proyecto no es realista, lo cual la moral se afecta,pensando en que nunca se acabar con el proyecto de software) y la facilidad decomprensin del proyecto (a la gente le gusta saber lo que est haciendo, requieren teneruna comprensin global de lo que se est haciendo) tienen un papel importante, ascomo una sensacin de cumplimiento (en un ciclo de vida iterativo, la gente reciberetroalimentacin frecuentemente, lo que hace llegar a conclusiones y la retroalimentacinconstante acelera el ritmo de trabajo, esto aumenta la sensacin de progreso) .

    Pr