Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Py. II Int. U1. U4
Py. II Int. U1. U4
90
Introduccin
a) Presentacin y contextualizacin:
En esta unidad usted aprender la importancia de las tcnicas y tecnologas
eficientes de la ingeniera de software para resolver mltiples problemas que se
derivan de las aplicaciones en donde se desarrollan sistemas de software de gran
tamao. Tendr en cuenta que cada proyecto de software presenta distintos
problemas en su desarrollo los cuales involucran a personas, equipo, usuarios del
software y ambiente de la aplicacin. Por esas razones, cada proyecto debe
resolver el problema de la produccin del software.
b) Competencia:
Gestiona los entregables de un proyecto de TI en el desarrollo del software.
c) Capacidades:
1. Aplica las tcnicas eficientes de la ingeniera de software para resolver
mltiples problemas en el desarrollo del software.
2. Conoce los principios bsicos de calendarizacin en la ingeniera de software
para resolver mltiples problemas en el desarrollo del sistema.
3. Distribuye los esfuerzos dentro de la calendarizacin de un proyecto para
definir y realizar un conjunto de tareas para un proyecto.
4. Identifica las tareas principales mediante la calendarizacin y elaboracin de
una red de tareas.
d) Actitudes:
Muestra una actitud emprendedora ante la calendarizacin de proyectos de
software.
Posee habilidad creativa para realizar proyectos de software.
91
Introduccin
a la
TEMA 1
Calendarizacin
de
Proyectos de
Software
Competencia:
Aplicar las tcnicas eficientes de la ingeniera
de software para resolver mltiples
problemas en el desarrollo del software.
92
Su jefe le dio manuales apropiados y una descripcin verbal de lo que tena que hacer.
Se le inform que el proyecto deba terminarse en dos meses. El ingeniero ley los
manuales, consider su enfoque y comenz a escribir el cdigo. Despus de dos
semanas, el jefe lo llam a su oficina y le pregunt cmo iban las cosas. Realmente
bien dijo el joven ingeniero con entusiasmo juvenil. Esto fue mucho ms simple de lo
que pens. Probablemente he terminado cerca del 75 por ciento. El jefe sonri y
alent al joven ingeniero a seguir trabajando bien. Planearon reunirse de nuevo en una
semana.
93
Conceptos Bsicos
Aunque existen muchas razones por las cuales el software se entrega con retraso, la
mayora se encuadra en una o ms de las siguientes causas:
94
95
96
La
TEMA 2
Calendarizacin
de Proyectos
Competencia:
Conocer
los
principios
bsicos
de
calendarizacin en la ingeniera de software
para resolver mltiples problemas en el
desarrollo del sistema.
97
El objetivo del gestor es definir todas las tareas del proyecto, construir una red que
bosqueje sus interdependencias, identificar las tareas cruciales dentro de la red y
luego seguir su progreso para garantizar que la demora se reconoce un da a la vez.
Para lograrlo el gestor debe tener una calendarizacin que se haya definido en un
grado de resolucin que permita supervisar el progreso y controlar el proyecto.
se
desarrolla
una
calendarizacin
macroscpica.
Este
tipo
de
calendarizacin identifica las principales actividades del marco de trabajo del proceso
y las funciones de producto a las que se aplican. Conforme el proyecto transcurre,
cada entrada en la calendarizacin macroscpica se refina en una calendarizacin
detallada. Aqu se identifican y calendarizan tareas especficas del software
(requeridas para completar una actividad).
98
Principios Bsicos
Al igual que otras reas de ingeniera del software, varios principios bsicos guan la
calendarizacin de los proyectos.
Compartimentacin. El proyecto debe dividirse en compartimientos en varias
actividades, acciones y tareas manejables. Lograrlo requiere descomponer tanto el
producto como el proceso.
Interdependencia. Se debe determinar la interdependencia de
cada actividad, accin o tarea compartimentada. Algunas
tareas deben ocurrir en secuencia mientras que otras
pueden ocurrir en paralelo. Algunas acciones o actividades no pueden comenzar
mientras no est disponible el producto de trabajo producido por otros.
99
Definicin de hitos. Cualquier tarea o grupo de tareas debe estar asociado con un
hito del proyecto. Un hito se logra cuando se ha revisado la calidad de uno o ms
productos de trabajo y se han aprobado.
Cada uno de estos principios se aplica conforme evoluciona la calendarizacin del
proyecto.
Relacin entre el personal y el esfuerzo
En un pequeo proyecto de desarrollo de software una
sola persona puede analizar los requisitos, realizar el
diseo, generar el cdigo y dirigir las pruebas.
Conforme aumenta el tamao de un proyecto, ms
gente resulta involucrada. (Rara vez que se puede
dar el lujo de acometer un esfuerzo de 10 personasao con una persona que trabaje durante 10 aos!).
100
Existe un mito comn que todava creen muchos gestores responsables del esfuerzo
del desarrollo del software: Si nos retrasamos en la calendarizacin, siempre
podemos incorporar ms programadores y recuperarnos ms adelante en el proyecto.
Desgraciadamente, agregar ms personas en etapas tardas de un proyecto con
frecuencia tiene un efecto perturbador sobre ste, lo que provoca que la
calendarizacin se desfase an ms. Las personas que se agregan deben aprender el
sistema y la gente que se les ensea es la misma que estaba haciendo el trabajo.
Durante la enseanza no se realiza trabajo y el proyecto experimenta mayores
retrasos.
101
102
Distribucin
TEMA 3
del
Esfuerzo
Competencia:
Distribuir los esfuerzos dentro de la
calendarizacin de un proyecto para definir y
realizar un conjunto de tareas para un
proyecto.
103
el
desarrollo
del
software.
Una
distribucin
Esta distribucin del esfuerzo se debe usar solamente como gua. Las caractersticas
de cada proyecto deben dictar la distribucin del esfuerzo. El trabajo realizado en la
planeacin del proyecto rara vez explica ms de 2-3 por ciento del esfuerzo a menos
que el plan comprometa a una organizacin a grandes gastos con alto riesgo. Los
anlisis de requisitos pueden comprometer 10-25 por ciento del esfuerzo del proyecto.
El esfuerzo empleado en el anlisis o elaboracin de prototipos debe aumentar en
proporcin directa con el tamao y la complejidad de un proyecto. Un intervalo del 20
al 25 por ciento de esfuerzo normalmente se aplica al diseo de software. Tambin se
debe considerar el tiempo utilizado en la revisin del diseo y la subsiguiente iteracin.
104
para
probablemente
un
se
sistema
complejo
apreciara
como
grande
demasiado
se
inician
para
explorar
algunas
de
desarrollo
de
nuevas
105
(por
ejemplo,
los
modelos
de
106
Como, ejemplo, considrese las tareas de ingeniera del software para un proyecto de
desarrollo del concepto. Los proyectos de desarrollo del concepto se inician cuando se
debe explotar el potencial para alguna nueva tecnologa. No existe certeza de que la
tecnologa ser aplicable, pero un cliente (por ejemplo, marketing) cree que existen
beneficios potenciales.
Los proyectos de desarrollo del concepto se enfocan en aplicar las siguientes tareas
principales:
1.1 La determinacin del mbito del concepto precisa el mbito global del
proyecto.
1.2 La planeacin preliminar del concepto establece la
habilidad de la organizacin para acometer el
trabajo que entraa el mbito del proyecto.
1.3 La valoracin del riesgo de la tecnologa
evala el riesgo asociado con la tecnologa que se
implementar como parte del mbito del proyecto.
1.4 La prueba del concepto demuestra la vialidad de
una nueva tecnologa en el contexto del software.
Una rpida exploracin de estas tareas debe producir pocas sorpresas. De hecho, el
flujo de ingeniera de software para los proyectos de desarrollo del concepto (y
tambin para que todos los otros tipos de proyectos) es poco ms que sentido comn.
107
Refinamiento
de las
TEMA 4
Tareas
Principales
Competencia:
Identificar las tareas principales mediante la
calendarizacin y elaboracin de una red de
tareas.
108
1.1.2
109
110
La
naturaleza
concurrente
de
las
actividades
de
Adems, el gestor del proyecto debe estar atento a las tareas que se encuentran en la
ruta crtica. Esto es, las tareas se deben completar en la calendarizacin si el
proyecto como un todo se debe completar a tiempo. Es importante notar que la red de
tareas mostrada es macroscpica. En la red de tareas detallada (un precursor de la
calendarizacin detallada) cada actividad que muestra la figura se debe expandir.
111
Calendarizacin
La calendarizacin de un proyecto de software no difiere enormemente de la de
cualquier esfuerzo de ingeniera multitarea. En consecuencia, las tcnicas y
herramientas generalizadas de calendarizacin de proyecto se pueden aplicar, poco
modificadas, en proyectos de software. La tcnica de evaluacin y revisin de
programa (PERT, por sus siglas en ingls) y el mtodo de ruta crtica (CPM, por sus
siglas en ingls) son dos mtodos de calendarizacin de proyecto que se pueden
aplicar al desarrollo de software.
Descomposicin de tareas.
Las interdependencias entre las tareas se pueden definir empleando una red de
tareas. Las tareas, en ocasiones llamadas la estructura del trabajo (EAT, por sus
siglas en ingls), se definen para el producto como un todo o para funciones
individuales.
112