domingo, 15 de septiembre de 2013

METODOLOGIAS ESTRUCTURADAS

Introducción

El análisis de requerimientos de un sistema de software es una fase importante dentro del plan de desarrollo de un software. Uno de los puntos más importantes a tomar en cuenta es el flujo de datos y las entidades externas que actúan en el sistema así como los diversos procesos con los que se relacionan para que este funcione de manera óptima.
Una de las técnicas para analizar estos requerimientos, es el análisis estructurado, el cual se auxilia de diversos diagramas de flujo de datos los cuales ilustran las interacciones que existe entre los procesos, entidades externas y almacenamiento de datos del sistema que se está trabajando.
La orientación de las metodologías estructuradas se dirige hacia los procesos que intervienen en el sistema a desarrollar, es decir, cada función a realizar por el sistema se descompone en pequeños módulos individuales.
Es más fácil resolver problemas pequeños, y luego unir cada una de las soluciones, que abordar un problema grande.
Es las metodologías estructuradas las principales herramientas utilizadas son:
Diagramas de flujo de datos (DFD): Representan la forma en la que los datos se mueven y se transforman. Incluye:
–Procesos
–Flujos de datos
–Almacenes de datos

Los procesos individuales se pueden a su vez descomponer en otros DFD de nivel superior.

Especificaciones de procesos: Es lo que se escribe para uno de los procesos definidos en el DFD cuando no se puede descomponer más. Puede hacerse en pseudocódigo, con tablas de decisión o en un lenguaje de programación.

Diccionario de datos: Son los nombres de todos los tipos de datos y almacenes de datos junto con sus definiciones

Diagramas de transición de estados: Modelan procesos que dependen del tiempo

Diagramas entidad-relación: Los elementos del modelo E/R se corresponden con almacenes de datos en el DFD. En este diagrama se muestran las relaciones entre dichos elementos

Para ayudar a una mejor comprensión a continuación respondemos algunas preguntas que podrían presentarse muy a menudo:

. ¿Cuáles son los componentes principales de un DFD?
·  Proceso.- Se le conoce así al primer componente de un DFD. El proceso muestra una parte del sistema que transforma entradas en salidas.
·  Flujo.- Un flujo se representa gráficamente por medio de una flecha que entra o sale de un proceso. El flujo se usa para describir el movimiento de bloques o paquetes de información de una parte del sistema a otra.
·  Almacenes.- El almacén se utiliza para modelar una colección de paquetes de datos en reposo. Se denota por dos líneas paralelas.
· Terminador.- Gráficamente se representa como un rectángulo. Los terminadores representan entidades externas con las cuales el sistema se comunica.

¿Cuál es el propósito de un DFD?
·         Mostrar de forma visual el análisis que se hace sobre un sistema de software que abarca el flujo de datos que existen entre los procesos, entidades externas y almacenes que conforman al software.

¿Cuál es la diferencia entre un diagrama de flujo  y un DFD?
·         En el diagrama de flujo se especifica los procesos y subprocesos así como los pasos a seguir de un algoritmo o bien de un sistema que se va a implementar. Mientras que en el diagrama de flujo de datos se trabaja con las entidades externas identificadas y con los procesos que tengan flujo de datos entre ellos. Una diferencia más es la simbología utilizada, pues en los DFD solo se limita a usar rectángulos, flechas y línea paralelos, mientras que en un diagrama de flujo se auxilia de más figuras que representan distintos procesos que se ejecuten en el sistema.
¿Qué otras herramientas además de los DFD son representativas del paradigma estructurado?
·         Diccionario de datos
·         Modelo Entidad-Relación
·         Especificación de proceso

Ejemplo

A continuación resolveremos un problema con ayuda de las metodologías estructuradas, de este modo podremos saber como emplearlas a nuestro proyecto:


Sistema de un videoclub

Un videoclub, desea incorporar sus productos en un sistema de software automatizado, que incluya los procesos de:
• Alquiler de películas
• Administración de clientes y
• Gestión de pedidos a los proveedores.

El funcionamiento requerido del sistema es el siguiente:
Clientes y alquiler
Un cliente del videoclub alquila los ejemplares que desee y los hace de conocimiento del encargado.
Para alquilar debe comprar unos bonos que indican, por un lado, el crédito (o número de alquileres), y por otro el período de alquiler, que puede ser de 24 horas, 48 horas y semanales.
Un cliente puede comprar varios bonos del mismo tipo, en cuyo caso se acumulan sus créditos.
Cada alquiler de un ejemplar relativo a una película consume un crédito sobre el tipo de bono elegido por el cliente. Una vez que el sistema comprueba que el cliente dispone de crédito respecto al pedido de alquiler, lo acepta emitiendo un comprobante al cliente en el que se especifican los ejemplares solicitados y la fecha de su devolución, indicado además el crédito disponible.
Clientes y devolución
Los clientes realizan la devolución de los ejemplares alquilados, que puede no estar completa, es decir, devuelve menos ejemplares de los solicitados en un alquiler.
El sistema no aceptará nuevos alquileres de aquellos clientes que no hayan devuelto todos los ejemplares.
El sistema debe calcular una sanción económica respecto a todos los ejemplares entregados fuera de plazo, cargando un costo por ejemplar y día.
Proveedores
El sistema realiza pedidos de películas a los proveedores.
Estos pedidos pueden ser sobre películas nuevas o sobre aumento de ejemplares de películas existentes en el videoclub. Los proveedores pueden satisfacer cada pedido en una o varias entregas.
Cuando el sistema tiene nuevos ejemplares o aumenta de ejemplares debe asignar un código a cada ejemplar, que además identifica a cada película.
Por cada pedido, el proveedor emite una factura, que el videoclub puede pagar en uno o varios pagos.

Administradores del videoclub:
• Indican al sistema los datos de los proveedores con los que va a trabajar el videoclub.
• Determinan los pedidos a los proveedores y las cantidades pagadas de cada factura.
• Establece los datos de los tipos de bono (crédito y período, coste, etc.) con los que trabaja el videoclub.
Para gestionar el proceso, los administradores del Videoclub necesitan un conjunto de reportes:
• Reporte de demanda de películas: que le indica el porcentaje de utilización de cada película en un período, teniendo en cuenta su número de ejemplares.
• La facturación mensual: el resultado de lo que nos han facturado los proveedores al mes.
• Las entregas de películas pendientes: son las películas que quedan por entregar de cada pedido.
• Las facturas pendientes de pago: que indica las facturas que el videoclub no ha pagado todavía o que están pagadas de forma parcial.

Solución

Planteamiento del problema
El videoclub necesita de un software que lleve a cabo los controles necesarios sobre diversos módulos como son el registro de los pedidos y la renta de sus películas así como el control sobre los usuarios que quieran alquilar títulos. Se necesita tener de manera oportuna y organizada esta información para que el establecimiento opere con un mayor control sobre sus activos.

·         Entidades externas: Cliente, proveedor y administrador
·         Flujo de datos:
     Compra de tickets para alquiler
     Movimiento de alquiler de película
     Devolución de alquileres.
     Registro de pedidos.
     Registro de nuevas adquisiciones.
     Facturación mensual.
     Reporte de demanda de películas.
·        Procesos:
     Registro de alquiler, emisión de ticket.
     Asignación de código a películas.
     Emisión de facturas por concepto de nuevas adquisiciones.
     Validación para el alquiler de películas.
·        Almacenamiento:
     Clientes
     Proveedores
     Películas


Reglas de negocio
RN1. Un cliente puede alquilar los ejemplares que desee siempre y cuando no deba películas ni dinero por multas al videoclub.
RN2. Para que un cliente pueda alquilar una película debe comprar un bono, en el cual se le indica el número de alquileres del que dispone y el periodo válido del alquiler, éste puede ser de 1 día, 2 días o semanal.
RN3. Un cliente puede comprar varios bonos del mismo tipo e ir acumulando sus créditos (número de alquileres).
RN4. Si un cliente ya cuenta con un bono y desea alquilar otra película será necesario contar con suficiente crédito para poder llezvársela, de lo contrario deberá comprar otro bono. Cada película tiene un crédito establecido.
RN5. Si no hay ningún problema acerca de los bonos y el crédito, el cliente puede llevarse la película y se le hará entrega de un ticket en el cual se le especifica la fecha de salida de la película, la fecha de regreso, el total de ejemplares que se lleva y el total de créditos del que dispone.
RN6. Si el usuario no regresa los ejemplares en tiempo y forma se le sancionará con una multa por incumplimiento, éste se calculará con respecto a los días de retraso y al número de ejemplares.
RN7. El videoclub puede realizar pedidos de ejemplares al proveedor ya sea por aumento de unidades existentes o sobre películas nuevas que deberá pagar conforme al convenio establecido con el proveedor.
RN8. Cada película del videoclub debe contar con un código para identificarla.
RN9. Al administrador se le debe de entregar un reporte de demanda de películas, facturación mensual, entregas de películas pendientes y facturas pendientes de pago por parte del videoclub. Este reporte debe ser por periodos no largos a un mes. Y él dará un reporte informativo en base a la información anterior en tiempo y forma de los movimientos del videoclub.

Requisitos funcionales
RF1. El sistema debe de registrar los alquileres de películas así como su devolución de las mismas.
RF2. El sistema genere bonos que puedan ser vendidos a los clientes para poder realizar un alquiler.
RF3. El sistema debe generar un comprobante cada vez que sea alquilada una película al cliente, el cual contenga información relevante acerca del alquiler.
RF4. El sistema comprueba que el cliente dispone de crédito respecto al pedido de alquiler.
RF5. El sistema no aceptará nuevos alquileres de aquellos clientes que no hayan devuelto todos los ejemplares.
RF6. El sistema debe calcular una sanción económica respecto a todos los ejemplares entregados fuera de plazo, cargando un costo por ejemplar y día.
RF7. El sistema realiza pedidos de películas a los proveedores.
RF8. Cuando el sistema tiene nuevos ejemplares o aumenta de ejemplares debe asignar un código a cada ejemplar, que además identifica a cada película.
RF9. Reporte de demanda de películas.
RF10. Facturación mensual de los proveedores.
RF11. Informe de las entregas de películas pendientes.
RF12. Total de las facturas pendientes de pago.

Requisitos funcionales
RNF1. Debe ser rápido.
RNF2. La interfaz debe tener un color formal, gris por ejemplo.
RNF3. El formato de los comprobantes debe contener solo la información necesaria y un tamaño pequeño.
RNF4. Deberá ser desarrollado para Windows.

Diagrama de flujo de datos



Diagrama de contexto

Diagrama Entidad-Relación

Conclusiones 

Conclusiones Itzel

Las buenas herramientas de modelado suelen emplear una notación sencilla, con pocas reglas, símbolos y vocabulario nuevo que el usuario tenga que aprender. El diagrama de flujo de datos es una herramienta gráfica de modelado. Permite visualizar un sistema como una red de procesos funcionales conectados entre sí. También se encuentra el modelo entidad relación, el cual ya hemos trabajado con él en el modelado de los datos, a diferencia del DFD que modela procesos o funcionalidad del sistema.  El diccionario de datos es muy importante ya que si quisiéramos saber a qué hace referencia un dato acudimos hacia el diccionario para saber su significado, como cuándo estábamos en la primaria y hacíamos uso de él. Su formato es distinto pero sirve para poder hablar en el mismo lenguaje y no perderse por ejemplo en el significado de un DFD o un ER. Vimos una parte sobre la especificación del proceso mediante pseudocódigo, que prácticamente es código descrito de la forma sencilla ya solo para implementarlo.

Conclusiones Mitchel

Las herramientas que pusimos en práctica son de gran ayuda para la planeación y construcción de un proyecto de software, ya que se analiza cada sección del problema y se va organizando de manera gráfica en un DFD para que así se tenga más clara la manera en que el sistema va a funcionar y cómo este debe ser desarrollado.
Nunca se debe de perder de vista los objetivos y requisitos funcionales del programa, así mismo se debe de ser cuidadoso con los requisitos no funcionales, se debe de identificar de manera precisa todas las entidades y los roles y funciones que éstas desempeñan en el sistema. Para todo esto nos ayudan los diferentes diagramas aplicados en esta práctica.

Conclusiones Alan

Para el proceso de construcción del software es necesario reconocer las actividades que se aplicaran a este, y efectuarlas de manera ordenada y precisa, el objetivo de las metodologías es estructuras las diferentes fases del desarrollo, para así un mismo grupo de personas pueda trabajar simultáneamente. Podemos decir así que la metodología estructurada es la primera aproximación al problema.
Las metodologías estructuradas están orientadas a procesos, en otras palabras, se centra en especificar y descomponer la funcionalidad del sistema. Por ello hacen uso de herramientas como DFD, Especificaciones de procesos, Diccionarios de datos, entre otras. Las cuales nos ayudan de gran manera a comprender los principales procesos, las funcionalidades y actividades  de una manera sencilla,  incrementando la productividad en el desarrollo e implantación de nuestros sistemas.

martes, 3 de septiembre de 2013

Introducción a la gestión de procesos de software

Parte A) Definiciones.



1. Requerimientos.

Los requerimientos son declaraciones que identifican atributos, capacidades, características y/o cualidades que necesita cumplir un sistema (o un sistema de software) para que tenga valor y utilidad para el usuario. En otras palabras, los requerimientos muestran qué elementos y funciones son necesarias para un proyecto.

2. Documento de especificación de requerimientos.

Es un documento que contiene las especificaciones  de la funcionalidad del sistema y sus restricciones, el dominio del problema, un glosario, a quién va dirigido, su objetivo.
Implica la culminación de la tarea del análisis de sistemas. Dicha especificación se logra estableciendo una completa descripción de las clases que colaboran, su función y el comportamiento del sistema.
Debe lograr 3 objetivos:
  • §  Describir lo que requiere el usuario
  • §  Establecer una base para la creación de un diseño de software
  • §  Definir un conjunto de requisitos que se puedan validar una vez que se ha construido el software.

De esta manera, se logran establecer las bases para un buen diseño de sistemas, documentando una descripción del problema que el software va a resolver al definir las clases principales que lo componen, así como los atributos y métodos, además de las relaciones que existen entre ellas.

3. Riesgo.

Es un problema potencial que puede ocurrir o no, su análisis ayuda al equipo de SW a comprender y manejar la incertidumbre. El riesgo puede ser anticipado, identificado y analizado durante la planeación del proyecto.
Cuando se analizan los riesgos es importante cuantificar el grado de incertidumbre y de pérdida asociado con el riesgo.



4. Administración del riesgo.



Al tomar decisiones durante esta etapa acerca de dichas cuestiones, lo primero y más importante que debe considerar son los riesgos de su proyecto. ¿Cuáles son los factores que pueden descarrilarlo? Cuanto mayor sea el riesgo, habrá que prestarle más atención.
1. Riesgos de requerimientos. ¿Cuáles son los requerimientos del  sistema? El gran peligro es que se construya el sistema erróneo, un sistema que no haga lo que quiere el cliente. Durante la etapa de elaboración, usted deberá entender bien los requerimientos y sus prioridades relativas.
2. Riesgos tecnológicos. ¿Cuáles son los riesgos tecnológicos que habrá de enfrentar? Plantéese las siguientes preguntas:
a. Va a usar objetos. ¿Tiene ya la suficiente experiencia en el trabajo?
b. Se le ha aconsejado que use Java y la Web. ¿Qué tan bien funciona esta tecnología? ¿Puede en realidad proporcionar las funciones que los usuarios necesitan?
3. Riesgos de habilidades. ¿Puede conseguir la asesoría y los expertos que necesita?
4. Riesgos políticos. ¿Existen fuerzas políticas que se puedan interponer en su camino y afectar seriamente el proyecto?
5. Gestión del proceso de desarrollo de sistemas de software.
Actividad que se encarga de planificar, organizar, administrar, dirigir y controlar, los recursos así como el tiempo y los avances del proyecto que va generando, así como las actividades que implica el desarrollo del sistema y las subactividades, optimizando así el trabajo y generando resultados más favorables.
6. Planeación de los recursos del proyecto de software, recursos, recursos humanos, procesos y metodologías, y herramientas y equipo.

Enfocar la atención en las metas del proyecto, riesgos potenciales y problemas que puedan interferir  con estas, determinando el curso que se seguirá a lo largo de la duración del proyecto, determinando las actividades y el tiempo en que se llevaran a cabo, la administración de recursos, y las herramientas que se utilizaran en este.



 7.- Cronograma de actividades o calendario.

Designa la programación predeterminada de los trabajos para todos los recursos asignados a un proyecto.

Los trabajos son los esfuerzos que se realizan para cumplir con cada tarea asignada en el proyecto. A la vez las tareas se pueden clasificar en:
·        Tarea predecesora: es la que debe de comenzar o terminar antes de que pueda comenzar alguna otra.
·        Tarea sucesora: Es una area que depende del comienzo o fin de otra tarea precedente.

Se debe llevar una planeación para que las tareas sean comenzadas y terminadas en el tiempo adecuado de acuerdo a la naturaleza del proyecto.

Para elaborar una buena planeación se recomienda:

·        Listar actividades en una columna.
·        Calcular el tiempo para cada actividad.
·        Indicar los tiempos en forma de barras horizontales.
·        Ordenar cronologicamente las tareas.
·        Ajustar los tiempos o las secuencias de las actividades.

8.-Gráfica de Gantt

9.-CPM o Ruta crítica

Es utilizado cuando se tiene con certeza la duración de cada actividad. Es posible determinar cuanto tiempo puede retardarse una actividad pero sin retardar al proyecto.

10.-PERT

Con PERT el tiempo de duración de las actividades no se conoce con exactitud, de tal forma, PERT emplea una distribución de probabilidad para determinar los tiempos de culminación. La incertidumbre que se tiene se calcula por medio de la desviación estandar de cada actividad.


La distribución de probabilidad se define:

1.     Una probabilidad pequeña de alcanzar el tiempo más optimista, simbolizada por a.
2.     Una probabilidad pequeña de alcanzar el tiempo más pesimista, simbolizada por b.
3.     Un solo tiempo más probable que estaría para moverse libre entre los dos extremos, es decir entre a y b. Simbolizado por m.

 T = (a + 4m +b)/6

También es necesario conocer la variación en los tiempos inciertos de las actividades. Esto se calcula mediante la desviación estándar de los tiempos de actividad.

DE = (b-a)/6

Redes
Las redes muestran una secuencia a seguir y las relaciones de precedencia de las actividades, ordenando de manera general las diferentes etapas del proyecto.

Una red se representa por medio de un diagrama que se conforma por un conjunto de nodos que se conectan por lineas llamadas arcos.


Las actividades se representan por arcos dirigidos y los nodos se usan para representar la culminación de un grupo de actividades.

Para entender como se representan las relaciones, supongase que la actividad A precede a una actividad B.


Ahora supongase que las actividades A y B deben concluirse antes de que la actividad C pueda iniciar.

Finalmente supongamos que la acitividad A precede a B y a C


De tal suerte que dada una lista de actividades, y las actividades antecedentes, un diagrama de red puede construirse con base a las siguientes reglas:

·        Existe un nodo de inicio que representa el comienzo del proyecto.
·        Existe un nodo final que representa la culminación del proyecto.
·        Deben de enumerarse los nodos del diagrama de tal suerte que el nodo inicial siempre tendra un numero menor que el nodo final.
·        Una actividad no puede ser representada por mas de un arco dentro de la red.
·        Dos nodos pueden conectarse a lo más por un arco.

Para no violar las últimas dos reglas es necesario utilizar un actividad dummy, la cual permite establecer las relaciones antecedentes apropiadas, estas actividades no consumen tiempo.

Supongase que dos actividades A y B preceden a la actividad C y ambas pueden comenzar al mismo tiempo, entonces se procede a utilizar una actividad dummy.


Los calculos de la ruta critica incluyen dos fases.

·        Recorrido de avance, donde los cálculos empiezan en el nodo inicial y siguen hacia delante hasta el nodo final. En cada nodo se calcula un numero que representa el tiempo de ocurrencia mas temprano del evento correspondiente.

·        Recorrido de retroceso, los cálculos empiezan desde el nodo final hasta el inicial. En cada nodo se calcula un numero que representa el tiempo de ocurre más tardio del evento correspondiente.





Cálculo del recorrido de avance
En el recorrido de avance se hace el cálculo de los inicios más próximos de todos los eventos. Este cálculo debe llevarse a cabo primero con todos los eventos que conectan directamente con el evento inicial; después con todos los que conectan directamente con estos eventos y así sucesivamente hasta alcanzar el evento final del proyecto.

El tiempo de inicio más próximo para un nodo i se representa con ES(i) es el tiempo
más próximo en que un evento correspondiente al nodo i puede ocurrir.
ES(i) se calcula de la siguiente manera:

Paso 1. Encontrar cada evento previo al nodo i que está conectado por un arco al nodo i. Estos eventos son los antecesores inmediatos del nodo i.

Paso 2. Para el ES en cada antecesor inmediato del nodo i se le suma la duración de la actividad que conecta a ese antecesor inmediato con el nodo i.

Paso 3. ES(i) es igual al valor máximo de las sumas obtenidas en el paso 2. Si i = 1, el evento de inicio , entonces convencionalmente, para los cálculos de ruta crítica el valor ES(1) para ese evento es igual a 0.

B)Ejemplos

1. Requerimientos y documento de especificación de requerimientos: tareas y actividades del proceso de requerimientos, ejemplo de plantilla, que incluya posibles rubros que contiene un documento de especificación de requerimientos.

El análisis de requisitos del software se puede subdividir en cinco áreas de esfuerzo:
1.      Reconocimiento del problema
2.      Evaluación y síntesis
3.      Modelado
4.      Especificación
5.      Revisión

La función principal de un analista del software (o ingeniero de requisitos) es llevar a cabo las actividades necesarias para cumplir con las cinco áreas de esfuerzo. Para lo cual hace uso de las siguientes técnicas:
1.      Entrevistas
2.      Talleres
3.      Observación
4.      Encuestas
5.      Revisión documental
6.   Uso de especificaciones formales para requerimientos (formatos estándar de documentos, UML, etc.)
   
Las actividades del proceso son:
1.      Comprensión del dominio
2.      Recolección de requisitos
3.      Clasificación
4.      Resolución de conflictos
5.      Priorización
6.      Verificación de requisitos
7.      Análisis
Actividades de la Ingeniería de Requisitos. [SOMMERVILLE, 2002]
La ingeniería de requisitos incluye dos actividades principales: la obtención de requisitos, que da como resultado una especificación del sistema que el cliente comprende, y el análisis, que da como resultado un modelo de análisis que los desarrolladores pueden interpretar sin ambigüedad. [BRUEGGE, 2002]

2. Riesgo y administración del riesgo, posibles rubros que incluye la gestión del riesgo. Ejemplo de una matriz de riesgo.




3. Gestión del proceso de desarrollo de sistemas de software, particularmente en la fase de planeación del de la implementación y programación considere lo siguiente:

• Una persona de soporte técnico, por ejemplo, un programador de mantenimiento llamado A, necesita corregir un programa que fue escrito por otro programador B, que utilizó su propia convención para nombrar variables.
Suponga el programador A, descubre que otro programa escrito por un tercer programador C también se debe modificar como parte de la primera corrección. Si programador de C también utilizó su propio conjunto de convenciones para nombrar a las mismas variables, entonces se puede imaginar la inherente confusión potencial en el aprendizaje de otro conjunto de variables y realizar cambios en el código que afectan a las mismas variables referenciadas con diferentes nombres. Este tipo situaciones pueden convertirse en una pesadilla que aumenta los costos y esfuerzos invertidos, además de que es un tipo de riesgo potencial para la  introducción de nuevos errores.
• ¿De qué manera puede prevenirse este tipo de situaciones? Explique su respuesta y proponga una solución.

Ya que las variables utilizadas por el programador B y las variables utilizadas por el programador C eran las mismas, se puede prevenir nombrando a las variables de la misma manera, de esta manera seria mucho más sencillo identificar a las variables que son las mismas y poder centrar su atención en corregir el programa.
Propongo que al momento de diseñar los programas, si se utilizan las mismas variables en estos, se llegue a un acuerdo y se generalice el nombre de las variables.

4. Planeación de los recursos del proyecto de software, recursos, recursos humanos, procesos,  metodologías, herramientas y equipo.

• Ejemplo de una matriz de habilidades del personal del equipo de desarrollo de software, que son necesarias después de que los administradores de proyectos de software revisan los requisitos del producto y el análisis. Por ejemplo, puede considerar: líder de proyecto, analista de requerimientos, diseñador, programador, analista de pruebas, por mencionar algunos.


5. Ejemplo de calendario o cronograma de actividades del desarrollo de un sistemade software.

6. Ejemplo de Gráfica de Gantt.

7. Ejemplo simple de método de ruta crítica - CPM.


CONCLUSIÓN

Entender y analizar los requisitos es el paso más importante a la hora de desarrollar un sistema de software, éstos deben de ser entendibles y sin ambigüedades; considerar el riesgo dentro del proyecto nos ayuda a manejar la incertidumbre. Es importante tener diagramas que nos ayuden a manejar el problema del software, de esta forma será más entendible; podemos hacer casos de uso. Otro paso importante es la documentación de los requerimientos, en este documento entenderemos qué hará nuestro proyecto, cuál será su objetivo, etc. El análisis de requerimientos permite al ingeniero de sistemas especificar las características operacionales del software (función, datos y rendimientos), indica la interfaz del software con otros elementos del sistema y establece las restricciones que debe cumplir el software.

Bibliografía