Professional Documents
Culture Documents
Unidad de Trabajo n1: Visin general del desarrollo del software y primeros pasos en la programacin usando IDEs (Semana 1) SEMANA 1: Primeros pasos en la programacin usando IDEs SEMANA 2: Introduccin al desarrollo del Software
Contenido
Esquema del documento .............................................................................................................. 3 Introduccin al desarrollo del software ........................................................................................ 3 Programacin Spaguetti ............................................................................................................ 3 Desventajas de la programacin spaguetti ............................................................................... 3 La crisis del software ................................................................................................................. 4 Ingeniera del software ............................................................................................................. 4 Qu es el ciclo de vida de software? ....................................................................................... 4 Funciones principales de un ciclo de vida del software ............................................................ 4 Ventajas de seguir un ciclo de vida del software ...................................................................... 5 Quines intervienen en el ciclo de vida del software?............................................................ 5 Estudio de los diferentes ciclos de vida. ....................................................................................... 5 Modelo en Cascada ................................................................................................................... 6 Modelo Incremental.................................................................................................................. 6 Modelo en Espiral ..................................................................................................................... 7 Modelos de Sistemas Orientados a Objetos (OO)..................................................................... 9 Primeros pasos en la orientacin a objetos ................................................................................ 10 Clases, objetos, atributos y comportamientos ....................................................................... 10 Qu es UML? ......................................................................................................................... 11 Diagrama de clases.................................................................................................................. 12 Diagrama de casos de uso ....................................................................................................... 13 Diagrama de estados ............................................................................................................... 15 Diagrama de Actividades ......................................................................................................... 15 Otras caractersticas de UML .................................................................................................. 18 Paquetes .............................................................................................................................. 18 Notas ................................................................................................................................... 18 RUP (Rational Unified Process) .................................................................................................. 19 1
Metodologas .............................................................................................................................. 22 Metodologas vs Ciclos de Vida ............................................................................................... 22 Clasificacin de las metodologas............................................................................................ 22 Metodologas tradicionales vs recientes................................................................................. 22 Bibliografa .................................................................................................................................. 23
Sean incompletas o no reflejen bien las necesidades del cliente, es decir, que no realicen todas las funciones requeridas y, adems, lo hagan con una escasa fiabilidad. Provoquen el descontento de los clientes, pues se producen retrasos en la entrega (no se conoce el momento exacto en el que se entregarn), aparecen una vez que la aplicacin ha sido entregada (lgico al no haberse realizado de forma sistemtica actividades de verificacin y validacin en el proyecto).
El ciclo de vida software da respuesta a las siguientes preguntas de la gestin de un proyecto de software: Qu har a continuacin? Cunto tiempo continuar hacindolo?
Modelo en Cascada
El modelo en cascada es el ms antiguo. El nmero de fases o etapas que se proponen en este
ciclo suele variar, aunque suelen ser:
Algunas caractersticas de este ciclo son: Cada fase empieza cuando se ha terminado la fase anterior. Para pasar de una fase a otra es necesario conseguir todos los objetivos de la etapa previa. Ayuda a prevenir que se sobrepasen las fechas de entrega y los costes esperados.
Algunas de las crticas del modelo en cascada son: No refleja el proceso real de desarrollo de software. Los proyectos reales raramente siguen este flujo secuencial, puesto que siempre hay iteraciones. Aunque en este modelo la iteracin est permitida en etapas contiguas en la vida real normalmente la iteracin abarca ms de una etapa. Un caso tpico es la redefinicin de los requisitos cuando se est codificando la aplicacin. Se tarda mucho tiempo en pasar por todo el ciclo, dado que hasta que no se finalice una fase no se pasa a la siguiente. As, se podra dar el caso de no salir nunca de la fase de anlisis de requisitos software. Acenta el fracaso de la industria del software con el usuario final. En este caso, el usuario debe tener paciencia, ya que el sistema en funcionamiento no estar disponible hasta las fases finales del proyecto.
Modelo Incremental
El modelo incremental corrige la necesidad de una secuencia no lineal de pasos de desarrollo. En el modelo incremental se va creando el sistema software aadiendo componentes funcionales al sistema (llamados incrementos). En cada paso sucesivo, se actualiza el sistema con nuevas funcionalidades o requisitos, es decir, cada versin o refinamiento parte de una versin previa y le aade nuevas funciones. El sistema software ya no se ve como una nica entidad monoltica con una fecha fija de entrega, sino como una integracin de resultados sucesivos obtenidos despus de cada iteracin. 6
El modelo incremental se ajusta a entornos de alta incertidumbre, por no tener la necesidad de poseer un conjunto exhaustivo de requisitos, especificaciones, diseos, etc., al comenzar el sistema, ya que cada refinamiento ampla los requisitos y las especificaciones derivadas de la fase anterior.
Algunas Crticas al modelo incremental son las siguientes: Se evitan proyectos largos y se entrega Algo de valor a los usuarios con cierta frecuencia. El usuario se involucra ms Difcil de evaluar el coste total. Difcil de aplicar a sistemas transaccionales que tienden a ser integrados y a operar como un todo. Requiere gestores experimentados Los errores en los requisitos se detectan tarde.
Modelo en Espiral
El modelo en espiral consta de una serie de ciclos. Cada uno empieza identificando los objetivos, las alternativas y las restricciones del ciclo. Una vez evaluadas las alternativas respecto a los objetivos y teniendo en cuenta las restricciones, se lleva a cabo el ciclo correspondiente para, una vez finalizado empezar a plantear el prximo.
Algunas caractersticas del mdelo en espiral son: Reconocimiento explcito de las diferentes alternativas. Identificacin de riesgos para cada alternativa desde el comienzo. Al dividir el proyecto en ciclos, al final de cada uno existe un acuerdo para los cambios que hay que realizar en el sistema. El modelo se adapta a cualquier tipo de actividad adicional. El modelo en espiral puede aplicarse en la mayora de las ocasiones. Sin embargo, en algunos casos hay que resolver ciertas dificultades: 8
En general, todos los expertos en tecnologa de objetos proponen seguir un desarrollo iterativo e incremental. Es iterativo porque las tareas de cada fase se llevan a cabo de forma iterativa haciendo evolucionar el sistema. Es incremental porque el sistema se divide en partes cada una de las cuales se desarrolla de forma completa, creando un pool (piscina en espaol) de componentes reutilizables. Ms adelante vamos a ver el modelo de ciclo de vida orientado a objeto de RUP (Rational Unified Process) como caso particular de ciclo de vida OO. Este ciclo de vida (RUP) no es el nico pensado para la orientacin de objetos. Pero si resulta uno de los primeros con xito puesto que surge de los tres amigos, que son Grady Booch, James Rumbaugh e Ivar Jacobson, que despus de trabajar en diferentes empresas y realizar trabajos por separado sobre la orientacin a objetos con mucho xito, son contratados por la empresa Rational Software Corporation en 1994 que les permite desarrollar en conjunto UML y RUP.
Luego, tenemos lavadoras concretas (objetos), por ejemplo Mi lavadora es blanca, de marca otsein, con nmero de serie 123-ARS-3, y de 75x120cm, etc. Una clase es por tanto una pantilla implementada en software que describe un conjunto de objetos con atributos y comportamiento similares. En UML se representara:
Como se ve, es un recuadro con tres filas: La 1 fila es el nombre de la clase. La 2 fila contiene los atributos. La 3 fila contiene los mtodos. Una instancia u objeto de una clase es una representacin concreta y especfica de una clase y que reside en la memoria del ordenador.
10
En UML se representara:
Dnde aparece un cuadrado con: El nombre del objeto: Mi Lavadora. El nombre de la clase Lavadora a la que pertenece el objeto Mi lavadora. El smbolo de dos puntos : que separa el nombre del objeto y la clase en la que se encuentra. Tanto el objeto, los dos puntos y el nombre de la clase estn subrayados. Atributos o propiedades Los atributos son las caractersticas individuales que diferencian un objeto de otro y determinan su apariencia, estado u otras cualidades. Los atributos se guardan en variables denominadas de instancia, y cada objeto particular puede tener valores distintos para estas variables. Comportamiento El comportamiento de los objetos de una clase se implementa mediante funciones miembro o mtodos. Un mtodo es un conjunto de instrucciones que realizan una determinada tarea y son similares a las funciones de los lenguajes estructurados.
Qu es UML?
El UML est compuesto por diversos elementos grficos que se combinan para conformar diagramas. La finalidad de los diagramas es presentar diversas perspectivas de un sistema, a las cuales se les conoce como modelo. El modelo UML de un sistema es similar a un modelo a escala de un edificio junto con la interpretacin del artista del esdificio. Es importante destacar que un modelo UML describe lo que supuestamente har un sistema, pero no dice cmo implementar dicho sistema. A continuacin se describirn los diagramas ms comunes del UML y los conceptos que representan. Concretamente veremos esta semana: Diagrama de clase Diagrama de casos de uso Diagrama de estados Diagrama de actividades
11
Diagrama de clases
Es un diagrama en el que se representan las relaciones entre clases. Observa los siguientes ejemplos:
Recuerda que cada clase se representa con un rectngulo que tiene dentro tres filas, tal y como lo vimos para el caso de la clase Lavadora. En los ejemplos que se muestran anteriormente no se muestra la fila de los atributos ni la fila de los mtodos porque lo que se quiere resaltar es la multiplicidad. En el primer ejemplo, se lee: Dado un esposo ste est casado con una esposa. Se trata pues de una relacin uno a uno. Tambin se puede leer a la inversa: Dada una esposa, sta est casada con un esposo. En el segundo ejemplo, se lee: Dado un maestro ste ensea a muchos estudiantes. Se trata pues de una relacin uno a muchos. Si se lee a la inversa: Dado un estudiante, ste es enseado por un solo Maestro. Ves la diferencia? 12
En el tercer ejemplo, se lee: Dado un cajero ste atiende de 1 a muchos clientes. Se trata pues de una relacin uno a uno o ms. Si se lee a la inversa: Dado un cliente, ste es atendido por un solo Cajero. Fjate que los puntos suspensivos .. sirven para indicar el mnimo y el mximo de multiplicidad. En el cuarto ejemplo, se lee: Dada una casa ste tiene 0 o ninguna chimenea. Se trata pues de una relacin una a ninguna o una. Si se lee a la inversa: Dada una chimenea, sta es de una casa. Fjate que la coma indica las posibles multiplicidades de la chimenea, es decir, una o ninguna.
Se le llama actor a toda entidad externa al sistema que guarda una relacin con ste y que le demanda una funcionalidad. Esto incluye a los operadores humanos pero tambin incluye a todos los sistemas externos, adems de entidades abstractas, como el tiempo. En el caso del caso de uso anterior: el Usuario de la lavadora es un actor. Lavar ropa es un caso de uso. La lnea entre el actor y el caso de uso es una relacin (asociacin) que denota la participacin del actor en el caso de uso.
13
En este caso se trata de recoger la operacin de una mquina de gaseosas. El diagrama de casos de uso tiene los siguientes elementos: Actores: Cliente, Representante del proveedor y Recolector. Casos de uso: Comprar gaseosa, Reabastecer y Recolectar dinero. El contexto, que es el recuadro que supone el lmite del sistema. Las relaciones, que son las lneas que unen los actores con los casos de uso que utilizan.
A continuacin se describen los actores y los casos de uso que utiliza cada uno: Cliente, o persona que introduce el dinero en la mquina para comprar una gaseosa. Representante del proveedor, que es el que Reabastece de gaseosas la mquina cada cierto tiempo. Recolector, que es la persona que abre la mquina para recoger el dinero recaudado por la mquina de gaseosa.
14
Diagrama de estados
En cualquier momento, un objeto se encuentra en un estado en particular. Una persona puede ser recin nacida, nia, adolescente, joven o adulta. Un elevador se mover hacia arriba, estar en estado de reposo o se mover hacia abajo. Una lavadora podr estar en fase de remojo, lavado, enjuague, centrifugado o apagada. A continuacin se muestra un ejemplo sobre los estados en que puede estar una lavadora. El smbolo que est en la parte superior de la figura representa el estado inicial y el de la parte inferior el estado final.
Diagrama de Actividades
Un diagrama de actividades ha sido diseado para mostrar una visin simplificada de lo que ocurre durante una operacin o proceso. Es una extensin de un diagrama de estados como el que vimos en el apartado anterior. La diferencia con el diagrama de estados es que ste muestra los estados de un objeto (en un rectngulo con bordes redondeados) y representa las actividades como flechas que conectan los estados. El diagrama de actividades, sin embargo, resalta precisamente las actividades. A cada actividad se le representa mediante un rectngulo redondeado, y la transicin entre una actividad y otra se representa mediante una flecha. Un ejemplo de diagrama de actividad es el siguiente:
15
16
Una versin muy interesante de diagrama de actividades es aqul que incluye marcos para determinar la responsabilidad de cada actividad. A continuacin se muestra un ejemplo en el que se aprecian las responsabilidades del vendedor, el consultor y un tcnico:
17
Notas Es frecuente que alguna parte del diagrama no presente una clara explicacin del porqu est all o la manera en que trabaja. Cuando ste sea el caso, la nota UML ser til. Imagine a una nota como el equivalente grfico de un papel adhesivo. La nota es un rectngulo con una esquina doblada, y dentro del rectngulo se coloca la explicacin. Usted adjunta la nota al elemento del diagrama conectndolos mediante una lnea discontinua.
18
RUP no es el nico Ciclo de Vida pensado para la orientacin de objetos. Pero si resulta uno de los primeros con xito puesto que surge de los tres amigos, que son Grady Booch, James Rumbaugh e Ivar Jacobson, que despus de trabajar en diferentes empresas y realizar trabajos por separado sobre la orientacin a objetos con mucho xito, son contratados por la empresa Rational Software Corporation en 1994 que les permite desarrollar en conjunto UML y RUP. RUP divide el proceso en cuatro fases, dentro de las cuales se realizan varias iteraciones en nmero variable segn el proyecto y en las que se hace un mayor o menor hincapi en las distintas actividades. En la Figura muestra cmo vara el esfuerzo asociado a las disciplinas segn la fase en la que se encuentre el proyecto RUP. Las primeras iteraciones (en las fases de Inicio y Elaboracin) se enfocan hacia la comprensin del problema y la tecnologa, la delimitacin del mbito del proyecto, la eliminacin de los riesgos crticos, y al establecimiento de una baseline (Lnea Base) de la arquitectura. Durante la fase de inicio las iteraciones hacen mayor nfasis en actividades de modelado del negocio y de requisitos. En la fase de elaboracin, las iteraciones se orientan al desarrollo de la baseline de la arquitectura, abarcan ms los flujos de trabajo de requisitos, modelo de negocios (refinamiento), anlisis, diseo y una parte de implementacin orientado a la baseline de la arquitectura. En la fase de construccin, se lleva a cabo la construccin del producto por medio de una serie de iteraciones.
19
Para cada iteracin se selecciona algunos Casos de Uso, se refina su anlisis y diseo y se procede a su implementacin y pruebas. Se realiza una pequea cascada para cada ciclo. Se realizan tantas iteraciones hasta que se termine la implementacin de la nueva versin del producto. En la fase de transicin se pretende garantizar que se tiene un producto preparado para su entrega a la comunidad de usuarios. Como se puede observar en cada fase participan todas las disciplinas, pero que dependiendo de la fase el esfuerzo dedicado a una disciplina vara. En el ciclo de vida RUP se basa en: Proceso dirigido por los casos de uso. Proceso iterativo e Incremental Proceso centrado en la Arquitectura Proceso dirigido por los casos de Uso Se dice que est dirigido por los casos de uso puesto que los casos de uso integran el trabajo como se muestra grficamente a continuacin:
Proceso iterativo e incremental En RUP hay 4 fases que se componen de varias iteraciones cada una de ellas, donde: Cada iteracin es como un ciclo de vida en cascada a menor escala. Cada iteracin genera un prototipo ejecutable que se muestra a los usuarios y clientes. Los objetivos de una iteracin se establecen en funcin de la evaluacin de las iteraciones precedentes.
20
Cada iteracin es un pequeo ciclo de vida en cascada a menor escala que comprende: Planificar la iteracin (estudio de riesgos) Anlisis de los Casos de Uso y escenarios Diseo de opciones arquitectnicas Codificacin y pruebas. La integracin del nuevo cdigo con el existente de iteraciones anteriores se hace gradualmente durante la construccin. Evaluacin de la entrega ejecutable (evaluacin del prototipo en funcin de las pruebas y de los criterios definidos) Preparacin de la entrega (documentacin e instalacin del prototipo) Proceso centrado en la arquitectura En este sentido: Arquitectura de un sistema es la organizacin o estructura de sus partes ms relevantes. Una arquitectura ejecutable es una implementacin parcial del sistema, construida para demostrar algunas funciones y propiedades. RUP establece refinamientos sucesivos de una arquitectura ejecutable, construida como un prototipo evolutivo. El mdulo de orientacin a objetos permite la creacin de cdigo reutilizable que permite ir creando un pool de componentes reutilizables.
21
Metodologas
Una metodologa es un Conjunto de procedimientos, tcnicas, herramientas y un soporte documental que ayuda a los desarrolladores a realizar nuevo software.
Las metodologas orientadas a objetos se basan sin embargo en la identificacin y organizacin de conceptos del dominio de la aplicacin y no tanto de su representacin final en un lenguaje de programacin.
22
Bibliografa
Anlisis y Diseo detallado de aplicaciones Informticas de Gestin. Mario Piattini y otros. Editorial RAMA Aprendiendo UML en 24 horas. Joseph Schmuller. Editorial Prentice-Hall. Desarrollo de Software Orientado a Objeto usando UML. Patricio Letelier Torres (Departamento Sistemas Informticos y Computacin (DSIC) - Universidad Politcnica de Valencia (UPV) - Espaa
23