8/4/2019 _IngenieriadeSoftware
1/143
Ingeniera de Software
1
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
ESCUELA DE CIENCIAS BASICAS, TECNOLOGA E
INGENIERIAPROGRAMA INGENIERIA DE SISTEMAS
MODULO
Ingeniera de Software
Autor: Ing. Alexandra AparicioRevisado y Editado: Ing. Jairo Martnez
8/4/2019 _IngenieriadeSoftware
2/143
Ingeniera de Software
2
TABLA DE CONTENIDOPg.
INTRODUCCIN 4
PRIMERA UNIDAD. INTRODUCCIN A LA INGENIERA DESOFTWARE 6
INTRODUCCIN 61. EL PRODUCTO 7
Leccin 1. El Producto 7Leccin 2. Evolucin del Software 8Leccin 3. El Software 9Leccin 4. Aplicaciones del Software 9Leccin 5. Mitos del Software 11
2. EL PROCESO 13Leccin 6. Definicin de Ingeniera de Software 13
Leccin 7. Esquema de la Ingeniera de Software 15Leccin 8. Esencia de la Ingeniera de Software 16Leccin 9. Procesos, Mtodos y Herramientas 17Leccin 10. El Proceso del Software 19
3. MODELOS DE PROCESO DE SOFTWARE 20Leccin 11. Modelo Lineal Secuencial 20Leccin 12. Modelo de Construccin de Prototipos 22Leccin 13. Modelo DRA 25Leccin 14. Modelos de Procesos Evolutivos de Software 27Leccin 15. Modelo de Mtodos Formales y Tcnicas de Cuarta
Generacin
31
SEGUNDA UNIDAD. GESTIN Y PLANIFICACIN DE PROYECTOSSOFTWARE
34
INTRODUCCIN 344. CONCEPTOS SOBRE GESTIN DE PROYECTOS 35
Leccin 16. Gestin de Proyectos 35Leccin 17. Personal 36Leccin 18. El Producto 38Leccin 19. El Proceso 39Leccin 20. El Proyecto 40
5. EL PROCESO DE SOFTWARE Y MTRICAS DEL PROYECTO 42
Leccin 21. Mtricas en el Proceso y Dominios del Proyecto 43Leccin 22. Mejora Estadstica del Proceso del Software 45Leccin 23. Mtricas del Proyecto 48Leccin 24. Mediciones del Software 49Leccin 25. Mtricas para la Calidad del Software 53
6. PLANIFICACION DE PROYECTOS DE SOFTWARE 58Leccin 26. mbito del Software y Recursos 59
8/4/2019 _IngenieriadeSoftware
3/143
Ingeniera de Software
3
Pg.Leccin 27. Estimacin del Proyecto de Software y Tcnicas deDescomposicin
61
Leccin 28. Modelos Empricos de Estimacin 64
Leccin 29. Riesgo del Software 70Leccin 30. Planificacin Temporal del Proyecto 80TERCERA UNIDAD. CONTROL DE CALIDAD DEL SOFTWARE 89INTRODUCCIN 897. GARANTIA DE CALIDAD DEL SOFTWARE 90
Leccin 31. Conceptos de Calidad 91Leccin 32. Tendencia de la Calidad 94Leccin 33. Garanta y Aseguramiento de la Calidad del Software 96Leccin 34. Revisiones del Software 97Leccin 35. Garanta de Calidad Estadstica, Fiabilidad y EstndarISO 9001
101
8. TECNICAS DE PRUEBA DEL SOFTWARE 108Leccin 36. Fundamentos de la Prueba del Software 108Leccin 37. Diseo de Casos de Prueba, Pruebas de la CajaBlanca y del Camino Bsico
110
Leccin 38. Prueba de la Estructura de Control 112Leccin 39. Prueba de la Caja Negra 114Leccin 40. Prueba de Entornos Especializados, Arquitecturas yAplicaciones
114
9. ESTRATEGIAS DE PRUEBA DEL SOFTWARE 117Leccin 41. Enfoque Estratgico de la Prueba del Software 117Leccin 42. Prueba de Unidad 122Leccin 43. Pruebas de Integracin del Sistema 123Leccin 44. Mtricas Tcnicas del Software 129Leccin 45. Mtricas del Modelo del Software 136
8/4/2019 _IngenieriadeSoftware
4/143
Ingeniera de Software
4
INTRODUCCIN
El curso Ingeniera de Software tiene como objetivo desarrollar habilidades y adquirir
capacidades en la utilizacin de mtodos y tcnicas para desarrollar y mantenersoftware de calidad.
El curso tiene 3 crditos acadmicos los cuales comprenden el estudio independiente yel acompaamiento tutorial, con el propsito de:
Comprender los aspectos tcnicos y de gestin de la disciplina de ingeniera desoftware.
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 deencontrar y corregir errores antes de entregar el software al cliente.
Este curso est compuesto por tres unidades didcticas a saber:
Unidad 1. Introduccin a la ingeniera de software: se presenta una vista general
sobre la definicin de: ingeniera de software, producto de software, procesos desoftware, se determina las caractersticas del software, los mitos del software. Sepresenta tambin los diferentes tipos de proceso y los modelos evolutivos del software.
Unidad 2. Gestin y planificacin de proyectos de software : se trata de determinarcomo se debe gestionar el personal, el proceso y el problema durante un proyecto desoftware. Se identifican las mtricas de software y cmo pueden emplearse paragestionar 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 relacionadoscon 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 lagaranta de calidad del software as como se definen las estrategias para los planes degaranta de calidad del software.
8/4/2019 _IngenieriadeSoftware
5/143
Ingeniera de Software
5
La ingeniera de software es el proceso de construir aplicaciones de tamao o alcanceprcticos, en las que predomina el esfuerzo del software y que satisfacen losrequerimientos de funcionalidad y desempeo. La ingeniera de software, ofrecemtodos y tcnicas para desarrollar, mantener, producir y asegurar software de
calidad.Por tal razn, este curso terico pretende describir los aspectos tcnicos y de gestinde la Ingeniera de Software, as como de establecer la importancia de la garanta decalidad del software.
8/4/2019 _IngenieriadeSoftware
6/143
Ingeniera de Software
6
INTRODUCCIN
La ingeniera de software es una disciplina que integra procesos, mtodos yherramientas para el desarrollo de software. Varios son los modelos de procesos que sehan propuesto para la ingeniera de software, cada uno presenta ventajas ydesventajas, 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 Ingenieradel Software
ESPECIFICOS
Definicin de Ingeniera de software, producto de software, procesosde 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
UNIDAD 1.
INTRODUCCIN A LA INGENIERA DE SOFTWARE
8/4/2019 _IngenieriadeSoftware
7/143
Ingeniera de Software
7
ESTRUCTURA TEMTICA
Captulo 1. EL PRODUCTO
Leccin 1. Definicin del Producto Software.
El software es el producto que disean y construyen los ingenieros del software decualquier tamao y arquitectura.
ElSoftware
esimportante
Afecta cualquier aspecto de nuestras vidas
Afecta las actividades cotidianas
Est muy extendido en el comercio
Porque
Desde
El producto obtenido(software)
El punto de vistadel Ingeniero del
Software
El punto de vistadel Usuario
El conjunto de programas,documentos y los datos queconfiguran el software decomputadora
La informacin resultanteque hace el mundo mejor.
es es
8/4/2019 _IngenieriadeSoftware
8/143
Ingeniera de Software
8
Leccin 2. La Evolucin del Software
1Primeros Aos Segunda era 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 lamisma persona u organizacin (entornopersonalizado)
El diseo de software era realizado en la mentede alguien y no exista documentacin
Aparece la multiprogramacin y los sistemasmultiusuario
Establecimiento del software como producto y lallegada de las casas de software
El software se desarrollaba para sercomercializado
Se empez a distribuir software para grandescomputadoras y minicomputadores
Comenz a extenderse las bibliotecas desoftware
El mantenimiento de software comenz aabsorber recursos en una gran medida.
Comenz una crisis del software porque lanaturaleza personalizada de los programas hizoimposible su mantenimiento.
Tercera era Cuarta 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
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
1Roger S. Pressman. Ingeniera del software. Un enfoque prctico. Cuarta edicin.
1950 1960 1970 1980 1990 2003
Primeros Aos Segunda Era Tercera Era Cuarta Era
8/4/2019 _IngenieriadeSoftware
9/143
Ingeniera de Software
9
Leccin 3. El Software
El software se ha convertido en el elemento clave de la evolucin de los sistemas yproductos informticos, y por tal razn no se puede tomar como slo el conjunto de
programas, instrucciones y estructuras de datos. A continuacin se presentan algunascaractersticas que permiten visualizar lo que en realidad es el software.
Caractersticas del Software
Leccin 4. Aplicaciones del SoftwareEl software tiene una gran amplitud de aplicaciones. A continuacin se relacionan:
Software de Sistemas
Se desarrolla, no se fabrica: se utiliza un modelo de proceso dedesarrollo que comprende anlisis, diseo, desarrollo,implementacin y evaluacin para obtener un producto de calidad.
No se estropea, pero se deteriora: El software durante su vidasufre cambios por lo que es probable que surjan fallos y defectosque si no se corrigen permiten que el software se vayadeteriorando.
Se construye a medida: a medida que el software evoluciona secrean estndares de diseo. El software debe disearse eimplementarse para que pueda ser reutilizable.
Conjunto de programas creados como herramienta paraotros programas. Por ejemplo: compiladores, Sistemasoperativos
Software de GestinGestin de grandes cantidades de informacinalmacenadas, para facilitar la toma de decisiones. Porejemplo Bases de datos y aplicaciones de gestin deempresa
ElSoftware
8/4/2019 _IngenieriadeSoftware
10/143
Ingeniera de Software
10
Software de ingenieray cientfico
Utiliza algoritmos de manejo de nmeros, simulacin de
sistemas, utiliza software en tiempo real. Por ejemplo:aplicaciones de astronoma, vulcanologa, fabricacinautomtica.
Software de tiemporeal
El software que coordina / analiza/ controla sucesos delmundo real conforme ocurren, se denomina de tiemporeal.
Software empotrado Reside en memoria de slo lectura y se utiliza paracontrolar productos y sistemas de los mercadosindustriales. Por ejemplo, el control de las teclas de unhorno de microondas, funciones digitales en un automvil.
Software para PCAplicaciones orientadas a usuarios individuales omultiusuarios. Por ejemplo: procesadores de texto, hojasde clculo, juegos, aplicaciones financieras, gestores debases de datos.
Software deInteligencia Artificial
Hace uso de algoritmos no numricos para resolverproblemas complejos. Por ejemplo: sistemas expertos,redes neuronales, robtica, prueba de teoremas y juegos.
8/4/2019 _IngenieriadeSoftware
11/143
Ingeniera de Software
11
Leccin 5. Mitos del software
Los mitos de software propagaron informacin errnea y confusin, lo que conllevo a lacrisis del software durante los primeros aos del desarrollo del software.
Mitos de Gestin
Tenemos ya un libro que est lleno de estndares y procedimientos paraconstruir software, no le proporciona ya a mi gente todo lo que necesita saber?
Mi gente dispone de las herramientas de desarrollo de software msavanzadas, despus de todo, les compramos las computadoras ms modernas.
Si fallamos en la planificacin, podemos aadir ms programadores y adelantarel tiempo perdido.
Mitos del Cliente
Una declaracin general de los objetivos es suficiente para comenzar a escribirlos programas.
Los requisitos del proyecto cambian continuamente, pero los cambios puedenacomodarse 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 decomprobar su calidad.
Lo nico que se entrega al terminar el proyecto es el programa funcionando.
8/4/2019 _IngenieriadeSoftware
12/143
Ingeniera de Software
12
ACTIVIDADES COMPLEMENTARIAS
1. Muchos autores han tratado el impacto de la era de la informacin. D variosejemplos (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 seincluyen: aplicaciones avanzadas basadas en Web, realidad virtual, redesneuronales artificiales, interfaces humanas avanzadas y agentes inteligentes.
3. Analice y describa la Realidad para cada uno de los mitos descritos en elnumeral 1.5.
CONSULTAS WEB
http://www.rspa.com/spi/glossary.html, Glosario de trminos de software.
http://books.google.com.co/books?id=ytdKQGJ8f_AC&lpg=PA4&ots=hSqsOPw078&dq=Software%20Myths&pg=PA5 , encuentra un libro con informacin sobre losmitos del software.
http://www.rspa.com/spi/glossary.htmlhttp://books.google.com.co/books?id=ytdKQGJ8f_AC&lpg=PA4&ots=hSqsOPw078&dq=Software%20Myths&pg=PA5http://books.google.com.co/books?id=ytdKQGJ8f_AC&lpg=PA4&ots=hSqsOPw078&dq=Software%20Myths&pg=PA5http://books.google.com.co/books?id=ytdKQGJ8f_AC&lpg=PA4&ots=hSqsOPw078&dq=Software%20Myths&pg=PA5http://books.google.com.co/books?id=ytdKQGJ8f_AC&lpg=PA4&ots=hSqsOPw078&dq=Software%20Myths&pg=PA5http://www.rspa.com/spi/glossary.html8/4/2019 _IngenieriadeSoftware
13/143
Ingeniera de Software
13
Captulo 2. EL PROCESO
Es una serie de pasos a seguir para construir un producto o un sistema. El proceso delsoftware es importante porque proporciona estabilidad, control y organizacin a una
actividad que puede, si no se controla, volverse catica.Leccin 6. Definicin de Ingeniera de Software
de
para
de
es
Ingeniera de software
el conjunto
Principios Mtodos Tcnicas
Desarrollar Mantener
Software
Calidad
8/4/2019 _IngenieriadeSoftware
14/143
Ingeniera de Software
14
A nivel internacional, la Ingeniera de Software empieza a tomar un papel fundamental ycomo un rea de la Ingeniera. A continuacin se relacionan algunas definiciones deIngeniera del Software:
1 Zelkovitz. Principles of Software Engineering and Design.Ingeniera de Software es el estudio de los principios y metodologas paradesarrollo y mantenimiento de sistemas de software.
Boehm. Software Engineering.Ingeniera de Software es la aplicacin prctica del conocimiento cientficoen el diseo y construccin de programas de computadora y ladocumentacin asociada requerida para desarrollar, operar y mantenerlos.
Bauer. Software Engineering.Ingeniera del software trata del establecimiento de los principios ymtodos de la ingeniera a fin de obtener software de modo rentable quesea fiable y trabaje en mquinas reales.
Pressman. Ingeniera de SoftwareLa Ingeniera de/l software es una disciplina o rea de la informtica oCiencias de la Computacin, que ofrece mtodos y tcnicas paradesarrollar y mantener software de calidad que resuelven problemas detodo tipo.
2
3
4
Braude. Ingeniera de SoftwareLa ingeniera de software es el proceso de construir aplicaciones detamao o alcance prcticos, en las que predomina el esfuerzo del softwarey que satisfacen los requerimientos de funcionalidad y desempeo.
5
IEEELa aplicacin de un enfoque sistemtico, disciplinado y cuantificable haciael desarrollo, operacin y mantenimiento del software; es decir, laaplicacin de ingeniera al software.
6
8/4/2019 _IngenieriadeSoftware
15/143
Ingeniera de Software
15
Leccin 7. Esquema de la Ingeniera de Software
Imagen tomada de http://dis.um.es/~jnicolas/09BK_FIS.html
Es muy simple el esquema que consiste en desarrollar un programa sencillo queresuelve una tarea bien determinada. Lo normal es que se evolucione al desarrollo deun
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 quepueden trabajar en varios entornos.
8/4/2019 _IngenieriadeSoftware
16/143
Ingeniera de Software
16
Leccin 8. Esencia de la Ingeniera de Software
Imagen tomada de http://www.um.es/docencia/barzana/IAGP/IAGP2-Metodologias-de-desarrollo.html
Esta figura podra resumir buena parte de la esencia del curso: en el desarrollo desoftware (una entidad "compleja") se producen problemas de comunicacin a variosniveles: entre usuarios y desarrolladores y entre los componentes mismos del equipo dedesarrollo.
Se estudiarn las tcnicas, mtodos y herramientas de ingeniera que puedan hacerque estos problemas se minimicen, e incluso que desaparezcan.
8/4/2019 _IngenieriadeSoftware
17/143
Ingeniera de Software
17
Leccin 9. Proceso, Mtodos y Herramientas
La ingeniera del software es una tecnologa multicapa, y que se apoya sobre unenfoque de calidad.
Enfoque de calidad Gestin total de calidad. Cultura continua de mejorasde procesos.Proceso Define un nmero de actividades del marco de trabajo
aplicables a todos los proyectos del software.Mtodos Indican cmo construir tcnicamente el software.
Abarcan una gran gama de tareas que incluyenanlisis de requisitos, diseo, construccin deprogramas, pruebas y mantenimiento.
Herramientas Soporte automtico o semi-automtico para el procesoy los mtodos
La ingeniera es el anlisis, diseo, construccin, verificacin y gestin de entidadestcnicas.
El trabajo que se asocia a la ingeniera del software se puede dividir en tres fases, conindependencia del rea de aplicacin, tamao o complejidad del proyecto.
Enfoque de calidad
Herramientas
Proceso
Mtodos
8/4/2019 _IngenieriadeSoftware
18/143
Ingeniera de Software
18
1 Fase de definicinSe 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, yqu 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:
ooo Ingeniera de Sistemas o de informacinooo Planificacin del proyecto softwareooo Anlisis de requerimientos
2 Fase de desarrolloSe centra en el cmo. Definir cmo han de disearse las estructuras de
datos, cmo ha de implementarse la funcin dentro de una arquitectura desoftware, cmo ha de implementarse los detalles procedimentales, cmohan de caracterizarse interfaces, cmo ha de traducirse el diseo en unlenguaje de programacin y cmo ha de realizarse la prueba.Las tareas especficas de esta fase son:
ooo Diseo del softwareooo Generacin de cdigoooo Prueba del software
3 Fase de mantenimientoSe 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:
ooo Correccinooo Adaptacinooo Mejoraooo Prevencin
8/4/2019 _IngenieriadeSoftware
19/143
Ingeniera de Software
19
Leccin 10. El Proceso del Software
Un proceso de software se puede caracterizar as:
Marco de trabajo comn del proceso
Actividades de Proteccin
Actividades del marco de trabajo
Conjuntos de tareas
TareasHitos, entregasPuntos SQA
Son independientes decualquier actividad del marcode trabajo y aparecen durantetodo el proceso.
Permiten que las actividades delmarco de trabajo se adapten alas caractersticas del proyectodel software y a los requisitos del
proyecto.
Aplicables a todos los proyectos desoftware, con independencia de sutamao o complejidad.
8/4/2019 _IngenieriadeSoftware
20/143
Ingeniera de Software
20
Captulo 3. MODELOS DE PROCESO DEL SOFTWARE
Es importante incorporar estrategias de desarrollo que acompae al proceso, mtodos ya las herramientas.
Una estrategia a menudo de llama modelo de proceso o paradigma de ingeniera delsoftware. Se selecciona un modelo de proceso para la ingeniera del software segn lanaturaleza del proyecto y de la aplicacin, los mtodos y las herramientas a utilizarse, ylos controles y entregas que se requieren.
Leccin 11. Modelo Lineal Secuencial
Llamado algunas veces ciclo de vida bsico o modelo en cascada, el modelo linealsecuencial 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 sinotoda la vida del producto: las pruebas, el uso (la vida til del software) y elmantenimiento.
Ingenieradel Sistema
Anlisis
Diseo
Codificacin
Prueba
Utilizacin
Mantenimiento
8/4/2019 _IngenieriadeSoftware
21/143
Ingeniera de Software
21
Ingeniera delSistema
Anlisis de las caractersticas y el comportamiento del sistema delcual 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 estosrequisitos y funciones al software.Para un sistema ya existente: se debe analizar el funcionamientode la organizacin y sus operaciones y se asigna al softwareaquellas funciones que se van a automatizar.Est formado por diagramas y por descripciones en lenguajenatural.
Anlisis Se debe comprender cules son los datos que se van a manejar,cul va a ser la funcin que tiene que cumplir el software, culesson las interfaces requeridas y cul es el rendimiento y otrosrequisitos no funcionales que se esperan lograr.
Los requisitos, tanto del sistema como del software debendocumentarse y revisarse con el cliente. Como resultado del lafase de anlisis, se obtiene la especificacin de requisitos delsoftware.Tambin est formado por diagramas y descripciones en lenguajenatural.
Diseo El diseo se aplica a cuatro caractersticas distintas del software: laestructura de los datos, la arquitectura de las aplicaciones, laestructura interna de los programas y las interfaces.El diseo es el proceso que traduce los requisitos en unarepresentacin del software de forma que pueda conocerse la
arquitectura, funcionalidad e incluso la calidad del mismo antes decomenzar la codificacin.En el diseo, los requisitos del software se traducen a una serie dediagramas que representan la estructura del sistema software, desus datos, de sus programas y de sus interfaces.
Codificacin Consiste en la traduccin del diseo a un formato que seacomprensible para la mquina. Si el diseo es lo suficientementedetallado, la codificacin es relativamente sencilla, y puedehacerse de forma automtica, usando generadores de cdigo.Se traducen los diagramas de diseo a un lenguaje fuente, queluego se traduce - se compila - para obtener un programa
ejecutable.Prueba El objetivo es comprobar que no se hayan producido errores enalguna de las fases anteriores, especialmente en la codificacin.Se deben probar todas las sentencias, y todos los mdulos queforman parte del sistema.
Utilizacin El software se entrega al cliente y comienza la vida til del mismo.Mantenimiento El software sufrir cambios a lo largo de su vida til. Estos cambios
8/4/2019 _IngenieriadeSoftware
22/143
Ingeniera de Software
22
pueden ser debidos a tres causas:Que, durante la utilizacin, el cliente detecte errores en elsoftware: los errores latentes.Que se produzcan cambios en alguno de los componentes del
sistema.Que el cliente requiera modificaciones funcionales nocontempladas en el proyecto.
Leccin 12. Modelo de Construccin de Prototipos
No
S
Identificar los
requerimientosconocidos
Desarrollarmodelo que
funcione
Utilizar elprototipo
Revisar elprototipo
PrototipoTerminado?
Abandonar laaplicacin
Implantar la aplicacin Volver a desarrollar la
aplicacin Comenzar un nuevo
8/4/2019 _IngenieriadeSoftware
23/143
Ingeniera de Software
23
Paso DescripcinIdentificar losrequerimientos
conocidos
Los analistas y los usuarios trabajan juntos para identificar losrequerimientos conocidos que tienen que satisfacerse.
Se debe: determinar los fines del sistema y el alcance de sucapacidad.Paso Descripcin
Desarrollarmodelo quefuncione
Los desarrolladores explican a los usuarios: El mtodo Las actividades a realizar La secuencia en que se llevar a cabo La responsabilidad de cada participanteEl proceso de construccin del prototipo se debe iniciar con eldesarrollo de un plan general que permita conocer el procesode desarrollo.
Es importante definir un cronograma para el inicio y fin de laprimera iteracin.
El desarrollador estima los costos asociados con el desarrollo
del prototipo.En el desarrollo del prototipo se preparan los siguientescomponentes: 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 lasespecificaciones de salida o de diseo del software.
Utilizar elprototipo
La responsabilidad de trabajar con el prototipo y evaluar suscaractersticas y operacin es del usuario.La experiencia con el sistema bajo condiciones reales permitedeterminar los cambios o mejoras o eliminar caractersticasinnecesarias.
Debe
describir
PrimeraIteracin
Los reportes y documentos que elsistema debe proporcionar
El formato de cada uno de ellos.
8/4/2019 _IngenieriadeSoftware
24/143
Ingeniera de Software
24
Paso DescripcinRevisar elprototipo
Se realiza la evaluacin y con la informacin obtenida se levantanlas caractersticas que debe llevar la siguiente versin del
prototipo.La evaluacin permite profundizar los rasgos de los usuarios y losde la organizacin que tienen influencia sobre la aplicacin y en suimplementacin.Los cambios en el prototipo son planificados con los usuarios antesde llevarlos a cabo por el analista.
Prototipoterminado?
Los pasos anteriores se repiten varias veces (4 o 6 iteraciones)cuando los usuarios y desarrolladores estn de acuerdo en que elsistema ha evolucionado lo suficiente e incluye todas lascaractersticas necesarias.
Cuando el prototipo est terminado, el paso que sigue acontinuacin es tomar la decisin sobre cmo proceder, para locual existen cuatro opciones:
Abandonar la aplicacinSe descartan el prototipo y la aplicacin. El desarrollo del prototipoproporcion informacin a partir de la cual se determin que laaplicacin o el enfoque seleccionado son inapropiados para
justificar un desarrollo adicional.
Implantar el prototipoLas caractersticas y funcionamiento del prototipo satisfacen las
necesidades de los usuarios ya sea en forma permanente o paraun futuro.
Volver a desarrollar la aplicacinEl desarrollo del prototipo proporcion suficiente informacin paradeterminar las caractersticas necesarias de toda la aplicacin. Lainformacin se utiliza como punto de partida para el desarrollo dela aplicacin en forma tal haga el mejor uso posible de losrecursos.
Comenzar un nuevo prototipoLa informacin ganada con el desarrollo del prototipo inicial
sugiere otras opciones o circunstancia. Se construye un prototipodiferente para aadir informacin relacionada con losrequerimientos de aplicacin.
8/4/2019 _IngenieriadeSoftware
25/143
Ingeniera de Software
25
Un prototipo puede tener alguna de las tres formas siguientes:
Leccin 13. Modelo DRA (Desarrollo Rpido de Aplicaciones)
1 Un prototipo, en papel o ejecutable en computador, que describa lainteraccin hombre-mquina y los listados del sistema.
2 Un prototipo que implemente algn(os) subconjunto(s) de la funcinrequerida, y que sirva para evaluar el rendimiento de un algoritmo o lasnecesidades de capacidad de almacenamiento y velocidad de clculo delsistema final.
3 Un programa que realice en todo o en parte la funcin deseada pero quetenga caractersticas que deban ser mejoradas durante el desarrollo delproyecto.
en un
que
de
es un
DRA
modelo de proceso
desarrollo de software
Enfatiza
Ciclo dedesarrollo
corto
8/4/2019 _IngenieriadeSoftware
26/143
Ingeniera de Software
26
El proceso DRA permite al equipo de desarrollo crear un sistema completamentefuncional dentro de periodos cortos de tiempo (de 60 a 90 das). El enfoque DRAcomprende las siguientes fases:
Equipo N. 1
Equipo N. 2
Modelado
de gestin
Modeladode datos
Modeladodeprocesos
Pruebas yentrega
Generacindeaplicaciones
60-90 das
Modeladode gestin
Modeladode datos
Modeladode
procesos
Pruebas yentrega
Generacinde
aplicaciones
Modelado
de gestin
Modelado
de datos
Modeladodeprocesos
Pruebas y
entrega
Generacindeaplicaciones
Equipo N. 3
8/4/2019 _IngenieriadeSoftware
27/143
Ingeniera de Software
27
Modelado degestin
El flujo de informacin entre las funciones de gestin se modela deforma que responda a las siguientes preguntas: Qu informacinconduce al proceso de gestin? Qu informacin se genera?
Quin la genera? A dnde va la informacin? Quin laprocesa?Modelado dedatos
Conjunto de objetos de datos necesarios para apoyar la empresa.Se definen las caractersticas (atributos) de cada uno de losobjetos y las relaciones entre estos objetos.
Modelado delproceso
Los objetos de datos definidos en la fase de modelado de datosquedan transformados para lograr el flujo de informacin necesariopara implementar una funcin de gestin. Las descripciones delproceso se crean para aadir, modificar, suprimir o recuperar unobjeto de datos.
Generacin de
aplicaciones
El DRA asume la utilizacin de tcnicas de cuarta generacin. En
lugar de crear software con lenguajes de programacin de tercerageneracin, el proceso DRA trabaja para volver a utilizarcomponentes de programas ya existentes o crear componentesreutilizables.
Pruebas yEntrega
Como el proceso DRA enfatiza la reutilizacin, ya se hancomprobado muchos de los componentes de los programas. Estoreduce tiempo de pruebas. Sin embargo, se deben probar todoslos componentes nuevos y se deben ejercitar todas las interfaces afondo.
Leccin 14. Modelos de Procesos Evolutivos de Software
cada vezpor
se
sonLos
modelosevolutivos
iterativos
caracterizan desarrollarversiones
ms completasdel software
8/4/2019 _IngenieriadeSoftware
28/143
Ingeniera de Software
28
3.14.1 El Modelo Incremental
El modelo incremental se centra en la entrega de un producto operacional con cadaincremento.
Los primeros incrementos son versiones incompletas del producto final, peroproporcionan al usuario la funcionalidad necesaria para su evaluacin.
lael
combina
El modelo incremental
Modelo lineal secuencial Construccin de prototipos
ara
Entregar el software
en
Partes pequeas
llamadas
Incrementos
8/4/2019 _IngenieriadeSoftware
29/143
Ingeniera de Software
29
Anlisis Diseo Cdigo Prueba
Ingeniera de
Sistemas / Informacin incremento 1
Entrega
1er. Incremento
Anlisis Diseo Cdigo PruebaEntrega
2do. Incrementoincremento 2
Anlisis Diseo Cdigo PruebaEntrega
3er. Incrementoincremento 3
Anlisis Diseo Cdigo PruebaEntrega
4to. Incrementoincremento 4
Tiempo
3.14.2 El Modelo Espiral
En las primeras iteraciones, la versin incremental podra ser un modelo en papel o unprototipo.
Durante las ltimas iteraciones, se producen versiones cada vez ms completas delsistema diseado.
proporciona
conjugaes unproceso de
softwareevolutivo
ModeloEspiral
construccin de prototipos
modelo lineal secuencial
Un desarrollo rpido deversiones incremntales delsoftware
8/4/2019 _IngenieriadeSoftware
30/143
Ingeniera de Software
30
Actividadesdel modeloen espiral
Comunicacin con el cliente: Se establece comunicacinentre el desarrollador y el cliente.
Planificacin: Se definen los recursos, el tiempo y otrainformacin relacionados con el proyecto.
Anlisis de riesgos: Se evalan riesgos tcnicos y de gestin
Ingeniera: Se construyen una o ms representaciones de laaplicacin.
Construccin y accin: Construir, probar, instalar yproporcionar soporte al usuario.
Evaluacin del cliente: Se obtiene la reaccin del cliente. Serealiza la evaluacin de las representaciones del softwarecreadas durante la etapa de ingeniera e implementada durantela etapa de instalacin.
8/4/2019 _IngenieriadeSoftware
31/143
Ingeniera de Software
31
El equipo de ingeniera del software gira alrededor de la espiral en la direccin de lasagujas 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 unprototipo y progresivamente versiones mas sofisticadas del software. Cada paso por laregin de planificacin produce ajustes en el plan del proyecto. El costo y laplanificacin se ajustan con la realimentacin ante la evaluacin del cliente. Adems, elgestor del proyecto ajusta el nmero planificado de iteraciones requeridas paracompletar el software.
Leccin 15. Modelo de Mtodos Formales y Tcnicas de Cuarta Generacin
El modelo de mtodos formales comprende un conjunto de actividades que conducen ala especificacin matemtica del software de computadora. Los mtodos formales
permiten que un ingeniero de software especifique, desarrolle y verifique un sistemabasado en computadora aplicando una notacin rigurosa y matemtica.Este enfoque es llamado ingeniera del software de sala limpia. Cuando se utilizanmtodos formales se descubren y corrigen ambigedades, inconsistencias y errores.
Las tcnicas de cuarta generacin, abarcan un conjunto de herramientas que facilitan alingeniero del software la especificacin de las caractersticas del software a alto nivel.La herramienta genera automticamente el cdigo fuente basndose en laespecificacin del tcnico. Cuanto mayor sea el nivel en el que se especifique elsoftware, 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 grficasque describa el problema que hay que resolver en trminos que los entienda el cliente.
las etapas
incluyeEl paradigmaT4G
Lenguajes no procedimentales de consulta a bases dedatos
Generacin de informesManejo de datosInteraccin y definicin de pantallasGeneracin de cdigosCapacidades grficasGeneracin automatizada de HTML
Recoleccin de requisitos: descritos por los clientes Diseo de prototipo Desarrollo de prototipo operativo Implementacin Documentacin y Mantenimiento
8/4/2019 _IngenieriadeSoftware
32/143
Ingeniera de Software
32
ACTIVIDADES COMPLEMENTARIAS
1. Las capas de la Ingeniera del Software sita las tres capas encima de la capatitulada enfoque de calidad. Esto implica un programa de calidad tal como
Gestin de Calidad Total. Investigue y desarrolle un esquema de los principiosclave de un programa de Gestin de Calidad Total.
2. Elabore y proporcione una tabla donde se especifiquen las ventajas ydesventajas de los diferentes paradigmas de ingeniera de software.
3. Qu paradigmas de ingeniera del software de los presentados piensa que serael ms eficaz? Por que?
4. Qu es ms importante, el producto o el proceso?
8/4/2019 _IngenieriadeSoftware
33/143
Ingeniera de Software
33
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 Addisonwesley. 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.comhttp://www.wiley.com/college/braudehttp://www.minerva.uevora.pt/simposio/comunicacoes/rigomezmarino.htmlhttp://apuntes.rincondelvago.com/trabajos_global/informatica/9/http://www.comp.lancs.ac.uk/computing/resources/IanS/SE6/PDF/SEGlossary.pdf
http://www.ilustrados.com/publicaciones/EpyVZFEVukfVKPBUot.phphttp://www.angelfire.com/scifi/jzavalar/apuntes/IngSoftware.htmlhttp://www.monografias.com/trabajos5/inso/inso.shtmlhttp://www.ii.uam.es/~jlara/docencia/is1.2003/recursos.html
8/4/2019 _IngenieriadeSoftware
34/143
Ingeniera de Software
34
INTRODUCCIN
La gestin y planificacin de proyectos es una actividad que empieza antes de iniciarcualquier actividad tcnica y contina a lo largo de la definicin, del desarrollo y delmantenimiento 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 desoftware.
ESPECIFICOS
Determinar como se debe gestionar el personal, el proceso y elproblema durante un proyecto de software.
Identificar las mtricas de software y cmo pueden emplearse paragestionar el proceso de software y el proyecto llevado a cabo comoparte 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.
UNIDAD 2.
GESTIN Y PLANIFICACIN DE PROYECTOS SOFTWARE
8/4/2019 _IngenieriadeSoftware
35/143
Ingeniera de Software
35
ESTRUCTURA TEMTICA
Captulo 4. CONCEPTOS SOBRE GESTION DE PROYECTOS
Leccin 16. Gestin de Proyectos
La gestin de un proyecto de software se centra en:
mientras
de
implica
Gestin de proyectos
Planificacin Supervisin Control
Personal Procesos Eventos
Evoluciona el Software
4 Ps
Personal Producto Proceso Proyecto
Necesidad depersonal para el
desarrollo desoftware
Objetivos ymbito del
software
Estructura queestablece un
plan detalladopara eldesarrollo del
software
Proyectos desoftware
planificados ycontrolados.
8/4/2019 _IngenieriadeSoftware
36/143
Ingeniera de Software
36
Participantes Se clasifican en:
Jefes deequipo
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 delproyecto.
Hace saber a todos los miembros del equipo que la calidad esimportante.
Equipo desoftware
Mantei, propone 3 niveles de organizacin de equipos.
Leccin 17. PersonalRecurso humano que participa y colabora en el proceso del software y su organizacinpara el desarrollo de los proyectos software de manera eficaz.
1. Gestores Superiores: se encargan de definir los aspectosdel negocio.
2. Gestores tcnicos del proyecto: se encargan deplanificar, motivar, organizar y controlar a los profesionalesque realizan el trabajo de desarrollo del software.
3. Profesionales: se encargan de proporcionan lascapacidades tcnicas necesarias para la ingeniera de un
producto o aplicacin.4. Clientes: especifican los requisitos para la ingeniera delsoftware.
5. Usuarios finales: Se encargan de interactuar con elsoftware.
Descentralizado democrticoEste equipo no tiene un jefe permanente y se nombrancoordinadores a corto plazo. Las decisiones se hacen porconsenso del grupo. La comunicacin entre los miembros del
equipo es horizontal.
8/4/2019 _IngenieriadeSoftware
37/143
Ingeniera de Software
37
CoordinacinyComunicacin
Se establecen mecanismos de comunicacin para coordinar al equipode trabajo. Se deben tener:
Descentralizado controladoEste equipo tiene un jefe definido que coordina tareasespecficas y jefes secundarios que tienen responsabilidades
sobre subtareas. La resolucin de problemas sigue siendo unaactividad del grupo, pero la implementacin de soluciones sereparte entre subgrupos por el jefe de equipo. La comunicacinentre subgrupos e individuos es horizontal. Tambin haycomunicacin vertical a lo largo de la jerarqua de control.
Centralizado controladoEl jefe del equipo se encarga de la resolucin de problemas aalto nivel y la coordinacin interna del equipo. La comunicacinentre jefe y los miembros del equipo es vertical.
Comunicacin formal: se lleva a cabo por escrito, conreuniones organizadas y otros canales de comunicacin.Incluye documentos de ingeniera de software, memorandostcnicos, documentacin, informes de seguimiento.
Comunicacin informal: es ms personal. Incluye reunionesde grupo para la divulgacin de informacin y para la
resolucin de problemas.Comunicacin electrnica: se lleva a cabo por correoselectrnicos, boletines, audioconferencias, videoconferencias.
8/4/2019 _IngenieriadeSoftware
38/143
Ingeniera de Software
38
mbito Se define:
Contexto: Cmo encaja el software a construir en un sistema,producto o contexto de negocios mayor y qu limitaciones seimponen como resultado del contexto?
Objetivos de informacin: Qu objetos de datos visibles alcliente se obtienen del software? Qu objetos de datos son
requeridos de entrada? Funcin y rendimiento: Qu funcin realiza el software paratransformar la informacin de entrada en una salida? Haycaractersticas de rendimiento especiales que abordar?
Descomposicindel problema
Comprende el anlisis de requisitos del software.
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 problemas ms pequeos queresultan ms manejables.
Leccin 18. ProductoAl 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 productodelimitarlo.
8/4/2019 _IngenieriadeSoftware
39/143
Ingeniera de Software
39
Maduracin delproblema y elproceso
Los miembros del equipo de software deben estructurar unconjunto de actividades que le permitan trabajar en cada funcindel problema.Se pueden considerar las siguientes actividades:
El trabajo del gestor del proyecto es estimar los requisitos derecursos, poner fechas de inicio y finalizacin de las tareas y losproductos a fabricar.
Descomposicindel proceso
Las actividades de: comunicacin, planificacin, anlisis de riesgo,ingeniera, construccin, entrega y evaluacin se adaptan almodelo o paradigma de desarrollo de software seleccionado.
Leccin 19. 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.
ComunicacinSe establece comunicacin entre el desarrollador y el cliente,con el propsito de obtener los requisitos del sistema.PlanificacinConjunto de tareas con el propsito de definir los recursos y laplanificacin temporal del proyecto.Anlisis del riesgoTareas requeridas para valorar los riesgos tcnicos y degestin.Ingeniera
Tareas requeridas para construir una o ms representacionesde la aplicacin.Construccin y entregaTareas requeridas para construir, probar, instalar yproporcionar asistencia al usuario.Evaluacin del clienteTareas requeridas para que el cliente evale lasrepresentaciones de software creadas durante la fase dein eniera.
8/4/2019 _IngenieriadeSoftware
40/143
Ingeniera de Software
40
Se debe:
Leccin 20. Proyecto
Se deben gestionar proyectos software de calidad para que tengan xito.
Comprender el problema asolucionar y establecer losobjetivos.
1
Mantener el equipo dedesarrollo y proporcionarincentivos.
2
Realizar seguimiento a las
actividades desarrolladasdurante el proceso comoparte de la calidad delmismo.
3
Tomar decisiones junto con
el gestor del proyecto y elequipo de desarrollo desoftware.
4
Evaluar la planificacin realy la prevista, reunir yanalizar mtricas delproyecto de software yrealimentar cada uno de los
procesos.
5
8/4/2019 _IngenieriadeSoftware
41/143
Ingeniera de Software
41
ACTIVIDADES COMPLEMENTARIAS
1. Se le ha nombrado gestor de proyecto dentro de una organizacin de sistemasde 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. Losrequisitos han sido detalladamente documentados por el cliente. Qu estructurade equipo elegira y porqu? Qu modelo(s) de proceso de software elegira ypor qu?
2. Se le ha nombrado gestor de proyecto de una pequea compaa de productossoftware. Su trabajo consiste en construir un producto innovador que combinehardware de realidad virtual con software innovador. Puesto que la competenciapor el mercado de entretenimiento casero es intensa, hay cierta presin paraterminar el trabajo rpidamente. Qu estructura de equipo elegira y porqu?Qu modelo(s) de proceso de software elegira y por qu?
8/4/2019 _IngenieriadeSoftware
42/143
Ingeniera de Software
42
Captulo 5. EL PROCESO DE SOFTWARE Y MTRICAS DEL PROYECTO
Las razones para medir los procesos del software, los productos y los recursos, son:
para
alse
de
comprende
Mtricas del
software
Mediciones
Software
aplican Proceso del software Proyecto de software
Una gama
para el
Ayudar en la estimacin, elcontrol de calidad, laevaluacin de productividad yel control de proyectos
Caracterizar: para comprender mejor los procesos, los productos, losrecursos 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.
8/4/2019 _IngenieriadeSoftware
43/143
Ingeniera de Software
43
Leccin 21 Mtricas en el Proceso y Dominios del Proyecto
Dentro de la Ingeniera del software se manejan los siguientes conceptos:
El objetivo principal de los indicadores de proceso es evaluar las condiciones defuncionamiento de un proceso y poder tener una visin de la eficacia de un procesoexistente.
Durante un tiempo considerable se recopilan las mtricas de todos los proyectos y seproporcionan los indicadores para obtener mejoras e el software.
Medida: Proporciona unaindicacin cuantitativa de laextensin, cantidad,dimensiones, capacidad otamao de algunos atributosde un proceso o producto.
Medicin: es el acto de determinar unamedida.
Mtrica: Una medida cuantitativa delgrado en que el sistema, componente oproceso posee un atributo dado.
Indicador: es una mtrica o una combinacin de mtricas queproporcionan una visin profunda del proceso del software, del proyecto desoftware o del producto en s. Un indicador proporciona una visin profunda
que permite al gestor de proyectos o a los ingenieros de software ajustar elproducto, el proyecto o el proceso.
permiten
Los indicadoresde proyecto
1
Evaluar elestado delproyecto
2
Hacerseguimientoa los riesgos
potenciales
3
Detectar lasreas problemasantes de que se
conviertan encrticas
4
Ajustar elflujo y lastareas del
trabajo
5
Evaluar la habilidaddel equipo paracontrolar la calidad
de los productossoftware.
8/4/2019 _IngenieriadeSoftware
44/143
Ingeniera de Software
44
Para mejorar cualquier proceso se debe:
De acuerdo a la figura:
El producto, la tecnologa y las personas tienen una fuerte influencia en el desarrollo yla calidad del software. El proceso se encuentra dentro de unas condiciones de entornoque incluyen: entornos de desarrollo, condiciones del negocio, y caractersticas del
cliente. Estas condiciones, son de gran importancia puesto que permiten definir lasreglas 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 segnlos resultados que provienen del proceso.
Dentro de stos resultados se debe incluir:
Medir atributos del proceso
Definir y desarrollar un juego de mtricas para esos atributos
Utilizar las mtricas para encontrar indicadores para la estrategia de mejora
Producto
TecnologaPersonas
Proceso
Condicionesdel negocio
Caractersticasdel cliente
Entorno dedesarrollo
Figura tomada de Roger Presuman. Ingeniera de Software
Medida de errores detectados antes de la entrega del software
Defectos detectados
Productos de trabajo entregados
Esfuerzo humano y tiempo consumido
Ajuste con la planificacin
8/4/2019 _IngenieriadeSoftware
45/143
Ingeniera de Software
45
Tambin se debe incluir mtricas para medir las caractersticas de tareas especficas dela ingeniera del software.
Leccin 22. Mejora Estadstica del Proceso del Software (MEPS)
Para una organizacin es importante estar a gusto con la recopilacin y la utilizacin demtricas de proceso, de stas se deriva la identificacin de indicadores llevando a un
enfoque ms riguroso denominado Mejora estadstica de proceso del software(MEPS).
y
para
del
utiliza
MEPS
Anlisis de fallos
Software
Recopilar informacin
de
Errores Defectos
Medida del tiempo y del esfuerzo para llevar a cabo actividadesde proteccin
Actividades genricas de ingeniera del software
8/4/2019 _IngenieriadeSoftware
46/143
Ingeniera de Software
46
Para realizar un anlisis de fallos se deben seguir los siguientes pasos:
Para determinar las principales causas que pueden ocasionar defectos en el software ycon base en ello extraer los indicadores que permitan a una organizacin de softwaremodificar su proceso para reducir la frecuencia de errores y defectos se utiliza eldiagrama de espina.
Error Es alguna fisura descubierta por los ingenieros del softwareantes de que el software sea entregado al usuario final
Defecto Es alguna fisura descubierta despus de la entrega delsoftware al usuario final
1 Categorizar por origen, todos los errores y defectos.
2 Registrar el costo de corregir cada error y el del defecto
3 Contar el nmero de errores y de defectos de cada categora y se ordenar por ordendescendente
4 Computar el costo global de errores y defectos de cada categora.
5 Los datos resultantes se analizan para detectar las categoras que producen uncosto alto para la organizacin
6 Desarrollar planes para eliminar los errores y defectos ms costosos.
8/4/2019 _IngenieriadeSoftware
47/143
Ingeniera de Software
47
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 lalnea central.
Por ejemplo:Se han encontrado y determinado las siguientes causas y su origen en un proyecto desoftware:
Origen de errores / defectos Causa %Especificacin / requisitos Lgica 20
Manejo de datos 10.9estndares 6.9
Diseo Especificaciones 25.5Cdigo Interfaz software 6.0
Interfaz hardware 7.7Comprobacin de errores 10.9Interfaz de usuario 11.7
ProblemaPrincipal
R%
Causapotencial No. 1
Q1%
Causapotencial no. 2
Q2%
Causapotencial n
Qi%
Causapotencial n+1
Qi%
Ci, j
Ci, j
Ci, j : Causa asociada a cada subproblema
Qi %: Porcentaje de relevancia del subproblema
R% : Porcentaje de relevancia del problema principal
8/4/2019 _IngenieriadeSoftware
48/143
Ingeniera de Software
48
Si tomamos la causa Especificaciones y utilizamos un diagrama de espina paraidentificar las causas especficas para este problema, tenemos:
Leccin 23. Mtricas del Proyecto
Las mtricas del proyecto de software sugieren que los proyectos deben medir:
Se utilizan
Defectos deespecificacin
25.5%
Incorrecto Cambios
Perdido Ambiguo
El cliente dioinformacin equivocada
Informacin desactualizada
Cliente consultadono adecuado
Insuficienteinformacin solicitada
Mtricas de proyecto
Para minimizar la planificacinde desarrollo, ya que serealizan ajuste y se reduce losretrasos
Para evaluar la calidad de losproductos. A medida quemejora la calidad se minimizanlos defectos.
Entradas: la dimensin de los recursos que se requieren para realizar el trabajo
2 Salidas: medidas de las entradas o productos creados durante el proceso deingeniera del software
3 Resultados: medidas que indican la efectividad de las entregas.
1
8/4/2019 _IngenieriadeSoftware
49/143
Ingeniera de Software
49
Leccin 24. Mediciones del Software
Las mtricas del software se pueden categorizar en:
El domino de las mtricas del software se dividen en mtricas de proceso, proyecto yproducto.
5.24.1 Mtricas orientadas al tamao
Provienen de la normalizacin de las medidas de calidad y/o productividadconsiderando el tamao del software que se haya producido.Los datos que se deben tener en cuenta, se pueden llevar en la siguiente tabla:
Proyecto LDC Esfuerzo Costo $ Pginas dedocumentacin
Errores Defectos Personas
IRIS 18.200 24 200.000 945 134 86 4
Teniendo en cuenta los datos de la tabla, se pueden derivar otras mtricas paracomparar 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
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
8/4/2019 _IngenieriadeSoftware
50/143
Ingeniera de Software
50
5.24.2 Mtricas orientadas a la funcin
Los puntos de funcin se obtienen utilizando una funcin emprica basado en medidascuantitativas del dominio de informacin del software y valoraciones subjetivas de lacomplejidad del software.
Los puntos de funcin se calculan utilizando la siguiente tabla:
Parmetros demedicin
Cuenta Factor de ponderacinSimple Medio Complejo
Nmero deentradas deusuario
X3 4 6
=
Nmero desalidas de usuario X
4 5 7 =
Nmero depeticiones deusuario
X3 4 6
=
Nmero dearchivos X
7 10 15 =
Nmero deinterfacesexternas
X5 7 10
=
Cuenta_total
permiten
Mtricas del software orientadas a la funcin
La medida de lafuncionalidad dela aplicacin.
Propuestas
Allan Albrecht de IBM, comenz a analizar sistemas, apedido del grupo de usuarios de IBM, buscandoidentificar los factores crticos que determinan el tamaodel software y por consiguiente, estimar el esfuerzo y elcosto de desarrollarlo. Luego de analizar cientos desistemas, naci la tcnica de Anlisis de Puntos porfuncin. La tcnica mide una aplicacin con base en lasfunciones que ste realiza para/por solicitud del usuariofinal.
8/4/2019 _IngenieriadeSoftware
51/143
Ingeniera de Software
51
Se determinan 5 caractersticas del mbito de la informacin y los clculos aparecen enla posicin apropiada de la tabla. Los valores del mbito de informacin estn definidosde la siguiente manera:
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 desarrollancriterios para determinar si una entrada es denominada simple, media o compleja. Noobstante la determinacin de la complejidad es algo subjetivo.
Para calcular los puntos de funcin se utiliza la siguiente relacin:
PF Punto de funcin
Cuenta_total Es la suma de todas las entradas obtenidasfi Donde i=1 hasta 14. Son valores de ajuste de lacomplejidad basados en las respuestas a las cuestionessealadas de la siguiente tabla:
Evaluar cada factor en escala 0 a 5
1. Nmero de entradas de usuario: se cuenta cada entrada de usuario queproporcione al software diferentes datos orientados a la aplicacin.
2. Nmero de salidas de usuario:se cuenta cada salida que proporciona al usuarioinformacin orientada a la aplicacin. En este contexto las salidas se refieren ainformes, pantallas, mensajes de error.
3. Nmero de peticiones de usuario:una peticin esta definida como una entradainteractiva que resulta de la generacin de algn tipo de respuesta en forma desalida interactiva. Se cuenta cada peticin por separado.
4. Nmero de archivos:se cuenta cada archivo maestro lgico.
5. Nmero de interfaces externas:se cuentan todas las interfaces legibles por lamaquina por ejemplo: archivos de datos, en cinta o discos que son utilizados paratransmitir informacin a otro sistema.
PF = Cuenta_total * [0.65 + 0.01 * (fi)]
8/4/2019 _IngenieriadeSoftware
52/143
Ingeniera de Software
52
0 1 2 3 4 5Noinfluencia
Incidental Moderado Medio Significativo Esencial
Fi :1 Requiere el sistema copias de seguridad y de
recuperacin fiables?2 Se requiere comunicacin de datos?3 Existen funciones de procesamiento distribuido?4 Es crtico el rendimiento?5 Se ejecutar el sistema en un entorno operativo
existente y fuertemente utilizado?6 Requiere el sistema entrada de datos interactiva?7 Requiere la entrada de datos interactiva que las
transacciones de entrada se lleven a cabo sobremltiples pantallas u operaciones?
8 Se actualizan los archivos maestros de formainteractiva?9 Son complejas las entradas, las salidas, los archivos
o las peticiones?10 Es complejo el procesamiento interno?11 Se ha diseado el cdigo para ser reutilizable?12 Estn incluidas en el diseo la conversin y la
instalacin?13 Se ha diseado el sistema para soportar mltiples
instalaciones en diferentes organizaciones?14 Se ha diseado la aplicacin para facilitar los
cambios y para ser fcilmente utilizada por el
usuario?
Una vez calculado los puntos de funcin se usan como medida de la productividad,calidad y otros productos del software.
Productividad = PF / persona-mesCalidad = Errores / PFCosto = Dlares / PFDocumentacin = Paginas Documentadas / PF
8/4/2019 _IngenieriadeSoftware
53/143
Ingeniera de Software
53
Leccin 25. Mtricas para la Calidad del Software
El objetivo de la ingeniera del software es desarrollar y producir software de altacalidad. Para lograr este objetivo, es fundamental aplicar mtodos y herramientas
efectivos dentro del contexto de un proceso maduro de desarrollo de software.
5.25.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 unerrorSe 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.
8/4/2019 _IngenieriadeSoftware
54/143
Ingeniera de Software
54
Integridad
Mide la capacidad del software para resistir ataques.
Se debe tener en cuenta los siguientes atributos:
Amenaza
Seguridad
Se define como:
Integridad = [(1-amenaza) x (1-seguridad)]
Es la probabilidad de que un ataque ocurra en un tiempodeterminado.
Es la probabilidad de que se pueda repeler el ataque de untipo determinado.
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.
8/4/2019 _IngenieriadeSoftware
55/143
Ingeniera de Software
55
5.25.2 Eficacia de la eliminacin de defectos
La eficacia de la eliminacin de defectos (EED), es una mtrica que permite medir lahabilidad 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:
E Nmero de errores encontrados antes de la entrega del softwareD Nmero de defectos encontrados despus de la entrega
5.25.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:
EED = E / (E + D)
No se han encontradodefectos en el software.
El valor ideal de EED es 1.
8/4/2019 _IngenieriadeSoftware
56/143
Ingeniera de Software
56
MedidasRecopilacin de datosRequiere una investigacin histrica de los
proyectos para reconstruir los datos requeridos
1
MtricasClculo de mtricasSe hace el clculo de mtricas una vez se handeterminado las medidas. Pueden abarcar unagran cantidad de mtricas:
LDC y PF De calidad Del proyecto
2
IndicadoresEvaluacin de mtricasSe deben evaluar las mtricas y aplicardurante: la estimacin, el control deproyectos y la mejora del proceso.Los indicadores guan el proyecto o elproceso.
3
8/4/2019 _IngenieriadeSoftware
57/143
Ingeniera de Software
57
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 ingenierade Software?
3. Sugiera tres medidas, tres mtricas y los indicadores que se podran utilizar paraevaluar un automvil.
4. Indague con algn desarrollador de software o un equipo de desarrollo desoftware 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 EngineeringInstitute -SEI) ha desarrollado una gua para establecer un programa de medicinde software dirigido hacia objetivos. Investigue y elabore un documento sobreesta gua.
EJERCICIOS1. Calcule el Punto de Funcin de un proyecto con las siguientes caractersticas del
dominio de informacin:
Nmero de entrada de usuario 32Nmero de salida de usuario 60Nmero de peticiones de usuario 24Nmero de archivos 8Nmero de interfaces externos 2
Asuma que todos los valores de ajuste de complejidad estn en la media.
8/4/2019 _IngenieriadeSoftware
58/143
Ingeniera de Software
58
Captulo 6. PLANIFICACIN DE PROYECTOS DE SOFTWARE
La Planificacin del proyecto es el conjunto de actividades con las cuales comienza lagestin de proyectos software.
La estimacin se inicia con una descripcin del mbito del producto. El problema sedescompone en un conjunto de problemas de menor tamao y cada uno de stos seestima 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 medidaque avanza el proyecto.
determina
implica
Planificacin
Estimacin
El costo El esfuerzo Los recursos El tiempo
Para construir y desarrollar unproducto software
Su resultado
Es una tabla con: Las tareas a desarrollar Las funciones a implementar El costo, esfuerzo y tiempo
necesarioPara la realizacin de cadatarea.Y, Una lista de recursos
involucra
Planificacin
mbito delsoftware
Recursos Estimacin delproyecto
Tcnicas dedescomposicin
Modelos deestimacin
8/4/2019 _IngenieriadeSoftware
59/143
Ingeniera de Software
59
Leccin 26. mbito del Software y Recursos
6.26.1. mbito del SoftwareDescribe 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 delmbito, y en algunos casos se refinan para dar mas detalles antes del comienzo de laestimacin.
comprende
mbito del software
Recoleccin de la informacinSu 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 unaentrevista preliminar.
Esta reunin o entrevista debe involucrar los siguientes tipos de preguntas:1. Preguntas de contexto libre: se centran en el cliente, en los objetivos globales
y en los beneficios. Estas preguntas deben llevar a un entendimiento bsicodel problema, las personas interesadas en la solucin y la solucin que sedesea.
2. Metacuestiones: estas preguntas se centran en la efectividad de la reunin,involucra preguntas para determinar si la persona es la apropiada pararesponder a las preguntas, si sin relevantes las preguntas para el problemaen estudio, si las respuestas son oficiales, si existe algo que se deberapreguntar.
Tambin existe otra tcnica que permite la creacin de un equipo compuesto por losclientes y los desarrolladores para identificar el problema, proponer elementos desolucin, establecer enfoques y especificar un conjunto preliminar de requisitosdenominada TFEA (Facilitated application specification techniques) Tcnica parafacilitar las especificaciones de la aplicacin.
ViabilidadSe 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 yRecursos. Tanto el equipo de desarrollo y las dems personas involucradas en elsoftware deben determinar si puede ser construido dentro de las dimensionesespecificadas.
8/4/2019 _IngenieriadeSoftware
60/143
Ingeniera de Software
60
6.26.2 Recursos
Comprende la estimacin de los recursos necesarios para emprender el desarrollo delsoftware.
Los recursos de desarrollo son:
Recurso humanoSe debe establecer el perfil y las habilidades que se necesitan del personal que senecesita para llevar a cabo el desarrollo del proyecto. Hay que especificar tanto laposicin dentro de la organizacin como la especialidad.
El nmero de personas requerido para un proyecto de software se determina despusde hacer una estimacin del esfuerzo de desarrollo.
Recursos de software reutilizable
Se destaca la reutilizacin, esto es, la creacin y la reutilizacin de bloques deconstruccin de software.
Se establecen 4 categoras de recursos de software que se deben tener en cuenta amedida que se avanza con la planificacin:
Componentes ya desarrollados: componentes que ya han sido validados totalmentese pueden utilizar e implementar en el desarrollo del proyecto actual.
Humanos
Componentes reutilizablesde software
De entorno(Hardware / software)
Gestor Ingeniero de software Analista de sistemas
8/4/2019 _IngenieriadeSoftware
61/143
Ingeniera de Software
61
Componentes ya experimentados: se puede utilizar Especificaciones, diseos,cdigo o datos de prueba existentes que ya han sido desarrollados para proyectosanteriores.
Componentes con experiencia parcial: se puede utilizar Especificaciones, diseos,cdigo o datos de prueba existentes que ya han sido desarrollados para proyectosanteriores y que requieren una modificacin sustancial.
Componentes nuevos: componentes que el equipo de software requiere construirespecficamente para el proyecto.
Recursos de entorno
El entorno es donde se apoya el proyecto de software.
Comprende
Comprende el conjunto de herramientas requeridas para producir o desarrollar elproducto software y se debe verificar que estos recursos estn disponibles.
Leccin 27. Estimacin del Proyecto de Software y Tcnicas de Descomposicin
Para realizar estimaciones seguras de costos y esfuerzos, se pueden tener lassiguientes opciones:
Hardware y Software
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.
8/4/2019 _IngenieriadeSoftware
62/143
Ingeniera de Software
62
La utilizacin de tcnicas de descomposicin y de modelos empricos, permitendescomponer el proyecto en funciones principales y en tareas lo que implica que sepueda 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 deltamao del software a construir.
6.27.1 Tamao del software
Dentro de la planificacin de proyectos, el tamao se refiere a una produccincuantificable del proyecto de software.
Se tienen 4 enfoques referentes al tamao:
El tamao se mide en LDC, si se utiliza un enfoque directo
El tamao se representa como PF, si se utiliza un enfoque indirecto.
Tamao en lgica difusa
Utiliza las tcnicas aproximadas de razonamiento. Para aplicar este enfoque sedebe: 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, lasproposiciones 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.
1
8/4/2019 _IngenieriadeSoftware
63/143
Ingeniera de Software
63
6.27.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 secalcula el valor esperado (E) con la siguiente frmula:
Tamao de componentes estndarEl software esta compuesto por un nmero de componentes estndar(subsistemas, mdulos, pantallas, informes, etc.) que son genricos para un reaen particularSe 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 deprogramacin.Esto permite que se estime que se requieren 12405 LDC para el componente deinformes.
2
Tamao del cambioEste enfoque se utiliza cuando en un proyecto se utiliza software existente y que sedebe 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 para cadatipo de cambio.
3
E = (O + 4 * M + P) / 6
8/4/2019 _IngenieriadeSoftware
64/143
Ingeniera de Software
64
6.27.3 Estimacin basada en el proceso
Esta tcnica permite, descomponer el proceso en un conjunto relativamente pequeode actividades o tareas, y en el esfuerzo requerido para llevar a cabo la estimacin de
cada tarea.Esta estimacin comprende:
Leccin 28. Modelos Empricos de Estimacin
Utilizan frmulas derivadas empricamente de una muestra limitada de proyectospara predecir el esfuerzo en funcin de LOC o PF.
La estimacin de los valores de LOC y PF se realizan utilizando las tcnicas dedescomposicin.
Los valores resultantes se aplican a la frmula del modelo que se haya escogidopara 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.
1. Delineacin de las funciones del software obtenidas a partir del mbito delproyecto.
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.
8/4/2019 _IngenieriadeSoftware
65/143
Ingeniera de Software
65
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:
COCOMO bsico. Calcula el esfuerzo y el costo del desarrollo enfuncin del tamao del programa estimado en LOC.
COCOMO intermedio. Calcula el esfuerzo del desarrollo enfuncin del tamao del programa y un conjunto de conductores decosto que incluyen la evaluacin subjetiva del producto, delhardware, del personal y de los atributos del proyecto.
COCOMO detallado. Incorpora las caractersticas de la versinintermedia y lleva a cabo una evaluacin del impacto de losconductores de costo en cada fase (anlisis, desarrollo, etc.) delproceso.
Modelos
E = a * KLOCbD = c * Ed
8/4/2019 _IngenieriadeSoftware
66/143
Ingeniera de Software
66
Donde:
E es el esfuerzo aplicado en hombre-mesD es el tiempo de desarrollo en meses
KLOC es el nmero de miles de lneas de cdigo estimado para el proyecto
Los coeficientes ay cy los exponentes by dse obtienen de la siguiente tabla:
Tipo de proyecto a b C dOrgnico 2.4 1.05 2.5 0.38Semiacoplado 3.0 1.12 2.5 0.35Empotrado 3.6 1.20 2.5 0.32
Aplicando el modelo COCOMO bsico al ejemplo anterior y usando un tipo de proyectoorgnico obtenemos una estimacin para el esfuerzo:
Para calcular la duracin del proyecto usamos la estimacin de esfuerzo:
El valor de la duracin del proyecto permite al planificador recomendar un nmero depersonas N para el proyecto.
El planificador puede decidir emplear slo una o dos personas y ampliar por tanto laduracin del proyecto.
E= 2.4 * KLOC1.05= 2.4 * 7.41.05= 20 hombre-mes
D = 2.5 * E0.38= 2.5 * 200.38= 8 meses
N = E / D= 20 / 8= 3 personas
8/4/2019 _IngenieriadeSoftware
67/143
Ingeniera de Software
67
COCOMO intermedio
En el COCOMO intermedio, la ecuacin para calcular el tiempo de desarrollo es lamisma que la del COCOMO bsico. La ecuacin para calcular el esfuerzo es:
Donde,
E es el esfuerzo en hombre-mesKLOC es el nmero estimado de miles de lneas de cdigo
El coeficiente ay el exponente bestn dados por la tabla:
Tipo de proyecto a b
Orgnico 3.2 1.05Semiacoplado 3.0 1.12Empotrado 2.8 1.20
Y
EAF Es un factor de ajuste del esfuerzo que se calcula valorando en unaescala de muy bajo, bajo, nominal, altoy muy altocada uno de lossiguientes 15 atributos, agrupados en 4 categoras. As:
Atributos del producto.
Son restricciones y requerimientos del proyecto que va a serdesarrollado. Confiabilidad requerida* Tamao de la base de datos Complejidad del producto
Atributos de computadora.Son limitaciones puestas por el hardware y el sistema operativodonde 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.
E = a* KLOCb* EAF
8/4/2019 _IngenieriadeSoftware
68/143
Ingeniera de Software
68
EAFAtributos de personal.Nivel de habilidades que tiene el personal. Son habilidadesprofesionales generales, habilidad de programacin, experiencia
con el medio ambiente de desarrollo y familiaridad con el dominiodel 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 sedesarrolla.
o Prcticas modernas de programacino 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:
Escala NmeroMuy bajo 0.75
Bajo 0.88Nominal 1Alto 1.15Muy alto 1.40
El nmero indica el grado con el que cada factor puede influenciar la productividad. Unvalor 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 losatributos marcados en (*), como los ms relevantes y que deberan ser tomados encuenta.
8/4/2019 _IngenieriadeSoftware
69/143
Ingeniera de Software
69
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:
Donde,
E Esfuerzo en hombres-ao.
t Duracin del proyecto en aos.B Factor especial de destrezas. Para programas pequeos Bvale 0.16,para programas intermedios vale 0.28, para programas mayores vale0.39.
P Parmetro de productividad, para un software de tiempo real, P vale2,000, para comunicaciones vale 10,000, para software cientfico vale12,000 y para aplicaciones comerciales de sistemas vale 28,000.
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:
E = (LOC * B0.333 / P)3 * (1 / t4)
tmin = 8.14 * (LOC / P)0.43 para tmin > 6 meses.
E = 180 * B * t3 en hombres-mes para E >= 20 hombres-mes y trepresentado en aos
8/4/2019 _IngenieriadeSoftware
70/143
Ingeniera de Software
70
Aplicando las ecuaciones al ejemplo anterior, obtenemos:
Leccin 29. Riesgo del Software
El anlisis y la gestin del riesgo son una serie de pasos que ayudan al equipo delsoftware a comprender y a gestionar la incertidumbre.
Por tal razn es importante:
Los pasos que se deben seguir son:
tmin = 8.14 * (7,400 / 12,000)0.43= 7 meses
E = 180 * 0.28 * 0.753= 21 hombres-mes
Un riesgo es un problema potencial puede ocurrir o no -.
Identificarlo Evaluar su probabilidad de aparicin, Estimar su impacto, y , Establecer un plan de contingencia por si ocurre el problema.
1 Identificar el riesgo. Reconocimiento de que algo puede ir mal.
2 Cada riesgo se analiza para determinar la probabilidad de que pueda ocurrir y eldao que puede causar si ocurre.
3 Se priorizan los riesgos, en funcin de la probabilidad y del impacto.
3 Se desarrolla un plan para gestionar aquellos riesgos con gran probabilidad eimpacto.
8/4/2019 _IngenieriadeSoftware
71/143
Ingeniera de Software
71
6.29.1. Estrategias de riesgo
Se tienen dos estrategias:
ReactivaSupervisa 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
ProactivaIdentifica los riesgos potenciales. Evaluacin previa y sistemtica de riesgos
Evaluacin de consecuenciasSe establece un plan de contingencia para controlar el riesgo.
implica
Riesgo
Incertidumbreel acontecimiento quecaracteriza al riesgopuede o no puedeocurrir.
PrdidaSi el riesgo se convierte en unarealidad, ocurrirn consecuenciasno deseadas o prdidas.
8/4/2019 _IngenieriadeSoftware
72/143
Ingeniera de Software
72
6.29.2 Categoras de riesgos
Riesgos del proyectoPueden amenazar al plan del proyecto, porque puede retrazar el proyecto y aumentar
los costos.Identifican problemas de: Presupuesto Personal Recursos Cliente Requisitos
Riesgos tcnicosAmenazan 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 negocioAmenazan la viabilidad del software a construir. Se pone en riesgo el proyecto y elproducto.
Identifican problemas de: De mercado De estrategia De ventas De gestin De presupuesto
8/4/2019 _IngenieriadeSoftware
73/143
Ingeniera de Software
73
6.29.3 Identificacin del riesgo
Existen dos tipos de riesgo:
Riesgos genricosRepresentan una amenaza potencial paratodos los proyectos de software.
Riesgos especficosImplican un conocimiento profundo delproyecto (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
tamao del producto
Se asocian los riesgos con el tamao del software a construir o
desarrollar. 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 laorganizacin
Asociados con las limitaciones impuestas por la gestin. Efecto del producto en la cifra de ventas
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
8/4/2019 _IngenieriadeSoftware
74/143
Ingeniera de Software
74
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 formalde 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 delproceso de produccin
Asociados al proceso y seguimiento del software. Hay una poltica clara de normalizacin y seguimiento de
una metodologa
Existe una metodologa escrita para el proyecto Se ha utilizado en otros proyectos Estn los gestores y desarrolladores formados Conoce t