Académique Documents
Professionnel Documents
Culture Documents
CODIGO: CEIS - 04
INTRODUCCION
CONTENIDOS MINIMOS
I.- El Producto
II.- El Proceso
III.- Conceptos sobre Gestin de Proyectos
IV.- Mtricas de Proyectos
V.- Planificacin de Proyectos
VI.- Garanta de Calidad del Software
VII.- Tcnicas de Pruebas del Software
Proporcionar a los estudiantes una slida y actualizada formacin en aspectos claves para
el desarrollo exitoso de soluciones de software asegurando la calidad del producto.
PROGRAMA ACADEMICO
I.- El Producto
Como vehculo utilizado para hacer entrega del producto, el software acta como la base
de control de la computadora (sistemas operativos), la comunicacin de informacin
(redes) y la creacin y control de otros programas (herramientas de software y entornos).
Y de este modo, las cuestiones que se preguntaba el programador solitario son las
mismas cuestiones que nos preguntamos cuando construimos sistemas modernos
basados en computadoras:
Por qu lleva tanto tiempo terminar los programas?
Por qu son tan elevados los costes de desarrollo?
Por qu no podemos encontrar todos los errores antes de entregar el software a
nuestros clientes?
Por qu nos resulta difcil constatar el progreso conforme se desarrolla el
software?
1.2.- El Software
En 1970, menos del uno por ciento de las personas podra haber descrito inteligentemente
lo que significaba software de computadora. Hoy, la mayora de los profesionales y
muchas personas en general piensan en su mayora que comprenden el software. Pero
lo entienden realmente?
El software es un elemento del sistema que es lgico, en lugar de fsico. Por tanto el
software tiene unas caractersticas considerablemente distintas a las del hardware:
1. El software se desarrolla, no se fabrica en un sentido clsico.
2. El software no se estropea.
3. Aunque la industria tiende a ensamblar componentes, la mayora del software se
construye a medida.
El software que controla una mquina automtica (por ejemplo: un control numrico)
acepta elementos de datos discretos con una estructura limitada y produce rdenes
concretas para la mquina en rpida sucesin.
Algunas veces es difcil establecer categoras genricas para las aplicaciones del software
que sean significativas. Conforme aumenta la complejidad del software, es ms difcil
establecer compartimentos ntidamente separados. Las siguientes reas del software
indican la amplitud de las aplicaciones potenciales:
Software de sistemas.
Software de tiempo real.
Software de gestin.
Software de ingeniera y cientfico.
Software empotrado.
Software de computadoras personales.
Software basado en Web.
Software de inteligencia artificial.
Robert Glass, autor de varios libros sobre fallos del software, representa a aquellos que
han sufrido un cambio de pensamiento. Expone: Puedo ver en mis ensayos histricos de
fallos y en mis informes de excepcin, fallos importantes en medio de muchos xitos, una
copa que est [ahora] prcticamente llena.
Lo que realmente tenemos es una afliccin crnica. La palabra afliccin se define como
algo que causa pena o desastre. Pero la clave de nuestro argumento es la definicin del
adjetivo crnica: muy duradero o que reaparece con frecuencia continuando
indefinidamente. Es bastante ms preciso describir los problemas que hemos estado
aguantando en el negocio del software como una afliccin crnica, en vez de como una
crisis.
Los mitos del software tienen varios atributos que los hacen insidiosos: por ejemplo,
aparecieron como declaraciones razonables de hechos (algunas veces conteniendo
elementos verdaderos), tuvieron un sentido intuitivo y frecuentemente fueron promulgados
por expertos que estaban al da.
Mitos de gestin.
Mito. Tenemos ya un libro que est lleno de estndares y procedimientos para
construir software, no le proporciona ya a mi gente todo lo que necesita saber?
Mito. Mi gente dispone de las herramientas de desarrollo de software ms avanzadas,
despus de todo, les compramos las computadoras ms modernas.
Mito. Si fallamos en la planificacin, podemos aadir ms programadores y adelantar
el tiempo perdido (el llamada algunas veces concepto de la horda Mongoliana).
Mitos del Cliente.
Mito. Una declaracin general de los objetivos es suficiente para comenzar a escribir
los programas podemos dar los detalles ms adelante-.
Mito. Los requisitos del proyecto cambian continuamente, pero los cambios pueden
acomodarse fcilmente, ya que el software es flexible.
II.- El Proceso
El trabajo que se asocia a la ingeniera del software se puede dividir en tres fases
genricas, con independencia del rea de aplicacin, tamao o complejidad del proyecto.
Cada fase se encuentra con una o varias cuestiones de las destacadas anteriormente.
La fase de definicin se centra sobre el qu. Aunque los mtodos aplicados durante la
fase de definicin variarn dependiendo del paradigma de ingeniera del software (o
combinacin de paradigmas) que se aplique, de alguna manera tendrn lugar tres tareas
principales: ingeniera de sistemas o de informacin, planificacin del proyecto del
software y anlisis de los requisitos.
Finalmente, las actividades de proteccin -tales como garanta de calidad del software,
gestin de configuracin del software y medicin abarcan el modelo de procesos. Las
actividades de proteccin son independientes de cualquier actividad del marco de trabajo y
aparecen durante todo el proceso.
Las personas obtienen tanta satisfaccin (o ms) del proceso creativo que del producto
final. Un artista disfruta con las pinceladas de la misma forma que disfruta del resultado
enmarcado. Un escritor disfruta con la bsqueda de la metfora adecuada al igual que con
el libro final. Un profesional creativo del software debera tambin obtener tanta
satisfaccin de la programacin como del producto final.
El trabajo de los profesionales del software cambiar en los prximos aos. La dualidad de
producto y proceso es un elemento importante para mantener ocupada a la gente creativa
hasta que se finalice la transicin de la programacin a la ingeniera del software.
Todos gestionamos de algn modo, pero el mbito de las actividades de gestin vara en
funcin de la persona que las realiza. Un Ingeniero de Software gestiona sus actividades
del da a da, planificando, supervisando y controlando las tareas tcnicas. Los Gestores
del Proyecto planifican, supervisan y controlan el trabajo de un equipo de ingenieros de
software. Los gestores expertos coordinan la relacin entre el negocio y los profesionales
del software.
La gestin de proyectos es importante porque el desarrollo de software es una empresa
compleja, particularmente si participa mucha gente trabajando durante un periodo de
tiempo relativamente largo. Esta es la razn por la cual los proyectos de software
necesitan ser gestionados.
El administrador que presta poca atencin al proceso corre el riesgo de arrojar mtodos
tcnicos y herramientas eficaces al vaco. El gestor que emprende un proyecto sin un plan
slido arriesga el xito del producto
3.2.- Personal
La necesidad de contar con personal para el desarrollo del software altamente preparado y
motivado se viene discutiendo desde los aos 60. De hecho, el factor humano es tan
importante que el Instituto de Ingeniera del Software ha desarrollado un Modelo de
madurez de la capacidad de gestin de personal (MMCGP) para aumentar la preparacin
de organizaciones del software para llevar a cabo las cada vez ms complicadas
aplicaciones ayudando a atraer, aumentar, motivar, desplegar y retener el talento
necesario para mejorar su capacidad de desarrollo de software.
El modelo de madurez de gestin de personal define las siguientes reas clave prcticas
para el personal que desarrolla software: reclutamiento, seleccin, gestin de rendimiento,
entrenamiento, retribucin, desarrollo de la carrera, diseo de la organizacin y del trabajo
y desarrollo cultural y de espritu de equipo.
3.3.- Producto
Antes de poder planificar un proyecto, se deberan establecer los objetivos y el mbito del
producto, se deberan considerar soluciones alternativas e identificar las dificultades
tcnicas y de gestin. Sin esta informacin, es imposible definir unas estimaciones
razonables (y exactas) del coste; una valoracin efectiva del riesgo, una subdivisin
realista de las tareas del proyecto o una planificacin del proyecto asequible que
proporcione una indicacin fiable del progreso.
El desarrollador de software y el cliente deben reunirse para definir los objetivos del
producto y su mbito. En muchos casos, esta actividad empieza como parte del proceso
de ingeniera del sistema o del negocio y contina como el primer paso en el anlisis de
los requisitos del software. Los objetivos identifican las metas generales del proyecto sin
considerar cmo se conseguirn (desde el punto de vista del cliente).
3.4.- Proceso
Un proceso de software proporciona la estructura desde la que se puede establecer un
detallado plan para el desarrollo del software. Un pequeo nmero de actividades
estructurales se puede aplicar a todos los proyectos de software, sin tener en cuenta su
tamao o complejidad. Diferentes conjuntos de tareas -tareas, hitos, productos del trabajo
y puntos de garanta de calidad- permiten a las actividades estructurales adaptarse a las
caractersticas del proyecto de software y a los requisitos del equipo del proyecto.
Finalmente, las actividades protectoras -tales como garanta de calidad del software,
gestin de la configuracin del software y medicin cubren el modelo de proceso. Las
actividades protectoras son independientes de las estructurales y tienen lugar a lo largo
del proceso.
3.5.- Proyecto
Dirigimos los proyectos de software planificados y controlados por una razn principal -es
la nica manera conocida de gestionar la complejidad-. Y todava seguimos
esforzndonos.
En 1998, los datos de la industria del software indicaron que el 26 por 100 de proyectos de
software fallaron completamente y que el 46 por 100 experimentaron un desbordamiento
en la planificacin y en el coste. Aunque la proporcin de xito para los proyectos de
software ha mejorado un poco, nuestra proporcin de fracaso de proyecto permanece ms
alto del que debera ser.
Para evitar el fracaso del proyecto, un gestor de proyectos de software y los ingenieros de
software que construyeron el producto deben eludir un conjunto de seales de peligro
comunes; comprender los factores del xito crticos que conducen a la gestin correcta del
proyecto y desarrollar un enfoque de sentido comn para planificar, supervisar y controlar
el proyecto.
La medicin se puede aplicar al proceso del software con el intento de mejorarlo sobre una
base continua. Se puede utilizar en el proyecto del software para ayudar en la estimacin,
el control de calidad, la evaluacin de productividad y el control de proyectos.
El proceso del software y las mtricas del producto son una medida cuantitativa que
permite a la gente del software tener una visin profunda de la eficacia del proceso del
software y de los proyectos que dirigen utilizando el proceso como un marco de trabajo.
Se renen los datos bsicos de calidad y productividad. Estos datos son entonces
analizados, comparados con promedios anteriores y evaluados para determinar las
mejoras en la calidad y productividad. Las mtricas son tambin utilizadas para sealar
reas con problemas de manera que se puedan desarrollar los remedios y mejorar el
proceso de software.
Dentro del contexto de la ingeniera del software, una medida proporciona una indicacin
cuantitativa de la extensin, cantidad, dimensiones, capacidad o tamao de algunos
atributos de un proceso o producto.
Una mtrica del software relata de alguna forma las medidas individuales sobre algn
aspecto (por ejemplo: el nmero medio de errores encontrados por revisin o el nmero
medio de errores encontrados por persona y hora en revisiones).
Un ingeniero del software recopila medidas y desarrolla mtricas para obtener indicadores.
Un indicador es una mtrica o una combinacin de mtricas que proporcionan una visin
profunda del proceso del software, del proyecto de software o del producto en s. Un
indicador proporciona una visin profunda que permite al gestor de proyectos o a los
ingenieros de software ajustar el producto, el proyecto o el proceso para que las cosas
salgan mejor.
Suponiendo que todos los parmetros son iguales, esto proporciona al gestor del proyecto
un indicador en el que los mtodos de revisin ms formales pueden proporcionar un
ahorro mayor en inversin de tiempo que otras revisiones con un enfoque menos formal.
Esto puede sugerir que todos los equipos utilicen el enfoque ms formal. La mtrica
proporciona al gestor una visin ms profunda. Y adems le llevar a una toma de
decisiones ms fundamentada.
Se deberan recopilar mtricas para que los indicadores del proceso y del producto
puedan ser ciertos. Los indicadores de proceso permiten a una organizacin de ingeniera
del software tener una visin profunda de la eficacia de un proceso ya existente (por
ejemplo: el paradigma, las tareas de ingeniera del software, productos de trabajo e hitos).
Tambin permiten que los gestores evalen lo que funciona y lo que no. Las mtricas del
proceso se recopilan de todos los proyectos y durante un largo perodo de tiempo. Su
intento es proporcionar indicadores que lleven a mejoras de los procesos de soft ware a
largo plazo.
Los indicadores de proyecto permiten al gestor de proyectos del software (1) evaluar el
estado del proyecto en curso; (2) seguir la pista de los riesgos potenciales: (3) detectar las
reas de problemas antes de que se conviertan en crticas; (4) ajustar el flujo y las
tareas del trabajo, y (5) evaluar la habilidad del equipo del proyecto en controlar la calidad
de los productos de trabajo del software.
En algunos casos, se pueden utilizar las mismas mtricas del software para determinar
tanto el proyecto como los indicadores del proceso. En realidad, las medidas que recopila
un equipo de proyecto y las convierte en mtricas para utilizarse durante un proyecto
tambin pueden transmitirse a los que tienen la responsabilidad de mejorar el proceso del
software. Por esta razn, se utilizan muchas de las mismas mtricas tanto en el dominio
del proceso como en el del proyecto.
4.3.- Mediciones del Software
Las mediciones del mundo fsico se pueden categorizar de dos maneras; medidas directas
(por ejemplo: la longitud de un tomillo) y medidas indirectas (por ejemplo: la calidad de
los tomillos producidos, medidos contando los artculos defectuosos). Las mtricas del
software se pueden categorizar de forma similar.
Entre las medidas directas del proceso de la ingeniera del software se incluyen el coste y
el esfuerzo aplicados. Entre las medidas directas del producto se incluyen las lneas de
cdigo (LDC) producidas, velocidad de ejecucin, tamao de memoria, y los defectos
informados durante un perodo de tiempo establecido.
Tambin se acaba de destacar que las mtricas de producto que son privadas para un
individuo a menudo se combinan para desarrollar mtricas del proyecto que sean pbli cas
para un equipo de software.
Las mtricas del proyecto se consolidan para crear mtricas de proceso que sean pblicas
para toda la organizacin del software. Pero cmo combina una organizacin mtricas
que provengan de particulares o proyectos?
Sin embargo, si se normalizan las medidas, es posible crear mtricas de software que
permitan comparar medidas ms amplias de otras organizaciones.
Mtricas Orientadas al Tamao
Mtricas Orientadas a la Funcin
Mtricas ampliadas de punto de funcin
La calidad de un sistema, aplicacin o producto es tan buena como los requisitos que
describen el problema, el diseo que modela la solucin, el cdigo que conduce a un
programa ejecutable, y las pruebas que ejercitan el software para detectar errores.
Un buen ingeniero del software utiliza mediciones que evalan la calidad del anlisis y los
modelos de diseo, el cdigo fuente, y los casos de prueba que se han creado al aplicar la
ingeniera del software. Para lograr esta evaluacin de la calidad en tiempo real, el
ingeniero debe utilizar medidas tcnicas que evalan la calidad con objetividad, no con
subjetividad. El gestor de proyectos tambin debe evaluar la calidad objetivamente, y no
subjetivamente. A medida que el proyecto progresa el gestor del proyecto tambin debe
evaluar la calidad.
Las mtricas privadas recopiladas por ingenieros del software particulares se asimilan
para proporcionar resultados en los proyectos. Aunque se pueden recopilar muchas
medidas de calidad, el primer objetivo en el proyecto es medir errores y defectos. Las
mtricas que provienen de estas medidas proporcionan una indicacin de la efectividad de
las actividades de control y de la garanta de calidad en grupos o en particulares.
Medida de la calidad
Correccin.
Facilidad de mantenimiento.
Integridad.
Facilidad de uso.
Siempre que estimamos, estamos mirando hacia el futuro y aceptamos resignados cierto
grado de incertidumbre. Aunque la estimacin es ms un arte que una ciencia, es una
actividad importante que no debe llevarse a cabo de forma descuidada.
Existen tcnicas tiles para la estimacin del esfuerzo y del tiempo. Las mtricas del
proyecto y del proceso proporcionan una perspectiva histrica y una potente introduccin
para generar estimaciones cuantitativas.
La experiencia anterior (de todas las personas involucradas) puede ayudar en gran
medida al desarrollo y revisin de las estimaciones. Y, dado que la estimacin es la base
de todas las dems actividades de planificacin del proyecto, y que sirve como gua para
una buena ingeniera del software, no es en absoluto aconsejable embarcarse sin ella.
Adems, las estimaciones deberan definir los escenarios del mejor caso y peor caso
de forma que los resultados del proyecto puedan limitarse.
El mbito del software describe el control y los datos a procesar, la funcin, el rendimiento,
las restricciones, las interfaces y la fiabilidad. Se evalan las funciones descritas en la
declaracin del mbito, y en algunos casos se refinan para dar ms detalles antes del
comienzo de la estimacin.
Dado que las estimaciones del coste y de la planificacin temporal estn orientadas a la
funcin, muchas veces es til llegar a un cierto grado de descomposicin. Las
consideraciones de rendimiento abarcan los requisitos de tiempo de respuesta y de
procesamiento.
Las restricciones identifican los lmites del software originados por el hardware externo,
por la memoria disponible y por otros sistemas existentes.
5.3.- Recursos
En la parte ms alta de la pirmide est el recurso primario -el personal-. Cada recurso
queda especificado mediante cuatro caractersticas: descripcin del recurso, informe de
disponibilidad, fecha cronolgica en la que se requiere el recurso, tiempo durante el que
ser aplicado el recurso. Las dos ltimas caractersticas pueden verse como una ventana
temporal. La disponibilidad del recurso para una ventana especfica tiene que establecerse
lo ms pronto posible.
La estimacin del coste y del esfuerzo del software nunca ser una ciencia exacta. Son
demasiadas las variables humanas, tcnicas, de entorno, polticas- que pueden afectar al
coste final del software y al esfuerzo aplicado para desarrollarlo.
Sin embargo, la estimacin del proyecto de software puede dejar de ser un oscuro arte
para convertirse en una serie de pasos sistemticos que proporcionen estimaciones con
un grado de riesgo aceptable.
Todas las metodologas y herramientas tienen un nico fin: producir software de gran
calidad
Definiciones de calidad del software
o Concordancia con los requisitos funcionales y de rendimiento explcitamente
establecidos con los estndares de desarrollo explcitamente documentados
y con las caractersticas implcitas que se espera de todo software
desarrollado profesionalmente
o El conjunto de caractersticas de una entidad que le confieren su aptitud
para satisfacer las necesidades expresadas y las implcitas
Conclusiones Sobre las Definiciones:
o Los requisitos del software son la base de las medidas de calidad. La falta de
concordancia con los requisitos es una falta de calidad
o Los estndares o metodologas definen un conjunto de criterios de desarrollo
que guan la forma en que se aplica la ingeniera del software. Si no se sigue
ninguna metodologa siempre habr falta de calidad
o Existen algunos requisitos implcitos o expectativas que a menudo no se
mencionan, o se mencionan de forma incompleta (por ejemplo el deseo de
un buen mantenimiento) que tambin pueden implicar una falta de calidad.
En general son las actividades para evaluar la calidad de los productos desarrollados
6.4.- Sistema de Calidad
Definicin:
Estructura organizativa, procedimientos, procesos y recursos necesarios para
implantar la gestin de calidad
Definiciones.-
Ejecucin de un programa con la intencin de descubrir un error.
Tcnica experimental para la bsqueda de errores en los programas.
Se propone documentar con una matriz de pruebas de requisitos en la que se lista cada
requisito junto a sus casos de uso y casos de prueba: