Fundamentos De La Ingenieria Del Software
Enviado por nathapa • 15 de Julio de 2013 • 2.477 Palabras (10 Páginas) • 670 Visitas
Fundamentos de la ingeniería del software
Concepto de software
Los componentes lógicos incluyen, entre muchos otros, las aplicaciones informáticas; tales como el procesador de texto, que permite al usuario realizar todas las tareas concernientes a la edición de textos; el software de sistema, tal como el sistema operativo, que, básicamente, permite al resto de los programas funcionar adecuadamente, facilitando también la interacción entre los componentes físicos y el resto de las aplicaciones, y proporcionando una interfaz con el usuario.
Considerando esta definición, el concepto de software va más allá de los programas de computación en sus distintos estados: código fuente, binario o ejecutable; también su documentación, los datos a procesar e incluso la información de usuario forman parte del software: es decir, abarca todo lo intangible, todo lo «no físico» relacionado.
El término «software» fue usado por primera vez en este sentido por John W. Tukey en 1957. En la ingeniería de software y las ciencias de la computación, el software es toda la información procesada por los sistemas informáticos: programas y datos.
Cualidades del Software
Correctitud: un software es correcto si se comporta de acuerdo a su especificación.
Confiabilidad: el software se comporta de acuerdo con lo esperado por el usuario.
Robustez: un software es robusto si se comporta en forma razonable aún en situaciones no anticipadas.
Eficiencia-Performance: un sistema de software es eficiente si usa sus recursos en forma económica.
Amigabilidad: un software es amigable si sus usuarios lo encuentran fácil de utilizar.
Verificabilidad: el software es verificable si sus propiedades pueden ser comprobadas.
Reusabilidad: Software ya construido se usa con pocos o ningún cambio.
Portabilidad: un software es portable si puede ejecutarse en distintos ambientes (hardware , sistemas operativos, etc).
Interoperabilidad: un sistema es interoperable si puede coexistir y cooperar con otros sistemas.
Productividad
Oportunidad
Visibilidad
Comprensibilidad
Mantenibilidad
Reparabilidad
Evolucionabilidad
Ingeniería de Software
La ingeniería de software es una disciplina formada por un conjunto de métodos, herramientas y técnicas que se utilizan en el desarrollo de los programas informáticos (software).
Esta disciplina trasciende la actividad de programación, que es la actividad principal a la hora de crear un software. El ingeniero de software se encarga de toda la gestión del proyecto para que éste se pueda desarrollar en un plazo determinado y con el presupuesto previsto.
La ingeniería de software, por lo tanto, incluye el análisis previo de la situación, el diseño del proyecto, el desarrollo del software, las pruebas necesarias para confirmar su correcto funcionamiento y la implementación del sistema.
Visión general del proceso de desarrollo del software
Un proceso para el desarrollo de software, también denominado ciclo de vida del desarrollo de software es una estructura aplicada al desarrollo de un producto de software. Hay varios modelos a seguir para el establecimiento de un proceso para el desarrollo de software, cada uno de los cuales describe un enfoque diferente para diferentes actividades que tienen lugar durante el proceso. Algunos autores consideran un modelo de ciclo de vida un término más general que un determinado proceso para el desarrollo de software. Por ejemplo, hay varios procesos de desarrollo de software específicos que se ajustan a un modelo de ciclo de vida de espiral.
La gran cantidad de organizaciones de desarrollo de software implementan metodologías para el proceso de desarrollo. Muchas de estas organizaciones pertenecen a la industria armamentística, que en los Estados Unidos necesita un certificado basado en su modelo de procesos para poder obtener un contrato.
El estándar internacional que regula el método de selección, implementación y monitoreo del ciclo de vida del software es ISO 12207.
Participantes en el proceso de desarrollo de software
Un proceso define quien esta haciendo que, cuando, y como alcanzar un determinado objetivo. En la Ingeniería del Software el objetivo es construir un producto software o mejorar uno existente. Un proceso efectivo proporciona normas para el desarrollo eficiente de software de calidad. Captura y presenta las mejores practicas que el estado actual de la tecnología permite. En consecuencia, reduce el riesgo y hace el proyecto mas predecible. El efecto global es el fomento de una visión y una cultura comunes.
Es necesario un proceso que sirva como guía para todos los participantes clientes, usuarios, desarrolladores y directivos ejecutivos. No nos sirve ningún proceso antiguo; necesitamos uno que sea el mejor proceso que la industria pueda reunir en este punto de su historia. Por ultimo necesitamos un proceso que este ampliamente disponible de forma que todos los interesados puedan comprender su papel en el desarrollo en el que se encuentran implicados.
Un proceso de desarrollo de software debería también ser capaz de evolucionar durante muchos años. Durante esta evolución debería limitar su alcance, en un momento del tiempo dado, a las realidades que permitan las tecnologías, herramientas, personas y patrones de organización.
1. Tecnologías: El proceso debe construirse sobre las tecnologías lenguajes de programación, sistemas operativos computadores, estructuras de red, entornos de desarrollo, etc disponibles en el momento en que se va a emplear el proceso. Por ejemplo hace varios años el modelado visual no era realmente de uso general. Era demasiado caro. En aquellos tiempos, un creador de un proceso prácticamente tenía que asumir que se usarían diagramas hechos a mano. Esa suposición limitaba mucho el gado en el cual el creador del proceso podía establecer el modelado dentro del proceso.
2. Herramientas: Los procesos y las herramientas deben desarrollarse en paralelo. Las herramientas son esenciales en el proceso. Dicho de otra forma, un proceso ampliamente utilizado para soportar la inversión necesaria para crear las herramientas que lo soporten.
3. Personas: Un creador del proceso debe limitar el conjunto de habilidades necesarias para trabajar en el proceso a las habilidades que los desarrolladores actuales poseen, o apuntar aquellas
...