Sie sind auf Seite 1von 21

Herramientas.

Herramientas del desarrollo del software

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

2.Entorno del desarrollador...........................................................................................10


2.1.Matriz de herramientas.................................................................................................. 10

3.Uso de Enterprise Architect........................................................................................11


3.1.Etapa de Requerimientos............................................................................................... 11 3.1.1.Caractersticas del Producto....................................................................................... 11 Estructuracin de los requerimientos.............................................................................. 12 Diferenciacin del estado por colores.............................................................................. 12 3.1.2.Otros Requerimientos del Producto........................................................................... 12 3.1.3.Obtencin de Casos de Uso y Actores....................................................................... 12 3.1.4.Glosario..................................................................................................................... 13 3.1.5.Trazabilidad de los Requerimientos........................................................................... 14 3.2.Diseo.............................................................................................................................. 16 3.2.1.Transformacin de Anlisis a Diseo........................................................................ 16 3.2.2.Diseo de la Base de Datos........................................................................................ 18 Creacin de una tabla...................................................................................................... 18 Generacin de los scripts................................................................................................. 18 Importacin de base de datos.......................................................................................... 19
Herramientas del desarrollo del software Versin: 0.3 Pgina 2 de 21

3.3.Implementacin.............................................................................................................. 20 3.3.1.Generacin de Cdigo................................................................................................ 20 3.3.2.Reingeniera inversa del Cdigo................................................................................ 21

Herramientas del desarrollo del software Versin: 0.3

Pgina 3 de 21

1. Herramientas

1.1. Herramientas CASE

CASE el el acrnimo de

Computer Aided Software Engineering, que significa

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.

Existen gran cantidad de herramientas CASE en el mercado, entre ellas se destacan:


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.

1.2. Herramientas IDE

IDE es el acrnimo de Integrated Development Enviroment ( Entorno de desarrollo integrado ).


Herramientas del desarrollo del software Versin: 0.3 Pgina 4 de 21

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:

Eclipse Websphere Studio Idea (IntelliJ) Netbeans

Una propuesta libre seria Eclipse por ser uno de los entornos ms extendido con infinidad de plugins desarrollados.

1.3. Herramientas de soporte

1.3.1. Herramientas de control de versiones

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:

CVS (codigo abierto). Es el ms utlizado.


Pgina 5 de 21

Herramientas del desarrollo del software Versin: 0.3

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.

1.3.2. Herramientas de ayuda a la construccion.

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.

Herramientas del desarrollo del software Versin: 0.3

Pgina 6 de 21

1.4. Herramientas de calidad

1.4.1. Herramientas de pruebas unitarias

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.

TestGen4Web: extensin de Firefox que es capaz de grabar una secuencia


de navegacin convirtindola despus en un fichero HttpUnit, lo cual agiliza mucho el proceso de creacin de las pruebas, muchas veces demasiadas confuso.

Herramientas del desarrollo del software Versin: 0.3

Pgina 7 de 21

1.4.2. Herramientas de pruebas de rendimiento

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.

JMeter. Permite la ejecucin de diferentes tipos de pruebas

basadas en diferentes protocolos. Se representan grficamente las medidas de rendimiento.

1.4.3. Herramientas de integracin continua


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.

Herramientas del desarrollo del software Versin: 0.3

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.

Herramientas del desarrollo del software Versin: 0.3

Pgina 9 de 21

2. Entorno del desarrollador.

2.1. Matriz de herramientas

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

Apache 2.2.3 PHP 5.1.6 (amb ZendOptimizer 3.0.1) MySQL 5.0.24a

PHPEclipse 1.1.8

Herramientas del desarrollo del software Versin: 0.3

Pgina 10 de 21

Otros

IDE

3. Uso de Enterprise Architect


En este apartado se detalla el uso de la herramienta CASE (Enterprise Architect de Sparx Systems) para realizar las tareas y procedimientos de las distintas etapas del proyecto: Requerimientos. Diseo. Implementacin.

3.1. Etapa de Requerimientos

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.

Estructuracin de los requerimientos

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.

Diferenciacin del estado por colores

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).

Herramientas del desarrollo del software Versin: 0.3

Pgina 13 de 21

Desde la ventana System podemos controlar la lista de conceptos del glosario.

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.

Herramientas del desarrollo del software Versin: 0.3

Pgina 14 de 21

Por ltimo, si arrastramos al diagrama del elemento el requerimiento podremos ver la relacin que se ha creado:

FR1-Avoid duplicate submits (from Presentation Services) FormTag

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

Visin si seleccionamos FormTag

Visin si seleccionamos el requerimiento 'R1-Avoid duplicate submits

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

Para ello: Seleccionar los elementos de anlisis a transformar.

Con el botn derecho del ratn seleccionar Transform Selected Element(s).

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

Herramientas del desarrollo del software Versin: 0.3

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.

3.2.2. Diseo de la Base de Datos . Creacin de una tabla

Para la creacin de una tabla, seguir el siguiente procedimiento:


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.

Herramientas del desarrollo del software Versin: 0.3

Pgina 18 de 21

Importacin de base de datos

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.

Con click derecho seleccionar Generate Code (forward engineer)

Herramientas del desarrollo del software Versin: 0.3

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.

Herramientas del desarrollo del software Versin: 0.3

Pgina 21 de 21

Das könnte Ihnen auch gefallen