CAPITULO
CompPRENSION DE
LOS REQUERIMIENTOS
Concepros cLave Ee rrequerimientos de un problema es una de las tareas mas diffciles que enfrenta
dais as el ingeniero de software. Cuando se piensa por primera vez, no parece tan dificil desarro
reget 108 lar un entendimiento claro de los requerimientos. Después de todo, 2acaso no sabe el
ues bo. N15 cliente lo que se necesita? No deberian tener los usuarios finales una buena comprensin de
laberain 107
las caracteristicas y funciones que le darn un beneficio? Sorprendentemente, en muchas ins
comapin 102 tancias la respuesta a estas preguntas es “no”. E incluso si los clientes y los usuarios finales
Aespingu defen explican sus necesidades, éstas cambiarn mientras se desarrolla el proyecto.
de cided ; 7
‘ En el prélogo a un libro escrito por Ralph Young [YouO1] sobre las pricticas eficaces respecto
de los requerimientos, escribi lo siguiente.
eneitiniin aq 4€ 108 requerimientos, escribt lo siguient
indagcin
Es la peor de las pesadillas, Un cliente enta ala ofcina, toma asiento, lo mira a uno fijamente a los
indagein de os ojos y dice: “Sé que cree que entiende lo que digo, pero lo que usted no entiende es que lo que digo
requrinietos 108 no es lo que quiero decir Invariablemente, esto pasa cuando ya est avanzado el proyecto, despues
ings de de que se han hecho compromisos con los plazos de entrega, que hay reputaciones en juego'y mucho
Eee dinero invertido,
mea “
patiete ‘mos de obtener los requerimientos de nuestros clientes. Tenemos problemas para entender la infor-
fore ies 8
probes tabp..--.112 Ce dediguemos may poe
eee enlugarde establecer mecanismos p
Ts fundamento sido para el sistema o s
aiden deo
reqvrinenos
hay solucin,
LET
PEs
fares
Qué es? Antes de comenzar cualquier fra-
Boje tecnico es una buena idea oplicar un
conjunio de fareas de ingenieria a los requeri-
mienios. Estas llevarén a la comprensién de
cudl seré efecto que tendré el software en el negocio,
qué es lo que quiere el cliente y cémo interactvarén los
usuarios finales con el software.
aQuien To hace? Los ingenieros de software (que en el
‘mundo de las tecnologias de informacién a veces son Har
rmados ingenieros de sistemas 0 analistas) y todos los
demés partcipantes del proyecto (gerentes, clientes y
‘svaros) intervienen en la ingenieria de requerimientos.
aPor qui sportante? Disefar y constuir un elegan-
fe programa de cémpute que resuelva el problema equive-
cedo no sotisface las necesidades de nadie. Por es0 es
importante entender le que el cliente desea antes de
comenzar a disefar y a constvir un sistema basade en
compuladora
eCuéles son los pases? La ingeniria de requerimientos
‘comienza con la conceptién,tarea que define el alcance y
la naturaleza del problema que se va a resolver. Va segui
dda de la indagacién, labor que ayuda a les participates
riacién que obtenemos, Es frectente que tegi
stemos los requerimientos de manera desorganizada y
‘empo a verficar lo que registramos, Dejamos que el cambio nos controle
conttolaroa él. En pocas palabras, fallamos en establecer un
Awate. Cada uno de los problemas es dif. Cuando se com-
binan, el panorama es atemorizador aun para los gerentes y profesionales mas experimentados, Pero
‘a definir lo que se requiere. Después sigue la elaboracién,
donde se refinan y modifican los requerimientos basicos
‘Cuando los partcipantes definen el problema, fiene lugar
tuna negeciacién: gcudles son los prioridades, qué es lo
‘esencial, cudindo se requiere? Por dhimo, se expecifica el
problema de algin mode y luego se revsa 0 valida para
‘garantizar que hay coincidencia entre la comprensién que
Usted fiene del problema y la que tienen los partcipantes,
aCual es el producto final? El objetivo de los requer
mientos de ingenieria es proporcionar a todas las partes
Un entendimiento escrito del problema. Esto se logra por
medio de varios productos del trabajo: exeenarios de uso,
listas de funciones y de caraceristicas, modelos de reque
Fimientos 0 especifcaciones
4Cémo me asegure de que le hice bien? Se revscn
on ls parce os produces cel roc de tin
nieria de requerimientos a fin de asegurar que lo que se
eters et lel eke clren cet on cic. Act
eho una cher lex cess cambio eum deve
le que todas las partes esén de acuerdo, y seguirén cam:
biande dorante todo el proyeco.
101ci
102
PARTE DOS MODELADO
Es razonable afirmar que las técnicas que se estudiarn en este capitulo no son una “solu:
cin’ verdadera para los retos que se mencionaron, pero si proven de un enfoque sélide para
enfrentarlos,
5.1 _INGENteRIA DE REQUERIMIENTOS 0
“La pare més fill oastrir
un trad soars dc
dic qué conti Nngua parte
el raj vada ent ol is-
‘ema reste sd se hace
inal, Nod es més diel de
coreg después”
Fred Brooks
is
esl ura base él pore
seo yla conta. Sn ta
sof esa Hane cha
srobbid do ota as
sociales dl rs,
Cone
pe hacer pond
rear os req yon
odours dre
még de iso
“tassels des dese
nrmes el sofvare poo
ener se vishmbran ens,
tes primers meses del iico
dd proyeco”
oper Jones
El diseflo y construccion de software de computadora es diftil, creativo y sencillamente diver
Lido, En realidad, elaborar software es tan atractivo que muchos desarrolladores de software
quieren ir directo a él antes de haber tenido el entendimiento claro de lo que se necesita, Argu-
‘mentan que las cosas se aclararan a medida que lo elaboren, que los participantes en el proyecto
podrén comprender sus necesidades s6lo después de estudiar las primeras teraciones del soft
‘are, que las cosas cambian tan rapido que cualguler intento de entendet ls requetimientos
en detalle es una pérdida de tiempo, que las utilidades salen de la produccion de un programa
que furcione y que todo lo demas es secundario. Lo que hace que estos argumentos sean tan
secluctoreses que tienen algunos elementos de verdad ! Pero todos son erténeos ypueden levar
un proyecto de software al fracaso,
Elespeciro amplio de tareas y técnicas que llevan a entender los requerimientos se denomina
Ingenieria de requerimientos. Desde la perspectiva del proceso del software, la ingenieria de re-
querimientos es una de las acciones importantes de la ingenieria de software que comienza
durante la actividad de comunicaci6n y continda en la de modelado. Debe adaptarse a las ne-
cesidades del proceso, del proyecto, del producto y de las personas que hacen el trabajo.
La ingenieria de requerimientos tiende un puente para el disefio y la construccion. Pero,
ad6nde se origina el puente? Podria argumentarse que principia en los pies de los participantes
enel proyecto (por ejemplo, getentes, clientes y usuarios), donde se definen las necesidades del
negocio, se describen los escenarios de uso, se delinean las funciones y caracteristicas y se
Identifican las restricciones del proyecto, Otros tal vez sugieran que empieza con una definicion.
mas amplia del sistema, donde el software no es ms que un componente del dominio del sis
tema mayor. Pero sin importar el punto de arranque, el recortide por el puente lo leva a uno
muy alto sobre el proyecto, lo que le permite examinar el contexto del trabajo de software que
debe realizarse; las necesidades especificas que deben abordar el disefio y la construccién; las
prioridades que gufan el orden en el que se efectita el trabajo, y la informacién, las funciones y
los comportamientos que tendran un profundo efecto en el disefio resultante
La ingenierfa de requerimientos proporciona el mecanismo apropiado para entender lo que
desea el cliente, analizar las necesidades, evaluar la factibilidad, negociar una solucién razona~
ble, especificar la solucién sin ambigtiedades, validar la especificacién y administrar los reque.
rimientos a medida de que se transforman en un sistema funcional [Tha97]. Incluye siete tareas
diferentes: concepcién, indagacion, elaboracion, negociacion, especificacién, validacién y ad:
ministracién. Es importante notar que algunas de estas tareas ocurren en paralelo y que todas
se adaptan a las necesidades del proyecto,
Concepeién. {Cémo inicia un proyecto de software?