You are on page 1of 21

Ingeniería de requerimientos.

• • • • • • • • • 4.1 Obtención de requisitos. 4.1.1 Objetivo. 4.1.2 Metas. 4.1.3 Alcances y limitaciones. 4.1.4 Justificación. 4.2 Técnicas para obtener información sobre el proyecto. 4.3 Especificaciones del proyecto y contrato.

Objetivo Educacional • Aplicará las técnicas de obtención de requerimientos para el desarrollo de un sistema. Actividades de Aprendizaje • Elaborar el documento de especificación de requerimientos del sistema. • Elaborar el contrato de desarrollo del • proyecto.

• •

Para que un proyecto de desarrollo de software pueda tener éxito es crucial realizar una comprensión total de los requerimientos del software a diseñar. En la etapa del análisis y la especificación de requerimientos, tanto el cliente, como el desarrollador juegan un rol fundamental, debido a que el primero se encarga de describir las necesidades que le apremian, mientras que el segundo es el encargado de dar solución a dichas necesidades. Debido a que la especificación es complicada de detallar, desde el comienzo del desarrollo de los sistemas se ha tratado de realizar una adecuada identificación de los requisitos del sistema derivadas de las necesidades de los usuarios. Por todo esto, dentro de la Ingeniería existe una rama que se dedica a la captura de requerimientos, la cual es la Ingeniería de requerimientos cuyo propósito general es desarrollar técnicas para que este proceso fundamental se realice en forma eficiente y segura.

• Etapas de la Ingeniería de Requerimientos
El proceso de Ingeniería de requerimientos posee cuatro etapas: estudio de factibilidad, obtención y análisis de requerimientos, especificación de requerimientos y validación de requerimientos. Cada una de las siguientes etapas se especifica a continuación. a. Estudio de factibilidad El resultado de esta etapa es producir un informe de factibilidad como se ilustra en la figura 1 que consiste, tanto en realizar una recolección y evaluación de la información, como redactar el informe del estudio de la factibilidad. b. Obtención y análisis de requerimientos El objetivo de esta etapa es determinar: el dominio de la aplicación, desempeño del sistema, las restricciones que el sistema debe poseer, entre otras cosas. En esta etapa toman principal importancia los stakeholders, los cuales son aquellas personas con alguna influencia ya sea directa o indirecta en los requerimientos del sistema, es decir, pueden ser los usuarios finales, ingenieros desarrolladores, ingenieros de mantenimiento, etc.

c. Obtención y análisis de requerimientos En esta etapa se establece la especificación de los requerimientos, es decir lo que el sistema debe realizar. Esta etapa es muy complicada debido a que la naturaleza de los problemas es muy compleja.

Es menester destacar que la especificación puede verse como un proceso independiente del modo en que se realice, todo esto con el objetivo de lograr una adecuada implementación de software. Además se han determinado los siguientes principios para representar los requisitos de software.
1. 2. Separar la funcionalidad de la implementación. Desarrollar un modelo de comportamiento de un sistema que comprenda los datos y las respuestas funcionales de un sistema a varios estímulos del entorno. Establecer los componentes del sistema que interactúan con él. Definir el entorno en que operara el sistema. Crear un modelo intuitivo. Considerar que una especificación es una abstracción de una situación real por lo cual será incompleta y existirá a muchos niveles de detalle. Definir un contenido y estructura que sea susceptible a cambios.

3. 4. 5. 6.
7.

d. Validación de Requerimientos • En esta etapa se establecen los requerimientos finales ó completos que definirán el sistema que el cliente desea

4.1.1 Objetivo.
En toda investigación es necesario saber que se pretende conocer, cuales son sus objetivos de conocimiento. Los objetivos deben expresarse con claridad y deben ser susceptibles de ser alcanzados; dividirse en generales y específicos. • • El objetivo general el cual hace referencia al problema planteado en su totalidad y que se va a hacer para investigar el mismo. Los objetivos específicos se refieren a cada parte del problema señalado y a los distintos aspectos a investigar, los que permitirán llegar al conocimiento buscado. El desarrollo del programa comienza con la preparación de una definición de metas y objetivos.

METAS • Reflejan lo que se va a lograr en un tiempo determinado, respondiendo a cuánto se desea alcanzar. La principal característica de una meta es que debe explicar claramente: ¿qué se quiere?, ¿cuánto se quiere? y ¿para cuándo se quiere?. • La fijación de metas hace posible la medición de los resultados y la evaluación del grado de cumplimiento y eficiencia logrados por el responsable. En otras palabras, la meta es la cuantificación del objetivo específico ubicado en el tiempo y lugar. Las metas definen la cantidad y calidad de lo que se desea alcanzar a través de los objetivos específicos, pueden especificarse en términos absolutos o relativos. Las metas deben ser: 􀀹 Realistas: Que se pueden alcanzar con los recursos disponibles. 􀀹 Precisas: Debidamente explícitas. 􀀹 Periódicas: Definir la fecha en la que se desean alcanzar. 􀀹 Medibles: Señalar unidades de medida. 􀀹 Coherentes: Vinculadas con los objetivos.

• • • • • • •

Objetivos. Los objetivos son los bloques que construyen las metas. Son las definiciones específicas de metas, que se alcanzan en la práctica y usualmente son cuantificables.

El alcanzar metas específicas es una manera de medir el progreso hacia los objetivos. Los objetivos, en otras palabras, marcan claramente la cantidad de puntos que aparecen en el camino para alcanzar las metas.
Los objetivos también implican el criterio que se utiliza para medir los pasos. En resumen, las metas son definiciones generales, los objetivos son pasos específicos y los criterios son medidas o maneras de cómo medir los logros. Considere el siguiente ejemplo: Meta — Desarrollo de software Objetivo — Desarrollo de aplicaciones educativas Criterios — Número de aplicaciones desarrolladas

• • • •

Pero las metas y objetivos nunca se desarrollan en el vacío. Se desarrollan en conexión con un sitio específico, con todas sus limitaciones y posibilidades. Por eso, se deben tener presente esas características del software durante todo el proceso, refinando la planificación a medida que se aprende más con cada paso.
Sin embargo, se debe recordar que la planificación de sitios es fundamentalmente un plan para producir cambios. Esto trae tres consideraciones que afectarán el desarrollo de metas y objetivos: los propósitos para los cuales los cambios se implementan, los factores (físicos, sociales, culturales, ambientales, etc.) que afectan el sitio y los efectos que los cambios tendrán para el futuro del sitio. Primero, se describirá en términos generales como se prepara una definición de metas y objetivos. El propósito mismo del proyecto ayuda a definir esa afirmación. Por lo tanto, se ha incluido la discusión del propósito en la sección de metas. Después de la explicación de la interacción de metas y objetivos se han incluido secciones separadas de factores y efectos para ayudar a considerar más en profundidad cómo estas se relacionan e interactúan con el desarrollo de metas y objetivos.

• • • •

4.1.2 Metas.
Metas. Las metas son definiciones o conceptos generales que se derivan del propósito o de la intención del proyecto. Los propósitos del proyecto explican las razones por las cuales el proyecto se está llevando a cabo. Estas están típicamente unidas a las necesidades humanas. Considere los siguientes propósitos:

Casi todos los proyectos tienen propósitos múltiples. Ellos usualmente se expresan más específicamente en las metas del mismo.
Una meta describe el camino o dirección que un proyecto tomará para alcanzar sus propósitos o resolver un problema.

Diagrama de flujo de metas y objetivos.

4.1.3 Alcances y limitaciones.
El alcance define el área o lugar en concreto donde se aplicara el proyecto, mientras que la limitación define dentro de este lugar, la función específica de la actividad a realizar. Alcances. El sistema facilita la gestión de algunos procesos tales como la contratación y el registro de personal, concentrando la información sobre los puestos y áreas de trabajo; los horarios de los trabajadores, la asistencia y los movimientos del personal en general; los datos necesarios que servirán para el cálculo de la nómina del personal que corresponde a cada semana de labores ordinarias, tomando en cuenta los conceptos correspondientes de prestaciones y deducciones (mencionadas cada parte de ellas en el Marco Teórico); y, posteriormente la emisión de los recibos de nómina impresos de la forma en que la empresa los maneja. Limitaciones. Uno de los limitantes más destacados es la falta de conocimiento en el área de informática para poder usar el sistema adecuadamente, dando como resultados el que no se utilice este sistema para lo que fue creado originalmente o que no se utilice a su máxima capacidad; que al usarse se sigan haciendo los mismos gastos innecesarios provocando las mismas perdidas o inclusive aun más, también que se haga el mismo papeleo que no sirve más que para llenar archiveros de información que puede estar almacenada de manera digital en una base de datos y concentrada en pequeñas cantidades de papel.

4.1.4 Justificación.

• JUSTIFICACION: Fundamentación de las razones del por que es importante y trascendente la realización del proyecto, destacando los beneficios que se obtendrán al ser solucionado el problema.

4.2 Técnicas para obtener información sobre el proyecto
Difundir información lo más completa y extensa posible sobre los objetivos, métodos, procedimientos y herramientas del equipo de planificación a todos los niveles de los entes implicados, comenzando preferentemente por los más elevados. Se recurrirá a reuniones, conferencias, cursillos, folletos, manuales, demostraciones, etc. El objetivo es sensibilizar a todos los participantes y hacerles comprender los fines perseguidos. 1. Descomponer el proyecto en partes o subproyectos coherentes. 2. Obtener datos sobre cada una de las partes, relativos a descripción del subproyecto, su funcionalidad, actividades principales que comprende su realización, plazos de realización, problemas principales probables o posibles, etc. La forma de obtener esta información es a través de la información y documentación existente relativa a otros proyectos semejantes y que sin duda habrá sido recogida en la fase de definición. 3. Elegir una nomenclatura para la codificación de la información que va a obtenerse; en especial para decidir la codificación de las actividades. Siendo habitual el empleo de un ordenador en forma interactiva, las características del programa disponible en el mismo influirán grandemente en dicha codificación. 4. Celebrar entrevistas con los diferentes responsables de la construcción para recabar la información correspondiente a la descomposición en actividades, precedencias y duración. 5. Establecer actas de las entrevistas, en forma muy somera, en las que se indiquen las conclusiones a que se ha llegado. De hecho estas conclusiones se pueden reflejar de dos formas:

.

Recolección de información
Primarias
Personas Hechos

FUENTES
Secundarias Encuesta Entrevista

Material Impreso Cuestionario

Personal
Telefónica Correo Internet

TÉCNICAS
Observación Internet

Personal - Directa Con medios electrónicos

4.3 Especificaciones del proyecto y contrato.

• Los requerimientos/requisitos de un sistema • describen los servicios que ha de ofrecer el sistema y las restricciones asociadas a su funcionamiento. • Requerimientos: • Propiedades o restricciones determinadas de forma precisa que deben satisfacerse. • Requerimientos funcionales: • Expresan la naturaleza del funcionamiento del sistema (cómo interacciona el sistema con su entorno y cuáles van a ser su estado y funcionamiento). • NOTA: A veces, también es conveniente indicar lo que no hará el sistema.

Requerimientos no funcionales:

Restricciones sobre el espacio de posibles soluciones.
Rendimiento del sistema: • Fiabilidad, tiempo de respuesta, disponibilidad… Interfaces: • Dispositivos de E/S, usabilidad, interoperabilidad… Proceso de desarrollo: • Estándares, herramientas, plazo de entrega…

Los requisitos funcionales definen:
qué debe hacer un sistema.

Los requisitos no funcionales definen :
cómo debe ser el sistema.

A los requisitos no funcionales se les suele llamar coloquialmente “cualidades” del sistema [“-ilities” en inglés”] y pueden dividirse en dos categorías: • • Cualidades de ejecución,
como la seguridad o la usabilidad, observables en tiempo de ejecución.

Cualidades de evolución,
como la “estabilidad”, mantenibilidad, extensibilidad o escalabilidad, determinadas por la estructura estática del software.

Los requerimientos… se suelen especificar en lenguaje natural, se expresan de forma individual (p.ej. esquemáticamente), se organizan de forma jerárquica (a distintos niveles de detalle), a menudo, se numeran (para facilitar su gestión), Los requerimientos han de indicar… lo que se espera que haga el sistema (¿qué?), su justificación (¿por qué ha de ser así? ¿quién lo propuso?) y, en su caso, los criterios de aceptación que sean aplicables (¿cómo se verifica su cumplimiento?).

EJEMPLO: REQUERIMIENTOS NO FUNCIONALES Interfaces Hardware: El sistema se debe implementar sobre la infraestructura existente en las aulas de prácticas de la escuela. Software: No existe posibilidad de adquirir licencias de software. La aplicación deberá funcionar sobre linux.

• •

TIPOS DE CONTRATO Un contrato es un vehículo para establecer buenas comunicaciones entre el cliente y el contratista y llegar a una comprensión mutua con claras expectativas que aseguren el éxito del proyecto. Es un convenio entre el contratista, quien acepta proporcionar un producto o servicio (productos o servicios por entregar) y el cliente, quien está de acuerdo en pagarle una cierta cantidad a cambio de ello. El contrato tiene que exponer con claridad las partidas que se espera que proporcione el contratista. También especificará que el resultado del proyecto cumplirá con ciertas especificaciones, o que se proporcionará cierta documentación. El contrato también tiene que precisar las condiciones en las que el cliente hará pagos al contratista. Básicamente son dos los tipos de contratos que existen: de precio fijo y de reembolso del costo.

• •

• •

CONTRATOS DE PRECIO FIJO En un contrato de precio fijo, el cliente y el contratista acuerdan un precio para el trabajo propuesto. El precio permanece fijo a menos de que el cliente y el contratista estén de acuerdo en cambios, este tipo de contrato proporciona bajos riesgos para el cliente, puesto que éste no pagará más que el precio fijo, con independencia de cuánto cueste en realidad el proyecto. Sin embargo, un contrato de precio fijo es de alto riesgo para el contratista, porque si el costo de terminar el proyecto es superior a lo que se planeó originalmente, él tendrá una utilidad inferior a la prevista o incluso perderá dinero. Los contratos de precio fijo son los más adecuados para proyectos que estén bien definidos y que representen poco riesgo: Entre los ejemplos se incluye la construcción de una casa modelo estándar, y el diseño y la producción de un folleto para el que el cliente ha proporcionado especificaciones detalladas con relación al formato, contenido, (biografías, color, número de páginas y número de ejemplares. CONTRATOS DE REEMBOLSO DEL COSTO En un contrato de reembolso del costo, el cliente acepta pagar al contratista todos los costos reales (mano de obra, materiales, etc.), con independencia de la cantidad, más alguna utilidad acordada. Este tipo de contrato representa un alto riesgo para el cliente, puesto que los costos del contratista pueden exceder el costó propuesto —como en el caso en que un servicio de reparación de automóviles proporciona un estimado para reparar una transmisión, pero presenta una cuenta final que es más alta que el estimado original—. Por lo general, en los contratos de reembolso del costo el cliente requiere que, durante el proyecto, el contratista compare periódicamente los gastos reales con el presupuesto presentado y que vuelva a preparar un pronóstico de cuál será el costo a la terminación, comparándolo con el precio original propuesto. Esto le permite al cliente llevar a cabo la acción necesaria si parece que el proyecto superará los costos originales del presupuesto presentado. Este tipo de contrato tiene poco riesgo para el contratista, porque todos los costos serán reembolsados por el cliente. Y no puede perder dinero. Sin embargo, si los costos del contratista exceden el presupuesto, resultará dañada su reputación, lo que a su vez daña sus posibilidades de obtener contratos en el futuro.

• •

• • •

CLAUSULAS DEL CONTRATO A continuación se presentan algunas cláusulas que se pueden incluir en los contratos de proyectos: 1. Exposición falsa de los costos. Afirma que es ilegal para el contratista exagerar las horas o los costos gastados en el proyecto.

2. Aviso de exceso en los costos o demoras en el programa. Presenta las circunstancias bajo las cuales el contratista tiene que notificar de inmediato al cliente de cualquier exceso real o previsto en los costos o en las demoras del programa, presentando por escrito tanto las razones como un plan para tomar una acción correctiva para hacer que dé nuevo los costos queden dentro del presupuesto o que el programa vuelva a estar de acuerdo con lo previsto.
3. Aprobación de los subcontratistas. Señala cuándo el contratista necesita obtener la aprobación por adelantado del cliente, antes de contratar a un subcontratista para que realice una tarea del proyecto. 4. El equipo o la información a proporcionar por el cliente. Relaciona las partidas (por ejemplo, las piezas para realizar pruebas) que proporcionará el cliente al contratista durante el proyecto y las fechas en que las tendrá a su disposición.