Beruflich Dokumente
Kultur Dokumente
25/11/2008 FUOC
ndice de contenido
1.Herramientas.................................................................................................................4
1.1.Herramientas CASE......................................................................................................... 4 1.2.Herramientas IDE............................................................................................................ 4 1.3.Herramientas de soporte.................................................................................................. 5 1.3.1.Herramientas de control de versiones.......................................................................... 5 1.3.2.Herramientas de ayuda a la construccion..................................................................... 6 1.4.Herramientas de calidad.................................................................................................. 7 1.4.1.Herramientas de pruebas unitarias............................................................................... 7 1.4.2.Herramientas de pruebas de rendimiento..................................................................... 8 1.4.3.Herramientas de integracin continua.......................................................................... 8 1.4.4.Otras herramientas de calidad...................................................................................... 8 1.4.5.Propuesta..................................................................................................................... 9
Pgina 3 de 21
1. Herramientas
CASE el el acrnimo de
Ingeniera del Software asistida por ordenador. Consiste en el uso de software para la ayuda del desarrollo y mantenimiento del software. Son las herramientas relacionadas con el analisis y el diseo, mas comn mente conocidas como heramientas CASE. Estas herramientas permiten entre otras cosas:
Generacin de cdigo a partir del modelo e ingeniera inversa. Editores UML Herramientas de gestion de configuaion incluyendo control de versiones.
ArgoUML Enterprise Architect - Sparx Systems Rational Rose - IBM Together - Borland Visual Paradigm for UML
Argo UML es una versin libre con coste cero, con un plugin para eclipse, ArgoEclipse que permite la creacin de diagramas UML.
Un IDE esta compuesto normalmente por un editor de codigo fuente y un compilador u/o intrprete, herramientas de automatizacin y normalemete un debuger. Algunos IDEs son:
Una propuesta libre seria Eclipse por ser uno de los entornos ms extendido con infinidad de plugins desarrollados.
El control de versiones permite la gestin de mltiples revisiones de la misma unidad de informacin. Nos permite manejar la evolucin de elementos digitales tales como el cdigo fuente de una aplicacin, un documento ...
Los cambios se identifican incrementando un nmero asociado o cdigo de letra nombrado "nmero de revisin", "nivel de revisin" o, simplemente, "revisin" y est asociado histricamente con la persona que ha realizado el cambio. Algunos sistemas resuelven el acceso concurrente bloqueando archivos mientras que otros permiten la edicin simultnea permitiendo posteriormente solventar las diferencias. Ejemplos:
Subversion (cdigo abierto). Sucesor del CVS el cual intenta superar sus defectos. ClearCase (IBM). Usado en entornos corporativos normalemete con miles de desarrolladores. Microsoft SourceSafe. Es el sistema mas simple que se conoce.
Herramientas que permiten automatizar y racinalizar los procesos de construccin y entrega. Normalemete estn asociados con procesos de integracin continuada. Los ms utilizados son: Ant. Se trata de una herramienta de construccin para proyectos Java, similar al tradicional make. Se basa en la ejecucin de tareas que se modelan en un fichero el XML. Proporciona ayudas para la compilacin, deploy, generacin de ficheros y uno largo etctera. Como inconveniente, el programador tiene que preocuparse de mantener actualizado el proceso de construccin, y la escritura del proceso es excesivamente manual. Maven. Herramienta modular de gestin de proyectos, que permite la automatizacin de todos los procesos asociados a la gestin del cdigo, entrega y reporting. Maven es capaz de encargarse de la gestin de dependencias, construccin de los artefactos, generacin de la documentacin, etc. Gracias a su arquitectura de plugins, Maven es capaz de hacer tareas tan dispares como el arranque y parada de JBoss hasta la generacin de un proyecto Eclipse a partir de un proyecto Maven. Al contrario que Ant, la configuracin de Maven es ms simple, reutilizable y consistente.
Pgina 6 de 21
JUnit. Estndar de facto en programacin Java. Se cre inspirndose en SUnit para Smalltalk. Hoy da, ha sido el precursor de una familia de herramientas de prueba para diferentes lenguajes: nUnit (. NETO), pyUnit (Python), CppUnit (C++), dUnit (Delphi) ... Existen algunas extensiones para realizar pruebas unitarias de determinados elementos con caractersticas especficas, como por ejemplo:
DBUnit - extensin de JUnit para realizar pruebas unitarias sobre programas orientados a base de datos. JunitEE - extensin de JUnit para hacer pruebas de aplicaciones J2EE.
HttpUnit. ramework de pruebas construido sobre JUnit que permite tanto pruebas de caja negra como pruebas de white box de aplicaciones web. Permite verificar que la aplicacin cumple con las necesidades de negocio y responde al comportamiento esperado. Se trata de una librera que facilita el acceso HTTP a las aplicaciones web, incluyendo soporte para caractersticas como el manejo de cookies, envo de peticiones o la interpretacin de la respuesta HTML.
jWebUnit. Toolkit de ayuda desarrollada sobre HttpUnit para reducir la cantidad de cdigo que tiene que escribir el desarrollador.
Pgina 7 de 21
JUnitPerf. Coleccin de embellecedores de pruebas sobre JUnit utilizados para medir el rendimiento y el escalabilidad de la funcionalidad contenida en las pruebas realizadas con JUnit. Los embellecedores que proporciona son:
o
TimeTest Ejecuta una prueba y medida el tiempo transcurrido. LoadTest Ejecuta una prueba simulando un gran nmero de usuarios concurrentes e iteraciones.
Cruise Control. Permite realizar compilaciones completas Continuum. Funcionalidades muy parecidas al cruise control pero muy cercano al Maven, con lo que la integracion es muy sencilla.
1.4.4. Otras herramientas de calidad Es muy aconsejable que el entorno de desarrollo contenga una serie de herramientas de gestin de la calidad que ayuden a mantener una coherencia en el cdigo desarrollado y que ayuden en la tarea de definicin y ejecucin de pruebas. Todas las siguientes herramientas propuestas se integran en el IDE Eclipse : Checkstyle: Comprueba que el cdigo cumpla unas normas de estilo segn determinadas reglas, y muestra errores o avisos segn el nivel definido. PMD: Similar a Checkstyle, aunque tambin detecta cdigo duplicado o no utilizado. FindBugs: Esta herramienta hace una bsqueda de los errores ms comunes en la escritura de aplicaciones Java. Simian: Bsqueda de cdigo duplicado.
Pgina 8 de 21
1.4.5. Propuesta. Se propone que el entorno a desarrollo contenga una serie de herramientas de gestin de la calidad que ayuden a mantener una coherencia en el cdigo desarrollado y que ayuden en la tarea de definicin y ejecucin de pruebas. Todas estas herramientas propuestas se integran en el IDE Eclipse : JUnit (incluido en Eclipse): Creacin y ejecucin de pruebas. checkstyle: Comprueba que el cdigo cumpla unas normas de estilo segn determinadas reglas, y muestra errores o warnings segn el nivel definido. PMD: similar a checkstyle, aunque tambin detecta cdigo duplicado o no utilizado. FindBugs: hace una busqueda de los errores ms comunes en la escritura de aplicaciones Java. Simian: busca de cdigo duplicado.
Pgina 9 de 21
Execucin/Debug
Productividad
Construccin
Calidad
CASE
Java J2SE 1.5.0_09 Eclipse SDK 3.1.2 Lomboz 3.2.0 ArgoEclipse 0.1.1 Enterprise Architect Quantum DB 3.0.3 Subclipse 1.0.3 Checkstyle 4.1.1 PMD 3.1.7 Simian UI 0.2.3 FindBugs 1.1.1 Maven 2.0.4 Maven Integration for Eclipse 0.0.9 Jboss 4.0.5 GA Jboss Eclipse Plugin XAMPP 1.5.4a
PHPEclipse 1.1.8
Pgina 10 de 21
Otros
IDE
3.1.1. Caractersticas del Producto Tanto la toma de requerimientos como el resto de actividades relacionadas con el modelado y diseo de nuestro sistema se pueden agilizar mediante el uso de herramientas CASE especializadas como en este caso Enterprise Architect. Este producto en concreto permite gestionar los requerimientos mediante el siguiente procedimiento: En el panel Project View ubicarse en el package Custom. Seleccionar un subpackage para ubicar el nuevo requerimiento (Formal Requirements, Non formal requirement, etc.).
Seleccionar con el click derecho del ratn la opcin Insert (o pulsar Ctrl+M) y seleccionar como type Requirement. Pulsar OK e introducir informacin adicional del requerimiento (descripcin, estado, dificultad, autor, etc.) introducir la siguiente informacin para cada
Enterprise Architect permite requerimiento: Short Description. Status. Type. Difficulty. Phase. Priority. Author.
Herramientas del desarrollo del software Versin: 0.3
Pgina 11 de 21
Version. Details.
Si queremos aadir informacin adicional podemos hacer uso de tag values mediante el siguiente proceso: Desde el diagrama seleccionar el requerimiento desdeado y con el botn derecho del ratn escoger Add Tag Value. Introducir en key el campo (por ejemplo Origen) y en value su descripcin.
Adicionalmente podemos estructurar nuestros requerimientos en grupos mediante asociaciones de tipo agregacin. Para ms informacin consultar el apartado 6.8.1 y siguientes de la gua de usuario de Enterprise Architect.
Podemos visualizar en el diagrama los requerimientos de diferente color segn el estado en el que se encuentren. Para activar esta opcin: Seleccionar desde el men Tools la opcin Options.
En el panel jerrquico seleccionar Objects. Marcar el checkbox Show status colors on diagrams.
La correspondencia de colores es: Estado Color Proposed Amarillo Validated Verde Mandatory Naranja Implemented Negro
3.1.2. Otros Requerimientos del Producto Para aadir requerimientos no funcionales en Enterprise Architect, seguiremos el mismo proceso que el explicado para los requerimientos funcionales, con la nica diferencia de que indicaremos como Type otro tipo de requerimiento que no sea el valor Functional. Para aadir nuevos tipos de requerimientos utilizar la opcin Configuration|General Types|Requirements. 3.1.3. Obtencin de Casos de Uso y Actores En Enterprise Architect (o de forma similar en otras herramientas) podemos configurar la creacin de prefijos, contadores y sufijos automticos a la hora de crear cualquier
Herramientas del desarrollo del software Versin: 0.3 Pgina 12 de 21
elemento en el modelo. Para nombrar los casos de uso es muy til usar un identificador por ejemplo de la forma UCxxxx- seguido del nombre de caso de uso. Para que cuando creemos un caso de uso nos aparezca por defecto el prefijo UCxxxx- con la numeracin autoincremental realizaremos los siguientes pasos: Seleccionar la opcin Configuration|Auto Counters.
En la lista desplegable Type seleccionar Use Case. Introducir en el campo Name el valor UC-, en el campo Counter 0001 y en Suffix el valor -. El contador es el nmero inicial por el que se comenzarn a numerar nuestros casos de uso. Si ya se han generado casos de uso con contador y accedemos a esta opcin, aparecer el valor siguiente a asignar. Marcar el checkbox Active y pulsar el botn Save.
3.1.4. Glosario Enterprise Architect dispone de un apartado para la construccin de glosarios. Para acceder se ha de utilizar la opcin Project|Glossary. Esta opcin permite definir dos categoras de conceptos: Conceptos Tcnicos (Technical). Y conceptos de Negocio (Business).
Pgina 13 de 21
3.1.5. Trazabilidad de los Requerimientos Los requerimientos sern implementados por elementos del modelo como casos de uso o clases. Para definir la trazabilidad realizaremos los siguientes pasos: Crear un diagrama en el que se encuentre la clase o caso de uso.
Arrastrar el requerimiento desde el Project Browser hasta el elemento. Abrir la ficha de propiedades del elemento y comprobar en la pestaa Require que el requerimiento ha sido aadido.
Pgina 14 de 21
Por ltimo, si arrastramos al diagrama del elemento el requerimiento podremos ver la relacin que se ha creado:
Desde la ventana Hierarchy si seleccionamos cada uno de los elementos podemos ver de forma rpida la relacin existente.
Herramientas del desarrollo del software Versin: 0.3 Pgina 15 de 21
Para ver la matriz de relaciones (Matriz de Trazabilidad) seleccionar View| Relationship Matrix. Si no existe la posibilidad seleccionar el package que queremos trazar y mediante botn derecho seleccionar Documentation|Open in Relationship Matrix y seleccionar As Source o As Target para indicar si los elementos del package seleccionado aparecen en el origen de las dependencias o en el destino. Seleccionar Realization en el campo Link Type:
3.2. Diseo
3.2.1. Transformacin de Anlisis a Diseo Mediante el uso de MDA (Model Driven Architecture) podemos generar de forma sencilla clases de diseo a partir de clases de anlisis entidad.
Herramientas del desarrollo del software Versin: 0.3 Pgina 16 de 21
Seleccionar el lenguaje destino en el campo Transform (normalmente Java). Mediante el botn Select Package seleccionar el package donde se ubicarn las clases generadas. Pulsar el botn Do Transform. Consultar las clases generadas. Si nos fijamos se nos habrn generado las operaciones get y set de cada uno de nuestros atributos.
Producto + + + + nombre: String descripcion: String property get getProducto() : Producto property set setProducto(Producto) : void property get getItem Producto() : Item Producto property set setItem Producto(Item Producto) : void
Pgina 17 de 21
NOTA: Debido al uso de posibles espacios en nuestro anlisis debemos realizar cambios manuales para adaptar nuestro diseo. Es mejor evitar los espacios en el anlisis para que la transformacin sea inmediata. Para ms informacin sobre este tema consultar el apartado 7. MDA-Style Transforms de la Gua de Usuario de Enterprise Architect.
Crear un diagrama de clases en el package Data Model. Desde el panel Structure realizar drag&drop del elemento Table. Abrir el panel de propiedades del elemento e introducir. En el campo Database indicar la base de datos para la que generaremos la tabla. Por ltimo, aadir las columnas y su informacin. Generacin de los scripts
Entreprise Architect permite generar los scripts de creacin de base de datos a partir del modelo. Para ello:
Seleccionar el package en el que se encuentran las tablas y mediante click derecho seleccionar Code Engineering|Generate DDL. Introducir las opciones de generacin y pulsar Generate.
Pgina 18 de 21
Tambin est permitido el proceso inverso: obtener el modelo de base de datos a partir de la base de datos ya creada. Para ello es necesario que se haya definido la fuente de datos ODBC mediante el Panel de Control de Windows. Si este prerrequisito se cumple se han de seguir los siguientes pasos: Crear el package donde se realizar la importacin.
Herramientas del desarrollo del software Versin: 0.3 Pgina 19 de 21
Hacer click derecho sobre el package creado y seleccionar Code Engineering| Import DDL schema from ODBC. Seleccionar la fuente de datos, las opciones de sincronizacin y pulsar Import.
Para ms informacin consultar el apartado 11.Data Modeling de la Gua de Usuario de Enterprise Architect: Definicin de claves primarias: 11.5 Definicin de claves forneas: 11.6 Definicin de stored procedures: 11.7 Definicin de ndices, constrains y triggers: 11.8
3.3. Implementacin
3.3.1. Generacin de Cdigo Para generar el cdigo de una clase desde Enterprise Architect seguiremos el siguiente procedimiento: Desde el diagrama o desde el navegador Project View seleccionar la clase.
Pgina 20 de 21
Seleccionar como Target language el lenguaje de generacin (Java por defecto). Indicar el Path en el que queremos generar el fichero y aadir si se requieren nuevos imports al cdigo a generar. Pulsar Generate. Con click derecho sobre la clase podemos ver su cdigo generado mediante la opcin View/Edit Source Code.
Para ms informacin consultar la seccin 10.Code Engineering de la Gua de Usuario de Enterprise Architect.
3.3.2. Reingeniera inversa del Cdigo En este caso tenemos dos opciones: En caso de que la clase a actualizar ya existiera en el modelo con click derecho seleccionar Synchronize Model (reverse engineer). En caso de que la clase no existiera previamente en el modelo seleccionar Project|Source Code Engineering|Import Java Files y seleccionar el fichero .java a importar. Para ms informacin consultar la seccin 10.Code Engineering de la Gua de Usuario de Enterprise Architect.
Pgina 21 de 21