Вы находитесь на странице: 1из 80

Anlisis y Diseo de Sistemas

Ing. Manuel Humberto Valdera Garca


Sesin 1
Ingeniera de Software
Ingeni er a de Software
El software se ha incrustado profundamente
en casi todos los aspectos de nuestras vidas y,
como consecuencia, el nmero de personas
que tienen inters en las caractersticas y
funciones que brinda una aplicacin
especfica ha crecido en forma notable.
Ingeni er a de Software
Cuando ha de construirse una aplicacin
nueva o sistema incrustado, deben
escucharse muchas opiniones. Y en
ocasiones parece que cada una de ellas
tiene una idea un poco distinta de cules
caractersticas y funciones debiera tener el
software.
Ingeni er a de Software
Se concluye que debe hacerse un esfuerzo
concertado para entender el problema
antes de desarrollar una aplicacin de
software.
Ingeni er a de Software
Los requerimientos de la tecnologa de la
informacin que demandan los individuos, negocios
y gobiernos se hacen ms complejos con cada ao
que pasa. En la actualidad, grandes equipos de
personas crean programas de cmputo que antes
eran elaborados por un solo individuo.
Ingeni er a de Software
El software sofisticado, que alguna vez se
implement en un ambiente de cmputo
predecible y autocontenido, hoy en da se
halla incrustado en el interior de todo, desde
la electrnica de consumo hasta dispositivos
mdicos o sistemas de armamento.
Ingeni er a de Software
La complejidad de estos nuevos
sistemas y productos basados en
computadora demanda atencin
cuidadosa a las interacciones de todos
los elementos del sistema.
Se concluye que el diseo se ha vuelto una
actividad crucial.

Ingeni er a de Software
Los individuos, negocios y gobiernos
dependen cada vez ms del software
para tomar decisiones estratgicas y
tcticas, as como para sus operaciones y
control cotidianos. Si el software falla,
las personas y empresas grandes pueden
experimentar desde un inconveniente
menor hasta fallas catastrficas.
Se concluye que el software debe tener alta
calidad.
Ingeni er a de Software
Estas realidades simples llevan a una
conclusin: debe hacerse ingeniera con el
software en todas sus formas y a travs de
todos sus dominios de aplicacin. Y esto
conduce a la ingeniera de software.
Ingeni er a de Software
Definicin: Es el establecimiento y uso de
principios fundamentales de la ingeniera con
objeto de desarrollar en forma econmica
software que sea confiable y que trabaje con
eficiencia en mquinas reales.
Ingeni er a de Software
Definicin: Es la aplicacin de un enfoque
sistemtico, disciplinado y cuantificable al
desarrollo, operacin y mantenimiento de
software; es decir, la aplicacin de la ingeniera
al software.
Ingeni er a de Software
La Ingeniera de software es el establecimiento y uso de principios
robustos de la ingeniera a fin de obtener econmicamente software
que sea fiable y que funcione eficientemente sobre mquinas reales.
Ni vel es o capas de l a
Ingeni er a de Software
La ingeniera de software es una tecnologa con varias
capas, como se aprecia en la figura.
Ni vel es o capas de l a
Ingeni er a de Software
Cualquier enfoque de ingeniera
(incluso la de software) debe basarse en
un compromiso organizacional con la
calidad. La administracin total de la
calidad, en ltima instancia al
desarrollo de enfoques cada vez ms
eficaces de la ingeniera de software. El
fundamento en el que se apoya la
ingeniera de software es el
compromiso con la calidad.
Ni vel es o capas de l a
Ingeni er a de Software
El fundamento para la ingeniera de software
es la capa proceso. El proceso de ingeniera
de software es el aglutinante que une las
capas de la tecnologa y permite el desarrollo
racional y oportuno del software de cmputo.
El proceso define una estructura que debe
establecerse para la obtencin eficaz de
tecnologa de ingeniera de software.
Ni vel es o capas de l a
Ingeni er a de Software
El proceso de software forma la base para el
control de la administracin de proyectos de
software, y establece el contexto en el que se
aplican mtodos tcnicos, se generan
productos del trabajo (modelos, documentos,
datos, reportes, formatos, etc.), se establecen
puntos de referencia, se asegura la calidad y
se administra el cambio de manera apropiada.
Ni vel es o capas de l a
Ingeni er a de Software
Los mtodos de la ingeniera de software
proporcionan la experiencia tcnica para elaborar
software. Incluyen un conjunto amplio de tareas,
como comunicacin, anlisis de los
requerimientos, modelacin del diseo,
construccin del programa, pruebas y apoyo. Los
mtodos de la ingeniera de software se basan en
un conjunto de principios fundamentales que
gobiernan cada rea de la tecnologa e incluyen
actividades de modelacin y otras tcnicas
descriptivas.
Ni vel es o capas de l a
Ingeni er a de Software
Las herramientas de la ingeniera de software
proporcionan un apoyo automatizado o
semiautomatizado para el proceso y los
mtodos. Cuando se integran las herramientas
de modo que la informacin creada por una
pueda ser utilizada por otra, queda establecido
un sistema llamado ingeniera de software
asistido por computadora que apoya el
desarrollo de software.
Ni vel es o capas de l a
Ingeni er a de Software
Las herramientas de la ingeniera de software
proporcionan un apoyo automatizado o
semiautomatizado para el proceso y los
mtodos. Cuando se integran las herramientas
de modo que la informacin creada por una
pueda ser utilizada por otra, queda establecido
un sistema llamado ingeniera de software
asistido por computadora que apoya el
desarrollo de software.
Fas es general es del proces o de
des arrol l o de s of t ware
Un proceso es un conjunto de actividades,
acciones y tareas que se ejecutan cuando va a
crearse algn producto del trabajo. Una actividad
busca lograr un objetivo amplio (por ejemplo,
comunicacin con los participantes) y se desarrolla
sin importar el dominio de la aplicacin, tamao
del proyecto, complejidad del esfuerzo o grado de
rigor con el que se usar la ingeniera de software.
Fas es general es del proces o de
des arrol l o de s of t ware
Comunicacin. Antes de que comience
cualquier trabajo tcnico, tiene importancia
crtica comunicarse y colaborar con el
cliente (y con otros participantes). Se busca
entender los objetivos de los participantes
respecto del proyecto, y reunir los
requerimientos que ayuden a definir las
caractersticas y funciones del software.
Fases general es del
proceso de desarrol l o
de software
Planeacin. Cualquier viaje complicado se
simplifica si existe un mapa. Un proyecto de
software es un viaje difcil, y la actividad de
planeacin crea un mapa que gua al equipo
mientras viaja. El mapa llamado plan del
proyecto de software define el trabajo de
ingeniera de software al describir las tareas
tcnicas por realizar, los riesgos probables, los
recursos que se requieren, los productos del trabajo
que se obtendrn y una programacin de las
actividades.
Fases general es del
proceso de desarrol l o
de software
Modelado. Ya sea usted diseador de paisaje,
constructor de puentes, ingeniero aeronutico,
carpintero o arquitecto, a diario trabaja con
modelos. Crea un bosquejo del objeto por
hacer a fin de entender el panorama general
cmo se ver arquitectnicamente, cmo ajustan
entre s las partes constituyentes y muchas
caractersticas ms. Si se requiere, refina el
bosquejo con ms y ms detalles en un esfuerzo
por comprender mejor el problema y cmo
resolverlo.
Fases general es del
proceso de desarrol l o
de software
Construccin. Esta actividad combina la
generacin de cdigo (ya sea manual o
automatizada) y las pruebas que se requieren para
descubrir errores en ste.

Despliegue. El software (como entidad completa
o como un incremento parcialmente terminado)
se entrega al consumidor que lo evala y que le
da retroalimentacin, misma que se basa en dicha
evaluacin.
Model o de procesos de
desarrol l o de Software
Un proceso como la coleccin de
actividades de trabajo, acciones y tareas
que se realizan cuando va a crearse algn
producto terminado. Cada una de las
actividades, acciones y tareas se encuentra
dentro de una estructura o modelo que
define su relacin tanto con el proceso
como entre s.
Model o de procesos de
desarrol l o de Software
Model o de procesos de
desarrol l o de Software
Model o de procesos de
desarrol l o de Software
Model o de procesos de
desarrol l o de Software
Modelo de la cascada
Hay veces en las que los requerimientos para cierto
problema se comprenden bien: cuando el trabajo
desde la comunicacin hasta el despliegue fluye en
forma razonablemente lineal. Esta situacin se
encuentra en ocasiones cuando deben hacerse
adaptaciones o mejoras bien definidas a un sistema
ya existente (por ejemplo, una adaptacin para
software de contabilidad que es obligatorio hacer
debido a cambios en las regulaciones
gubernamentales).
Model o de procesos de
desarrol l o de Software
Model o de procesos de
desarrol l o de Software
Modelo de la cascada
El modelo de la cascada, a veces llamado ciclo de
vida clsico, sugiere un enfoque sistemtico y
secuencial para el desarrollo del software, que
comienza con la especificacin de los
requerimientos por parte del cliente y avanza a
travs de planeacin, modelado, construccin y
despliegue, para concluir con el apoyo del software
terminado
Model o de procesos de
desarrol l o de Software
Modelos de proceso incremental
Hay muchas situaciones en las que los
requerimientos iniciales del software estn
razonablemente bien definidos, pero el alcance
general del esfuerzo de desarrollo imposibilita un
proceso lineal. Adems, tal vez haya una necesidad
imperiosa de dar rpidamente cierta funcionalidad
limitada de software a los usuarios y aumentarla en
las entregas posteriores de software. En tales casos,
se elige un modelo de proceso diseado para
producir el software en incrementos.
Model o de procesos de
desarrol l o de Software
Model o de procesos de
desarrol l o de Software
Modelos de proceso incremental
El modelo de proceso incremental se centra en que
en cada incremento se entrega un producto que ya
opera. Los primeros incrementos son versiones
desnudas del producto final, pero proporcionan
capacidad que sirve al usuario y tambin le dan una
plataforma de evaluacin
Model o de procesos de
desarrol l o de Software
Modelos de proceso evolutivo
El software, como todos los sistemas complejos,
evoluciona en el tiempo. Es frecuente que los
requerimientos del negocio y del producto cambien
conforme avanza el desarrollo, lo que hace que no
sea realista trazar una trayectoria rectilnea hacia el
producto final; los plazos apretados del mercado
hacen que sea imposible la terminacin de un
software perfecto, pero debe lanzarse una versin
limitada a fin de aliviar la presin de la competencia
o del negocio.
Model o de procesos de
desarrol l o de Sof t ware
Modelos de proceso evolutivo
Hacer prototipos. Es frecuente que un cliente defina
un conjunto de objetivos generales para el software,
pero que no identifique los requerimientos detallados
para las funciones y caractersticas.
En otros casos, el desarrollador tal vez no est seguro
de la eficiencia de un algoritmo, de la adaptabilidad de
un sistema operativo o de la forma que debe adoptar
la interaccin entre el humano y la mquina. En estas
situaciones, y muchas otras, el paradigma de hacer
prototipos tal vez ofrezca el mejor enfoque.
Model o de procesos de
desarrol l o de Software
Model o de procesos de
desarrol l o de Software
El modelo espiral. Propuesto en primer lugar por
Barry Boehm, el modelo espiral es un modelo
evolutivo del proceso del software y se acopla
con la naturaleza iterativa de hacer prototipos con
los aspectos controlados y sistmicos del modelo
de cascada. Tiene el potencial para hacer un
desarrollo rpido de versiones cada vez ms
completas.
Model o de procesos de
desarrol l o de Software
Model o de procesos de
desarrol l o de Software
Modelos concurrentes
El modelo de desarrollo concurrente, en ocasiones
llamado ingeniera concurrente, permite que un
equipo de software represente elementos iterativos y
concurrentes de cualquiera de los modelos de proceso
descritos en este captulo. Por ejemplo, la actividad
de modelado definida para el modelo espiral se logra
por medio de invocar una o ms de las siguientes
acciones de software: hacer prototipos, anlisis y
diseo.
Model o de procesos de
desarrol l o de Software
Sesin 2
El paradigma orientado a
objetos, UML y RUP
El RUP
Rational Unified Process
El Proceso Unificado es un proceso de
software genrico que puede ser utilizado para
una gran cantidad de tipos de sistemas de
software, para diferentes reas de aplicacin,
diferentes tipos de organizaciones, diferentes
niveles de competencia y diferentes tamaos
de proyectos.
Estructura del RUP
RUP y UML
El Proceso Unificado usa el Lenguaje de
Modelado Unificado (UML) en la
preparacin de todos los planos del sistema.
De hecho, UML es una parte integral del
Proceso Unificado, fueron desarrollados a
la par.
Perspecti vas de UML
UML ser el lenguaje de modelado
orientado a objetos estndar predominante
los prximos aos.

Evidencias:
Herramientas que proveen la notacin UML
Edicin de libros
Congresos, cursos, etc.
Perspecti vas de UML
Evidencias:
Herramientas que proveen la
notacin UML
Edicin de libros
Congresos, cursos, etc.
Model os y Di agramas
Un modelo captura una vista de un
sistema del mundo real. Es una
abstraccin de dicho sistema,
considerando un cierto propsito. As,
el modelo describe completamente
aquellos aspectos del sistema que son
relevantes al propsito del modelo, y a
un apropiado nivel de detalle.
Model os y Di agramas
Diagrama: una representacin grfica
de una coleccin de elementos de
modelado, a menudo dibujada como un
grafo con vrtices conectados por
arcos.
Di agramas de UML
Diagrama de Casos de Uso
Diagrama de Clases
Diagrama de Objetos
Diagramas de Comportamiento
Diagrama de Estados
Diagrama de Actividad
Diagramas de Interaccin
Diagrama de Secuencia
Diagrama de Colaboracin
Diagramas de implementacin
Diagrama de Componentes
Diagrama de Despliegue
Di agramas de UML
Use Case
Diagrams
Use Case
Diagrams
Diagramas de
Casos de Uso
Scenario
Diagrams
Scenario
Diagrams
Diagramas de
Colaboracin
State
Diagrams
State
Diagrams
Diagramas de
Componentes
Component
Diagrams
Component
Diagrams
Diagramas de
Distribucin
State
Diagrams
State
Diagrams
Diagramas de
Objetos
Scenario
Diagrams
Scenario
Diagrams
Diagramas de
Estados
Use Case
Diagrams
Use Case
Diagrams
Diagramas de
Secuencia
State
Diagrams
State
Diagrams
Diagramas de
Clases
Diagramas de
Actividad
Modelo
Los diagramas expresan grficamente partes de un modelo
Organi zaci n de
Model os
Propuesta de Rational Unified Process (RUP)
M. de Casos de Uso del Negocio (Business Use-Case
Model)
M. de Objetos del Negocio (Business Object Model)
M. de Casos de Uso (Use-Case Model)
M. de Anlisis (Analysis Model)
M. de Diseo (Design Model)
M. de Despliegue (Deployment Model)
M. de Datos (Data Model)
M. de Implementacin (Implementation Model)
M. de Pruebas (Test Model)

Paquetes en UML
Los paquetes ofrecen un mecanismo
general para la organizacin de los
modelos/subsistemas agrupando
elementos de modelado
Se representan grficamente como:
Nombre de
paquete
Paquetes en UML
Cada paquete corresponde a un submodelo
(subsistema) del modelo (sistema)
Un paquete puede contener otros paquetes,
sin lmite de anidamiento pero cada
elemento pertenece a (est definido en) slo
un paquete
Una clase de un paquete puede aparecer en
otro paquete por la importacin a travs de
una relacin de dependencia entre paquetes
Paquetes en UML

UNPSJB - 2005
Di agrama de Casos de
Uso
Casos de Uso es una tcnica para
capturar informacin de cmo un
sistema o negocio trabaja, o de cmo se
desea que trabaje

No pertenece estrictamente al enfoque
orientado a objeto, es una tcnica para
captura de requisitos
Ingeniera de Software - Clase 6
Di agrama de Casos de
Uso
Supervisor
Verificar Situacin del Cliente
Administrativo
Preparar Catlogo
Sistema
Inventario
Tipos de Venta
Ejempl os
UNPSJB - 2005
En el paquete tipos de venta:
Venta Normal
Venta en Rebajas
Venta en Ofertas
Vendedor
Ejempl os
UNPSJB - 2005 Ingeniera de Software - Clase 6 61
Solicitar Nueva Tarjeta
Cliente
Solicitar Prstamo
<<extend>>
[Tarjeta Caducada]
Otro Ejemplo
Ejempl os
Verificar Operacin
Reintegro Cuenta Corriente
Cliente
Reintegro Cuenta de Crdito
<<include>>
<<include>>
Di agrama de Secuenci a

UNPSJB - 2005
: Encargado
:WInPrstamos :Socio :Video :Prstamo
prestar(video, socio)
verificar situacin socio
verificar situacin video
registrar prstamo
entregar recibo
Di agrama de
Col aboraci n
: Encargado
:WInPrstamos
:Socio
:Video
:Prstamo
1: prestar(video, socio)
2: verificar situacin socio
3: verificar situacin video
4: registrar prstamo
5: entregar recibo
Di agrama de Cl ases
El Diagrama de Clases es el
diagrama principal para el anlisis
y diseo.

Un diagrama de clases presenta
las clases del sistema con sus
relaciones estructurales y de
herencia.
UNPSJB - 2005
Di agrama de Cl ases
La definicin de clase incluye
definiciones para atributos y
operaciones.

El modelo de casos de uso aporta
informacin para establecer las clases,
objetos, atributos y operaciones.
UNPSJB - 2005
Ejempl os
(Clase y Visibilidad)
Ejempl os
Asociacin
Profesor Departamento
1 0..1
director
1
dirige
0..1
Ejempl os (Cl ase
Asoci aci n)
69
Empresa Empleado
1..* * 1..* *
trabajadores empleador
Cargo
nombre
sueldo
0..1
1..*
superior
subordinado
1..*
0..1
Ejempl os
(General i zaci n)
Trabajador
Directivo Administrativo Obrero
{ disjunta, completa }
Ejempl os

Avin militar
Avin comercial
Avin de carga Avin de pasajeros
Motor Vendedor de billetes
Avin
1..4
1
1..4
1
Piloto
Reserva
n
1
n
1
Lnea area
Vuelo
n 1 n 1
1..2
n
1..2
n
n 1 n 1
1
n
1
n
{ disjunta, completa }
{ disjunta, completa }
Di agrama de Estados

con prstamos
sin prstamos
alta baja
prestar devolver[ nmero_prstamos = 1 ]
prestar
devolver[ nmero_prstamos > 1 ]
nmero_prstamos = 0
nmero_prstamos > 0
Socio
nmero : int
nombre : char[50]
nmero_prestamos : int = 0
alta()
baja()
prestar(cdigo_libro : int, fecha : date)
devolver(cdigo_libro : int, fecha : date)
Di agrama de Acti vi dad

Buscar Bebida
Poner caf en filtro Aadir agua al depsito Agarrar taza
Poner filtro en mquina
Encender mquina
Caf en preparacin
Servir caf
Agarrar zumo
Beber
[no hay caf]
[hay caf
[no zumo]
[hay zumo]
/ cafetera.On
indicador de fin
Otro Ejempl o ( con
swi m l i nes)
Emitir billete
Pasajero
Vendedor Airline
Solicitar pago Reservar plazas
Confirmar
plaza reservada
Pagar pasaje
Informar alternativas
y precios
Verificar
existencia vuelo
Dar detalles vuelo
Solicitar pasaje
Seleccionar vuelo
Di agrama Componentes
Control y Anlisis
Comment
Acceso a BD
Comment
Rutinas de Coneccion
Comment
Interf az de Terminal
Comment
Gestin de Cuentas
Comment
Di agrama de Despl i egue
76
Punto de Venta
Servidor Central
Terminal de Consulta
Gestin de Cuentas
Comment
Interfaz de Terminal
Comment
Rutinas de Coneccion
Comment
Rutinas de Coneccion
Comment
Interfaz de Terminal
Comment
Rutinas de Coneccion
Comment
Acceso a BD
Comment
Control y Anlisis
Comment
Resumen
UML define una notacin que se expresa como
diagramas sirven para representar
modelos/subsistemas o partes de ellos
El 80 por ciento de la mayora de los
problemas pueden modelarse usando alrededor
del 20 por ciento de UML-- Grady Booch

Por qu l a Ori entaci n
a Objetos?
Proximidad de los conceptos de modelado
respecto de las entidades del mundo real
Mejora captura y validacin de requisitos
Acerca el espacio del problema y el espacio
de la solucin
Modelado integrado de propiedades
estticas y dinmicas del mbito del
problema
Facilita construccin, mantenimiento y
reutilizacin
Probl emas en OO
...Los conceptos bsicos de la OO se conocen
desde hace dos dcadas, pero su aceptacin
todava no est tan extendida como los
beneficios que esta tecnologa puede sugerir
...La mayora de los usuarios de la OO no
utilizan los conceptos de la OO de forma
purista, como inicialmente se pretenda. Esta
prctica ha sido promovida por muchas
herramientas y lenguajes que intentan utilizar
los conceptos en diversos grados
79
Tarea

Hacer un informe explicando las ventajas y
desventajas de los modelos de proceso de
software analizados en clase.

Вам также может понравиться