Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Es la disciplina o área de la informática que ofrece métodos y técnicas para desarrollar software de
calidad.
Paradigmas
Estrategias
Se denominan estrategias para el desarrollo de software a las distintas maneras en que se ordena
la ejecución de las actividades requeridas para producir software.
Métodos o técnicas
Los métodos o técnicas indican cómo construir el software técnicamente y abarcan un amplio
espectro de actividades que incluyen planificación y estimación de proyectos, análisis de requisitos
y del sistema de software, diseño de la arquitectura de software, codificación, documentación,
prueba y mantenimiento.
Herramientas
Son instrumentos que suministran un soporte automático o semiautomático para el proceso y para
los métodos. Cuando se integran las herramientas de forma que la información creada por una
herramienta pueda ser usada por otra, se establece un sistema para el soporte de desarrollo del
software, llamado ingeniería del software asistida por computadora (CASE, en inglés). CASE
combina software, hardware y bases de datos sobre la Ingeniería del software (una estructura de
datos que contenga la información relevante sobre el análisis, diseño, codificación y prueba) para
crear un entorno de ingeniería del software análogo al diseño/ingeniería asistido por computadora,
CAD/CAE para el hardware.
Procesos
Los procesos son la combinación de estrategias, métodos y herramientas que, en forma conjunta,
dan un resultado particular. Los procesos indicarán qué herramientas deberán utilizarse y cuándo
se aplican determinados métodos o técnicas. Definen la secuencia en que se aplican los métodos,
los documentos que se requieren, los controles que aseguren la calidad y las mejores prácticas
que permiten a los gestores a evaluar los progresos. Concretamente, el proceso de desarrollo de
software define quién va a hacer qué, cuándo hacerlo y cómo alcanzar un cierto objetivo.
Con independencia del área de aplicación, tamaño o complejidad del proyecto, el trabajo que se
asocia a la ingeniería del software se puede dividir en tres fases genéricas:
Fase de definición
Fase de desarrollo
Fase de mantenimiento
Fase de definición
Se centra sobre el qué. Es decir, durante la definición, el que desarrolla el software intenta
identificar qué información ha de ser procesada, qué función y rendimiento se desea, qué
comportamiento del sistema, qué interfaces van a ser establecidas, qué restricciones de diseño
existen, y qué criterios de validación se necesitan para definir un sistema correcto. Por tanto, han
de identificarse los requisitos clave del sistema y del software. Aunque los métodos aplicados
durante la fase de definición variarán dependiendo del paradigma de ingeniería del software (o
combinación de paradigmas) que se aplique, de alguna manera tendrán lugar tres tareas
principales:
Análisis de requisitos
Fase de desarrollo
Se centra en el cómo. Es decir, durante el desarrollo, un ingeniero del software intenta definir
cómo han de diseñarse las estructuras de datos, cómo ha de implementarse la función dentro de
una arquitectura de software, cómo han de implementarse los detalles procedimentales, cómo han
de caracterizarse interfaces, cómo ha de traducirse el diseño en un lenguaje de programación (o
lenguaje no procedimental) y cómo ha de realizarse la prueba. Los métodos aplicados durante la
fase de desarrollo variarán, aunque las tres tareas específicas técnicas deberían ocurrir siempre:
La generación de código
Perfectivo. Para agregar otras funciones adicionales que van a producir beneficios
Preventivo. También llamado reingeniería del software. Estos cambios se realizan con la
finalidad de que se puedan corregir, adaptar y mejorar más fácilmente los programas.
Actividades de protección
Las fases descritas en esta visión general de la ingeniería del software se complementan con un
número de actividades protectoras. Entre las actividades típicas de esta categoría se incluyen:
Seguimiento y control del proyecto de software
Gestión de reutilización
Mediciones
Gestión de riesgos