Sunteți pe pagina 1din 151

Ingeniera del Software

MODULO

Ingeniera del software

Ingeniera del Software


INTRODUCCIN El curso Ingeniera de Software tiene como objetivo desarrollar habilidades y adquirir capacidades en la utilizacin de mtodos y tcnicas para desarrollar y mantener software de calidad. El curso tiene 3 crditos acadmicos los cuales comprenden el estudio independiente y el acompaamiento tutorial, con el propsito de: Comprender los aspectos tcnicos y de gestin de la disciplina de ingeniera de software. Capacitar a los estudiantes en las tcnicas de gestin necesarias para planificar, organizar, supervisar y controlar proyectos de software. Fomentar en el estudiante tcnicas de gestin de calidad del software. Obtener un conjunto de tcnicas de prueba de software con el propsito de encontrar y corregir errores antes de entregar el software al cliente.

Unidad 1. Gestin y planificacin de proyectos de software: se trata de determinar como se debe gestionar el personal, el proceso y el problema durante un proyecto de software. Se identifican las mtricas de software y cmo pueden emplearse para gestionar el proceso de software y el proyecto llevado a cabo como parte del proceso. Unidad 3. Control de calidad del software: se contemplan los aspectos relacionados con la calidad del software, se identifican los aspectos de gestin y las actividades especficas del proceso de calidad del software. Se establece la importancia de la garanta de calidad del software as como se definen las estrategias para los planes de garanta de calidad del software.

La ingeniera de software es el proceso de construir aplicaciones de tamao o alcance prcticos, en las que predomina el esfuerzo del software y que satisfacen los requerimientos de funcionalidad y desempeo. La ingeniera de software, ofrece mtodos y tcnicas para desarrollar, mantener, producir y asegurar software de calidad. Por tal razn, este curso terico pretende describir los aspectos tcnicos y de gestin de la Ingeniera de Software, as como de establecer la importancia de la garanta de calidad del software. 2

Ingeniera del Software

Ingeniera del Software

UNIDAD 1. INTRODUCCIN A LA INGENIERA DEL SOFTWARE


INTRODUCCIN
La ingeniera de software es una disciplina que integra procesos, mtodos y herramientas para el desarrollo de software. Varios son los modelos de procesos que se han propuesto para la ingeniera de software, cada uno presenta ventajas y desventajas, pero todos tienen en comn fases genricas que permiten llevar a cabo el proceso de la ingeniera de software.

OBJETIVOS
GENERAL Comprender los aspectos tcnicos y de gestin de la disciplina de Ingeniera del Software

ESPECIFICOS Definicin de Ingeniera de software, producto de software, procesos de software. Identificar los mitos de software Determinar que es un proceso de software Identificar los procesos que se pueden aplicar al desarrollo del software Determinar la diferencia entre modelos de proceso lineales e iterativos

Ingeniera del Software

ESTRUCTURA TEMTICA
1. EL PRODUCTO 1.1 Definicin del Producto Software. El software es el producto que disean y construyen los ingenieros del software de cualquier tamao y arquitectura.

Porque El El Software Software es es importa importa nte nte

Afecta las actividades cotidianas Afecta cualquier aspecto de nuestras vidas Est muy extendido en el comercio

El Elproducto producto obtenido obtenido (software) (software)


Desde

El punto de vista del Ingeniero del Software


es El conjunto de programas, documentos y los datos que configuran el software de computadora

El punto de vista del Usuario


es La informacin resultante que hace el mundo mejor.

1.2 La evolucin del Software 5

Ingeniera del Software


Primeros Aos 1950
1

Segunda Era 1960 1970

Tercera Era 1980 1990

Cuarta Era 2003

Primeros Aos

Segunda era
Aparece la multiprogramacin y los sistemas multiusuario Establecimiento del software como producto y la llegada de las casas de software El software se desarrollaba para ser comercializado Se empez a distribuir software para grandes computadoras y minicomputadores Comenz a extenderse las bibliotecas de software El mantenimiento de software comenz a absorber recursos en una gran medida. Comenz una crisis del software porque la naturaleza personalizada de los programas hizo imposible su mantenimiento.

El software estaba en su infancia El software era un aadido Existan pocos mtodos para la programacin No se tenia una planificacin para el desarrollo del software Los programadores trataban de hacer las cosas bien El software se diseaba a medida El software era desarrollado y utilizado por la misma persona u organizacin (entorno personalizado) El diseo de software era realizado en la mente de alguien y no exista documentacin

Tercera era
Complejidad alta en los sistemas informticos Sistemas distribuidos Incorporacin de inteligencia Ejecucin de funciones concurrentes Desarrollo de software para redes y comunicaciones Planificacin en el proceso del desarrollo de software

Cuarta era
Impacto colectivo del software Sistemas operativos operativos sofisticados , en redes globales y locales Aplicaciones de software avanzadas Entorno cliente/cliente servidor Superautopista de informacin y una conexin del ciberespacio La industria del software es la cuna de la economa Tecnologas orientadas a objetos Tcnicas de cuarta generacin para el desarrollo de software Software de redes neuronales Sistemas expertos e inteligencia artificial Programacin de realidad virtual y sistemas multimedia Algoritmos genticos Adopcin de prcticas de Ingeniera del software

1.3 El Software
1

Roger S. Pressman. Ingeniera del software. Un enfoque prctico. Cuarta edicin.

Ingeniera del Software


El software se ha convertido en el elemento clave de la evolucin de los sistemas y productos informticos, y por tal razn no se puede tomar como slo el conjunto de programas, instrucciones y estructuras de datos. A continuacin se presentan algunas caractersticas que permiten visualizar lo que en realidad es el software. Caractersticas del Software Se desarrolla, no se fabrica: se utiliza un modelo de proceso de desarrollo que comprende anlisis, diseo, desarrollo, implementacin y evaluacin para obtener un producto de calidad. El softwar e No se estropea, pero se deteriora: El software durante su vida sufre cambios por lo que es probable que surjan fallos y defectos que si no se corrigen permiten que el software se vaya deteriorando. Se construye a medida: a medida que el software evoluciona se crean estndares de diseo. El software debe disearse e implementarse para que pueda ser 1.4 Aplicaciones del software El software tiene una gran amplitud de aplicaciones. A continuacin se relacionan: Software de sistemas Conjunto Conjuntode deprogramas programascreados creadoscomo comoherramienta herramienta para otros programas. Por ejemplo: compiladores, para otros programas. Por ejemplo: compiladores, Sistemas Sistemasoperativos operativos Software de gestin Gestin Gestin de de grandes grandes cantidades cantidades de de informacin informacin almacenadas, almacenadas,para parafacilitar facilitarla latoma tomade dedecisiones. decisiones. Por ejemplo Bases de datos y aplicaciones Por ejemplo Bases de datos y aplicaciones de de gestin gestinde deempresa empresa Software de ingeniera y cientfico 7

Ingeniera del Software


Utiliza Utiliza algoritmos algoritmos de de manejo manejo de de nmeros, nmeros, simulacin simulacinde desistemas, sistemas,utiliza utilizasoftware softwareen entiempo tiempo real. Por ejemplo: aplicaciones de astronoma, real. Por ejemplo: aplicaciones de astronoma, vulcanologa, vulcanologa,fabricacin fabricacinautomtica. automtica. Software de tiempo real

El Elsoftware softwareque quecoordina coordina/ /analiza/ analiza/controla controlasucesos sucesos del delmundo mundoreal realconforme conformeocurren, ocurren,se sedenomina denominade de tiempo real. tiempo real.

Software empotrado Reside Resideen enmemoria memoriade deslo slolectura lecturayyse seutiliza utilizapara para controlar productos y sistemas de los mercados controlar productos y sistemas de los mercados industriales. industriales.Por Porejemplo, ejemplo,el elcontrol controlde delas lasteclas teclasde de un horno de microondas, funciones digitales en un un horno de microondas, funciones digitales en un automvil. automvil. Aplicaciones Aplicaciones orientadas orientadas aa usuarios usuarios individuales individuales oo multiusuarios. Por ejemplo: procesadores multiusuarios. Por ejemplo: procesadoresde detexto, texto, hojas hojas de de clculo, clculo, juegos, juegos, aplicaciones aplicaciones financieras, financieras, gestores gestoresde debases basesde dedatos. datos. Software de inteligencia artificial Hace Haceuso usode dealgoritmos algoritmosno nonumricos numricospara pararesolver resolver problemas problemas complejos. complejos. Por Por ejemplo: ejemplo: sistemas sistemas expertos, expertos, redes redes neuronales, neuronales, robtica, robtica, prueba prueba de de teoremas teoremasyyjuegos. juegos.

Software para PC

Ingeniera del Software


1.5 Mitos del software Los mitos de software propagaron informacin errnea y confusin, lo que conllevo a la crisis del software durante los primeros aos del desarrollo del software. Mitos de gestin
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? Mi gente dispone de las herramientas de desarrollo de software ms avanzadas, despus de todo, les compramos las computadoras ms modernas. Si fallamos en la planificacin, podemos aadir ms programadores y adelantar el tiempo perdido.

Mitos del Cliente


Una declaracin general de los objetivos es suficiente para comenzar a escribir los programas. Los requisitos del proyecto cambian continuamente, pero los cambios pueden acomodarse fcilmente, ya que el software es flexible.

Mitos de los desarrolladores

Una vez que escribimos el programa y hacemos que funcione, nuestro trabajo ha terminado. Hasta que no tengo el programa ejecutndose, realmente no tengo forma de comprobar su calidad. Lo nico que se entrega al terminar el proyecto es el programa funcionando.

Ingeniera del Software


ACTIVIDADES COMPLEMENTARIAS 1. Muchos autores han tratado el impacto de la era de la informacin. D varios ejemplos (positivos y negativos) que indiquen el impacto del software en nuestra sociedad. 2. Escriba un informe que resuma las ventajas recientes en una de las reas de aplicaciones de software principales. Entre las selecciones potenciales se incluyen: aplicaciones avanzadas basadas en Web, realidad virtual, redes neuronales artificiales, interfaces humanas avanzadas y agentes inteligentes. 3. Analice y describa la Realidad para cada uno de los mitos descritos en el numeral 1.5.

CONSULTAS WEB Glosario de trminos de http://dxsting.cern.ch/sting/glossary.html software, en:

En www.spmn.com, informacin sobre los mitos del software.

10

Ingeniera del Software


2. EL PROCESO Es una serie de pasos a seguir para construir un producto o un sistema. El proceso del software es importante porque proporciona estabilidad, control y organizacin a una actividad que puede, si no se controla, volverse catica. 2.1 Ingeniera del Software Ingeniera Ingenierade de software software
es

el el conjunto conjunto
de

Principios Principios

Mtodos Mtodos

Tcnicas Tcnicas

para

Desarrollar Desarrollar

Mantener Mantener

Software Software
de

Calidad Calidad

A nivel internacional, la Ingeniera de Software empieza a tomar un papel fundamental y como un rea de la Ingeniera. A continuacin se relacionan algunas definiciones de Ingeniera del Software:

Zelkovitz. Principles of Software Engineering and Design. Ingeniera del software es el estudio de los principios y 11 metodologas para desarrollo y mantenimiento de sistemas de software.

Ingeniera del Software

Boehm. Software Engineering. Ingeniera del software es la aplicacin prctica del conocimiento cientfico en el diseo y construccin de programas de computadora y la documentacin asociada requerida para desarrollar, operar y mantenerlos. Bauer. Software Engineering. Ingeniera del software trata del establecimiento de los principios y mtodos de la ingeniera a fin de obtener software de modo rentable que sea fiable y trabaje en mquinas reales. Pressman. Ingeniera del Software La Ingeniera de/l software es una disciplina o rea de la informtica o Ciencias de la Computacin, que ofrece mtodos y tcnicas para desarrollar y mantener software de calidad que resuelven problemas de todo tipo. Braude. Ingeniera de Software La ingeniera de software es el proceso de construir aplicaciones de tamao o alcance prcticos, en las que predomina el esfuerzo del software y que satisfacen los requerimientos de funcionalidad y desempeo.. IEEE 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.

12

Ingeniera del Software


2.2 Esquema de la Ingeniera del Software

Es muy simple el esquema que consiste en desarrollar un programa sencillo que resuelve una tarea bien determinada. Lo normal es que se evolucione al desarrollo de un Sistema software: integra varios programas, o Producto software: programa usado en diferentes aplicaciones/entornos Ambos desarrollos "dan lugar a la Ingeniera del Software": Programas integrados que pueden trabajar en varios entornos.

13

Ingeniera del Software


2.3 Esencia de la Ingeniera del Software

Esta figura podra resumir buena parte de la esencia de la asignatura: en el desarrollo de software (una entidad "compleja") se producen problemas de comunicacin a varios niveles: entre usuarios y desarrolladores y entre los componentes mismos del equipo de desarrollo. Estudiaremos las tcnicas, mtodos y herramientas de ingeniera que puedan hacer que estos problemas se minimicen, e incluso que desaparezcan.

14

Ingeniera del Software


2.4 Proceso, mtodos y herramientas La ingeniera del software es una tecnologa multicapa, y que se apoya sobre un enfoque de calidad.

Herramientas Mtodos Proceso Enfoque de calidad

Enfoque de calidad Proceso Mtodos

Herramientas

Gestin total de calidad. Cultura continua de mejoras de procesos. Define un nmero de actividades del marco de trabajo aplicables a todos los proyectos del software. Indican cmo construir tcnicamente el software. Abarcan una gran gama de tareas que incluyen anlisis de requisitos, diseo, construccin de programas, pruebas y mantenimiento. Soporte automtico o semi-automtico para el proceso y los mtodos

La ingeniera es el anlisis, diseo, construccin, verificacin y gestin de entidades tcnicas. El trabajo que se asocia a la ingeniera del software se puede dividir en tres fases, con independencia del rea de aplicacin, tamao o complejidad del proyecto.

15

Ingeniera del Software


1 Fase de definicin Se centra sobre el qu. Identificar qu informacin ha de ser procesada, que funcin y rendimiento se desea, qu comportamiento 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. Identificar los requisitos del sistema y del software. Las tareas especficas de esta fase son: Ingeniera de Sistemas o de informacin Planificacin del proyecto software Anlisis de requerimientos Fase de desarrollo Se centra en el cmo. Definir cmo han de disearse las estructuras de datos, cmo ha de implementarse la funcin dentro de una arquitectura de software, cmo ha de implementarse los detalles procedimentales, cmo han de caracterizarse interfaces, cmo ha de traducirse el diseo en un lenguaje de programacin y cmo ha de realizarse la prueba. Las tareas especficas de esta fase son: Diseo del software Generacin de cdigo Prueba del software Fase de mantenimiento Se centra en el cambio. Correccin de errores Adaptaciones requeridas a medida que evoluciona el entorno del software Cambios debidos a las mejoras producidas por los requisitos cambiantes del cliente Se encuentran cuatro tipos de cambio: Correccin Adaptacin Mejora Prevencin

2.5 El Proceso del Software 16

Ingeniera del Software


Un proceso de software se puede caracterizar as:

Aplicables a todos los proyectos de software, con independencia de su tamao o complejidad.

Marco de trabajo comn del proceso


Actividades del marco de trabajo Conjuntos de tareas Tareas Hitos, entregas Puntos SQA

Actividades de Proteccin Permiten que las actividades del marco de trabajo se adapten a las caractersticas del proyecto del software y a los requisitos del proyecto.

Son independientes de cualquier actividad del marco de trabajo y aparecen durante todo el proceso.

17

Ingeniera del Software


3. MODELOS DE PROCESO DEL SOFTWARE Es importante incorporar estrategias de desarrollo que acompae al proceso, mtodos y a las herramientas. Una estrategia a menudo de llama modelo de proceso o paradigma de ingeniera del software. Se selecciona un modelo de proceso para la ingeniera del software segn la naturaleza del proyecto y de la aplicacin, los mtodos y las herramientas a utilizarse, y los controles y entregas que se requieren. 3.1 El modelo lineal secuencial Llamado algunas veces ciclo de vida bsico o modelo en cascada, el modelo lineal secuencial sugiere un enfoque sistemtico, secuencial, para el desarrollo del software que comienza en un nivel de sistemas y progresa con el anlisis, diseo, codificacin, pruebas y mantenimiento. Es un ciclo de vida en sentido amplio, que incluye no slo las etapas de ingeniera sino toda la vida del producto: las pruebas, el uso (la vida til del software) y el mantenimiento.

Ingeniera Ingeniera del delSistema Sistema Anlisis Anlisis Diseo Diseo Codificaci Codificaci n n Prueba Prueba Utilizacin Utilizacin Mantenimien Mantenimien to to

Ingeniera del Anlisis de las caractersticas y el comportamiento del 18

Ingeniera del Software


Sistema sistema del cual el software va a formar parte. Para un sistema nuevo: Se debe analizar cules son los requisitos funciones del sistema, y luego asignar un subconjunto de estos requisitos y funciones al software. Para un sistema ya existente: se debe analizar el funcionamiento de la organizacin y sus operaciones y se asigna al software aquellas funciones que se van a automatizar. Est formado por diagramas y por descripciones en lenguaje natural. Se debe comprender cules son los datos que se van a manejar, cul va a ser la funcin que tiene que cumplir el software, cules son las interfaces requeridas y cul es el rendimiento y otros requisitos no funcionales que se esperan lograr. Los requisitos, tanto del sistema como del software deben documentarse y revisarse con el cliente. Como resultado del la fase de anlisis, se obtiene la especificacin de requisitos del software. Tambin est formado por diagramas y descripciones en lenguaje natural. El diseo se aplica a cuatro caractersticas distintas del software: la estructura de los datos, la arquitectura de las aplicaciones, la estructura interna de los programas y las interfaces. El diseo es el proceso que traduce los requisitos en una representacin del software de forma que pueda conocerse la arquitectura, funcionalidad e incluso la calidad del mismo antes de comenzar la codificacin. En el diseo, los requisitos del software se traducen a una serie de diagramas que representan la estructura del sistema software, de sus datos, de sus programas y de sus interfaces. Consiste en la traduccin del diseo a un formato que sea comprensible para la mquina. Si el diseo es lo suficientemente detallado, la codificacin es relativamente sencilla, y puede hacerse de forma automtica, usando generadores de cdigo. Se traducen los diagramas de diseo a un lenguaje fuente, que luego se traduce - se compila - para obtener un programa ejecutable. 19

Anlisis

Diseo

Codificacin

Ingeniera del Software


Prueba El objetivo es comprobar que no se hayan producido errores en alguna de las fases anteriores, especialmente en la codificacin. Se deben probar todas las sentencias, y todos los mdulos que forman parte del sistema. El software se entrega al cliente y comienza la vida til del mismo. El software sufrir cambios a lo largo de su vida til. Estos cambios pueden ser debidos a tres causas: Que, durante la utilizacin, el cliente detecte errores en el software: los errores latentes. Que se produzcan cambios en alguno de los componentes del sistema. Que el cliente requiera modificaciones funcionales no contempladas en el proyecto.

Utilizacin Mantenimient o

3.2 El modelo de construccin de prototipos

Identificar los requerimiento s conocidos

Desarrollar modelo que funcione

Utilizar el prototipo

No

Revisar el prototipo

Prototip Prototip oo Terminad Terminad o? o? 20

Abandonar la aplicacin Implantar la aplicacin Volver a desarrollar la aplicacin

Ingeniera del Software

Paso Identificar los requerimient os conocidos

Descripcin Los analistas y los usuarios trabajan juntos para identificar los requerimientos conocidos que tienen que satisfacerse. Se debe: determinar los fines del sistema y el alcance de su capacidad. Paso Descripcin Desarrollar Los desarrolladores explican a los usuarios: modelo que El mtodo funcione Las actividades a realizar La secuencia en que se llevar a cabo La responsabilidad de cada participante El proceso de construccin del prototipo se debe iniciar con el desarrollo de un plan general que permita conocer el proceso de desarrollo. Es importante definir un cronograma para el inicio y fin de la primera iteracin.
Los reportes y documentos que el sistema debe proporcionar El formato de cada uno de ellos.

Primer a Iteraci n

Debe describir

El desarrollador estima los costos asociados con el desarrollo del prototipo. En el desarrollo del prototipo se preparan los siguientes componentes: El lenguaje de dilogo o conversacin entre el usuario y el sistema Pantallas y formatos para la entrada de datos Mdulos esenciales de procesamiento Salida del sistema En esta fase no se prepara la documentacin ni las especificaciones de salida o de diseo del software. Utilizar el La responsabilidad de trabajar con el prototipo y 21

Ingeniera del Software


prototipo evaluar sus caractersticas y operacin es del usuario. La experiencia con el sistema bajo condiciones reales permite determinar los cambios o mejoras o eliminar caractersticas innecesarias.

22

Ingeniera del Software


Paso Descripcin Revisar el Se realiza la evaluacin y con la informacin obtenida se prototipo levantan las caractersticas que debe llevar la siguiente versin del prototipo. La evaluacin permite profundizar los rasgos de los usuarios y los de la organizacin que tienen influencia sobre la aplicacin y en su implementacin. Los cambios en el prototipo son planificados con los usuarios antes de llevarlos a cabo por el analista. Prototipo Los pasos anteriores se repiten varias veces (4 o 6 terminado iteraciones) cuando los usuarios y desarrolladores estn de ? acuerdo en que el sistema ha evolucionado lo suficiente e incluye todas las caractersticas necesarias. Cuando el prototipo est terminado, el paso que sigue a continuacin es tomar la decisin sobre cmo proceder, para lo cual existen cuatro opciones:
Abandonar la aplicacin Se descartan el prototipo y la aplicacin. El desarrollo del prototipo proporcion informacin a partir de la cual se determin que la aplicacin o el enfoque seleccionado son inapropiados para justificar un desarrollo adicional. Implantar el prototipo Las caractersticas y funcionamiento del prototipo satisfacen las necesidades de los usuarios ya sea en forma permanente o para un futuro. Volver a desarrollar la aplicacin El desarrollo del prototipo proporcion suficiente informacin para determinar las caractersticas necesarias de toda la aplicacin. La informacin se utiliza como punto de partida para el desarrollo de la aplicacin en forma tal haga el mejor uso posible de los recursos. Comenzar un nuevo prototipo La informacin ganada con el desarrollo del prototipo inicial sugiere otras opciones o circunstancia. Se construye un prototipo diferente para aadir informacin relacionada con los requerimientos de aplicacin.

23

Ingeniera del Software


Un prototipo puede tener alguna de las tres formas siguientes: 1 Un prototipo, en papel o ejecutable en computador, que describa la interaccin hombre-mquina y los listados del sistema. Un prototipo que implemente algn(os) subconjunto(s) de la funcin requerida, y que sirva para evaluar el rendimiento de un algoritmo o las necesidades de capacidad de almacenamiento y velocidad de clculo del sistema final. Un programa que realice en todo o en parte la funcin deseada pero que tenga caractersticas que deban ser mejoradas durante el desarrollo del proyecto.

3.3 El modelo DRA (Desarrollo Rpido de Aplicaciones)

DRA DRA
es un

modelo de proceso
del

Desarrollo del software


que

Enfatiza un Ciclo Ciclode de desarrollo desarrollo corto corto

24

Ingeniera del Software


El proceso DRA permite al equipo de desarrollo crear un sistema completamente funcional dentro de periodos cortos de tiempo (de 60 a 90 das). El enfoque DRA comprende las siguientes fases:
Equipo N. 3 Modelado de gestin Modelado de datos Modelado de procesos Modelado de datos Modelado de procesos Generacin de aplicaciones Pruebas y entrega Generacin de aplicaciones

Equipo N. 2 Modelado de gestin

Equipo N. 1

Modelado de gestin Modelado de datos

Modelado de procesos Generacin de aplicaciones

Pruebas y entrega

Pruebas y entrega

60-90 das

Modelado gestin

de El flujo de informacin entre las funciones de gestin se modela de forma que responda a las siguientes preguntas: Qu informacin conduce al proceso de gestin? Qu informacin se genera? Quin la genera? A dnde va la informacin? Quin la procesa?

25

Ingeniera del Software


Modelado datos de Conjunto de objetos de datos necesarios para apoyar la empresa. Se definen las caractersticas (atributos) de cada uno de los objetos y las relaciones entre estos objetos. Modelado del Los objetos de datos definidos en la fase de modelado de proceso datos quedan transformados para lograr el flujo de informacin necesario para implementar una funcin de gestin. Las descripciones del proceso se crean para aadir, modificar, suprimir o recuperar un objeto de datos. Generacin El DRA asume la utilizacin de tcnicas de cuarta de generacin. En lugar de crear software con lenguajes de aplicaciones programacin de tercera generacin, el proceso DRA trabaja para volver a utilizar componentes de programas ya existentes o crear componentes reutilizables. Pruebas y Como el proceso DRA enfatiza la reutilizacin, ya se han Entrega comprobado muchos de los componentes de los programas. Esto reduce tiempo de pruebas. Sin embargo, se deben probar todos los componentes nuevos y se deben ejercitar todas las interfaces a fondo.

3.4 Modelos de procesos evolutivos de software

Los Los modelos modelos evolutiv evolutiv os os


se

son

iterativos

caracterizan

por

desarrollar versiones

cada vez

ms completas del software

26

Ingeniera del Software


3.4.1 El modelo incremental

El El modelo modelo incremental incremental combina


el y la

Modelo lineal secuencial


para

Construccin de prototipos

Entregar el software
en

Partes pequeas
llamadas

Incrementos

El modelo incremental se centra en la entrega de un producto operacional con cada incremento. Los primeros incrementos son versiones incompletas del producto final, pero proporcionan al usuario la funcionalidad necesaria para su evaluacin.

27

Ingeniera del Software


Ingeniera de Sistemas / Informacin incremento 1

Anlisis

Diseo

Cdigo

Prueba

Entrega 1er. Incremento

incremento 2

Anlisis

Diseo

Cdigo

Prueba

Entrega 2do. Incremento Entrega 3er. Incremento Entrega 4to. Incremento

incremento 3

Anlisis

Diseo

Cdigo

Prueba

incremento 4

Anlisis

Diseo

Cdigo

Prueba

Tiempo

3.4.2 El modelo espiral

Model o Espiral

es un

proporciona

proceso conjuga de software evolutivo

construccin de prototipos modelo lineal secuencial

Un desarrollo rpido de versiones incremntales del software

En las primeras iteraciones, la versin incremental podra ser un modelo en papel o un prototipo. Durante las ltimas iteraciones, se producen versiones cada vez ms completas del sistema diseado.

28

Ingeniera del Software


Comunicacin Comunicacin con con el el cliente: cliente: Se Se establece establece comunicacin entre el desarrollador y el cliente. comunicacin entre el desarrollador y el cliente. Planificacin: Planificacin: Se Se definen definen los los recursos, recursos, el el tiempo tiempo y y otra otra informacin informacin relacionados relacionados con con el el proyecto. proyecto. Actividades Actividades del del modelo modelo en espiral en espiral Anlisis Anlisis de de riesgos: riesgos: Se Se evalan evalan riesgos riesgos tcnicos tcnicos y y de de gestin gestin Ingeniera: Ingeniera: Se Se construyen construyen una una o o ms ms representaciones representaciones de la aplicacin. de la aplicacin. Construccin onstruir, Construccin y y accin: accin: C C onstruir, probar, probar, instalar instalar y y proporcionar proporcionar soporte soporte al al usuario. usuario. Evaluacin Evaluacin del del cliente: cliente: Se Se obtiene obtiene la la reaccin reaccin del del cliente. Se realiza la evaluacin de las representaciones cliente. Se realiza la evaluacin de las representaciones del del software software creadas creadas durante durante la la etapa etapa de de ingeniera ingeniera e e implementada durante la etapa de instalacin. implementada durante la etapa de instalacin.

29

Ingeniera del Software


El equipo de ingeniera del software gira alrededor de la espiral en la direccin de las agujas del reloj, comenzando por el centro. El primer circuito de la espiral puede producir el desarrollo de una especificacin de productos; los pasos siguientes en la espiral se podran utilizar para desarrollar un prototipo y progresivamente versiones mas sofisticadas del software. Cada paso por la regin de planificacin produce ajustes en el plan del proyecto. El costo y la planificacin se ajustan con la realimentacin ante la evaluacin del cliente. Adems, el gestor del proyecto ajusta el nmero planificado de iteraciones requeridas para completar el software. 3.5 Modelo de mtodos formales y Tcnicas de cuarta generacin El modelo de mtodos formales comprende un conjunto de actividades que conducen a la especificacin matemtica del software de computadora. Los mtodos formales permiten que un ingeniero de software especifique, desarrolle y verifique un sistema basado en computadora aplicando una notacin rigurosa y matemtica. Este enfoque es llamado ingeniera del software de sala limpia. Cuando se utilizan mtodos formales se descubren y corrigen ambigedades, inconsistencias y errores. Las tcnicas de cuarta generacin, abarcan un conjunto de herramientas que facilitan al ingeniero del software la especificacin de las caractersticas del software a alto nivel. La herramienta genera automticamente el cdigo fuente basndose en la especificacin del tcnico. Cuanto mayor sea el nivel en el que se especifique el software, ms rpido se puede construir el programa. El paradigma T4G para la ingeniera del software se orienta hacia la posibilidad de especificar el software usando formas de lenguaje especializado o notaciones grficas que describa el problema que hay que resolver en trminos que los entienda el cliente.
Lenguajes no procedimentales de consulta a bases de datos Generacin de informes Manejo de datos Interaccin y definicin de pantallas Generacin de cdigos Capacidades grficas Generacin automatizada de HTML

El Elparadigma paradigma incluye T4G T4G

las etapas

Recoleccin de requisitos: descritos por los clientes Diseo de prototipo 30 Desarrollo de prototipo operativo Implementacin Documentacin Mantenimiento

Ingeniera del Software

ACTIVIDADES COMPLEMENTARIAS 1. Las capas de la Ingeniera del Software sita las tres capas encima de la capa titulada enfoque de calidad. Esto implica un programa de calidad tal como Gestin de Calidad Total. Investigue y desarrolle un esquema de los principios clave de un programa de Gestin de Calidad Total. 2. Elabore y proporcione una tabla donde se especifiquen las ventajas y desventajas de los diferentes paradigmas de ingeniera de software. 3. Qu paradigmas de ingeniera del software de los presentados piensa que sera el ms eficaz? Por que? 4. Qu es ms importante, el producto o el proceso?

31

Ingeniera del Software

BIBLIOGRAFIA
IMPRESA BRAUDE. Ingeniera de software, una perspectiva orientada a objetos. Mxico. 2003. Alfaomega grupo editor. S.A. GRUEGGE, BERND y DUTOIT, Allen H. Ingeniera de software orientado a objetos. Mxico. 2002. Pearson Educacin. HUMPHREY, Watts S. Introduccin al proceso de software personal. Pearson Addison wesley. 2001. MEYER, Bertrand. Construccin de software orientado a objetos. Segunda edicin. Madrid. 1999. Prentice Hall. NORRIS. Ingeniera de software explicada. Grupo Noriega editores de Colombia. PIATTINI, Mario. VILLALBA, Jos y otros. Mantenimiento del software: modelos, tcnicas y mtodos para la gestin del cambio. Editorial Alfaomega-Rama. PRESSMAN, Roger S. Ingeniera del Software. Un enfoque prctico. Quinta edicin. Espaa. 2002. Editorial McGraw Hill. PFLEEGER, Shari Lawrence. Ingeniera de software, teora y prctica. 1. Edicin. Buenos Aires. Pearson educacin. 2002 SOMMERVILLE, Ian. Ingeniera de software. 6. Edicin. Pearson Addison Wesley. 2001 ELECTRNICA http://www.pressman5.com http://www.wiley.com/college/braude http://www.minerva.uevora.pt/simposio/comunicacoes/rigomezmarino.html http://apuntes.rincondelvago.com/trabajos_global/informatica/9/ http://www.info-ab.uclm.es/asignaturas/42551/enlaces.htm http://www.comp.lancs.ac.uk/computing/resources/IanS/SE6/PDF/SEGlossary.pdf http://www.ilustrados.com/publicaciones/EpyVZFEVukfVKPBUot.php http://www.itver.edu.mx/comunidad/material/ing-software/unidad5.ppt http://www.angelfire.com/scifi/jzavalar/apuntes/IngSoftware.html http://www.monografias.com/trabajos5/inso/inso.shtml http://www.sistemas.unam.mx/software.html http://www.ii.uam.es/~jlara/docencia/is1.2003/recursos.html 32

Ingeniera del Software

UNIDAD 2. GESTIN Y PLANIFICACIN DE PROYECTOS SOFTWARE


INTRODUCCIN
La gestin y planificacin de proyectos es una actividad que empieza antes de iniciar cualquier actividad tcnica y contina a lo largo de la definicin, del desarrollo y del mantenimiento del software. La actividad de gestin del proyecto comprende medicin y mtricas, estimacin, anlisis de riesgos, planificacin, seguimiento y control.

OBJETIVOS
GENERALES Estudiar las tcnicas de gestin necesarias para planificar, organizar, supervisar y controlar proyectos de software. Estudiar las tcnicas de anlisis y gestin del riesgo. Estudiar las tcnicas de gestin necesarias para planificar proyectos de software.

ESPECIFICOS Determinar como se debe gestionar el personal, el proceso y el problema durante un proyecto de software. Identificar las mtricas de software y cmo pueden emplearse para gestionar el proceso de software y el proyecto llevado a cabo como parte del proceso. Determinar como se crea la planificacin temporal de un proyecto. Identificar la garanta de calidad del software. Determinar los riesgos del software. Identificar los riesgos del software. Determinar la proyeccin y evaluacin del riesgo.

33

Ingeniera del Software

ESTRUCTURA TEMTICA
1. CONCEPTOS SOBRE GESTION DE PROYECTOS 1.1 Gestin de proyectos Gestin de proyectos

implic a

Planificaci n

Supervisi n
de

Control

Personal

Procesos
mientra s

eventos

Evoluciona el Software La gestin de un proyecto de software se centra en: 4 4 Ps Ps

Personal
Necesidad de personal para el desarrollo de software

Producto
Objetivos y mbito del software

Proceso
Estructura que establece un plan detallado para el desarrollo del software

Proyecto
Proyectos de software planificados y controlados.

34

Ingeniera del Software


1.2 Personal Recurso humano que participa y colabora en el proceso del software y su organizacin para el desarrollo de los proyectos software de manera eficaz.

Participante Se clasifican en: s Gestores Superiores: se encargan de definir los aspectos del negocio. Gestores tcnicos del proyecto: se encargan de planificar, motivar, organizar y controlar a los profesionales que realizan el trabajo de desarrollo del software. Profesionales: se encargan de proporcionan las capacidades tcnicas necesarias para la ingeniera de un producto o aplicacin. Clientes: especifican los requisitos para la ingeniera del software. Usuarios finales: Se encargan de interactuar con el software. Jefes equipo de Es el gestor de proyectos de software, el cual: Diagnostica los aspectos tcnicos y de organizacin ms relevantes. Tiene confianza para asumir el control del proyecto y permite que los buenos tcnicos aporten sus ideas. Promueve e incentiva las iniciativas y logros del equipo del proyecto. Hace saber a todos los miembros del equipo que la calidad es importante. de Mantei, propone 3 niveles de organizacin de equipos.

Equipo software

Descentralizado democrtico Este equipo no tiene un jefe permanente y se nombran coordinadores a corto plazo. Las decisiones se hacen por consenso del grupo. La comunicacin entre los miembros del equipo es horizontal.

35

Ingeniera del Software


Descentralizado controlado Este equipo tiene un jefe definido que coordina tareas especficas y jefes secundarios que tienen responsabilidades sobre subtareas. La resolucin de problemas sigue siendo una actividad del grupo, pero la implementacin de soluciones se reparte entre subgrupos por el jefe de equipo. La comunicacin entre subgrupos e individuos es horizontal. Tambin hay comunicacin vertical a lo largo de la jerarqua de control. Centralizado controlado El jefe del equipo se encarga de la resolucin de problemas a alto nivel y la coordinacin interna del equipo. La comunicacin entre jefe y los miembros del equipo es vertical. Coordinaci Se establecen mecanismos de comunicacin para coordinar n y al equipo de trabajo. Se deben tener: Comunicaci nComunicacin formal: se lleva a cabo por escrito, con reuniones organizadas y otros canales de comunicacin. Incluye documentos de ingeniera de software, memorandos tcnicos, documentacin, informes de seguimiento. Comunicacin informal: es ms personal. Incluye reuniones de grupo para la divulgacin de informacin y para la resolucin de problemas. Comunicacin electrnica: se leva a cabo por correos electrnicos, boletines, audioconferencias, videoconferencias.

1.3 Producto Al inicio de un proyecto, el gestor del proyecto debe examinar el producto y el problema a resolver. Por lo que se debe establecer el mbito del 36 producto delimitarlo.

Ingeniera del Software

mbito

Se define: Contexto: Cmo encaja el software a construir en un sistema, producto o contexto de negocios mayor y qu limitaciones se imponen como resultado del contexto? Objetivos de informacin: Qu objetos de datos visibles al cliente se obtienen del software? Qu objetos de datos son requeridos de entrada? Funcin y rendimiento: Qu funcin realiza el software para transformar la informacin de entrada en una salida? Hay caractersticas de rendimiento especiales que abordar?

Descomposici Comprende el anlisis de requisitos del software. n del problema La descomposicin se aplica en dos reas principales: (1) la funcionalidad que debe entregarse y (2) el proceso que se emplear para entregarlo. Un problema complejo se parte en pequeos que resultan ms manejables. problemas ms

37

Ingeniera del Software


1.4 Proceso El gestor del proyecto decide qu modelo de proceso es el ms adecuado para: 1. Los clientes que han solicitado el producto y la gente que realizar el trabajo. 2. Las caractersticas del producto. 3. El entorno del proyecto. Maduracin Los miembros del equipo de software deben estructurar un del problema y conjunto de actividades que le permitan trabajar en cada el proceso funcin del problema. Se pueden considerar las siguientes actividades: Comunicacin Se establece comunicacin entre el desarrollador y el cliente, con el propsito de obtener los requisitos del sistema. Planificacin Conjunto de tareas con el propsito de definir los recursos y la planificacin temporal del proyecto. Anlisis del riesgo Tareas requeridas para valorar los riesgos tcnicos y de gestin. Ingeniera Tareas requeridas para construir una o ms representaciones de la aplicacin. Construccin y entrega Tareas requeridas para construir, probar, instalar y proporcionar asistencia al usuario. Evaluacin del cliente Tareas requeridas para que el cliente evale las representaciones de software creadas durante la fase de ingeniera. El trabajo del gestor del proyecto es estimar los requisitos de recursos, poner fechas de inicio y finalizacin de las tareas y los productos a fabricar. Descomposici Las actividades de: comunicacin, planificacin, anlisis de n del proceso riesgo, ingeniera, construccin, entrega y evaluacin se adaptan al modelo o paradigma de desarrollo de software seleccionado.

38

Ingeniera del Software


1.5 Proyecto Se deben gestionar proyectos software de calidad para que tengan xito. Se debe:
1 2

Comprender el problema a solucionar y establecer los objetivos.

Mantener el equipo de desarrollo y proporcionar incentivos.


4

Realizar seguimiento a las actividades desarrolladas durante el proceso como parte de la calidad del mismo.

Tomar decisiones junto con el gestor del proyecto y el equipo de desarrollo de software.

Evaluar la planificacin real y la prevista, reunir y analizar mtricas del proyecto de software y realimentar cada uno de los procesos.

39

Ingeniera del Software


ACTIVIDADES COMPLEMENTARIAS 1. Se le ha nombrado gestor de proyecto dentro de una organizacin de sistemas de informacin. Su trabajo es construir una aplicacin que es bastante similar a otras que ha construido su equipo, aunque sta es mayor y ms compleja. Los requisitos han sido detalladamente documentados por el cliente. Qu estructura de equipo elegira y porqu? Qu modelo(s) de proceso de software elegira y por qu? 2. Se le ha nombrado gestor de proyecto de una pequea compaa de productos software. Su trabajo consiste en construir un producto innovador que combine hardware de realidad virtual con software innovador. Puesto que la competencia por el mercado de entretenimiento casero es intensa, hay cierta presin para terminar el trabajo rpidamente. Qu estructura de equipo elegira y porqu? Qu modelo(s) de proceso de software elegira y por qu?

40

Ingeniera del Software


2. EL PROCESO DE SOFTWARE Y MTRICAS DEL PROYECTO

Mtricas del software


comprend e

Una gama
de

Mediciones
para el

se

aplican

al

Proceso del software Proyecto de software


para

Software

Ayudar en la estimacin, el control de calidad, la evaluacin de productividad y el control de proyectos

Las razones para medir los procesos del software, los productos y los recursos: son: Caracterizar: para comprender mejor los procesos, los productos, los recursos y los entornos Evaluar: para determinar el estado con respecto al diseo Predecir: para poder planificar Mejorar: la calidad del producto y el rendimiento del proceso.

41

Ingeniera del Software


2.1 Mtricas en el proceso y dominios del proyecto Dentro de la Ingeniera del software se manejan los siguientes conceptos: Medida: Proporciona una indicacin cuantitativa de la extensin, cantidad, dimensiones, capacidad o tamao de algunos atributos de un proceso o producto. Medicin: es el acto de determinar una medida.

Mtrica: Una medida cuantitativa del grado en que el sistema, componente o proceso posee un atributo dado. 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.

El objetivo principal de los indicadores de proceso es evaluar las condiciones de funcionamiento de un proceso y poder tener una visin de la eficacia de un proceso existente. Durante un tiempo considerable se recopilan las mtricas de todos los proyectos y se proporcionan los indicadores para obtener mejoras e el software. Los Los indicadores indicadores de de proyecto proyecto
permite n

Evaluar el estado del proyecto

Hacer seguimient o a los riesgos potenciales

Detectar las reas problemas antes de que se conviertan en crticas

Ajustar el flujo y las tareas del trabajo

Evaluar la habilidad del equipo para controlar la calidad de los productos software.

Para mejorar cualquier proceso se debe: 42

Ingeniera del Software


Medir Medir atributos atributos del del proceso proceso Definir Definir y y desarrollar desarrollar un un juego juego de de mtricas mtricas para para esos esos atributos atributos Utilizar Utilizar las las mtricas mtricas para para encontrar encontrar indicadores indicadores para para la la estrategia estrategia de de mejora mejora

De acuerdo a la figura:
Producto
Caracterstic as del cliente Condiciones del negocio

Proceso

Persona s

Entorno de desarrollo

Tecnologa

Figura tomada de Roger Presuman. Ingeniera de Software

El producto, la tecnologa y las personas tienen una fuerte influencia en el desarrollo y la calidad del software. El proceso se encuentra dentro de unas condiciones de entorno que incluyen: entornos de desarrollo, condiciones del negocio, y caractersticas del cliente. Estas condiciones, son de gran importancia puesto que permiten definir las reglas del proceso y poder contribuir a la calidad del software. La eficacia de un proceso de software se mide a travs de un juego de mtricas segn los resultados que provienen del proceso. Dentro de stos resultados se debe incluir: Medida de errores detectados antes de la entrega del software Defectos detectados Productos de trabajo entregados Esfuerzo humano y tiempo consumido 43

Ingeniera del Software


Ajuste con la planificacin

Tambin se debe incluir mtricas para medir las caractersticas de tareas especficas de la ingeniera del software. Medida Medida del del tiempo tiempo y y del del esfuerzo esfuerzo para para llevar llevar a a cabo cabo actividades de proteccin actividades de proteccin Actividades Actividades genricas genricas de de ingeniera ingeniera del del software software

2.2 Mejora estadstica del proceso del software (MEPS) Para una organizacin es importante estar a gusto con la recopilacin y la utilizacin de mtricas de proceso, de stas se deriva la identificacin de indicadores llevando a un enfoque ms riguroso denominado Mejora estadstica de proceso del software (MEPS).

MEP S
utiliza

Anlisis de fallos
del

Software
para

Recopilar informacin

1 2 3

de errores y defectos. Categorizar por origen, todos los y

Registrar el costo de corregir cada error y el del defecto s Contar el nmero de errores y de defectos de cada categora y se ordenar por orden descendente Computar el costo global de errores y defectos de cada categora. Los datos resultantes se analizan para detectar las categoras que producen un costo alto para la organizacin Desarrollar planes para eliminar los errores y defectos ms costosos.

Errores

Defecto

Para realizar un anlisis de fallos se deben seguir los siguientes pasos:

4 5

44

Ingeniera del Software

Error

Es alguna fisura descubierta por los ingenieros del software antes de que el software sea entregado al usuario final Es alguna fisura descubierta despus de la entrega del software al usuario final

Defect o

Para determinar las principales causas que pueden ocasionar defectos en el software y con base en ello extraer los indicadores que permitan a una organizacin de software modificar su proceso para reducir la frecuencia de errores y defectos se utiliza el diagrama de espina.

Causa potencial No. 1 Q1%

Causa potencial no. 2 Q2%

Ci, j

Problema Principal R%
Ci, j

Causa potencial n Qi%

Causa potencial n+1 Qi%

Ci, j : Causa asociada a cada subproblema Qi %: Porcentaje de relevancia del subproblema 45 R% : Porcentaje de relevancia del problema principal

Ingeniera del Software


En un diagrama de espina: La lnea central, representa el factor de calidad o el problema en consideracin. Las lneas diagonales conectadas a la lnea central indican una causa potencial del problema de calidad.

Esta misma notacin se aplica para cada una de las lneas diagonales conectadas a la lnea central. Por ejemplo: Se han encontrado y determinado las siguientes causas y su origen en un proyecto de software: Origen de errores / defectos Especificacin / requisitos Diseo Cdigo Causa Lgica Manejo de datos estndares Especificaciones Interfaz software Interfaz hardware Comprobacin de errores Interfaz de usuario % 20 10.9 6.9 25.5 6.0 7.7 10.9 11.7

Si tomamos la causa Especificaciones y utilizamos un diagrama de espina para identificar las causas especficas para este problema, tenemos:

Incorrecto
Cliente consultado no adecuado El cliente dio informacin equivocada Insuficiente informacin solicitada Informacin desactualizada

Cambios

Defectos de especificacin 25.5%

Perdido

Ambiguo

46

Ingeniera del Software

2.3 Mtricas del Proyecto Mtricas de proyecto Se utilizan


Para minimizar la planificacin de desarrollo, ya que se realizan ajuste y se reduce los retrasos Para evaluar la calidad de los productos. A medida que mejora la calidad se minimizan los defectos.

Las mtricas del proyecto de software sugieren que los proyectos deben medir:
1 2

Entradas: la dimensin de los recursos que se requieren para realizar el trabajo Salidas: medidas de las entradas o productos creados durante el proceso de ingeniera del software Resultados: medidas que indican la efectividad de las entregas.

2.4 Mediciones del Software Las mtricas del software se pueden categorizar en:
Medidas directas: Dentro de estas se pueden incluir: El costo y el esfuerzo aplicado Lneas de cdigo producidas (LCD) Velocidad de ejecucin, tamao de memoria y los defectos informados durante un periodo de tiempo establecido Medidas Indirectas: Incluyen: La funcionalidad, calidad, complejidad, eficiencia fiabilidad, facilidad, facilidad de mantenimiento

47

Ingeniera del Software


El domino de las mtricas del software se dividen en mtricas de proceso, proyecto y producto. 2.4.1 Mtricas orientadas al tamao Provienen de la normalizacin de las medidas de calidad y/o productividad considerando el tamao del software que se haya producido. Los datos que se deben tener en cuenta, se pueden llevar en la siguiente tabla:
Proyect o IRIS LDC 18.200 Esfuerzo 24 Costo $ 200.000 Pginas de documentaci n 945 Errores 134 Defecto s 86 Persona s 4

Teniendo en cuenta los datos de la tabla, se pueden derivar otras mtricas para comparar varios proyectos. Por ejemplo: Errores por KLDC (miles de lneas de cdigo) Defectos por KLDC Pginas de documentacin por KLDC Errores por persona-mes LDC por persona-mes Costo ($) por pgina de documentacin 2.4.2 Mtricas orientadas a la funcin
Mtricas del software orientadas a la funcin
permiten Propuestas por

La medida de la funcionalidad de la aplicacin.

Allan Albrecht de IBM, comenz a analizar sistemas, a pedido del grupo de usuarios de IBM, buscando identificar los factores crticos que determinan el tamao del software y por consiguiente, estimar el esfuerzo y el costo de desarrollarlo. Luego de analizar cientos de sistemas, naci la tcnica de Anlisis de Puntos por funcin. La tcnica mide una aplicacin con base en las funciones que ste realiza para/por solicitud del usuario final.

48

Ingeniera del Software


Los puntos de funcin se obtienen utilizando una funcin emprica basado en medidas cuantitativas del dominio de informacin del software y valoraciones subjetivas de la complejidad del software. Los puntos de funcin se calculan utilizando la siguiente tabla:
Parmetros de medicin Nmero de entradas de usuario Nmero de salidas de usuario Nmero de peticiones de usuario Nmero de archivos Nmero de interfaces externas Cuenta X X X X X Factor de ponderacin Simple Medio Complejo 3 4 6 4 3 7 5 5 4 10 7 7 6 15 10

= = = = =

Cuenta_total

Se determinan 5 caractersticas del mbito de la informacin y los clculos aparecen en la posicin apropiada de la tabla. Los valores del mbito de informacin estn definidos de la siguiente manera:

1. Nmero de entradas de usuario: se cuenta cada entrad

2. Nmero de salidas de usuario: se cuenta cada salida que proporciona al usuario infor

3. Nmero de peticiones de usuario: una peticin esta definida como una entrada interactiva qu

4. Nmero de archivos:

5. Nmero de interfaces externas: se cuentan todas las interfaces legibles por la maqu

49

Ingeniera del Software


Cuando han sido recogidos los datos anteriores, se asocia el valor de complejidad a cada cuenta. Las organizaciones que utilizan mtodos de puntos de funcin desarrollan criterios para determinar si una entrada es denominada simple, media o compleja. No obstante la determinacin de la complejidad es algo subjetivo. Para calcular los puntos de funcin se utiliza la siguiente relacin: PF = Cuenta_total * [0.65 + 0.01 * (fi)] PF Cuenta_total fi Punto de funcin Es la suma de todas las entradas obtenidas Donde i=1 hasta 14. Son valores de ajuste de la complejidad basados en las respuestas a las cuestiones sealadas de la siguiente tabla:
Evaluar cada factor en escala 0 a 5
0 No influencia 1 Incidental 2 Moderado 3 Medio 4 Significativo 5 Esencial

Fi :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 Requiere el sistema copias de seguridad y de recuperacin fiables? Se requiere comunicacin de datos? Existen funciones de procesamiento distribuido? Es crtico el rendimiento? Se ejecutar el sistema en un entorno operativo existente y fuertemente utilizado? Requiere el sistema entrada de datos interactiva? Requiere la entrada de datos interactiva que las transacciones de entrada se lleven a cabo sobre mltiples pantallas u operaciones? Se actualizan los archivos maestros de forma interactiva? Son complejas las entradas, las salidas, los archivos o las peticiones? Es complejo el procesamiento interno? Se ha diseado el cdigo para ser reutilizable? Estn incluidas en el diseo la conversin y la instalacin? Se ha diseado el sistema para soportar mltiples instalaciones en diferentes organizaciones? Se ha diseado la aplicacin para facilitar los cambios y para ser fcilmente utilizada por el usuario?

50

Ingeniera del Software


Una vez calculado los puntos de funcin se usan como medida de la productividad, calidad y otros productos del software. Productividad = PF / persona-mes Calidad = Errores / PF Costo = Dlares / PF Documentacin = Paginas Documentadas / PF

51

Ingeniera del Software


2.5 Mtricas para la calidad del software El objetivo de la ingeniera del software es desarrollar y producir software de alta calidad. Para lograr este objetivo, es fundamental aplicar mtodos y herramientas efectivos dentro del contexto de un proceso maduro de desarrollo de software. 2.5.1 Medidas de la Calidad Dentro de las medidas de calidad del software tenemos: Correccin Es el grado en que el software cumple su funcin. La medida ms comn es: Defectos por KDLC (miles de lneas de cdigo) Facilidad de mantenimiento Es la facilidad con la que se puede corregir un programa si se encuentra un error Se utilizan medidas indirectas como: Tiempo Medio de cambio (TMC) Es decir, el tiempo que se tarda en: Analizar una peticin Disear un modificacin Implementar el cambio Probar y realizar el cambio.

52

Ingeniera del Software


Integridad Mide la capacidad del software para resistir ataques. Se debe tener en cuanta los siguientes atributos: Amenaza
Es la probabilidad de que un ataque ocurra en un tiempo determinado.

Seguridad

Es la probabilidad de que se pueda repeler el ataque de un tipo determinado.

Se define como: Integridad = [(1-amenaza) x (1-seguridad)]

Facilidad de uso Mide la amigabilidad del software con el usuario final. Se mide en funcin de: Habilidad intelectual o fsica para aprender el sistema. El tiempo requerido para hacer uso eficiente del sistema. Aumento de la productividad. Valoracin subjetiva de la disposicin de los usuarios hacia el sistema.

53

Ingeniera del Software


2.5.2 Eficacia de la eliminacin de defectos La eficacia de la eliminacin de defectos (EED), es una mtrica que permite medir la habilidad de filtrar las actividades de la garanta de calidad y de control, ya que es aplicable a todas las actividades del marco de trabajo del proceso. Se define de la siguiente forma: EED = E / (E + D) E D Nmero de errores encontrados antes de la entrega del software Nmero de defectos encontrados despus de la entrega

El valor ideal de EED es 1.

No se han encontrado defectos en el software.

2.5.3 Integracin de las mtricas dentro del proceso de Ingeniera del Software Estableciendo una lnea base de mtricas se obtienen beneficios a nivel de: Proceso Proyecto Producto Esta lnea base, comprende los siguientes pasos:

54

Ingeniera del Software


1 Recopilacin de datos Requiere una investigacin histrica de los proyectos para reconstruir los datos requeridos 2 Clculo de mtricas Se hace el clculo de mtricas una vez se han determinado las medidas. Pueden abarcar una gran cantidad de mtricas: LDC y PF De calidad Del proyecto Mtricas Medidas

3 Evaluacin de mtricas Se deben evaluar las mtricas y aplicar durante: la estimacin, el control de proyectos y la mejora del proceso. Los indicadores guan el proyecto o el proceso. Indicadores

55

Ingeniera del Software


ACTIVIDADES COMPLEMENTARIAS 1. Describa, con sus propias palabras, la diferencia entre mtricas del proceso y del proyecto. 2. Elabore un ensayo argumentativo, que de respuesta a la pregunta Por qu renecesita medir? Por qu son importantes las mtricas dentro de la ingeniera de Software? 3. Sugiera tres medidas, tres mtricas y los indicadores que se podran utilizar para evaluar un automvil. 4. Indague con algn desarrollador de software o un equipo de desarrollo de software qu medidas, mtricas e indicadores utilizan o tienen implementadas. Elabore un cuadro sinptico. INVESTIGACIN 1. El Instituto de Ingeniera de Software (The Carnegie Mellon Software Engineering Institute -SEI) ha desarrollado una gua para establecer un programa de medicin de software dirigido hacia objetivos. Investigue y elabore un documento sobre esta gua. EJERCICIOS 1. Calcule el Punto de Funcin de un proyecto con las siguientes caractersticas del dominio de informacin:
Nmero Nmero Nmero usuario Nmero Nmero de entrada de usuario de salida de usuario de peticiones de de archivos de interfaces externos 32 60 24 8 2

Asuma que todos los valores de ajuste de complejidad estn en la media.

56

Ingeniera del Software


3. PLANIFICACIN DE PROYECTOS DE SOFTWARE La Planificacin del proyecto es el conjunto de actividades con las cuales comienza la gestin de proyectos software.

Planificacin
implica determina

Estimaci n

Su resultado

El costo El esfuerzo Los recursos El tiempo

Para construir y desarrollar un producto

Es una tabla con: Las tareas a desarrollar Las funciones a implementar El costo, esfuerzo y tiempo necesario Para la realizacin de cada tarea.

La estimacin se inicia con una descripcin del mbito del producto. El problema se descompone en un conjunto de problemas de menor tamao y cada uno de stos se estima guindose con datos histricos y con la experiencia. El objetivo primordial es hacer estimaciones razonables de recursos, costos y una planificacin temporal. Las estimaciones involucran un periodo de tiempo y deben ser actualizadas a medida que avanza el proyecto. Planificacin
involucra mbito del software Recurso s Estimacin del proyecto Tcnicas de descomposici n Modelos de estimacin

3.1 mbito del Software y Recursos 57

Ingeniera del Software


3.1.1. 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 mas detalles antes del comienzo de la estimacin. mbito del software
comprend e

Recoleccin de la informacin Su objetivo es acercar al desarrollador y al cliente para establecer una comunicacin, para lograr esto, se utiliza una tcnica muy comn que es una reunin o una entrevista preliminar. Esta reunin o entrevista debe involucrar los siguientes tipos de preguntas: Preguntas de contexto libre: se centran en el cliente, en los objetivos globales y en los beneficios. Estas preguntas deben llevar a un entendimiento bsico del problema, las personas interesadas en la solucin y la solucin que se desea. Metacuestiones: estas preguntas se centran en la efectividad de la reunin, involucra preguntas para determinar si la persona es la apropiada para responder a las preguntas, si sin relevantes las preguntas para el problema en estudio, si las respuestas son oficiales, si existe algo que se debera preguntar. Tambin existe otra tcnica que permite la creacin de un equipo compuesto por los clientes y los desarrolladores para identificar el problema, proponer elementos de solucin, establecer enfoques y especificar un conjunto preliminar de requisitos denominada TFEA (Facilitated application specification techniques) Tcnica para facilitar las especificaciones de la aplicacin. Viabilidad Se centra en preguntarse: Se puede construir el software de acuerdo al mbito definido? Es factible el proyecto?

La factibilidad del software tiene 4 dimensiones: Tecnologa, financiacin, Tiempo y Recursos. Tanto el equipo de desarrollo y las dems personas involucradas en el software deben determinar si puede ser construido dentro de las dimensiones especificadas. 3.1.2 Recursos 58

Ingeniera del Software


Comprende la estimacin de los recursos necesarios para emprender el desarrollo del software. Los recursos de desarrollo son:
Humanos Componentes reutilizables de software De entorno (Hardware / software)

Recurso humano Se debe establecer el perfil y las habilidades que se necesitan del personal que se necesita para llevar a cabo el desarrollo del proyecto. Hay que especificar tanto la posicin dentro de la organizacin como la especialidad.
Gestor Ingeniero de software Analista de sistemas

El nmero de personas requerido para un proyecto de software se determina despus de hacer una estimacin del esfuerzo de desarrollo. Recursos de software reutilizable Se destaca la reutilizacin, esto es, la creacin y la reutilizacin de bloques de construccin de software. Se establecen 4 categoras de recursos de software que se deben tener en cuenta a medida que se avanza con la planificacin:

Componentes ya desarrollados: componentes que ya han sido validados totalmente se pueden utilizar e implementar en el desarrollo del proyecto actual. 59

Ingeniera del Software


Componentes ya experimentados: se puede utilizar Especificaciones, diseos, cdigo o datos de prueba existentes que ya han sido desarrollados para proyectos anteriores. Componentes con experiencia parcial: se puede utilizar Especificaciones, diseos, cdigo o datos de prueba existentes que ya han sido desarrollados para proyectos anteriores y que requieren una modificacin sustancial. Componentes nuevos: componentes que el equipo de software requiere construir especficamente para el proyecto.

Recursos de entorno El entorno es donde se apoya el proyecto de software. Comprende Hardware Software y

Comprende el conjunto de herramientas requeridas para producir o desarrollar el producto software y se debe verificar que estos recursos estn disponibles. 3.2 Estimacin descomposicin del proyecto de software y tcnicas de

Para realizar estimaciones seguras de costos y esfuerzos, se pueden tener las siguientes opciones: 1. Dejar la estimacin para cuando el proyecto este ms adelantado. 2. Basar las estimaciones en proyectos similares ya terminados. 3. Usar tcnicas de descomposicin que permita generar las estimaciones de costos y de esfuerzo del proyecto. 4. Utilizar modelos empricos para la estimacin del costo y esfuerzo del software.

60

Ingeniera del Software


La utilizacin de tcnicas de descomposicin y de modelos empricos, permiten descomponer el proyecto en funciones principales y en tareas lo que implica que se pueda realizar una estimacin del costo y del esfuerzo del proyecto de forma escalonada. Antes de de realizar la estimacin del proyecto se debe generar una estimacin del tamao del software a construir. 3.2.1 Tamao del software Dentro de la planificacin de proyectos, el tamao se refiere a una produccin cuantificable del proyecto de software. El tamao se mide en LDC, si se utiliza un enfoque directo El tamao se representa como PF, si se utiliza un enfoque indirecto. Se tienen 4 enfoques referentes al tamao:
1

Tamao en lgica difusa Utiliza las tcnicas aproximadas de razonamiento. Para aplicar este enfoque se debe: Identificar el tipo de aplicacin Establecer su magnitud en una escala cuantitativa Refinar la magnitud dentro del rango original
Qu es Lgica Difusa? Un tipo de lgica que reconoce ms que simples valores verdaderos y falsos. Con lgica difusa, las proposiciones pueden ser representadas con grados de veracidad o falsedad. Por ejemplo, la sentencia "hoy es un da soleado", puede ser 100% verdad si no hay nubes, 80% verdad si hay pocas nubes, 50% verdad si existe neblina y 0% si llueve todo el da.

61

Ingeniera del Software


2

Tamao de componentes estndar El software esta compuesto por un nmero de componentes estndar (subsistemas, mdulos, pantallas, informes, etc.) que son genricos para un rea en particular Se debe: Estimar el nmero de incidencias de cada uno de los componentes Utilizar los datos de proyectos histricos para determinar el tamao de entrega por componente. Por ejemplo: Para un sistema de informacin se estima que se requiere generar 15 informes. Los datos histricos indican que por informe se requieren 827 lneas de programacin. Esto permite que se estime que se requieren 12405 LDC para el
3

Tamao del cambio Este enfoque se utiliza cuando en un proyecto se utiliza software existente y que se debe modificar de alguna manera como parte del proyecto. Se debe estimar el nmero y tipo de modificaciones que se deben llevar a cabo. Para estimar el tamao del cambio, se utiliza una proporcin de esfuerzo 3.2.2 Estimacin basada en el problema

Puede usarse LOC o PF para hacer estimaciones. Si se utiliza LOC, la descomposicin es esencial y a menudo debe ser a detalle. Si se utiliza PF, en vez de centrar la descomposicin en la funcin, se calcula el PF, estimando de alguna forma, cada uno de los valores. En ambos casos, mediante datos histricos o la intuicin, se estiman valores optimista (O), medio (M) y pesimista (P) para cada funcin o contador, y se calcula el valor esperado (E) con la siguiente frmula:

E = (O + 4 * M + P) / 6

62

Ingeniera del Software


3.2.3 Estimacin basada en el proceso Esta tcnica permite, descomponer el proceso en un conjunto relativamente pequeo de actividades o tareas, y en el esfuerzo requerido para llevar a cabo la estimacin de cada tarea. Esta estimacin comprende: 1. Delineacin de las funciones del software obtenidas a partir del mbito del proyecto. 2. Se mezclan las funciones del problema y las actividades del proceso. 3. Se calculan los costos y el esfuerzo de cada funcin y la actividad del proceso de software.

3.3 Modelos empricos de estimacin


Utilizan frmulas derivadas empricamente de una muestra limitada de proyectos para predecir el esfuerzo en funcin de LOC o PF. La estimacin de los valores de LOC y PF se realizan utilizando las tcnicas de descomposicin. Los valores resultantes se aplican a la frmula del modelo que se haya escogido para obtener el esfuerzo en hombres-mes. Precisamente por venir de una muestra limitada, no son adecuados para toda clase de software ni para todo medio ambiente de desarrollo.

Modelo COCOMO Creado por Barry Boehm en 1981. Su nombre significa COnstructive COst MOdel (Modelo constructivo de costo) y se puede dividir en tres modelos.

63

Ingeniera del Software

Modelo Modelo s s

COCOMO bsico. Calcula el esfuerzo y el costo del desarrollo en funcin del tamao del programa estimado en LOC. COCOMO intermedio. Calcula el esfuerzo del desarrollo en funcin del tamao del programa y un conjunto de conductores de costo que incluyen la evaluacin subjetiva del producto, del hardware, del personal y de los atributos del proyecto. COCOMO detallado. Incorpora las caractersticas de la versin intermedia y lleva a cabo una evaluacin del impacto de los conductores de costo en cada fase (anlisis, desarrollo, etc.) del proceso.

Los modelos COCOMO estn definidos para tres tipos de proyectos de software:

Orgnicos. o Proyectos pequeos y sencillos. o Equipos pequeos con experiencia en la aplicacin. o Requisitos poco rgidos. Semiacoplados. o Proyectos de tamao y complejidad intermedia. o Equipos con variado niveles de experiencia. o Requisitos poco o medio rgidos. Empotrados. o Proyectos que deben ser desarrollados con un conjunto de requisitos (hardware y software) muy restringidos.

COCOMO bsico Las ecuaciones del modelo COCOMO bsico son de la forma: E = a * KLOCb D = c * Ed

64

Ingeniera del Software


Donde: E D KLOC es el esfuerzo aplicado en hombre-mes es el tiempo de desarrollo en meses es el nmero de miles de lneas de cdigo estimado para el proyecto

Los coeficientes a y c y los exponentes b y d se obtienen de la siguiente tabla: Tipo de proyecto Orgnico Semiacoplado Empotrado a b 2.4 1.0 5 3.0 1.1 2 3.6 1.2 0 C 2. 5 2. 5 2. 5 d 0.3 8 0.3 5 0.3 2

Aplicando el modelo COCOMO bsico al ejemplo anterior y usando un tipo de proyecto orgnico obtenemos una estimacin para el esfuerzo: E = 2.4 * KLOC1.05 = 2.4 * 7.41.05 = 20 hombre-mes Para calcular la duracin del proyecto usamos la estimacin de esfuerzo: D = 2.5 * E0.38 = 2.5 * 200.38 = 8 meses El valor de la duracin del proyecto permite al planificador recomendar un nmero de personas N para el proyecto. N=E/D = 20 / 8 = 3 personas El planificador puede decidir emplear slo una o dos personas y ampliar por tanto la duracin del proyecto.

65

Ingeniera del Software


COCOMO intermedio En el COCOMO intermedio, la ecuacin para calcular el tiempo de desarrollo es la misma que la del COCOMO bsico. La ecuacin para calcular el esfuerzo es: E = a * KLOCb * EAF Donde, E KLOC es el esfuerzo en hombre-mes es el nmero estimado de miles de lneas de cdigo

El coeficiente a y el exponente b estn dados por la tabla: Tipo de proyecto Orgnico Semiacoplado Empotrado Y EAF Es un factor de ajuste del esfuerzo que se calcula valorando en una escala de muy bajo, bajo, nominal, alto y muy alto cada uno de los siguientes 15 atributos, agrupados en 4 categoras. As: Atributos del producto. Son restricciones y requerimientos del proyecto que va a ser desarrollado. Confiabilidad requerida* Tamao de la base de datos Complejidad del producto Atributos de computadora. Son limitaciones puestas por el hardware y el sistema operativo donde el proyecto va a ejecutarse. o Restricciones de tiempo de ejecucin* o Restricciones de memoria principal* o Volatilidad de la mquina virtual. o Tiempo de respuesta de la computadora. 66 a b 3.2 1.0 5 3.0 1.1 2 2.8 1.2 0

Ingeniera del Software

EAF Atributos de personal. Nivel de habilidades que tiene el personal. Son habilidades profesionales generales, habilidad de programacin, experiencia con el medio ambiente de desarrollo y familiaridad con el dominio del proyecto. o Capacidad del analista. o Experiencia en aplicaciones* o Capacidad del programador. o Experiencia con la mquina virtual. o Experiencia con el lenguaje de programacin. Atributos del proyecto. Restricciones y condiciones bajo las cuales el proyecto se desarrolla. o Prcticas modernas de programacin o Uso de herramientas de software * o Calendario de desarrollo requerido.

A cada atributo se le asigna un nmero real de acuerdo a la tabla siguiente: 67

Ingeniera del Software


Escala Muy bajo Bajo Nominal Alto Muy alto Nmero 0.75 0.88 1 1.15 1.40

El nmero indica el grado con el que cada factor puede influenciar la productividad. Un valor menor que 1 indica que el factor puede decrementar el calendario y el esfuerzo. Un valor mayor que 1 denota un factor que extiende el calendario y el esfuerzo. Finalmente, un valor igual a 1 no extiende ni decrementa el calendario y el esfuerzo (esta clase de factor se llama nominal). Para obtener el EAF se multiplican cada uno de los 15 factores. Se puede simplificar el clculo del EAF porque hay una tendencia a considerar los atributos marcados en (*), como los ms relevantes y que deberan ser tomados en cuenta. La ecuacin del software

Propuesta por Putnam y Myers en 1992. Asume una distribucin especfica del esfuerzo a lo largo de la vida de un proyecto. Se obtuvo a partir de datos de productividad de unos 4,000 proyectos.

Es de la forma: E = (LOC * B0.333 / P)3 * (1 / t4) Donde, E t B P Esfuerzo en hombres-ao. Duracin del proyecto en aos. Factor especial de destrezas. Para programas pequeos B vale 0.16, para programas intermedios vale 0.28, para programas mayores vale 0.39. Parmetro de productividad, para un software de tiempo real, P vale 2,000, para comunicaciones vale 10,000, para software cientfico vale 12,000 y para aplicaciones comerciales de sistemas vale 28,000. 68

Ingeniera del Software

Para simplificar el proceso de estimacin se sugiere un conjunto de ecuaciones obtenidas de la ecuacin del software. Un tiempo mnimo de desarrollo de software se define como: tmin = 8.14 * (LOC / P)0.43 para tmin > 6 meses. E = 180 * B * t3 en hombres-mes para E >= 20 hombresmes y t representado en aos

69

Ingeniera del Software


Aplicando las ecuaciones al ejemplo anterior, obtenemos:

tmin = 8.14 * (7,400 / 12,000)0.43 = 7 meses E = 180 * 0.28 * 0.753

3.4 Riesgo del software El anlisis y la gestin del riesgo son una serie de pasos que ayudan al equipo del software a comprender y a gestionar la incertidumbre. Un riesgo es un problema potencial puede ocurrir o no -.

Por tal razn es importante: Identificarlo Evaluar su probabilidad de aparicin, Estimar su impacto, y , Establecer un plan de contingencia por si ocurre el problema.

Los pasos que se deben seguir son:


1 2

Identificar el riesgo. Reconocimiento de que algo puede ir mal. Cada riesgo se analiza para determinar la probabilidad de que pueda ocurrir y el dao que puede causar si ocurre.

3 3

Se priorizan los riesgos, en funcin de la probabilidad y del impacto.


Se desarrolla un plan para gestionar aquellos riesgos con gran probabilidad e impacto.

3.4.1. Estrategias de riesgo 70

Ingeniera del Software


Se tienen dos estrategias: Reactiva Supervisa el proyecto en previsin de posibles riesgos. Evaluar las consecuencias del riesgo cuando este ya se ha producido (ya no es un riesgo) Actuar en consecuencia

Proactiva Identifica los riesgos potenciales. Evaluacin previa y sistemtica de riesgos Evaluacin de consecuencias Se establece un plan de contingencia para controlar el riesgo.

Riesgo
implica

Incertidumbre el acontecimiento que caracteriza al riesgo puede o no puede ocurrir.

Prdida Si el riesgo se convierte en una realidad, ocurrirn consecuencias no deseadas o prdidas.

71

Ingeniera del Software


3.4.2 Categoras de riesgos Riesgos del proyecto Pueden amenazar al plan del proyecto, porque puede retrazar el proyecto y aumentar los costos. Identifican problemas de: Presupuesto Personal Recursos Cliente Requisitos Riesgos tcnicos Amenazan la calidad del software y la planificacin temporal del proyecto. La implementacin puede llegar a ser difcil o imposible. Identifican problemas de: Diseo Implementacin De interfaz Verificacin Mantenimiento Riesgos del negocio Amenazan la viabilidad del software a construir. Se pone en riesgo el proyecto y el producto. Identifican problemas de: De mercado De estrategia De ventas De gestin De presupuesto

72

Ingeniera del Software


3.4.3 Identificacin del riesgo Existen dos tipos de riesgo: Riesgos genricos Riesgos especficos Representan una amenaza potencial Implican un conocimiento profundo para todos los proyectos de software. del proyecto (Entorno, Tecnologa, Personal)

Lista de comprobacin de elementos de riesgo Es un mtodo que permite identificar riesgos, por medio de las siguientes categoras: Relacionados con el Se asocian los riesgos con el tamao del software a construir o desarrollar. tamao del producto

Tamao estimado del proyecto (LOC/PF) Confianza en la estimacin Numero de programas, archivos y transacciones Tamao relativo al resto de proyectos Tamao de la base de datos Nmero de usuarios Nmero de cambios de requerimientos previstos antes y despus de la entrega Cantidad de software reutilizado Con el impacto en la Asociados con las limitaciones impuestas por la gestin. Efecto del producto en la cifra de ventas organizacin Visibilidad desde la direccin de la organizacin Fecha lmite de entrega razonable Nmero de clientes que usarn el producto Numero de productos con los que deber interaccionar Sofisticacin del usuario final Cantidad y calidad de la documentacin a entregar al cliente Lmites legales y gubernamentales Costos asociados al retraso en la entrega Costos asociados a errores en el producto

73

Ingeniera del Software


Con el tipo de cliente
Asociados con la comunicacin del cliente. Hay experiencias anteriores con dicho cliente Tiene una idea clara de lo que precisa Est dispuesto a dedicar tiempo en la especificacin formal de requerimientos Est dispuesto a relacionarse de forma gil con el equipo de desarrollo Est dispuesto a participar en la revisiones Es un usuario experto Dejar trabajar al equipo de desarrollo sin dar consejos de experto informtico Entiende el ciclo de vida de una aplicacin Con la definicin del Asociados al proceso y seguimiento del software. Hay una poltica clara de normalizacin y proceso de produccin seguimiento de una metodologa Existe una metodologa escrita para el proyecto Se ha utilizado en otros proyectos Estn los gestores y desarrolladores formados Conoce todo el mundo los estndares Existen plantillas y modelos para todos los documentos resultado del proceso Se aplican revisiones tcnicas de la especificacin de requerimientos diseo y codificacin Se aplican revisiones tcnicas de los procedimientos de revisin y prueba Se documentan los resultados de las revisiones tcnicas Hay algn mecanismos para asegurar que un proceso de desarrollo sigue los estndares Se realiza gestin de la configuracin Hay mecanismos para controlar los cambios en los requerimientos que tienen impacto en el software Se documenta suficientemente cada subcontrato Se ha habilitado y se siguen mecanismos de seguimiento y evaluacin tcnica de cada subcontrato. Se dispone de tcnicas de especificacin de aplicaciones para facilitar la comunicacin con el cliente. Se usan mtodos especficos para anlisis de software Se utiliza un mtodo especfico para el diseo arquitectnico y de datos Est el 90% del cdigo en lenguajes de alto nivel

74

Ingeniera del Software


Hay estndares de documentacin de cdigo Se usan mtodos especficos para el diseo de pruebas Se utilizan herramientas para llevar a cabo la planificacin y control

Con el entorno de Asociados a las herramientas que se van a utilizar en el desarrollo del software desarrollo

Con la tecnologa

Hay herramientas de gestin de proyectos Hay herramientas de gestin del proceso de desarrollo Hay herramientas de anlisis y diseo Hay generadores de cdigo apropiados para la aplicacin Hay herramientas de prueba apropiadas Hay herramientas de gestin de configuracin apropiadas Se hace uso de una base de datos o repositorio centralizado Estn todas las herramientas de desarrollo integradas Se ha proporcionado formacin a todos los miembros del equipo de desarrollo Hay expertos a los cuales solicitar ayuda acerca de las herramientas Hay ayuda en lnea y documentacin disponible Asociados con la tecnologa a utilizar y la complejidad del sistema Se trata de una tecnologa nueva en la organizacin Se requieren nuevos algoritmos o tecnologa de I/O Se debe interactuar con hardware nuevo Se debe interactuar con software que no ha sido probado Se debe interactuar con un B.D. cuya funcionalidad y rendimiento no ha sido probada Es requerido un interface de usuario especializado Se necesitan componentes de programa radicalmente diferentes a los hasta ahora desarrollados Se deben utilizar mtodos nuevos de anlisis, diseo o pruebas Se deben utilizar mtodos de desarrollo no habituales, tales como mtodos formales, Inteligencia Artificial o redes neuronales Se aplican requisitos de rendimiento especialmente estrictos Existen dudas de que el proyecto sea realizable

75

Ingeniera del Software


Con la experiencia Asociados a la experiencia de los ingenieros de desarrollo de software. tcnica
Es el mejor personal disponible Tienen los miembros las tcnicas apropiadas Hay suficiente gente disponible Est el personal comprometido en toda la duracin del proyecto Habr parte del personal dedicado solamente en parte al proyecto Tiene el personal las expectativas correctas del trabajo Tiene el personal la necesaria formacin Puede la rotacin del personal perjudicar el proceso de desarrollo

3.4.4 Proyeccin del riesgo La estimacin del riesgo mide el riesgo de dos maneras: La probabilidad de que el riesgo sea real Las consecuencias de los problemas asociados con el riesgo, si ocurriera Se realizan cuatro actividades de proyeccin del riesgo: 1. Establecer una escala que refleje la probabilidad percibida del riesgo 2. Definir las consecuencias del riesgo 3. Estimar el impacto del riesgo en el proyecto y en el producto 4. Apuntar la exactitud general de la proyeccin del riesgo de manera que no haya confusiones. Uso de Tablas de Riesgo Por medio del uso de la siguiente tabla se facilita una proyeccin del riesgo.
Riesgos Mayor nmero de usuarios previstos Categora TP Probabilid ad 30% Impact o 3

1. En la columna Riesgo, se registran todos los riesgos 2. En la columna Categora, cada riesgo se categoriza as: Tamao del producto (TP) 76

Ingeniera del Software


Impacto en la organizacin (IO) Tipo de cliente (TC) Proceso de produccin (PP) Entorno de desarrollo (ED) Tecnologa (T) Experiencia tcnica (ET) Se pueden utilizar las iniciales que se encuentran entre parntesis o puede asignar unas especficas. 3. En la columna Probabilidad, se registra la probabilidad de aparicin de cada riesgo. 4. En la columna Impacto, Se valora y se registra el impacto de cada riesgo as:

77

Ingeniera del Software


1 2 3 4 Catastrfico Crtico Marginal Despreciable

Por ltimo la tabla es ordenada por probabilidad y por impacto. Aquellos riesgos que presentan alta probabilidad y alto impacto pasan al inicio de la tabla y los que presentan baja probabilidad e impacto pasan al final de la tabla. Una vez la tabla ha sido ordenada, el encargado del proyecto debe trazar una lnea de corte donde los riesgos que se encuentren por encima de sta lnea se les prestara una mayor atencin. Evaluacin del impacto del riesgo La exposicin al riesgo est dada por la ecuacin: ER = P x C Donde: P C Es la probabilidad de que ocurra un riesgo Costo del proyecto si el riesgo ocurre

Esta ecuacin se aplica para calcular la exposicin al riesgo de cada riesgo descrito en la tabla de riesgos. Estos clculos permiten ajustar los costos finales del proyecto. Evaluacin del riesgo Se establece un punto en el que se decide cundo desistir y finalizar el proyecto. Para esto se debe: Definir un punto de referencia Marcar la relacin entre cada factor de riesgo enumerado y el punto de referencia 78

Ingeniera del Software


Definir el rea de incertidumbre, donde ser tan vlido continuar como interrumpir el trabajo Predecir cmo la combinacin de riesgos afectar a los niveles de referencia 3.4.5 Reduccin, supervisin y gestin del riesgo El objetivo que debe tener un equipo de software es evitar y tratar un riesgo. Para esto, es importante que se desarrolle un plan de reduccin del riesgo. Este plan de reduccin del riesgo involucra para cada riesgo una serie de pasos y acciones que debe tomar e implementar el equipo de desarrollo del software. El plan RSGR Se puede incluir una estrategia de gestin de riesgo en el plan del proyecto de software o se podran organizar los pasos de gestin del riesgo en un plan diferente de reduccin, supervisin y gestin del riesgo (Plan RSGR). Todos los documentos del plan RSGR se llevan a cabo como parte del anlisis de riesgo y son empleados por el jefe del proyecto como parte del Plan del Proyecto general. A continuacin se expone un esquema del Plan RSGR:
I. Introduccin 1. Alcance y propsito del documento 2. Visin general de los riesgos principales 3. Responsabilidades a. Gestin b. Personal tcnico II. Tabla de riesgo del proyecto. 1. Descripcin de todos los riesgos por encima de la lnea de corte 2. Factores que influyen en la probabilidad e impacto III. Reduccin, supervisin y gestin del riesgo n. Riesgo # n a. Reduccin i.Estrategia general. ii. Pasos especficos. b. Supervisin i. Factores a supervisar ii. Enfoque de supervisin c. Gestin i. Plan de contingencia ii. Consideraciones especiales. IV. Planificacin temporal de revisin del Plan RSGR 79 V. Resumen

Ingeniera del Software


Una vez que se ha desarrollado el plan RSGR y el proyecto ha comenzado, empiezan los procedimientos de reduccin y supervisin del riesgo. La reduccin del riesgo es una actividad para evitar problemas. La supervisin del riesgo es una actividad de seguimiento del proyecto con tres objetivos principales:

1. Valorar cuando un riesgo previsto ocurre de hecho. 2. Asegurarse de que los procedimientos para evitar el riesgo definidos para el riesgo en cuestin se estn aplicando apropiadamente. 3. Recoger informacin que pueda emplearse en el futuro para analizar riesgos. La supervisin de riesgos tambin intentar determinar el "origen" (qu riesgos ocasionaron tal problema) a lo largo de todo el proyecto.

80

Ingeniera del Software


3.5 Planificacin temporal La planificacin temporal de un proyecto es una actividad que evoluciona con el tiempo y que permite identificar, definir y programar las actividades especficas que se requieren para realizar una actividad. La planificacin temporal permite: Definir todas las tareas Definir las tareas crticas Identificar el camino crtico Realizar seguimiento a tareas -> Detectar retraso

3.5.1 Principios bsicos de la planificacin temporal Compartimentar Interdependencia Tareas y actividades manejables Las actividades pueden ser: Secuenciales Paralelas Independientes Orden de ejecucin A cada tarea se debe asignar: N unidades de tiempo Fecha inicio y fecha fin Asignar: Esfuerzo N personas actual Asignar: Tarea Miembro equipo Cada tarea debe tener un resultado o producto definido. Cada tarea Hito

Asignacin de tiempo Validacin de esfuerzo Definir responsabilidades Definir resultados Hitos

81

Ingeniera del Software


3.5.2 Herramientas De Planificacin Temporal 1. PERT (Program Evaluation and Review Technique)

El diagrama PERT es una representacin grfica de las relaciones entre las tareas del proyecto que permite calcular los tiempos del proyecto de forma sencilla. Caractersticas Es un grafo, o sea, un conjunto de puntos (nodos) unidos por flechas. Representa las relaciones entre las tareas del proyecto, no su distribucin temporal. Las flechas del grafo corresponden a las tareas del proyecto. Los nodos del grafo, representado por crculos o rectngulos, corresponden a instantes del proyecto. Cada nodo puede representar hasta dos instantes distintos, el inicio mnimo de las tareas que parten del nodo y el final mximo de las tareas que llegan al mismo. Es una herramienta de clculo, y una representacin visual de las dependencias entre las tareas del proyecto. Tarea A B C D E F G H Predec Duraci . n A C DII+1 BFI-1 D, E, F GFF 2 3 2 3 2 3 3 2

82

Ingeniera del Software

Para construir un diagrama PERT se deben tener en cuenta las siguientes reglas Los nodos representan instantes del proyecto. Cada nodo representa el inicio mnimo (im) de las tareas que tienen origen en dicho nodo y el final mximo (FM) de las tareas que llegan al mismo.

Slo puede haber un nodo inicial y un nodo final. O sea, slo puede haber un nodo al que no llegue ninguna flecha (nodo inicial) y slo puede haber un nodo del que no salga ninguna flecha (nodo final). La numeracin de los nodos es arbitraria, si bien se reservan el nmero menor (generalmente el 0 o el 1) para el nodo inicial y el mayor para el nodo final. Las flechas representan tareas y se dibujan de manera que representen las relaciones de dependencia entre las tareas. Los recorridos posibles a travs del diagrama desde el nodo inicial al nodo final, siguiendo el sentido de las flechas, deben corresponder con las secuencias en que deben realizarse las distintas tareas, o sea, los caminos del proyecto.

No

puede

haber

dos

nodos

unidos

por

ms

de

una

flecha.

Se pueden introducir tareas ficticias, de duracin 0, para evitar construcciones ilegales o representar dependencias entre tareas.

83

Ingeniera del Software

Con un diagrama PERT se obtiene un conocimiento preciso de la secuencia necesaria, o planificada para la ejecucin de cada actividad y utilizacin de diagramas de red. Se trata de un mtodo muy orientado al plazo de ejecucin, con poca consideracin hacia al costo. Se suponen tres duraciones para cada suceso: la optimista a, la pesimista b y la normal m; Suponiendo una distribucin beta, la duracin ms probable: t = (a + 4m + b) / 6. Aplicacin de las tcnicas PERT: Determinar las actividades necesarias y cuando lo son. Buscar el plazo mnimo de ejecucin del proyecto. Buscar las ligaduras temporales entre actividades del proyecto. Identificar las actividades crticas, es decir, aquellas cuyo retraso en la ejecucin supone un retraso del proyecto completo. Identificar el camino crtico, que es aquel formado por la secuencia de actividades crticas del proyecto. Detectar y cuantificar las holguras de las actividades no crticas, es decir, el tiempo que pueden retrasarse (en su comienzo o finalizacin) sin que el proyecto se vea retrasado por ello. Si se est fuera de tiempo durante la ejecucin del proyecto, seala las actividades que hay que forzar. Nos da un proyecto de coste mnimo.

84

Ingeniera del Software


2. CPM (Crtical Path Method) Mtodo del camino Crtico

El camino crtico en un proyecto es la sucesin de actividades que dan lugar al mximo tiempo acumulativo. Determina el tiempo ms corto que podemos tardar en hacer el proyecto si se dispone de todos los recursos necesarios. Es necesario conocer la duracin de las actividades. Este concepto es utilizado por dos mtodos: Mtodo del tiempo estimado (CPM) La duracin de una actividad es la ms probable de duracin. Tiempo que se empleara en condiciones normales (m). Situacin determinista. Mtodo del tiempo esperado (PERT) Determinacin probabilstica de los tiempos esperados (Te), en funcin de los siguientes tiempos: o Duracin ms corta (a) o Duracin ms larga (b) o Duracin ms probable (m) (el mismo que en CPM) o Duracin esperada: Te = (a + 4m + b) / 6 Clculo del camino crtico
1. Calcular Te m segn el mtodo empleado para cada actividad. Se coloca en el grafo encima o debajo de cada flecha. 2. Calcular las fechas early -fecha mnima de comienzo de la actividad, MIC del suceso anterior- y last -fecha mnima de comienzo de la actividad, MAC del suceso posterior- de las distintas actividades que configuran el proyecto. (Calcular el MIC y el MAC de todos los sucesos del proyecto). 3. Clculo de las holguras. 4. Identificacin del camino crtico.

Holguras La holgura de una actividad es el margen suplementario de tiempo que tenemos para determinar esa actividad. Las actividades crticas no tienen holgura.
Holgura de un suceso Hs: Hs = MAC del suceso MIC del suceso

Holgura total de una actividad Ht = MAC del s.p. MIC del s.a. duracin tarea Ht: Margen suplementario de tiempo de esa actividad sin que se altere el MIC de ninguna actividad crtica. Holgura libre de unaHi: HI = MIC del s.p. MIC del s.a. duracin tarea Margen suplementario de tiempo para esa actividad sin que se altere el MIC de cualquier actividad. Holgura independiente Hi: Hi = MIC del s.p. MAC del s.a. duracin tarea Margen suplementario de tiempo que existe en una actividad si las actividades precedentes

85

Ingeniera del Software


terminaran lo ms tarde posible, y las actividades posteriores empezaran lo antes posible.

Actividades crticas Una actividad es crtica cuando no se puede cambiar sus instantes de comienzo y finalizacin sin modificar la duracin total del proyecto. La concatenacin de actividades crticas es el camino crtico. En una actividad crtica la fecha early coincide con la ms tarda de comienzo, y la fecha ms temprana de finalizacin coincide con la fecha last de la actividad. La holgura total es 0.
3. DIAGRAMA DE GANTT

Los cronogramas de barras o grficos de Gantt fueron concebidos por el ingeniero norteamericano Henry L. Gantt. Gantt resolvi el problema de la programacin de actividades, es decir, su distribucin conforme a un calendario, donde se poda visualizar el periodo de duracin de cada actividad, sus fechas de iniciacin y terminacin e igualmente el tiempo total requerido para la ejecucin de un trabajo. El instrumento que desarroll permite tambin que se siga el curso de cada actividad, al proporcionar informacin del porcentaje ejecutado de cada una de ellas, as como el grado de adelanto o atraso con respecto al plazo previsto. Este grfico consiste en un sistema de coordenadas en que se indica:
En el eje Vertical: Las actividades que constituyen el trabajo a ejecutar. A cada actividad se hace corresponder una lnea horizontal cuya longitud es proporcional a su duracin en la cual la medicin efecta con relacin a la escala definida en el eje horizontal.

En el eje Horizontal: un calendario, o escala de tiempo definido en trminos de la unidad ms adecuada al trabajo que se va a ejecutar: hora, da, semana, mes, etc.

86

Ingeniera del Software

Oct 2005

Nov 2005

Dec 2005

ID 1 2 3 4 5

Actividades Actividad 1 Actividad 2 Actividad 3 Actividad 4 Actividad 5

Inicio 03/10/2005 07/11/2005 03/10/2005 03/10/2005 03/10/2005

Fin 04/11/2005 09/12/2005 25/11/2005 27/12/2005 18/10/2005

Duracion
10/2 10/9 10/16 10/23 10/30 11/6 11/13 11/20 11/27 12/4 12/11 12/18

5w 5w 8w 12.40w 2.40w

Smbolos Convencionales: Los smbolos bsicos son los siguientes: Iniciacin de una actividad. Trmino de una actividad Lnea fina que conecta las dos L invertidas. Indica la duracin prevista de la actividad. Lnea gruesa. Indica la fraccin ya realizada de la actividad, en trminos de porcentaje. Debe trazarse debajo de la lnea fina que representa el plazo previsto. Plazo durante el cual no puede realizarse la actividad. Corresponde al tiempo improductivo puede anotarse encima del smbolo utilizando una abreviatura. Indica la fecha en que se procedi a la ltima actualizacin del grfico, es decir, en que se hizo la comparacin entre las actividades previstas y las efectivamente realizadas. En el proceso de dibujar un diagrama de Gantt se tendrn en cuenta las siguientes consideraciones siguientes: Las dependencias fin-inicio se representan alineando el final del bloque de la tarea predecesora con el inicio del bloque de la tarea dependiente. Las dependencias final-final se representan alineando los finales de los bloques de las tareas predecesora y dependiente. Las dependencias inicio-inicio se representan alineando los inicios de los bloques de las tareas predecesora y dependiente. Los retardos se representan desplazando la tarea dependiente hacia la derecha en el caso de retardos positivos y hacia la izquierda en el caso de retardos negativos.

87

Ingeniera del Software


El diagrama de Gantt es un diagrama representativo, que permite visualizar fcilmente la distribucin temporal del proyecto, pero es poco adecuado para la realizacin de clculos.

ACTIVIDADES COMPLEMENTARIAS 1. Investigue sobre TFEA (Facilitated application specification techniques). Puede consultar en: http://www.rspa.com/checklists/risk.html 2. Investigue y profundice sobre el tema: Estimacin del proyecto software. Elabore un ensayo. 3. Un tema de gran importancia en el cual se puede profundizar es: Lgica difusa (http://delta.cs.cinvestav.mx/~gmorales/ldifll/ldifll.html) Constructive Cost Model (http://www1.jsc.nasa.gov/bu2/COCOMO.html) 4. Describa la diferencia entre riesgos conocidos y riesgos predecibles 5. Usted es el jefe de proyectos de una compaa de software. Se le ha pedido que dirija a un equipo que est desarrollando un software de un procesador de textos. Construya una tabla de riesgo para el proyecto. 6. Asuma que ha sido contratado por una Universidad para desarrollar un sistema de inscripcin a cursos para un determinado programa. Defina un listado de tareas. Utilice las diferentes tcnicas descritas en el numeral 4.6.2 para establecer una planificacin temporal del proyecto.

88

Ingeniera del Software

BIBLIOGRAFIA
IMPRESA BRAUDE. Ingeniera de software, una perspectiva orientada a objetos. Mxico. 2003. Alfaomega grupo editor. S.A. GRUEGGE, BERND y DUTOIT, Allen H. Ingeniera de software orientado a objetos. Mxico. 2002. Pearson Educacin. HUMPHREY, Watts S. Introduccin al proceso de software personal. Pearson Addison wesley. 2001. MEYER, Bertrand. Construccin de software orientado a objetos. Segunda edicin. Madrid. 1999. Prentice Hall. NORRIS. Ingeniera de software explicada. Grupo Noriega editores de Colombia. PIATTINI, Mario. VILLALBA, Jose y otros. Mantenimiento del software: modelos, tcnicas y mtodos para la gestin del cambio. Editorial Alfaomega-Rama. PRESSMAN, Roger S. Ingeniera del Software. Un enfoque prctico. Quinta edicin. Espaa. 2002. Editorial McGraw Hill. PFLEEGER, Shari Lawrence. Ingeniera de software, teora y prctica. 1. Edicin. Buenos Aires. Pearson educacin. 2002 SOMMERVILLE, Ian. Ingeniera de software. 6. Edicin. Pearson Addison Wesley. 2001 ELECTRNICA
http://www.cis.ohio-state.edu/hypertext/faq/usenet/proj-planfaq/faq.html http://www.rspa.com http://www.pmi.org http://www.4pm.com http://www.projectmanagement.com www.minas.unalmed.edu.co/facultad/publicaciones/dyna/143/ALINEACI%D3N%20ENTRE %20METAS.pdf http://www.calidad.org/s/causa.pdf http://www.salud.gob.mx/unidades/dgces/gestion/page/05.html
http://www.minas.unalmed.edu.co/facultad/publicaciones/dyna/143/ALINEACI%D3N%20ENTRE %20METAS.pdf

www.ifpug.org sunset.usc.edu/COCOMOII/cocomo.html www.qsm.com www.spr.com

89

Ingeniera del Software

UNIDAD 3.
CONTROL DE CALIDAD DEL SOFTWARE
INTRODUCCIN
La garanta de calidad del software es una actividad de proteccin que se aplica a cada paso del proceso de software y que comprende: procedimientos, mtodos y herramientas, revisiones tcnicas formales, tcnicas y estrategias de prueba, procedimientos de garanta de ajustes y mecanismos de medida e informacin.

OBJETIVOS
GENERALES Estudiar las tcnicas de gestin de calidad del software. Determinar las tcnicas de prueba de software con el propsito de encontrar y corregir errores antes de entregar el programa al cliente. Definir las estrategias de prueba del software Determinar y analizar las mtricas tcnicas del software Determinar y aprender los beneficios de la reutilizacin del software. ESPECIFICOS Determinar qu es la calidad del software Identificar los aspectos de gestin y las actividades especficas del proceso de calidad del software. Establecer la importancia de la garant de calidad del software as como definir las estrategias para los planes de garanta de calidad del software. Definir los fundamentos de las pruebas del software. Determinar que son las pruebas de caja negra, blanca, de camino bsico y de estructura de control. Identificar las pruebas de unidad, integracin, validacin y del sistema. Identificar las mtricas del modelo de anlisis, del modelo de diseo, del cdigo fuente, para pruebas y del mantenimiento. Definir los fundamentos de la reutilizacin del software. Determinar las dificultades para la reutilizacin 90

Ingeniera del Software


Determinar algunas sugerencias para establecer un enfoque de la reutilizacin.

1. GARANTIA DE CALIDAD DEL SOFTWARE La garanta de calidad del software (SQA, Software Quality Assurance GCS, Gestin de calidad del software) es una actividad de proteccin que se aplica a lo largo de todo el proceso del software. Antes del siglo veinte, la garanta de calidad era responsabilidad nica de la persona que construa el producto. La primera funcin de control y de garanta de calidad formal fue introducida por los laboratorios Bell en 1916 y se extendi rpidamente por todo el mundo de las manufacturas. Hoy en da, cada compaa tiene un mecanismo que asegura la calidad de sus productos de hecho, durante la pasada dcada, se han usado ampliamente como tcticas de mercado la declaracin explcita de mensajes que ponan de manifiesto la calidad ofrecida por las compaas.
2

La historia de la garanta de calidad en el desarrollo de software ha sido paralela a la historia en la fabricacin de hardware. Durante los primeros aos de informacin (los 50 y los 60), la calidad era responsabilidad nicamente del programador. Durante los aos 70 se introdujeron estndares de garanta de calidad para el software en los contratos militares de desarrollo de software y sean extendido rpidamente en los desarrollos de software del mundo comercial. La SQA forma parte de una funcin ms amplia de garanta de calidad y engloba las siguientes actividades: 1. Un enfoque de gestin de calidad. 2. Mtodos y herramientas 3. Revisiones tcnicas formales 4. Documentacin La calidad del software es importante porque:

http://www.pcm.gob.pe/portal_ongei/publicaciones/cultura/Lib5042/cap20.htm

91

Ingeniera del Software


Se reduce la repeticin de actividades o tareas. Supone costos ms bajos de desarrollo. Se mejora el proceso del software y por ende el producto. 1.1 Conceptos de calidad 1. Calidad Segn ISO 9000: la calidad es el conjunto de caractersticas de una entidad que le confieren su aptitud para satisfacer las necesidades expresadas y las implcitas. Segn Roger Preesman: Calidad se define como una caracterstica o atributo de algo. Otras definiciones plantean: Es la medida en que las propiedades de un bien o servicio cumplen con los requisitos establecidos en la norma o especificaciones tcnicas, as como con las exigencias del usuario de dicho bien o servicio en cuanto a su funcionalidad, durabilidad y costo. Aquellas caractersticas del producto que responden a las necesidades del cliente. El significado histrico de la palabra calidad es el de aptitud o adecuacin al uso. Se dice que un producto o servicio es de calidad cuando satisface las necesidades y expectativas del cliente o usuario, en funcin de parmetros como: o Seguridad que el producto o servicio confieren al cliente. o Fiabilidad o capacidad que tiene el producto o servicio para cumplir las funciones especificadas, sin fallo y por un perodo determinado de tiempo. o Servicio o medida en que el fabricante y distribuidor responden en caso de fallo del producto o servicio. La Sociedad Americana para el Control de Calidad (A.S.Q.C.), define la calidad como el conjunto de caractersticas de un producto, proceso o servicio que le confieren su aptitud para satisfacer las necesidades del usuario o cliente.
Tipos de calidad

De Diseo Son las caractersticas que se especifican para un elemento. Comprende: Requisitos Especificaciones Diseo del sistema

92

De Concordancia Es el grado de cumplimiento de las especificaciones de diseo. Centrado en: La implementacin Debe ser: Alta

Ingeniera del Software

93

Ingeniera del Software


2. Control de Calidad A nivel general, se pueden tener las siguientes definiciones: El control de calidad comprende aquellas actividades realizadas en una empresa u organizacin para aplicar los principios de calidad en las actividades realizadas en la empresa. Es la actividad mediante la cual una empresa determina si el producto que elabora o el servicio que presta cumple o no, con las especificaciones contenidas en la Norma de calidad especfica para tal producto o servicio. El control de calidad se ocupa de garantizar el logro de los objetivos de calidad del trabajo respecto a la realizacin del nivel de calidad previsto Control de Calidad es el conjunto de inspecciones, revisiones y pruebas utilizadas a lo largo del proceso del software para asegurar que cada producto cumple con los requisitos que le han sido asignados. para la produccin y sobre la reduccin de los costos de la calidad. Segn ISO: Conjunto de tcnicas y actividades de carcter operativo, utilizadas para verificar los requerimientos relativos a la calidad del producto o servicio. En Ingeniera de Software, En el control de calidad: 1. Se deben definir todos los productos y las especificaciones mensurables en las que se puedan comparar los resultados de cada proceso. 2. Las actividades pueden ser automticas, manuales o combinadas. 3. Existe un feedback (realimentacin) 3. Garanta de Calidad A nivel General: La garanta de la calidad o aseguramiento de calidad comprende todas aquellas actividades de una empresa u organismo para conseguir y demostrar la calidad en sta. Estas actividades se dividen en tres apartados: o Evaluacin de la calidad o Control de calidad o Correcciones internas

94

Ingeniera del Software


Segn ISO:

Conjunto de acciones planificadas y sistemticas necesarias para proporcionar la confianza adecuada de que un producto o servicio satisfar los requerimientos dados sobre calidad. En Ingeniera de Software, Segn Roger S. Pressman: Consiste en la auditoria y las funciones de informacin de la gestin. El objetivo es proporcionar la gestin para 4. Coste de informar de Calidad los datos necesarios sobre la calidad del producto, por lo Son todos costos acarreados laprofunda bsqueda de la calidad o en las que se va los adquiriendo una visin en ms y segura de que la actividades con la obtencin la calidad. calidad delrelacionadas producto est cumpliendo susde objetivos. Se dividen en: Costes de prevencin: Costes de evaluacin: Planificacin de la calidad Inspeccin en el proceso y entre procesos Revisiones tcnicas Calibrado y mantenimiento del formales equipo Equipo de pruebas Pruebas Formacin Costes de fallos internos Costes de fallos externos Retrabajo (revisin) Resolucin de quejas Reparacin Devolucin y sustitucin productos Anlisis de la modalidades Soporte de lnea de ayuda de fallos Trabajo de garanta

de

95

Ingeniera del Software


1.2 La tendencia de la calidad Se ha desarrollado una tendencia hacia la Gestin Total de Calidad (GTC), el cual comprende los siguientes cuatro pasos:
1

Kaizen Se refiere a un sistema de mejora continua en el proceso. El objetivo es desarrollar un proceso que sea visible, repetible y mensurable.
El objetivo de la actitud Kaizen es el mejoramiento continuo en base a pequeos y constantes cambios, mediante la eliminacin, reduccin o cambio de las cosas, sistemas, medidas, etc.; que impiden un adecuado desempeo de las actividades. En el marco empresarial, se traduce a que todos los miembros de una organizacin estn comprometidos con la revisin constante de los procesos y la mejora permanente. KAISEN est basado en las cinco S SEIRE Organizacin: Cada cosa en su lugar y un lugar para cada cosa. SEITON Reducir bsquedas: Facilitar el movimiento de las cosas, servicios y personas SEISO Limpieza: Cuando todo est limpio, todo est ordenado y se simplifican los procedimientos. SEIKETSU Estandarizacin y simplificacin de procesos: Mantener el orden, organizacin y Atarimae (Calidad Funcional) limpieza en hinshitsu el ambiente y las personas.

Examina lo intangible que afecta al proceso y trabaja para optimizar SHITSUKE Kansei su impacto en el proceso. Disciplina buenos hbitosdel de trabajo: Basados en el respeto a las reglas y a el las Se centrayen el usuario producto. Examinando la forma en que personas (compaeros de trabajo y clientes) usuario aplica el producto, conduce a la o mejora Calidad Funcional: es la calidad quekansei ya se le asigna al producto servicio en el mismo, si son autos... depende de la marca del auto para producto mismo y potencialmente al proceso queasignarle lo creo.
inconscientemente una calidad. Kansei es un trmino japons donde la slaba kan significa sensitividad y sei significa sensibilidad. Se usa para expresar la cualidad de un objeto de despertar placer en su uso. As, hay objetos con mucho kansei y otros con absolutamente ninguno. Cada vez ms, se est expresando la necesidad de tener en cuenta los aspectos subjetivos (emocin, afecto, percepciones, sensaciones...) en la experiencia de uso, yendo ms all del puro diseo visual. Las necesidades bsicas que permitirn definir la estructura general del planteamiento Kansei son como sigue (Nagamachi, 1995): 3 Obtener y cuantificar la respuesta del usuario en trminos kansei (valoracin psicosociolgica). Identificar las caractersticas de diseo de un producto desde la percepcin del usuario. 96 Implementar la herramienta a partir de los datos anteriores. Ajustar el diseo del producto a los cambios sociales y a los que se producen en las preferencias de los usuarios con el paso del tiempo.

Ingeniera del Software

Miryoku Teki hinshitsu Orientado a la gestin que busca la oportunidad en reas relacionadas que se pueden identificar observando la utilizacin del producto en el mercado.
Calidad Emocional: es lo que te hace sentir el usar tal o cual producto o servicio.... no te sientes igual al conducir un Toyota que un mercedes Benz o que un auto volvo....

97

Ingeniera del Software


1.3 Garanta y aseguramiento de la calidad del software La calidad del software se define como: La calidad del software es el grado con el que un sistema, componente o proceso cumple los requerimientos especificados y las necesidades o expectativas del cliente o usuario. (IEEE, Std. 610-1990). 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 (Pressman, 2002)

La garanta de calidad del software (SQA), comprende un conjunto de tareas y acciones sistemticas y planificadas que permiten asegurar la calidad del software. A este conjunto de tareas y acciones se le denomina Actividades de SQA y comprende: Actividad Plan SQA para proyecto Caractersticas el El plan debe involucrar: Evaluaciones, Auditorias, revisiones, estndares que se pueden aplicar al proyecto. Procedimientos para informacin, seguimiento de errores y realimentacin. El grupo SQA debe adems documentar la informacin necesaria.

Actividad Caractersticas Proceso de software del Se determina el proceso y se realiza la revisin de proyecto la descripcin del proceso para poder establecer los ajustes de acuerdo a las polticas de la organizacin. Ajustes al proceso del El grupo SQA se encarga de revisar, documentar y software verificar que se han hecho los ajustes al proceso. Auditoria de los El grupo SQA esta en constante revisin del productos de software proceso software e informa peridicamente los resultados al gestor del proyecto. 98

Ingeniera del Software


Documentacin productos software de Se debe documentar todas las desviaciones encontradas a nivel: De procesos De estndares y Tcnicos Registro de ajustes a Se realiza seguimiento a los requisitos que no se requisitos e informes ajustan y se elaboran los informes respectivos. El grupo SQA, adems de tener a cargo el plan SQA, tambin debe coordinar, control y gestionar los cambios, recopilar y analizar las mtricas del software. 1.4 Revisiones del software Las revisiones del software, son el conjunto de actividades que suceden como resultado del anlisis, el diseo y la codificacin y que sirven para depurar las actividades de ingeniera del software Una revisin, tiene como objetivos: Sealar la necesidad de mejoras en el producto Continuar las partes de un producto en las que no es necesaria o no es deseable una mejora Conseguir un trabajo tcnico de una calidad ms uniforme, o al menos ms predecible, que la que puede ser conseguida sin revisiones, con el fin de hacer ms manejable el trabajo tcnico.

Las revisiones de software se usan como modelo para la amplificacin de defectos y para ilustrar la generacin y deteccin de errores durante los pasos de diseo preliminar, diseo detallado y codificacin del proceso de ingeniera del software.
Paso de desarrollo Defectos Errores de pasos anteriores Errores que pasan inadvertidos Errores amplificados 1:x Nuevos errores Deteccin Errores pasados al Porcentaje de eficiencia de siguiente la deteccin de errores paso

99

Ingeniera del Software


En cada paso del proceso de desarrollo de software, se presentan errores que pasan inadvertidos y que producen un mayor nmero de errores si las revisiones no lo detectan. Los errores amplificados corresponden, a aquellos errores que pasan inadvertidos desde pasos anteriores. De igual forma se representa el porcentaje de eficiencia de la deteccin de errores. Revisiones tcnicas formales Una revisin tcnica formal (RTF) es un medio efectivo para mejorar la calidad del software. Los objetivos de la RTF son:

Descubrir errores en la funcin, la lgica o la implementacin de cualquier representacin del software Verificar que el software bajo revisin alcanza sus requisitos Garantizar que el software ha sido representado de acuerdo con ciertos estndares predefinidos Conseguir un software desarrollado de forma uniforme Hacer que los proyectos sean manejables

La RTF incluye: Recorridos Inspecciones Revisiones cclicas Evaluaciones tcnicas del software

Cada RTF debe estar debidamente planificada, controlada y atendida por el grupo encargado de cada RTF. Cada reunin debe tener las siguientes caractersticas: Deben convocarse para la revisin entre tres y cinco personas Se debe preparar por adelantado, La duracin de la reunin de revisin, debe ser menor de dos horas 100

Ingeniera del Software


Quienes participan en la reunin? El jefe de revisin: quien lidera la reunin Los revisores: uno de los cuales se encarga de registrar todos los sucesos de la reunin. El productor

Registro e informe de la revisin Como se menciono anteriormente, uno de los revisores es el encargado de registrar todos los acontecimientos y conclusiones que van surgiendo durante la RTF. Al final de la reunin, hace un resumen de las conclusiones y genera una lista de sucesos de revisin. Adems, prepara un informe sumario de la revisin tcnica formal que responda a las siguientes preguntas: Que fue revisado? Quin lo revis? Qu se descubri conclusiones?

cules

son

las

La lista de sucesos de revisin que se genera permite: Identificar reas problemticas dentro del producto Servir como lista de comprobacin para hacer las correcciones.

Adems se adjunta, la lista de conclusiones al informe sumario.

Directrices para la revisin


1. Revisar el producto, Se deben sealar los errores de forma constructiva y no al productor no dificultar el proceso de revisin. Es importante mantener el control de la reunin y descartar situaciones que se escapen de control. 2. Fijar una agenda y Se debe tener un plan de trabajo antes de la mantenerla reunin. Se debe seguir el orden del plan para que

101

Ingeniera del Software


la reunin tenga xito y cumplir con los tiempos asignados al plan. 3. Limitar el debate y No se debe perder tiempo debatiendo situaciones las impugnaciones que no presenten unanimidad, es importante registrar el hecho y dedicar otros tiempos para su debate. 4. Enunciar reas La resolucin de problemas se debe programar para problemas pero no otros espacios despus de la reunin de revisin. intentar resolver los problemas que se pongan de manifiesto. 5. Tomar notas escritas Es buena idea utilizar diferentes herramientas para la toma de notas, por ejemplo, pizarras, tableros, computador, para que se pueda hacer seguimiento a la asignacin de prioridades. 6. Limitar el nmero de Se debe limitar el nmero de revisores, los cuales participantes e insistir deben estar preparados para cada reunin y en la preparacin participar activamente en el proceso de revisin. anticipada 7. Desarrollar una lista Se deben desarrollar listas de comprobacin para los de comprobacin para documentos de anlisis, diseo, codificacin y cada producto que haya pruebas. de ser revisado. 8. Disponer recursos y Cada RTF debe estar planificada e involucrar una agenda para las modificaciones. RTF 9. Capacitacin y Todas las personas que participen en el proceso de entrenamiento de los revisin deben recibir un entrenamiento que se debe revisores basar en: El proceso Psicologa humana 10. Revisar las Son beneficiosas porque permiten descubrir revisiones anteriores problemas del proceso de revisin.

102

Ingeniera del Software


1.5 Garanta de calidad estadstica La garanta de calidad estadstica, permite establecer la calidad ms cuantitativamente. Para el software, comprende los siguientes pasos:
1. Agrupar y clasificar la informacin sobre los defectos del software. 2. Encontrar la causa de cada defecto 3. Mediante el principio de Pareto (el 80 por 100 de los defectos se pueden encontrar en el 20 por 100 de todas las posibles causas), se asla el 20 por 100 (los pocos vitales).
El nombre de Pareto fue dado por el Dr. Joseph Juran en honor del economista italiano Vilfredo Pareto (1848-1923) quien realizo un estudio sobre la distribucin de la riqueza, en el cual descubri que la minora de la poblacin posea la mayor parte de la riqueza y la mayora de la poblacin posea la menor parte de la riqueza. Con esto estableci la llamada "Ley de Pareto". Tambin se conoce como la regla 80/20. Segn este concepto, si se tiene un problema con muchas causas, podemos decir que el 20% de las causas resuelven el 80% del problema y el 80% de las causas solo resuelven el 20% del problema. Por lo tanto, el Anlisis de Pareto es una tcnica que separa los pocos vitales de los muchos triviales.
Para ampliar y profundizar en esta ley, puede http://www.gestiopolis.com/recursos/documentos/fulldocs/eco/diagramapareto.htm consultar:

4. Una vez que se han identificado los defectos vitales, se acta para corregir los problemas que han producido los defectos.

El siguiente es un ejemplo de aplicacin: Los siguientes son los defectos mas frecuentes que se han encontrado en procesos de desarrollo de software:
Especificacin incompleta o errnea Mala interpretacin de la comunicacin del cliente Desviacin deliberada de la especificacin Incumplimiento de los estndares de programacin Error en la representacin de los datos Interfaz de mdulo inconsistente Error en la lgica de diseo Prueba incompleta o errnea Documentacin imprecisa o incompleta Error en la traduccin del diseo al lenguaje de programacin Interfaz hombre-maquina ambigua o inconsistente Varios

103

Ingeniera del Software


Posteriormente, un inspector revisa y registra los defectos de acuerdo con dichos tipos. Despus de inspeccionar 942 errores, se obtuvo una tabla como la siguiente:

Error
Especificacin incompleta o errnea Mala interpretacin de la comunicacin del cliente Desviacin deliberada de la especificacin Incumplimiento de los estndares de programacin Error en la representacin de los datos Interfaz de mdulo inconsistente Error en la lgica de diseo Prueba incompleta o errnea Documentacin imprecisa o incompleta Error en la traduccin del diseo al lenguaje de programacin Interfaz hombre-maquina ambigua o inconsistente Varios Total

Frecuencia (No.)
205 156 48 25 130 58 45 95 36 60 28 56 942

El siguiente paso es utilizar la frecuencia porcentual es decir, el porcentaje de errores en cada tipo de defecto: Error Especificacin incompleta o errnea Mala interpretacin de la comunicacin del cliente Desviacin deliberada de la especificacin Incumplimiento de los estndares de programacin Error en la representacin de los datos Interfaz de mdulo inconsistente Error en la lgica de diseo Prueba incompleta o errnea Documentacin imprecisa o incompleta Error en la traduccin del diseo al lenguaje de programacin Interfaz hombre-maquina ambigua o inconsistente Varios Total Frecuencia (No.) 205 156 48 25 130 58 45 95 36 60 28 56 942 Frec. % 22% 17% 5% 3% 14% 6% 5% 10% 4% 6% 3% 6% 100%

El objetivo es determinar cules son los defectos que aparecen con mayor frecuencia. Para esto se ordenan los datos de la tabla en orden decreciente de frecuencia:

104

Ingeniera del Software


Error Frecuenci a (No.) Frec. %

105

Ingeniera del Software


Especificacin incompleta o errnea Mala interpretacin de la comunicacin del cliente Error en la representacin de los datos Prueba incompleta o errnea Interfaz de mdulo inconsistente Error en la traduccin del diseo al lenguaje de programacin Desviacin deliberada de la especificacin Error en la lgica de diseo Documentacin imprecisa o incompleta Incumplimiento de los estndares de programacin Interfaz hombre-maquina ambigua o inconsistente Varios Total 205 156 130 95 58 60 48 45 36 25 28 56 942 22% 17% 14% 10% 6% 6% 5% 5% 4% 3% 3% 6% 100%

De esta forma, resulta evidente cuales son los tipos de defectos ms frecuentes. Podemos observar que los 4 primeros tipos de defectos representan ms del 60%. Por el Principio de Pareto, se puede concluir que: La mayor parte de los defectos encontrados pertenece slo a 4 tipos de defectos, de manera que si se eliminan las causas que los provocan desaparecera la mayor parte de los defectos.

Fiabilidad del software La fiabilidad del software es la probabilidad de que en un tiempo y entorno determinado el software en operacin este libre de fallos. Los fallos del software, se producen por problemas de diseo o de implementacin. La medida de fiabilidad del software est dada por: El tiempo medio entre fallos (TMEF), TMEF = TMDF + TMDR

Donde: 106

Ingeniera del Software


TMDF TMDR Tiempo medio de fallo Tiempo medio de reparacin

La disponibilidad del software Es la probabilidad de que un programa funcione de acuerdo con los requisitos en un momento dado. Se define como: Disponibilidad = TMDF (100%) TMDF+TMDR

Estos datos pueden ser medidos o estimados mediante datos histricos o de desarrollo. El estndar de calidad ISO 9001 La Organizacin Internacional para la Estandarizacin (ISO) es una federacin mundial de cuerpos de normas nacionales de aproximadamente 140 pases. ISO es una organizacin establecida en 1947, cuya misin es promover el desarrollo de la estandarizacin y de las actividades relacionadas en el mundo, con la idea de que facilita el cambio internacional de bienes y servicios, y la cooperacin que se desarrolla en las esferas de la actividad intelectual, la actividad cientfica, tecnolgica y econmica. La serie ISO 9000 es un conjunto de normas orientadas a ordenar la gestin de la empresa que han ganado reconocimiento y aceptacin internacional debido al mayor poder que tienen los consumidores y a la alta competencia internacional acentuada por los procesos integracionistas. Algunas de estas normas especifican requisitos para sistemas de calidad (ISO 9001, 9002, 9003) y otras dan una gua para ayudar en la interpretacin e implementacin del sistema de calidad (ISO 9000-2, ISO 9004-1)

107

Ingeniera del Software


Para la industria del software los estndares relevantes son: ISO 9001. Quality Systems- Model for Quality Assurance in desing, development, production, installation and servicing. Este es un estndar que describe el sistema de calidad utilizado para mantener el desarrollo de un producto que implique diseo.
La norma ISO 9001, son un conjunto de reglas de carcter social y organizativo para mejorar y potenciar las relaciones entre los miembros de una organizacin. Cuyo ltimo resultado, es mejorar las capacidades y rendimiento de la organizacin, y conseguir un aumento por este procedimiento de la calidad final del producto. Los 8 Principios bsicos de la gestin de la calidad o excelencia son: 1. 2. Organizacin enfocada a los clientes Las organizaciones dependen de sus clientes y por lo tanto comprender sus necesidades presentes y futuras, cumplir con sus requisitos y esforzarse en exceder sus expectativas. Liderazgo Los lideres establecen la unidad de propsito y direccin de la organizacin. Ellos deben crear y mantener un ambiente interno, en el cual el personal pueda llegar a involucrarse totalmente para lograr los objetivos de la organizacin. Compromiso de todo el personal El personal, con independencia del nivel de al organizacin en el que se encuentre, es la esencia de la organizacin y su total implicacin posibilita que sus capacidades sean usadas para el beneficio de la organizacin. Enfoque a procesos Los resultados deseados se alcanzan ms eficientemente cuando los recursos y las actividades relacionadas se gestionan como un proceso. Enfoque del sistema hacia la gestin Identificar, entender y gestionar un sistema de procesos interrelacionados para un objeto dado, mejora la eficiencia y la eficiencia de una organizacin. La mejora continua La mejora continua debera ser el objetivo permanente de la organizacin. Enfoque objetivo hacia la toma de decisiones Las decisiones efectivas se basan en el anlisis de datos y en la informacin. Relaciones mutuamente beneficiosas con los proveedores Una organizacin y sus proveedores son independientes y una relacin mutuamente benfica intensifica la capacidad de ambos para crear valor y riqueza.

3.

4. 5. 6. 7. 8.

108

Ingeniera del Software


ISO 9004-2. Quality Management and Quality System Elements Part 2. ISO . Guidelines for Application of ISO 9001 the Development, Este 9000-3 documento proporciona las directrices para el to servicio de facilidades Supply and Maintainance of Software. Este es un documento especfico del software como soporte de usuarios. que interpreta el ISO 9001 para el desarrollador de software.
La Ttulo: norma Normas para "Gestin de calidad y elementos del de sistema de calidad. Parte 2: Directrices de gestin de la calidad y garanta la calidad para servicios" constituye una de las normas ISO la serie ISO 9000 relacionadas con la gestin y Parte 3: Orientaciones para la aplicacin de de la Norma 9001 al desarrollo, suministro y el aseguramiento de la calidad en diferentes tipos de organizaciones. mantenimiento del software Norma internacional La Naturaleza: satisfaccin de las expectativas de los clientes, as como el logro y el mantenimiento de la mbito calidad deseada por los mismos, son metas deseables para cualquier organizacin. Sin Desarrollo detienen Sistemas de Informacin. embargo, estos aspectos un inters social ms claro cuando la organizacin se dedica a la prestacin de servicios. Procesos del ciclo de vida. Calidad del software. Estructura Campo de aplicacin y alcance: Esta parte de la ISO 9000 contiene orientaciones que Caractersticas de los servicios facilitan la aplicacin de la Norma 9001 a las dedicadas al desarrollo, Caractersticas del servicio y de ISO la prestacin del organizaciones servicio suministro y mantenimiento del software. Se y pretende con ella del darservicio orientaciones en relacin Control de las caractersticas del servicio de la prestacin con situaciones en las de que un contrato entre dos partes exija la demostracin de la capacidad Principios del sistema calidad de determinado proveedor para desarrollar, suministrar y mantener productos de software. Aspectos clave de un sistema de calidad Tales orientaciones describen las clases de control y los mtodos sugeridos para la produccin Responsabilidad gerencial del software, que satisfagan los requisitos establecidos. Personal y recursos materiales Estructura del sistema de calidad Estructura Interfase con los clientes Sistema de la calidad estructura. Elementos operaciones sistema de calidad Responsabilidad de ladel gestin. Proceso de comercializacin Sistema de la calidad. Procesointernas de diseo Auditorias al sistema de la calidad. Proceso de prestacin del servicio Acciones correctivas. Anlisis mejoramiento del comportamiento servicio Sistema dey la calidad - actividades a lo largo del del ciclo de vida. General. Anlisis del contrato Especificacin de los requisitos del comprador Planificacin del desarrollo Planificacin de la calidad Proyecto e implementacin Pruebas y validaciones Aceptacin Reproduccin, entrega e instalacin Mantenimiento Sistema de la calidad - actividades de apoyo (independientes de cualquier fase) Gestin de la configuracin Control de documentos Registros de la calidad Medicin Reglas, prcticas y convenciones Herramientas y tcnicas Aprovisionamiento Productos de software incluidos

109

Ingeniera del Software

ACTIVIDADES COMPLEMENTARIAS 110

Ingeniera del Software


1. Investigue y elabore un ensayo argumentativo sobre la evolucin histrica de la Calidad. Puede consultar las siguientes direcciones web: www2.san.gva.es/hguv/descargas/ quiosco/Calidad_generalidades.pdf http://www.monografias.com/trabajos11/conge/conge.shtml 2. Es posible evaluar la calidad del software si el cliente no se pone de acuerdo sobre lo que se supone que ha de hacer? Justifique su respuesta y argumente. 3. La calidad y la fiabilidad son conceptos relacionados pero son fundamentalmente diferentes en varias formas. Elabore un cuadro de diferencias. 4. Si se le da la responsabilidad de mejorar la calidad del software en su organizacin. Qu es lo primero que hara? Qu sera lo siguiente? 5. Una reunin de revisin tcnica formal slo es efectiva si todo el mundo se prepara por adelantado. Cmo descubrira que uno de los participantes no se preparado? Qu hara si fuera el jefe de divisin? 6. Investigue y ample la informacin de ISO 9000-3. Elabore un ensayo. Utilice mapas conceptuales.

111

Ingeniera del Software


2. TCNICAS DE PRUEBA DEL SOFTWARE Las pruebas del software comprenden el examen o exploracin final de las especificaciones del diseo y de la codificacin. Las pruebas del software son un conjunto de evaluaciones cuyo fin es identificar y descubrir un error. Las tcnicas de pruebas del software permiten disear pruebas que: 1. Comprueben la lgica interna de los componentes software 2. Verifiquen los dominios de entrada y salida del programa para descubrir errores en la funcionalidad, el comportamiento y rendimiento. El encargado de realizar las pruebas es el Ingeniero de software con ayuda de especialistas en pruebas. El software debe aprobarse desde dos perspectivas:
1 2

La lgica interna del programa. Utilizando pruebas de "caja blanca" Los requisitos del software. Utilizando pruebas de caja negra

2.1 Fundamentos de la prueba del software Las pruebas de software tienen los siguientes objetivos:

Las tienen

Descubrir un error Mostrar un error no descubierto hasta ese momento Descubrir un error no detectado hasta ese momento

pruebas los siguientes principios:

112

Ingeniera del Software


Las pruebas deben tener un seguimiento hasta los requisitos del cliente. Las pruebas deben planificarse antes de que empiecen. Es aplicable el principio de Pareto a la prueba del software. No es posible las pruebas exhaustivas Las pruebas deben ser realizadas por un equipo independiente

Un software debe ser fcil de probar, para lo cual se puede tener en cuenta las siguientes caractersticas que propone Pressman:
Caracterstica Operatividad Observacin Cunto mejor funcione, ms eficientemente se puede probar El sistema tiene pocos errores Ningn error bloquea la ejecucin de las pruebas El producto evoluciona en fases funcionales Observabilida Lo que se ve es lo que se prueba d Se genera una salida distinta para cada entrada Todos los factores que afectan a los resultados estn visibles Un resultado incorrecto se identifica fcilmente Los errores internos se detectan automticamente Se informa automticamente de los errores internos El cdigo fuente es accesible. Controlabilida Cunto mejor se pueda controlar el software, ms se puede d automatizar y optimizar Todo el cdigo es ejecutable a travs de alguna combinacin de entrada El ingeniero de pruebas puede controlar los estados y las variables del hardware y software Los formatos de las entradas y los resultados son consistentes y estructurados Capacidad de Controlando el mbito de las pruebas, podemos aislar ms descomposici rpidamente los problemas y llevar a cabo pruebas de n regresin El software esta construido con mdulos independientes Los mdulos de software se pueden probar independientemente. Simplicidad Cunto menos haya que probar, ms rpidamente se puede probar Simplicidad funcional Simplicidad estructural

113

Ingeniera del Software


Simplicidad del cdigo

Caracterstica Estabilidad

Observacin Cuanto menos cambios, menos interrupciones a las pruebas Los cambios del software son infrecuentes Los cambios del software estn controlados Los cambios del software no invalidan las pruebas existentes El software se recupera bien de los fallos Facilidad de Cuanta ms informacin se tenga, ms inteligentes eran las comprensin pruebas El diseo se ha entendido perfectamente Las dependencias entre los componentes internos, externos y compartidos se han entendido perfectamente Se han comunicado los cambios del diseo La documentacin tcnica es accesible

2.2 Diseo de casos de prueba El diseo de casos de prueba, tiene un nico objetivo: tener la mayor probabilidad de encontrar el mayor nmero de errores con la mnima cantidad de esfuerzo y tiempo posible. Cualquier producto software puede aprobarse de una las siguientes formas: 1. Conociendo la funcin para la que fue diseado el producto. Se pueden utilizar pruebas para: comprobar su funcin operativa y buscar errores de cada funcin. 2. Conociendo el funcionamiento del producto. Se pueden utilizar pruebas para: comprobar que las operaciones esta de acuerdo con las especificaciones y para comprobar que los componentes internos funcionan de forma adecuada.
Pruebas

114
Caja blanca Camino Bsico De estructuras de control Caja Negra De entornos especializados

Ingeniera del Software

115

Ingeniera del Software


Prueba de caja blanca Esta prueba se centra en la estructura interna del programa. En este caso la prueba consiste en probar todos los posibles caminos de ejecucin a travs de las instrucciones del cdigo, que puedan trazarse.

Entrada

Salida

Mediante est prueba, el ingeniero del software puede: 1. Garantizar que se recorre por lo menos una vez todos los caminos independientes de cada mdulo. 2. Recorrer todas las decisiones lgicas en sus condiciones verdadera y falsa. 3. Recorrer todos los bucles en sus lmites y con sus lmites operacionales. 4. Recorrer las estructuras internas de datos para asegurar su validez Prueba del camino bsico Esta prueba permite obtener una medida de la complejidad de la lgica de un diseo procedimental y usar sa medida como gua para la definicin de un conjunto bsico de camino de ejecucin. Esta prueba permite que se ejecute por lo menos una vez cada sentencia del programa. Complejidad ciclomtica Es una mtrica que proporciona una medicin cuantitativa de la complejidad lgica de un programa. La complejidad ciclomtica est basada en la teora de grafos por lo que es importante recordar:

116

Ingeniera del Software


1 Aristas
6 7 2, 3 R2 4, 5 R1

Nodos

Region

R3 9

1 0 1 1

La complejidad ciclomtica se calcula de las siguientes formas: 1. El nmero de regiones del grafo de flujo coincide con la complejidad ciclomtica 2. La complejidad ciclomtica, V(G) de un grafo de flujo G se define como: V(G) = A N + 2 Donde: A N Es el nmero de aristas del grafo de flujo Es el nmero de nodos del grafo de flujo

3. La complejidad ciclomtica, V(G), de un grafo de flujo G tambin se define: V(G) = P + 1 Donde: P Es el nmero de nodos predicado contenidos en el grafo de flujo G

Un nodo predicado: es cada nodo que contiene una condicin.


Nodo predicado 2, 3 6 7 8 4, 5

Entonces, V(G) = 11 aristas - - 9 nodos + 2 = 4 o, V(G)= 3 nodos predicado + 1 = 4

117

Ingeniera del Software


2.3 Prueba de la estructura de control Comprende las siguientes pruebas: 1. Prueba de condicin Se centra en la prueba de cada una de las condiciones del programa y tiene como propsito detectar los errores en las condiciones de un programa y los errores del programa. 2. Prueba del flujo de datos Se centra en la seleccin de caminos de prueba de un programa de acuerdo con la ubicacin de las definiciones y los usos de las variables del programa. Esta prueba es til para seleccionar caminos de prueba de un programa que contenga sentencias if o bucles anidados. 3. Prueba de bucles Se centra en la validez de las construcciones de bucles. Se definen los siguientes tipos de bucles: Bucles Simples Se debe aplicar: Pasar por alto totalmente el bucle Pasar una sola vez por el bucle Pasar dos veces por el bucle Hacer m pasos por el bucle con m < n Hacer n-1, n y n+1 pasos por el bucle Donde n, es el nmero mximo de pasos permitidos por el bucle. Bucles Anidados Se debe: Comenzar por el bucle ms interior Llevar a cabo las pruebas de bucles simples para el bucle ms interior Progresar hacia fuera, llevando a cabo pruebas para el siguiente bucle Continuar hasta cuando se prueben todos los bucles.

118

Ingeniera del Software


Bucles Concatenados Se pueden probar con el mtodo para buques simples, siempre y cuando los bucles sean independientes. Cuando los bucles no son independientes se utiliza el enfoque para bucles anidados.

Bucles no estructurados Estos bucles se deben redisear.

2.4 Prueba de caja negra Consiste en estudiar la especificacin de las funciones, la entrada y la salida para derivar los casos. Aqu, la prueba ideal del software consiste en probar todas las posibles entradas y salidas del programa. La prueba de caja negra, tambin encuentra errores de: Funciones incorrectas o ausentes Errores de interfaz Errores en estructuras de datos o en accesos a bases de datos externas Errores de rendimiento Errores de inicializacin y de terminacin

Entrada

Funciones funciones

Salida

2.5 Prueba de entornos especializados, arquitecturas y aplicaciones 119

Ingeniera del Software


Prueba de interfaces grficas de usuario Se utilizan listas de chequeo: Para ventanas:
o o o o o o

Se abren las ventanas mediante rdenes basadas en el teclado o en un men? Se puede ajustar el tamao, mover y desplegar la ventana? Se regenera adecuadamente cuando se escribe y se vuelve a abrir? Se muestra la barra de men apropiada en el contexto apropiado? Es correcto el tipo, tamao y formato del texto? Si el ratn tiene varios botones, estn apropiadamente reconocidos en el contexto? Se repiten y son introducidos adecuadamente los datos alfanumricos? Funcionan adecuadamente los modos grficos de entrada de datos? (p.e. barra deslizante) Se reconocen adecuadamente los datos no vlidos? Son inteligibles los mensajes de entrada de datos?

Para mens emergentes y operaciones con el ratn:

Entrada de datos:
o o o o

Prueba de arquitectura cliente / servidor Debido a la complejidad del sistema, sern necesarias varias fases: o Pruebas de funcionalidad de la aplicacin. Se puede llevar a cabo sobre mquinas de desarrollo y estaciones de trabajo de forma paralela o Pruebas de carga del servidor o Pruebas de integridad de datos: Son especialmente importantes en el caso de bases de datos distribuidas o Pruebas transaccionales o Pruebas de red Prueba de la documentacin y facilidades de ayudas Se puede dar en dos sentidos: Revisin e inspeccin: examina la documentacin para comprobar la claridad de la misma. Prueba en vivo: se utiliza la documentacin junto al uso del software.

120

Ingeniera del Software


Prueba de sistemas de tiempo real Se puede aplicar los siguientes pasos: Prueba de tareas: Se aplican pruebas de caja blanca y caja negra a cada tarea. Pretende descubrir errores en la lgica y en el funcionamiento. Prueba de comportamiento: Se simula el comportamiento del sistema en tiempo real y se examina el comportamiento como consecuencia de sucesos externos. Prueba intertareas: Se prueban las tareas asncronas que se comunican con otras, para determinar si se producen errores de sincronismo entre las tareas. Prueba del sistema: Se realizan pruebas completas al sistema para descubrir errores en la interfaz software/hardware.

121

Ingeniera del Software


ACTIVIDADES COMPLEMENTARIAS 1. Investigue y ample la informacin relacionada con: o o o o Prueba Prueba Prueba Prueba de de de de interfaces grficas de usuario arquitectura cliente / servidor la documentacin y facilidades de ayudas sistemas de tiempo real

2. Investigue y ample la informacin relacionada con: o Prueba de condicin o Prueba del flujo de datos o Prueba de bucles

122

Ingeniera del Software


3. 3ESTRATEGIAS DE PRUEBA DEL SOFTWARE La estrategia proporciona la descripcin de los pasos que hay que llevar a cabo como parte de la prueba, cundo se deben planificar y realizar esos pasos, y cunto esfuerzo, tiempo y recursos se van a requerir. Una estrategia de prueba contiene: Planificacin de la prueba Diseo de casos de prueba Ejecucin de las pruebas Agrupacin y evaluacin de datos

3.1 Enfoque estratgico para las pruebas del software Segn Roger S. Pressman, las pruebas son un conjunto de actividades que se pueden planificar por adelantado y llevar a cabo sistemticamente. Por esta razn, se define una plantilla para las pruebas del software. Una estrategia de prueba del software tiene las siguientes caractersticas generales: Las pruebas comienzan a nivel de mdulo (en los sistemas orientados a objetos, las pruebas empiezan a nivel de clase o de objeto) y trabajan hacia fuera, hacia la integracin de todo el sistema. Segn el momento, son apropiadas diferentes tcnicas de prueba La prueba la lleva a cabo el responsable del desarrollo del software y (para grandes proyectos) un grupo independiente de pruebas. La prueba y la depuracin son actividades diferentes, pero la depuracin se debe incluir en cualquier estrategia de prueba

Una estrategia de prueba de software proporciona una gua al profesional y proporciona un conjunto de hitos para el jefe de proyecto.

Ingeniera del software. Un enfoque prctico. Roger S. Pressman. 2002

123

Ingeniera del Software


3.1.1 Verificacin y validacin Verificacin Es el conjunto de actividades que aseguran que el software implementa correctamente una funcin especfica. Estamos construyendo el producto correctamente? Validacin Es el conjunto de actividades diferentes que aseguran que el software construido se ajusta a los requisitos del cliente. Estamos construyendo el producto correcto? 3.1.2 Organizacin para las pruebas del software Toda prueba de software debe tener la coordinacin de actividades: El responsable del desarrollo del software es el responsable de probar las unidades del programa y a veces se encarga tambin de la prueba de integracin. Cuando se tiene una arquitectura completa de software, los encargados de la prueba es un Grupo Independiente de Prueba (GIP), permitiendo que se tenga independencia. Grupo Independiente de prueba Este grupo tiene como objetivo identificar y encontrar errores. Este grupo trabaja conjuntamente con el responsable del desarrollo de software para asegurar que se realizan pruebas exhaustivas. Mientras se realiza la prueba, el desarrollador debe estar disponible para corregir los errores que se van descubriendo.

124

Ingeniera del Software


3.1.3 Estrategia de prueba del software Los niveles de la estrategia para la prueba del software se pueden ver en el siguiente grafico:

Valida todo el sistema

Prueba del sistema Pruebas de validacin Pruebas de integracin Prueba de unidad

Valida los requisitos del sistema

Diseo y construccin de la arquitectura software

Se centra en cada unidad del software Cdigo Fuente

Estrategia de prueba

Si se considera el proceso desde el punto de vista procedimental, la prueba, en el contexto de la ingeniera del software, realmente es una serie de cuatro pasos que se llevan a cabo secuencialmente.

125

Ingeniera del Software

Requisito s Diseo

Pruebas de alto nivel


Prueba de integracin

Codificaci n Direccin de la prueba

Prueba De unidad

Etapas en la prueba del software (Preesman, 2005)

1. La prueba se centra en cada mdulo individualmente, asegurando que funcionan adecuadamente como una unidad. La prueba de unidad hace uso de las tcnicas de prueba de caja blanca, ejercitando caminos especficos de la estructura de control del mdulo para asegurar un alcance completo y una deteccin mxima de errores. 2. Se ensamblan o integran los mdulos para formar el paquete de software completo. La prueba de integracin se dirige a todos los aspectos asociados con el doble problema de verificacin y de construccin del programa. Durante la integracin, las tcnicas que ms prevalecen son las de diseo de casos de prueba de caja negra, aunque se pueden llevar a cabo algunas pruebas de caja blanca con el fin de asegurar que se cubren los principales caminos de control. 3. Despus de que el software se ha integrado (construido), se dirigen un conjunto de pruebas de alto nivel. Se deben comprobar los criterios de validacin. La prueba de validacin proporciona una seguridad final de que el software satisface todos los requisitos funcionales, de comportamiento y de rendimiento. Durante la validacin se usan exclusivamente tcnicas de prueba de caja negra. 4. La prueba del sistema verifica que cada elemento encaja de forma adecuada y que se alcanza la funcionalidad y el rendimiento del sistema total.

126

Ingeniera del Software


Si se desea implementar una estrategia de software con xito se debe plantea que se deben abordar los siguientes si se desea implementar con xito una estrategia de prueba del software se debe tener presente:
Especificar los requisitos del producto de manera cuantificable mucho antes de que comiencen las pruebas Tambin se debe evaluar: portabilidad, facilidad de mantenimiento y facilidad

de uso Establecer los objetivos de la prueba de manera explcita


Se debe establecer:

Objetivos especficos de la prueba Cobertura de la prueba Tiempo medio de fallo El coste para encontrar y arreglar errores Densidad de fallos remanente o frecuencia de ocurrencia Horas de trabajo por prueba

Comprender qu usuarios van a manejar el software y desarrollar un perfil para cada categora de usuario
Se debe:

Describir el escenario de interaccin para cada clase de usuario Desarrollar un plan de prueba que haga hincapi en la prueba de ciclo rpido El equipo de ingeniera de software, debe aprender a probar en ciclos rpidos y que se pueda probar sobre el terreno. Construir un software robusto diseado para probarse a s mismo. El software debe ser capaz de diagnosticar ciertas clases de errores. Adems, el diseo debe incluir pruebas automatizadas y pruebas de regresin. Usar revisiones tcnicas formales efectivas como filtro antes de la prueba
Las revisiones tcnicas formales ayudan a reducir el esfuerzo de prueba necesaria para la produccin del software.

Llevar a cabo revisiones tcnicas formales para evaluar la estrategia de prueba y los propios casos de prueba. Permiten descubrir inconsistencias, omisiones y errores claros en el enfoque 127

Ingeniera del Software


de la prueba. Desarrollar un enfoque de mejora continua al proceso de prueba. Debera medirse la estrategia de prueba.
Permite usar un enfoque estadstico de control del proceso para la prueba del software.

3.2 Prueba de unidad El proceso de verificacin, se centra en la menor unidad del diseo del software: el mdulo. Est orientada a caja blanca y este paso se puede llevar a cabo en paralelo para mltiples mdulos. Las pruebas que se dan como parte de la prueba de unidad son:

Mdulo ~~~~~ ~ ~~~~~ ~ ~~~~~ ~ ~~~~~ ~

Interfaz Estructuras de datos locales Condiciones lmite Caminos independientes Caminos de manejo de errores

Casos de prueba Figura. Prueba de Unidad. (Fuente: Roger Pressman, 2002)

Prueba de interfaz del Asegura que la informacin fluye de forma adecuada mdulo hacia y desde la unidad de programa que est siendo probada. Prueba de estructuras Asegura que los datos que se mantienen de datos locales temporalmente conservan su integridad durante todos los pasos de ejecucin del algoritmo. Prueba de Asegurar que el mdulo funciona correctamente en condiciones de lmite los lmites establecidos como restricciones de procesamiento. Prueba de caminos Se recorren los caminos independientes de la 128

Ingeniera del Software


independientes estructura de control con el fin de asegurar que todas las sentencias del mdulo se ejecutan por lo menos una vez. Prueba de camino de Se prueban todos los caminos. manejo de errores. A continuacin, se ilustra el entorno para la prueba de unidad.

Controlador Controlador

Mdulo que se va a probar

Interfaz Estructuras de datos locales Condiciones lmite Caminos independientes Caminos de manejo de errores

Resguardo

Resguardo

Casos de prueba RESULTADO S

Figura. Entorno para la prueba de unidad

Para cada mdulo que se va a probar, se crea un controlador (un programa principal) que permite aceptar los datos del caso de prueba, los pasa al mdulo y luego imprime los resultados.

129

Ingeniera del Software


3.3 Prueba de integracin del sistema La prueba de integracin es una tcnica para construir la estructura del programa mientras que, al mismo tiempo, se llevan a cabo pruebas para detectar errores asociados con la interaccin. 3.3.1 Integracin descendente Se integran los mdulos movindose hacia abajo por la jerarqua de control, comenzando por el mdulo de control principal (programa principal). Los mdulos subordinados al mdulo de control principal se van incorporando en la estructura, bien de forma primero en profundidad, o bien de forma primero en anchura. M1 M2 M3 M4

M5

M6

M7

M8
Integracin descendente

Integracin primero en profundidad: integra todos los mdulos de un camino de control principal de la estructura. Por ejemplo, si se elige el camino de la izquierda se integrarn primero los mdulos M1, M2 y M5. A continuacin, se integrar M8 o M6. A continuacin se construyen los caminos de control central y derecho. Integracin primero en anchura: incorpora todos los mdulos directamente subordinados a cada nivel, movindose por la estructura de forma horizontal. Por ejemplo: Los primeros mdulos que se integran son M2, M3 y M4. A continuacin, sigue el siguiente nivel de control, M5, M6, M7 y por ltimo M8. 130

Ingeniera del Software


El proceso de integracin se realiza en cinco pasos: 1. Se usa el mdulo de control principal como controlador de la prueba, disponiendo de resguardos para todo los mdulos directamente subordinados al mdulo de control principal. 2. Dependiendo del enfoque de integracin elegido se van sustituyendo uno a uno los resguardos subordinados por los mdulos reales. 3. Se llevan a cabo pruebas cada vez que se integra un nuevo mdulo. 4. Tras terminar cada conjunto de prueba, se reemplaza otro resguardo con el mdulo real. 5. Se hace la prueba de regresin para asegurarse de que no se han introducido errores nuevos. El proceso contina desde el paso dos hasta que se haya construido la estructura del programa entero. 3.3.2 Integracin ascendente Empieza la construccin y la prueba con los niveles ms bajos de la estructura del programa. Dado que los mdulos se integran de abajo hacia arriba, el proceso requerido de los mdulos subordinados siempre est disponible y se elimina la necesidad de resguardos. Se puede implementar una estrategia de integracin ascendente mediante los siguientes pasos: 1. Se combina los mdulos de bajo nivel en grupos que realicen una subfuncin especfica del software. 2. se describe un controlador (un programa de control de la prueba) para coordinar la entrada y la salida de los casos de prueba. 3. Se prueba el grupo. 4. Se eliminan los controladores y se combinan los grupos movindose hacia arriba por la estructura del programa.

La integracin sigue el esquema de la siguiente figura: 131

Ingeniera del Software


Mc Ma D1 D2
Grupo 3

Mb D3

Grupo 1

Grupo 2

Integracin ascendente

Se combinan los mdulos para formar los grupos 1,2 y 3. Cada uno de los grupos se somete a prueba mediante un controlador (mostrado como un bloque punteado). Los mdulos de los grupos 1 y 2 son subordinados M a. Los controladores D1 y D2 se eliminan y los grupos interaccionan directamente con Ma. De forma similar, se elimina el controlador D 3 del grupo 3 antes de la integracin con el mdulo Mb. Tanto Ma como Mb se integraran finalmente con el mdulo Mc y as sucesivamente. 3.3.3 Prueba de regresin La prueba de regresin consiste en volver a ejecutar un subconjunto pruebas que se han llevado a cabo anteriormente para asegurarse de que cambios no han propagado efectos colaterales no deseados. La prueba regresin es la actividad que ayuda a asegurar que los cambios introducen un comportamiento no deseado o errores adicionales. de los de no

El conjunto de pruebas de regresin contiene tres clases diferentes de casos de prueba: o Una muestra representativa de pruebas que ejercite todas las funciones del software; o Pruebas adicionales que se centran en las funciones del software que se van a ver probablemente afectadas por el cambio; o Pruebas que se centran en los componentes del software que han cambiado.

132

Ingeniera del Software


3.3.4 Prueba de humo Esta prueba es utilizada cuando se ha desarrollado un producto software empaquetado. Es diseado como un mecanismo para proyectos crticos por tiempo, permitiendo que el equipo de software valore su proyecto sobre una base slida. La prueba de humo comprende las siguientes actividades: 1. Los componentes software que han sido traducidos al cdigo se integran en una construccin. Una construccin incluye fichas de datos, libreras, mdulos reutilizables y componentes de ingeniera que se requieren para implementar una o ms funciones del producto. 2. Se disea una serie de pruebas para descubrir errores que impiden a la construccin realizar su funcin adecuadamente. El objetivo ser descubrir errores bloqueantes que tengan la mayor probabilidad de impedir al proyecto de software el cumplimiento de su planificacin. 3. Es habitual en la prueba de humo que la construccin se integre con otras construcciones y que se aplica una prueba de humo al producto completo. La integracin puede hacerse bien de forma descendente o ascendente. La prueba de humo facilita una serie de beneficios cuando se aplica sobre proyectos de ingeniera de software complejos y crticos por su duracin: o o o o Se minimiza los riesgos de integracin. Se perfecciona la calidad del producto final. Se simplifican el diagnstico y la correccin de errores. El progreso es fcil de observar.

3.3.5 Prueba de validacin La validacin se consigue cuando el software funciona de acuerdo con las expectativas razonables del cliente. La validacin del software se consigue mediante una serie de pruebas de caja negra que demuestran la conformidad con los requisitos. Se llevan a cabo dos pruebas: Prueba Alfa Se lleva a cabo, por un cliente, en el lugar de desarrollo. Se usa el software de forma natural con el desarrollador como observador del usuario y registrando los errores y los Prueba Beta Se lleva a cabo por los usuarios finales del software en los lugares de trabajo de los clientes. El desarrollador no est presente en esta prueba. La prueba beta es una

133

Ingeniera del Software


problemas de uso. Las pruebas Alfa aplicacin en vivo del software en un se llevan a cabo en un entorno entorno que no puede ser controlado controlado. por el desarrollador. El cliente registra todos los problemas (reales o imaginarios) que encuentran durante la prueba e informa al desarrollador. Como resultado de los problemas informados durante la prueba beta, el desarrollador del software lleva a cabo modificaciones y as prepara una versin del producto de software para toda la clase de clientes. 3.3.6 Prueba del sistema Su propsito primordial es ejercitar profundamente el sistema, verificando que se hayan integrado adecuadamente todos los elementos del sistema y que realizan las funciones apropiadas. Comprende las siguientes pruebas: Prueba de recuperacin Esta prueba fuerza el fallo del software de muchas formas y verifica que la recuperacin se lleva a cabo apropiadamente. Prueba de seguridad Intenta verificar que los mecanismos de proteccin incorporadas en el sistema lo protegern, de hecho, de accesos impropios. Prueba de resistencia (stress) Ejecuta un sistema de forma que demande recursos en cantidad, frecuencia o volmenes anormales. Por ejemplo: 1. Disear pruebas especiales que generen 10 interrupciones por segundo, cuando las normales son una o dos; 2. Incrementar las frecuencias de datos de entrada en un orden de magnitud con el fin de comprobar cmo responden las funciones de entrada. 3. Ejecutar casos de prueba que requieran el mximo de memoria o de otros recursos. 4. Disear casos de prueba que puedan dar problemas en un sistema operativo virtual. 5. Disear casos de prueba que produzcan excesivas bsquedas de 134

Ingeniera del Software


datos residentes en disco. Esencialmente, el responsable de la prueba intenta romper el programa. Prueba de rendimiento Permite probar el rendimiento del software en tiempo de ejecucin dentro del contexto de un sistema integrado. La prueba de rendimiento se da durante todos los pasos del proceso de la prueba. Para llevar a cabo esta prueba, deben estar integrados completamente todos elementos del sistema. 3.3.7 Depuracin La depuracin ocurre como consecuencia de una prueba efectiva. Cuando un caso de prueba descubre un error, la depuracin es el proceso que provoca la eliminacin del error.

Casos de prueb a
Pruebas adicionales Pruebas de Regresin Correccion es

Ejecucin de casos

Resultado s
Causas sospechad as Causas identificad as

Depuracin Depuracin

El proceso de depuracin

El proceso de depuracin comienza con la ejecucin de un caso de prueba. Se evalan los resultados y aparece una falta de correspondencia entre los esperados y los encontrados realmente. El proceso de depuracin intenta hacer corresponder el sistema con una causa, llevando as a la correccin del error. El proceso de depuracin siempre tiene uno de los dos resultados siguientes: Se encuentra la causa, se corrige y se elimina. 135 No se encuentra la causa.

Ingeniera del Software

En este ltimo caso, la persona que realiza la depuracin debe sospechar la causa, disear un caso de prueba que ayude a confirmar sus sospechas y el trabajo vuelve hacia atrs a la correccin del error de una forma interactiva. Durante la depuracin se encuentran errores que van desde lo ligeramente inesperado hasta lo catastrfico. La depuracin tiene el objetivo primordial de encontrar y corregir la causa de un error en el software.

3.4 MTRICAS TCNICAS DEL SOFTWARE Las mtricas tcnicas para el software proporcionan una manera sistemtica de valorar la calidad basndose en un conjunto de reglas. Tambin proporcionan al ingeniero del software descubrir y corregir problemas potenciales antes de que se conviertan en defectos catastrficos. 3.4.1 Factores de calidad Factores de calidad de McCall McCall y Cavano definieron un juego de factores de calidad como los primeros pasos hacia el desarrollo de mtricas de la calidad del software. Estos factores evalan el software desde tres puntos de vista distintos: 1 . 2 . 3 . Operacin del producto Revisin del producto Transicin del producto

136

Ingeniera del Software


1. Operaciones del producto - Caractersticas operativas Correccin El grado en que una aplicacin satisface sus Hace lo que se le pide? especificaciones y consigue los objetivos encomendados por el cliente. Fiabilidad El grado que se puede esperar de una aplicacin Lo hace de forma fiable lleve a cabo las operaciones especificadas y con la todo el tiempo? precisin requerida. Eficiencia La cantidad de recursos hardware y software que Qu recursos hardware necesita una aplicacin para realizar las y software necesito? operaciones con los tiempos de respuesta adecuados. Integridad El grado con que puede controlarse el acceso al Puedo controlar su uso? software o a los datos a personal no autorizado. Facilidad de uso El esfuerzo requerido para aprender el manejo de Es fcil y cmodo de una aplicacin, trabajar con ella, introducir datos y manejar? conseguir resultados 2. Revisin del producto - Capacidad para soportar cambios Facilidad de El esfuerzo requerido para localizar y reparar mantenimiento errores. Puedo localizar los fallos? Flexibilidad El esfuerzo requerido para modificar una Puedo aadir nuevas aplicacin en funcionamiento. opciones? Facilidad de prueba El esfuerzo requerido para probar una Puedo probar todas las aplicacin de forma que cumpla con lo opciones? especificado en los requisitos. 3. Transicin del producto - Adaptabilidad a nuevos entornos Portabilidad El esfuerzo requerido para transferir la Podr usarlo en otra aplicacin a otro hardware o sistema mquina? operativo. Reusabilidad Grado en que partes de una aplicacin Podr utilizar alguna parte pueden utilizarse en otras aplicaciones del software en otra aplicacin? Interoperabilidad El esfuerzo necesario para comunicar la Podr comunicarse con otras aplicacin con otras aplicaciones o sistemas aplicaciones o sistemas informticos informticos?

137

Ingeniera del Software

Facilidad de mantenimiento Flexibilidad Facilidad de prueba

Portabilidad Reusabilidad Interoperatividad

Revisin del producto Operacin del producto

Transicin del producto

Correccin Eficiencia

Fiabilidad

Usabilidad

Integridad

2005) Mtrica para el esquema de puntuacin

Factores de calidad de McCall (Fuente: Roger Pressman,

Las mtricas pueden ir en forma de lista de comprobacin para evaluar y puntuar atributos especficos del software. McCall, propuso un esquema de puntuacin en una escala del 0 (bajo) al 10 (alto). Se emplean las siguientes mtricas en el esquema de puntuacin:
Facilidad de auditora Exactitud Estandarizacin de comunicaciones Complexin La facilidad con la que se puede comprobar el cumplimiento de los estndares. La exactitud de los clculos y del control. El grado de empleo de estndares de interfaces, protocolos y anchos de banda.

El grado con que se ha logrado la implementacin total de una funcin. Concisin Lo compacto que es el programa en trminos de lneas de cdigo. Consistencia El empleo de un diseo uniforme y de tcnicas de documentacin a lo largo del proyecto de desarrollo del software Estandarizacin El empleo de estructuras y tipos de datos estndares a lo de datos largo del programa. Tolerancia al El dao causado cuando un programa encuentra un error. error Eficiencia de El rendimiento del funcionamiento de un programa. ejecucin Capacidad de El grado con que se pueden ampliar el diseo arquitectnico,

138

Ingeniera del Software


expansin Generalidad de datos o procedimental. La amplitud de aplicacin potencial de los componentes del programa. Independencia El grado con que se desacopla el software del hardware del hardware donde opera. Instrumentacin El grado con que el programa vigila su propio funcionamiento e identifica los errores que ocurren. Modularidad La independencia funcional de componentes de programa. Operatividad La facilidad de operacin de un programa Seguridad La disponibilidad de mecanismos que controlan o protegen los programas y los datos. Autodocumentaci El grado en que el cdigo fuente proporcionan n documentacin significativa Simplicidad El grado de facilidad con que se puede entender un programa. Independencia El grado de independencia de programa respecto a las del sistema caractersticas del lenguaje de programacin no estndar, software caractersticas del sistema operativo y otras restricciones del entorno. Trazabilidad La capacidad de seguir una representacin del diseo o un componente real del programa hasta los requisitos. Formacin El grado en que ayuda el software a manejar el sistema o los nuevos usuarios.

A continuacin, se presenta la relacin entre los factores de calidad del software y las mtricas de la lista anterior.
Fiabilidad Reusabilidad Flexibilidad Portabilidad Interoperatividad Mantenimiento Correccin Usabilidad Eficiencia Integridad

Mtrica de la calidad del software

Factor de calidad
Facilidad de auditoria Exactitud Estandarizacin de comunicaciones Complexin Complejidad Concisin Consistencia Estandarizacin de datos Tolerancia a errores Eficiencia de ejecucin

X X X X X X X X X 139 X X X X X

X X X X

pruebasCapacidad de

Ingeniera del Software


Capacidad de expansin Generalidad Independencia del hardware Instrumentacin Modularidad Operatividad Seguridad Autodocumentacin Simplicidad Independencia del sistema Trazabilidad Facilidad de formacin

X X X X X X X X X X X X X X X X X X X

X X X X X

X X X X X

X X X

3.4.2 FURPS El modelo de McCall ha servido de base para modelos de calidad posteriores, y este es el caso del modelo FURPS, producto del desarrollo de HewlettPackard. En este modelo se desarrollan un conjunto de factores de calidad de software, bajo el acrnimo de FURPS. F U R P S Functionality - funcionalidad Usability usabilidad facilidad de uso Reliability - confiabilidad Performance - desempeo Supportability - capacidad de soporte

La siguiente tabla, presenta la clasificacin de los atributos de calidad que se incluyen en el modelo, junto con las caractersticas asociadas a cada uno (Pressman, 2002). Factor de Calidad Funcionalidad Atributos Caractersticas y capacidades del programa Generalidad de las funciones Seguridad del sistema Factores humanos Factores estticos Consistencia de la interfaz Documentacin Frecuencia y severidad de las fallas Exactitud de las salidas Tiempo medio de fallos 140

Facilidad de uso

Confiabilidad

Ingeniera del Software


Capacidad de recuperacin ante fallas Capacidad de prediccin Velocidad del procesamiento Tiempo de respuesta Consumo de recursos Rendimiento efectivo total Eficacia Extensibilidad Adaptabilidad Capacidad de pruebas Capacidad de configuracin Compatibilidad Requisitos de instalacin

Rendimiento

Capacidad de Soporte

El modelo FURPS incluye, adems de los factores de calidad y los atributos, restricciones de diseo y requerimientos de implementacin, fsicos y de interfaz. Las restricciones de diseo especifican o restringen el diseo del sistema. Los requerimientos de implementacin especifican o restringen la codificacin o construccin de un sistema (por ejemplo, estndares requeridos, lenguajes, polticas). Por su parte, los requerimientos de interfaz especifican el comportamiento de los elementos externos con los que el sistema debe interactuar. Por ltimo, los requerimientos fsicos especifican ciertas propiedades que el sistema debe poseer, en trminos de materiales, forma, peso, tamao (por ejemplo, requisitos de hardware, configuracin de red). Factores de calidad ISO 9126 El estndar ISO/IEC 9126 ha sido desarrollado en un intento de identificar los atributos clave de calidad para un producto de software (Pressman, 2002). Este estndar es una simplificacin del Modelo de McCall, e identifica seis caractersticas bsicas de calidad que pueden estar presentes en cualquier producto de software. El estndar provee una descomposicin de las caractersticas en subcaractersticas, que se muestran en la siguiente tabla: Caracterstica Funcionalidad Subcaracterstica Adecuacin Exactitud Interoperabilidad Seguridad 141

Ingeniera del Software


Confiabilidad Madurez Tolerancia a fallas Recuperabilidad Entendibilidad Capacidad de aprendizaje Operabilidad Comportamiento en tiempo Comportamiento de recursos Analizabilidad Modificabilidad Estabilidad Capacidad de pruebas Adaptabilidad Instalabilidad Reemplazabilidad

Usabilidad

Eficiencia Mantenibilidad

Portabilidad

ISO/IEC 9126 no son necesariamente usados para mediciones directas (Pressman, 2002), pero proveen una valiosa base para medidas indirectas, y una excelente lista para determinar la calidad de un sistema. Es importante establecer una estructura fundamental y un conjunto de principios bsicos para la medicin de mtricas tcnicas para el software. Los principios bsicos de la medicin, sugeridos por Roche, pueden caracterizarse mediante cinco actividades: Formulacin Coleccin Anlisis Interpretaci n Realimentaci n Obtencin de medidas y mtricas del software apropiadas para la representacin del software. Mecanismo empleado para acumular datos necesarios para obtener las mtricas formuladas. Clculo de las mtricas y aplicacin de herramientas matemticas. Evaluacin de los resultados de las mtricas en un esfuerzo por conseguir una visin interna de la calidad de la representacin. Recomendaciones obtenidas de la interpretacin de mtricas tcnicas transmitidas al equipo software.

142

Ingeniera del Software


Los principios que se pueden asociar con la formulacin de las mtricas tcnicas son los siguientes: o Los objetivos de la medicin que deben establecerse antes de empezar la recoleccin de datos. o Todas las tcnicas sobre mtricas deben definirse sin ambigedades. o Las mtricas deberan obtenerse basndose en una teora vlida para el dominio de aplicacin. o Hay que hacer las mtricas a medida para acomodar mejor los productos y procesos especficos. Roche sugiere los siguientes principios para la recoleccin y anlisis de datos: o Siempre que sea posible, la recogida de datos y el anlisis debe automatizarse. o Se deben aplicar tcnicas estadsticas vlidas para establecer las relaciones entre los atributos internos del producto y las caractersticas externas de la calidad. o Se deben establecer directrices de interpretacin y recomendaciones para todas las mtricas. La mtrica obtenida y las medidas que conducen a ello deben tener las siguientes caractersticas: o o o o o o Simples y fciles de calcular. Emprica e intuitivamente persuasivas. Consistentes y objetivas. Consistentes en el empleo de unidades y tamaos. Independiente del lenguaje de programacin. Un mecanismo eficaz para la realimentacin de calidad.

3.5 Mtricas del modelo del software 3.5.1 Mtricas del modelo de anlisis En esta fase, las mtricas tcnicas proporcionan una visin interna a la calidad del modelo de anlisis. Estas mtricas examinan el modelo de anlisis con la intencin de predecir el "tamao" del sistema resultante; es probable que el tamao y la complejidad del diseo estn directamente relacionados. Dentro de las mtricas del modelo de anlisis tenemos: 143

Ingeniera del Software


Mtricas basadas en la Funcin La mtrica del punto de funcin se utiliza como medio para predecir el tamao de un sistema obtenido a partir de un modelo de anlisis. Para visualizar esta mtrica se utiliza un diagrama de flujo de datos, el cual se evaluar para determinar las siguientes medidas clave que son necesarias para el clculo de la mtrica de punto de funcin: Nmero de entradas del usuario Nmero de salidas del usuario Nmero de consultas del usuario Nmero de archivos Nmero de interfaces externas La conceptualizacin de esta mtrica ya fue expuesta en la unidad 2, de ste mdulo.

144

Ingeniera del Software


Mtrica Bang Puede aplicarse para desarrollar una indicacin del tamao del software a implementar como consecuencia del modelo del anlisis. Para calcular la mtrica bang, el desarrollador de software evala primero un conjunto de primitivas. Las primitivas se determinan evaluando el modelo de anlisis y desarrollando cuentas para los siguientes elementos: Primitivas funcionales (Pfu) Elementos de datos (ED) Objetos (OB) Relaciones (RE) Estados (ES) Transiciones (TR Transformaciones que aparecen en el nivel inferior de un diagrama de flujo de datos. Los atributos de un objeto de datos, los elementos de datos no compuestos y aparecen en el diccionario de datos. Objetos de datos. Las conexiones entre objetos de datos. El nmero de estados observables por el usuario en el diagrama de transicin de estados. El nmero de transacciones de estado en el diagrama de transicin de estado.

Adems, se determinan medidas adicionales para: Primitivas modificadas de funcin manual (PMFu) Elementos de datos de entrada (EDE) Elementos de datos de salida (EDS) Elementos de datos retenidos (EDR) Muestras (tokens) de datos (TCi) Conexiones (Rei) de Funciones que caen fuera del lmite del sistema y que deben modificarse para acomodarse al nuevo sistema. Aquellos elementos de datos que se introducen en el sistema. Aquellos elementos de datos que se sacan en el sistema. Aquellos elementos de datos que son retenidos (almacenados) por el sistema. Las muestras de datos que existen en el lmite de la isima primitiva funcional (evaluada para cada primitiva). relacin Las relaciones que conectan el i-simo objeto en el modelo de datos con otros objetos.

145

Ingeniera del Software


3.5.2 Mtricas del modelo de diseo Se concentran en las caractersticas de la arquitectura del programa, con nfasis en la estructura arquitectnica y en la eficiencia de los mdulos. Estas mtricas son de caja negra en el sentido que no requieren ningn conocimiento del trabajo interno de un mdulo en particular del sistema. Card y Glass definen las siguientes tres medidas de complejidad:

La complejidad estructural, S(i), de un mdulo i se define de la siguiente 2 manera: S(i)=f out(i). Donde fout(i) es la expansin del mdulo i. La expansin indica el nmero de mdulos que son invocados directamente por el mdulo i. La complejidad del sistema, C(i), se define como la suma de las complejidades estructural y de datos : C(i)= S(i) + D(i) La complejidad de datos, D(i), proporciona una indicacin de la complejidad en la interfaz interna de un mdulo i y se define como: D(i)=v(i)/[fout(i) + 1]. Donde v(i) es el nmero de variables de entrada y salida que entran y salen del mdulo i. Fenton sugiere varias mtricas de morfologa simples que permiten comparar diferentes arquitecturas mediante un conjunto de dimensiones directas.

146

Ingeniera del Software


Las mtricas a aplicar son: Tamao= n + a. Donde n es el nmero de nodos (mdulos) y a es el nmero de arcos (lneas de control). Para la arquitectura mostrada se tiene tamao= 17+18=35. Profundidad= camino ms largo desde el nodo raz a un nodo hoja. Para el ejemplo Profundidad= 4 Amplitud=nmero mximo de nodos de cualquier nivel de la arquitectura. Para el ejemplo amplitud= 6 Relacin arco a nodo, r=a/n, mide la densidad de conectividad de la arquitectura y proporciona una indicacin sencilla de acoplamiento de la arquitectura. Para el ejemplo r=18/17= 1.06 3.5.3 Mtricas del cdigo fuente Utiliza un conjunto de medidas primitivas que pueden obtenerse una vez que se han generado o estimado el cdigo despus de completar el diseo. Estas medidas son:

n1 : nmero de operadores diferentes que aparecen en el programa. n2 : nmero de operandos diferentes que aparecen en el programa. N1 : nmero total de veces que aparece el operador. N2 : nmero total de veces que aparecen el operando. Halstead utiliza medidas primitivas para desarrollar expresiones par la longitud global del programa; volumen mnimo potencial para un algoritmo; el volumen real (nmero de bits requeridos para especificar un programa); el nivel del programa (una medida de la complejidad del software); nivel del lenguaje (una constante para un lenguaje dado); y otras caractersticas tales como el esfuerzo de desarrollo, tiempo de desarrollo e incluso el nmero esperado de fallos en el software. Halstead propone las siguientes mtricas: Longitud N se puede estimar como: N = n1 log2 n1 + n2 log2 n2. Volumen de programa se define como: V = N n1 log2(n1 + n2). 147

Ingeniera del Software


Tomando en cuenta que V variar con el lenguaje de programacin y representa el volumen de informacin (en bits) necesarios para especificar un programa. 3.5.4 Mtricas para pruebas Las mtricas para pruebas se concentran en el proceso de prueba, no en las caractersticas tcnicas de las pruebas mismas. En general, los responsables de las pruebas deben fiarse en las mtricas de anlisis, diseo y cdigo para que sirvan de gua en el diseo y ejecucin de los casos de prueba. El esfuerzo de las pruebas tambin se puede estimar utilizando mtricas obtenidas de las medidas de Halstead. Usando la definicin del volumen de un programa, V, y nivel de programa, NP, el esfuerzo de la ciencia del software puede calcularse como: NP = 1/[(n1/2) x (N2/n2)] e = V/NP (Ec. 1) (Ec. 2)

El porcentaje del esfuerzo global de pruebas a asignar a un mdulo k se puede estimar utilizando la siguiente relacin: Donde Porcentaje de esfuerzo de pruebas(k) = e(k)/e(i) (Ec. 3) e(k) se calcula para el mdulo k utilizando las ecuaciones (Ec. 1) y (Ec. 2), la suma en el denominador de la ecuacin (Ec. 3) es la suma del esfuerzo de la ciencia del software a lo largo de todos los mdulos del sistema.

148

Ingeniera del Software


A medida que se van haciendo las pruebas, tres medidas diferentes proporcionan una indicacin de la complecin de las pruebas: Medida de amplitud de las pruebas. Profundidad de las pruebas Proporciona una indicacin de cuantos requisitos se han probado del nmero total de ellos. Indica la complecin del plan de pruebas. Medida del porcentaje de los caminos bsicos independientes probados con relacin al nmero total de estos caminos en el programa. Se puede calcular una estimacin razonablemente exacta del nmero de caminos bsicos sumando la complejidad ciclomtica de todos los mdulos del programa. de Se emplean para dar prioridad y categorizar los errores. La prioridad indica la severidad del problema. Las categoras de los fallos proporcionan una descripcin de un error, de manera que se puedan llevar a cabo anlisis estadstico de errores.

Perfiles fallos

3.5.5 Mtricas del mantenimiento Todas las mtricas descritas pueden utilizarse para el desarrollo de nuevo software y para el mantenimiento del existente. El estndar IEEE 982.1-1988 sugiere el ndice de madurez del software (IMS) que proporciona una indicacin de la estabilidad de un producto software basada en los cambios que ocurren con cada versin del producto. Con el IMS se determina la siguiente informacin: El MT= Nmero de mdulos en la versin actualFc = Nmero de mdulos en la versin actual que se han cambiado Fa= Nmero de mdulos en la versin actual que se han aadido Fe= Nmero de mdulos en la versin actual que se han eliminado

ndice de madurez del software se calcula de la siguiente manera:

IMS= [MT - (Fc + Fa + Fe)]/MT A medida que el IMS se aproxima a 1 el producto se empieza a estabilizar. El IMS puede emplearse tambin como mtrica para la planificacin de las actividades de mantenimiento del software. 149

Ingeniera del Software


ACTIVIDADES COMPLEMENTARIAS 1. Con sus propias palabras, verificacin y validacin. describa las diferencias entre

2. Haga una lista de algunos problemas que puedan estar asociados con la creacin de un grupo independiente de prueba. Estn formados por las mismas personas el GIP y el grupo SQA? 3. Quin debe llevar a cabo la prueba de validacin -el desarrollador del software o el usuario-? Justifique su respuesta.

150

Ingeniera del Software

BIBLIOGRAFIA
IMPRESA BRAUDE. Ingeniera de software, una perspectiva orientada a objetos. Mxico. 2003. Alfaomega grupo editor. S.A. GRUEGGE, BERND y DUTOIT, Allen H. Ingeniera de software orientado a objetos. Mxico. 2002. Pearson Educacin. HUMPHREY, Watts S. Introduccin al proceso de software personal. Pearson Addison wesley. 2001. MEYER, Bertrand. Construccin de software orientado a objetos. Segunda edicin. Madrid. 1999. Prentice Hall. NORRIS. Ingeniera de software explicada. Grupo Noriega editores de Colombia. PIATTINI, Mario. VILLALBA, Jose y otros. Mantenimiento del software: modelos, tcnicas y mtodos para la gestin del cambio. Editorial Alfaomega-Rama. PRESSMAN, Roger S. Ingeniera del Software. Un enfoque prctico. Quinta edicin. Espaa. 2002. Editorial McGraw Hill. PFLEEGER, Shari Lawrence. Ingeniera de software, teora y prctica. 1. Edicin. Buenos Aires. Pearson educacin. 2002 SOMMERVILLE, Ian. Ingeniera de software. 6. Edicin. Pearson Addison Wesley. 2001 ELECTRNICA http://comp.software-eng http://asqc.org http://www.qualitytree.com/links/links.htm http://www.gestiopolis.com/recursos/documentos/fulldocs/eco/diagramaparet o.htm http://campus.fortunecity.com/defiant/114/iso9000.htm http://www.iso.org http://www.iso.org/iso/en/iso9000-14000 http://www.well.com/user/vision/sqa.html http://www.processimprovement.com/resources/sqa.htm http://www.softwaretestinginstitute.com/Profession.html

151

S-ar putea să vă placă și