Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad: 2
ElProcesodeDesarrollodeSoftware
- Diapositivas de clases Docente: Ing. Marcela F. Cattaneo
JTP y Ay: Ing. Mara Irene Mac William
2K7
Ing. Germn Vlez
JTP y Ay: Ing. Claudia Snchez
2K10
Ing. Susana Turanzas
IngenieradeSoftware:
ConceptosBsicos
Paradigma:
El historiador Thomas Khun defini la palabra
paradigma como un conjunto de teoras, estndares
y mtodos que juntos representan una forma de
organizar el conocimiento, es decir, una forma de ver
el mundo
Es un modelo, teora, marco de referencia, o filosofa,
es alguna manera o forma en la cual vemos el mundo,
no en trminos del sentido de la vista, sino en
trminos
de
percepcin,
interpretacin,
entendimiento.
Es
una
estructuracin
del
pensamiento: estructura la forma de ver las cosas.
ASI ElProcesodeDesarrollodeSoftware
IngenieradeSoftware:
ConceptosBsicos
Paradigma:
Es una filosofa que considera mtodos, herramientas y
procedimientos, y que permiten al profesional de
sistemas tener una forma clara, confiable y generalizada
de desarrollar un sistema de informacin. Trabaja como
un filtro: pone lmites, nos permite resolver problemas
dentro de esos lmites.
Para el estudio de los sistemas de informacin tenemos
dos paradigmas (dos formas de ver y modelar un
sistema):
El Paradigma Estructurado (que pone nfasis en las funciones) y
El Paradigma Orientado a Objetos (que pone nfasis en los
objetos)
ASI ElProcesodeDesarrollodeSoftware
IngenieradeSoftware:
ConceptosBsicos
IngenieradeSoftware
En una conferencia sobre el tema, Fritz Bauer dio la siguiente
definicin:
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 en mquinas reales
El IEEE define La Ingeniera de software como (1) la
aplicacin de un enfoque sistemtico, disciplinado y
cuantificable
hacia
el
desarrollo,
operacin
y
mantenimiento del software, es decir la aplicacin de
ingeniera al software, (2) El estudio de enfoques como en
(1).
ASI ElProcesodeDesarrollodeSoftware
IngenieradeSoftware:
Capas
La ingeniera de software es una tecnologa multicapa.
Cualquier enfoque de ingeniera, incluso la ing. de
software, debe buscar siempre un enfoque de calidad.
Grfico Capas de la ingeniera de software:
..
.Herramientas.
.Mtodos.
.Proceso.
.Enfoquedecalidad.
Los cimientos que son la base de la ing. de software estn
orientados hacia la calidad.
ASI ElProcesodeDesarrollodeSoftware
IngenieradeSoftware:
Capas
Proceso:
Es la unin que mantiene juntas las capas de
tecnologa y permite un desarrollo racional de la
Ing. de Software.
Define un marco de trabajo para un conjunto de
reas Claves del Proceso (ACPs), determinando
distintas actividades aplicables a todos los
proyectos de software, independientemente de
su tamao y complejidad.
ASI ElProcesodeDesarrollodeSoftware
IngenieradeSoftware:
Capas
Proceso:
Las ACP (reas Claves del Proceso ) forman la
base del control de gestin de proyectos de
software, establecen el contexto en el que
se aplican los mtodos tcnicos,
se producen resultados del trabajo (modelos,
documentos, datos, informes, formularios, etc.),
se establecen hitos,
se asegura la calidad y
se gestiona el cambio.
ASI ElProcesodeDesarrollodeSoftware
IngenieradeSoftware:
Capas
Mtodos:
Indican cmo construir tcnicamente un sistema.
Abarcan un amplio espectro de tareas:
IngenieradeSoftware:
Capas
Herramientas:
Suministran un soporte automtico o semiautomtico
para el proceso y los mtodos.
Cuando se integran herramientas para que la
informacin creada por una herramienta la pueda
utilizar otra, se establece un sistema de soporte para el
desarrollo del software llamada Ingeniera de Software
Asistido por Computadora (CASE),
que combina
hardware, software y bases de datos conteniendo
informacin importante sobre el anlisis, diseo,
construccin y prueba de sistemas.
Las herramientas son principalmente grficas,
trabajaremos mucho con modelos.
ASI ElProcesodeDesarrollodeSoftware
IngenieradeSoftware:
Capas
Modelo:
Es una representacin simplificada de la
realidad, un modelo proporciona los planos de
un sistema.
Un buen modelo incluye aquellos elementos
que tienen una gran influencia y omite aquellos
menores que no son relevantes para el nivel de
abstraccin dado.
Todo sistema puede ser descripto desde
diferentes perspectivas utilizando diferentes
modelos.
ASI ElProcesodeDesarrollodeSoftware
10
IngenieradeSoftware:
Capas
Modelo:
Se construyen modelos para comprender mejor
el sistema que estamos desarrollando. A travs
del modelado se persiguen los siguientes
objetivos:
Los modelos ayudan a visualizar cmo es o queremos
que sea un sistema.
Los modelos permiten especificar la estructura o el
comportamiento de un sistema.
Los modelos proporcionan plantillas que sirven de
gua en la construccin de un programa.
Los modelos documentan las decisiones que se han
11
adoptado. ASI ElProcesodeDesarrollodeSoftware
El Proceso de Software
El proceso del software se puede caracterizar como
en la siguiente figura:
Marco de Trabajo del Proceso comn
Actividades del marco de trabajo
Conjunto de tareas
Tareas
Hitos, entregas
Puntos SQA
Actividades de Proteccin
Proceso
12
ElProcesodeSoftware
Se establece un marco comn del proceso, definiendo
un pequeo nmero de actividades del marco de
trabajo que son aplicables a todos los proyectos de
software.
Un conjunto de tareas cada uno es una coleccin de
tareas de ing. de soft., hitos de proyectos, posibles
entregas y puntos de garanta de calidad que permiten
que las actividades del marco de trabajo se adapten al
proyecto de software y a los requisitos del equipo de
proyecto.
Las actividades de proteccin son independientes de
cualquier actividad del marco de trabajo y aparecen
durante todo el proceso (garanta de la calidad del
software, gestin de la configuracin del software,
medicin).
ASI ElProcesodeDesarrollodeSoftware
13
ElProcesodeSoftware
El SEI (Instituto de Ingeniera de Software) ha
desarrollado un modelo completo que se basa
en un conjunto de funciones de ingeniera de
software que deberan estar presentes conforme
las organizaciones alcanzan diferentes niveles de
madurez del proceso.
CMM Modelo de Capacidad de Madurez
(Capability Maturity Model)
ASI ElProcesodeDesarrollodeSoftware
14
ElProcesodeSoftware
CMM Establece cinco niveles de madurez del
proceso:
ASI ElProcesodeDesarrollodeSoftware
15
ElProcesodeSoftware
CMM Establece cinco niveles de madurez del
proceso:
Nivel 1: Inicial Se definen pocos procesos, el xito depende
del esfuerzo individual.
Nivel 2: Repetible Se establecen procesos de gestin, para
hacer seguimiento de costos, de la planificacin y de la
funcionalidad.
Nivel 3: Definido Proceso documentado y estandarizado, +
caractersticas de Nivel 2
Nivel 4: Gestionado Se recopilan medidas detalladas del
proceso de soft. y de la calidad del producto, + caractersticas
de Nivel 3
Nivel 5: Optimizacin Mediante un resultado cuantitativo
del proceso de las ideas y tecnologas innovadoras se mejora
el proceso, + caractersticas de Nivel 4
ASI ElProcesodeDesarrollodeSoftware
16
ProcesodeDesarrollo
Concepto
Un proceso de desarrollo de software es el
conjunto de actividades necesarias para
transformar los requisitos de un usuario
en un sistema software.
Requisitosdel
usuario
Procesode
Desarrollo
desoftware
ProductoSoftware
ASI ElProcesodeDesarrollodeSoftware
17
ProcesodeDesarrollo
Las cuatro P en el desarrollo de software
Personas
Proyecto
Producto
Proceso
Proceso
Plantilla
Personas
Participantes
Proyecto
Resultado
Producto
ASI ElProcesodeDesarrollodeSoftware
18
ProcesodeDesarrollo
LascuatroPeneldesarrollodesoftware
19
ProcesodeDesarrollo
LascuatroPeneldesarrollodesoftware
20
10
ProcesodeDesarrollo
LascuatroPeneldesarrollodesoftware
21
ProcesodeDesarrollo
LascuatroPeneldesarrollodesoftware
22
11
ProcesodeDesarrollo
Propsitos
Uno de los problemas del software se debe
a la dificultad que afrontan los
desarrolladores para coordinar las mltiples
cadenas de trabajo de un gran proyecto.
La comunidad de desarrolladores necesita
una forma coordinada de trabajar. Necesita
un proceso que integre las mltiples facetas
del desarrollo.
ASI ElProcesodeDesarrollodeSoftware
23
ProcesodeDesarrollo
Propsitos
Los desarrolladores necesitan un proceso que
Proporcione una gua para ordenar las
actividades de un equipo.
Dirija las tareas de cada desarrollador por
separado y del equipo como un todo.
Especifique los artefactos / modelos /
especificaciones que deben desarrollarse.
Ofrezca criterios para el control y la medicin
de los productos y actividades del proyecto.
ASI ElProcesodeDesarrollodeSoftware
24
12
ProcesodeDesarrollo
La descomposicin del proceso se realiza hasta
el nivel de tareas o actividades elementales.
Para cada tarea se identifica un procedimiento
que define la forma de ejecutarla, y es el
vehculo de comunicacin entre usuarios y
desarrolladores (personas), como resultado de
seguir un procedimiento se obtienen uno o ms
productos.
El sistema deseado est constituido por un
conjunto de productos finales.
ASI ElProcesodeDesarrollodeSoftware
25
ProcesodeDesarrollo
Actividades genricas en todo
Desarrollo de Software:
Proceso de
DEFINICION
DESARROLLO
MANTENIMIENTO
ASI ElProcesodeDesarrollodeSoftware
26
13
ProcesodeDesarrollo
Definicin
Se centra sobre el QU, es decir, identificar los requisitos
claves del sistema de informacin detectando:
Informacin necesaria a ser procesada
Qu comportamiento y rendimiento se desea del
sistema
Qu interfaces van a ser establecidas
Qu restricciones de diseo existen y
Qu criterios de validacin se necesitan para definir
un sistema correcto.
Se pueden determinar tres tareas fundamentales:
Ingeniera de sistema o de informacin
Planificacin del proyecto de software
Anlisis de requisitos
Tambin se crean los modelos necesarios, aplicando mtodos y
herramientas correspondientes.
ASI ElProcesodeDesarrollodeSoftware
27
ProcesodeDesarrollo
Desarrollo
SecentraenelCMO:
Cmodisearlasestructurasdedatosylaarquitectura
delsoftware
Cmoimplementarlosdetallesmselementales
Seagreganaspectosdeimplementacinytecnologa
Cmotraducireldiseoaunlenguajedeprogramaciny
Cmorealizarlaprueba.
Tareasfundamentales:
Diseodelsoftware
Codificacin
Prueba
ASI ElProcesodeDesarrollodeSoftware
28
14
ProcesodeDesarrollo
Mantenimiento
Se centra en el CAMBIO que va asociado a:
La correccin de errores y/o adaptaciones por:
Modificaciones en el entorno o
Por requisitos cambiantes del usuario.
La fase de mantenimiento vuelve a aplicar los pasos de las
fases definicin y de desarrollo en el contexto del software
ya existente. Se encuentran cuatro tipos de cambio:
Correccin
Adaptacin
Mejora
Prevencin
ASI ElProcesodeDesarrollodeSoftware
29
ProcesosdeDesarrolloconocidos
Comunicacin:
-Inicio del Proyecto
- Recopilacin de
requisitos
Equipo # n
Planeacin:
-Estimacin
- Itinerario
- Seguimiento
Modelado:
-Anlisis
- Diseo
Construccin:
- Codificacin
- Prueba
ModeloenCastada Fuente:LibroIngenieradelSoftware
RogerPressman,Pg.50.
Comunicacin
Planeacin
Modelado (anlisis, diseo)
Construccin (codificacin, prueba)
Despliegue (entrega, retroalimentacin)
Modelosde
Procesos
Incrementales
Despliegue:
-Entrega
- Soporte
- Retroalimentacin
Comunicacin
Entrega del
n-simo
incremento
Entrega del
segundo incremento
Incremento #1
Equipo # 2
Modelado:
- Modelado del negocio
- Modelado de los datos
- Modelado del proceso
Incremento #n
Incremento #2
Modelado:
- Modelado del negocio
- Modelado de los datos
- Modelado del proceso
Entrega del
primer incremento
Equipo # 1
Planeacin
Modelado:
- Modelado del negocio
- Modelado de los datos
- Modelado del proceso
Construccin:
- Reutilizacin de
componentes
-Generacin automtica
de cdigo
- Pruebas
Construccin:
- Reutilizacin de
componentes
-Generacin automtica
de cdigo
- Pruebas
Despliegue:
- Integracin
-Entrega
- Retroalimentacin
Construccin:
- Reutilizacin de
componentes
-Generacin automtica
de cdigo
- Pruebas
60 90 das
ModeloIncremental Fuente:LibroIngenieradelSoftware
RogerPressman,pg.52.
Plan rpido
Comunicacin
Modelado
Diseo rpido
Desarrollo
Entrega y
retroalimentacin
Construccin
del prototipo
Modelosde
Procesos
Evolutivos
ModeloConstruccindePrototipos Fuente:LibroIngenieradelSoftware
RogerPressman,pg.55
Modeloenespiral Fuente:LibroIngenieradelSoftware
ASI ElProcesodeDesarrollodeSoftware
RogerPressman,pg.58.
30
15
ElPUDysusvariantes
Rational Unified Process (RUP)
Fases
F lujos de trabajo
fundam entales
Inicio
Elaboracin
C o nstruccin
Transicin
R equisitos
A nlisis
D iseo
Prueba
Iteracin Iteracin
#1
# 2 ...
---
- - - Iteraci n Iteracin
#n
# n-1
Iteraciones
Fuente:LibroElProcesoUnificadodeDesarrollodeSoftware
Ivar Jacobsonyotros,pg.11.
http://www.ts.mah.se/RUP/RationalUnifiedProcess/
PUD(ProcesoUnificadodeDesarrollo)
AgileUnified
Process
(AUP).
Fuente:http://agilemodeling.com/essays/agileModelingRUP.htm
ASI ElProcesodeDesarrollodeSoftware
31
Procesosgiles
SCRUM
KANBAN
Fuente:http://www.roggerocorp.com/impactodemetodologiasagiles
Fuente:http://comunidad.iebschool.com/iebs/general/metodologiakanban/
scrumkanbanenlasorganizaciones/
XP(ExtremeProgramming)
Fuente:http://www.extremeprogramming.org/map/project.html
ASI ElProcesodeDesarrollodeSoftware
32
16
PUD ProcesoUnificadodeDesarrollo
El Proceso Unificado es un proceso de
desarrollo de software que utiliza el
Lenguaje Unificado de Modelado (UML)
para preparar todos los esquemas de un
sistema de software.
Caractersticas esenciales de PUD:
Dirigido por casos de uso
Centrado en arquitectura
Iterativo e incremental
ASI ElProcesodeDesarrollodeSoftware
33
PUD
CiclodevidadelProcesoUnificado
Inicio
Elaboracin
Iteracin Iteracin - - #1
# 2 ...
Construccin
--- ---
--- ---
Transicin
Iteracin Iteracin
#n
# n-1
Versiones
ASI ElProcesodeDesarrollodeSoftware
34
17
PUD
ModelosdelPUD
Modelo de
Casos de Uso
Especificado por
Modelo de Anlisis
Realizado por
Distribudo por
Modelo de Diseo
Implementado por
Modelo de Despliegue
Verificado por
Modelo de
Implementacin
X
OK
Modelo de Prueba
X
OK
ASI ElProcesodeDesarrollodeSoftware
X
OK
35
PUD
FasesdelProcesoUnificado
Fases
Flujos de trabajo
fundamentales
Inicio
Elaboracin
Construccin
Transicin
Requisitos
Anlisis
Diseo
Implementacin
Prueba
Iteracin Iteracin - - #1
# 2 ...
- - - Iteracin Iteracin
#n
# n-1
Iteraciones
ASI ElProcesodeDesarrollodeSoftware
36
18
PUD
Conceptosbsicosdelproceso
FlujodeTrabajo(Workflow)
Analista de
Sistemas
Encontrar actores
y casos de uso
Arquitecto
Especificador
de Casos
de Uso
Artefacto
Diseador
de Interfaz
de Usuario
Estructurar el modelo
de casos de uso
Priorizar los
casos de uso
Detallar un
caso de uso
Prototipar la
interfaz del usuario
Descripcinde Modelode
laarquitectura casosdeuso
Trabajador
Actividades
Analista
Arquitecto
EncontrarActores
yCasosdeUso
ASI ElProcesodeDesarrollodeSoftware
37
EstudiodePrefactibilidad
La factibilidad significa que el proyecto
propuesto:
Ayuda a que la organizacin logre sus
objetivos generales.
Es posible de lograr con los recursos actuales
de la organizacin en estas tres reas:
Factibilidad Tcnica
Factibilidad Econmica
Factibilidad Operativa
ASI ElProcesodeDesarrollodeSoftware
38
19
EstudiodePrefactibilidad
Definicin de objetivos:
La determinacin de factibilidad en general significa
encontrar cules son los objetivos organizacionales y
luego determinar si el proyecto sirve para mover el
negocio hacia sus objetivos en alguna forma.
Algunos de esos objetivos organizacionales:
Reducir errores, mejorar la precisin y acelerar el ingreso de
datos.
Integrar los subsistemas del negocio.
Mejorar los servicios al cliente.
Acortar el tiempo de procesamiento de datos.
Automatizar los procedimientos para mejorarlos de alguna
manera (reducir errores, aumentar velocidad y precisin,
disminuir tiempo de empleados requeridos, etc).
ASI ElProcesodeDesarrollodeSoftware
39
EstudiodePrefactibilidad
Determinacin de recursos:
La determinacin de recursos para el estudio
de factibilidad ser revisado y vuelto a evaluar
ms adelante en el proceso de desarrollo del
software.
Los recursos sern tratados en relacin con
tres reas de factibilidad:
Tcnica
Econmica
Operativa
ASI ElProcesodeDesarrollodeSoftware
40
20
EstudiodePrefactibilidad
FactibilidadTcnica
El analista debe determinar si los recursos tcnicos
actuales pueden ser mejorados o aadidos para
satisfacer la peticin bajo consideracin.
A veces las adiciones a sistemas existentes pueden
resultar costosas y no valen la pena.
Si los sistemas existentes no pueden ser aadido o
mejorados el siguiente interrogante es:
Hay tecnologa en existencia para satisfacer las
especificaciones?
Si la respuesta a la Factibilidad Tcnica es SI, entonces
pasamos a la siguiente rea
la econmica
ASI ElProcesodeDesarrollodeSoftware
41
EstudiodePrefactibilidad
FactibilidadEconmica
El negocio de que se trate deber ser capaz de hacer
ver el valor de la inversin en su ponderacin antes
de comprometerse a un estudio de sistemas
completo.
Si los costos a corto plazo no son sobrepasados por
las ganancias a largo plazo o no producen una
reduccin inmediata en los costos de operacin
el sistema no es factible econmicamente y el
proyecto no debera continuar.
Se realiza entonces una identificacin y estimacin de
Costos y Beneficios.
ASI ElProcesodeDesarrollodeSoftware
42
21
EstudiodePrefactibilidad
FactibilidadEconmica Costos
Costo de construir el sistema:
Capacitacin de usuarios
Conversin de bases de datos
Instalacin comercial (hardware, software, telecomunic.)
Aprobacin reglamentaria
Ejecuciones paralelas
del equipo de desarrollo durante la instalacin
ASI ElProcesodeDesarrollodeSoftware
43
EstudiodePrefactibilidad
FactibilidadEconmica Costos
Costo del dinero:
Costo dinero a prstamo
Beneficios que se habran obtenido al invertirlo
44
22
EstudiodePrefactibilidad
FactibilidadEconmica Beneficios
Podemos clasificar los Beneficios de la siguiente
manera:
Beneficios Tangibles
Beneficios Intangibles
Algunos los llaman tambin: Tcticos y
Estratgicos.
ASI ElProcesodeDesarrollodeSoftware
45
EstudiodePrefactibilidad
FactibilidadEconmica Beneficios
Beneficios Tangibles: Son ventajas medibles en
pesos que se acumulan a la organizacin por el uso
del sistema de informacin.
Reducciones de Personal
Mayor velocidad en el procesamiento de
transacciones
Reduccin de costos de mantenimiento.
Acceso a informacin ms oportuna.
Ventajas del poder superior de clculo.
Disminucin de tiempo de los empleados para
completar una tarea.
46
23
EstudiodePrefactibilidad
FactibilidadEconmica Beneficios
Beneficios Intangibles: Algunos beneficios que se
acumulan en la organizacin son difciles de medir,
muchas veces se refieren a la posibilidad de realizar
cosas que no eran posibles con el sistema actual:
Mejora del proceso de toma de decisiones
Atraer nuevos clientes (mejor funcionalidad,
reconocimiento de potenciales clientes)
Entrar a nuevos mercados
Capturar, reproducir, distribuir conocimiento
Capacidad para proporcionar informacin que no se
tena.
Incremento de la satisfaccin en el trabajo por parte
de los empleados
ASI ElProcesodeDesarrollodeSoftware
47
EstudiodePrefactibilidad
FactibilidadOperativa
La factibilidad operacional depende de los recursos
humanos disponibles para el proyecto e involucra
proyectar si el sistema operar y ser utilizado una
vez que est instalado.
Aceptacin del sistema por parte de los usuarios
Capacitacin necesaria para los usuarios.
ASI ElProcesodeDesarrollodeSoftware
48
24
Bibliografa
49
25