lunes, 26 de noviembre de 2012

Analisis Y Diseño de Sistemas Usando UML


ANALISIS Y DISEÑO DE SISTEMAS USANDO UML


Diseño y Modelación de un Proyecto de Software. Utilizando el lenguaje UML
INTRODUCCION
Desde los inicios de la informática se han estado utilizando distintas formas de representar los diseños de una manera más bien personal o con algún modelo gráfico, La falta de estandarización en la representación gráfica de un modelo impedía que los diseños gráficos realizados se pudieran compartir fácilmente entre distintos diseñadores, con este objetivo se creo el Lenguaje Unificado de Modelado (UML: Unified Modeling Language).
UML es el lenguaje de modelado de sistemas de software más conocido en la actualidad; es el estándar internacional aprobado por la OMG (Object Managment Group), consorcio creado en 1989 responsable de la creación, desarrollo y revisión de especificaciones para la industrial del software.
UML son un grupo de especificaciones de notación orientadas a Objeto, las cuales están compuesta por distintos diagramas, que representan las diferentes etapas del desarrollo de un proyecto de software. Este trabajo se centra en un Sistema de Control de Citas Médicas. Se han usados varios de los diagramas de UML, de modo que se muestre el uso de los mismos, enfocado desde una perspectiva práctica.
DESCRIPCION
El lenguaje UML comenzó a gestarse en octubre de 1994, cuando Rumbaugh se unió a la compañía Rational fundada por Booch (dos reputados investigadores en el área de metodología del software). El objetivo de amb os era unificar dos métodos que habían desarrollado: el método Booch y el OMT (Object Modelling Tool). El primer borrador apareció en octubre de 1995. En esa misma época otro reputado investigador, Jacobson, se unió a Rational y se incluyeron ideas suyas. Estas tres personas son conocidas como los "tres amigos". Además, este lenguaje se abrió a la colaboración de otras empresas para que aportaran sus ideas. Todas estas colaboraciones condujeron a la definición de la primera versión de UML.
 1. Modelado: es el diseño de un software antes de su codificación, es la visualización de lo que se quiere construir.
Esta primera versión se ofreció a un grupo de trabajo para convertirlo en 1997 en un estándar del OMG. Este grupo gestiona estándares relacionados con la tecnología orientada a objetos (metodologías, bases de datos objetuales, CORBA, etc.), propuso una serie de modificaciones y una nueva versión de UML (la 1.1), que fue adoptada por el OMG como estándar en noviembre de 1997. Desde aquella versión han habido varias revisiones que gestiona la OMG Revision Task Force. La última versión aprobada es la UML 2.0 superstructure. En estos momentos se está desarrollando actualizaciones a esta versión en la que se incluirán cambios importantes (principalmente añadir nuevos diagramas).


El Método del ciclo de vida Clásico de un Sistema

El Método del ciclo de vida Clásico de un Sistema
  
En la actualidad para muchas organizaciones, los sistemas de información basados en computadoras son el corazón de las actividades cotidianas y objeto de gran consideración en la toma de decisiones, las empresas consideran con mucho cuidados las capacidades de sus sistemas de información cuando deciden ingresar o no en nuevos mercados o cuando planean la respuesta que darán a la competencia.
Al establecer los sistemas de información basados en computadoras deben tener la certeza de que se logren dos objetivos principales: que sea un sistema correcto y que este correcto el sistema. Ningún sistema que deje satisfacer ambos objetivos será completamente útil para la gerencia u organización.
Si los dispositivos de un sistema de información no se adaptan a su población de clientes, no lograra sus objetivos potenciales. A mismo tiempo, aun cuando se identifiquen precisamente las necesidades del usuario, un sistema de información va tener un valor único si funciona en forma adecuada.
Los informes y las salidas producidas por el sistema deben ser precisos, confiables y completos. La función del Análisis puede ser dar soporte a las actividades de un negocio, o desarrollar un producto que pueda venderse para generar beneficios.
Es el Proceso de gestión para la creación de un Sistema o software, la cual encierra un conjunto de actividades, una de las cuales es la estimación, estimar es echar un vistazo al futuro y aceptamos resignados cierto grado de incertidumbre.
Aunque la estimación, es más un arte que una Ciencia, es una actividad importante que no debe llevarse a cabo de forma descuidada. Existen técnicas útiles para la estimación de costes de tiempo. Y dado que la estimación es la base de todas las demás actividades de planificación del proyecto y sirve como guía para una buena Ingeniería Sistemas y Software.
Al estimar tomamos en cuenta no solo del procedimiento técnico a utilizar en el proyecto, sino que se toma en cuenta los recursos, costos y planificación. El Tamaño del proyecto es otro factor importante que puede afectar la precisión de las estimaciones.
A medida que el tamaño aumenta, crece rápidamente la interdependencia entre varios elementos del Software. La disponibilidad de información Histórica es otro elemento que determina el riesgo de la estimación.
CICLO DE VIDA DE UN SISTEMA DE INFORMACION
El ciclo de vida de un sistema de información es un enfoque por fases del análisis y diseño que sostiene que los sistemas son desarrollados de mejor manera mediante el uso de un ciclo especifico de actividades del analista y del usuario.
Según James Senn, existen tres estrategias para el desarrollo de sistemas: el método clásico del ciclo de vida de desarrollo de sistemas, el método de desarrollo por análisis estructurado y el método de construcción de prototipos de sistemas. Cada una de estas estrategias tienen un uso amplio en cada una de los diversos tipos de empresas que existen, y resultan efectivas si son aplicadas de manera adecuada. 
CICLO DE VIDA CLÁSICO DEL DESARROLLO DE SISTEMAS
 El método de ciclo de vida para el desarrollo de sistemas es el conjunto de actividades que los analistas, diseñadores y usuarios realizan para desarrollar e implantar un sistema de información. El método del ciclo de vida para el desarrollo de sistemas consta de 6 fases:
1). Investigación Preliminar: La solicitud para recibir ayuda de un sistema de información puede originarse por varias razones: sin importar cuales sean estas, el proceso se inicia siempre con la petición de una persona.
2). Determinación de los requerimientos del sistema: El aspecto fundamental del análisis de sistemas es comprender todas las facetas importantes de la parte de la empresa que se encuentra bajo estudio. Los analistas, al trabajar con los empleados y administradores, deben estudiar los procesos de una empresa para dar respuesta a las siguientes preguntas clave:
3). Diseño del sistema: El diseño de un sistema de información produce los detalles que establecen la forma en la que el sistema cumplirá con los requerimientos identificados durante la fase de análisis. Los especialistas en sistemas se refieren, con frecuencia, a esta etapa como diseño lógico en contraste con la del desarrollo del software, a la que denominan diseño físico.
4). Desarrollo del software: Los encargados de desarrollar software pueden instalar software comprobando a terceros o escribir programas diseñados a la medida del solicitante. La elección depende del costo de cada alternativa, del tiempo disponible para escribir el software y de la disponibilidad de los programadores.
Por lo general, los programadores que trabajan en las grandes organizaciones pertenecen a un grupo permanente de profesionales.
5). Prueba de sistemas: Durante la prueba de sistemas, el sistema se emplea de manera experimental para asegurarse de que el software no tenga fallas, es decir, que funciona de acuerdo con las especificaciones y en la forma en que los usuarios esperan que lo haga.
Se alimentan como entradas conjunto de datos de prueba para su procesamiento y después se examinan los resultados.
6). Implantación y evaluación: La implantación es el proceso de verificar e instalar nuevo equipo, entrenar a los usuarios, instalar la aplicación y construir todos los archivos de datos necesarios para utilizarla. Una vez instaladas, las aplicaciones se emplean durante muchos años. Sin embargo, las organizaciones y los usuarios cambian con el paso del tiempo, incluso el ambiente es diferente con el paso de las semanas y los meses.
Por consiguiente, es indudable que debe darse mantenimiento a las aplicaciones. La evaluación de un sistema se lleva a cabo para identificar puntos débiles y fuertes. La evaluación ocurre a lo largo de cualquiera de las siguientes dimensiones:
*Evaluación operacional: Valoración de la forma en que funciona el sistema, incluyendo su facilidad de uso, tiempo de respuesta, lo adecuado de los formatos de información, confiabilidad global y nivel de utilización.
*Impacto organizacional: Identificación y medición de los beneficios para la organización en áreas tales como finanzas, eficiencia operacional e impacto competitivo. También se incluye el impacto sobre el flujo de información externo e interno.
*Opinión de loa administradores: evaluación de las actividades de directivos y administradores dentro de la organización así como de los usuarios finales.
*Desempeño del desarrollo: La evaluación de proceso de desarrollo de acuerdo con criterios tales como tiempo y esfuerzo de desarrollo, concuerdan con presupuestos y estándares, y otros criterios de administración de proyectos. También se incluye la valoración de los métodos y herramientas utilizados en el desarrollo.


El Método orientado a objetos en al Análisis y Diseño de Sistemas


El Método orientado a objetos en al Análisis y Diseño de Sistemas

Análisis y Diseño Orientado a Objetos
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 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.

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.



El método en el Análisis y y diseño de Sistemas



El método en el Análisis y  y diseño de Sistemas

Es el que tiene como finalidad superar esa dificultad por medio de:

1. La división de sistemas en componentes.

2. La construcción de un modelo del sistema.
¿Que es el análisis estructurado?

El análisis estructurado se concentra en especificar lo que se requiere que haga el sistema o la aplicación. No se establece como se cumpliran los requerimientos a la forma que implantara la aplicación. Permite que las personas observen los elementos lógicos, separados de los componentes físicos. Después de esto se puede desarrollar un diseño físico eficiente para la situación donde sera utilizado.

Elementos del análisis estructurado:

Son símbolos gráficos, diagrama de flujo de datos y diccionario centralizado de datos.

Descripción gráfica:

Es diseñar un bosquejo que señale sus características, que identifique la función para que sirve e indique como este interactúa con otros elementos. Utiliza símbolos o iconos para crear un modelo gráfico del sistema, si se seleccionan los símbolos entonces cualquier persona puede seguir la forma en que los componentes se acomodaran entre si para formar el sistema.

Diagrama de flujo de datos:

Esta formado por un conjunto de datos, se datallan diagramas de bajo nivel que muestran caracteristicas adicionales del sistema, cada proceso puede desglosarse en diagrama de flujo cada vez más detallados. Esta secuencia se repite hasta que se obtienen suficientes detalles que permiten al analista comprender en su totalidad la parte del sistema que se encuentra bajo investigación.

Diccionario de datos:

Son todas las definiciones de los elementos en el sistema, estan descritos en forma detallada en el diccionario de datos, si algun miembro del equipo encargado del proyecto desea saber alguna definicion del nombre de un dato o el contenido, esta información debe encontrarse disponible en el diccionario de datos.
ANÁLISIS Y DISEÑO DE SISTEMAS
El Análisis y el Diseño de sistema, tienen como fin estudiar sistemáticamente la operación de ingreso de los datos, el flujo de los mismos y la salida de la información; todo ello dentro del contexto de una empresa en particular.

ANÁLISIS ESTRUCTURADO

El Análisis Estructurado es un método para el análisis de sistemas manuales o automatizados, que conduce al desarrollo de especificaciones para sistemas nuevos o para efectuar modificaciones a los ya existentes. El objetivo que persigue el análisis estructurado es organizar las tareas asociadas con la determinación de requerimientos para obtener la comprensión completa y exacta de una situación dada.

Componentes:
-          Símbolos gráficos: Son los iconos y convenciones para identificar y describir los componentes de un sistema y las relaciones entre estos.
-          Diccionarios de datos: Descripciones de todos los datos utilizados en el sistema. Puede ser manual o automatizado.
-          Descripciones de procesos y procedimientos: Declaraciones formales que emplean técnicas y lenguajes que permiten describir actividades importantes que forman parte del sistema.
-          Reglas: Estándares par describir y documentar el sistema en forma correcta y completa.

 

DISEÑO ESTRUCTURADO

El Diseño Estructurado es una técnica específica que busca crear programas formados por módulos independientes unos de otros desde el punto de vista funcional y no mostrar la lógica de los programas.
La herramienta fundamental del diseño estructurado es el diagrama estructurado, el cual describe la interacción entre módulos independientes junto con los datos que un módulo pasa a otro cuando interacciona con él.

ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS
La Orientación a Objetos puede describirse como el conjunto de disciplinas que desarrollan y modelizan software que facilitan la construcción de sistemas complejos a partir de componentes.
El atractivo intuitivo de la orientación a objetos es que proporciona conceptos y herramientas con las cuales se modela y representa el mundo real tan fielmente como sea posible.
Las técnicas orientadas a objetos proporcionan mejoras y metodologías para construir sistemas de software complejos a partir de unidades de software modularizado y reutilizable. La orientación a objetos trata de cubrir las necesidades de los usuarios finales, así como las propias de los desarrolladores de productos software. Estas tareas se realizan mediante la modelización del mundo real. El soporte fundamental es el modelo objeto.
El Análisis Orientado a Objetos y su Diseño se enfoca en los objetos. Los objetos tienen ciertos comportamientos y atributos que determinan la manera en que interactúan y funcionan. No se intenta proporcionar un orden para las acciones al momento del diseño debido a que los objetos funcionan basados en la manera en que funcionan otros objetos.

Características Principales del Enfoque Orientado a Objetos
-          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.
-          Polimorfismo: El polimorfismo permite que una misma operación pueda llevarse a cabo de forma diferente en clases diferentes.
-          Herencia: El concepto de herencia se refiere al compartir de atributos y operaciones basadas 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.

Conceptos sobre el análisis de sistemas


  Conceptos sobre el  análisis de sistemas 


1. COMO ASUMIR EL PAPEL DEL ANALISTA DE SISTEMAS.
a) LA INFORMACIÓN COMO UN RECURSO DE LAS ORGANIZACIONES.
Las organizaciones han reconocido, desde hace mucho, la importancia de administrar recursos principales tales como la mano de obra y las materias primas. La información se ha colocado en un lugar adecuado como recurso principal.
Los tomadores de decisiones están comenzando a comprender que la información no es sólo un subproducto de la conducción, sino que a la vez alimenta a los negocios y puede ser el factor crítico para la determinación del éxito o fracaso de éstos.
Manejo de la información como recurso.
Para maximizar la utilidad de la información, un negocio la debe manejar correctamente tal como maneja los demás recursos. Los administradores necesitan comprender que hay costos asociados con la producción, distribución, seguridad, almacenamiento y recuperación de toda información. Aunque la información se encuentra a nuestro alrededor ésta no es gratis, y su uso es estratégico para posicionar la competitividad de un negocio.
Manejo de la información generada por computadora.
El manejo de información generada por computadora difiere en forma significativa del manejo de datos producidos manualmente. Por lo general, hay mayor cantidad de información de computadora a administrar. El costo de organizarla y mantenerla puede crecer a tasas alarmantes, y los usuarios frecuentemente la tratan menos escépticamente que la información obtenida por otras vías.
b) CONCEPTOS DE ANÁLISIS Y DISEÑO DE SISTEMAS.
Los sistemas de información son desarrollados con propósitos diferentes dependiendo de las necesidades del negocio. Los sistemas de procesamiento de transacciones (TPS por sus siglas en inglés) funcionan al nivel operacional de la organización, los sistemas de automatización de oficina (OAS por sus siglas en inglés) y los sistemas de trabajo de conocimiento (KWS por sus siglas en inglés) que dan cabida al trabajo a nivel de conocimiento.
Los sistemas de más alto nivel incluyen a los sistemas de apoyo a decisiones (DSS por sus siglas en inglés) así como a los sistemas de información gerencial (MIS por sus siglas en inglés). Los sistemas expertos aplican la experiencia de los tomadores de decisiones para resolver problemas específicos estructurados. Al nivel estratégico de la administración encontramos sistemas de apoyo a ejecutivos (ESS por sus siglas en inglés) y los sistemas de apoyo a decisiones de grupo (GDSS por sus siglas en inglés) ayudan a la toma de decisiones al mismo nivel, en una forma sin estructura o semiestructurada.
Sistemas de procesamiento de transacciones.
Los sistemas de procesamiento de transacciones (TPS) son sistemas de información computarizados desarrollados para procesar gran cantidad de transacciones rutinarias de los negocios. Los TPS eliminan el tedio de las transacciones operacionales necesarias y reducen el tiempo que alguna vez se requirió para ejecutarlas manualmente, aunque la gente todavía debe alimentar datos a los sistemas computarizados.
Sistemas de automatización de oficina y sistemas de manejo de conocimiento.
Al nivel de conocimiento de la organización hay dos clases de sistemas. Los sistemas de automatización de oficina (OAS) que dan soporte a los trabajadores de datos, quienes, por lo general, no crean un nuevo conocimiento sino que usan la información para analizarla y transformar datos, o para manejarla en alguna forma y luego compartirla o diseminarla formalmente por toda la organización y algunas veces más allá de ella. Los sistemas de manejo de conocimiento (KWS) dan soporte a los trabajadores profesionales, tales como científicos, ingenieros y doctores, les ayudan a crear un nuevo conocimiento que contribuya a la organización o a toda la sociedad.
Sistemas de información gerencial.
Los sistemas de información gerencial (MIS) no reemplazan a los sistemas de procesamiento de transacciones, sino que todos los MIS incluyen procesamiento de transacciones. Los MIS son sistemas de información computarizada que trabajan debido a la interacción resuelta entre gentes y computadoras. Requieren que las gentes, el software (programas de computadora) y el hardware (computadoras, impresoras, etc.) trabajen al unísono. Los sistemas de información dan soporte a un espectro más amplio de tareas organizacionales que los sistemas de procesamiento de transacciones, incluyendo el análisis de decisiones y la toma de decisiones.
Sistemas de apoyo a decisiones.
Una clase de más alto nivel en los sistemas de información computarizada son los sistemas de apoyo a decisiones (DSS). El DSS es similar al sistema de información gerencial tradicional en que ambos dependen de una base de datos como fuente. Un sistema de apoyo a decisiones se aparta del sistema de información gerencial tradicional en que enfatiza el apoyo a la toma de decisiones en todas sus fases, aunque la decisión actual todavía es del dominio del tomador de decisiones.
Sistemas expertos e inteligencia artificial.
La inteligencia artificial (AI por sus siglas en inglés) puede ser considerada la meta de los sistemas expertos. Los sistemas expertos son un caso muy especial de un sistema de información, cuyo uso ha sido factible para los negocios a partir de la reciente y amplia disponibilidad de hardware y software. Un sistema experto (también llamado un sistema basado en conocimiento) captura en forma efectiva y usa el conocimiento de un experto para resolver un problema particular experimentado en una organización. Observe que a diferencia del DSS, que deja la decisión final al tomador de decisiones, un sistema experto selecciona la mejor solución a un problema o a una clase específica de problemas.
Sistemas de apoyo a decisiones de grupo.
Cuando los grupos necesitan trabajar juntos para tomar decisiones semiestructuradas o sin estructura, un sistema de apoyo a decisiones de grupo puede plantear una solución. Los sistemas de apoyo a decisiones de grupo (GDSS) son usados en cuartos especiales, equipados en varias configuraciones diferentes, que permiten que los miembros del grupo interactúen con apoyo electrónico, frecuentemente en forma de software especializado y con una persona que dé facilidades al grupo. Los sistemas para decisiones de grupo están orientados para reunir a un grupo, a fin de que resuelva un problema con la ayuda de varios apoyos como votaciones, cuestionarios, aportación de ideas y creación de escenarios.
Sistemas de apoyo a ejecutivos.
Cuando los ejecutivos se acercan a la computadora, frecuentemente están buscando formas que les ayuden a tomar decisiones a nivel estratégico. Un sistema de apoyo a ejecutivos (ESS) ayuda a éstos, para organizar sus interacciones con el ambiente externo, proporcionando apoyo de graficos y comunicaciones  en lugares accesibles tales como salas de juntas u oficinas personales corporativas.
La necesidad del análisis y diseño de sistemas.
El análisis y diseño de sistemas, tal como es ejecutado por los analistas de sistemas, busca analizar sistemáticamente la entrada de datos o el flujo de datos, el proceso o transformación de los datos, el almacenamiento de datos y la salida de información dentro del contexto de un negocio particular. Además, el diseño y análisis de sistemas es usado para analizar, diseñar e implementar mejoras en el funcionamiento de los negocios que pueden ser logradas por medio del uso de sistemas de información computarizados. La instalación de un sistema sin la planeación adecuada lleva a grandes frustraciones, y frecuentemente causa que el sistema deje de ser usado.
Usuarios finales.
Cualquiera que interactúe con un sistema de información en el contexto de su trabajo en la organización puede ser llamado un usuario final. A lo largo de los años se han hecho borrosas las distinciones entre usuarios. Además, cualquier categoría de usuarios empleada no debe ser vista como excluyente. Sin importar cómo se hayan clasificado los usuarios finales, un hecho es pertinente al analista de sistemas: el involucramiento del usuario a lo largo del proyecto, es crítico para el desarrollo exitoso de los sistemas de información computarizados. Los analistas de sistemas, cuyos papeles dentro de la organización se tratan a continuación, son el otro componente esencial para el desarrollo de sistemas de información.
c) EL PAPEL DE EL ANALISTA DE SISTEMAS
El analista de sistemas como consultor.
El analista de sistemas frecuentemente actúa como consultor y, por lo tanto, puede ser contratado específicamente para que se encargue de los asuntos de los sistemas de información dentro de un negocio. Esto puede ser una ventaja, debido a que los consultores externos pueden llevar con ellos una perspectiva fresca que no poseen otros miembros de la organización. Pero también puede decirse que los analistas externos están en desventaja, debido a que la verdadera cultura organizacional nunca puede ser conocida por un extraño.
El analista de sistemas como experto de soporte.
Otro papel que tal vez requiera desarrollar es el de experto de soporte en un negocio donde se está empleado regularmente en alguna actividad de sistemas. En este papel el analista se apoya en su experiencia profesional relacionada con el hardware y software de computadora y su uso en el negocio. Este trabajo frecuentemente no es un proyecto de sistema completo, sino solamente pequeñas modificaciones o decisiones que afectan a un solo departamento.
El analista de sistemas como agente de cambio.
El papel más comprensivo y responsable que toma un analista de sistemas es el de agente de cambio, ya sea interno o externo al negocio. Como analista se es un agente de cambio cada vez que se ejecuta cualquiera de las actividades del ciclo de vida del desarrollo de sistemas (tratado en la siguiente sección) y se está presente en el negocio por un periodo extendido (desde dos semanas hasta más de un año). Un agente de cambio puede ser definido como una persona que sirve de catalizador para el cambio, desarrolla un plan para el cambio y trabaja junto con otros para facilitar ese cambio.

d) EL CICLO DE VIDA DEL DESARROLLO DE SISTEMAS.


UML (Lenguaje Unificado de Modelado)

                                     UML.(Lenguaje Unificado de Modelado)

UML [UML] es un lenguaje para especificar, construir, visualizar y documentar los artefactos de un sistema de software orientado a objetos (OO). Un artefacto es una información que es utilizada o producida mediante un proceso de desarrollo de software.

UML se quiere convertir en un lenguaje estándar con el que sea posible modelar todos los componentes del proceso de desarrollo de aplicaciones. Sin embargo, hay que tener en cuenta un aspecto importante del modelo: no pretende definir un modelo estándar de desarrollo, sino únicamente un lenguaje de modelado. Otros métodos de modelaje como OMT (Object Modeling Technique) o Booch sí definen procesos concretos. En UML los procesos de desarrollo son diferentes según los distintos dominios de trabajo; no puede ser el mismo el proceso para crear una aplicación en tiempo real, que el proceso de desarrollo de una aplicación orientada a gestión, por poner un ejemplo.

Las diferencias son muy marcadas y afectan a todas las faces del proceso. El método del UML recomienda utilizar los procesos que otras metodologías tienen definidos.

Los Inicios

A partir del año 1994, Grady Booch [Booch96](precursor de Booch '93) y Jim Rumbaugh (creador de OMT) se unen en una empresa común, Rational Software Corporation, y comienzan a unificar sus dos métodos. Un año más tarde, en octubre de 1995, aparece UML (Unified Modeling Language) 0.8, la que se considera como la primera versión del UML. A finales de ese mismo año, Ivan Jacobson, creador de OOSE (Object Oriented Software Engineer) se añade al grupo.

Como objetivos principales de la consecución de un nuevo método que aunara los mejores aspectos de sus predecesores, sus protagonistas se propusieron lo siguiente:
  • El método debía ser capaz de modelar no sólo sistemas de software sino otro tipo de sistemas reales de la empresa, siempre utilizando los conceptos de la orientación a objetos (OO).
  • Crear un lenguaje para modelado utilizable a la vez por máquinas y por personas.
  • Establecer un acoplamiento explícito de los conceptos y los artefactos ejecutables.
  • Manejar los problemas típicos de los sistemas complejos de misión crítica.
Lo que se intenta es lograr con esto que los lenguajes que se aplican siguiendo los métodos más utilizados sigan evolucionando en conjunto y no por separado. Y además, unificar las perspectivas entre diferentes tipos de sistemas (no sólo software, sino también en el ámbito de los negocios), al aclarar las fases de desarrollo, los requerimientos de análisis, el diseño, la implementación y los conceptos internos de la OO.

2. Modelado de objetos


En la especificación del UML podemos comprobar que una de las partes que lo componen es un metamodelo formal. Un metamodelo es un modelo que define el lenguaje para expresar otros modelos. Un modelo en OO es una abstracción cerrada semánticamente de un sistema y un sistema es una colección de unidades conectadas que son organizadas para realizar un propósito específico. Un sistema puede ser descripto por uno o más modelos, posiblemente desde distintos puntos de vista.

Una parte del UML define, entonces, una abstracción con significado de un lenguaje para expresar otros modelos (es decir, otras abstracciones de un sistema, o conjunto de unidades conectadas que se organizan para conseguir un propósito). Lo que en principio puede parecer complicado no lo es tanto si pensamos que uno de los objetivos del UML es llegar a convertirse en una manera de definir modelos, no sólo establecer una forma de modelo, de esta forma simplemente estamos diciendo que UML, además, define un lenguaje con el que podemos abstraer cualquier tipo de modelo.

El UML es una técnica de modelado de objetos y como tal supone una abstracción de un sistema para llegar a construirlo en términos concretos. El modelado no es más que la construcción de un modelo a partir de una especificación.

Un modelo es una abstracción de algo, que se elabora para comprender ese algo antes de construirlo. El modelo omite detalles que no resultan esenciales para la comprensión del original y por lo tanto facilita dicha comprensión.

Los modelos se utilizan en muchas actividades de la vida humana: antes de construir una casa el arquitecto utiliza un plano, los músicos representan la música en forma de notas musicales, los artistas pintan sobre el lienzo con carboncillos antes de empezar a utilizar los óleos, etc. Unos y otros abstraen una realidad compleja sobre unos bocetos, modelos al fin y al cabo. La OMT, por ejemplo, intenta abstraer la realidad utilizando tres clases de modelos OO: el modelo de objetos, que describe la estructura estática; el modelo dinámico, con el que describe las relaciones temporales entre objetos; y el modelo funcional que describe las relaciones funcionales entre valores. Mediante estas tres fases de construcción de modelos, se consigue una abstracción de la realidad que tiene en sí misma información sobre las principales características de ésta.

Los modelos además, al no ser una representación que incluya todos los detalles de los originales, permiten probar más fácilmente los sistemas que modelan y determinar los errores. Según se indica en la Metodología OMT (Rumbaugh), los modelos permiten una mejor comunicación con el cliente por distintas razones:
  • Es posible enseñar al cliente una posible aproximación de lo que será el producto final.
  • Proporcionan una primera aproximación al problema que permite visualizar cómo quedará el resultado.
  • Reducen la complejidad del original en subconjuntos que son fácilmente tratables por separado.

Se consigue un modelo completo de la realidad cuando el modelo captura los aspectos importantes del problema y omite el resto. Los lenguajes de programación que estamos acostumbrados a utilizar no son adecuados para realizar modelos completos de sistemas reales porque necesitan una especificación total con detalles que no son importantes para el algoritmo que están implementando. En OMT se modela un sistema desde tres puntos de vista diferentes donde cada uno representa una parte del sistema y una unión lo describe de forma completa. En esta técnica de modelado se utilizó una aproximación al proceso de implementación de software habitual donde se utilizan estructuras de datos (modelo de objetos), las operaciones que se realizan con ellos tienen una secuencia en el tiempo (modelo dinámico) y se realiza una transformación sobre sus valores (modelo funcional).

UML utiliza parte de este planteamiento obteniendo distintos puntos de vista de la realidad que modela mediante los distintos tipos de diagramas que posee. Con la creación del UML se persigue obtener un lenguaje que sea capaz de abstraer cualquier tipo de sistema, sea informático o no, mediante los diagramas, es decir, mediante representaciones gráficas que contienen toda la información relevante del sistema. Un diagrama es una representación gráfica de una colección de elementos del modelo, que habitualmente toma forma de grafo donde los arcos que conectan sus vértices son las relaciones entre los objetos y los vértices se corresponden con los elementos del modelo. Los distintos puntos de vista de un sistema real que se quieren representar para obtener el modelo se dibuja dé forma que se resaltan los detalles necesarios para entender el sistema.