Вы находитесь на странице: 1из 3

4-Ingeniera de Software

Ing. Carlos Ernesto Garca, M.Sc


4.1-Introduccin.
El trmino Ingeniera de Software se refiere a un concepto muy discutido y polmico en la actualidad. La
polmica gira fundamentalmente en torno a si la actividad de desarrollar software es en realidad un rea de
la Ingeniera. Para algunos lo es y para otros no lo es. Poco a poco son ms quienes creen que si no lo es,
debe serlo. Pero independientemente de la polmica, lo cierto es que en la Unidad Informtica se elabora
mucho software, ya que ste en un componente fundamental de todo sistema informtico; y tambin es
cierto que para que el software sea de alta calidad, es conveniente desarrollarlo con principios, tcnicas y
herramientas de Ingeniera.
Para llegar a una definicin apropiada de Ingeniera de Software se partir de la definicin de Ingeniera
que se adopt en el captulo previo, y de una definicin de software que se desarrolla a continuacin.

Ingeniera.
En el captulo anterior se defini la Ingeniera como un conjunto coherente de tcnicas y conceptos
derivados del conocimiento cientfico, aplicables a la construccin de sistemas especficos para beneficio
humano. En la Ingeniera Civil se construyen puentes, carreteras y edificios; en la Ingeniera Industrial se
construyen plantas y procesos industriales; y en la Ingeniera Informtica se construyen sistemas
informticos.

Software.
El trmino software se deriva un tanto accidentalmente del trmino hardware. Al principio del desarrollo de
las computadoras, la gente se refera a los componentes fsicos tangibles de una computadora como tubos
de vaco, relays, resistencias y alambrado, con el trmino hardware. Casi enseguida se comenz a usar en
la industria de las computadoras el trmino software para referirse a todo lo que no era hardware,
especialmente a los programas que se necesitaban para que las computadoras pudieran realizar las tareas
que estaban supuestas a hacer. Para 1960, el uso del trmino ya estaba bastante generalizado. 1
El diccionario American Heritage define el trmino software como Los programas, rutinas y lenguajes
simblicos que controlan el funcionamiento del hardware de una computadora, y dirigen su operacin.
Segn Pressman, el software es (1) un conjunto de instrucciones (programas de computadora) que cuando se
ejecutan proporcionan la funcin y el rendimiento deseados, (2) estructuras de datos que permiten a los
programas manejar adecuadamente la informacin, y (3) documentos que describen la operacin y el uso de los
programas.2
Para el propsito de este captulo, el software es un sistema destinado a lograr un objetivo especfico de al
menos mediana complejidad3 a travs de una computadora digital, consiste en:
a.
Un conjunto de instrucciones relacionadas entre s, destinadas a dirigir y controlar las operaciones de los
componentes de una computadora digital.
a.
Un conjunto de estructuras de datos destinadas a almacenar los datos requeridos por las instrucciones.
b.
Una documentacin destinada a dirigir la instalacin del conjunto de instrucciones y estructuras de datos,
su utilizacin, su actualizacin y su mantenimiento.
El objetivo especfico de un software no est necesariamente relacionado a un propsito informtico. Mas bien,
puede estar relacionado con cualquier clase de propsito. Por ejemplo, un propsito de entretenimiento como
son los juegos; didctico como las enciclopedias; de control de procesos como el usado en lanzamiento de
satlites o en gua de misiles balsticos; o de apoyo operativo como los procesadores de palabras, las hojas
electrnicas, los editores de texto, los compiladores y los sistemas operativos.
El conjunto de instrucciones puede estar especificado en lenguaje de mquina ejecutable o en cualquier lenguaje
simblico fuente que sea transformable a lenguaje ejecutable mediante un compilador o intrprete existente.
Normalmente las instrucciones estn registradas en un medio magntico, un medio ptico o en firmware.
Exactamente lo mismo es aplicable a las estructuras de datos en cuanto a la forma de especificarlas y
registrarlas.

Petrocelli &Charter; Encyclopedia of Computer Science; New York, 1976. Pg.1285.


Pressman, Roger P.; Ingeniera de Software: Un Enfoque Prctico; McGraw-Hill, 4a. edicin, Madrid, 1998. Pg. 7.
3
50 puntos funcionales como mnimo.
2

La documentacin se concretiza normalmente en tres documentos: un Instructivo de Instalacin, un Manual de


Operacin y un Manual Tcnico. El primer documento est orientado a facilitar al usuario la instalacin del
software en una computadora; mientras que el segundo est destinado a facilitar al usuario la utilizacin y
operacin del software. El propsito del Manual Tcnico es facilitar a los ingenieros de software las futuras
operaciones de mantenimiento que pueda requerir el software despus de su exitosa instalacin. La
documentacin puede estar registrada en un medio magntico, ptico o en papel.
Los componentes de la computadora digital dirigidos y controlados por el software pueden ser de hardware, de
software o de ambos. Entre los componentes de hardware se encuentran: los CPU, el BIOS, los dispositivos de
entrada/salida, las unidades de disco duro y la memoria principal. Entre los componentes de software estn: el
sistema operativo, las utileras, los drivers y los compiladores.
Algunas caractersticas del software que contrastan con las del hardware son las siguientes: a) El software se
desarrolla, no se manufactura; b) El software es un sistema intangible; c) El software no se desgasta, pero s se
deteriora; d) El software tiende a construirse a la medida en vez de a partir de componentes.

Ingeniera de Software.
Para Pressman, reconocido autor a nivel mundial en esta disciplina, Ingeniera de Software es una disciplina o
rea de la Informtica o Ciencias de la Computacin, que ofrece mtodos y tcnicas para desarrollar y mantener
software de calidad que resuelve problemas de todo tipo. 4
Para Zelkovitz, Ingeniera de Software es el estudio de los principios y metodologas para el desarrollo y
mantenimiento de sistemas de software.5
Bohem define Ingeniera de Software como la aplicacin prctica del conocimiento cientfico en el diseo y
construccin de programas de computadora y la documentacin asociada requerida para desarrollarlos,
operarlos y mantenerlos.6
Segn Bauer, la Ingeniera de Software Figura 4.1. La Ingeniera de Software.
trata sobre el establecimiento de los
principios y mtodos de la Ingeniera a
Stakeholders: usuarios, clientes, inversionistas etc.
Medioambiente:
fin de obtener software de modo rentable
Mercado, sistemas informticos, otros software, etc.
que sea fiable y trabaje en mquinas
7
reales.
Para la IEEE, Ingeniera de Software es
1) La aplicacin de un enfoque
sistemtico, disciplinado y cuantificable
al desarrollo, operacin y mantenimiento
del software; es decir, la aplicacin de la
Ingeniera al software. 2) El estudio de
enfoques como en 1).8
Para los propsitos de este tema, se
ilustra en la Figura 4.1 lo que se
entender por Ingeniera de Software.

Necesidad de
software
(Perfil del
software)

Conceptos, mtodos,
tcnicas, herramientas y
procedimientos
.
.
.

Software
de alta
calidad

Biblioteca de Software
Ingenieros, A/Ps
Equipo

Control
Objetivo. Construir software de alta
calidad, de forma sistemtica y
Frontera
disciplinada; calidad que debe verse
reflejada en trminos de oportunidad, efectividad, confiabilidad y eficiencia; y en la facilidad de operacin y
mantenimiento.
Caractersticas. La Ingeniera de Software es un sistema abierto, estocstico, dinmico y predominantemente
abstracto, artificial, temporal y adaptable.
Frontera. La frontera de la Ingeniera de Software es de naturaleza virtual. Dentro de ella estn comprendidos
los elementos necesarios para desarrollar software de alta calidad: los conceptos, mtodos, tcnicas,
4

Ibid. Pg. xxi.


Zelkovitz, M. V., Shaw A.C., Gannon, J. D.; Principles of Software Engineering and Design; Prentice-Hall; Englewoods Clif, 1979.
6
Bohem, B. W.; Software Engineering; IEEE Transactions on Computers, C-25, Nm. 12, diciembre 1976. Pg. 1226-1241.
7
Baher, F. L.; Software Engineering; Information Processing; 71, North Holland Publishing Co., Amsterdam, 1972.
8
IEEE; Standards Collection: Software Engineering; IEEE Standard 610.12-1990, IEEE, 1993.
5

herramientas, procesos, modelos y procedimientos propios de la Ingeniera de Software; las bibliotecas de


software; el equipo necesario para producir desarrollar el software; y los ingenieros de software, analistas y
programadores.
Entradas. Lo que impulsa el desarrollo de un producto de software, como sucede en cualquier otra rama de la
Ingeniera, es una necesidad humana insatisfecha o una oportunidad de mejorar una determinada condicin.
Esta necesidad u oportunidad es la entrada al sistema y puede ser expresada inicialmente de manera verbal o
por escrito. Cuando es verbal, el ingeniero de software deber expresarla por escrito.
La entrada es pues, una descripcin precisa de las propiedades deseadas del software a desarrollar, desde el
punto de vista del cliente, con sus propias palabras y frases. El lenguaje del cliente suele ser bastante vago, sin el
uso de trminos tcnicos informticos y de computacin. La descripcin puede ocupar tan solo media pgina o
cientos de pginas. Al documento resultante se le denomina perfil del software.
Salidas. Las salidas estn directamente relacionadas con el objetivo ya expresado de la Ingeniera de Software:
software de alta calidad, confiable y econmico; con sus correspondientes manuales.
Medioambiente. Son elementos relevantes en el medioambiente de la Ingeniera de Software todo lo que
comprende a los denominados stakeholders, es decir, las personas e instituciones que tienen algn inters
directo en el software o en su desarrollo; como los usuarios, los clientes, los inversionistas, los ingenieros de
software y los ingenieros de requerimientos. Tambin suelen ser elementos del medioambiente: el mercado,
sistemas informticos con los que el software debe interactuar, las computadoras con sus equipos perifricos en
las que el software operar y otros software existentes con los que el software a crear se interrelaciona de alguna
manera.
Elementos. Entre los principales elementos transformadores de las entradas en salidas en la Ingeniera de
Software estn:
a.
Tcnicas. Todos los conceptos, mtodos, herramientas, procesos y procedimientos derivados de la
Ingeniera y de la Ciencia, aplicables a la sistematizacin del proceso de desarrollo de software.
a.
Bibliotecas de software. Mdulos y componentes de software destinados a facilitar el proceso de
desarrollo de software. Se hallan dentro de stos, por ejemplo: compiladores; clases, objetos, rutinas y
componentes reusables; herramientas para planificacin y diagramacin; procesadores de palabra; y
herramientas CASE.
b.
Recurso humano. Gerentes de proyecto, ingenieros de software, ingenieros de requerimientos,
analistas y programadores, entre otros, que aportan la parte intelectual, las competencias y las habilidades
humanas necesarias al proceso de produccin de software.
c.
Equipo. Todas las computadoras y sus componentes perifricos necesarios para el proceso de
desarrollo del software.
Control. La funcin de control en la Ingeniera de Software es de extrema importancia. Es en esta rea donde
ms se cuestiona el uso del trmino Ingeniera al referirse al proceso de desarrollo de software. Como en todo
sistema, a travs de la funcin de control se debe monitorear, en un subproceso retroalimentativo, caractersticas
relevantes del software que se desea mantener bajo control, sobre todo las relativas a calidad y confiabilidad; y
se debe ejecutar las acciones correctivas que sean necesarias cuando se detectan desviaciones significativas.
Todas las operaciones de prueba que se realizan durante el proceso son actividades comprendidas en la funcin
de control.

Ingeniero de Software.
Adaptando un poco el enunciado del Comit Coordinador de la Ingeniera de Software9, el Ingeniero de Software
debe tener proeficiencia para analizar, disear, construir, verificar, validar, documentar, implementar y mantener
sistemas de software; usando tcnicas y mtodos apropiados para asegurar la calidad en todas estas
actividades. Debe entender y utilizar mtodos, procesos, mtricas y herramientas adecuadas durante el
desarrollo de software. Debe poseer las habilidades necesarias para comunicarse y para trabajar en equipo, tal
como se requiere en un ambiente tpico de desarrollo de software.

IEEE Computer Society and ACM Software Engineering Coordinating Committee; Accreditation Criteria for Software Engineering (revised
9/25/98); http://www.swebok.org

Вам также может понравиться