Fundamentos De Ingeniería De Software
dulcemar6 de Agosto de 2013
10.651 Palabras (43 Páginas)761 Visitas
UNIDAD 1 FUNDAMENTOS INGENIERÍA DE SOFTWARE
1.1. CONCEPTOS BÁSICOS
SOFTWARE Programas de cómputo y su documentación asociada: requerimientos, modelos de diseño y manuales de usuario
El software puede ser desarrollado para un cliente en particular o para un mercado general
El software puede ser:
• Genérico: desarrollado para venderse a múltiples clientes (Excel, Word, etc.)
• A la medida: desarrollado bajo demanda del cliente a un desarrollador específico.
El software nuevo puede ser creado desarrollando nuevos programas, configurando sistemas de software genérico o reutilizando software existente.
INGENIERIA DE SOFTWARE Una disciplina de la Ingeniería que concierne a todos los aspectos de la producción de software.
El IEEE define:
• Ingeniería es la aplicación de un método sistemático, estructurado y cuantificable a estructuras, máquinas, productos, sistemas o procesos.
• Ingeniería del software es la aplicación de un método sistemático, estructurado y cuantificable al desarrollo, operación y mantenimiento de software
PROCESO DE SOFTWARE Un conjunto estructurado de actividades cuya meta es el desarrollo o evolución de un software.
Algunas actividades genéricas en todos los procesos de software son:
• Especificación, qué debe hacer el software y cuáles son sus especificaciones de desarrollo.
• Desarrollo, producción del sistema de software.
• Validación, verificar que el software cumple con lo solicitado por el cliente.
• Evolución, cambiar/adaptar el software a las nuevas demandas.
Estas actividades varían dependiendo de la organización y del tipo de sistema a desarrollarse.
1.2. EL PAPEL EVOLUTIVO DEL SOFTWARE
El término “evolución” del software se utiliza desde los sesenta para denominar la dinámica de crecimiento del software.
Una definición atribuida a Lehman y Ramil dice que la evolución del software es “todas las actividades de programación que se orientan a generar una nueva versión de un software a partir de una versión anterior operativa.
Ned Chapin 1(1999) lo definió como “la aplicación de las actividades y procesos de mantenimiento del software que generan una nueva versión operativa de un software con una funcionalidad de usuario o propiedades cambiadas a partir de una versión anterior [junto con los procesos y actividades de garantía de calidad y con la gestión de esos procesos”. De estas definiciones se desprende que la evolución cubre el ajuste a funcionalidades adicionales.
Historia de la evolución del software
Durante los primeros años de la era de la computadora, el software se contemplaba como un añadido. El software se diseñaba a medida para cada aplicación y tenia una distribución relativamente pequeña.
La mayoría del software se desarrollaba y era utilizado por la misma persona u organización. La misma persona lo escribía, lo ejecutaba y, si fallaba, lo depuraba. El diseño era un proceso implícito, realizado en la mente de alguien y, la documentación normalmente no existía.
La segunda era en la evolución de los sistemas de computadora se extienden desde la mitad de la década de los sesenta hasta finales de los setenta. La multiprogramación y los sistemas multiusuario introdujeron nuevos conceptos de interacción hombre - máquina. También se caracterizó por el establecimiento del software como producto y la llegada de las "casas del software".
La tercera era en la evolución de los sistemas de computadora comenzó a mediados de los años setenta y continúo más allá de una década. El sistema distribuido, múltiples computadoras, cada una ejecutando funciones concurrentes y comunicándose con alguna otra, incrementó notablemente la complejidad de los sistemas informáticos. Las redes de área local y de área global, las comunicaciones digitales de alto ancho de banda y la creciente demanda de acceso "instantáneo" a los datos, supusieron una fuerte presión sobre los desarrolladores del software. La conclusión de la tercera era se caracterizó por la llegada y amplio uso de los microprocesadores. El microprocesador ha producido un extenso grupo de productos inteligentes, desde automóviles hasta hornos microondas, desde robots industriales a equipos de diagnósticos de suero sanguíneo.
La cuarta era de la evolución de los sistemas informáticos se aleja de las computadoras individuales y de los programas de computadoras, dirigiéndose al impacto colectivo de las computadoras y del software. Potentes máquinas personales controladas por sistemas operativos sofisticados, en redes globales y locales, acompañadas por aplicaciones de software avanzadas se han convertido en la norma.
La industria del software ya es la cuna de la economía del mundo. Las técnicas de la cuarta generación para el desarrollo del software están cambiando en la forma en que la comunidad del software construye programas informáticos. Las tecnologías orientadas a objetos están desplazando rápidamente los enfoques de desarrollo de software más convencionales en muchas áreas de aplicaciones.
Sin embargo, un conjunto de problemas relacionados con el software ha persistido a través de la evolución de los sistemas basados en computadora, y estos problemas continúan aumentando:
1. Los avances del software continúan dejando atrás nuestra habilidad de construir software para alcanzar el potencial del hardware.
2. La habilidad de construir nuevos programas no pueden ir al mismo ritmo de la demanda de nuevos programas, ni se pueden construir programas lo suficientemente rápido como para cumplir las necesidades del mercado y de los negocios.
3. El uso extenso de computadoras ha hecho de la sociedad cada vez más dependiente de la operación fiable del software. Cuando el software falla, pueden ocurrir daños económicos enormes y ocasionar sufrimiento humano.
4. Luchamos por construir software informático que tengan fiabilidad y alta calidad.
5. Nuestra habilidad de soportar y mejorar los programas existentes se ve amenazada por diseños pobres y recursos inadecuados.
En respuesta a estos problemas, las prácticas de la Ingeniería del Software se están adoptando en toda la industria.
1.3. ETAPAS DEL DESARROLLO SOFTWARE
Cualquier sistema de información va pasando por una serie de fases a lo largo de su vida. Su ciclo de vida comprende una serie de etapas entre las que se encuentran las siguientes:
• Planificación
• Análisis
• Diseño
• Implementación
• Pruebas
• Instalación o despliegue
• Uso y mantenimiento
Estas etapas son un reflejo del proceso que se sigue a la hora de resolver cualquier tipo de problema. Básicamente, resolver un problema requiere:
• Comprender el problema (análisis)
• Plantear una posible solución, considerando soluciones alternativas (diseño)
• Llevar a cabo la solución planteada (implementación)
• Comprobar que el resultado obtenido es correcto (pruebas)
Las etapas adicionales de planificación, instalación y mantenimiento que aparecen en el ciclo de vida de un sistema de información son necesarias en el mundo real porque el desarrollo de un sistema de información conlleva unos costes asociados lo que se hace necesaria la planificación.
Planificación
Antes de que se le dé la salida a un proyecto de desarrollo de un sistema de información, es necesario realizar una serie de tareas previas que influirán decisivamente en la finalización con éxito del proyecto. Estas tareas se conocen popularmente como el fuzzy front-end del proyecto al no estar sujetas a plazos. Las tareas iniciales que se realizarán esta fase inicial del proyecto incluyen actividades tales como la determinación del ámbito del proyecto, la realización de un estudio de viabilidad, el análisis de los riesgos asociados al proyecto, una estimación del coste del proyecto, su planificación temporal y la asignación de recursos a las distintas etapas del proyecto.
Delimitación del ámbito del proyecto
Resulta esencial determinar el ámbito del proyecto al comienzo del mismo. Han de establecerse de antemano qué cuestiones han de resolverse durante la realización del proyecto y cuáles se dejarán fuera. Tan importante es determinar los aspectos abarcados por el proyecto como fijar aquéllos aspectos que no se incluirán en el proyecto. Estos últimos han de indicarse explícitamente. Si es necesario, se puede especificar todo aquello que se posponga hasta una versión posterior del sistema. Si, en algún momento, fuese necesario incluir en el proyecto algún aspecto que no había sido considerado o que ya había sido descartado, es obligatorio reajustar la estimación del coste del proyecto y su planificación temporal.
Como resultado de la delimitación del ámbito del proyecto se obtiene un documento breve, de 1 ó 2 páginas, en el que se describe el problema que el sistema de información pretende resolver. Este documento, denominado a veces mission statement o project charter, debe existir siempre en todo proyecto. En él se recogerá la descripción de más alto nivel de la funcionalidad que tendrá el sistema de información, sus características principales y sus objetivos clave
Estudio de viabilidad
El estudio incluye los objetivos, alcances y restricciones sobre el sistema, además de un modelo lógico de alto
...