Ingeniería de Sistema de Software

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 3

1.

Sistema, recursos de software y sistemas de software

Un sistema es una combinación de recursos integrados de forma tal que cumplan una función específica
en respuesta a una necesidad designada de un usuario.

Un recurso software es un programa o conjunto de programas ejecutables que proporcione algunas de las
funciones requeridas por el sistema.

Un sistema se considerará como sistema de software cuando sus recursos software constituyan su ele-
mento básico y la fuente de su funcionalidad básica. Dicho de otro modo, cuando en el proceso de
desarrollo sean los recursos software los que determinan el proceso general de desarrollo de todo el
sistema y cuando su ejecución pueda realizarse sobre una plataforma hardware genérica.

2. Perspectiva histórica

El término Ingeniería del Software o Ingeniería de Sistemas de Software fue acuñado en 1969 en el
transcurso de un curso de verano de la OTAN en Garmisch.

Centrándonos en la ingeniería de sistemas de software, su conso- lidación ha sufrido una evolución en


etapas en paralelo con la propia evolución de la programación. Destacamos cuatro etapas:

La programación como base del desarrollo (1955-1965): Énfasis absoluto en la tarea de escribir el código
en un lenguaje de programación. Alrededor de los nuevos lenguajes de alto nivel, los programadores se
alejan de la estructura de los ordenadores y comienzan a acercarse a la complejidad de las aplicaciones
de usuario.

La génesis (1965-1975).
Ligada a la crisis de la programación se plantea la necesidad de controlar el proceso de desarrollo. Se
definen modelos de ciclo de vida como una referencia en la que enmarcar las actividades requeridas. El
concepto de ciclo de vida en cascada surge de la necesidad del Departamento de Defensa de EE.UU. de
disponer de una documentación normalizada para todas las etapas del desarrollo y poder controlar en
base a ella a los suministradores de productos software.

La consolidación (1975-1985).
El control de las actividades de desarrollo debería permitir gestionar el proceso. Durante esta etapa
aparecen métricas para estimar a priori el coste o el tamaño del sistema; se difunde el uso de métodos de
desarrollo. Con ello, el programador se convierte en analista, diseñador o gestor. Se vislumbra la idea de
ingeniero (software).

Hacia una ingeniería (1985-1995).


Aceptando una consolidación de las tecnologías de software, la mejora viene de la mano de un mejor
conocimiento de los procesos con el fin de incrementar la calidad de los productos. Aparece una gestión
sofisticada del proceso de desarrollo ligada al control de riesgos y a la madurez de los procesos.

A lo largo de estas etapas, han existido avances puntuales significativos tanto en la tecnología empleada
como en la propia percepción del proceso de desarrollo. El progreso hacia la ingeniería de sistemas de
software ha sido acumulativo en los años cubiertos por las etapas mencionadas y no se puede entender
ningún progreso sin la experiencia obtenida de éxitos y fracasos anteriores.

Analizados globalmente, estos hitos significativos en el desarrollo de la ingeniería de sistemas de software


han ido intercalando el énfasis sobre las tecnologías de desarrollo con el énfasis en la gestión del
proceso. En cada una de estas etapas se consiguió un incremento de la calidad del proceso de desarrollo.

Si inicialmente la esperanza de una mejora de calidad del producto se centraba en el empleo de nuevos
lenguajes de programación, después se hizo necesario una mejor comprensión del ciclo de vida.
Posteriormente, fue necesario robustecer ese ciclo de vida en cascada con tecnologías de software que
facilitasen las primeras fases del ciclo de vida. Pero el empleo de métodos y herramientas software de
ayuda no hacía más predecible y eficiente el desarrollo de un gran sistema: el énfasis se situó de nuevo
sobre los aspectos de gestión con la mejora del proceso.

3. La ingeniera de Sistemas de Software

La ingeniería de sistemas de software es el establecimiento y uso de principios de ingeniería robustos,


orientados a obtener software económico que sea fiable y funcione de manera eficiente sobre máquinas
reales.
Es decir, que el sistema de software a realizar cumpla con la misión encomendada o satisfaga las
expectativas de usuario.

4. Capas de la Ingeniería de Sistemas de Software

La ingeniería de software es una tecnologia con varias capas. Cualquier enfoque de ingeniería (incluso la
de software) debe basarse en un compromiso organizacional con la calidad. La administración total de la
calidad, alimentan la cultura de mejora continua, y es esta cultura la que lleva en última instancia al
desarrollo de enfoques cada vez más eficaces de la ingeniería de software. El fundamento en el que se
apoya la ingeniería de software es el compromiso con la calidad.

El fundamento para la ingeniería de software es la capa proceso. El proceso de ingeniería de software es


el aglutinante que une las capas de la tecnología y permite el desarrollo racional y oportuno del software
de cómputo. El proceso define una estructura que debe establecerse para la obtención eficaz de
tecnología de ingeniería de software. El proceso de software forma la base para el control de la
administración de proyectos de software, y establece el contexto en el que se aplican métodos técnicos,
se generan productos del trabajo (modelos, documentos, datos, reportes, formatos, etc.), se establecen
puntos de referencia, se asegura la calidad y se administra el cambio de manera apropiada.

Los métodos de la ingeniería de software proporcionan la experiencia técnica para elaborar software.
Incluyen un conjunto amplio de tareas, como comunicación, análisis de los requeri-mientos, modelación
del diseño, construcción del programa, pruebas y apoyo. Los métodos de la ingeniería de software se
basan en un conjunto de principios fundamentales que gobiernan cada área de la tecnología e incluyen
actividades de modelación y otras técnicas descriptivas.

Las herramientas de la ingeniería de software proporcionan un apoyo automatizado o se-miautomatizado


para el proceso y los métodos. Cuando se integran las herramientas de modo que la información creada
por una pueda ser utilizada por otra, queda establecido un sistema llamado ingeniería de software asistido
por computadora que apoya el desarrollo de software.

5. Proceso del Software

Un proceso es un conjunto de actividades, acciones y tareas que se ejecutan cuando va a crearse algún
producto del trabajo. Una actividad busca lograr un objetivo amplio (por ejemplo, comunicación con los
participantes) y se desarrolla sin importar el dominio de la aplicación, tamaño del proyecto, complejidad
del esfuerzo o grado de rigor con el que se usará la ingeniería de software. Una acción (diseño de la
arquitectura) es un conjunto de tareas que producen un producto importante del trabajo (por ejemplo, un
modelo del diseño de la arquitectura). Una tarea se centra en un objetivo pequeño pero bien definido (por
ejemplo, realizar una prueba unitaria)
que produce un resultado tangible.

En el contexto de la ingeniería de software, un proceso no es una prescripción rígida de cómo elaborar


software de cómputo. Por el contrario, es un enfoque adaptable que permite que las personas que hacen
el trabajo (el equipo de software) busquen y elijan el conjunto apropiado de acciones y tareas para el
trabajo. Se busca siempre entregar el software en forma oportuna y con calidad suficiente para satisfacer
a quienes patrocinaron su creación y a aquellos que lo usarán.

La estructura del proceso establece el fundamento para el proceso completo de la ingeniería de software
por medio de la identificación de un número pequeño de actividades estructurales que sean aplicables a
todos los proyectos de software, sin importar su tamaño o complejidad.
Además, la estructura del proceso incluye un conjunto de actividades sombrilla que son aplicables a
través de todo el proceso del software. Una estructura de proceso general para la ingeniería de software
consta de cinco actividades:

Comunicación.
Antes de que comience cualquier trabajo técnico, tiene importancia crítica comunicarse y colaborar con el
cliente (y con otros participantes). Se busca entender los objetivos de los participantes respecto del
proyecto y reunir requerimientos que ayuden a definir las características y funciones del software.

Planeación.
Cualquier viaje complicado se simplifica si existe un mapa. Un proyecto de software es un viaje difícil, y la
actividad de planeación crea un "mapa" que guía al equipo mientras viaja. El mapa —llamado plan del
proyecto de software— define el trabajo de ingeniería de software al describir las tareas técnicas por
realizar, los riesgos probables, los recursos que se requieren, los productos del trabajo que se obtendrán
y una programación de las actividades.
Modelado
Ya sea usted diseñador de paisaje, constructor de puentes, ingeniero aeronáu-tico, carpintero o
arquitecto, a diario trabaja con modelos. Crea un "bosquejo" del objeto por hacer a fin de entender el
panorama general —cómo se verá arquitectónicamente, cómo ajustan entre si las partes constituyentes y
muchas caracteristicas más—. Si se requiere, refina el bosquejo con más y más detalles en un esfuerzo
por comprender mejor el problema y cómo resolverlo. Un ingeniero de software hace lo mismo al crear
modelos a fin de entender mejor los requerimientos del software y el diseño que los satisfará.

Construcción
Esta actividad combina la generación de código (ya sea manual o automatizada) y las pruebas que se
requieren para descubrir errores en este.

Despliegue. El software (como entidad completa o como un incremento parcialmente terminado) se


entrega al consumidor que lo evalúa y que le da retroalimentación, misma que se basa en
dicha evaluación.

Estas cinco actividades estructurales genéricas se usan durante el desarrollo de programas pequeños y
sencillos, en la creación de aplicaciones web grandes y en la ingeniería de sistemas enormes y complejos
basados en computadoras. Los detalles del proceso de software serán distintos en cada caso, pero las
actividades estructurales son las mismas.

Para muchos proyectos de software, las actividades estructurales se aplican en forma iterativa a medida
que avanza el proyecto. Es decir, la comunicación, la planeación, el modelado, la construcción y el
despliegue se ejecutan a través de cierto número de repeticiones del proyecto. Cada iteración produce un
incremento del software que da a los participantes un subconjunto de características y funcionalidad
generales del software. Conforme se produce cada incremento, el software se hace más y más

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy