CUERPO DE CONOCIMIENTO VERSION 2004 EDICION IEEE CAROLINA HENAO ACOSTA JUAN PABLO ORTIZ VILLEGAS UNIVERSIDAD CATOLICA POPULAR DEL RISARALDA FACULTAD DE CIENCIAS BASICAS E INGENIERIA PEREIRA NOVIEMBRE 24 DE 2009 2 CAPITULO 1 INTRODUCCION A LA GUIA Esta gua inicia con una amplia y completa introduccin sobre el concepto de Ingeniera del Software, desde la ptica de los miembros de la IEEE. La definen como una ciencia relativamente nueva y con reconocimiento en el rea de Ingeniera. La reconoce como una disciplina crucial para la evolucin de la industria de software a nivel mundial y la define como la aplicacin de un enfoque sistemtico, disciplinado y cuantificable para el desarrollo, operacin y mantenimiento de software. na profesin para ser reconocida como tal debe cumplir con un cuerpo de conocimiento basado en tres aspectos, desde el punto de vista acad!mico, moral y cognitivo" #. $ue el conocimiento y las competencias de la profesin, sean validadas por profesionales de la misma rea. %. $ue el conocimiento sea validado desde la base racional y con fundamento cientfico &. $ue el 'uicio del profesional se enfoque (acia el asesoramiento en el rea de estudio Esta gua no debe ser confundida con el cuerpo de conocimiento de la Ingeniera del Software. La finalidad de S)E*+, -.ua de la Ingeniera del Software /uerpo de /onocimiento0 es describir que parte de !ste es aceptado de manera general y se estableci con el fin de cumplir cinco ob'etivos" #. 1romover una vista general y consistente de la ingeniera del software a nivel mundial. %. 2ar claridad del conte3to en el que se aplica la ingeniera del software con respecto a otras disciplinas, como la ingeniera de sistemas, la ciencia de los computadores, la administracin de proyectos y las matemticas. &. /aracteri4ar los contenidos de esta disciplina. 5. 1roveer acceso temtico al cuerpo de conocimiento de la ingeniera del software. 6. 1roveer la fundacin de un ente para apoyar el desarrollo, certificacin y licenciamiento de material de calidad, relacionado con la disciplina. Est estructurada en #% captulos completamente divididos en subcaptulos, que e3plican todos los componentes del cuerpo de conocimiento de la ingeniera del software, basados en reas del conocimiento, esquemati4adas en los siguientes grficos" 3 4 5 CAPITULO 2 REQUERIMIENTOS DE SOFTWARE El rea del conocimiento de los requisitos de software -,70, se refiere al anlisis, especificacin y validacin de los requisitos de software. Se (a demostrado ampliamente que el (ec(o de no reali4ar bien este proceso trae consecuencias fatales en el desarrollo de cualquier producto de software. 1. Fu!"#$%&' n requisito de software es una caracterstica que se debe e3(ibir para solucionar un cierto problema en el mundo real. Se convierte en una combinacin comple'a de requisitos entregados por parte de los usuarios implicados dentro del desarrollo de la solucin, teniendo en cuenta que pueden corresponder a diferentes niveles 'errquicos, ambientes e intereses. Es importante tambi!n que cada requisito sea comprobable, pensando tambi!n en las implicaciones que esto puede conllevar. Se pueden clasificar de la siguiente manera" R$(u)')%&' !$ P*&!u+%& Se refiere a generar los parmetros del problema a solucionar para ser traducido a un software. R$(u)')%&' !$ P*&+$'& Se refiere ya a la parte t!cnica y a lo que voy a utili4ar para reali4ar el software -lengua'e de programacin, por e'emplo0. R$(u)')%&' Fu+)&",$' Son las capacidades o funciones del software. R$(u)')%&' N& Fu+)&",$' Son los que act8an para obligar a llegar a la solucin pero no son parte integral del software. C"*"+%$*-'%)+"' I$'.$*"!"' Son requisitos que se toman pero no pueden comprobarse (asta que est! funcionando el software en condiciones reales. R$(u)')%&' !$, S)'%$#" / !$ S&0%1"*$ 6 Se refiere a todo lo que necesita el software para funcionar desde el punto de vista de (ardware, software, recurso (umano, informacin, instalaciones, servicios, etc. Los requisitos de software se derivan de los del sistema. 2. P*&+$'& !$ ,&' *$(u)')%&' Inicia de manera aislada y se va refinando con el modelo de ciclo de vida del software y necesita ser adaptado a la organi4acin y al conte3to del proyecto. A2$%$' !$ P*&+$'& Incluye a todas las personas, usuarias o no, que participan en el desarrollo del proyecto. Es un grupo interdisciplinario que aporta informacin para la construccin del software. 1ueden ser usuarios, clientes, analistas de mercado, reguladores, ingenieros de software, etc. A/u!" / G$*$+)" !$ P*&+$'& Se refiere a toda la parte presupuestal y de gerencia para llevar a cabo el proyecto. C",)!"! / M$3&*" !$ P*&+$'& Se refiere al coste generado por control de calidad y a los niveles de cumplimiento para lograr el ob'etivo principal y por ende, la satisfaccin del cliente. 4. C".%u*" !$ ,&' R$(u)')%&' Se refiere al 9cmo: se van a recolectar los requisitos por parte del ingeniero de software. Es aqu donde es clave la comunicacin con el cliente y con todas las personas implicadas en el proceso. Fu$%$' !$ ,&' R$(u)')%&' 2eben ser confiables y sometidas a verificacin para confirmar que la persona que suministra la informacin es idnea para (acerlo y que se tom el tiempo para anali4ar su conveniencia. ;o solo por idoneidad sino porque en ocasiones los usuarios no son buenos escribiendo y no son claros a la (ora de (acer una solicitud. T5+)+"' !$ C".%u*" !$ R$(u)')%&' 7 menudo, el ingeniero de software utili4a t!cnicas de captura de requisitos, tales como" Entrevistas 1rototipos 7 <euniones +bservacin 4. A6,)')' !$ R$(u)')%&' Es una auditora a todo lo que se recopil. 2e aqu salen los requisitos del sistema y por ende los de software. 1ermite establecer limitaciones y viabilidad del proyecto. C,"')0)+"+)7 !$ ,&' *$(u)')%&' 1ueden clasificarse en" =uncionales o no funcionales 2e producto o de proceso 2erivado 1rioritario Estable o >oltil M&!$,& C&+$.%u", Se debe elegir un modelo conceptual que ayude a entender de una me'or manera el problema. Es una (abilidad con la que debe contar el ingeniero de software, apoyado en (erramientas que le ayuden a conte3tuali4ar el software, como el caso de ?L o el uso de la matemtica discreta. La IEEE tiene tres estndares para el modelado. Estos son" IEEE Std #&%@.# -conceptual0 I2E=@ -funcional0 IEE Std #&%@.%, I2E=#ABC -de informacin0 A')2"+)7 A*(u)%$+%7)+" !$, D)'$8& / ,&' R$(u)')%&' Es la fusin de toda la parte de requisitos con la parte de diseDo. Es inseparable esta combinacinE una es parte integral de la otra y es fcil su comprensin, apoyndose en el modelo conceptual. El estndar IEEE Std #5C#F%@@@ puede servir de apoyo en esta prctica. N$2&+)"+)7 !$ ,&' *$(u)')%&' 8 Se llega a esta etapa cuando (ay incompatibilidad en dos o ms requisitos y los solicitantes son distintos. El ingeniero de software debe reunirlos y tomar la decisin ms conveniente para el correcto funcionamiento de la solucin. 9. E'.$+)0)+"+)7 !$ R$(u)')%&' Se refiere a plasmar en un documento todos los requisitos aprobados. Someterlos a verificacin por parte de los actores del proyecto. Es usual que se (agan tres documentos" 2efinicin del sistema o documento de e3igencias <equisitos de sistema <equisitos de software Es importante esta parte porque sin aprobar alguno o todos los documentos, es imposible pasar a la etapa de diseDo. El estndar IEEE Std G&@ HIEEEG&@FBGI, apoya este proceso de especificacin de requisitos. :. V",)!"+)7 !$ ,&' R$(u)')%&' Su ob'etivo es determinar que los documentos reali4ados sean comprensibles y de acuerdo a los estndares determinados. 1or esto, deben someterse a una auditora final reali4ada por todo el personal implicado en el desarrollo del software -cliente0, para asegurarse de que lo plasmado all es lo que se solicit. R$;)')&$' !$ ,&' *$(u)')%&' Se nombra un comit! revisor, que incluye a un representante del cliente, con el fin de evaluar los documentos ya mencionados. El estndar IEEE Std #@%G proporciona ayuda valiosa en la tarea de revisin. P*&%&%)."!& Es un medio que utili4a el ingeniero de software para manifestar lo que entendi y para facilitar la correccin, eliminacin o adicin de requisitos. /omo se evidencia, la venta'a de (acerlo es grande pero el costo puede ser alto. P*u$<"' !$ A+$.%"+)7 Son aquellas que se le aplican a cada requisito para determinar si el producto final lo satisface o no. 2ebe (aber total planeacin para aplicar estas pruebas y (acerlo de manera cuantitativa. 9 /omo conclusin para este captulo puede afirmarse que los requisitos de software deben tomarse como una prctica seria, asignndole el tiempo y los recursos necesarios que permitan continuar con un proceso ordenado para llegar a obtener un software de calidad. 10 CAPITULO 4 DISE=O DE SOFTWARE Es definido por la IEEE como el proceso para definir la arquitectura, los componentes, las interfaces y otras caractersticas de un sistema. >isto como proceso, el diseDo del software es la actividad del ciclo de vida en la cual se anali4an los requisitos del software para producir una descripcin de su estructura interna que servir como base para su construccin. 1. Fu!"#$%&' P*&+$'& !$ !)'$8& !$ '&0%1"*$ Se divide en dos etapas" D)'$8& A*(u)%$+%7)+& 2escompone el software en componentes y describe sus partes a nivel general, de estructura. D)'$8& D$%",,"!& 2escribe el comportamiento especfico de estos componentes. E3isten t!cnicas permisibles que permiten (acer un acercamiento al diseDo de software. Estas son algunas" A<'%*"++)7 Es el proceso de olvidarse de la informacin para poder tratar las cosas que son diferentes como si fueran iguales. A+&.,"!&* / C&>$')7 El acoplador es la fuer4a de las relaciones entre los mdulos y la co(esin se refiere a la relacin que e3iste entre estos mdulos. D$'+&#.&')+)7 / M&!u,"*)?"+)7 Esta t!cnica se utili4a para poner diversas funcionalidades en componentes ms pequeDos. E+".'u,"+)7 1ermite empaquetar informacin y (acerla invisible. El !3ito est en darle una buena funcin a esa informacin. 11 El siguiente grfico muestra la descomposicin del proceso de diseDo de software. S$."*"+)7 !$ ," )%$*0"? / !$ ," .u$'%" $ .*6+%)+" 2efine un componente a trav!s de su interfa4 grfica. D$'">&2& 7segura que la abstraccin se (i4o de manera correcta y que slo se tom lo relevante del componente. 2. Cu$'%)&$' +,";$' !$, !)'$8& !$ '&0%1"*$ /ontribuye a entender cmo dividir, organi4ar y constituir los paquetes de software. Se ayuda con las siguientes llaves" C&+u**$+)" Se refiere a cmo descomponer el software en procesos, tareas, (ilos de reparto y que conserve la sincroni4acin en los procesos. D)'%*)<u+)7 !$ C&#.&$%$' 12 /omo integrar cada parte del software con el (ardware necesario para su funcionamiento. D)*$++)7 !$, E**&* / !$ E@+$.+)7 / T&,$*"+)" " F",,&' 2efine las t!cnicas para prevenir y tolerar fallos en el momento en que se presenten. I%$*"++)7 / P*$'$%"+)7 Se refiere a la forma de mostrar y organi4ar las interacciones con los usuarios y la forma de documentarlas. 4. E'%*u+%u*" / A*(u)%$+%u*" !$ S&0%1"*$ Es una descripcin de los subsistemas y de los componentes de un sistema de software y de las relaciones entre ellos. 4. A6,)')' / E;",u"+)7 !$ ," C",)!"! !$, D)'$8& !$ S&0%1"*$ Esta parte es importante porque asegura la calidad del proceso de diseDo. Se utili4an m!tricas que permiten estimar de manera cuantitativa varios aspectos del tamaDo, estructura o de la misma calidad del software. Estas pueden ser estructuradas u orientadas a ob'etos. 9. N&%"+)&$' !$, D)'$8& !$ S&0%1"*$ .eneralmente son grficas y permiten modelar en un diagrama la propuesta de diseDo. Entre ellos estn los diagramas de clases y ob'etos, de componentes, de despliegue, de entidadFrelacin, de estructura de JacKson, de estructura de cartas y diferentes lengua'es que permiten describir la arquitectura del software y sus componentes. Lambi!n e3iste la notacin para las descripciones de comportamiento dinmico del software, en las cuales tambi!n se usan diagramas y lengua'es te3tuales. Entre ellos estn los diagramas de actividad, de colaboracin, organigrama de datos, tablas y diagramas de decisin, de secuencia, de transicin de estado y diagramas de estado de carta, lengua'es de diseDo en pseudocdigo, etc. :. E'%*"%$2)"' / M5%&!&' !$, D)'$8& !$ S&0%1"*$ 1ermiten dirigir el proceso de diseDo. La estrategia est en t!rminos generales y los m!todos deben ser especficos. 7qu se inicia la aplicacin del paradigma 2ivide y >encers y el proceso de refinamiento. Se define tambi!n si se va a utili4ar el diseDo estructurado u orientado a ob'etos o basado en componentes. 13 CAPITULO 4 CONSTRUCCION DEL SOFTWARE Este captulo (ace referencia a la creacin detallada de software operativo y significativo, por medio de una combinacin de codificacin, verificacin, pruebas unitarias, pruebas de integracin y depuracin. El Mrea de /onocimiento de la /onstruccin del Software est vinculada a todas las otras ,7s -Mreas de /onocimiento0, ms fuertemente al 2iseDo del Software y a las 1ruebas del Software. Esto se debe a que el proceso mismo de construccin del software cubre tanto el diseDo significativo de software como las actividades de pruebas. En sntesis, esta es la etapa de creacin del cdigo fuente que tendr el software. 1. Fu!"#$%&' La construccin del software tiene como ob'etivos los siguientes" ?inimi4ar la comple'idad 7nticiparse a los cambios /onstruir para verificar 7plicacin de estndares en la construccin La descomposicin de los temas de /onstruccin del Software se detallan en el siguiente grfico" 14
2. G$'%)7 !$ ," C&'%*u++)7 M&!$,&' !$ C&'%*u++)7 Los ms conocidos y utili4ados son los modelos de ciclo de vida en cascada y de entrega por etapas. Estos modelos son robustos pero solo son eficientes si se (a (ec(o un buen traba'o en la etapa de requisitos y de diseDo. 1or el contrario, los modelos prototipado evolucionista, programacin e3trema y 9Scrum:, son ms fle3ibles en este tema, dado que son iterativos y permiten, de manera cclica, reali4ar cambios, al combinar las tres etapas iniciales del desarrollo de un proyecto de software. P,")0)+"+)7 !$ ," C&'%*u++)7 En todo proyecto, la planificacin es vital. Es aqu donde se delimita la aplicacin de requisitos, en qu! orden se irn tomando y que grado de cumplimiento tienen, con respecto al ob'etivo principal del proyecto. 2e a( la importancia de elegir un modelo de ciclo de vida acorde a los requerimientos. M$!)+)7 !$ ," C&'%*u++)7 Se refiere a los procedimientos utili4ados para medir la eficiencia del cdigo fuente, en lo que se refiere a e3tensin, cdigo reutili4ado, cdigo destruido, comple'idad de cdigo, estadsticas de inspeccin de cdigo, tasas de rectificacin y correccin de errores y los (orarios. Esto asegura el control de la calidad. 4. C&')!$*"+)&$' P*6+%)+"' 1ara solucionar un problema de la vida real a trav!s de un software, es totalmente necesario utili4ar un lengua'e de programacin. 7qu radica el !3ito del proyecto de software, dado que es el ingeniero de software el encargado de aprobar el lengua'e a trav!s de los argumentos dados por los encargados de la elaboracin del cdigo fuente.
L$2u"3$' !$ C&'%*u++)7 Son todos los tipos de comunicacin mediante los cuales un ser (umano puede especificar una solucin e'ecutable para un problema de un ordenador. 1ueden ser de configuracin, de (erramientas y de programacin. Estos 8ltimos, a su ve4, estn divididos en lingNsticos, formales y visuales. P*u$<"' !$ C&'%*u++)7 .eneralmente son reali4adas por el profesional que reali4 el cdigo. 1ueden ser unitarias o de integracin. Su propsito es reducir el tiempo entre el ingreso de fallas en el cdigo y el tiempo que se puede demorar su deteccin. 1ara tal fin, las normas estndar IEEE Std G%BF#BBG para documentacin de pruebas y la IEE Std #@@GF#BGC para pruebas unitarias, pueden ser de gran utilidad. 15 R$u%),)?"+)7 2efinir de manera ob'etiva, que parte del cdigo puede ser eficientemente reutili4ado para minimi4ar tiempos de entrega, adems debe ser reportado a las personas que lideran el proyecto, por qu! y para que se va a reutili4ar, ya que esto puede modificar el valor del proyecto, por e'emplo. C",)!"! !$ ," C&'%*u++)7 E3isten varias t!cnicas para evaluar la calidad en la construccin del cdigo fuente de un proyecto de software. Entre ellas tenemos" L"' .*u$<"' u)%"*)"' / !$ )%$2*"+)7 El cdigo paso a paso tili4acin de aserciones 2epuracin <evisiones t!cnicas 7nlisis esttico I%$2*"+)7 na parte clave del proceso de construccin es la integracin de las clases, componentes, rutinas, subsistemas que (an sido construidos por separado, sobre todo si (ay implicaciones t!cnicas de software o (ardware.
16 CAPITULO 9 PRUEBAS DEL SOFTWARE Es una actividad que permite evaluar y me'orar la calidad del producto con el fin de detectar fallas y corregir errores. Las pruebas del software consisten en verificar el comportamiento de un programa dinmicamente a trav!s de un grupo finito de casos de prueba, debidamente seleccionados. Se (a ido cambiando la percepcin de que las pruebas de software se reali4an 8nicamente al final del proceso de creacin de cdigo fuente, siendo muy 8til (acerlo en todas las etapas del desarrollo del softwareE esto permite corregir errores y detectar fallas de fondo, a tiempo. En la figura que sigue se pueden apreciar las partes que intervienen en le proceso de pruebas de software. 17 CAPITULO : MANTENIMIENTO DE SOFTWARE INTRODUCCION El proceso de desarrollo de software debe satisfacer los requerimientos planteados, una ve4 en operacin el proceso de cubrimiento de defectos, operacin y cambio de ambiente debe darse en esta etapa, la fase de mantenimiento empie4a con un periodo de garanta y de soporte postF implementacin pero el mantenimiento del software ocurre muc(o antes. 7unque la etapa de mantenimiento del software no (a tenido el grado de atencin que se debe este tipo de desarrollo de software ya esta empe4ando a cambiar ya que muc(os errores graves (an ocurrido por no prestarle la atencin que se merece. El mantenimiento de software se (a definido como el n8mero total de actividades requeridas para proveer soporte efectivo al software, esto incluye un planeamiento efectivo antes. 2urante y despu!s de la implementacin del software. 1. A'.$+%&' Fu!"#$%",$' $ $, #"%$)#)$%& !$, '&0%1"*$A 7qu se introduce a los aspectos fundamentales del mantenimiento del software" 1.1 Definiciones y terminologa: Est definido en el estndar de la IEEE #%#B como la modificacin del producto de software despu!s de la entrega para corregir las faltas, tambi!n se encarga de direccionar las actividades de mantenimiento para darle prioridad a la entrega del producto. El estndar IEEEOEI7 #%%@C define el mantenimiento como uno de los procesos principales en el ciclo de vida del software, el ob'etivo es modificar el software e3istente preservando su integridad tambi!n lo (acen en estos mismos t!rminos la IS+OIE/ #5CP5 este enfati4a en las entregas previas para la planeacin del mantenimiento del software. 1.2 Naturaleza del mantenimiento: 18 El mantenimiento de software debe estar dentro del ciclo de vida operacional, un mantenimiento esta definido por la IEEEOEI7 #%%@C como las actividades de mantenimiento que permiten el desempeDo correcto. Identifica las actividades de mantenimiento como un proceso de implementacin y modificacin y anlisis del problema, estas actividades son discutidas en el tpico &.% Actividades de Mantenimiento. F)2u*" 1. Lpicos a tener en cuenta en el mantenimiento del software 1.3 Necesidad de mantenimiento: La necesidad de mantenimiento se da para garanti4ar que el software cumple satisfactoriamente con los requerimientos solicitados, este se aplica a cualquier desarrollo independiente del modelo de ciclo de vida utili4ado, el mantenimiento se da en orden de alcan4ar el desempeDo adecuado y en el orden de" 19 /orregir fallas. Improvisar el diseDo. Implementar correcciones. Interfaces con otros sistemas. 7daptar programas a diferentes tipos de (ardware, software, configuracin del sistema y facilidad de uso de telecomunicaciones. ?igracin legal de software. <etiro de software. 1.4 Costos Mayoritarios de mantenimiento: Los costos de mantenimiento de software son los mas costosos en todo el ciclo de vida del software, estudios recientes (an demostrado que ms del G@Q del mantenimiento de software es usado para acciones correctivas (ay que entender la categora del mantenimiento del software para entender la estructura del costo de mantenimiento, entendiendo los factores que influyen en el costo se puede ayudar a contener dic(os costos, a continuacin se presentan algunos aspectos t!cnicos y no t!cnicos que afectan los costos de mantenimiento" Lipo de 7plicacin. 2isponibilidad del mantenimiento de software. /iclo de vida del software. /aractersticas de (ardware. /alidad del diseDo de software, construccin, documentacin y pruebas. 1. !voluci"n del soft#are: En #BPB Le(man direcciono el mantenimiento del software y la evolucin de los sistemas, durante %@ aDos se mantuvo su idea de la formulacin de oc(o 9Leyes de la evolucin: donde se mantuvo la idea de la evolucin en el mantenimiento del software para continuar con el desarrollo. Lient4 y Swanson iniciali4aron la definicin de tres categoras de mantenimiento" correctivo, adaptativo y perfectivo. 2. F"+%&*$' +,";$' $ $, #"%$)#)$%& !$, '&0%1"*$A n numero de factores claves debemos tener presentes para asegurar el mantenimiento efectivo del software, es importante comprender que el mantenimiento de software nos proporciona una t!cnica 8nica en los desafos de administracin para los ingenieros de 20 software, podemos apreciar como se planean las liberaciones posteriores as como los parc(es generados para las versiones anteriores, lo que sigue a continuacin nos presenta una manera de cmo se nos presentan algunos factores de administracin y t!cnicos para el mantenimiento de software, estos se agrupan seg8n los tpicos siguientes" =actores t!cnicos. =actores administrativos. Estimacin de costos. ?edidas. 4. P*&+$'& !$ #"%$)#)$%&A 1rovee referencias y estndares utili4ados para implementar el proceso de mantenimiento de software. Las actividades de mantenimiento son diferenciadas por el desarrollo mostrado en la relacin a las actividades de ingeniera de otro software. F)2u*" 2. 7ctividades en el proceso del mantenimiento En la figura planteada por la IS+OIE/ se puede apreciar que es muy parecida a la anterior que es IEEE pero en esta se agrega una pequeDa diferencia" 21 /ada actividad de mantenimiento primario de software IS+OIE/ #5CP5 es desglosada en los siguientes t!rminos" 1roceso de implementacin. 7nlisis del problema y modificaciones. Implementacin y modificacin. ?antenimiento 7ceptacinO<evisin. ?igracin. <etiro de Software. T5+)+"' ."*" $, #"%$)#)$%&A Esta subrea nos introduce a algunas generalidades aceptadas por las t!cnicas del mantenimiento de software" 3.1 Com$rensi"n del $rograma Los programadores gastan tiempo considerable leyendo y entendiendo programas para poder implementar cambios e3isten distintas (erramientas que nos ayudan con este proceso. 3.2 %eingeniera Esta definida como el e3amen de de la alteracin del software para reconstituir una nueva forma, la reingeniera es la mas radical y e3pansiva forma de la alteracin otros creen que la reingeniera puede ser usada para cambios menores, siempre est enfocada en mantener la legalidad del software asi como sus t!cnicas, casos de estudio y sus riesgos y beneficios. 3.3 &ngeniera inversa Es el proceso de anali4ar el software para identificar los componentes y sus relaciones para crear representaciones del software dic(o de otra forma desde un nivel mas alto de abstraccin, es pasiva, y no (ace cambios al software o resulta en otro software. 1roduce grficas asi como control de flu'o y del cdigo fuente, un tipo de reingeniera puede ser la redocumentacin, otro tipo es la reparacin del diseDo. =inalmente la reingeniera (a sido de gran importancia en los 8ltimos aDos ya que gracias a sus esquemas lgicos a podido restaurar bases de datos fsicas. CAPITULO B ADMINISTRACION DE LA CONFIGURACION DEL SOFTWARE 22 n sistema puede ser definido como un con'unto de componentes organi4ados con el propsito de cumplir una funcin o con'unto de funciones especficas. En este sentido la configuracin de un software y sus caractersticas funcionales de (ardware, software, firmware o la combinacin de estas son un con'unto de caractersticas t!cnicas que se deben cumplir para garanti4ar su correcto funcionamiento. La administracin de configuracin es la disciplina encargada de identificar la configuracin general de un sistema para as mantener su confiabilidad, adaptabilidad y configuracin a los diferentes ciclos de vida. Est formalmente definida por la IEEEP#@.#%FB@ como 92isciplina aplicada de manera t!cnica y administrativa para la direccin y supervivencia para" Identificar y documentar las caractersticas fsicas y funcionales de la configuracin de los elementos, control en el cambio de sus caractersticas grabar y reportar cambios en el proceso de implementacin as como su estado y verificacin del cumplimiento de sus requerimientos especficos:. 1. A!#))'%*"+)7 !$ ,&' .*&+$'&' SCM La S/? administra y controla la evolucin e integridad del software as como su verificacin, control, reportes y configuracin de la informacin. na implementacin e3itosa del S/? requiere un cuidado especial y planeacin y administracin. 1.1 Conte'to (rganizacional del )CM 23 1ara desarrollar un plan S/? es necesario conocer detalladamente los procesos de la organi4acin ya que el S/? interact8a directamente con todos los elementos y actividades organi4acionales. 1.2 Constantes y gua $ara el $roceso )CM Esto proviene de un gran numero de fuentes tiene que ver con las polticas de la organi4acin y su influencia en la administracin de los procesos. 1.3 *laneaci"n del )CM El proceso de planeacin debe ser consistente con el conte3to organi4acional, y la naturale4a del proyecto -por e'emplo el tamaDo y su crtica0 las actividades ms importantes en este conte3to son" control de configuracin, control de estado, control de auditora, control de liberaciones y entregas as como las (erramientas de configuracin y control y sus interfaces consideradas. 1.4 *lan de la )CM Los resultados de planeacin del proyecto son guardados en un plan de gestin y configuracin del software, el documento se mantiene y se actuali4a o aprueba seg8n sea necesario a lo largo del ciclo de vida del software. Lambi!n es muy 8til (acer mediciones constantes a los procesos para (acer los cambios yOo actuali4aciones correspondientes. 1. )eguimiento de la gesti"n de la configuraci"n del soft#are 2espu!s del cumplimiento del proceso de la S/? puede ser necesario un cierto nivel de seguimiento para asegurarse que los procesos S/? se llevan a cabo adecuadamente, este seguimiento puede (acer parte de un proceso de auditora para garanti4ar la calidad del software. El uso de (erramientas integradas en la S/? facilita el proceso de seguimiento. 1..1 Medidas y mediciones de la )CM 1roporcionan un buen medio para monitori4ar la efectividad de las actividades S/? de una manera continuada, son 8tiles para caracteri4ar el estado actual del proceso y para proporcionar una base para (acer comparaciones con el tiempo. Las bibliotecas de software y las diferentes (erramientas proporcionan fuentes para e3traer la informacin acerca de las caractersticas de los procesos S/?. 2. I!$%)0)+"+)7 !$ ," +&0)2u*"+)7 !$, '&0%1"*$ 24 Identifica los elementos a ser controlados, establece e identifica esquemas y sus versiones, establece (erramientas y t!cnicas utili4adas para administrar y controlar dic(os elementos. 2.1 &dentificar elementos a ser controlados n primer paso sera identificar cambios en los elementos de software que sern controlados para entender la configuracin del software en el conte3to del sistema. 2.2 +i,lioteca de soft#are /oleccin controlada de software as como de sus documentos relacionados y est relacionada para ayudar en el desarrollo de software, a( diferentes tipos y nos pueden ayudar en diferentes etapas, son tambi!n una fuente importante de informacin para mediciones del traba'o reali4ado y del progreso. 4. C&%*&, !$ ," +&0)2u*"+)7 !$, '&0%1"*$ Le concierne la gestin de cambios durante el ciclo de vida, cubre los procesos que determinan los cambios a reali4ar, la autoridad para (acerlos y el soporte para la implementacin de dic(os cambios. La informacin derivada de estas actividades es 8til para medir el trfico de cambios y ruptura de aspectos por re(acer. 3.1 *etici"n- evaluaci"n y a$ro,aci"n de cam,ios del soft#are El primer paso es determinar los cambios a reali4ar, se eval8a el coste e impacto del cambio propuesto se acepta o rec(a4a dic(o cambio, este se origina en cualquier momento del ciclo de vida y puede incluir una solucin propuesta y una prioridad. 3.2 &m$lementando cam,ios en el soft#are Se implementan utili4ando los procesos de software definidos de acuerdo con los requerimientos de planificacin aplicables. 1odran sufrir auditoras de configuracin y verificacin de la calidad del software. Esta soportada por las (erramientas de la biblioteca que proporcionan gestin de versiones y soporte para el almacenamiento de cdigo. 3.3 Desviaciones y %emisiones Las limitaciones que se imponen al esfuer4o de la ingeniera del software podran contener necesidades que no pueden ser satisfec(as en el punto designado del ciclo de vida. na 25 remisin es una autori4acin para abandonar una necesidad antes del desarrollo del elemento. 4. R$2)'%*& !$, $'%"!& !$ ," +&0)2u*"+)7 !$, S&0%1"*$ La contabilidad del estado de la configuracin del software -S/S70 es la actividad de registrar y proporcionar la informacin necesaria para una gestin efectiva de la configuracin del software. 4.1 &nformaci"n del estado de la configuraci"n del soft#are .enera un con'unto de informes durante el ciclo de vida, se encarga de recoger y mantener la informacin del estado de la configuracin que se (a de gestionar seg8n las configuraciones evolucionan. Es necesario alg8n tipo de soporte de (erramientas automticas para llevar a cabo las tareas de recogida de datos y generacin de informes de la S/S7. 4.2 %e$ortes del estado de la configuraci"n del soft#are Los reportes pueden ser usados para los elementos del proyecto de la organi4acin, incluyendo el equipo de desarrollo, administracin de proyectos y actividades de calidad del software. Lambi!n sirve para responder algunas preguntas especficas de la etapa de produccin. 9. Au!)%&*-" !$ ," +&0)2u*"+)7 !$ '&0%1"*$ Es una actividad desarrollada independientemente para evaluar la conformidad de los productos de software, se encarga de aplicar regulaciones, estndares, planes de gua y procedimientos. 2eben ser cuidadosamente planeadas, e3isten (erramientas que apoyan la planeacin y conduccin de las auditoras para facilitar su proceso. 2etermina la e3tensibilidad de los elementos y sus caractersticas fsicas, los informes pueden ser orientados como puntos clave en el ciclo de vida, las auditorias pueden ser un requisito para las lneas base. .1 Auditoria funcional de la configuraci"n del soft#are El propsito es asegurar la consistencia en los elementos de software auditados. La salida de la verificacin y validacin del software es la clave de entrada de este tipo de auditora. .2 Auditora de la configuraci"n fsica del soft#are El propsito es asegurar que el diseDo y la documentacin de referencia es consistente con la construccin del producto de software. 26 .3 Auditora durante el $roceso de una lnea ,ase de soft#are /omo lo mencionado puede ser llevado durante el proceso de desarrollo para investigar el estado actual de los elementos especficos de la configuracin. La auditora es aplicada a los elementos de la lnea base para asegurar el desempeDo que sea consistente con las especificaciones. :. A!#))'%*"+)7 !$ ,"' $%*$2"' / ,)<$*"+)&$' !$ '&0%1"*$ El t!rmino 9liberacin: es usado en este conte3to para referirnos a las distribuciones de software y los elementos en las actividades de desarrollo. Eso incluye liberaciones internas y correcciones a las variantes de estos elementos. La informacin y documentacin entregada en las liberaciones es conocida como el documento descriptivo, este incluye los contenidos de instalacin y instrucciones de actuali4acin. CAPITULO C GESTION DE LA INGENIERIA DEL SOFTWARE 1uede ser definida como las actividades de gestin de la aplicacin, planeacin, coordinacin, medicin, monitori4acin, control y reportes para asegurar el desarrollo y mantenimiento del software como sistemtico, disciplinado y cuantificable. Es un aspecto muy importante en la administracin y medicin de la ingeniera del software. En estas actividades se destacan tres niveles" .estin y organi4acin de la infraestructura, gestin de proyectos, y control y planeacin del programa de medidas. Los aspectos de la gestin de la organi4acin son importantes en t!rminos del impacto en la ingeniera del software y en las polticas de gestin, esas polticas pueden ser influenciadas por los requerimientos de un software efectivo, mantenimiento y desarrollo. n n8mero de polticas especficas deben ser establecidos para una efectiva gestin en la ingeniera del software y el nivel organi4acional. Raciendo gestin con !nfasis en la medicin y un principio de presupuesto en cualquier disciplina de verdadera ingeniera puede ayudar a darle la vuelta a esta percepcin. na gestin efica4 requiere la combinacin tanto de n8meros como de e3periencia. 27 La gestin en la ingeniera del software se descompone en seis subreas principales a continuacin se da un espacio detallado de cada una. 1. I)+)"+)7 / A,+"+$ Se centra en la determinacin efica4 de los requisitos del software por medio de varios m!todos de induccin y la valoracin de la viabilidad del proyecto desde distintos puntos de vista, una ve4 establecida la viabilidad, la tarea pendiente es la especificacin de la validacin de requisitos y del cambio de procedimientos. 28 2. P,")0)+"+)7 !$ u P*&/$+%& !$ S&0%1"*$ Esta regulado por los alcances y los requisitos y por la viabilidad del proyecto, se eval8an los procesos de ciclo de vida y se selecciona el ms apropiado. Se debe reali4ar una descomposicin 'errquica de tareas, y la reali4acin de un calendario y una estimacin de costos. ?s adelante se le da un presupuesto a las tareas y la imposicin de (orarios y uso de materiales, se debe llegar a la determinacin de procesos y responsabilidades para asegurar la calidad del software, verificacin, validacin y revisiones de auditoras. 2.1 *lanificaci"n de un *roceso La seleccin de un modelo de ciclo de vida o la adaptacin de un despliegue de ciclos se emprenden a la lu4 del alcance particular y de los requisitos del proyecto. Lambi!n se seleccionan m!todos y (erramientas pertinentes. 2.2 Determinar los entrega,les Se especifica y caracteri4a los productos de cada tarea, se eval8a la posibilidad de reutili4ar componentes de desarrollos anteriores y se planifica la utili4acin de terceras personas y del software obtenido y se seleccionan los proveedores. 2.3 !sfuerzo- calendario y c.lculo del coste Se determina el rango de esfuer4o esperado, utili4ando un modelo de estimacin calibrado, basado en datos (istricos sobre el esfuer4o empleado. /uando sea posible se solucionan cuellos de botella, y se elabora el esperado cuadro de tareas con los (orarios de inicio, duraciones y (orarios de finali4acin bien planificados. Los requisitos de recursos -personas, (erramientas0 se traducen en estimaciones de costo. 2.4 %e$arto de recursos Los equipos, medios y personas se asocian a las tareas programadas, esta actividad est regulada y limitada por la disponibilidad de los recursos y su uso ptimo ba'o estas circunstancias. 2. /esti"n de %iesgos Se completa el anlisis de riesgos, la valoracin crtica de riesgos, la mitigacin de riesgos y la planificacin de contingencias. Los m!todos para la valoracin del riesgo deben utili4arse para resaltar y evaluar riesgos, en esta etapa se deben evaluar las posibilidades de abandono del proyecto en conversaciones con todos los contratistas. 2.0 /esti"n de calidad 29 Se define en t!rminos de atributos pertinentes del proyecto y en los de cualquier producto asociado a !l, tanto en t!rminos cualitativos como cuantitativos. Los lmites de ad(esin de calidad se colocan de acuerdo a las e3pectativas que tenga el contratista sobre el software en cuestin as como los procedimientos de verificacin y validacin del producto entregable. 2.1 /esti"n de $lanes Los informes, la supervisin y el control del proyecto deben enca'ar en el proyecto de ingeniera del software seleccionado y en las realidades del proyecto y deben refle'arse los artefactos que lo gestionarn. Los cambios a otros procesos de soporte e'emplo" gestin documental, resolucin de problemas tambi!n deben gestionarse de la misma manera. 4. P*&#u,2"+)7 !$, .*&/$+%& !$ S&0%1"*$ Se e'ecutan los planes y se divulgan los procesos incluidos en los planes, en este proceso (ay total e3pectativa de la ad(esin plena de los requisitos del contratista y el logro de los ob'etivos del proyecto, son actividades fundamentales para la promulgacin la gestin, medicin, supervisin, control e informacin del proyecto. 4. R$;)')7 / E;",u"+)7 Se eval8a el proceso global (acia el logro de los ob'etivos y satisfaccin de los requisitos del contratista y se llevan a cabo valoraciones sobre la efectividad del proceso global (asta la fec(a, del personal involucrado y de las (erramientas y m!todos utili4ados. 4.1 Determinar la satisfacci"n de los re2uisitos 2eterminar que el ob'etivo principal se est cumpliendo es primordial ya que lo que nos interesa es la satisfaccin del usuario o contratista esto se debe (acer peridicamente. Se deben identificar las variaciones a las e3pectativas para llevar a cabo las acciones adecuadas. Lambi!n se debe gestionar el control de cambios a los procedimientos y a la configuracin del software. 4.2 %evisar y !valuar la !3ecuci"n Las revisiones peridicas a lo reali4ado nos proporcionan detalles sobre la probabilidad de ser fiel a los planes, as como las posibles reas de dificultad, aqu se eval8an los diferentes m!todos, (erramientas y t!cnicas empleadas para ver su eficacia y adecuacin y se eval8a constantemente la eficacia de los procesos para ver su utilidad en el conte3to del proyecto, cuando sea necesario se gestionan y se llevan a cabo los cambios. 30 9. C)$**$ El proyecto llega a su fin cuando todos los planes y procesos implicados se (an promulgado y completado, en esta fase se repasan ciertos criterios para el !3ito del proyecto. Se (an entregado los procesos tal como se (aban especificado y todos los productos planificados (an sido entregados con caractersticas aceptables. .1 Determinar el cierre Se logran los ob'etivos del proyecto y estos procesos por lo general involucran a los contratistas y acaban con la documentacin y de los informes de cualquier otro problema pendiente conocido. .2 Actividades de cierre Se arc(ivan los materiales del proyecto y la base de datos de medicin de la organi4acin se pone al da con los datos finales del proyecto y se emprende el anlisis postFproyecto. Se (ace con el fin de identificar temas. 1roblemas y oportunidades encontrados durante el proceso, se sacan las lecciones del proceso y luego se alimentan los conocimientos de la organi4acin y los intentos de me'ora. :. M$!)!"' !$ ," )2$)$*-" !$, '&0%1"*$ 7qu abordamos el tema de la medicin en la ingeniera del software y su importancia para esto se sigue unas m!tricas y normas establecidas por entidades como la IS+ y la IEEE. 0.1 !sta,lecer y sostener el com$romiso de medir Se deben tener ciertos compromisos de medicin establecidos, adems de requisitos que midan los factores que contribuyen a un ob'etivo en particular para as gestionar los proyectos y (acerle frente a este ob'etivo. Se debe establecer una unidad u ob'etivo a medir en la organi4acin, adems se debe adquirir un compromiso que se debe comunicar y apoyar en los recursos de la organi4acin. Se deben asignar recursos para llevar a cabo el proceso de medicin adems de dar la financiacin y (erramientas adecuadas para dirigir este proceso. 0.2 *lanificar el $roceso de medici"n 1ara esto es necesario identificar la unidad funcional a la cul se le est aplicando para que sea caracteri4ada y as identificar las necesidades de informacin para proceder con los ob'etivos primordiales y sus respectivas prioridades. Se deben seleccionar las mediciones a reali4ar adems como las muestras de informacin que sern tomadas para su posterior anlisis, verificacin e informacin a ser dada. 31 El plan de medicin tambi!n debe ser revisado y aprobado por los contratistas adecuados adems de mantener disponibles los recursos para dic(o plan. Se deben comunicar los resultados adems de documentarse publicarse. 0.3 !valuar las mediciones Este proceso se debe llevar a cabo con un criterio de evaluacin especfico para determinar las fuer4as y debilidades de los productos, se puede (acer por medio de un proceso de auditora interna o e3terna y debe incluir una retroalimentacin a los usuarios. Se deben identificar las me'oras potenciales y costos y beneficios de estas, comunicarlas a la persona encargada para su revisin y aprobacin. CAPITULO 9 PROCESO DE INGENIERDA DEL SOFTWARE Se puede e3aminar en dos niveles desde lo t!cnico y desde el metaFnivel o nivel de implementacin, valoracin, medicin y gestin. E3isten varios significados sobre el proceso de la ingeniera del software puede verse como una sola manera de reali4ar el proceso o como muc(as maneras que es lo que se quiere y se debe llegar a 32 (acer ya que el proceso de la ingeniera abarca muc(os factores, finalmente un tercer significado se refiere al con'unto actual de actividades reali4adas dentro de una organi4acin que se puede ver como un solo proceso. Los procesos de ingeniera del software son considerados de gran importancia, el ob'etivo es gestionar nuevos y me'ores procesos. 1. P*&+$'& !$ )#.,$#$%"+)7 / +"#<)&' Se centra en los cambios organi4acionales, describe la infraestructura, actividades, modelos y consideraciones prcticas de un proceso de implementacin y cambios" Lambi!n es denominado el proceso de evaluacin, (ay que tener cuidado con las modificaciones ya que puede que tambi!n sean necesarios cambios en la cultura organi4acional. 1.1 &nfraestructura del $roceso Es necesario que la infraestructura este en su lugar, es decir que los recursos est!n al alcance de la mano y que se (ayan asignado responsabilidades, es posible que se tengan que establecer comit!s para supervisar el esfuer4o del proceso de ingeniera del software. /on un grupo de proceso de la ingeniera del software se pretende ser el foco central en el proceso de me'oras y tiene cierto n8mero de responsabiidades en la iniciali4acin y el mantenimiento. El concepto de creadora de e3periencias -E=0 se centra en el proceso de me'oramiento de los procesos de la ingeniera del software. 2. D$0))+)7 !$ .*&+$'&' 1ueden ser unos lineamientos, polticas o estndares se definen para facilitar el entendimiento en la comunicacin (umana, apoyar y me'orar procesos , se deben considerar algunas variaciones como la naturale4a del traba'o, el dominio de la aplicacin, el modelo de ciclo de vida y la madure4 de la organi4acin. 4. V",&*"+)7 !$, .*&+$'& Se lleva a cabo utili4ando un m!todo y un modelo de valoracin que en algunos casos es visto como un modelo de apreciacin y muc(as veces una evaluacin de capabilidad cuando es para la ad'udicacin de alg8n contrato. 3.1 Modelos de valoraci"n del $roceso 33 <ecoge lo que se conoce como las buenas prcticas en el proceso de gestin de la ingeniera del software, la IS+ define un modelo e'emplo de valoracin y de requisitos, se (an desarrollado tambi!n un modelo de madure4 para sistemas de ingeniera que resulta 8til cuando un proceso est implicado en el desarrollo y mantenimiento de un sistema incluyendo el software. E3isten dos arquitecturas generales para un modelo de valoracin" continua y escalonadamente, son muy diferentes entre ellas y se deben evaluar para conocer cul es la que me'or se adapta a mis necesidades y ob'etivos. 3.2 M4todos de valoraci"n del $roceso Es garanti4ar un m!todo cuantitativo que evaluara los procesos, e3isten de varios tipos dnde se valoran distintos tpicos todos pensados en las me'oras de los procesos y la eficacia en la organi4acin. 4. M$!)+)7 !$ ,&' .*&+$'&' / ,&' .*&!u+%&' 7unque puede resultar comple'a la medicin a la ingeniera del software e3isten varios aspectos que son fundamentales para la medicin y anlisis, estas mediciones se pueden reali4ar para apoyar los procesos de implementacin y cambio o evaluar consecuencias de estos. 4.1 Medici"n del $roceso Se recoge, anali4a e interpreta informacin cuantitativa sobre el proceso, se utili4a para identificar la fuer4a y debilidad en ellos y as mismo evaluarlos despu!s de (aber sido implementados o cambiados. 34 La medicin de un producto software incluye principalmente, la medicin del tamaDo del producto, la estructura del producto y la calidad del producto. Lambi!n es importante tener en cuenta la medicin del tamaDo, de la estructura y de la calidad. 1ara garanti4ar la calidad en los resultados de la medicin es necesaria la medicin efectiva de los programas para proveer resultados e3itosos. CAPITULO 10 INSTRUMENTOS E MFTODOS DE LA INGENIERDA DEL SOFTWARE Son los instrumentos asistidos por ordenador que son requeridos para ayudar a los procesos de ciclo de vida del software, nos ayuda a reducir la carga cognoscitiva enfocndonos ms en los aspectos creativos del proceso. Los m!todos imponen la estructura a la actividad de la ingeniera del software con el ob'etivo de (acerla sistemtica, por lo general proporcionan notacin y vocabulario para comprobar tanto el proceso como el producto, aunque e3isten numerosos materiales sobre los instrumentos de apoyo en la ingeniera del software, los te3tos sobre las t!cnicas sobre estos instrumentos son relativamente escasos, una dificultad es el alto costo que representa un cambio de instrumento de software en general, los instrumentos y m!todos cubren ciclos de vida completos por esto es tan complicado (acer un cambio. E'%u!)& !$ ,"' >$**"#)$%"' / #5%&!&' !$ ," )2$)$*-" !$ '&0%1"*$ 1. L"' >$**"#)$%"' !$ )2$)$*-" !$ S&0%1"*$ Ests corresponden a las cinco primeras reas de conocimiento de la gua, E3igencias de software, diseDo de software, construccin de software, pruebas de software y mantenimiento de software. Los cuatro siguientes asuntos corresponden a las reas de conocimiento restantes" La direccin de configuracin de software, la direccin de ingeniera de software, el proceso de ingeniera de software, y la calidad del software. 1.1 5as 6erramientas de e'igencias de )oft#are Ran sido clasificados en dos categoras" modelado e instrumentos de capacidad de rastreo. 35 E3igencias de los instrumentos de modelado" Son usados para la obtencin, anlisis, especificacin y valide4 de las e3igencias de software. E3igencias de los instrumentos de capacidad de <astreo" Se (acen cada ve4 ms importantes debido a que la comple'idad del software crece, son presentados separadamente de los instrumentos de modelado. 1.2 5as 6erramientas de Dise7o de )oft#are /ubre los instrumentos para crear y comprobar diseDos de software, e3iste gran variedad de estos gracias a la diversidad en las notaciones de diseDo de software y m!todos, a pesar de esta variedad no se (a encontrado una divisin convincente. 1.3 5as 6erramientas de Construcci"n de )oft#are Son instrumentos usados para producir y traducir la representacin de programa mquina, se utili4an los redactores de programa, compiladores y generadores de cdigo, int!rpretes y depuradores. 1.4 6erramientas de *rue,as de )oft#are Se incluyen" .eneradores de 1ruebas, marcos de e'ecucin de pruebas, (erramientas de evaluacin de pruebas, (erramientas de direccin de pruebas y de anlisis y de funcionamiento, todas estas estn enfocadas a la prueba del software construido as como de su funcionalidad, versatilidad y calidad. 1. 6erramientas de Mantenimiento de )oft#are 7barca los instrumentos utili4ados para el mantenimiento de software, dos categoras son identificadas" instrumentos de comprensin y instrumentos de reingeniera. Rerramientas de comprensin" 7yudan a la comprensin (umana de programas, se incluyen instrumentos como animadores o rebanadores. Rerramientas de reingeniera" Es definido como el e3amen y la alteracin del software sustancial para reconstruirlo de una nueva forma. 1.0 5as 8erramientas de direcci"n de configuraci"n de )oft#are Ran sido dividas en tres categoras" rastreo, direccin de versin e instrumentos de liberacin. <astreo" Son elementos utili4ados en la cone3in con las cuestiones que rastrean problemas asociados con un producto de software particular. Rerramientas de direccin de versin" Estn implicados en la direccin de m8ltiples versiones de un producto. Rerramientas de liberacin y construccin" Son usados para las tareas de liberacin y construccin de un software incluye instrumentos de instalacin que son e3tensamente utili4ados para configurar la instalacin de un producto software. 36 1.1 6erramientas de direcci"n en la &ngeniera de )oft#are Esta subdivido en tres categoras" planificacin de proyecto y rastreo, mane'o arriesgado, y medida. En la primera se busca una medida de esfuer4o en el proyecto y cuenta la valoracin as como la planificacin del proyecto, en la segunda se identifican la estimacin y riesgos de supervisin, finalmente en la medida se asiste la reali4acin de actividades relacionadas con el programa de medida de software. 1.9 5as 6erramientas de $roceso de ingeniera de )oft#are Est divida en instrumentos que modelan, instrumentos de direccin y ambientes de desarrollo de software. 1.: 5as 8erramientas de Calidad de )oft#are 2ividas en dos categoras" inspeccin e instrumentos de anlisis. En las (erramientas de revisin de auditoria se apoyan en revisin y revisiones de cuenta y en las de anlisis estticos se anali4an artefactos de software como anali4adores sintcticos y semnticos as como datos, el flu'o de control y anali4adores de dependencia. 1.1; Cuestiones de &nstrumento Com$uestas /ubre el tema aplicable a todas las clases de instrumentos, tres categoras identificadas" t!cnicas de integracin de instrumentos, metaFinstrumentos, y evaluacin de instrumento. 2. L&' M5%&!&' !$ ," I2$)$*-" !$, S&0%1"*$ Esta divido en tres temas" ?!todos (eursticos que tratan con accesos matemticamente basados, y m!todos de prototipa4o que tratan con software que trama accesos basados en varias formas de prototipa4o, cada tema trata sus preocupaciones distintas no quiere decir que no tengan que ver el uno con el otro. 2.1 M4todos 6eursticos Este tema contiene cuatro categoras" estructurado, orientado a datos, orientado a ob'etos, y especfico de dominio. La 8ltima incluye m!todos especiali4ados para desarrollar los sistemas que implican en tiempo real aspectos relacionados con la seguridad. En el m!todo estructurado se ve desde un punto de vista funcional para refinarlo y (acerlo cada ve4 ms detallado. En el orientado a datos se estructura el programa y se manipula. En el orientado a ob'etos el sistema es visto como una coleccin de ob'etos ms que de funciones. 2.2 M4todos <ormales 37 7qu se describe como el software se basa en m!todos de ingeniera basado matemticamente y se subdivide seg8n varios aspectos de m!todos formales entre ellos" E'.$+)0)+"+)7 !$, ,$2u"3$ / &%"+)&$'A 7qu se especifica la lengua usada y se clasifica seg8n la orientacin del modelo las caractersticas o el comportamiento. R$0)"#)$%&A 7qu se trata como de refinar o transformar las especificaciones en una forma ms cercana a la deseable en un programa finalmente e'ecutable. P*&.)$!"!$' !$ V$*)0)+"+)7GC&0)*#"+)7A 7qu se incluyen confirmaciones de teorema y la comprobacin del modelo. 2.3 M4todos de *rototi$ado /ubre m!todos que implican el prototipa4o de software y es subdivida en estilos de prototipa4o, ob'etivos y t!cnicas de evaluacin. Se deben incluir aspectos como" Estilos de prototipa4o, ob'etivos del prototipa4o, y las t!cnicas para la evaluacin del prototipo propuesto. 38 CAPITULO 11 CALIDAD DEL SOFTWARE S1orque es tan importante la calidad del software que est en todos los aspectos de la gua S)E*+,T ?uc(os autores le (an dado varias definiciones a este t!rmino pero citar! la que le da la IS+ B@@#F @@ la cul la define como 9el grado en el que un con'unto de caractersticas in(erentes cumple requisitos:. En este captulo se abordan los aspectos relativos a la calidad del software los cuales trascienden en cualquier ciclo de vida, en esta gua se describen un con'unto de m!todos para alcan4ar la calidad, en este caso se trataran las t!cnicas estticas es decir aquellas que no requieren la e'ecucin del software para su evaluacin mientras las dinmicas cubren los aspectos de calidad en las pruebas del software. 1. Fu!"#$%&' !$ C",)!"! !$, S&0%1"*$ 7qu se definen formalmente los aspectos a tratar y la manera como un ingeniero de software debera entender y adoptar los conceptos y caractersticas de calidad y su relevancia en el desarrollo o mantenimiento de software. Los aspectos de calidad deben estar in(erentes desde el momento mismo de los requerimientos as como la medicin y criterios de aceptacin que eval8an estas caractersticas. 1.1 Modelos y Caractersticas de Calidad La terminologa usada en las caractersticas difiere de una ta3onoma a otra ya que cada una posee niveles 'errquicos diferentes, la IS+ (a definido tres modelos relacionados con la calidad en un producto de software -la calidad interna, la calidad e3terna y la calidad en el empleo0. 1.2 Me3ora de Calidad La tarea de la calidad puede ser me'orada cada ve4 ms gracias a un proceso iterativo de me'ora continua que requiere control de direccin, control y retroalimentacin de muc(os procesos 39 simultneos" -#0 los procesos de ciclo de vida del software, -%0 el proceso de deteccin de errorOdefecto, retirada de los mismos y prevencin y -&0 el proceso de me'ora de calidad, estos procesos (an sido probados y certificados por e3pertos en calidad que afirman que la calidad de un producto est directamente relacionada con la calidad del proceso empleado para crearlo. E3isten varios instrumentos que nos permiten conocer los ob'etivos de la calidad como por e'emplo el Lotal $uality ?anagement -L$?0, process of plan, 2o, /(ecK and 7ct -12/70 con estos podemos identificar fallas, desarrollar acciones detalladas y gestionar el apoyo a la gerencia y a los recursos asignados para el proyecto para traba'ar la calidad en la ingeniera del software. 2. P*&+$'&' !$ G$'%)7 !$ C",)!"! !$, S&0%1"*$ La gestin de calidad del software -S$?0 es de gran importancia y aplicacin a todas las perspectivas de procesos de software, productos y recursos, estos consisten en numerosas actividades, algunos de ellos pueden encontrar errores diariamente mientras que otros pueden resultar mas bien en valiosas revisiones. El S$? puede ser utili4ado para evaluar productos intermedios as como el producto final. 7lgunos de los procesos especficos estn definidos por la IEEE" 1rocesos de aseguramiento de calidad 1rocesos de >erificacin 1rocesos de >alidacin 1rocesos de <evisin 1rocesos de 7uditora Estos procesos incentivan la calidad y tambi!n permiten encontrar posibles problemas. Lodos los procesos S$? estn enfocados a cumplir tareas y t!cnicas para asegurar una calidad de software ptima en un proyecto dado, estos procesos estn estrec(amente relacionados, pueden solaparse y (asta en ocasiones estar combinados. Lambi!n es importante tener en cuenta la gestin de riesgo ya que est 'uega un papel importante en la entrega de software de calidad. R$;)')&$' !$ G$'%)7A El ob'etivo es supervisar el progreso, determinando el estado de los planes y programas, requerimientos confirmados y su sistema de locali4acin o evaluar la efectividad de los enfoques de gestin empleados. /on esto se determina la idoneidad de los proyectos, programas y requerimientos y supervisan su progreso o inconsistencias. 40 R$;)')&$' T5+)+"'A El propsito es evaluar el producto software para determinar si es idneo para su correspondiente uso, deben establecerse los roles especficos, una revisin t!cnica requiere que las entradas obligatorias est!n en su lugar con el ob'eto de proceder a" e3posicin de ob'etivos, un producto software especfico, el plan especfico de gestin del proyecto, la lista de cuestiones claves asociadas al producto y el procedimiento de revisin t!cnica. I'.$++)&$'A 2etecta e identifica anomalas en los productos de software, e3isten dos importantes elementos diferenciadores entre inspeccin y revisin y son los siguientes" un individuo que mantiene una posicin de direccin sobre cualquier miembro del equipo de inspeccinE la inspeccin (a de ser llevada por un inspector con formacin en inspecciones t!cnicas. Las inspecciones por lo general requieren el autor de un producto intermedio y tambi!n a un lder de inspeccin, generalmente son (ec(as sobre una pequeDa seccin del producto a la ve4, las anomalas encontradas deben ser documentadas y enviadas al responsable de la inspeccin, tambi!n es recomendable mane'ar listas de c(equeo durante la inspeccin de esta manera se clasifican las anomalas y se determinan su e3actitud e integridad. W",HI%>*&u2>'A El ob'etivo es evaluar el producto software, los ob'etivos principales son" Encontrar anomalas, me'orar el producto software, considerar implementaciones alternativas, evaluar la conformidad con estndares y especificaciones. Es similar a una inspeccin pero su desarrollo por lo general es menos formal, generalmente es desarrollado por el ingeniero de software para darle una oportunidad a su equipo de repasar el traba'o como una t!cnica de aseguramiento. Au!)%&*-"'A El ob'etivo es reali4ar una evaluacin independiente de la conformidad de productos de software y procesos a regulaciones aplicables, estndares, directrices, planes y procedimientos, est formalmente organi4ada con participantes que cumplen roles especficos contando con un representante de la organi4acin auditada. 1uede reali4arse sobre casi cualquier proceso o producto en cualquier etapa de mantenimiento o desarrollo. 4. C&')!$*"+)&$' P*6+%)+"'A 3.1 %e2uerimientos de calidad del soft#are: 7qu influyen varios factores como la planificacin la gestin y seleccin de actividades S$? y t!cnicas incluyendo" 2onde residir el software , requerimientos del sistema y del software, los componentes comerciales, estndares , m!todos y (erramientas de software, el presupuesto y los usuarios implicados como tambi!n el nivel de integridad del sistema. 41 Las t!cnicas dinmicas son e'ecutadas durante todo el desarrollo y el mantenimiento de software, generalmente son t!cnicas de testeo o simulacin. Las pruebas e3aminan todos los output de la especificacin de requerimientos de software con el ob'eto de asegurar su tra4abilidad, consistencia, completitud, correccin y e'ecucin. E3isten muc(os tipos de pruebas entre ellos la de terceros ya que es la de un facilitador independiente por lo general acreditado por alguna autoridad su ob'etivo es probar el producto respecto a su conformidad con un con'unto de e3igencias.
CAPITULO 12 DISCIPLINAS RELACIONADAS CON LA INGENIERIA DEL SOFTWARE 42 Este captulo se centra en relacionar cada una de las disciplinas de la figura # con la Ingeniera del Software. Es especfico en lo que respecta a determinar las temticas de cada una de ellas con respecto a otras.