TP.9 Traduccion

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 2

¿Quién realiza la ingeniería de software?

Un componente clave del desarrollo de software es la comunicación entre el cliente y el


desarrollador. Si eso falla, también lo hará el sistema. Debemos entender qué es lo que el
cliente quiere y necesita antes de poder construir un sistema que ayude a resolver el problema
del cliente. Para lograr esto, centremos nuestra atención en las personas involucradas en el
desarrollo de software

El número de personas que trabajan en el desarrollo de software depende del tamaño del
proyecto y del grado de dificultad. Sin embargo, no importa cuántas personas estén
involucradas, los roles desempeñados a lo largo de la vida del proyecto pueden distinguirse.
Así, para un proyecto grande, una persona o un grupo puede ser asignado a cada uno de los
roles identificados; en un proyecto pequeño, una persona o un grupo puede asumir varios roles
a la vez.

Usualmente, los participantes en un proyecto caen en una de tres categorías: cliente, usuario o
desarrollador. El cliente es la compañía, organización o persona que está pagando para que se
desarrolle el sistema de software. El desarrollador es la compañía, organización o persona que
está construyendo el sistema de software para el cliente. Esta categoría incluye a los gerentes
necesarios para coordinar y guiar a los programadores y evaluadores. El usuario es la persona o
personas que realmente utilizarán el sistema: los que se sientan en la terminal o envían los
datos o leen los resultados. Aunque en algunos proyectos el cliente, usuario y desarrollador
son la misma persona o grupo, frecuentemente estos son conjuntos diferentes de personas. La
Figura 1.7 muestra las relaciones básicas entre los tres tipos de participantes.

El cliente, al estar a cargo de los fondos, usualmente negocia el contrato y firma los
documentos de aceptación. Sin embargo, a veces el cliente no es el usuario. Por ejemplo,
supongamos que Wittenberg Water Works firma un contrato con Gentle Systems, Inc., para
construir un sistema de contabilidad computarizado para la compañía. La presidenta de
Wittenberg puede describir a los representantes de Gentle Systems exactamente lo que se
necesita, y ella firmará el contrato. Sin embargo, la presidenta no usará el sistema de
contabilidad directamente; los usuarios serán los contadores y auxiliares contables. Por lo
tanto, es... importante que los desarrolladores entiendan exactamente lo que tanto el cliente
como los usuarios quieren y necesitan. Por otro lado, supongamos que Wittenberg Water
Works es tan grande que tiene su propia división de desarrollo de sistemas informáticos. La
división puede decidir que necesita una herramienta automatizada para hacer un seguimiento
de sus propios costos y cronogramas de proyectos. Al desarrollar la herramienta por sí misma,
la división actúa al mismo tiempo como usuario, cliente y desarrollador.

En los últimos años, la simple distinción entre cliente, usuario y desarrollador se ha vuelto más
compleja. Los clientes y usuarios han estado involucrados en el proceso de desarrollo de
diversas maneras. El cliente puede decidir comprar software comercial listo para usar (COTS,
por sus siglas en inglés) para incorporarlo en el producto final que el desarrollador suministrará
y dará soporte. Cuando esto sucede, el cliente está involucrado en las decisiones sobre la
arquitectura del sistema, y hay muchas más restricciones en el desarrollo. De manera similar, el
desarrollador puede optar por utilizar desarrolladores adicionales, llamados subcontratistas,
quienes construyen un subsistema y lo entregan a los desarrolladores para que sea incluido en
el producto final. Los subcontratistas pueden trabajar junto con los desarrolladores principales
o en un sitio diferente, coordinando su trabajo con los desarrolladores principales y entregando
el subsistema tarde en el proceso de desarrollo. El subsistema puede ser un sistema llave en
mano, donde el código se incorpora en su totalidad (sin código adicional para la integración), o
puede requerir un proceso de integración separado para construir los enlaces entre el sistema
principal y el(los) subsistema(s).

Por lo tanto, la noción de "sistema" es importante en la ingeniería de software, no solo para


comprender el análisis del problema y la síntesis de la solución, sino también para organizar el
proceso de desarrollo y asignar roles apropiados a los participantes. En la siguiente sección,
analizamos el papel de un enfoque de sistemas en la buena práctica de ingeniería de software.

También podría gustarte