PDF de programación - Capítulo 12 Ingeniería de software: el proceso para el desarrollo de software

Capítulo 12 Ingeniería de software: el proceso para el desarrollo de softwaregráfica de visualizaciones

Actualizado el 28 de Enero del 2021 (Publicado el 14 de Enero del 2017)
2.661 visualizaciones desde el 14 de Enero del 2017
349,4 KB
42 paginas
Creado hace 16a (10/07/2007)
Capítulo 12
Ingeniería de software: el proceso
para el desarrollo de software

Por Alfredo Weitzenfeld Ridel y Silvia Guardati Buemo

El desarrollo de software es una de las acti-
vidades más importantes de la computación,
ya que está presente tanto en el desarrollo de
aplicaciones ajenas a la computación —por
ejemplo, un programa que controla la asigna-
ción de salas de embarque en un aeropuer-
to— como en el desarrollo de programas
básicos en el área —por ejemplo, un sistema
operativo—. Otro aspecto relevante que debe
tenerse en cuenta es que el desarrollo de
software no es una tarea solamente técnica,
en la cual lo único que importa es la tecno-
logía y los desarrolladores. La producción de
software generalmente también involucra a
terceros (es decir, en la mayoría de las situa-
ciones se desarrolla un programa para satis-
facer una necesidad específi ca de un usuario
que no es el mismo programador). Por lo
tanto, el éxito de un programa está sujeto
a que éste haga lo que se espera que haga,
que haya sido desarrollado con los recursos
estimados y que sea confi able. Considerando
lo mencionado, el diseño, desarrollo y man-
tenimiento de software debe realizarse con la
misma seriedad y responsabilidad con la que
se llevan a cabo cualquiera de las actividades
propias de las ingenierías tradicionales.

En este capítulo se presenta una introduc-
ción al proceso de desarrollo de software, así
como los conceptos básicos acerca de meto-
dologías que existen para el trabajo en equi-
po, dado que el software que se desarrolla
hoy en día ya no son programas de cien líneas
de código, hechos por un solo programador,

como lo eran durante los primeros años de
la computación. De esta manera, el lector po-
drá conocer los fundamentos de la ingeniería
de software aplicables en el desarrollo de soft-
ware tanto para las áreas de la computación
estudiadas en este libro, como para cualquier
área del saber.

12.1 Modelo del proceso

Un proceso defi ne quién hace qué, cuándo
y cómo lo hace, para alcanzar cierto obje-
tivo. En general, el éxito de las empresas u
organizaciones depende en gran medida de
la defi nición y seguimiento adecuado de sus
procesos. En el caso de una empresa que se
dedica al desarrollo de software, se requieren
procesos especializados que abarquen desde
la creación hasta la administración de un siste-
ma de software. Como se ha visto en capítulos
anteriores, los sistemas de software pueden
llegar a ser extremadamente complejos. Para
administrar la complejidad de tales sistemas
es necesario contar con modelos de procesos
y tecnologías de software apropiadas. En este
capítulo se describe en qué consiste el proce-
so de software.

Un modelo de proceso de software
defi ne cómo resolver la problemática del
desarrollo de sistemas de software. Para de-
sarrollar software se requiere resolver ciertas
fases de un proceso que se conocen en su
conjunto como el ciclo de vida1 del desarro-

1 Scacchi, W., 2001, “Process models in software engineering”, en J. Marciniak (Ed), Encyclopedia of

software engineering (second edition), Wiley.

CAP. 12.indd 355
CAP. 12.indd 355

7/10/07 1:52:18 PM
7/10/07 1:52:18 PM

356

CAPÍTULO 12

llo de software. Un modelo de proceso debe
considerar una variedad de aspectos, como
el conjunto de personas, estructuras organi-
zacionales, reglas, políticas, actividades, com-
ponentes de software, metodologías y herra-
mientas utilizadas.

A continuación se describen aspectos
esenciales que defi nen un proceso: arquitec-
turas, actividades, métodos y metodologías,
estrategias y herramientas para la administra-
ción de software.

12.1.1 Arquitecturas

Una arquitectura de software defi ne la es-
tructura general de un sistema. Las arquitec-
turas varían de acuerdo con el tipo de sistema
a desarrollarse. Pueden ser arquitecturas ba-
sadas en elementos sencillos o en componen-
tes prefabricados de mayor tamaño. Además
de depender del tipo de sistema a desarrollar,
la selección de una arquitectura afecta as-
pectos como la extensibilidad del sistema
(qué tan fácil es extenderlo en el futuro para
incorporar más funcionalidad o mayor capa-
cidad). Por lo tanto, la arquitectura debe ser
escogida de manera que minimice los efectos
de los cambios que pueda haber en el futuro

en el sistema. Para hacer esta elección existen
ciertas heurísticas que muestran la tendencia
a cambiar en varios elementos de un sistema,
como se muestra en la tabla 12.1.2 Las inter-
faces representan los elementos gráfi cos, la
funcionalidad son las reglas del negocio
(requisitos del usuario), los datos y funcio-
nes son los elementos internos que se usan
para describir a los objetos (correspondien-
tes a las estructuras de datos básicas de la
programación orientada a objetos), mientras
que la información representa el dominio
del problema en una aplicación.

Esta tabla resalta dos aspectos del desa-
rrollo de software. Primero, la arquitectura
del sistema debe distinguir entre elementos
con mayor y menor probabilidad de cambios.
Segundo, el desarrollo de software debe con-
siderar un modelo de proceso en el que
aquellos elementos de mayor probabilidad
de cambio no “arrastren” a los más estables.
Este tema se discute con mayor detalle en la
sección de metodologías.

12.1.2 Actividades

Una actividad es una unidad (un paso) bási-
ca de un proceso. En el proceso de software

Tabla 12.1 Probabilidad de cambios futuros en el software de acuerdo

con el tipo de elemento de diseño.

Elemento

Interfaces

Funcionalidad

Datos

Funciones

Objetos

Información

Probabilidad de cambio

Alta

Alta

Mediana

Mediana

Baja

Baja

2 Coad, P., y Yourdon, E., 1991, Object-oriented analysis, Yourdon Press.

CAP. 12.indd 356
CAP. 12.indd 356

7/10/07 1:52:18 PM
7/10/07 1:52:18 PM

Ingeniería de software: el proceso para el desarrollo de software 357

las actividades defi nen los pasos necesarios
para lograr las metas y objetivos (por ejem-
plo, especifi car los requisitos del sistema).
Las actividades deben ser fáciles de defi nir
y seguir, deben simplifi car la comprensión
del sistema, y ofrecer fl exibilidad, precisión y
extensibilidad. Las actividades básicas del pro-
ceso de desarrollo de software, conocidas
como el ciclo de vida del software, son las
siguientes:

(i)

(ii)

(iii)

(iv)

(v)

(vi)

(vii)

(viii)

especifi cación de requisitos para
capturar los aspectos funcionales
del sistema, describiendo cómo in-
teractuaría un usuario con la aplica-
ción.
análisis para dar al sistema una
estructura o arquitectura robusta
y extensible independiente del am-
biente de implementación fi nal.
diseño para adoptar y refi nar la ar-
quitectura del sistema y adaptarla
al ambiente de implementación es-
pecífi co.
implementación para programar
el sistema.
pruebas para validar y verifi car el
sistema.
integración para combinar los dife-
rentes componentes del sistema.
documentación para describir los
diversos aspectos del sistema.
mantenimiento para extender la
funcionalidad del sistema.

12.1.2.1 REQUISITOS

La actividad de especifi cación de requisitos
tiene como meta defi nir y delimitar la funcio-
nalidad del sistema de software. La especifi -
cación de requisitos sirve como base de ne-
gociación entre el desarrollador del sistema y
el cliente, y debe refl ejar los deseos de éste.
El resultado es el modelo de requisitos. Es
esencial que los clientes que no tengan co-
nocimientos en computación comprendan el
modelo de requisitos para facilitar la interac-
ción de los desarrolladores del software con
ellos.

El modelo de requisitos gobierna el desa-
rrollo de los demás modelos —los demás mo-
delos se deben basar en éste—. El modelo de
requisitos también sirve como base para ela-
borar las instrucciones de operación y los ma-
nuales, los cuales deben ser redactados desde
el punto de vista del usuario.

El desafío en la especifi cación de requisitos
comienza cuando el experto debe comunicar
los conceptos importantes para su aplicación.
En general, no es posible hacer esto adecua-
damente de manera sencilla. Como resultado,
se provee de múltiples explicaciones, orales o
escritas, que el desarrollador trata de integrar
en una forma coherente. La especifi cación de
requisitos es particularmente difícil cuando
la información es incompleta, los expertos
no pueden articular lo que saben, o no están
seguros o, incluso, son incoherentes en su
información o se contradicen.

La tabla 12.2 muestra las actividades más
importantes del ciclo de vida del proceso de
software.

La transición entre las distintas actividades
del ciclo de vida del software debe ser natu-
ral: debe existir continuidad o rastreabili-
dad (en inglés, traceability, la capacidad de
entender por qué razón surgió y a qué resul-
tados llevó cada decisión realizada durante el
desarrollo de software) de una actividad a la
siguiente o la anterior. A continuación des-
cribimos con mayor detalle cada una de las
actividades listadas arriba.

12.1.2.2 ANÁLISIS

Después de desarrollar el modelo de re-
quisitos y de que los usuarios del sistema o
clientes lo aprueben, se puede continuar con
la elaboración del modelo de análisis, te-
niendo como meta construir una arquitectu-
ra capaz de resolver el problema bajo condi-
ciones ideales. Esto signifi ca desarrollar una
estructura lógica del sistema que debe ser es-
table y extensible. El análisis se enfoca en qué
debe hacer el sistema, en lugar de cómo se

CAP. 12.indd 357
CAP. 12.indd 357

7/10/07 1:52:19 PM
7/10/07 1:52:19 PM

358

CAPÍTULO 12

Actividad

Requisitos

Análisis

Diseño

Tabla
  • Links de descarga
http://lwp-l.com/pdf1789

Comentarios de: Capítulo 12 Ingeniería de software: el proceso para el desarrollo de software (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad