Está en la página 1de 10

Anlisis y modelado de sistemas de informacin

Ingeniera Informtica

2012

Unidad 1. El modelo del proceso de software

OBJETIVO GENERAL: Analizar y modelar proyectos de sistemas de informacin aplicando el paradigma orientado a objetos.

Introduccin. Hoy en da la tecnologa orientada a objetos ya no se aplica solamente a los lenguajes de programacin, adems se viene aplicando en el anlisis y diseo con mucho xito, al igual que en las bases de datos. Es que para hacer una buena programacin orientada a objetos hay que desarrollar todo el sistema aplicando esta tecnologa, de ah la importancia del anlisis y el diseo orientado a objetos. 1.1 Conceptualizacin de tecnologa orientada a objetos La Programacin Orientada a Objetos (POO u OOP segn siglas en ingls) es un paradigma de programacin que define los programas en trminos de "clases de objetos", objetos que son entidades que combinan estado (es decir, datos), comportamiento (esto es, procedimientos o mtodos) e identidad (propiedad del objeto que lo diferencia del resto). La programacin orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y mdulos ms fciles de escribir, mantener y reutilizar.

Recopilado por: M.I Norma H. Jimnez Alor

Anlisis y modelado de sistemas de informacin

Ingeniera Informtica

2012

1.2 Metodologas emergentes de desarrollo de software Basndonos en la idea que estamos en tiempos de tecnologas cambiantes y de comunicacin global, necesitamos optimizar el anlisis y diseo de los sistemas y aplicaciones. Se necesita crear software que pueda ser implementado en cualquier infraestructura y que pueda ser modificado con facilidad por cualquier persona en el mundo. Por tal razn, se han creado varias metodologas para anlisis y diseo orientado a objetos, las cuales estandarizan la forma de trabajar en el diseo de un software. Estas metodologas permiten que cualquier persona pueda trabajar en su diseo. Qu es una metodologa de desarrollo de software? Conjunto de procedimientos, tcnicas, herramientas y un soporte documental que ayuda a los desarrolladores a realizar nuevo software. SCRUM. Scrum es un "agile process" que nos permite enfocarnos en la generacin de valor en el mnimo tiempo. Nos permite tener un control continuo sobre el estado actual de nuestro software. El cliente establece las prioridades y el equipo se auto-organiza para determinar la mejor forma de entregar los requerimientos con ms prioridad. Scrum asume que el proceso de desarrollo de software es complicado e impredecible y lo trata como una caja negra en lugar de un proceso terico totalmente definido. Esta es una de las mayores diferencias entre Scrum y otras metodologas de desarrollo de software: con Scrum se trata de evitar los tpicos problemas de stas otras metodologas ms formales cmo: o Los requerimientos no se entienden plenamente al principio del proceso. o Los requerimientos cambian durante el proceso. o El mismo proceso puede ser imprevisible si se est trabajando con nuevas tecnologas. Fases El proceso de desarrollo Scrum se compone de 5 actividades importantes: o Planes de lanzamientos. o Distribucin, revisin y ajuste de los estndares de producto. o Sprint. Es donde el desarrollo de software se lleva a cabo. Un Sprint consta de los siguientes sub-actividades: Elaborar, integrar, revisar y ajustar. o Revisin de Sprint. Cada Sprint es seguida por una revisin de Sprint. Durante esta revisin, el software desarrollado en el Sprint anterior se revisa y si es necesario se le aaden nuevos tems del backlog. El grupo de revisores pueden ser: las partes interesadas del proyecto, gestores, desarrolladores y, en ocasiones los clientes, ventas y marketing. Las actividades, y la revisin de Sprint se repiten hasta que el producto se considera listo para su distribucin por los participantes en el proyecto. Luego, el proyecto pasa a la fase de cierre en que el producto se prepara para el lanzamiento y la distribucin.
Recopilado por: M.I Norma H. Jimnez Alor

Anlisis y modelado de sistemas de informacin

Ingeniera Informtica

2012

o Cierre. En esta fase tienen lugar las actividades de debugging, marketing y promocin. Al acabar esta fase el proyecto quedar cerrado. Extreme programming. (Programacin extrema - XP) o Metodologa para un gil desarrollo de software. o Programacin basada en los deseos del cliente. o El equipo lo conforman los jefes de proyecto, desarrolladores y el cliente. o Se rige por valores y principios. Valores. o Comunicacin: Crear software requiere de sistemas comunicados. o Simplicidad: Empezar con lo necesario y requerido y trabajar desde ah. o Retroalimentacin: Del sistema, del cliente, y del equipo. o Valenta: Programa para hoy y no para maana. o Respeto: El equipo debe trabajar como uno, sin hacer decisiones repentinas. Actividades. o Codificacin: La parte mas importante de XP. o Pruebas: Nunca se puede estar seguro de algo hasta haberlo probado. o Escuchar: Escuchar los requisitos del cliente acerca del sistema a crear. o Diseo: Crear una estructura del diseo para evitar problemas. Ventajas: o Programacin organizada. o Menor taza de errores. o Satisfaccin del programador. o Desventajas: o Es recomendable emplearlo solo en proyectos a corto plazo. o Altas comisiones en caso de fallar. Beneficios: o El cliente tiene el control sobre las prioridades. o Se hacen pruebas continuas durante el proyecto. o La XP es mejor utilizada en la implementacin de nuevas tecnologas donde los requerimientos cambian rpidamente. Rational Unified Process. (Proceso Racional Unificado - RUP) Es un proceso de desarrollo de software y junto con el Lenguaje Unificado de Modelado UML, constituye la metodologa estndar ms utilizada para el anlisis, implementacin y documentacin de sistemas orientados a objetos.

Recopilado por: M.I Norma H. Jimnez Alor

Anlisis y modelado de sistemas de informacin

Ingeniera Informtica

2012

Ventajas. o Un proceso de software hecho a la medida para ser publicado y hacerlo accesible para todo el equipo del proyecto. o Un proceso de software configurable, para satisfacer necesidades especficas de un proyecto. o Una definicin comn del proceso que puede ser compartida por todo el equipo de desarrollo, ayudando a asegurar una comunicacin clara y sin ambigedades entre los miembros del equipo. o Ofrece a cada usuario, un filtrado personalizado de la definicin del proceso publicado, acorde con su rol dentro del proyecto. Agile Unified Process. (Proceso gil Unificado AUP) Los procesos giles de desarrollo de software, conocidos anteriormente como metodologas livianas, intentan evitar los tortuosos y burocrticos caminos de las metodologas tradicionales enfocndose en la gente y los resultados. El Proceso Unificado gil de Scott Ambler o Agile Unified Process (AUP) en ingls es una versin simplificada del Proceso Unificado de Rational (RUP). Describe de una manera simple y fcil de entender la forma de desarrollar aplicaciones de software de negocio usando tcnicas giles y conceptos que an se mantienen vlidos en RUP. El AUP aplica tcnicas giles incluyendo Desarrollo Dirigido por Pruebas (test driven development TDD), Modelado gil, Gestin de Cambios gil, y Refactorizacin de Base de Datos para mejorar la productividad. AUP se preocupa especialmente de la gestin de riesgos. Propone que aquellos elementos con alto riesgo obtengan prioridad en el proceso de desarrollo y sean abordados en etapas tempranas del mismo. Para ello, se crean y mantienen listas identificando los riesgos desde etapas inciales del proyecto. Al igual que en RUP, en AUP se establecen cuatro fases que transcurren de manera consecutiva y que acaban con hitos claros alcanzados: Inception(Concepcin): El objetivo de esta fase es obtener una comprensin comn cliente-equipo de desarrollo del alcance del nuevo sistema y definir una o varias arquitecturas candidatas para el mismo. Elaboracin: El objetivo es que el equipo de desarrollo profundice en la comprensin de lo requisitos del sistema y en validar la arquitectura.

Recopilado por: M.I Norma H. Jimnez Alor

Anlisis y modelado de sistemas de informacin

Ingeniera Informtica

2012

Construccin: Durante la fase de construccin el sistema es desarrollado y probado al completo en el ambiente de desarrollo. Transicin: El sistema se lleva a los entornos de preproduccin donde se somete a pruebas de validacin y aceptacin y finalmente se despliega en los sistemas de produccin. Como conclusin Qu metodologa utilizar? Pues depende: o Si formas parte de un equipo de desarrollo en un proyecto grande y te toca decidir qu metodologa hay que utilizar significa que tienes un puesto de responsabilidad. Escoge una metodologa moderna, bien definida, que d respuesta a las necesidades del proyecto. o Si formas parte de un equipo de desarrollo en un proyecto grande y no ocupas un puesto de responsabilidad, no deberas decidir qu metodologa utilizar: alguien lo decidir por t. Si nadie toma esa decisin... Mucho nimo!... el proyecto en el que ests involucrado est destinado al fracaso. o Si formas parte de un equipo pequeo en un proyecto pequeo, lo mejor es consensuar la metodologa a utilizar. Incluso, combinar buenas ideas de ms de una. o La "Programacin estructurada" o la "Programacin Orientada a Objetos" son paradigmas o modelos de programacin. Indican pautas de comportamiento en los sistemas de programacin... no tienen nada que ver con el ciclo de vida del software ni la manera en la que debe realizarse cada tarea para un proyecto concreto... as pues... NO SON METODOLOGAS. o Los trminos "Ciclo de vida en espiral", "Incremental", en "Cascada", con "prototipo", etc... Indican esquemas generales de organizacin en las tareas del ciclo de vida, unas con respecto a otras y con respecto a otros aspectos como el tiempo, los requisitos o el riesgo. Actualmente se denominan "PATRONES" del ciclo de vida del software, aunque antao fueron denominados simplemente distintos "Ciclos de vida". Indican ideas estructurales sencillas en el proceso de desarrollo, y no la manera en la que debe realizarse cada tarea del ciclo para un proyecto concreto... as pues... NO SON METODOLOGAS. o El lenguaje UML (Unified Modeling Languaje) es un gran logro de la ingeniera. An con sus carencias, es algo muy importante: un lenguaje comn para que todos los profesionales del desarrollo de sistemas -de software o no- expresen sus ideas... pero el UML no le indica a nadie la manera de realizar las cada tarea en un proyecto concreto: tan solo es una herramienta para expresar ideas... as pues... NO ES UNA METODOLOGA. Sin embargo, algunas metodologas de las que hemos comentado, como RUP o METRICA hacen referencia a UML como herramienta para expresar ideas. 1.3 Mtodos de desarrollo de software orientado a objetos Existen numerosos mtodos de diseo orientado a objetos: Booch, Yourdon-Coad, Martn, Shlaer & Mellor, Rumbaugh, por citar algunos. Pero en general como ocurre encualquier proyecto estructurado, un proyecto software OO se compone de las siguientes etapas:

Recopilado por: M.I Norma H. Jimnez Alor

Anlisis y modelado de sistemas de informacin

Ingeniera Informtica

2012

o Anlisis Orientado a Objetos (AOO) o Diseo Orientado a Objetos (DOO) o Programacin Orientada a Objetos (POO) El mtodo de Booch considera que las etapas del proceso en un desarrollo orientado a objetos son: 1. Identificar las claves y objetos en un nivel dado de abstraccin. 2. Identificar la semntica de estas clases y objetos. 3. Identificar las relaciones entre clases y objetos. 4. Especificar la interfaz y la implementacin de estas clases y objetos. Estas etapas suelen seguirse por la mayora de los mtodos de diseo OO existentes. De hecho, para los sistemas orientados a objetos se define el siguiente diseo en pirmide que contempla el mtodo de Booch.

La capa del subsistema.- Contiene una representacin de cada uno de los subsistemas que le permiten al software conseguir los requisitos definidos por el cliente e implementar la infraestructura tcnica que los soporta. La capa de clases y Objetos.- Contiene las jerarquas de clase que permiten crear el sistema usando generalizaciones y especializaciones mejor definidas. Esta capa tambin contiene representaciones de diseo para cada objeto. La capa de mensajes.- Contiene los detalles que le permiten a cada objeto comunicarse con sus colaboradores. Esta capa establece las interfaces externas e internas para el sistema. La capa de responsabilidades.- Contiene las estructuras de datos y el diseo algortmico para todo los atributos y operaciones de cada objeto. Esta pirmide de diseo se centra entonces en el diseo de un producto o sistema especfico.

Recopilado por: M.I Norma H. Jimnez Alor

Anlisis y modelado de sistemas de informacin

Ingeniera Informtica

2012

1.4 El Proceso de Desarrollo Unificado (RUP) Es un proceso que puede especializarse para una gran variedad de sistemas de software, en diferentes reas de aplicacin, diferentes tipos de organizaciones, diferentes niveles de aptitud y diferentes tamaos de proyecto. RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologas adaptables al contexto y necesidades de cada organizacin Es el resultado de varios aos de desarrollo y uso prctico en el que se han unificado tcnicas de desarrollo, a travs del UML, y trabajo de muchas metodologas utilizadas por los clientes. La versin que se ha estandarizado vio la luz en 1998 y se conoci en sus inicios como Proceso Unificado de Rational 5.0; de ah las siglas con las que se identifica a este proceso de desarrollo. Elementos bsicos de RUP Con RUP, un proceso de desarrollo es representado usando un conjunto de elementos de modelado, tales como: roles, actividades, artefactos y flujos de trabajo (workflows), entre otros. Un rol expresa quin (individuo o grupo) hace un trabajo, una actividad describe cmo es hecho el trabajo y un artefacto captura el trabajo realizado. En RUP se encuentran 4 elementos bsicos: los roles (el quin), las actividades (el cmo), los artefactos (el qu) y los flujos de trabajo (el cundo). Caractersticas principales de RUP o Unifica los mejores elementos de metodologas anteriores. o Preparado para desarrollar grandes y complejos proyectos. o Orientado a Objetos. o Utiliza el UML como lenguaje de representacin visual. Fases del ciclo de vida de RUP Fase de inicio. Es el alcanzar consenso entre todos los inversionistas y afectados por el desarrollo del proyecto, de los objetivos del ciclo de vida del proyecto. Fase de elaboracin. Consiste en definir y establecer la base de la arquitectura del sistema, brindando as una base estable para la mayor parte del esfuerzo de diseo e implementacin en la fase de construccin. Fase de construccin. Se enfoca de forma detallada en el diseo, implementacin y prueba hasta lograr un sistema completo, con una alta calidad a un costo efectivo. La meta de esta fase, es resolver los requerimientos restantes y completar el desarrollo del sistema sobre la arquitectura base. Fase de transicin. Se enfoca en asegurar que el software est listo para los usuarios finales. En la fase de transicin, puede extenderse algunas iteraciones, incluyendo las pruebas del producto

Recopilado por: M.I Norma H. Jimnez Alor

Anlisis y modelado de sistemas de informacin

Ingeniera Informtica

2012

dentro de la preparacin para su publicacin y el hacer los ajustes menores basados en la retroalimentacin de los usuarios. El ciclo de vida de RUP se caracteriza por: Dirigido por casos de uso: Los casos de uso reflejan lo que los usuarios futuros necesitan y desean, lo cual se capta cuando se modela el negocio y se representa a travs de los requerimientos. Centrado en la arquitectura: La arquitectura muestra la visin comn del sistema completo en la que el equipo de proyecto y los usuarios deben estar de acuerdo, por lo que describe los elementos del modelo que son ms importantes para su construccin, los cimientos del sistema que son necesarios como base para comprenderlo, desarrollarlo y producirlo econmicamente. Iterativo e Incremental: Una iteracin involucra actividades de todos los flujos de trabajo, aunque desarrolla fundamentalmente algunos ms que otros. Es prctico dividir el trabajo en partes ms pequeas o miniproyectos. Cada miniproyecto es una iteracin que resulta en un incremento. 1.5 El lenguaje de modelado unificado UML. o Es una herramienta o Lenguaje de Modelamiento Unificado que permite a los creadores de sistemas crear diseos que capturen sus ideas en una forma convencional y fcil de comprender, y as poder comunicrselas a otras personas. o El Lenguaje de Modelado Unificado (UML:Unified Modeling Language) es la sucesin de una serie de mtodos de anlisis y diseo orientadas a objetos que aparecen a fines de los 80's y principios de los 90s. UML es llamado un lenguaje de modelado, no un mtodo. o El lenguaje de modelado es la notacin (principalmente grfica) que usan los mtodos para expresar un diseo. El proceso indica los pasos que se deben seguir para llegar a un diseo. o Define una notacin que se expresa como diagramas que sirven para representar modelos/subsistemas o partes de ellos. o Define una estructura para ir del anlisis al diseo y de ste a la implementacin.

Recopilado por: M.I Norma H. Jimnez Alor

Anlisis y modelado de sistemas de informacin

Ingeniera Informtica

2012

Vistas de UML 5 vistas- 9 diagramas

Los diagramas expresan grficamente partes del modelo

Un modelo UML esta compuesto por tres clases de bloques de construccin: Elementos: Los elementos son abstracciones de cosas reales o ficticias (objetos, acciones, etc.) Relaciones: relacionan los elementos entre s. Diagramas: Son colecciones de elementos con sus relaciones. o La finalidad de los diagramas es presentar diversas perspectivas de un sistema, a los cuales se les conoce como modelo. o Es importante destacar que le modelo UML describe lo que supuestamente har un sistema, pero no dice como implementar dicho sistema.
Recopilado por: M.I Norma H. Jimnez Alor

Anlisis y modelado de sistemas de informacin

Ingeniera Informtica

2012

Referencias electrnicas http://latecladeescape.com/articulos/1550-metodologias-de-desarrollo-del-software http://www.omitsis.com/scrum-como-metodologia-de-desarrollo http://ingsoftware072301.obolog.com/rational-unified-process-rup-proceso-racional-unificado2006524 http://www.ingenieriadesoftware.mex.tl/images/18149/METODOLOGIAS%20AGILES.pdf http://dpinto.cs.buap.mx/semadoo/mario.pdf http://www.ecured.cu/index.php/Proceso_Unificado_de_Desarrollo http://www.slideshare.net/ecastrojimenez/uml-lenguaje-de-modelamiento-unificado-presentation

Recopilado por: M.I Norma H. Jimnez Alor