You are on page 1of 30

Prof.

Vctor Valenzuela Ruz


Ingeniera de Software
(790464)
Unidad 1
Introduccin a la Ingeniera de Software
(Producto y Proceso)
Profesor Vctor Valenzuela Ruz
Prof. Vctor Valenzuela Ruz
Proceso de Desarrollo de Software
Proceso de desarrollo de software:
Forma disciplinada de asignar tareas y responsabilidades en
una empresa de desarrollo (quin hace qu, cundo y cmo).
Objetivos:
Asegurar la produccin de software de calidad dentro de
plazos y presupuestos predecibles.
Requisitos del usuario Sistema de software
Proceso de desarrollo
de software
2
Prof. Vctor Valenzuela Ruz
Ingeniera de Software
Los ingenieros de software necesitan:
comprender el ambiente de funcionamiento del sistema: construyen
modelos del dominio del problema (sistemas de ventas, control de
inventario,...)
comprender los distintos sistemas que podran construir para evaluar
alternativas: construyen modelos del dominio de la solucin
tcnicas y herramientas para construir los modelos (por ejemplo, diagramas
de UML)
Otras actividades del desarrollo para evaluar la adecuacin de los modelos:
revisiones del anlisis: el modelo del dominio del problema se compara con
la realidad del cliente
revisiones del diseo: el modelo del dominio de la solucin se compara con
los objetivos del proyecto
pruebas: el sistema se valida contra el modelo del dominio de la solucin
administracin del proyecto: se compara el modelo del proceso de
desarrollo (calendario y presupuesto) con la realidad (trabajos entregados y
recursos gastados).
3
Prof. Vctor Valenzuela Ruz
Enfoque Desarrollo de Sistemas
Una Metodologa de Desarrollo de Sistemas provee las
lineamientos a seguir para completar cualquier actividad en el ciclo de
vida del desarrollo de sistemas.
Un modelo es una representacin de un aspecto importante del
mundo.
Estrategia
y
anlisis
Diseo
Construccin
y
documentacin
Transicin
Produccin
4
Prof. Vctor Valenzuela Ruz
Objetivos y Requerimientos
Objetivos
principios de alto nivel que se utilizan para guiar el proyecto
definen los atributos realmente importantes del sistema (seguridad,
fiabilidad,...)
a veces hay conflicto entre objetivos (por ejemplo, seguridad y bajo
coste) que aumentan la complejidad del proyecto
Requerimientos
caractersticas que debe tener el sistema
requerimiento funcional: rea de funcionalidad que debe soportar el
sistema (por ejemplo, proporcionar billetes de tren).
requerimiento no funcional: restriccin que se establece sobre el
funcionamiento del sistema (por ejemplo, proporcionar billetes de
tren en menos de un segundo).
Otras restricciones: por ejemplo, utilizacin de un determinado
lenguaje, de una determinada plataforma o de un sistema antiguo que
el cliente no quiere retirar.
5
Prof. Vctor Valenzuela Ruz
Metodologas y Mtodos
Notacin: conjunto de reglas grficas o de texto para representar un
modelo (por ejemplo, UML, Unified Modelling Language, es una
notacin grfica orientada a objetos para representar modelos)
Mtodo: tcnica repetible para resolver un problema especfico. Por
ejemplo:
Un algoritmo de ordenacin es un mtodo para ordenar elementos
en una lista
La administracin de la configuracin es un mtodo para el
seguimiento de los cambios
Metodologa: coleccin de mtodos para la resolucin de una clase de
problemas (OMT, metodologa de Booch, Catalysis, Proceso Unificado
de Desarrollo,...).
6
Prof. Vctor Valenzuela Ruz
Metodologas Representativas
Algunas de las metodologas ms representativas actuales para
el desarrollo de software son:
Architected Rapid Application Development (Architected RAD)
Dynamic Systems Development Methodology (DSDM)
J oint Application Development (J AD)
Information Engineering (IE)
Structured Analysis and Design (SAD)
Object-Oriented Analysis and Design (OOAD)
Rapid Application Development (RAD)
Rational Unified Process (RUP)
Agile Unified Process (AUP)
eXtreme Programming (XP)
7
Prof. Vctor Valenzuela Ruz
Anlisis y Diseo Estructurado
El proceso de aplicar distintas tcnicas y principios con el propsito de definir
un dispositivo, un proceso o un sistema con suficiente detalle como para
permitir su realizacin fsica.
Proceso iterativo a travs del cual se traducen los requisitos en una
representacin del software.
Metodologas
Yourdon/DeMarco
Gane & Sarson
Ward & Mellor
SSADM
Mtrica v3.0
Diagramas
Diagrama de Flujo de Datos (DFD)
Diagrama de Entidad/Relacin (DER)
Diagramas de Estructuras (Structure Chart)
Diagramas Modulares
8
Prof. Vctor Valenzuela Ruz
Anlisis y Diseo Orientado a Objetos
Conceptos Modelo de Objetos
Basado en abstracciones
Clases y Objetos / Mtodos y Mensajes
Herencia, Encapsulamiento (ocultamiento) y Polimorfismo
Framework y Patrones de Diseo (MVC-Model View Controler)
Zachmann Framework
Reutilizacin
Metodologas
Booch (Booch), Rumbaugh (OMT), J acobson (OOSE), Coad-Yourdon
(OOA/OOD), UML
Diagramas
Diagrama de Clases
Diagrama de Colaboracin
Fichas CRC Clase Responsabilidad y Colaboracin
Diagramas de Secuencia
Diagramas de Casos de Uso
9
Prof. Vctor Valenzuela Ruz
Zachman Framework
10
Prof. Vctor Valenzuela Ruz
El Proceso Diseo Estructurado
11
Prof. Vctor Valenzuela Ruz
Herramientas CASE
CASE: Computer Aided Software Engineering.
Conjunto de herramientas y metodologas que soportan
un enfoque de ingeniera para las distintas fases del
desarrollo de software
Soporte automtico o semiautomtico para el proceso y los
mtodos.
12
Prof. Vctor Valenzuela Ruz
Concepto de CASE
El trmino CASE es un acrnimo ingls de Computer Aided
Software Engineering, que traducido significa Ingeniera de
Software Asistida por Computadora.
Fuente:
www.wikipedia.org
Otras variaciones del concepto CASE:
13
Prof. Vctor Valenzuela Ruz
Objetivos de las Herramientas CASE
Permitir la aplicacin prctica de metodologas estructuradas, lo
que resulta muy difcil sin emplear herramientas.
Mejorar la calidad del software.
Facilitar la realizacin de prototipos, y el desarrollo conjunto de
aplicaciones.
Simplificar el mantenimiento de los programas.
Estandarizar la documentacin.
Aumentar la portabilidad de las aplicaciones.
Facilitar la reutilizacin de componentes software.
Permitir un desarrollo visual de las aplicaciones, mediante la
utilizacin de grficos.
14
Prof. Vctor Valenzuela Ruz
Tecnologa CASE
Automatizar:
El desarrollo del software
La documentacin
La generacin del cdigo
El chequeo de errores
La gestin del proyecto
Permitir:
La reutilizacin del software
La portabilidad del software
La estandarizacin de la documentacin
15
Prof. Vctor Valenzuela Ruz
Clasificacin de CASE
La clasificacin nos ayuda a entender los diferentes tipos de
herramientas CASE y su apoyo a las actividades de procesos.
Perspectiva de Integracin
Herramientas son clasificadas de acuerdo a su organizacin
por unidades integradas.
Perspectiva de Proceso
Herramientas son clasificadas de acuerdo a las actividades
de procesos que soportan.
Perspectiva funcional
Herramientas son clasificadas de acuerdo a su funcin
especfica.
16
Prof. Vctor Valenzuela Ruz
Perspectiva de Integracin
Segn el grado de integracin:
Toolkits (J uego de herramientas)
Conjunto de herramientas software que automatizan alguna fase del ciclo
de vida (anlisis, diseo, gestin, ...). Comparten la BD de soporte y la
interfaz de usuario. Integracin baja.
Workbenchs (Banco de trabajo)
Conjunto de herramientas software que automatizan el ciclo de vida en
ms de una fase, tpicamente en anlisis + diseo + implementacin
(incluyendo documentacin asociada). Asisten en todo el proceso y
proporcionan un producto documentado y operativo. Adems de compartir
la BD de soporte y la interfaz de usuario, estn basadas en una misma
metodologa. Integracin media.
IPSE (Integrated Project Support Environment)
Integracin alta. Cubren todo el ciclo de vida, la gestin de proyectos y de
la configuracin.
17
Prof. Vctor Valenzuela Ruz
Perspectiva de Proceso
Segn las fases del ciclo de vida que abordan:
CASE frontales (front-end) o Upper CASE
Herramientas de apoyo a las primeras fases:
Anlisis, diseo.
CASE dorsales (back-end) o Lower CASE
Herramientas de apoyo a las ltimas fases:
Implementacin (generacin de cdigo).
Pruebas (caja blanca y caja negra).
Mantenimiento.
I-CASE (Integrated-CASE)
Contienen elementos de Upper y Lower CASE: contemplan
todo el ciclo de desarrollo.
18
Prof. Vctor Valenzuela Ruz
Ventajas y Desventajas
19
Prof. Vctor Valenzuela Ruz
Clasificacin por Posicin (ciclo de vida)
Upper CASE: Herramientas de apoyo a las primeras fases
Mtricas del software.
Estimacin de costes.
Planificacin temporal.
Middle CASE: Herramientas de apoyo a las fases centrales.
Anlisis.
Diseo.
Lower CASE: Herramientas de apoyo a las ltimas fases.
Implementacin (generacin de cdigo).
Pruebas (caja blanca y caja negra).
Mantenimiento.
Documentacin de la implementacin y documentacin para
el usuario final.
20
Prof. Vctor Valenzuela Ruz
Categoras de Herramientas CASE
Segn Fase del Ciclo de Vida que Soportan
CASE frontales ("front-end") o superiores ("Upper CASE"),
abarcan las primeras fases de anlisis y diseo
CASE dorsales ("back-end") o inferiores ("Lower CASE"),
cuyo objetivo suele ser el diseo detallado y la generacin de
cdigo.
Se denomina I -CASE (Integrated CASE) a las herramientas que
engloban ambos aspectos, e IPSE (Integrated Programming
Support Environment) a aquellas que, adems, incluyen
componentes para la gestin de proyectos y la gestin de
configuracin.
21
Prof. Vctor Valenzuela Ruz
Categoras de Herramientas CASE
Segn la funcionalidad brinde:
1. Herramientas de planificacin de sistemas de gestin
2. Herramientas de Anlisis y Diseo
3. Herramientas de programacin
4. Herramientas de integracin y prueba
5. Herramientas de gestin de prototipos
6. Herramientas de mantenimiento
7. Herramientas de gestin de proyectos
8. Herramientas de soporte
22
Prof. Vctor Valenzuela Ruz
Componentes Herramientas CASE
Repositorio
Mdulos de diagramacin y
modelizacin
Herramienta de prototipado
Generador de cdigo
Mdulo generador de
documentacin
Mdulo de gestin de proyectos
23
Prof. Vctor Valenzuela Ruz
Criterios de Eleccin de un CASE
La eleccin del Case va a depender de sus estrategias de desarrollo:
Si tiene un gran volumen de aplicativos desarrollados, es conveniente
contrastar lo realizado versus las tcnicas de Anlisis y Diseo.
Si tiene presin por resultados a corto plazo, el empleo de un Lower
Case le ser de utilidad, si se basa en modelos de datos y procesos
claros y definidos.
Si desea realizar proyectos de gran envergadura es recomendable
aplicar Upper y Lower Case.
Si trabaja con archivos de grandes dimensiones, es recomendable que
el Case soporte el Diseo de Bases de Datos.
Si no tiene formacin y experiencia en el manejo de metodologas es
recomendable contar con asesora especializada, que capacite al
personal y supervise los avances de Anlisis y Diseo.
Evale la eficiencia del producto, en las pruebas unitarias y de integracin,
y fundamentalmente en las pruebas de sistemas.
Considere los recursos apropiados para usar el Case, de Hardware
(memoria, disco, concurrencia), de Software (versin de Sistema
Operativo).
24
Prof. Vctor Valenzuela Ruz
Tendencias Tecnolgicas
CASE para sistemas bajo arquitectura cliente/servidor
CASE multiplataforma
CASE para ingeniera inversa y directa
CASE para trabajo en grupo (groupware)
CASE para desarrollo de sistemas orientados a objetos
Otras posibles lneas de evolucin sern:
La utilizacin de la tecnologa multimedia.
La incorporacin de tcnicas de inteligencia artificial.
Sistemas de realidad virtual.
25
Prof. Vctor Valenzuela Ruz
Criterios de Seleccin
Tipo de computador (Mainframe, Workstation, PC, ...)
Lenguaje al que va orientada.
Metodologa soportada.
Posibilidades de integracin con otras plataformas (presentes y
futuras).
Otros Criterios habituales en la seleccin de software:
formacin, precio, asistencia tcnica, mantenimiento, ...
(la formacin en el uso de herramientas CASE se estima en 1/3 de la
formacin necesaria para el uso de la metodologa subyacente)
26
Prof. Vctor Valenzuela Ruz
Estrategia de Implantacin de un CASE
Identificar la magnitud de problemas a resolver en la
Organizacin.
Identificar el nivel estratgico que deben tener los sistemas.
Evaluar los recursos de hardware y software disponibles en la
Institucin y el medio.
Evaluar el nivel del personal.
Efectuar un estudio de costo-beneficio definiendo metas a
lograr.
Elegir las herramientas apropiadas para la Institucin.
Establecer un programa de capacitacin de personal de
sistemas y usuarios.
Elegir una aplicacin.
27
Prof. Vctor Valenzuela Ruz
Etapas en un Proyecto de Introduccin del CASE
Para llevar a cabo con xito el proyecto de introduccin del
CASE en el rea de Desarrollo, en el CEDS recomendamos que
como mnimo se tengan en cuenta cinco etapas:
ETAPA-1 : Descripcin de Objetivos - Grupo de Trabajo -
Planificacin previsional del proyecto.
ETAPA-2 : Anlisis del rea de Desarrollo
ETAPA-3 : Seleccin de Metodologa y Herramientas CASE
ETAPA-4 : Aplicacin en Escenarios y Evaluacin
Es muy importante que el proyecto de evaluacin NO sea
crtico y su tamao pequeo.
ETAPA-5 : Extensin de la Metodologa y CASE en la
Organizacin
28
Prof. Vctor Valenzuela Ruz
Causas por las que fracasan algunos proyectos CASE
No siempre han tenido xito los proyectos de introduccin del CASE. Bien es
cierto que debido a que los nuevos programas de formacin de Analistas ya
tienen en cuenta tanto la Metodologa como el uso y prcticas con sistemas
CASE, estn permitiendo reducir los riegos de fracaso.
No obstante en muchas organizaciones actuales no se dispone de Analistas
formados, ni de experiencias CASE. Son estas organizaciones las que deben
poner especial atencin en las causas mas frecuentes por las que puede
fracasar el proyecto:
No se tienen en cuenta las tres primeras etapas,
No se concreta ninguna Metodologa,
El proyecto de evaluacin es demasiado ambicioso crtico,
En la etapa quinta no se lleva a cabo la Formacin que se precisa,
Los Usuarios (rea de Desarrollo), no estn motivados.
Un proyecto de introduccin de CASE es siempre "un proyecto estratgico"
para el rea de Desarrollo y como tal "No tiene vuelta atrs". Cuando la
decisin ya ha sido tomada "siga con pasos firmes todas las etapas.
29
Prof. Vctor Valenzuela Ruz
Conclusiones
Sin lugar a dudas las herramientas CASE han venido a revolucionar
la forma de automatizar los aspectos clave en el desarrollo de los
sistemas de informacin, debido a la gran plataforma de seguridad
que ofrecen a los sistemas que las usan y es que stas, brindan
toda una gama de componentes que incluyen todas 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 sistemas para la automatizacin de procesos
incluyendo el anlisis, diseo e implantacin.
Desde que se crearon stas herramientas (1984) hasta la
actualidad, las 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, pero sobre todo que busca esa minuciosidad necesaria
de los procesos y entre los procesos.
30

You might also like