Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ndice
Enfoque para el Proyecto
Herramientas
Arquitectura
Generalidades Metodologa
Proceso Unificado
Estndar de Codificacin Java
Generalidades Herramientas
Apache Maven 2
IDE Eclipse
JUnit
Marzo 2009
PFC3
UNIVERSIDADE DA CORUA
Departamento de Tecnoloxas da Informacin e as Comunicacins (TIC)
Enfoque
Estndar de codificacin
Herramientas
Arquitectura
PFC3
Estndar de Codificacin
Normalmente en proyectos grandes se suele seguir un
estndar de codificacin, de manera que el aspecto del
cdigo sea el mismo, independientemente de qu
programador lo haya escrito.
Facilita el mantenimiento del software.
Cdigo de calidad y fcilmente legible.
PFC3
Herramientas
Modelado UML:
MagicDraw (instalado en Laboratorios de Docencia FIC)
Poseidon for UML
Rational Rose
Desarrollo:
HTTP
HTML + CSS / XML
Java SE 1.6.0 + Apache Struts 1.2.9 + Standard TagLibs 1.1.2
JUnit 4.4
Apache Maven 2
IDE Eclipse
Otras: AJAX, Spring, JPA, Hibernate, EJB3, ...
Bases de Datos:
MySQL 5.0 PostgreSQL 8.1
Servidor Web:
Apache Tomcat 6.0.x / Jetty
Marzo 2009
PFC3
Capa 2
Int.
Modelo
web
Capa 3
Base de
datos
Internet/
Intranet
Navegador
Marzo 2009
PFC3
Vista
Controlador
ActionForm + Action
Factory
Interfaces con Casos de Uso (lgica de negocio)
Modelo
Business Delegate
Session Facade
CTO
Factory
Interfaces para Acceso a Datos
DAO/TO
PFC3
UNIVERSIDADE DA CORUA
Departamento de Tecnoloxas da Informacin e as Comunicacins (TIC)
Generalidades Metodologa
Proceso
Procesode
dedesarrollo
desarrollo
de
deSoftware
Software
Sistema
software
Marzo 2009
PFC3
10
Marzo 2009
PFC3
11
Casos de Uso
<<defineNecesidades>>
Anlisis
Recopilar,
Clarificar y
Validar los
requisitos
Marzo 2009
<<realiza>>
<<verifica>>
Diseo
Pruebas
Realizar los
casos de uso
Verificar que se
satisfacen los
casos de uso
PFC3
12
Arquitectura en software:
Diferentes vistas del sistema: estructural, funcional, dinmico, etc.
Plataforma en la que va a operar.
Determina la forma del sistema.
Marzo 2009
PFC3
13
PFC3
14
Roles
Actividades
Artefactos
Flujo de Trabajo
QUIN?
CMO?
QU?
CUNDO?
Dinmica
El Proceso Unificado se repite a lo largo de una serie de ciclos que
constituyen la vida de un sistema.
Ciclo: cada ciclo una nueva versin del producto.
Fase: Etapas de un ciclo que finalizan en un HITO.
Iteracin: Proceso de ingeniera sobre una funcionalidad limitada del sistema.
Entradas al proceso:
Lista de caractersticas: descripcin informal (2 pginas) de lo que se
espera del desarrollo.
Modelo de dominio (Opcional). Modelar con UML el entorno en el que
operar el producto.
Marzo 2009
PFC3
15
Actividad
Unidad de trabajo que puede ejecutar un individuo en un rol
especfico.
Tiene un propsito claro y se expresa en trminos de actualizar
artefactos.
La granularidad de la actividad es generalmente de horas o pocos
das.
Ejemplos de actividades:
Planear una iteracin (administrador del proyecto).
Encontrar caso de uso y actores (analista del dominio).
Revisin del diseo (probador).
Marzo 2009
PFC3
16
Flujo de Trabajo
Forma de describir la secuencias de actividades que producen
resultados y las interacciones entre cargos.
En trminos de UML se puede utilizar: diagrama de actividades, de
secuencia, de colaboracin.
Marzo 2009
PFC3
17
Concepcin Elaboracin
hito 1
Iter. 1
Construccin
hito 2
Iter. 2
hito 3
Iter. 3 Iter. 4 Iter. 5
Transicin
hito 4
Iter. 6
PFC3
18
Desarrollo Iterativo
Construccin
Iteracin de
desarrollo 1
Anlisis
Marzo 2009
Iteracin de
desarrollo 2
Iteracin de
desarrollo n
Perfeccionar
el plan
Sincronizar
Artefactos
Diseo
Implementacin
PFC3
Pruebas
19
Fase de Concepcin
Objetivo: Definir la razn de ser y el alcance del proyecto.
Estudio de oportunidad.
Visin = QU + PARA QU + CUNTO
Actividades:
Artefactos:
Documento de definicin del proyecto.
Marzo 2009
PFC3
20
Fase de Elaboracin
Artefactos:
Marzo 2009
PFC3
21
Fase de Transicin.
Pruebas beta (de usuario).
Marzo 2009
PFC3
22
Marzo 2009
PFC3
23
Marzo 2009
PFC3
24
Variables de instancia.
Constructores.
Mtodos.
Marzo 2009
PFC3
25
Comentarios:
Javadoc /** ... */, Bloque/lnea /* ... */, Fn de lnea // ...
Declaraciones:
Una por lnea.
Definir variables al comienzo de bloques { } (ms claro) e inicializarlas
cuando se definen si es posible.
Excepcin: bucles for
Marzo 2009
PFC3
26
PFC3
27
if (condition) {
statements;
} else {
statements;
}
if (condition) {
statements;
} else if (condition) {
statements;
} else if (condition) {
statements;
}
while (condition) {
statements;
}
while (condition);
do {
statements;
} while (condition);
try {
statements;
} catch (ExceptionClass e) {
statements;
} finally {
statements;
}
Marzo 2009
PFC3
switch (condition) {
case ABC:
statements;
/* falls through */
case DEF:
statements;
break;
case XYZ:
statements;
break;
default:
statements;
break;
}
28
Entre mtodos.
Entre definicin de variables locales y la primera sentencia.
Antes de un comentario de bloque o de lnea.
Entre secciones lgicas de un mtodo.
Espacios en blanco:
Antes de un parntesis, salvo que sea la invocacin de un mtodo.
Despus de una coma, en una lista de argumentos.
Para separar los operandos de todos los operadores binarios
excepto . (no aplicable a operadores unarios).
Para separar las expresiones de una sentencia for
Los casts deben de ir seguidos por un espacio.
Marzo 2009
PFC3
29
Interfaces:
dem clases.
Mtodos:
Deben de ser verbos, con la primera letra de cada palabra involucrada en
maysculas, salvo la de la primera.
Variables:
Palabras, con la primera letra de cada palabra involucrada en maysculas,
salvo la de la primera.
Nombres comunes para variables temporales son i,j,k (numricas) c,d,e
(caracteres).
Constantes:
En maysculas, separando cada palabra involucrada en el nombre por el
carcter subrayado _.
Marzo 2009
PFC3
30
PFC3
31
Marzo 2009
PFC3
32
/**
* ...method Blah documentation comment...
*/
public Blah() {
// ...implementation goes here...
}
/**
* ...method doSomething documentation comment...
*/
public void doSomething() {
// ...implementation goes here...
}
/**
* ...method doSomethingElse documentation comment...
* @param someParam description
*/
public void doSomethingElse(Object someParam) {
// ...implementation goes here...
}
}
Marzo 2009
PFC3
33
UNIVERSIDADE DA CORUA
Departamento de Tecnoloxas da Informacin e as Comunicacins (TIC)
Generalidades Herramientas
Desarrollada en Java.
PFC3
35
Documentacin Maven 2:
Maven en 5 minutos.
http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
Maven en 30 minutos.
http://maven.apache.org/guides/getting-started/index.html
Marzo 2009
PFC3
36
Marzo 2009
PFC3
37
Marzo 2009
PFC3
38
Marzo 2009
PFC3
39
Marzo 2009
PFC3
40
Dos opciones:
Creando un fichero settings.xml en el directorio $HOME/.m2 (repositorio
local) con la siguiente informacin (ej. fichero /opt/ISyADOO0708/SoftwareLocal/templates/IS/settings.xml).
<?xml version="1.0" encoding="UTF-8"?>
<settings>
<proxies>
<proxy>
<active/>
<protocol>http</protocol>
<port>3128</port>
<!-- <host>proxy</host> -->
<host>proxy-wifi.ucv.udc.es</host>
<id/>
</proxy>
</proxies>
</settings>
PFC3
41
MySQLCreateTables.sql
PostgreSQLCreateTables.sql
ConfigurationParameters.properties
Marzo 2009
PFC3
42
Marzo 2009
<assembly>
<id>src</id>
<formats>
<format>zip</format>
<format>tar.gz</format>
<format>tar.bz2</format>
</formats>
<fileSets>
<fileSet>
<includes>
<include>**/*</include>
</includes>
<excludes>
<exclude>**/target/**</exclude>
</excludes>
</fileSet>
</fileSets>
</assembly>
PFC3
43
http://mojo.codehaus.org/sql-maven-plugin/
Marzo 2009
PFC3
44
http://docs.codehaus.org/display/JETTY/Jetty+Documentation
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<configuration>
<jettyEnvXml>../src/main/jetty/jetty-env.xml</jettyEnvXml>
<scanIntervalSeconds>5</scanIntervalSeconds>
<!-- Log to the console. -->
<requestLog implementation="org.mortbay.jetty.NCSARequestLog">
<!-- This doesn't do anything for Jetty, but is a
workaround for a Maven bug that prevents the
requestLog from being set. -->
<append>true</append>
</requestLog>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-jdbcdriver-version}</version>
</dependency>
</dependencies>
</plugin>
Marzo 2009
PFC3
45
jetty-env.xml
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN"
"http://jetty.mortbay.org/configure.dtd">
<Configure class="org.mortbay.jetty.webapp.WebAppContext">
<!-- PostgreSQL -->
<!-- -->
<!-- MySQL -->
<New id="J2EE-ExamplesDS-MySQL"
class="org.mortbay.jetty.plus.naming.Resource">
<Arg>jdbc/J2EE-ExamplesDS</Arg>
<Arg>
<New class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">
<Set name="url">jdbc:mysql://localhost/j2ee</Set>
<Set name="user">j2ee</Set>
<Set name="password">j2ee</Set>
</New>
</Arg>
</New>
</Configure>
Marzo 2009
PFC3
46
Ejemplos - Compilacin
Linux, Windows // Mysql, PostgreSQL.
Configuracin por defecto:
Linux, Mysql,
Base de Datos j2ee (default port), usuario j2ee, password j2ee
cd j2ee-examples-2.2.0-src
mvn sql:execute install
Marzo 2009
PFC3
47
Compile
Run
Debug
Plugins
- Maven
- Subclipse
- Tomcat
-
n
o
i
dit
E itors
t
c
je ... ed
ro, SQL,
P
ls L
o PX, XM
o
b T P, JS rer
Marzo 2009
PFC3
48
PFC3
49
Marzo 2009
PFC3
50
Linux:
$HOME/.m2/repository
Marzo 2009
PFC3
51
Marzo 2009
PFC3
52
Depuracin:
Eclipse posee una perspectiva para depuracin de aplicaciones.
Permite seguir la traza de ejecucin de una aplicacin, establecer
puntos de interrupcin y visualizar el estado de las variables en un
instante determinado.
Otros
Window > Show View > Other > Connectivity > Data Source
Explorer
Marzo 2009
PFC3
53
Marzo 2009
PFC3
54
Run > External Tools > Open External Tools Dialog .. > Maven Build
botn derecho + "New"
Especificar el nombre de la nueva configuracin de maven.
Main: Especificar el directorio donde se encuentra el pom.xml a utilizar.
Goals: Indicar los goals a ejecutar en esta configuracin.
Select para elegir una de las fases del ciclo de vida.
Marzo 2009
PFC3
55
cd j2ee-app
cd src
mkdir main/resources
mkdir test/resources
Copiar
j2ee-examples/jdbctutorial/src/main/resources/ConfigurationParameters.properties
a main/resources y test/resources
+ mvn eclipse:eclipse
+ Importar el proyecto desde Eclipse: "File -> New -> Java Project".
Elegir nombre de proyecto (e.g. j2ee-app) y la opcin "Create project from
existing source" (elegir directorio que se cre el proyecto).
PFC3
56
Marzo 2009
PFC3
57
Marzo 2009
PFC3
58
Marzo 2009
PFC3
59
Qu es Junit?
JUnit es un framework para escribir pruebas de unidad
repetibles en Java.
http://www.junit.org/
Open Source.
Programado por Erich Gamma y Kent Beck.
Caractersticas:
Utiliza aserciones para comprobar resultados esperados.
Marzo 2009
PFC3
60
Comprobaciones:
Pueden realizarse varias comprobaciones (aserciones) por mtodo.
La clase Assert proporciona un conjunto de mtodos estticos para
realizar comprobaciones (pueden lanzar un objeto con mensajes de fallo).
Assert.assertEquals(Object, Object) Compara utilizando el
mtodo "equals".
Si no se redefine, el mtodo equals de un Object realiza una comparacin
por referencia; es necesario redefinir el mtodo equals de una clase para la
que se desee comparacin por contenido.
La clase String y las correspondientes a los tipos bsicos lo tienen redefinido
comparan por contenido.
Marzo 2009
PFC3
61
Marzo 2009
PFC3
62
Marzo 2009
PFC3
63
Cdigo de pruebas
Las clases que implementan las pruebas suelen
implementarse en el mismo paquete que la clase que
prueban, pero en un directorio de fuentes diferente.
Marzo 2009
PFC3
64
Referencias
Asignatura Integracin de Sistemas.
Facultade de Informtica. Universidade da Corua
http://www.tic.udc.es/~fbellas/teaching/is-2007-2008
Marzo 2009
PFC3
65