Está en la página 1de 18

1

1. INTRODUCCIN A
LA INGENIERA
DEL SOFTWARE

1.1 Objetivos
Los objetivos de este captulo son los siguientes:
Introducir el concepto de Ingeniera en general, as como otros conceptos
relacionados, que son imprescindibles para entender que el software se desarrolla bajo un enfoque de ingeniera determinado.
Ofrecer un enfoque de ingeniera integrado con otras disciplinas.
Establecer un marco de referencia de la Ingeniera del Software y la Ingeniera del Software Orientado a Objetos respecto de la Ingeniera de Sistemas de Informacin.
Presentar la Ingeniera del Software como el marco tecnolgico y tcnico
de la Ingeniera del Software Orientado a Objetos.
Estudiar el concepto de software y aspectos relacionados.
Estos objetivos se resumen en uno ms general que rige no slo este captulo sino
el libro completo: formar al alumno que va a ser ingeniero o ingeniero tcnico en
informtica en el diseo, desarrollo y culminacin de proyectos informticos de
sistemas software, especialmente bajo el enfoque de la orientacin a objetos.

Ingeniera del Software

1.2

INGENIERA DEL SOFTWARE

1.2 Introduccin
Es interesante detenerse en la reflexin sobre un concepto o trmino que es parte
fundamental del tema del libro: la Ingeniera. Qu es la Ingeniera? Desde el punto
de vista filolgico, el Diccionario de la Lengua Espaola dice que la Ingeniera es
el Conjunto de conocimientos y tcnicas que permiten aplicar el saber cientfico a
la utilizacin de la materia y de las fuentes de energa || Profesin o ejercicio del
ingeniero. Desde el punto de vista tradicional, se trata de una disciplina tcnica
que pretende resolver problemas tcnicos mediante la aplicacin del conocimiento
cientfico consolidado, a travs de la utilizacin de conocimientos y mtodos tcnicos formales, para transformar los recursos naturales en productos directamente
utilizables por la sociedad.
Y desde un punto de vista ms moderno, la Ingeniera es un conjunto organizado de disciplinas tcnico-cientficas que actan de funciones de transformacin
entre el Universo del Discurso Cientfico (UoDC) y el Dominio de Soluciones
Tcnico-Operativas (DSTO). Los operadores de estas funciones son los recursos
humanos, los mtodos tcnicos formales, las normas tcnicas y legales, las tcnicas
y las tecnologas aceptadas como estndares por organismos internacionales o nacionales con autoridad reconocida. Los operandos son: (a) cada uno de los Espacios de Problema (EP) que conforman el Dominio del Ambito (DA) de cada disciplina (estructuras de comunicacin viaria terrestre, navegacin naval, transporte
areo, electricidad, electrnica, etc.); (b) los criterios especficos de cada DA; (c)
los conocimientos particulares de cada EP; (d) los objetivos marcados en cada Espacio de Solucin Tcnica (EST); y (e) los recursos primarios y secundarios para
trasformar o aplicar en la transformacin. Tanto el proceso de transformacin como
el resultado final deben tener la fiabilidad, calidad, eficacia y eficiencia establecidas previamente por normas y recomendaciones de organismos internacionales.
Tomando la ltima definicin de Ingeniera, para la Ingeniera del Software
hay que replantearse la delimitacin ms especfica de las particiones del Universo
del Discurso Cientfico y del Dominio de Soluciones Tcnico-Operativas. Tambin
se deben establecer claramente los operadores y los operandos de la funcin de
transformacin del Software. Pero tambin se puede analizar el concepto de Ingeniera del Software, aplicando las definiciones anteriores con la intencin de encontrar una definicin especfica que sea consistente y completa. Para ello, se va a
plantear una serie de preguntas principales que tambin se intentar resolver en la
medida de lo posible:
1. Qu es el Software? No es ni materia, ni recurso natural ni energa.
2. Cul es el conocimiento cientfico que sustenta el Software? Qu conjunto coherente de teoras y modelos explica el comportamiento del Softwa-

TEMA-01

re, de forma similar al cuerpo terico que explica el comportamiento de los


fenmenos hidrodinmicos?
3. Cules son los mtodos tcnicos formales y las tcnicas empleadas en el
mbito del Software? Forman todos un conjunto coherente y completo al
igual de en otras disciplinas de ingeniera?
4. Cules son los problemas tcnicos planteados con el Software? Son todos los problemas de tipo tcnico o hay consideraciones que escapan al
anlisis objetivo?
5. Cul es el proceso de la disciplina y a qu metas pretende llegar? Se trata
de un proceso nico o hay un amplio espectro de procesos reconocidos?
Estn claras las metas? Son divergentes o convergentes?
6. Qu productos finales se pretende ofrecer con respecto al Software? Qu
naturaleza tienen esos productos? Se pueden ofrecer independientemente
de los productos de otras disciplinas de ingeniera?
Las respuestas a estas preguntas constituyen el contenido de este captulo,
donde se pretende situar la Ingeniera del Software en un marco ms general y,
adems, introducir la aplicacin de esta disciplina a un paradigma especfico, el
Paradigma de la Orientacin a Objetos.

1.3 La Ingeniera como disciplina


Actualmente se tiende a la aplicacin de puntos de vista globales respecto del estudio de disciplinas relativamente cercanas. En esa direccin, cada vez se trabaja ms
en la integracin de sistemas en las organizaciones y entre organizaciones. Por ello,
en el ltimo cuarto del siglo XX se ha revisado el concepto de Ingeniera, abandonando el planteamiento clsico establecido en el siglo XIX, cuando lleg a su madurez.
Con estas consideraciones, es necesario decir explcitamente que la Ingeniera
del Software es una disciplina de ingeniera ms, con sus particularidades, como su
corta historia (apenas 40 a 50 aos) y su poca madurez en la confeccin de un
cuerpo de conocimientos y metodologas nico. Pero a pesar de estas diferencias, la
Ingeniera del Software debe aplicar el mismo nivel de rigor, calidad y mtodo que
cualquiera de sus hermanas mayores. Tambin es necesario revisar el marco de
referencia respecto del desarrollo de sistemas informticos, o ms concretamente
sistemas software, y de la aplicacin de los mismos en distintos mbitos y dominios de informacin.

INGENIERA DEL SOFTWARE

Como este libro no pretende ser un estudio exhaustivo de la Ingeniera y sus


distintas disciplinas, solamente se expresarn las definiciones imprescindibles para
que se pueda entender los conceptos generales agrupados en tres categoras: definiciones bsicas, aspectos metodolgicos y aspectos operativos. En la Tabla 1.1 se
enuncian las definiciones bsicas relacionadas con la ingeniera en general. El propsito es presentar un marco de referencia general donde situar las coordenadas
exactas de la Ingeniera del Software.

Tabla 1.1. Definiciones bsicas


Cdigo

Trmino

Definicin

D.1.1

Ingeniera

La ingeniera es una disciplina del conocimiento humano


que busca y aplica soluciones tcnicas y tecnolgicas a
problemas reales, a partir de conocimientos y planteamientos cientficos

D.1.2

Enfoque de ingeniera

El enfoque de ingeniera se basa en la aplicacin rigurosa y


metdica de tcnicas y tecnologas suficientemente probadas dentro de un mbito terico y prctico para obtener un
resultado de calidad

D.1.3

Propsito de la ingeniera

El propsito de la ingeniera es la de resolver problemas


reales de tipo tcnico y tecnolgico de la manera ms eficaz
(alcanzando los objetivos marcados) y eficiente (con el menor coste posible)

D.1.4

Proceso de ingeniera

Es la forma unitaria en que se desarrolla el enfoque de


ingeniera. El conjunto de procesos de ingeniera constituyen el desarrollo global del enfoque de ingeniera

D.1.5

Proyecto de ingeniera

Es la unidad de accin de la ingeniera

En la Tabla 1.2 se enuncian las definiciones relacionadas con los aspectos metodolgicos de la ingeniera en general.
En la Tabla 1.3 se enuncian las definiciones relacionadas con los aspectos operativos de la ingeniera en general.

TEMA-01

Tabla 1.2. Aspectos metodolgicos


Cdigo

Trmino

Definicin

D.1.6

Metodologas

Son los sistemas estructurados y organizados de principios, reglas y


prcticas que se aplican a ramas del conocimiento especficas.

D.1.7

Mtodos

Es el conjunto de principios, reglas y prcticas que suministran la


forma de construir tcnicamente (el cmo) el software. Los mtodos
estn implicados en las categoras de actividades del desarrollo del
software siguientes: Planificacin y estimacin de proyectos; Anlisis
de los requerimientos del sistema y del software; Diseo de estructuras de datos, arquitectura de programas y procedimientos algortmicos; Generacin de cdigo; Pruebas y comprobaciones; e Implantacin y mantenimiento.

D.1.8

Tcnicas

Mientras que la ciencia se dedica primordialmente al saber, la tcnica


es el arte de hacer. Entonces, la tcnica es la aplicacin de un conjunto
de procedimientos derivados del saber cientfico o artstico, y de los
recursos necesarios para poder producir resultados. La caracterizacin
de una buena tcnica se basa en los siguientes aspectos fundamentales:
Utilidad: los resultados obtenidos corresponden a determinados objetivos
establecidos previamente antes de la aplicacin de la tcnica.
Habilidad: los procedimientos y recursos se usan con pericia o habilidad en
casos semejantes.
Reproducibilidad: bajo las mismas condiciones y con los mismos elementos
iniciales, los resultados obtenidos deben ser siempre los mismos.
Perdurabilidad: el conocimiento del proceso de aplicacin de los procedimientos y recursos se puede guardar para recuperarlo en otro momento futuro.
Transmisibilidad: el conocimiento del proceso de aplicacin de los procedimientos y recursos se puede ensear y aprender.
Eficiencia: los resultados se obtienen con el menor coste de recursos y en el
tiempo ms corto.

D.1.9

Procedimientos

Es el conjunto de facilidades que integran mtodos y herramientas en


unidades metodolgicas operativas. Entre otras cosas, estas unidades
definen las secuencias de aplicacin de los mtodos; describen y
establecen los resultados de la culminacin de cada etapa de aplicacin de los mtodos, denominadas entregas (documentos, informes,
diagramas, etc.); definen los controles para asegurar la calidad y
gestionar los cambios; y establecen las directrices que ayudan a los
gestores del software en la evaluacin del progreso en el desarrollo.

D.1.10

Herramientas

Es el conjunto de los elementos que, mediante la estructuracin,


clasificacin y automatizacin de determinados procedimientos de
ingeniera y diseo, facilitan el trabajo del ingeniero al descargarle de
tareas rutinarias, repetitivas o extremadamente exhaustivas, y le permiten centrarse en aspectos cualitativos o fundamentales. Suministran
en resumen un soporte automtico o semiautomtico a los mtodos.

1.6

INGENIERA DEL SOFTWARE

Tabla 1.3. Aspectos operativos


Cdigo

Trmino

Definicin

D.1.11

Confiabilidad de un
sistema

Es el grado de cumplimiento satisfactorio de las caractersticas


siguientes:
Correccin de su diseo. El diseo est realizado segn unos
requisitos expresa-dos en consonancia con las necesidades de
los usuarios y para resolver el problema planteado.
Correcta correspondencia entre el diseo y su aplicacin: la
construccin resultante debe reflejar fielmente el diseo previo.
Fiabilidad de sus componentes: la tasa de fiabilidad de sus
componentes debe ser la mayor posible de forma que la tasa de
fiabilidad conjunta sea de un nivel parecido.
Regida por el tiempo que tardan los componentes en desgastarse: la calidad de los componentes debe ser tal que alargue en
lo posible la vida til del sistema.

D.1.12

Obsolescencia
funcional

Es la situacin que se da cuando algunos o la totalidad de los


sistemas informticos estn operando por debajo del mnimo nivel
de fiabilidad exigible. Con lo cual, los resultados obtenidos tambin pueden estar por debajo del nivel de confianza establecido.

D.1.13

Obsolescencia
operativa

Es la situacin que se da cuando uno o varios cambios en la forma


de funcionamiento de determinados sistemas de informacin o de
estructuras organizativas de la organizacin puede motivar, o la
implantacin de un sistema informtico si no lo haba anteriormente, o la sustitucin del que haba anteriormente.

D.1.14

Obsolescencia
tcnica

Es la situacin que se da cuando algunos o la totalidad de los


sistemas informticos que mantienen los sistemas de informacin
operativos han llegado a su nivel mximo de evolucin. Y no
pueden responder eficientemente a las nuevas exigencias.

1.4 La Tecnologa Informtica


Actualmente est prcticamente asumido que se debe establecer un marco de referencia terico y normativo que sustente la existencia de disciplinas como la Ingeniera del Software. Este marco se denomina Ingeniera de Sistemas de Informacin y aporta un enfoque de ingeniera en el desarrollo, implantacin, mantenimiento, adquisicin y distribucin de los sistemas de informacin en general. A
continuacin se describe la arquitectura o estructura de dicho marco.

TEMA-01

1.4.1 La estructura de las disciplinas


La Ingeniera de Sistemas de Informacin (ISI) es la aplicacin del enfoque de
ingeniera al estudio, diseo, desarrollo, implantacin, explotacin y gestin de
sistemas de informacin en una organizacin. La Ingeniera de Sistemas de Informacin (ISI) se desglosa en varias disciplinas: la Ingeniera de las Tecnologas de
la Informacin y la Comunicacin (ITIC) y la Ingeniera de la Informacin (IIF). A
su vez, la ITIC se desglosa, entre otras, en la Ingeniera de las Tecnologas de la
Comunicacin (ITC) y la Ingeniera de Sistemas Informticos (ISIF) (Figura 1.1).
En la Tabla 1.4 se definen estas disciplinas.

Ingeniera de
Sistemas de Informacin

Ingeniera de
las Tecnologas de
la Informacin
y la Comunicacin

Ingeniera de
Tecnologas de
la Comunicacin

Ingeniera de
la Informacin

Ingeniera de
Sistemas Informticos

Figura 1.1. El marco de referencia de Ingeniera

El proceso de la ISI empieza con el examen del dominio entero del negocio o
del producto para asegurarse de que se puede establecer el contexto de negocio o
tecnolgico apropiado (Figura 1.2). Esto se denomina vista global. La vista global
se refina para enfocarse totalmente en un dominio de inters especfico, denominado vista del dominio. Dentro de un dominio especfico, se analiza la necesidad de
elementos del sistema (informacin, software, hardware, profesionales, etc.). El
resultado de este anlisis se denomina vista del elemento. Finalmente se inicia el
anlisis, diseo y construccin del elemento del sistema deseado. Este contexto
particular del elemento se denomina vista detallada. Las actividades tcnicas comprendidas en la vista detallada se realizan por la disciplina de ingeniera correspondiente.

1.8

INGENIERA DEL SOFTWARE

Tabla 1.4. Disciplinas de la Ingeniera de Sistemas de Informacin


Cdigo

Trmino

Definicin

D.1.15

Ingeniera de las Es el conjunto de ingenieras cuyo propsito es el desarrollo y la


Tecnologas de la aplicacin de las distintas tecnologas de informacin y comunicaInformacin y la cin relacionadas con los sistemas de informacin.
Comunicacin

D.1.16

Ingeniera de la Es la definicin de arquitecturas que permiten a las empresas emInformacin


plear la informacin y las tecnologas asociadas eficazmente a los
problemas de su dominio de negocio o producto.

D.1.17

Ingeniera
Producto

D.1.18

Ingeniera de las Es la disciplina que tiene como meta la definicin de arquitecturas


Tecnologas
de que permitan a las empresas emplear la informacin y las tecnologInformacin
as asociadas eficazmente. En consecuencia, trabaja en la creacin de
un plan global para implementar dichas arquitecturas.

D.1.19

Ingeniera de los Es la ingeniera que se desenvuelve en el mbito exclusivo de las


Sistemas Inform- tecnologas de informacin y los sistemas que incorporan dichas
ticos
tecnologas.

D.1.20

Ingeniera
del Es una subdisciplina de la Ingeniera de Sistemas de Informacin.
Software (como Es un proceso de modelado para definir los procesos que satisfagan
proceso de mode- las necesidades de la vista global, del elemento o detallada; para
lado)
representar el comportamiento de los procesos y los supuestos en
los que se basa el comportamiento, para definir explcitamente las
entradas exgenas y endgenas de informacin al modelo, y representar todas las uniones que permitan al ingeniero entender mejor la
visin correspondiente.

del Es la disciplina que traduce las necesidades del cliente, partiendo de


un conjunto de capacidades definidas, en un producto operativo.

Dominio de negocio o producto


Elemento del sistema

Elemento del sistema

Elemento del sistema

Vista del elemento


Vista detallada
Ing. Hardware

Vista detallada
Ing. Software
Figura 1.2. Estructura del dominio de Negocio

TEMA-01

1.4.2 Construccin de Modelos


La Ingeniera de Sistemas de Informacin es un proceso de modelado para:
Definir los procesos que satisfagan las necesidades de la visin global, del
elemento o detallada.
Representar el comportamiento de los procesos y los supuestos en los que
se basa el comportamiento.
Definir explcitamente las entradas exgenas y endgenas de informacin
al modelo.
Representar todas las uniones que permitan al ingeniero entender mejor la
visin.
Un modelo es una abstraccin de la realidad o de un sistema real tomando los
elementos ms representativos con un propsito determinado. Por lo tanto, de un
mismo sistema puede haber ms de un modelo, porque, segn el propsito del
mismo, los elementos representativos pueden ser distintos. Los elementos a considerar en la construccin de modelos son: supuestos, simplificaciones, limitaciones
o restricciones y preferencias. Se describen a continuacin.
Los supuestos son elementos para la construccin de modelos que reducen el
nmero de permutaciones y variaciones posibles, permitiendo al modelo reflejar el
problema de manera razonable. Las simplificaciones son elementos para la construccin de modelos que permiten crear el modelo a tiempo.
Las limitaciones o restricciones son elementos para la construccin de modelos que ayudan a delimitar el problema. Y las preferencias son elementos para la
construccin de modelos que indican la arquitectura preferida para toda la informacin, funciones y tecnologa; conflictos con otros factores restrictivos. Es recomendable tenerlas en cuenta para obtener un resultado aceptado, adems de correcto.

1.4.3 La Ingeniera de las Tecnologas de la Informacin


La Ingeniera de las Tecnologas de la Informacin (ITI) tiene como meta la definicin de arquitecturas que permitan a las empresas emplear la informacin y las
tecnologas asociadas eficazmente. Esta disciplina trabaja para crear un plan global
para implementar las arquitecturas.
Principalmente, se centra en el anlisis y diseo de tres arquitecturas diferentes dentro del contexto de objetivos y metas del negocio:

1.10

INGENIERA DEL SOFTWARE

Arquitectura de datos: proporciona una estructura para las necesidades de


informacin de un negocio o de una funcin de negocio.
Arquitectura de aplicacin: comprende aquellos elementos de un sistema
que transforman objetos dentro de la arquitectura de datos por algn propsito del negocio.
Infraestructura de la tecnologa: proporciona el fundamento de las arquitecturas de datos y de aplicaciones. Comprende el hardware y el software
empleados para dar soporte a las aplicaciones y a los datos.
Para modelar las arquitecturas del sistema se define una jerarqua de actividades de ITI de la forma siguiente:
Vista global: planificacin de la estrategia de informacin (PEI). Define los
objetos de datos visibles a nivel de empresa, sus relaciones y cmo fluyen
entre los dominios del negocio
Vista del dominio: anlisis del rea de negocio (AAN). Identifica en detalle
la in-formacin y los requisitos de las funciones de reas de negocio seleccionadas
Vista del elemento: diseo del sistema de negocio (DSN). Se modelan los
requisitos bsicos de un sistema de informacin especfico y se traducen en
las tres arquitecturas
Vista detallada: construccin e integracin (C&I). Se concentra en los
detalles de implementacin que son los siguientes:
Arquitectura de datos: bases de datos y estructuras internas de datos.
Arquitectura de aplicaciones: construccin de aplicaciones o conjuntos de programas.
Integracin de componentes para formar un nuevo sistema de informacin.
Insercin del sistema de informacin en el contexto del rea de negocio.

1.4.4 La Ingeniera del Producto


La Ingeniera del Producto (IP) tiene como meta la traduccin de las necesidades
del cliente, de un conjunto de capacidades definidas, en un producto operativo. Por
lo tanto, trabaja para crear un plan global para implementar una arquitectura y una

TEMA-01

11

infraestructura. La arquitectura del sistema est compuesta por: software, hardware,


datos (bases de datos), y recursos humanos.
La infraestructura de soporte proporciona la tecnologa requerida para unir los
componentes, y la informacin que se emplea para dar soporte a los componentes.
Para modelar la arquitectura del sistema se define una jerarqua de actividades en
esta disciplina:
Vista global: anlisis del sistema: Se obtienen del cliente los requisitos generales del producto (necesidades de informacin y control, funcionalidad
y comportamiento del producto, rendimiento general del producto, diseo,
restricciones de la interfaz y otras necesidades especiales. Asignacin de la
funcionalidad y comportamiento a los componentes de la arquitectura.
Vista del dominio: ingeniera de componentes: Conjunto de actividades
concurrentes que se dirigen separadamente a cada uno de los componentes:
Ingeniera del Software, Ingeniera del Hardware, Ingeniera de Bases Datos, Ingeniera de Recursos Humanos.
Vista del elemento: modelo de anlisis y diseo o actividades de la ingeniera aplicada.
Vista detallada: construccin e integracin. Se concentra en los detalles de
implementacin: Generacin de cdigo, pruebas y actividades de soporte.

1.4.5 Planificacin de la estrategia de la informacin (PEI)


Los objetivos generales de la Planificacin de la Estrategia de la Informacin (PEI)
son los siguientes:
Definir los objetivos y metas del negocio que sean estratgicos.
Aislar los factores de xito crticos que permitan al negocio alcanzar esos
objetivos y metas.
Analizar el impacto de la tecnologa y la automatizacin en las metas y objetivos.
Analizar la informacin existente para determinar su papel en la consecucin de la metas y objetivos.
La PEI crea un modelo de datos a nivel de negocio, es decir, define los objetos
de datos clave y las relaciones entre ellos y con otras reas de negocio de la forma
siguiente:

1.12

INGENIERA DEL SOFTWARE

Un objetivo es una declaracin general de direccin (estratgico).


Las metas definen un curso de accin cuantitativo (tcticas).
Los factores crticos de xito (FCE) pueden estar unidos a un objetivo o
una meta.
Las actividades de la PEI son las siguientes:
Modelado de la empresa aplicando una visin en tres dimensiones de un
negocio:
Dimensin 1: Estructura de la organizacin y de las funciones en las reas de negocio.
Dimensin 2: Descomposicin de la funcin de negocio para aislar los procesos componentes.
Dimensin 3: Relacin de los objetivos, metas y FCE con la organizacin y sus funciones.

Creacin de un modelo de datos a nivel de negocio.


Modelado de datos al nivel de negocio: se concentra en los objetos de datos necesarios para alcanzar las funciones de negocio: productores y consumidores de informacin, sucesos, puestos de la organizacin, lugares, estructuras de informacin, etc.
Anlisis del rea de negocio: Establece un marco detallado para construir
una empresa basada en la informacin (visin de dominio). Se emplean varios modelos de trabajo distintos como los siguientes:
Modelos de datos.
Modelos de flujo de proceso.
Diagramas de descomposicin de procesos.
Matrices de referencias cruzadas.

1.5 La Ingeniera del Software


Las sucesivas crisis del software han conformado una situacin de crisis permanente que nicamente podr ser superada si se toma definitivamente un enfoque de
ingeniera riguroso como el expuesto en secciones anteriores- para la construccin
de sistemas y productos basados en el software.
En este sentido, la Ingeniera del Software se ha marcado, como uno de los objetivos principales, la simplificacin del desarrollo del software. De todos es conocido que resulta sumamente difcil desarrollar software con un grado de calidad y
fiabilidad parecido al del hardware. Una de las posibles causas consiste en que el

TEMA-01

13

software es intangible y se maneja en un medio invisible. Tambin resulta cada vez


ms complejo porque intenta abarcar sistemas o problemas cada vez ms complejos. Por otra parte, es infinitamente maleable. Un cambio mnimo en una parte de
un mdulo software puede significar el cambio radical de la estructura y / o el
comportamiento del mismo. Finalmente, el software es el reflejo de un mundo dinmico que cambia con rapidez y resulta difcil aprehenderlo conceptualmente.
En esta seccin se dan unas definiciones bsicas de esta disciplina y del software y algunos conceptos asociados.

1.5.1 Definicin del concepto de software


En principio se define el concepto de software y despus algunas categoras del
mismo. As, e l software es el conjunto de las categoras de elementos siguientes:
Programas de ordenador asociados con alguna aplicacin o producto, junto
con toda la informacin necesaria para instalar, usar, desarrollar y mantener
estos programas.
Instrucciones de ordenador que, cuando se ejecutan, proporcionan la funcin y el comportamiento deseado.
Estructuras de datos que facilitan a los programas manipular adecuadamente la informacin.
Documentos que describen la operacin y el uso de los programas y las estructuras de datos manipuladas por los mismos.
Se puede categorizar el software exigiendo una serie de caractersticas para
que sea til en el marco de la Ingeniera del Software. As, el software debe ser
confiable y de calidad. El software confiable es el software que cumple las caractersticas siguientes:
Debe estar ajustado a las especificaciones establecidas previamente.
No debe producir resultados incorrectos.
No debe permitir su corrupcin.
Debe reaccionar de manera til y significativa en situaciones inesperadas.
Slo debe fallar por completo cuando sea imposible seguir avanzando.
La tasa de confiabilidad del software se puede obtener por medio de las actividades siguientes:

1.14

INGENIERA DEL SOFTWARE

Comprensin del ambiente en el que opera el software.


Especificacin de la funcin del sistema en su ambiente.
Aplicacin en el diseo de todas las partes de la especificacin.
Aplicacin de la correccin en el diseo.
Transformacin correcta de todas y cada una de las partes del diseo a un
sistema de programacin.
Elaboracin de documentacin exacta.
Mantenimiento de la confiabilidad a lo largo de toda la vida til del sistema.
Y finalmente, el software de calidad es el software que tiene los atributos siguientes:
Es mantenible: est escrito y documentado de forma que los cambios puedan ser realizados sin costes adicionales.
Es fiable: ha de funcionar segn las expectativas de los clientes y no debera fallar ms de lo indicado en las especificaciones; es eficiente: aprovecha
al mximo los recursos hardware y de otro tipo del sistema que lo soporta y
alcanza los objetivos establecidos.
Es amigable: tiene una apropiada interfaz de usuario que facilita la utilizacin del sistema o producto y en donde intervienen tanto elementos de visualizacin e intervencin, como elementos de ayuda y asistencia.
Es parcialmente sustituible: la sustitucin parcial de determinados elementos por otros con la misma interfaz no debe alterar el comportamiento general al menos en sentido negativo.
Es parcialmente reutilizable: determinados elementos deben poderse aplicar en nuevos desarrollos manteniendo como mnimo el mismo nivel de
funcionalidad de cada uno de dichos elementos.
Es controlable y auditable: est escrito y documentado de forma que se
pueda registrar los cambios sucesivos y se pueda registrar fiablemente su
comporta-miento para inspeccin posterior.
Es seguro: se ha diseado para que cumpla al mximo las premisas de asegurar la integridad, la confidencialidad y la disponibilidad.
Este es el criterio objetivo de software de calidad. Sin embargo, la calidad
tambin puede tomar matices subjetivos en funcin del tipo de actor que se rela-

TEMA-01

15

cione con el software, puesto que pueden llegar a tener intereses distintos. El promotor o contratante, que es quien lanza la iniciativa de desarrollo y asume los costes del mismo, quiere tener el mejor producto a menor coste y en el menor tiempo
o, al menos, dentro del presupuesto aceptado y en la fecha comprometida. El usuario, que es quien realmente va a utilizar el sistema software, desea una herramienta
que le ayude en su trabajo, que no le obligue a modificar sus hbitos e, incluso, que
no pueda sustituirle en el puesto de trabajo.
Por la otra parte, los tcnicos de mantenimiento, los operadores y tcnicos de
explotacin, los analistas y programadores, etc. quieren tener un sistema que funcione y que no d problemas, facilitando su mantenimiento y la incorporacin no
traumtica de nuevas aplicaciones.
Como se puede ver, las expectativas de todos ellos no confluyen en un punto
comn. As, debe aplicarse especialmente la capacidad profesional del ingeniero y
sus habilidades de gestin y relacin para encontrar puntos de convergencia entre
las metas conflictivas de todos estos actores.

1.5.2 Caracterizacin de la disciplina


La tarea de un Ingeniero del Software consiste en producir un sistema o producto
software dentro de las limitaciones de costo, utilizando el conocimiento y las teoras de la ciencia sobre las que se basa el sistema o producto, y aplicando mtodos,
herramientas y procedimientos, que facilitan al gestor el control del proceso del
desarrollo del software. Y adems, estos elementos suministran las bases para construir software de alta calidad de forma razonablemente productiva.
Dentro del conocimiento y las teoras de la ciencia sobre las que se basa el sistema o producto, se debe tener claro el concepto fundamental de paradigma. El
paradigma es en general una forma distinta de ver las cosas. En la Ingeniera del
Software, es un enfoque de ingeniera cuyas tcnicas y tecnologas corresponden a
una filosofa y a un mbito particular en la representacin de sistemas y de sus
soluciones tecnolgicas. Los paradigmas ms importantes, centrados en el producto
final, son el Paradigma de la Programacin Estructurada, el Paradigma de la
Programacin Lgica, el Paradigma de la Programacin Funcional y el Paradigma de la Programacin Orientada a Objetos. Este ltimo es que se desarrolla en
este libro con respecto a la construccin de sistemas software.
Independientemente del paradigma, pero dentro del marco formal de la Ingeniera, se puede finalmente definir el concepto de la disciplina Ingeniera del Software vista como un enfoque de ingeniera especfico:

1.16

INGENIERA DEL SOFTWARE

La Ingeniera del Software es el establecimiento y uso de principios de ingeniera robustos, orientados a obtener software econmico que sea fiable y funcione
de manera eficiente sobre mquinas reales, mediante la aplicacin de los elementos y actividades siguientes: mtodos; planificacin y estimacin de proyectos; anlisis de los requisitos del sistema y del software; diseo de estructuras de datos; arquitectura de programas y procedimientos algortmicos; codificacin; pruebas; instalacin y mantenimiento; herramientas; y procedimientos.

Las definiciones de la Tabla 1.1 se pueden aplicar perfectamente a esta disciplina siguiendo el mismo punto de vista del enfoque de ingeniera. As, el propsito
de la Ingeniera del Software es la de resolver problemas reales de tipo informtico
de la manera ms eficiente. Este propsito de alcanza por medio de los procesos o
formas unitarias en que se desarrolla el enfoque de Ingeniera del Software, siendo
la unidad de accin el proyecto de ingeniera informtica. Este ltimo concepto se
puede definir de la forma siguiente:
El proyecto de ingeniera informtica es el conjunto de actividades coordinadas
cronolgicamente para alcanzar un subconjunto de objetivos a partir de la definicin de un subconjunto de necesidades, todo ello en-marcado dentro de un
Plan Estratgico de Sistemas de Informacin. En el aspecto cronolgico, un
proyecto tiene un inicio, una fecha inicial, y un final, la fecha de finalizacin;
pero tambin tiene unos hitos temporales intermedios para la distribucin de
las actividades. En el aspecto econmico, un proyecto necesita de unos recursos, tanto para su puesta en marcha, como para su continuacin y culminacin.
Adems, el proyecto debe ofrecer determinados resultados que justifiquen el
coste de los recursos empleados. En el aspecto organizativo, un proyecto parte
de una planificacin previa y necesita de una gestin que adecue las actividades a la planificacin y que controle las desviaciones.

Se puede apreciar que se ha utilizado el trmino proyecto de ingeniera informtica en lugar de proyecto de Ingeniera del Software. La justificacin es
que cualquier proyecto en que se desarrolle software necesita del concurso del
hardware necesario para dicho desarrollo, aunque solamente se considere su adquisicin e instalacin. Con lo cual una parte del proyecto es software y el resto es
hardware.

1.5.3 Principios de la Ingeniera del Software


Hay cinco principios fundamentales en la enseanza, el aprendizaje y la aplicacin
de la Ingeniera del Software que todo profesional relacionado directamente con
esta disciplina debe tener en cuenta. En la Tabla 1.5 se enuncias estos principios.

TEMA-01

17

Tabla 1.5. Principios de la Ingeniera del Software


Principio

Definicin

Principio I.
Experiencia
prctica

La comprensin de la complejidad slo puede obtenerse trabajando con un


sistema complejo; esto es, un sistema que no puede comprender por completo
una sola persona, aun-que sea un profesional.

Principio II.
Resolucin de
problemas

No hay soluciones correctas o incorrectas, sino slo soluciones que son mejores
o peores con relacin a un criterio establecido.

Principio III.
Recursos limitados

El sistema ideal se construye con recursos ilimitados y tiempo infinito. Pero la


realidad es muy distinta y determina que los recursos son limitados y escasos.
Adems, a pesar de tener suficientes recursos, el problema original puede cambiar con rapidez durante el desarrollo, con el riesgo de entregar un sistema final
que resuelve el problema equivocado u obsoleto. Por lo tanto, la conciencia de
la escasez de recursos motiva un enfoque de ingeniera basado en componentes,
reutilizacin de software, diseo y cdigo.

Principio IV.
Interdisciplinariedad

La ingeniera del software es una disciplina donde convergen necesariamente


otras disciplinas: ingeniera elctrica, ingeniera del hardware, ciencia de la
computacin, administracin de empresas, diseo grfico, diseo industrial, etc.
El problema a resolver debe atacarse desde varias perspectivas y terminologas.

Principio V.
Comunicacin

Deben establecerse los canales de comunicacin necesarios entre los participantes en proyectos de ingeniera y con su entorno. Hay que comunicar alternativas, articular soluciones, negociar compromisos y revisar y criticar el trabajo de
los dems. Se debe incluir necesariamente a los clientes y usuarios como fuentes y destinatarios de determinados flujos de informacin.

1.6 Fuentes
El libro de Roger S. Pressman (Pressman, 2014) es uno de las obras clsicas en el
enfoque moderno de la Ingeniera del Software en general, aunque su estructura
expositiva es un poco discutible para quien se introduce por primera vez en esta
disciplina. Los conceptos de proceso y producto, a pesar de tener una seccin dedicada, no acaban de estar claros. Por otra parte, es uno de los primeros en la introduccin formal de nuevas formas de aplicacin de la disciplina en mbitos como
los sistemas Web. Su enfoque no es fundamentalmente prctico, por lo que se debe
apoyar en otros libros si se pretende disear un proyecto informtico.
En el libro de Piattini y otros (Piattini et al., 2013) se desarrollan conceptos
mucho ms concretos para su aplicacin inmediata en el desarrollo de proyectos
informticos.

1.18

INGENIERA DEL SOFTWARE

La sexta edicin de la obra de Sommerville (Sommerville, 2012) recoge la


evolucin de la disciplina, como por ejemplo, la reutilizacin del software basada
en patrones, el desarrollo basado en componentes, el estudio integral de los sistemas crticos, la presentacin de ejemplos de programas en Java y los modelos de
objetos en UML.
El enfoque especfico de la Ingeniera del Software Orientado a Objetos se trata en las obras (Bruegge et al., 2002) y (Harmon, 1993). Esto se trata con mayor
detalle en los captulos siguientes.

1.7 Bibliografa
Bruegge B., Dutoit A.H. Ingeniera de Software Orientado a Objetos. Prentice Hall
Pearson educacin, Mxico, 2002.
Harmon P., Hall C. Intelligent Software Systems Development. An IS Managers
Guide. John Wiley, New York-USA, 1993.
Piattini M., Calvo-Manzano J., Cervera J., Fernndez L. Anlisis y Diseo Detallado de Aplicaciones Informticas de Gestin .RA-MA, Madrid, 1993.
Pressman R.S. Ingeniera del Software. Un enfoque prctico (5 ed.) Mc Graw-Hill;
New York , 2001.
Sommerville I. Ingeniera de software. 6 edicin. PrenticeHall Pearson educacin, Mxico, 2002.
Yourdon E., Whitehead K., Thomann J., Oppel K., Nevermann P. Mainstream
Objects: An Analysis and Design Approach for Business. Prentice-Hall, Upper Saddle River, NJ (USA), 1995.

También podría gustarte