introduccion a la ingenieria de software 0

Upload: pablo-arciniega

Post on 19-Jul-2015

375 views

Category:

Documents


0 download

TRANSCRIPT

Ingeniera de SoftwareIntroduccin a la Ingeniera de Software

2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

ContenidosImportancia del software. Impacto del software en los productos y servicios. Crisis del software: Problemas y soluciones. Ciclo de vida del software: paradigmas y fases genricas. Planificacin de proyectos de software.

2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Objetivos especficosConocer la importancia que tiene el software al interior de las organizaciones. Ser capaz de identificar problemas y entregar las soluciones mas optimas para estos. Identificar cuando es necesario una solucin informtica (software) y cuando no es necesaria. Ser capaz de planificar un software, identificando claramente sus ciclo de vida.

2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

IntroduccinHoy en da el software tiene un doble papel: Es un producto y, al mismo tiempo, el vehculo para entregarlo. Como producto, hace entrega de la potencia informtica que incorpora el hardware informtico o, ms ampliamente, una red de computadoras que es accesible por hardware local. Si reside dentro de un telfono celular u opera dentro de una computadora central, el software es un transformador de informacin, produciendo, gestionando, adquiriendo, modificando, mostrando o transmitiendo informacin que puede ser tan simple como un solo bit, o tan complejo como una presentacin en multimedia. Como vehculo utilizado para hacer entrega del producto, el software acta como la base de control de la computadora (sistemas operativos), la comunicacin de informacin (redes) y la creacin y control de otros programas (herramientas de software y entomos).

2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Preguntas clavesPor qu lleva tanto tiempo terminar los programas? Por qu son tan elevados los costes de desarrollo? Por qu no podemos encontrar todos los errores antes de entregar el software a nuestros clientes? Por qu nos resulta difcil constatar el progreso conforme se desarrolla el software?

2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Tipos de softwareUna clasificacin (Pressman) puede ser: De sistema De tiempo real De gestin De ingeniera y cientfico Empotrado (embedded software) De computadoras personales Basado en la Web De inteligencia artificial

2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Crisis del softwareMuchos observadores de la industria han caracterizado los problemas asociados con el desarrollo del software como una crisis. Ms de unos cuantos libros han recogido el impacto de algunos de los fallos mas importantes que ocurrieron durante la dcada pasada. No obstante, los mayores xitos conseguidos por la industria del software han llevado a preguntarse si el trmino (crisis del software) es an apropiado. Robert Glass expone: Puedo ver en mis ensayos histricos de fallos y en mis informes de excepcin, fallos importantes en medio de muchos xitos, una copa que est [ahora] prcticamente llena.

2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Crisis (2)El conjunto de problemas encontrados en el desarrollo del software de computadoras no se limitan al software que no funciona correctamente. El mal abarca los problemas asociados a cmo desarrollar software, cmo mantener el volumen cada vez mayor de software existente y cmo poder esperar mantenemos al corriente de la demanda creciente de software. Vivimos con esta afliccin desde este da - d e hecho, la industria prospera a pesar de ello. Y as, las cosas podrn ser mejores si podemos encontrar y aplicar un remedio.

2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

MitosMuchas de las causas de la crisis del software se pueden encontrar en una mitologa que surge durante los primeros aos del desarrollo del software. A diferencia de los mitos antiguos, que a menudo proporcionaban a los hombres lecciones dignas de tener en cuenta, los mitos del software propagaron informacin errnea y confusin.

2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Mitos de gestin (1)Mito. Tenemos ya un libro que est lleno de estndares y procedimientos para construir software, no le proporciona ya a mi gente todo lo que necesita saber? Realidad. Est muy bien que el libro exista, pero: se usa?, conocen los trabajadores su existencia?, refleja las prcticas modernas de desarrollo de software?, es completo?, est diseado para mejorar el tiempo de entrega mientras mantiene un enfoque de calidad? En muchos casos, la respuesta a todas estas preguntas es NO.

2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Mitos de gestin (2)Mito. Mi gente dispone de las herramientas de desarrollo de software ms avanzadas, despus de todo, les compramos las computadoras ms modernas. Realidad. Se necesita mucho ms que el ltimo modelo de computadora grande o de PC para hacer desarrollo de software de gran calidad. Las herramientas de ingeniera del software asistida por computadora (CASE) son ms importantes que el hardware para conseguir buena calidad y productividad, aunque la mayora de los desarrolladores del software todava no las utilicen eficazmente.

2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Mitos de gestin (3)Mito. Si fallamos en la planificacin, podemos aadir ms programadores y adelantar el tiempo perdido (el llamado algunas veces concepto de la horda Mongol). Realidad. El desarrollo de software no es un proceso mecnico como la fabricacin. Aadir gente a un proyecto de software retrasado lo retrasa an ms. Al principio, esta declaracin puede parecer un contrasentido. Sin embargo, cuando se aaden nuevas personas, la necesidad de aprender y comunicarse con el equipo puede y hace que se reduzca la cantidad de tiempo gastado en el desarrollo productivo. Puede aadirse gente, pero slo de una manera planificada 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Mitos del clienteUn cliente que solicita una aplicacin de software puede ser una persona del despacho de al lado, un grupo tcnico de la sala de abajo, el departamento de ventas o una compaa exterior que solicita un software bajo contrato. En muchos casos, el cliente cree en los mitos que existen sobre el software, debido a que los gestores y desarrolladores del software hacen muy poco para corregir la mala informacin. Los mitos conducen a que el cliente se cree una falsa expectativa y, finalmente, quede insatisfecho con el que desarrolla el software. 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Mitos del cliente (2)Mito. Una declaracin general de los objetivos es suficiente para comenzar a escribir los programas. Podemos dar los detalles ms adelante Realidad. Una mala definicin inicial es la principal causa del trabajo baldo en software. Es esencial una descripcin formal y detallada del mbito de la informacin, funciones, comportamiento, rendimiento, interfaces, ligaduras del diseo y criterios de validacin. Estas caractersticas pueden determinarse slo despus de una exhaustiva comunicacin entre el 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy cliente y el analista.

Mitos del cliente (3)Mito. Los requisitos del proyecto cambian continuamente, pero los cambios pueden acomodarse fcilmente, ya que el software es flexible. Realidad. Es verdad que los requisitos del software cambian, pero el impacto del cambio vara segn el momento en que se introduzca. Si se pone cuidado al dar la definicin inicial, los cambios solicitados al principio pueden acomodarse fcilmente. El cliente puede revisar los requisitos y recomendar las modificaciones con relativamente poco impacto en el coste. 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Impacto del cambio (1)

Definicin

Desarrollo

Despus de la entrega

2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Impacto del cambio (2)Cuando los cambios se solicitan durante el diseo del software, el impacto en el coste crece rpidamente. Ya se han acordado los recursos a utilizar y se ha establecido un marco de trabajo del diseo. Los cambios pueden producir trastornos que requieran recursos adicionales e importantes modificaciones del diseo; es decir, coste adicional. Los cambios en la funcin, rendimiento, interfaces u otras caractersticas, durante la implementacin (codificacin y prueba) pueden tener un impacto importante sobre el coste. Cuando se de Las Amricas - Ingeniera de Softwareun Juan Jos Aranda Aboylos solicitan al final de : Dr. proyecto, 2008 Universidad

Mitos de los desarrolladores (1)Los mitos en los que an creen muchos desarrolladores se han ido fomentando durante 50 aos de cultura informtica. Durante los primeros das del desarrollo del software, la programacin se vea como un arte. Las viejas formas y actitudes tardan en morir. Mito. Una vez que escribimos el programa y hacemos que funcione, nuestro trabajo ha terminado. Realidad. Alguien dijo una vez: cuanto ms pronto se comience a escribir cdigo, ms se tardar en terminarlo. Los datos industriales indican que entre el 60 y por ciento Amricas - Ingeniera de Software : Dr. dedicado el 802008 Universidad de Lasde todo el esfuerzoJuan Jos Aranda Aboya un

Mitos de los desarrolladores (2)Mito. Hasta que no tengo el programa ejecutndose, realmente no tengo forma de comprobar su calidad. Realidad. Desde el principio del proyecto se puede aplicar uno de los mecanismos ms efectivos para garantizar la calidad del software: la revisin tcnica formal. La revisin del software es un filtro de calidad que se ha comprobado que es ms 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Mitos de los desarrolladores (3)Mito. Lo nico que se entrega al terminar el proyecto es el programa funcionando. Realidad. Un programa que funciona es slo una parte de una configuracin del software que incluye muchos elementos. La documentacin proporciona el fundamento para un buen desarrollo y, lo que es ms importante, proporciona guas para la tarea de mantenimiento del software. 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Primeras conclusionesMuchos profesionales del software reconocen la falacia de los mitos descritos anteriormente. Lamentablemente, las actitudes y mtodos habituales fomentan una pobre gestin y malas prcticas tcnicas, incluso cuando la realidad dicta un mtodo mejor. El reconocimiento de las realidades del software es el primer paso hacia la 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Resumen (1)El software se ha convertido en el elemento clave de la evolucin de los sistemas y productos informticos. En los pasados 50 aos, el software ha pasado de ser una resolucin de problemas especializada y una herramienta de anlisis de informacin, a ser una industria por s misma. Pero la temprana cultura e historia de la programacin ha creado un conjunto de problemas que persisten todava hoy. 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Resumen (2)El software se ha convertido en un factor que limita la evolucin de los sistemas informticos. El software se compone de programas, datos y documentos. Cada uno de estos elementos componen una configuracin que se crea como parte del proceso de la ingeniera del software. El intento de la Ingeniera del Software 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Ejercicios (1)1.El software es la caracterstica que diferencia a

muchos productos y sistemas informticos. D ejemplos de dos o tres productos y de, al menos, un sistema en el que el software, no el hardware, sea el elemento diferenciador. 2.En los aos cincuenta y sesenta la programacin de computadoras era un arte aprendido en un entorno bsicamente experimental. Cmo cree Ud. que ha afectado esto a las prcticas de desarrollo del software hoy? 3.Muchos autores han tratado el impacto de la era de la informacin. D varios ejemplos (positivos y negativos) que indiquen el impacto del software en 2008 Universidad de Lasnuestra sociedad. Juan Jos Aranda Aboy Amricas - Ingeniera de Software : Dr.

Ejercicios (2)5.A medida que el software se difunde ms, los riesgos para

el pblico (debido a programas defectuosos) se convierten en una preocupacin cada vez ms significativa. Desarrolle un escenario realista del juicio final (distinto a Y2K) en donde el fallo de computadora podra hacer un gran dao (econmico o humano). 6.Lea detenidamente el grupo de noticias de Internet comp.risk y prepare un resumen de riesgos para las personas. Alternativa: Software Engineering Notes publicado por la ACM. 7.Escriba un papel que resuma las ventajas recientes en una de las reas de aplicaciones de software principales. Entre las selecciones potenciales se incluyen: aplicaciones avanzadas basadas en Web, realidad virtual, redes neuronales artificiales, interfaces humanas avanzadas y 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Qu es Ingeniera del Software?Una vuelta mas

2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Segn Pressman[La ingeniera del software] es el establecimiento y uso de principios robustos de la ingeniera a fin de obtener econmicamente software que sea fiable y que funcione eficientemente sobre mquinas reales.

2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Segn Sommerville

2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Segn IEEEEl IEEE [IEE93] ha desarrollado una definicin completa: Ingeniera del software: (1) La aplicacin de un enfoque sistemtico, disciplinado y cuantificable hacia el desarrollo, operacin y mantenimiento del software; es decir, la aplicacin de ingeniera al software. (2) El estudio de enfoques como en (1). 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Qu es?Cuando trabaja para construir un producto o un sistema, es importante seguir una serie de pasos predecibles: un mapa de carreteras (roadmap) que le ayude a obtener el resultado oportuno de calidad. El mapa de carreteras a seguir es llamado proceso del software. 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

El proceso del software (1)Como el software, al igual que el capital, es el conocimiento incorporado, y puesto que el conocimiento est inicialmente disperso, el desarrollo del software implcito, latente e incompleto en gran medida, es un proceso social de aprendizaje. El proceso es un dilogo en el que se rene el conocimiento y se incluye en el software para convertirse en software. 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

El proceso del software (2)El proceso proporciona una interaccin entre los usuarios y los diseadores, entre los usuarios y las herramientas de desarrollo, y entre los diseadores y las herramientas de desarrollo [tecnologa]. Es un proceso interactivo donde la herramienta de desarrollo se usa como medio de comunicacin, con cada iteracin del dilogo se obtiene mayor conocimiento de las personas involucradas. 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Quin lo hace?Los ingenieros de software y sus gestores adaptan el proceso a sus necesidades y entonces lo siguen. Adems las personas que han solicitado el software tienen un papel a desempear en el proceso del software.

2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

ImportanciaPor qu es importante? Porque proporciona estabilidad, control y organizacin a una actividad que puede, si no se controla, volverse catica. Cules son los pasos? A un nivel detallado, el proceso que adoptemos depende del software que estamos construyendo. Un proceso puede ser apropiado para crear software de un sistema de aviacin, mientras que un proceso diferente por completo puede 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Cul es el producto obtenido?Desde el punto de vista de un ingeniero de software, los productos obtenidos son:

programas, documentos y datosque se producen como consecuencia de las actividades de ingeniera del software definidas por el 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

CalidadCmo puedo estar seguro de que lo he hecho correctamente? Hay una cantidad de mecanismos de evaluacin del proceso del software que permiten a las organizaciones determinar la madurez de su proceso del software. Sin embargo, la calidad, oportunidad y viabilidad a largo plazo del producto que est construyendo son los mejores indicadores de 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

La Ingeniera del software es un tecnologa multicapa (1)El fundamento de la ingeniera del software es la capa de proceso. El proceso de la ingeniera del software es la unin que mantiene juntas las capas de tecnologa y que permite un desarrollo racional y oportuno de la ingeniera del software.

2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

La Ingeniera del software tecnologa multicapa (2) - procesoEl proceso define un marco de trabajo para un conjunto de reas clave de proceso (ACPs) que se deben establecer para la entrega efectiva de la tecnologa de la ingeniera del software. Las reas claves del proceso forman la base del control de gestin de proyectos del software y establecen el contexto en el que se aplican los mtodos tcnicos, se obtienen productos del trabajo (modelos, documentos, datos, informes, formularios, etc.), se establecen hitos, se asegura la calidad y el 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

La Ingeniera del software - tecnologa multicapa (3) - mtodosLos mtodos de la ingeniera del software indican cmo construir tcnicamente el software. Los mtodos abarcan una gran gama de tareas que incluyen anlisis de requisitos, diseo, construccin de programas, pruebas y mantenimiento. Los mtodos de la ingeniera del software dependen de un conjunto de principios bsicos que gobiernan cada rea de la tecnologa e incluyen actividades de modelado y otras tcnicas descriptivas. 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

La Ingeniera del software - tecnologa multicapa (4) - herramientasLas herramientas de la Ingeniera del software proporcionan un enfoque automtico o semiautomtico para el proceso y para los mtodos. Cuando se integran herramientas para que la informacin creada por una herramienta la pueda utilizar otra, se establece un sistema de soporte para el desarrollo del software llamado ingeniera del software asistida por 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Una visin general de la ingeniera del softwareLa ingeniera es el anlisis, diseo, construccin, verificacin y gestin de entidades tcnicas (o sociales). Con independencia de la entidad a la que se va a aplicar ingeniera, se deben cuestionar y responder las siguientes preguntas: 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

PreguntasCul es el problema a resolver? Cules son las caractersticas de la entidad que se utiliza para resolver el problema? Cmo se realizar la entidad (y la solucin)? Cmo se construir la entidad? Qu enfoque se va a utilizar para no contemplar los errores que se cometieron en el diseo y en la construccin de la entidad? Cmo se apoyar la entidad cuando usuarios soliciten correcciones, adaptaciones 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Fases Fase de definicinEl trabajo que se asocia a la ingeniera del software se puede dividir en tres fases genricas, con independencia del rea de aplicacin, tamao o complejidad del proyecto. Cada fase se encuentra con una o varias cuestiones de las destacadas anteriormente. La fase de definicin se centra sobre el qu. Es decir, durante la definicin, el que desarrolla el software intenta identificar qu informacin ha de ser procesada, qu funcin y rendimiento se desea, qu comportamiento del sistema, qu interfaces van a ser establecidas, de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy qu restricciones de diseo existen, y 2008 Universidad

ContinuacinPor tanto, han de identificarse los requisitos clave del sistema y del software. Aunque los mtodos aplicados durante la fase de definicin variarn dependiendo del paradigma de ingeniera del software (o combinacin de paradigmas) que se aplique, de alguna manera tendrn lugar tres tareas principales: ingeniera de sistemas o de informacin, planificacin del proyecto del software y anlisis de los requisitos. 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Fases fase de desarrolloLa fase de desarrollo se centra en el cmo. Es decir, durante el desarrollo un ingeniero del software intenta definir cmo han de disearse las estructuras de datos, cmo ha de implementarse la funcin dentro de una arquitectura de software, cmo han de implementarse los detalles procedimentales, cmo han de caracterizarse interfaces, cmo ha de traducirse el diseo en un lenguaje de programacin (o lenguaje no procedimental) y cmo ha de realizarse la prueba. Los mtodos aplicados durante la fase de desarrollo variarn, aunque las tres tareas especficas tcnicas deberan ocurrir siempre: diseo del software, 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy generacin de cdigo y

Fases Mantenimiento (1)La fase de mantenimiento se centra en el cambio que va asociado a la correccin de errores, a las adaptaciones requeridas a medida que evoluciona el entorno del software y a cambios debidos a las mejoras producidas por los requisitos cambiantes del cliente. Durante la fase de mantenimiento se encuentran cuatro tipos de cambios: 1. Correccin. Incluso llevando a cabo las mejores actividades de garanta de calidad, es muy probable que el cliente descubra los defectos en el software. ElLas Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy mantenimiento correctivo cambia el 2008 Universidad de

Fases Mantenimiento (2)2.

3.

Adaptacin. Con el paso del tiempo, es probable que cambie el entorno original (por ejemplo: CPU, el sistema operativo, las reglas de empresa, las caractersticas externas de productos) para el que se desarroll el software. El mantenimiento adaptativo produce modificacin en el software para acomodarlo a los cambios de su entorno externo. Mejora. Conforme se utilice el software, el cliente/ usuario puede descubrir funciones adicionales que van a producir beneficios. El mantenimiento perfectivo lleva al software ms all de sus 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy requisitos funcionales originales.

Fases Mantenimiento (3)4.

Prevencin. El software de computadora se deteriora debido al cambio, y por esto el mantenimiento preventivo tambin llamado reingeniera del software, se debe conducir a permitir que el software sirva para las necesidades de los usuarios finales. En esencia, el mantenimiento preventivo hace cambios en programas de computadora a fin de que se puedan corregir, adaptar y mejorar ms fcilmente. 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Actividades protectorasLas actividades de proteccin se aplican a lo largo de todo el proceso del software:Seguimiento y control del proyecto de software. Revisiones tcnicas formales. Garanta de calidad del software. Gestin de configuracin del software. Preparacin y produccin de documentos. 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Las actividades de proteccin son independientes de cualquier actividad del marco de trabajo y aparecen durante todo el proceso. En los ltimos aos, se ha hecho mucho nfasis en la madurez del proceso. El Software Engineering Institute (SEI) ha desarrollado un modelo completo que se basa en un conjunto de funciones de ingeniera del software que deberan estar presentes conforme organizaciones alcanzan diferentes niveles de madurez del proceso. Para determinar el estado actual de madurez del proceso dedeuna organizacin, el SEI utiliza un 2008 Universidad Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

El esquema de grados determina la conformidad con un modelo de capacidad de madurez (Capacity Maturity Model - CMM) que define las actividades clave que se requieren en los diferentes niveles de madurez del proceso. El enfoque del SEI proporciona una medida de la efectividad global de las prcticas de ingeniera del software de una compaa y establece cinco niveles de madurez del 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Nivel 1: Inicial. El proceso del software se caracteriza segn el caso, y ocasionalmente incluso de forma catica. Se definen pocos procesos, y el xito depende del esfuerzo individual. Representa una situacin sin ningn esfuerzo en la garanta de calidad y gestin del proyecto, donde cada equipo del proyecto puede desarrollar software de cualquier forma eligiendo los mtodos, estndares y 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Nivel 2: Repetible. Se establecen los procesos de gestin del proyecto para hacer seguimiento del coste, de la planificacin y de la funcionalidad. Para repetir xitos anteriores en proyectos con aplicaciones similares se aplica la disciplina necesaria para el proceso. Representa el hecho de que un desarrollador de software ha definido ciertas actividades tales como el informe del esfuerzo y del 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Nivel 3: Definido. El proceso del software de las actividades de gestin y de ingeniera se documenta, se estandariza y se integra dentro de un proceso de software de toda una organizacin. Todos los proyectos utilizan una versin documentada y aprobada del proceso de la organizacin para el desarrollo y mantenimiento del software. En este nivel se incluyen todas las caractersticas definidas para el nivel 2. Representa el hecho de que un desarrollador de software ha definido tanto procesos tcnicos como de gestin, por ejemplo un estndar para la programacin ha sido detallado y se hace cumplir por medio de procedimientos tales como auditoras. 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy Este nivel es aquel en el que la mayora de los

Nivel 4: Gestionado. Se recopilan medidas detalladas del proceso del software y de la calidad del producto. Mediante la utilizacin de medidas detalladas, se comprenden y se controlan cuantitativamente tanto los productos como el proceso del software. En este nivel se incluyen todas las caractersticas definidas para el nivel 3. 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

MtricasUna mtrica es una cantidad insignificante que puede extraerse de algn documento o cdigo dentro de un proyecto de software. Un ejemplo de mtrica es el nmero de ramas condicionales en una seccin de cdigo de un programa. Esta mtrica es significativa en el sentido de que proporciona alguna 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Una organizacin del nivel 4 maneja numerosas mtricas. Estas mtricas se utilizan entonces para supervisar y controlar un proyecto de software, por ejemplo: Una mtrica de prueba puede usarse para determinar cundo finalizar la prueba de un elemento del cdigo. Una mtrica de legilibilidad puede usarse para juzgar la legilibilidad de algn documento en lenguaje natural. Una mtrica de comprensin del programa puede utilizarse para proporcionar algn Juan Jos Arandanumrico 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. umbral Aboy

Para que estas mtricas alcancen este nivel es necesario que todos los componentes del nivel 3 CMM, en castellano MCM (Modelo de Capacidad de Madurez), estn conseguidos, por ejemplo notaciones bien definidas para actividades como la especificacin del diseo de requisitos, por lo que estas mtricas pueden ser fcilmente extradas 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Nivel 5: Optimizacin. Mediante una retroalimentacin cuantitativa del proceso, ideas y tecnologas innovadoras se posibilita una mejora del proceso. En este nivel se incluyen todas las caractersticas definidas para el nivel 4. Es el nivel ms alto a alcanzar. Hasta ahora, muy pocos desarrolladores de software han alcanzado esta fase. Representa la analoga del software con los mecanismos de control de calidad que existen en otras industrias de mayor madurez. 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

El desarrollador del software en el nivel 5 puede predecir resultados como el nmero de errores latentes en un producto basado en la medicin tomada durante la ejecucin de un proyecto. Adems, dicho desarrollador puede cuantificar el efecto que un proceso nuevo o herramienta de manufacturacin ha tenido en un proyecto examinando mtricas para ese proyecto y comparndolas con proyectos 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

El SEI ha asociado reas claves del proceso (ACPs) a cada uno de los niveles de madurez. Las ACPs describen esas funciones de la ingeniera del software (por ejemplo: planificacin del proyecto de software, gestin de requisitos) que se deben presentar para satisfacer una buena prctica a un nivel en particular. 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Objetivos- los objetivos globales que debe alcanzar la ACP Compromisos- requisitos (impuestos en la organizacin) que se deben cumplir para lograr los objetivos y que proporcionan una prueba del intento por ajustarse a los objetivos. Capacidades- aquellos elementos que deben encontrarse (organizacional y 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Actividades- las tareas especficas que se requieren para lograr la funcin ACP. Mtodos para supervisar la implementacin-la manera en que las actividades son supervisadas conforme se aplican. Mtodos para verificar la implementacinla forma en que se puede verificar la prctica adecuada para la ACP. 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Se definen dieciocho ACPs (descritas mediante la estructura destacada anteriormente) en el modelo de madurez y se distribuyen en niveles diferentes de madurez del proceso. Las ACPs se deberan lograr en cada nivel de madurez de proceso: 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Nivel 2 de Madurez del Proceso 1. Gestin de configuracin del software 2. Garanta de calidad del software 3. Gestin de subcontratacin del software 4. Seguimiento y supervisin del proyecto del software 5. Planificacin del proyecto del software 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Nivel 3 de Madurez del Proceso 7. Revisiones peridicas 8. Coordinacin entre grupos 9. Ingeniera de productos de software 10. Gestin de integracin del software 11. Programa de formacin 12. Definicin del proceso de la organizacin 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Nivel 4 de Madurez del Proceso 14. Gestin de calidad del software 15. Gestin cuantitativa del proceso Nivel 5 de Madurez del Proceso 16. Gestin de cambios del proceso 17. Gestin de cambios de tecnologa 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Cada una de las ACPs se definen con un conjunto de prcticas clave que contribuyen a cumplir estos objetivos. Las prcticas clave son normas, procedimientos y actividades que deben ocurrir antes de que se haya instituido completamente un rea clave de proceso. El SEI define a los indicadores clave como aquellas prcticas clave o componentes de prcticas clave que ofrecen una visin mejor 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Modelos del proceso de softwarePara resolver los problemas reales de una industria, un ingeniero del software o un equipo de ingenieros debe incorporar una estrategia de desarrollo que acompae al proceso, mtodos y capas de herramientas descritos y las fases genricas discutidas. Esta estrategia a menudo se llama modelo de proceso o paradigma de ingeniera del software. Se selecciona un modelo de proceso para la ingeniera del software segn la naturaleza del proyecto y de la aplicacin, los mtodos y las herramientas a utilizarse, y los controles y entregas que se requieren. En un documento intrigantedesobre Dr. Juan Jos Aranda Aboy del la naturaleza 2008 Universidad de Las Amricas - Ingeniera Software : proceso del software, L.B.S. Raccoon [RAC95] utiliza

Todo el desarrollo del software se puede caracterizar como bucle de resolucin de problemas en el que se encuentran cuatro etapas distintas: 1. status quo: representa el estado actual de sucesos 2. definicin de problemas: identifica el problema especfico a resolverse, 3. desarrollo tcnico: resuelve el problema a travs de la aplicacin de alguna tecnologa. 4. integracin de soluciones: ofrece los resultados (por ejemplo: documentos, programas, datos, nueva funcin comercial, nuevo producto) a los que solicitan la solucin en primer lugar. Las fases y los pasos genricos de ingeniera del software definidos se dividen fcilmente en estas etapas. 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

ResumenLa ingeniera del software es una disciplina que integra procesos, mtodos y herramientas para el desarrollo del software de computadora. Se han propuesto varios modelos de procesos para la ingeniera del software diferentes, cada uno exhibiendo ventajas e inconvenientes pero todos tienen una serie de fases genricas en comn. En el resto de este curso se consideran los principios, conceptos y mtodos que permiten llevar a cabo el proceso que se llama 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy

Fuentes de informacinSommerville, I. Ingeniera de Software 7ma edicin. Pressman, R. Ingeniera de Software: Un enfoque prctico 5ta edicin:cap 1 12p cap 2 22p

Kendall, K.E. y Kendall, J.E. Anlisis y diseo de sistemas 6ta edicin. 2008 Universidad de Las Amricas - Ingeniera de Software : Dr. Juan Jos Aranda Aboy