Estado Actual de La Ingeniería de Software
Estado Actual de La Ingeniería de Software
Estado Actual de La Ingeniería de Software
Instituto
Tecnolgico
De la
Laguna
1
Ing. Carlos Barker del Ro
Enfoque de calidad
Cualquier enfoque de la ingeniera, incluyendo la Ingeniera de software, debe estar sustentado en
un compromiso con la calidad. Diversos enfoques tales como la gestin de la calidad total,
fomentan una cultura de mejora continua del proceso, es esa cultura la que conduce finalmente a
desarrollos muy efectivos para la Ingeniera de Software. La base que soporta a la Ingeniera de
software es el enfoque a la calidad
2
Ing. Carlos Barker del Ro
Modelo IDEAL
3
Ing. Carlos Barker del Ro
Modelo QIP
4
Ing. Carlos Barker del Ro
5
Ing. Carlos Barker del Ro
Los certificados que pueden concederse mediante ellas sealan que una organizacin es
perfectamente capaz de cumplir las necesidades y requisitos de sus clientes de manera planificada
y controlada Si quiere ir ms all y lograr la excelencia, debera cumplir requisitos adicionales. La
ISO 9004:2000 establece estos requisitos adicionales.
6
Ing. Carlos Barker del Ro
Los siguientes elementos enmarcan el proceso de desarrollo de software que se puede aplicar a la
mayora de los proyectos de software:
7
Ing. Carlos Barker del Ro
Todo desarrollador de software sigue un proceso para el desarrollo, este puede no ser eficiente o
incluso efectivo. Para cambiar este mtodo de trabajo en un proceso exitoso, el desarrollador debe
seguir estas actividades basadas en el modelo PSP:
Planeacin.- Consiste en seleccionar requisitos, y con base a estos se desarrolla el tamao
y la estimacin de los recursos. Adems se estiman los defectos. Todas las mediciones se
registran en hojas de trabajo o plantillas, al final se identifican las tareas de desarrollo y se
crea un programa del proyecto.
Diseo de alto nivel.- Se elaboran las especificaciones externas para que cada
componente sea construido y se crea un diseo del componente, se construyen prototipos
y todos los elementos se registran y rastrean.
Revisin del diseo de alto nivel.- Los mtodos formales de verificacin se aplican a
errores descubiertos en el diseo. Se mantienen mediciones de todas las tareas
importantes y los resultados del trabajo.
Desarrollo.- Se refina y revisa el diseo a nivel de componentes. Se revisa compila y
prueba el cdigo. Se mantienen mediciones de todas las tareas importantes y los
resultados del trabajo.
Anlisis de resultados.- Mediante la medicin de resultados, se determina la efectividad del
proceso. Estas medidas deben proporcionar una gua para modificar el proceso y mejorar
su efectividad.
8
Ing. Carlos Barker del Ro
Debido a que el desarrollo de software generalmente se llevas a cabo por un equipo de desarrollo,
se extendieron las lecciones aprendidas por el PSP para introducir el PSE, la meta es construir un
equipo de desarrollo de un proyecto, que sea autodirigido y que se organice para producir un
software de calidad. Los objetivos del PSE son los siguientes:
Revisar los objetivos del proyecto con la gestin y acordar y documentar las metas del
equipo.
Establecer las funciones del equipo.
Definir el proceso de desarrollo del equipo.
Elaborar un plan y los objetivos de calidad.
Preparar un plan para las necesidades de soporte necesarias.
Producir una estrategia de desarrollo general.
Elaborar un plan de desarrollo para el proyecto en su totalidad.
Hacer planes detallados para cada ingeniero en la siguiente fase.
Adaptar los planes individuales a un plan de equipo.
Hacer un balance de la cantidad de trabajo del equipo para obtener un programa
mnimo
9
Ing. Carlos Barker del Ro
10
Ing. Carlos Barker del Ro
Fase de Elaboracin
En esta fase se analiza el dominio del problema, establece los cimientos de la arquitectura,
desarrolla el plan del proyecto y elimina los riesgos mayores. Se construye un prototipo de la
arquitectura que evoluciona en iteraciones sucesivas hasta convertirse en el sistema final.
Los objetivos de esta fase son:
Definir, validar y cimentar la arquitectura.
Completar la visin
Crear un plan para la fase de construccin
Demostrar que la arquitectura propuesta soportara la visin
11
Ing. Carlos Barker del Ro
12
Ing. Carlos Barker del Ro
13
Ing. Carlos Barker del Ro
14
Ing. Carlos Barker del Ro
Creacin
Highsmith 2000
Agile Modeling
AM
Ambler 2002
Agile RUP
dx
Crystal Methods
CM
Cockbum 1998
Essential Unified
Process
EssUP
Feature Driven
Development
15
Ing. Carlos Barker del Ro
FDD LD
Felsing 2002,
Programacin
Extrema
XP
Beck 1999
Scrum
Scrum
Microsoft
Solutions
Framework
MSF
Microsoft 1994
Rapid
Development
RAD
McConnell 1996
Open Unified
Process
OpenUP
Rational Unified
Process
RUP
Krutchen 1996
Algunas empresas que usan metodologas de desarrollo gil en algunos de sus proyectos, son:
Google,
Oracle,
Yahoo,
Canon,
Xerox,
Sun,
HP,
Nokia,
Honda,
Toyota, etc.
Ventajas:
Mtodos de comunicacin ms eficaces en este tipo de metodologas.
Es posible identificar y atacar los problemas ms crticos y controversiales del proyecto en las
primeras etapas.
El cliente comenzar a ver su sistema lo ms pronto posible y verificar que se estn cubriendo
sus requerimientos de forma adecuada.
Entrega de resultados tangibles en etapas tempranas del proyecto.
Desventajas:
Proceso menos controlado y con pocos principios.
No existe contrato tradicional o al menos es bastante flexible.
Grupos pequeos, trabajando en el mismo sitio y no distribuidos adecuadamente.
Menos nfasis en la arquitectura del software, siendo sta primordial para el xito del proyecto de
software.
16
Ing. Carlos Barker del Ro
Herramientas.
Principales herramientas CASE del mercado y su uso
Planificacin de proyectos. Capacitan al administrador para definir todas las reas del
proyecto (la estructura de desglose de tareas), para crear una red de tareas (normalmente
empleando una entrada grfica), para representar las interdependencias entre tareas y
para modelar la cantidad de paralelismo que sea posible para ese proyecto.
17
Ing. Carlos Barker del Ro
18
Ing. Carlos Barker del Ro
19
Ing. Carlos Barker del Ro
20
Ing. Carlos Barker del Ro
Medida esttica: herramientas que analizan el cdigo fuente sin ejecutar casos de prueba.
Simulacin: herramientas que simulan las funciones del hardware o de otros elementos
externos.
21
Ing. Carlos Barker del Ro
22
Ing. Carlos Barker del Ro
23
Ing. Carlos Barker del Ro
Racional Rose
24
Ing. Carlos Barker del Ro
Requerimientos :
Windows 2000 and 2003 Server and Advanced Server, Service Pack 3 and 4
Windows Vista
Linux
La siguiente tabla muestra el soporte para Ciclo de Vida de un Proyecto en Rational Rose
Rose
Si. Usando el modelo de casos de uso de negocio
Junto con RequisitePro.
No. Se provee Quality Architect para pruebas unitarias, pero requiere otras h
Integrado con la aplicacin de control de versiones compatible con SCC.
No
Si
25
Ing. Carlos Barker del Ro
26
Ing. Carlos Barker del Ro
JDeveloper
Este magnfico entorno integrado desarrollado por Oracle trabaja con la ingeniera inversa, es decir
primero se crea l cdigo y despus el diagrama.
Es un software propietario pero gratuito desde 2005. Las primeras versiones de 1998 estaban
basadas en el entorno JBuilder de Borland, pero desde la versin 9i de 2001 est basado en Java,
no estando ya relacionado con el cdigo anterior de JBuilder.
Sus caractersticas principales:
Es un entorno gratis, aunque previamente se debe suscribir para poder descargarlo. Puede
descargarse en :
http://www.oracle.com/technology/products/jdev/index.html.
Windows.
Linux.
Mac OSX
27
Ing. Carlos Barker del Ro
MagicDraw
MagicDraw es una herramienta de modelaje con completas caractersticas UML, sin duda es una
de las mejores herramientas CASE del mercado, que procura mantenerse adems siempre al da
con continuas actualizaciones. Es desarrollada por No Magic, Inc. Implementada totalmente en
JAVA. Diseada para los analistas del negocio, los analistas del software, los programadores, los
ingenieros de software, y los escritores de la documentacin, esta herramienta de
desarrollo dinmica y verstil facilita anlisis y el diseo de los sistemas y de las bases de datos
orientados objeto.
Caractersticas principales:
Interfaz elegante e intuitiva, la mayor parte de las opciones accesibles con un solo click.
Desarrollo colaborativo directamente con la herramienta a travs del Team Work Server
(Software que permite trabajar a ms de un desarrollador sobre el mismo proyecto en el mismo
instante, el modelo est almacenado en un equipo servidor y los desarrolladores pueden
consultar y actualizar la informacin).
28
Ing. Carlos Barker del Ro
29
Ing. Carlos Barker del Ro
Visual Paradigm
Visual Paradigm es una herramienta UML profesional que soporta el ciclo de vida completo del
desarrollo de software: anlisis y diseo orientados a objetos, construccin, pruebas y despliegue.
Permite dibujar todos los tipos de diagramas de clases, cdigo inverso, generar cdigo desde
diagramas y generar documentacin. Tambin proporciona abundantes tutoriales de UML,
demostraciones interactivas de UML y proyectos UML. Presenta licencia gratuita y comercial. Es
fcil de instalar y actualizar y compatible entre ediciones.
Caractersticas principales:
Interoperabilidad con modelos UML2 (metamodelos UML 2.x para plataforma Eclipse) a
travs de XMI.
Ingeniera inversa Java, C++, Esquemas XML, XML, NET exe/dll, CORBA IDL.
30
Ing. Carlos Barker del Ro
Generador de informes.
Distribucin automtica de diagramas - Reorganizacin de las figuras y conectores de los
diagramas UML.
Integracin con Visio - Dibujo de diagramas UML con plantillas (stencils) de Microsoft Visio.
Editor de figuras.
Ms otras herramientas y plugins de modelado UML:
Plataforma Windows:
31
Ing. Carlos Barker del Ro
32
Ing. Carlos Barker del Ro
BoUML
BoUmL es una herramienta de software libre. Pude ser redistribuida o modificada bajo los trminos
de Licencia Pblica General (GNU).
Es una herramienta que permite especificar y generar cdigo en C++, Java, Php y IDL.
Sus Caractersticas principales:
Es gratis.
CASE Studio
Herramienta con potente utilidad de modelado para varias bases de datos. CASE Studio es una
herramienta profesional con la que pueden disearse bases de datos, incluye facilidades para la
creacin de diagramas de relacin, modelado de datos y gestin de estructuras. Tiene soporte para
trabajar con una amplia variedad de formatos de base de datos (Oracle, SQL, MySQL,
PostgreSQL, Access) y permite adems generar xcripts SQL, aplicar procesos de ingeniera
inversa, usar plantillas de diseo personalizables y crear detallados informes en HTML y RTF.
33
Ing. Carlos Barker del Ro
ArgoUML
Herramienta que contiene funciones avanzadas en las etapas de diseo y modelacin de software.
Presenta licencia comercial.
Como caractersticas fundamentales:
Es modular y extensible.
Varios idiomas.
EasyCASE
34
Ing. Carlos Barker del Ro
35
Ing. Carlos Barker del Ro
ERwin
36
Ing. Carlos Barker del Ro
37
Ing. Carlos Barker del Ro
Oracle Designer
Oracle Designer es un juego de herramientas para guardar las definiciones que necesita el usuario
y automatizar la construccin rpida de aplicaciones cliente/servidor.
Integrado con Oracle Developer, Oracle Designer provee una solucin para desarrollar sistemas
empresariales cliente/servidor. Sofisticadas aplicaciones cliente/servidor pueden ser 100%
generadas usando la lgica de la aplicacin y el mdulo de componentes reusables. Oracle
Designer tambin habilita la captura del diseo de sistemas existentes, salvaguardando la versin
actual.
Todos los datos ingresados por cualquier herramienta de Oracle Designer, en cualquier fase de
desarrollo, se guardan en un repositorio central, habilitando el trabajo fcil del equipo y
la direccin del proyecto.
En el lado del Servidor, Oracle Designer soporta la definicin, generacin y captura de diseo de
los siguientes tipos de bases de datos, por conexin nativa de Oracle y por conectividad ODBC:
Oracle7 y ms
Rdb
ANSI 92
DB and MVS
Sybase
Oracle Designer no fuerza al uso de alguna metodologa especfica, pero en cambio proporciona
un juego de herramientas que le permiten que use la metodologa de desarrollo que elija.
Oracle Designer soporta las siguientes metodologas: Desarrollo Rpido de Aplicaciones (RAD), ?
Ingeniera de la Informacin (IE), ?Modelado Asistido de Procesos, Captura de Diseo Asistido.
38
Ing. Carlos Barker del Ro
39
Ing. Carlos Barker del Ro
PowerDesigner
PowerDesigner es una suite de aplicaciones de Powersoft para la construccin, diseo y modelado
de datos a travs de diversas aplicaciones. Es una herramienta para el anlisis, diseo inteligente y
construccin slida de una base de datos y un desarrollo orientado a modelos de datos a nivel
fsico y conceptual.
Esta suite cuenta con los siguientes productos:
PowerDesigner DataArchitect: Provee a los diseadores de las bases de datos una manera
eficiente para la creacin inteligente, depuracin e ingeniera de reversa del modelado, tanto
conceptual como fsico de los datos.
PowerDesigner Viewer: Crea reportes de los modelos fsicos, conceptuales y procesos del
modelado de la base de datos. Tambin permite generar reportes para Internet en HTML. Este
producto cuenta con demos directos de sitio de Sybase en Internet para su evaluacin.
Adems de todas estas caractersticas, PowerDesigner ofrece las posibilidades de:
40
Ing. Carlos Barker del Ro
Soporte para usuarios de bases de datos: Los usuarios de bases de datos pueden ser
recogidos de una base de datos existente y luego almacenados en un modelo fsico de datos.
Ahora, es posible aadir nuevos usuarios y tambin asignar usuarios como propietarios y vistas.
Clculo del tamao de las bases de datos: Puede calcular y definir el tamao definitivo de
bases de datos de nuevo diseo y construccin, incluyendo tamaos detallados de ndices y
tablas.
System Architect
System Architect posee un repositorio nico que integra todas las herramientas, y metodologas
usadas. En la elaboracin de los diagramas, el System Architect conecta directamente al
diccionario de datos, los elementos asociados, comentarios, reglas de validaciones, normalizacin,
etc.
Posee control automtico de diagramas y datos, normalizaciones y balanceamiento entre
diagramas "Padre e Hijo", adems de balanceamiento horizontal, que trabaja integrado con
el diccionario de datos, asegurando la compatibilidad entre el Modelo de Datos y el Modelo
Funcional.
System Architect es considerado un Upper Case, que puede ser integrado a la mayora de los
generadores de cdigo. Traduce modelos de entidades, a partir de la enciclopedia, en esquemas
para Sybase, DB2, Oracle, Ingress, SQL Server, RDB, XDB, Progress, Paradox, SQL Base, AS400,
Interbase, OS/2, DBMS, Dbase 111, Informix, entre otros. Genera tambin Windows DDL y
definiciones de datos para lenguaje C/C++. Posibilita a travs de ODBC, la creacin de bases de
datos a partir del modelo de entidades, para los diversos manejadores de bases de datos arriba
mencionados.
Posee un mdulo especfico para Ingeniera Reversa desde las Bases de Datos SQL ms
populares, incluyendo Sybase, DB2, Infonmix, Oracle y SQL Server (DLL), adems de dilogos y
mens desde Windows.
System Architect posee mltiples metodologas para diseo y anlisis, incluyendo: Anlisis
Estructurado en los modelos De Marco/Yourdon y Gane/Sarson, anlisis de tiempo real en el
modelo Ward & Mellor; anlisis esencial de sistemas; anlisis orientado a objetos en los modelos
UML, Booch, Coad/Yourdon, Rumbaugh, Shaler/Mellor; Diagrama de entidad - relacin en los
modelos Peter Chen, James Martin, Bachman o Booch, Grfico de Estructuras, Diagramas de
Descomposicin, Planeamiento Estratgico de informaciones, entre otras.
Es una herramienta creada especficamente para la arquitectura "Cliente/Servidor", por eso posee
control total de versiones, y de acceso, as como la administracin completa de mltiples equipos
de desarrollo.
41
Ing. Carlos Barker del Ro
Conclusiones
La herramientas CASE actualmente brindan una gran gama de componentes que incluyen todos o
la mayora de los requisitos necesarios para el desarrollo de los sistemas, han sido creadas con
una gran exactitud en torno a las necesidades de los desarrolladores de software para
la automatizacinde procesos incluyendo el anlisis, diseo e implantacin. Ofrecen una gran
plataforma de seguridad a sistemas que las usan.
Debido a la demanda que tienen las CASE, su exigencia en cuanto a su uso ha ido aumentando,
por lo que toda CASE debe entre otras cosas: proporcionar topologas de aplicacin flexibles,
proporcionar aplicaciones porttiles, brindar un Control de versin, crear cdigo compilado en el
servidor, dar un Soporte multiusuario y ofrecer seguridad.
Las herramientas CASE cuentan con una credibilidad y exactitud que tienen un reconocimiento
universal, siendo usadas por cualquier desarrollador y/o programador que busca un resultado
ptimo y eficiente.
42
Ing. Carlos Barker del Ro