Está en la página 1de 7

Unidad II Introduccin a la ingeniera de software Objetivo: El alumno comprender los elementos que integran la Ingeniera de Software y el aseguramiento de la calidad.

2.1 Definicin de ingeniera de software (Nota: Revisar apuntes) Ingeniera de software se define como la disciplina tecnolgica ocupada de la produccin sistemtica y mantenimiento de los productos de software que se desarrollan en un tiempo y dentro de un presupuesto definido.
Ingeniera de Software es el estudio de los principios y metodologas para desarrollo y mantenimiento de sistemas de software. Ingeniera de Software es la aplicacin prctica del conocimiento cientfico en el diseo y construccin de programas de computadora y la documentacin asociada requerida para desarrollar, operar (funcionar) y mantenerlos. Ingeniera de Software trata del establecimiento de los principios y mtodos de la ingeniera a fin de obtener software de modo rentable que sea fiable y trabaje en mquinas reales. La ingeniera de software se define como la disciplina tecnolgica preocupada de la produccin sistemtica y del mantenimiento de los productos de software que son desarrollados y modificados en tiempo y dentro de un presupuesto definido. La ingeniera de software difiere de la programacin tradicional en que se utilizan tcnicas de ingeniera para especificar, disear, instrumentar, validar y mantener los productos dentro del tiempo y el presupuesto establecidos. Segn la definicin del IEEE, software es la suma total de los programas de ordenador, procedimientos, reglas, la documentacin asociada y los datos que pertenecen a un sistema de cmputo y un producto de software es un producto diseado para un usuario. En este contexto, la Ingeniera de Software es un enfoque sistemtico del desarrollo, operacin, mantenimiento y retiro del software. Definiciones de Boehm a) Software es el conjunto de programas, procedimientos y documentacin asociados a un sistema, y particularmente a un sistema computacional. b) Ingeniera es la aplicacin de la ciencia y las matemticas mediante lo cual las propiedades de la materia y las fuentes de energa de la naturaleza se hacen tiles al hombre en estructuras, mquinas, productos, sistemas y procesos. c) Ingeniera de software es la aplicacin de la ciencia y las matemticas mediante la cual la capacidad de los equipos computacionales se hace tiles al hombre a travs de programas de computador, procedimientos y la documentacin asociada. Definicin de Bauer Ingeniera del Software es el establecimiento y uso de firmes principios y mtodos de ingeniera para la obtencin econmica de software fiable y que funcione en mquinas reales.

2.2 Historia de la ingeniera de software. 2.3 Caractersticas del software Nota: Consultar apuntes 2.4 Mitos del software. Existen 3 tipos de mitos del software: 1.- Mitos del Gestor. Cumplir presupuesto. No retrasar proyectos Mejorar la calidad Disminucin Temporal de la presin de trabajo. Mito: Manual de desarrollo de software Realidad: Se entiende? Se utiliza? El personal tiene prctica en su aplicacin. Mito: Herramientas de desarrollo ms avanzadas, compramos siempre los mejores equipos. Realidad: Se invierte en herramientas CASE? Y en entornos de desarrollo? Mito: Si fallamos en la planificacin, podemos aadir ms programadores y adelantar el tiempo perdido. Realidad: En el proceso de software aadir gente puede retrasar ms el proyecto. Mito: Si mi cronograma de trabajo no se cumple, contrato ms especialistas con nivel de entrenamiento ms alto y mayor experiencia Mito: Si hay buenos estndares y procedimientos claros en la compaa, yo no debo preocuparme. Mito: Mis ingenieros de software tienen acceso a los ms rpidos y sofisticados ambientes de computadores y herramientas de software, yo no me preocupo 2.- Mitos del Cliente Los mitos conducen a que el cliente se cree una falsa expectativa y, finalmente quede insatisfecho con el desarrollo del software. Mito: Una declaracin general de objetivos es suficiente para comenzar a escribir los programas, y podemos dar los detalles ms adelante. Realidad: Una mala definicin inicial conlleva trabajo intil. Mito: Los requisitos del proyecto cambian continuamente, pero los cambios pueden acomodarse fcilmente porque el software es flexible. Requerimientos vagos o incompletos se pueden fcilmente detallar a medida que se vayan concretando. Los requerimientos de la aplicacin nunca pueden ser estables.

Realidad: Es cierto que los requisitos cambian, pero el impacto del cambio vara en funcin del momento en que se introduzcan los cambios. 3.- Mitos de los desarrolladores Mito: Hasta que no tenga el programa ejecutndose, no tengo forma de medir su calidad. Hasta que el software no se codifique y est disponible para probarlo, no se puede establecer su calidad. Realidad: Revisiones Tcnicas Formales durante el desarrollo de software. usualmente hay demasiadas fallas pequeas en cada etapa que crecen en tamao y complejidad a medida que ellas van a etapas posteriores Mito: Lo ltimo que se entrega al terminar el proyecto es el programa funcionando. Realidad: Software = programas + datos + documentos. Mito: Una vez que escribamos el programa y hagamos que funcione, nuestro trabajo ha terminado. Realidad: Entre el cincuenta y el setenta por ciento de todo el esfuerzo dedicado a un programa se realiza despus de que se entregue al cliente por primera vez. No hay mtodos para el anlisis, diseo y prueba que funcionen bien, simplemente me voy a la computadora y comienzo a codificar. Una vez que hacemos que el programa funcione, nuestro trabajo ha terminado. Hasta que no est el programa terminado no puedo establecer su calidad. Lo nico que se entrega al terminar el proyecto es el programa funcionando. Una vez que el programa se est usando, el mantenimiento es mnimo y puede manejarse sobre la base de hacerlo como se pueda. 2.5 Capas de la IS Tecnologa Estratificada de la Ingeniera de Software

Herramientas: Se refiere al conjunto de herramientas y mtodos asociados que proporcionan asistencia automatizada en el proceso de desarrollo del software a lo largo de su ciclo de vida,

constituyen el soporte automtico o semiautomtico, y estn orientadas a etapas particulares en el diseo de un software. Las tecnologas CASE y CAD pertenecen a esta capa de la ingeniera de software, permitiendo la optimizacin de las tareas. Mtodos: Esta capa especifica cmo se construye tcnicamente el software siguiendo las siguientes etapas: Planificacin, Anlisis de los requisitos, Diseo del sistema, Codificacin, Prueba y Mantenimiento. Proceso: Son la unin de los mtodos y las herramientas y facilita en desarrollo racional y oportuno del software de la computadora. Es el fundamento de la IS, que define un marco de trabajo para un conjunto de reas clave. Definen la secuencia a seguir, cmo usar las herramientas, las entregas que se requieren, controles de seguimiento y calidad, guas para facilitar la labor de gestores y desarrolladores, etc. Enfoque de calidad: Especifica las revisiones que se realizan durante cada paso para asegurar que se mantiene la calidad, la pruebas de software, Verificacin y Validacin 2.6 Proceso de desarrollo de software Es una serie de pasos a seguir para construir un producto o un sistema. El proceso del software es importante porque proporciona estabilidad, control y organizacin a una actividad que puede, si no se controla, volverse catica Un proceso de desarrollo de software tiene como propsito la produccin eficaz y eficiente de un producto software que rena los requisitos del cliente. Este proceso es intensamente intelectual, afectado por la creatividad y juicio de las personas involucradas. Aunque un proyecto de desarrollo de software es equiparable en muchos aspectos a cualquier otro proyecto de ingeniera, en el desarrollo de software hay una serie de desafos adicionales, relativos esencialmente a la naturaleza del producto obtenido. Un producto software en s es complejo, es prcticamente inviable conseguir un 100% de confiabilidad de un programa por pequeo que sea. Existe una inmensa combinacin de factores que impiden una verificacin exhaustiva de las todas posibles situaciones de ejecucin que se puedan presentar (entradas, valores de variables, datos almacenados, software del sistema, otras aplicaciones que intervienen, el hardware sobre el cual se ejecuta, etc.). Un producto software es intangible y por lo general muy abstracto, esto dificulta la definicin del producto y sus requisitos, sobre todo cuando no se tiene precedentes en productos software similares. Esto hace que los requisitos sean difciles de consolidar

tempranamente. As, los cambios en los requisitos son inevitables, no slo despus de entregado en producto sino tambin durante el proceso de desarrollo. A pesar de la variedad de propuestas de proceso de software, existe un conjunto de actividades fundamentales que se encuentran presentes en todos ellos: 1. Especificacin de software: Se debe definir la funcionalidad y restricciones operacionales que debe cumplir el software. 2. Diseo e Implementacin: Se disea y construye el software de acuerdo a la especificacin. 3. Validacin: El software debe validarse, para asegurar que cumpla con lo que quiere el cliente. 4. Evolucin: El software debe evolucionar, para adaptarse a las necesidades del cliente. Adems de estas actividades fundamentales, Pressman menciona un conjunto de actividades protectoras, que se aplican a lo largo de todo el proceso del software. Ellas se sealan a continuacin:

Seguimiento y control de proyecto de software. Revisiones tcnicas formales. Garanta de calidad del software. Gestin de configuracin del software. Preparacin y produccin de documentos. Gestin de reutilizacin. Mediciones. Gestin de riesgos.

Pressman caracteriza un proceso de desarrollo de software compuesto por los siguientes elementos: Un marco comn del proceso, definiendo un pequeo nmero de actividades del marco de trabajo que son aplicables a todos los proyectos de software, con independencia del tamao o complejidad. Un conjunto de tareas, cada uno es una coleccin de tareas de ingeniera del software, entregas y productos de trabajo del software, y puntos de garanta de calidad, que permiten que las actividades del marco de trabajo se adapten a las caractersticas del proyecto de software y los requisitos del equipo del proyecto. Las actividades de proteccin, tales como garanta de calidad del software, gestin de configuracin del software y medicin, abarcan el modelo del proceso. Las actividades de proteccin son independientes de cualquier actividad del marco de trabajo y aparecen durante todo el proceso. Otra perspectiva utilizada para determinar los elementos del proceso de desarrollo de software es establecer las relaciones entre elementos que permitan responder Quin debe hacer Qu, Cundo y Cmo debe hacerlo Sommerville define modelo de proceso de software como Una representacin simplificada de un proceso de software, representada desde una perspectiva especfica. Por su naturaleza los modelos son simplificados, por lo tanto un modelo de procesos del software es una

abstraccin de un proceso real. Los modelos genricos no son descripciones definitivas de procesos de software; sin embargo, son abstracciones tiles que pueden ser utilizadas para explicar diferentes enfoques del desarrollo de software. 2.7 Software de alta calidad. La calidad del producto de software abarca: Calidad Interna Calidad Externa Calidad en Uso Los Estndares de Calidad son aquellos que permiten definir un conjunto de criterios de desarrollo que guan la forma en que se aplica la Ingeniera del Software. Los estndares suministran los medios para que todos los procesos se realicen de la misma forma y son una gua para lograr la productividad y la calidad. La Calidad se puede definir, medir y planificar" Aseguracin de la calidad el Proyecto Si la situacin real corresponde a lo planeado se contina, de otra forma se debern hacer los ajustes necesarios. El Control de Calidad Es monitorear resultados especficos del proyecto para determinar si cumplen con los estndares de calidad establecidos e identificar maneras de eliminar causas de desempeo no satisfactorio. Algunas herramientas para controlar la calidad del proyecto son: Inspeccin. La inspeccin incluye actividades tales como medicin, examinacin, y ensayos ejercidos para determinar si los resultados cumplen con los requerimientos. Tablas o grficas de control. Son formas grficas de los resultados, sobre el tiempo, de un proceso. Son usadas para determinar si los procesos estn "bajo control" Diagramas de Pareto. Muestra cuantos resultados fueron generados por tipo o categora de causa identificada.

Qu normas son relevantes y cmo satisfacerlas

Utilizar los procesos necesarios para cumplir los requisitos

Supervisar que se cumpla con las normas

La calidad de un software depende de la forma en la que responde a los requerimientos del problema, la forma en la que se disea, el cdigo que conduce a un ejecutable y las pruebas de deteccin de errores. Que conseguimos adoptando estndares de desarrollo? 1.- Mejorar el proceso: Reduccin de costes Reduccin de tiempo de desarrollo Reduccin de riesgos 2.- mejora de la calidad del producto 3.- Proteccin del cliente 4.- Proteccin de la organizacin aumenta su competitividad 2.8 Factores de calidad y productividad. (Nota: Revisar apuntes) Factores relacionados con la productividad de software: Factores Humanos Factores del Problema Factores del Proceso Factores de Producto Factores del recurso Factores que influencian el resultado: Tamao Tiempo de entrega Presupuestos y costos Dominio de la aplicacin

Tecnologa a ser implantada Restricciones del sistema Requerimientos del usuario Recursos disponibles

También podría gustarte