You are on page 1of 11

2.6.

Ciclo de Vida del Software Definicin: El trmino ciclo de vida del software describe el desarrollo de software, desde la fase inicial hasta la fase final. El propsito de este programa es definir las distintas fases intermedias que se requieren para validar el desarrollo de la aplicacin, es decir, para garantizar que el software cumpla los requisitos para la aplicacin y verificacin de los procedimientos de desarrollo: se asegura de que los mtodos utilizados son apropiados. Estos programas se originan en el hecho de que es muy costoso rectificar los errores que se detectan tarde dentro de la fase de implementacin. El ciclo de vida permite que los errores se detecten lo antes posible y por lo tanto, permite a los desarrolladores concentrarse en la calidad del software, en los plazos de implementacin y en los costos asociados. Es una sucesin de estados o fases por los cuales pasa un software a lo largo de su "vida". Es el perodo de tiempo que "vive" un sistema informtico desde que es pensado hasta que es desechado. Crear un ciclo de vida permite detectar errores ms rpido, mejorar la calidad del software, estimar los plazos de implementacin y sus costos, etc. Un modelo de ciclo de vida del software:

Describe las fases principales de desarrollo de software. Define las fases primarias esperadas de ser ejecutadas durante esas fases. Ayuda a administrar el progreso del desarrollo, y Provee un espacio de trabajo para la definicin de un detallado proceso de desarrollo de software.

El ciclo de vida bsico de un software consta de los siguientes procedimientos:

a. INGENIERA DE SISTEMAS: En esta etapa el analista luego de un minucioso y detallado estudio de los sistemas de una organizacin, detecta un problema o una necesidad que para su solucin y/o satisfaccin es necesario realizar un desarrollo de software. b. ANLISIS: En esta etapa se debe entender y comprender de forma detallada cual es la problemtica a resolver, verificando el entorno en el cual se encuentra dicho problema, de tal manera que se obtenga la informacin necesaria y suficiente para afrontar su respectiva solucin. Esta etapa es conocida como la del QU se va a solucionar.

c. DISEO: Una vez que se tiene la suficiente informacin del problema a solucionar, es importante determinar la estrategia que se va a utilizar para resolver el problema. Esta etapa es conocida bajo el CMO se va a solucionar. d. IMPLEMENTACIN: partiendo del anlisis y diseo de la solucin, en esta etapa se procede a desarrollar el correspondiente programa que solucione el problema mediante el uso de una herramienta

computacional determinada. e. PRUEBAS: Los errores humanos dentro de la programacin de los computadores son muchos y aumentan considerablemente con la complejidad del problema. Cuando se termina de escribir un programa de computador, es necesario realizar las debidas pruebas que garanticen el correcto funcionamiento de dicho programa bajo el mayor nmero de situaciones posibles a las que se pueda enfrentar. f. DOCUMENTACIN: Es la gua o comunicacin escrita en sus diferentes formas, ya sea en enunciados, procedimientos, dibujos o diagramas que se hace sobre el desarrollo de un programa. La importancia de la documentacin radica en que a menudo un programa escrito por una persona, es modificado por otra. Por ello la documentacin sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento). La documentacin se compone de tres partes: Documentacin Interna: Son los comentarios o mensajes que se aaden al cdigo fuente para hacer ms claro el entendimiento de los procesos que lo conforman, incluyendo las precondiciones y las pos condiciones de cada funcin. Documentacin Externa: Se define en un documento escrito con los siguientes puntos: Descripcin del Problema

Datos del Autor Algoritmo (diagrama de flujo o Pseudocdigo) Diccionario de Datos Cdigo Fuente (programa) Manual de Usuario: Describe paso a paso la manera como funciona el programa, con el fin de que el usuario lo pueda manejar para que obtenga el resultado deseado. g. MANTENIMIENTO: una vez instalado un programa y puesto en marcha para realizar la solucin del problema previamente planteado o satisfacer una determinada necesidad, es importante mantener una estructura de actualizacin, verificacin y validacin que permitan a dicho programa ser til y mantenerse actualizado segn las necesidades o requerimientos planteados durante su vida til. Para realizar un adecuado

mantenimiento, es necesario contar con una buena documentacin del mismo. Para terminar de entender la problemtica en la cual se desarrolla este libro es importante tener unos conceptos claros y precisos de lo que es el Anlisis y el Diseo de Algoritmos.

1. CALIDAD DEL SOFTWARE: 1.1. GENERALIDADES: El origen del inters actual por la calidad se puede explicar recurriendo al estudio de la evolucin en la comercializacin de los productos. En el mercado actual tan competitivo no basta con producir y distribuir masivamente los productos o servicios, vender es lo importante y solo se produce con la seguridad de la aceptacin por parte del cliente.

Sin embargo la calidad del software es un concepto complejo que no es directamente comparable con la calidad de la manufactura de producto. Los productos de software se han convertido hoy en da en uno de los principales objetivos estratgicos de las organizaciones debido a que, cada vez ms, los procesos ms importantes de las organizaciones y por lo tanto su supervivencia depende del buen funcionamiento de los sistemas de software. En la industria del software se pueden evidenciar necesidades de satisfaccin del cliente de productos o servicios de software, de reduccin de recursos invertidos en proyectos de software y de la efectiva asignacin de recursos humanos. Si hablamos de la calidad del software, una de las primeras definiciones aseguraba que la calidad de un programa o sistema se evaluaba de acuerdo al nmero de defectos por cada mil lneas de cdigo. (KLOC: Kilo Lines Of Code).

1.2. CONCEPTOS

Es el grado con el que un sistema, componente o proceso cumple con los requerimientos especificados y las necesidades o expectativas del cliente o usuario. La calidad del software es el conjunto de cualidades que lo caracterizan y que determinan su utilidad y existencia. La calidad es sinnimo de eficiencia, flexibilidad, correccin, confiabilidad, mantenibilidad, portabilidad, usabilidad, seguridad e integridad. La calidad del software es medible y vara de un sistema a otro o de un programa a otro. Un software elaborado para el control de naves espaciales debe ser confiable al nivel de cero fallas; un software hecho para ejecutarse una sola vez no requiere el mismo nivel de calidad; mientras que un producto de software para ser explotado durante un largo perodo (10

aos o ms), necesita ser confiable, mantenible y flexible para disminuir los costos de mantenimiento y perfeccionamiento durante el tiempo de explotacin. La calidad del software puede medirse despus de elaborado el producto. Pero esto puede resultar muy costoso si se detectan problemas deriva dos de imperfecciones en el diseo, por lo que es imprescindible tener en cuenta tanto la obtencin de la calidad como su control durante todas las etapas del ciclo de vida del software. Concordancia con los requisitos funcionales estndares y de de rendimiento explcitamente establecidos con los las

desarrollo

explcitamente documentados y con

caractersticas implcitas que se espera de todo software desarrollado profesionalmente. El conjunto de caractersticas de una entidad que le confieren su aptitud para satisfacer las necesidades expresadas y las implcitas. Existen 3 puntos importantes de la definicin de calidad de software: a. Los requerimientos del software son los fundamentos desde los que se mide la calidad b. Los estndares especficos definen un conjunto de criterios de desarrollo que guan la forma de aplicacin de la ingeniera de software c. Existen requerimientos implcitos que no se mencionan Un producto de alta calidad requiere menos mantenimiento y facilita tanto el desarrollo como el mantenimiento de la productividad. Con la medicin de la calidad se pueden lograr estos objetivos. En lo que se refiere al mantenimiento, la medicin de la calidad del software ayuda a identificar problemas de confiabilidad y a mejorar las tcnicas para identificar las necesidades de mantenimiento.

Algunas Definiciones: Grado con el cual el cliente o usuario percibe que el software satisface sus expectativas (IEEE729-83). Conjunto de propiedades y de caractersticas de un producto o servicio, que le confieren aptitud para satisfacer una necesidades explcitas o implcitas (ISO 8402:1984) La calidad del software es el grado con el que un sistema, componente o proceso cumple los requerimientos especificados y las necesidades o expectativas del cliente o usuario. (IEEE, Std. 610-1990). Concordancia del software producido con los requerimientos

explcitamente establecidos, con los estndares de desarrollo prefijados y con los requerimientos implcitos no establecidos formalmente, que desea el usuario (Pressman, 1998)

La calidad del software puede ser entendida como el grado con el cual el usuario percibe que el software satisface sus expectativas (IEEE 729-83).

El tipo y nmero de actividades de garanta de calidad que es necesario adoptar en un proyecto o en una organizacin depende del tamao y complejidad de los productos software que se estn desarrollando.

1.3. FACTORES DE CALIDAD DEL SOFTWARE En la ingeniera se busca la calidad, la ingeniera del software es la produccin de software de calidad. Todos deseamos que nuestros sistemas de software sean rpidos, fiables, fciles de usar, legibles, modulares, estructurados, etc.

Estos adjetivos describen dos tipos de cualidades Factores externos de calidad: Aquellos que percibe el usuario Factores internos: Aquellos que perciben los profesionales

informticos Prioridad de los factores externos Los factores de calidad introducen, adems, otras cuestiones: Cmo medirlos Cmo incluirlos en el proceso de obtencin del software

1.1.1. Factores de Calidad de Software Externos a. Correccin: Definicin: capacidad de un producto software para realizar con exactitud las tareas, tal y como se definen en las especificaciones. Si un sistema no hace lo que tiene que hacer, importa poco lo dems. Solucin condicional: la correccin del producto software supone la correccin del sistema operativo y, ste, del hardware. En desarrollo de software intervienen adems mquina virtual, compilador, bibliotecas. Tcnicas para obtener software correcto: Depuracin Especificacin y verificacin formal

b. Robustez: Es la capacidad de los productos software de reaccionar apropiadamente ante condiciones excepcionales. La robustez viene a ser el complemento de la correccin. En implementacin se cuenta con el mecanismo de excepciones el cual garantiza el correcto flujo de ejecucin del cdigo. (Programacin por contrato)

c. Eficiencia: Es la capacidad del software para hacer buen uso de los recursos que manipula. Una prctica muy comn en los desarrolladores es la optimizacin excesiva, lo importante es mantener un balance adecuado entre eficiencia y correccin. d. Portabilidad: Definicin: Facilidad de transferir los productos software a diferentes entornos hardware y software. Es la facilidad con que un sistema software puede ser migrado entre diferentes plataformas hardware o software. Se refiere a la plataforma: hardware + software

Plataformas:

Unix/Linux, Windows Java, .NET

e. Integridad: Es la caracterstica de un sistema de ser capaz de proteger sus diferentes componentes contra los procesos o elementos que no tengan derecho de acceso a los mismos. La integridad es un factor muy importante en sistemas contables, administrativos y gerenciales ya que de ellos depende el capital de la empresa. f. Facilidad de Uso: Es la facilidad con la que un usuario puede interactuar con un sistema software.

La facilidad de uso es un factor determinante en trminos de mercadeo y venta, ya que es el principal elemento que afecta al usuario final. La facilidad de uso incluye prestancia en instalacin, operacin y supervisin. g. Verificabilidad: Es la facilidad de verificacin de correccin de un software. Que tan sencillo es la realizacin de pruebas que garanticen la funcionalidad del sistema. La prueba exhaustiva de un software es un concepto imposible de ejecutar debido al carcter infinito de flujos de ejecucin del sistema. Sin embargo la Ing. de software plantea estrategias generales para garantizar un alto grado de correccin. h. Compatibilidad: Es la facilidad combinar diferentes elementos software con el fin de ejecutar una labor en conjunto. La mayora de los sistemas son abiertos (interactan con otros sistemas), y el dinamismo inherente a la realidad hace muy probable que los sistemas software tengan que intercambiar informacin entre s. Esto hace que la compatibilidad sea un factor muy serio al momento de modelar el sistema. i. Extensibilidad: Definicin: Facilidad de adaptar el producto software a los cambios de especificacin. Dependiendo del tamao del programa, el problema de extenderlo es asequible o imposible. la facilidad de adaptar los productos software a los cambios de su especificacin.

Los requisitos no quedan congelados en la etapa inicial del desarrollo. Principios para mejorar la extensibilidad:

Simplicidad del diseo: arquitecturas simples Descentralizacin: autonoma de los mdulos

j. Reutilizacin: Es la capacidad de los productos software para funcionar como bloques bsicos de la construccin de diferentes aplicaciones El objetivo general de la reutilizacin es adaptar la industria del software al modelo de otras industrias (como la electrnica), donde la produccin se basa en un conjunto de elementos discretos preexistentes con una funcin genrica (circuitos integrados, resistencias, transformadores), que se ensamblan para dar origen a un nuevo producto. A partir de los objetivos de extensibilidad y reutilizacin, dos de los factores de calidad ms importantes, se desprende la necesidad de tener arquitecturas de sistemas flexibles, hechas con componentes autnomos de software. Esto se logra con una adecuada modularidad. 1.1.2. Factores de Calidad de Software Internos MODULARIDAD: Independencia funcional de los componentes del programa. LEGIBILIDAD: Facilidad de lectura e interpretacin del cdigo del programa.

You might also like