Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Sistema
Planificacin y Evaluacin de Proyectos de
RESUMEN
Objetivos de la UNIDAD IV Administracin de Proyectos de Software:
Captulo 24: Conceptos de Administracin de Proyecto.
Captulo 25: Mtricas de Proceso y de Proyecto.
Captulo 26: Estimacin Para Proyectos de Software.
Captulo 27: Calendarizacin del Proyecto.
Captulo 28: Administracin del Riesgo.
Captulo 29: Mantenimiento y Reingeniera.
Integrantes:
Dennis Martin G. Chipana Aza.
Cristhian Abad Anchapuri Ruelas.
Sleyther Giulio Calsin Pacsi.
Universidad Nacional del Altiplano
Planificacin y Evaluacin de Proyectos de Sistema Ingeniera del Software: Un enfoque
prctico.
Contenido
INTRODUCCION .......................................................................................................... 7
REESTRUCTURACION:.............................................................................................................. 34
Reestructuracin de cdigo: ............................................................................................... 34
Reestructuracin de datos: ................................................................................................. 35
INGENIERA HACIA ADELANTE: ............................................................................................... 35
Ingeniera hacia adelante para arquitecturas cliente-servidor: .......................................... 35
Ingeniera hacia adelante para arquitecturas orientadas a objetos: .................................. 35
ECONOMA DE LA REINGENIERA: ........................................................................................... 35
CAPITULO 26: ESTIMACION PARA PROYECTOS DE SOFTWARE ........................ 37
INTRODUCCION
En esta parte de Ingeniera del software. Un enfoque prctico, aprenderemos, sobre
las tcnicas de administracin requeridas para planificar, organizar, monitorear y
controlar proyectos de software. En el desarrollo de los captulos de esta unidad del
libro abordaremos muchas cuestiones como:
o Cmo debe administrarse el personal, el proceso y el problema durante un
proyecto de software?
o Cmo pueden usarse las mtricas del software para administrar un proyecto y
el proceso de software?
o Cmo genera un equipo de software estimaciones confiables de esfuerzo,
costo y duracin del proyecto?
o Qu tcnicas pueden usarse para valorar los riesgos que pueden tener
impacto sobre el xito del proyecto?
o Cmo selecciona un gerente de proyecto de software un conjunto de tareas
laborales para los ingenieros del software?
o Cmo se crea un calendario de proyecto?
o Por qu el mantenimiento y la reingeniera son importantes para los gerentes
de ingeniera de software y para los profesionales?
Para un efectivo manejo y desarrollo del Proyecto se debe tener en cuenta las cuatro
P: Personal, Producto, Proceso y Proyecto. El personal debe organizarse para
realizar el trabajo de software de manera efectiva. La comunicacin con el cliente y
con otros participantes debe ocurrir de modo que el mbito del producto y los
requerimientos sean comprensibles. Debe seleccionarse un proceso que sea
adecuado para el personal y el producto. El proyecto debe planificarse, estimndose
el esfuerzo y el cronograma necesarios para concluir las tareas.
En cuanto se hayan iniciado las actividades para el desarrollo del proyecto debe
tenerse en cuenta la planificacin que se haya realizado el cronograma establecido
deber ser cumplido tal y como se acord, durante el desarrollo cada uno de los
participantes debe cumplir con las actividades que se le han designado hacer y
tambin los tiempos establecidos sern la medida para ver la efectividad de la
planificacin.
Una vez cumplida todas las actividades, es difcil determinar si el producto cumple con
las expectativas trazadas pero esta incertidumbre ha de darse casi siempre y solo ser
resuelta en la practica del proyecto con el producto final, y de haber alguna
modificacin o modificaciones estas debern ser hechas cuanto antes en plena
comunicacin entre personal y cliente.
24.1.1: EL PERSONAL
24.1.2: EL PRODUCTO
24.1.3: EL PROCESO
24.1.4: EL PROYECTO
24.2: EL PERSONAL
Un excelente libro acerca de liderazgo tcnico, Jerry Weinberg sugiere un modelo MOI
( Motivacin, organizacin e Innovacin de ideas), una visin de las caraterisitca que
definen a un gerente de proyecto eficaz enfatiza cuatro rasgos como claves :
1. Resolucin de Problemas
2. Identidad Administrativa
3. Logro
4. Influencia y construccin del equipo
Para hacer uso efectivo de las competencias de cada miembro del equipo y fomentar
la colaboracin efectiva a travs de un proyecto de software, los equipos giles son
auto organizados.
Muchos modelos de proceso gil (por ejemplo, Scrum) dan al equipo gil significativa
autonoma para tomar las decisiones administrativas y tcnicas del proyecto
necesarias para hacer que el trabajo se cumpla. La planificacin se mantiene al
mnimo y al equipo se le permite seleccionar su propio enfoque (por ejemplo, proceso,
mtodos, herramientas), restringido nicamente por los requerimientos empresariales
y los estndares de la organizacin.
24.3: EL PRODUCTO
Se suele aplicar una estrategia muy conocida divide y venceras cuando se quiere
resolver un problema complejo, de esta manera podemos dividir el problema complejo
en problemas mas pequeos y estos carecern de complejidad y ser mucho mas
manejables.
24.4: EL PROCESO
Una de las actividades que caracterizan al proceso de software se tornan alrededor del
marco conceptual, el problema es seleccionar el modelo de proceso que sea
adecuado para el software y que el equipo del proyecto se encargara de ejecutarlo.
24.5: EL PROYECTO
Para que un proyecto de software tenga xito, debemos entender que pueden salir mal
muchas cosas, de modo que algunos de ellos pueden evitarse. Jhon Reel define 10
seales que indican que un proyecto de sistemas de informacin esta en peligro.
1. El personal del software no entiende las necesidades del cliente.
2. El mbito del producto esta pobremente definido.
3. Los cambios se gestionan pobremente.
4. Cambia la tecnologa elegida.
5. Las necesidades empresariales cambian o estn mal definidas.
6. Las fechas limite son irreales.
7. Los usuarios son resistentes.
8. Perdida de patrocinio o nunca obtenido adecuadamente.
9. El equipo del proyecto carece de personal con habilidades adecuadas.
10. Los gerentes y profesionales evitan mejores practicas y lecciones aprendidas.
Es un excelente ensayo acerca del proceso de software, Barry Boehm plantea las
siguientes preguntas para desarrollar un proyecto de software sin importar la
complejidad o tamao del mismo:
-. Por qu (why) se desarrollar el sistema? Todos los participantes deben valorar la
validez de las razones empresariales para el trabajo de software. El propsito de la
empresa justifica el gasto de personal, tiempo y dinero?
-. Qu (what) se har? Defina el conjunto de tareas requeridas para el proyecto.
-. Cundo (when) se har? El equipo establece un calendario de proyecto al
identificar cundo se realizarn las tareas del proyecto y cundo se alcanzarn los
hitos.
-. Quin (who) es responsable de cada funcin? Defina el papel y la responsabilidad
de cada miembro del equipo de software.
Las medidas que recopila un equipo de proyecto y que convierte en mtricas para uso
durante un proyecto pueden ser transmitidos a los participantes para que haya
mejoras en el desarrollo de los procesos.
problemas y riesgos, segundo se usan para valorar la calidad del producto sobre una
base en marcha, y de ser necesario modificar el enfoque tcnico para mejorar la
calidad.
Para un mejor entendimiento, ilustraremos con un ejemplo simple, los individuos que
trabajan en dos equipos de proyecto diferentes registran y categorizan todos los
errores que encuentran durante el proceso de software, las medidas individuales luego
se combinan para desarrollar medidas de equipo. Si un equipo encuentra mas errores
que el otro durante el proceso de desarrollo, esto no quiere decir que uno es mejor que
el otro en la deteccin de los errores de proceso, sin embargo debe tomarse en cuenta
puntos fuertes como la complejidad y tamao del proyecto, pero esto ayuda a tener
estimaciones de como va desarrollndose el proyecto antes de su liberacin para los
usuarios finales.
Con la finalidad de desarrollar mtricas que puedan compararse con otros proyectos,
pueden elegirse lneas de cdigos como un valor de normalizacin, a partir de los
datos rudimentarios pueden desarrollarse mtricas simples orientados a tamao para
cada proyecto.
Los investigadores sugieren puntos de caso de uso (PCU) como un mecanismo para
estimar el esfuerzo del proyecto y otras caractersticas, los PCU adems es una
funcin del numero de actores y transacciones implicados por los modelos de caso de
uso.
ADMINISTRACION DE RIESGO:
- El anlisis y la administracin del riesgo son acciones que ayudan al equipo de
software a entender y manejar la incertidumbre. Muchos problemas pueden
RIESGOS DE SOFTWARE:
- Los riesgos del proyecto amenazan el plan del proyecto, es decir, si los riesgos
del proyecto se vuelven reales, es probable que el calendario del proyecto se
deslice y que los costos aumenten.
- Los riesgos del proyecto identifican potenciales problemas de presupuesto,
calendario, personal (tanto tcnico como en la organizacin), recursos,
participantes y requisitos, as como su impacto sobre un proyecto de software.
- Los riesgos empresariales amenazan la viabilidad del software que se va a
construir y con frecuencia ponen en peligro el proyecto o el producto. Los
candidatos para los cinco principales riesgos empresariales son:
1) Construir un producto o sistema excelente que realmente no se quiere
(riesgo de mercado).
4. IDENTIFICACION DE RIESGOS:
- Existen dos tipos de Riesgos:
- Riesgos Genricos: Son una amenaza potencial a todo proyecto de software.
- Riesgos Especficos: Solo pueden identificarse solamente por quienes tienen
clara comprensin de la tecnologa, el personal y el entorno especfico del
software que se construye.
- Un mtodo para identificar riesgos es crear una lista de verificacin de tem de
riesgo. La lista de verificacin puede usarse para identificacin del riesgo y as
enfocarse sobre algn subconjunto de riesgos conocidos y predecibles en las
siguientes subcategoras genricas:
-Tamao del producto: riesgos asociados con el tamao global del software
que se va a construir o a modificar.
-Impacto empresarial: riesgos asociados con restricciones impuestas por la
administracin o por el mercado.
-Caractersticas de los participantes: riesgos asociados con la sofisticacin de
los participantes y con la habilidad de los desarrolladores para comunicarse
con los participantes en forma oportuna.
-Definicin del proceso: riesgos asociados con el grado en el que se defini el
proceso de software y la manera como se sigue por parte de la organizacin
desarrolladora.
-Entorno de desarrollo: riesgos asociados con la disponibilidad y calidad de
las herramientas por usar para construir el producto.
-Tecnologa por construir: riesgos asociados con la complejidad del sistema
que se va a construir y con lo novedoso de la tecnologa que se incluye en el
sistema.
-Tamao y experiencia del personal: riesgos asociados con la experiencia
tcnica y de proyecto global de los ingenieros de software que harn el trabajo.
5. PROYECCION DE RIESGO:
-La proyeccin del riesgo, tambin llamada estimacin del riesgo, intenta
calificar cada riesgo en dos formas: 1) la posibilidad o probabilidad de que el
riesgo sea real y 2) las consecuencias de los problemas asociados con el
riesgo, en caso de que ocurra. Usted trabaja junto con otros gerentes y
personal tcnico para realizar cuatro pasos de proyeccin de riesgo:
1. Establecer una escala que refleje la probabilidad percibida de un riesgo.
2. Delinear las consecuencias del riesgo.
3. Estimar el impacto del riesgo sobre el proyecto y el producto.
4. Valorar la precisin global de la proyeccin del riesgo de modo que no habr
malos entendidos.
Nota:
1) La consecuencia potencial de errores o fallos de software no detectados.
2) La consecuencia potencial si el resultado deseado no se alcanza.
6. REFINAMIENTO DE RIESGO:
- Durante las primeras etapas de la planificacin del proyecto, un riesgo puede
enunciarse de manera muy general. Conforme pasa el tiempo y se aprende
ms acerca del proyecto y de los riesgos, es posible refinar el riesgo en un
conjunto de riesgos ms detallados, cada uno un poco ms sencillo de mitigar,
monitorear y manejar.
- Dado que todos los componentes de software reutilizables deben apegarse a
estndares de diseo especficos y dado que algunos no se apegan, entonces
existe preocupacin de que (posiblemente) slo 70 por ciento de los mdulos
reutilizables planeados puedan realmente integrarse en el sistema que se va a
construir, lo que da como resultado la necesidad de ingeniera a la medida del
restante 30 por ciento de los componentes.
Esta condicin general puede refinarse en la forma siguiente:
Subcondicin 1.- Ciertos componentes reutilizables los desarroll una tercera
persona sin conocimiento de los estndares de diseo internos.
8. EL PLAN MMMR:
- En el plan de proyecto del software puede incluirse una estrategia de
administracin del riesgo, o los pasos de administracin del riesgo pueden
organizarse en un plan de mitigacin, monitoreo y manejo de riesgo (MMMR) por
separado. El plan MMMR documenta todo el trabajo realizado como parte del
anlisis de riesgos y el gerente del proyecto lo usa como parte del plan de proyecto
global.
MANTENIMIENTO Y REINGENIERA:
- Sin importar su dominio de aplicacin, su tamao o su complejidad, el software
de computadora evolucionar con el tiempo. El cambio impulsa este proceso.
Para el software de computadora, el cambio ocurre cuando se corrigen los
errores, cuando el software se adapta a un nuevo entorno, cuando el cliente
solicita nuevas caractersticas o funciones y cuando la aplicacin se somete a
reingeniera para ofrecer beneficio en un contexto moderno.
- Ley de cambio continuo (1974): El software que se implement en un contexto
de cmputo del mundo real y que, por tanto, evolucionar con el tiempo
(llamados sistemas tipo E) debe adaptarse continuamente o de otro modo se
volver progresivamente menos satisfactorio.
- Ley de complejidad creciente (1974): Conforme un sistema tipo E evoluciona,
su complejidad aumenta, a menos que se haga trabajo para mantenerlo o
reducirlo.
- Ley de autorregulacin (1974): El proceso de evolucin del sistema tipo E es
autorregulable con medidas de distribucin de producto y de proceso cercanas
a lo normal.
- Ley de conservacin de estabilidad organizativa (1980): La tasa de actividad
global efectiva promedio en un sistema tipo E en evolucin no vara durante el
tiempo de vida del producto.
- Ley de conservacin de familiaridad (1980): Conforme un sistema tipo E
evoluciona, todo lo asociado con l: desarrolladores, personal de ventas,
usuarios, etc., deben mantener el dominio de su contenido y comportamiento
para lograr evolucin satisfactoria. El crecimiento excesivo disminuye dicho
dominio. Por tanto, el crecimiento incremental promedio permanece sin
variacin conforme el sistema evoluciona.
- Ley de crecimiento continuo (1980): El contenido funcional de los sistemas tipo
E debe aumentar continuamente para mantener la satisfaccin del usuario
durante su tiempo de vida.
- Ley de declive de la calidad (1996): La calidad de los sistemas tipo E declinar,
a menos que se mantengan y adapten rigurosamente a los cambios del
entorno operativo.
- Ley de realimentacin del sistema (1996): Los procesos evolutivos tipo E
constituyen sistemas de realimentacin multinivel, multibucle y multiagente, y
deben tratarse como tales para lograr mejora significativa sobre cualquier base
razonable.
MANTENIMIENTO DE SOFTWARE:
- El mantenimiento comienza de inmediato una vez liberado el software a los
usuarios finales y en cuestin de das reportan los errores que encontraron
para inmediatamente se corrijan esos errores.
- En semanas, una clase de usuarios indica que el software debe cambiarse de
modo que pueda ajustarse a las necesidades especiales de su entorno. Y en
meses, otro grupo corporativo, que no quera saber nada del software cuando
se liber, ahora reconoce que puede ofrecerle beneficios inesperados.
Necesitar algunas mejoras para hacer que funcione en su mundo.
REINGENIERIA:
- En la actualidad, las principales compaas tienen decenas de miles de
programas de cmputo que soportan las antiguas reglas empresariales.
Conforme los administradores trabajan para modificar las reglas a fin de lograr
mayor efectividad y competitividad, el software debe seguir- les el paso. En
algunos casos, esto significa la creacin de grandes y novedosos sistemas
basados en cmputo. Pero en muchos otros, significa la modificacin o
reconstruccin de las aplicaciones existentes. En las secciones que siguen, se
examina la reingeniera en una forma descendente, comenzando con un breve
panorama de la reingeniera de los procesos de empresas y avanzando hacia
un anlisis ms detallado de las actividades tcnicas que ocurren cuando el
software se somete a reingeniera.
PROCESOS EMPRESARIALES:
- Un proceso empresarial es un conjunto de tareas lgicamente relacionadas,
que se realizan para lograr un resultado empresarial definido. Dentro del
proceso empresarial, personal, equipo, recursos materiales y procedimientos
empresariales se combinan para producir un resultado especfico.
Empresa sistemas empresariales procesos empresariales
subprocesos empresariales.
- Cada sistema empresarial (tambin llamado funcin empresarial) est
compuesto de uno o ms procesos empresariales, y cada proceso empresarial
se define mediante un conjunto de subprocesos.
- La RPE puede aplicarse en cualquier nivel de la jerarqua, pero conforme se
ensancha su mbito (es decir, conforme se avanza hacia arriba en la
jerarqua), los riesgos asociados con la RPE crecen de manera dramtica. Por
esta razn, la mayora de los esfuerzos RPE se enfocan en procesos o
subprocesos individuales.
MODELO RPE:
- Como la mayora de las actividades de ingeniera, la reingeniera de procesos
de empresa es iterativa. Las metas de la empresa y los procesos que los
logran deben adaptarse a un entorno empresarial cambiante. Por esta razn,
no hay inicio ni fin de la RPE: es un proceso evolutivo.
REINGENIERIA DE SOFTWARE:
- Una aplicacin que atendi las necesidades empresariales de una compaa
durante 10 o 15 aos. Durante ese tiempo se corrigi, adapt y mejor muchas
veces un software.
- El software sin mantenimiento no es un problema nuevo. De hecho, el nfasis
ampliado acerca de la reingeniera de software se produjo por los problemas de
mantenimiento de software que se acumularon durante ms de cuatro
dcadas.
INGENIERA INVERSA:
- La ingeniera inversa puede extraer informacin de diseo a partir del cdigo
fuente, pero el nivel de abstraccin, la completitud de la documentacin, el
grado en el que las herramientas y un analista humano trabajan en conjunto, y
la direccionalidad del proceso son enormemente variables.
- El nivel de abstraccin de un proceso de ingeniera inversa y las herramientas
usadas para efectuarla tienen que ver con la sofisticacin de la informacin de
diseo que puede extraerse del cdigo fuente. De manera ideal, el nivel de
abstraccin debe ser tan alto como sea posible, es decir, el proceso de
ingeniera inversa debe ser capaz de inferir representaciones de diseo
procedimental (una abstraccin de bajo nivel), informacin de estructura de
programa y datos (un nivel de abstraccin un poco ms alto), modelos de
objeto, modelos de datos y/o flujo de control (un nivel de abstraccin
relativamente alto) y modelos de relacin de entidad (un nivel de abstraccin
alto). Conforme aumenta el nivel de abstraccin se proporciona informacin
que permitir facilitar la comprensin del programa.
REESTRUCTURACION:
- La reestructuracin de software modifica el cdigo fuente y/o los datos con la
intencin de hacerlos sensibles a cambios futuros. En general, la
reestructuracin no modifica la arquitectura global del programa.
- La reestructuracin ocurre cuando la arquitectura bsica de una aplicacin es
slida, aun cuando el interior tcnico necesite trabajarse. Se inicia cuando
grandes partes del software son aprovechables y slo un subconjunto de todos
los mdulos y datos necesitan modificacin extensa.
Reestructuracin de cdigo:
- La reestructuracin de cdigo se realiza para producir un diseo que produzca
la misma funcin pero con mayor calidad que el programa original.
Reestructuracin de datos:
- Antes de que pueda comenzar la reestructuracin de datos debe realizarse una
actividad de ingeniera inversa llamada anlisis de cdigo fuente.
- La intencin es extraer tems de datos y objetos, obtener informacin acerca
del flujo de datos y entender las estructuras de datos existentes que se
implementaron. Esta actividad en ocasiones se llama anlisis de datos.
ECONOMA DE LA REINGENIERA:
- Todo programa no mantenible se retirara de inmediato para sustituirlo con
aplicaciones sometidas a reingeniera de alta calidad desarrolladas mediante
modernas prcticas de ingeniera de software. Pero se vive en un mundo de
26.4 Recursos
27.5 Calendarizacin
Pueden utilizar tcnicas/herramientas calendarizacin de proyectos:
PERT (Tcnica de evaluacin y revisin de programa)
CPM (Mtodo de la Ruta Crtica)
Identificar todas las actividades que involucra el proyecto, lo que
significa, determinar relaciones de precedencia, tiempos tcnicos para
cada una de las actividades.
Construir una red con base en nodos y actividades (o arcos, segn el
mtodo ms usado), que implican el proyecto.
27.5.1 Cronograma
Diagrama de Gantt: Muestra la programacin vs tiempo calendario.
Uno por proyecto uno por cada funcin. Diamantes (rombos) marcan
hitos.
locales indican que el costo de la ingeniera del software para cada LOC es
US$14.00, el costo global (impacto) para desarrollar los componentes sera 18
X 100 X 14 = US$25 200. Exposicin al riesgo. ER X 0.80 X 25 200 ~ US$20
200.
- La exposicin al riesgo puede calcularse para cada riesgo en la tabla de
riesgo, una vez hecha la estimacin del costo del riesgo. La exposicin al
riesgo total para todos los riesgos (arriba del corte en la tabla de riesgos) puede
proporcionar los medios para ajustar la estimacin del costo final para un
proyecto. Tambin puede usarse para predecir el aumento probable en
recursos de personal requeridos en varios puntos durante el calendario del
proyecto.
29.4 REINGENIERIA:
- En la actualidad, las principales compaas tienen decenas de miles de
programas de cmputo que soportan las antiguas reglas empresariales.
Conforme los administradores trabajan para modificar las reglas a fin de lograr
mayor efectividad y competitividad, el software debe seguir- les el paso. En
algunos casos, esto significa la creacin de grandes y novedosos sistemas
basados en cmputo. Pero en muchos otros, significa la modificacin o
reconstruccin de las aplicaciones existentes. En las secciones que siguen, se
examina la reingeniera en una forma descendente, comenzando con un breve
panorama de la reingeniera de los procesos de empresas y avanzando hacia
un anlisis ms detallado de las actividades tcnicas que ocurren cuando el
software se somete a reingeniera.
29.14 REESTRUCTURACION:
- La reestructuracin de software modifica el cdigo fuente y/o los datos con la
intencin de hacerlos sensibles a cambios futuros. En general, la
reestructuracin no modifica la arquitectura global del programa.
- La reestructuracin ocurre cuando la arquitectura bsica de una aplicacin es
slida, aun cuando el interior tcnico necesite trabajarse. Se inicia cuando
grandes partes del software son aprovechables y slo un subconjunto de todos
los mdulos y datos necesitan modificacin extensa.