miércoles, 23 de febrero de 2011

Caso de Uso

Asignacion N#2
7.2 ¿Qué implica el análisis de factibilidad cuando se examina dentro del contexto de la función inicio?
Repuesta:
Dentro del contexto inicio el análisis de factibilidad le da la opción al desarrollador de identificar bien las necesidades requisitos o exigencias del cliente obtenido atraves encuestas o entrevistas, ya que a partir de la funcion iniciose obtiene los requerimientos para el análisis, que va a dar como resultado para un prototipo del sistema deseado y así exponer propuestas solidas y fiables, con el objeto de que el software requerido sea beneficioso y no presente dificultades para su implementación.

7.11b- Caso de Uso: Pago de comida en Restaurante con tarjeta de Crédito.

Especificación de casos de Uso

Nombre del caso de Uso: REGISTRAR PEDIDO

Actores: Cliente, Cajero

Propósito: Registrar el pedido del cliente

Resumen: El cliente hace la solicitud del pedido y es registrado por el cajero.

Flujo Principal o Curso Típico

Acción o eventos del Actor Cliente
1. Revisa la carta
2. Elige una opción
3. Acepta los términos

Respuestas o Eventos del Actor cajero
4. Verifica los datos.
5. Registra el pedido
6. Envía un mensaje de confirmación

Flujo Alternativo o Curso Atípico

4.1 Si no hay punto de venta el cliente no puede cancelar con tarjeta de crédito.

Precondición
El cliente debe cancelar con tarjeta de crédito

Postcondición
La tarjeta de crédito debe ser válida y tener suficiente fondo

Presunción
El cliente puede cancelar solo si tiene una tarjeta de crédito



¿Que representan las excepciones en los casos de uso?
Una excepción es un evento que ocurre durante la ejecución de un programa que interrumpe el flujo normal de las sentencias, esto significa que, las excepciones son errores ocurridos dentro de la ejecución de una aplicación, esto ocurre cuando se ingresan datos que no corresponden al formato que se está solicitando, o simplemente que no concuerdan con los almacenados en una base de datos que se utilizan para comparar dichos datos. Tomando como ejemplo el pago con una tarjeta de Débito de un consumo en cierto comercio, una excepción en este caso de uso sería que el propietario de la tarjeta introduzca erróneamente la contraseña personal, en este caso el software del punto de venta arroja una excepción en forma de aviso, notificando que la contraseña introducida es incorrecta y aborta todo el proceso de cobranza.
Las excepciones en los casos de uso representan las oportunidades o alternativas que tiene el usuario de rectificar cuando cometen errores o fallas al ejecutar alguna acción. O por consiguiente Son errores cometidos por el usuario a la vez representan la ventaja de saber mediante una advertencia generadas por el sistema


martes, 8 de febrero de 2011

Los Requerimientos del Software

El software muestra el potencial humano que pertenece a un sistema de trabajo, el cual a su vez puede incorporarse a un sistema operativo, una vez presentado la necesidad es de vital importancia utilizar requerimientos previos a su desarrollo en pro al análisis del problema. Por tanto, analizando lo que es un requerimiento se pudo obtener una definición clara, señalando que es una ocupación que plantea la asignación de un software a nivel de sistema y el diseño de esquemas, sea cual fuere el caso, ya que, los requerimientos van a facilitar al ingeniero de sistemas diversas tareas, tales como: especificar la función y comportamiento de los programas, donde se puede indicar la interfaz con otros elementos del sistema y establecer los enlaces de diseño que debe cumplir el programa desde la exigencia del usuario. De allí, que el análisis de requerimientos permite al ingeniero refinar la asignación de software y representar el dominio de la información que será tratada por el programa a través de un analista que mediante el mismo podrá descifrar, el software en su totalidad. Seguidamente luego de realizado el análisis se continua con la fase del desarrollo de los requerimientos. Esta fase puede dividirse en recolección de requerimientos de los clientes, análisis de firme integridad, definición en términos descriptivos para los desarrolladores y un dibujo de especificación, previo al diseño completo.
El diseñador hará la representación de la investigación y las funciones que pueden ser convertidas en datos, arquitectura y bosquejo de muchos procedimientos más, para posteriormente tener la especificación exacta del requerimiento que suministrara al técnico y al cliente, también los medios para valorar la calidad de los esquemas, una vez que se haya construido. Estos es, el método que proporciona un mecanismo para representar el dominio de la información. Es por ello, que desde esta representación, se deriva la función de un requerimiento y se desarrollan otras particulares de los esquemas. Así como el papel de los métodos de análisis de requerimientos, que serán el de asistir al analista en la realización de una descripción precisa del mecanismo software de un sistema que posteriormente será implantado en una computadora; teniendo muy en cuenta que esta fase donde se la representan los posibles errores que puedan existir en un software, aquí es donde el analista debe interactuar con cliente.
Por otra parte, podemos precisar que los requerimientos pueden clasificarse en dos tipos teniendo en cuenta que, todo proceso se da mediante una entrada y una salida, pues aplicando los tipos de requerimientos se va a concluir en que, para que un sistema funcione tiene que describir las transformaciones de la entrada y la salida, del proceso completo, esto será el que es una transformación y como es; se describiría la parte lógica o la interpretación algorítmica del software, o lo que es decir los códigos de un sistema; en pocas palabras podemos decir que los requerimientos funcionales satisfacen las necesidades exigidas por el usuario. En otro orden de ideas, los no funcionales tienen características que limitan el sistema, ya que son ordinarios en su interfaz; estos pueden presentar problemas de limitaciones es como decir giran en un entorno de no avance y se mantienen estáticos quedando como un modelo único, o una especificación en pocas palabras se describe como un instrumento formalmente impuesto, que a su uso hay que ajustarse; en vez de el adaptarse a nuestras necesidades.
Si nos ponemos a caracterizar los requerimientos, deberíamos tomar en cuenta que debe ser completo, y verificable que no necesite agregar ni quitarle nada, que se puedan captar sus objetivos sin complicación, por que no ser así, no será un sistema completo, debe ser volátil, preciso y comprobable mediante ejecución; en cuanto a exigencias los requerimientos deben mostrarse irrestrictos de manera que no presenten ninguna contradicción permitiendo así ajustarse a cambios si es necesario. Los diversos problemas que presenta un requerimiento los llamamos restricciones, ya que son identificables y se pueden prevenir sin dejar pasar por alto ninguno; es decir se tiene que tener muy en cuenta y tener tacto a la hora de manejarlos, sin permitir que se extiendan a otra fase del proyecto, por que sería más difícil de controlar, las restricciones ayudan a interpretar lo que el usuario no explica con claridad sobre sus necesidades y no hacen técnico el manejo de su explicación la cual es repetitiva.
Es importante aclarar, como debemos gestionar los requerimientos de software, para ser más exactos debe ser de forma estructurada, siguiendo una serie de pasos que permitan organizar y definir bien la importancia de la estructura del software tomando en cuenta los recursos empleados, como son el tiempo invertido y los que se requieran con el objetivo de reducir costos y tiempo sabiendo que es de vital importancia la calidad de desempeño del mismo; sin embargo tiene que existir una acuerdo entre el usuario y el ingeniero desarrollador, con la finalidad de que el trabajo sea aceptado sin prejuicios por el usuario final.
Sin embargo, el desarrollo de un software tiene fases que son como ciclos extracción, análisis, especificación y validación; los cuales una vez iniciado el desarrollo se identifica la necesidad del negocio, o existencia de nuevos avances tecnológicos, abiertos a actualizaciones y nuevos cambios que el usuario requiera; de allí se debe canalizar la amplitud del mercado. Pero primero se discute en esta etapa la construcción de un sistema, es decir aquí es donde se plantea los requerimientos del usuario, donde posteriormente el ingeniero presentara propuestas después de haber analizado el planteamiento del cliente, las restricciones o problemas que han sido reflejados aquí se describen las propuestas del ingeniero creador mediante diagramas de un sistema , el cual ha sido previamente descompuesto en módulos determinando cada una de sus partes a petición del usuario.
Posteriormente, se llega a un acuerdo con el cliente ya que le muestra gráficamente el modelo del sistema, siendo este el modelo lógico alternativo aceptable una vez realizada esta fase se valida, verificando los requerimientos pautados con el cliente para que cumplan lo propuesto, que sean completos y no tengan problemas de ningún índole; cada ingeniero presenta sus propias ideas siendo esta diferentes de otras.
Para el análisis y desarrollo de un software es necesario recolectar información acerca de las necesidades y exigencias de los usuarios o futuros usuarios, esta información será convertida en requerimientos los cuales se deben satisfacer en el software terminado para que el mismo sea funcional. Dicha información se obtiene mediante diversas técnicas de recolección, entre las cuales podemos mencionar las más utilizadas como son las entrevistas y cuestionarios, estas se realizan a los usuarios, futuros usuarios y supervisores, para obtener la mayor cantidad de datos que nos puedan servir para determinar los requerimientos finales del sistema, cabe destacar que el encuestador debe estar preparado en cuanto a la orientación que va a llevar el software, esta orientación debe obtenerla del ingeniero y del cliente, para así determinar qué papel va a cumplir cada usuario en el sistema en desarrollo y poder realizar la recolección de datos específicos en cada uno.
Dicho todo esto, las técnicas pueden ser personales o especificas, puesto que vienen a inducirnos a la información, y pueden ser obtenidas mediante cuestionarios, en que las preguntas pueden ser simples o compuestas, es decir limitarse a obtener un resultado cualquiera que fuera la situación de la pregunta; en los cuestionarios quedan apuntadas los repuestas hechas a los entrevistados; y se pueden usar, dispositivos como grabadoras, libretas que sirven para tomar apuntes, donde se debe dejar constancia de todo que se ha observado en la entrevista. Por otro lado, se puede observar directamente el ambiente o sitio en cuestión, donde logra ser a criterio del investigador. El puede usar libretas para tomar apuntes, cámaras ya sean de videos o fotográficas. Sabiendo que todo los entrevistados serán únicamente los involucrados en el sistema o usuarios del mismo.
Otra técnica, utilizada es el análisis a sistemas existentes en los cuales se deben observar el manejo y tratamiento que recibe la información, se debe tener muy presente los diferentes procesos que realizan para la obtención de resultados, como pueden ser reportes o consultas, esto es de suma importancia debido a que aquí podemos obtener requerimientos específicos necesarios para que el software nuevo cubra todas las expectativas y necesidades de cada uno de los usuarios, también pueden surgir nuevas ideas partiendo de las técnicas aplicadas en los sistemas existentes. También podemos utilizar la técnica de la lluvia de ideas, la cual consiste en realizar una reunión con los usuarios más experimentados y de diversas áreas las cuales se verán afectadas por el nuevo software, esto para obtener la mayor cantidad de ideas creativas, en esta técnica es necesario que no se descarte ninguna idea surgida ya que por muy descabellada que parezca se puede convertir en un requerimiento muy útil, y esto ayuda a que los participantes se sientan libres de aportar cualquier información sea relevante o no, y se debe escribir y analizar cada una de las ideas obtenidas, en algunos casos se unen varias ideas en una sola.
Luego de la recolección de ideas, el análisis y la obtención de requerimientos en diferentes áreas afectadas por el desarrollo del nuevo sistema, se realiza un diseño rápido de lo que será el nuevo software, esto se realiza entre los diseñadores y el cliente, para lo cual se trata de satisfacer todos los requerimientos obtenidos de los usuarios, potenciales usuarios y supervisores, este diseño rápido lleva a un prototipo del software final, este permite a los usuarios y supervisores interactuar con el nuevo sistema, lo cual permite una retroalimentación con el mismo lo que ayuda a los desarrolladores evaluar el funcionamiento del mismo y así modificar o adicionar algunos requerimientos que no fueron tomado en cuenta o satisfechos completamente.
La ultima técnica que se hará mención son los casos de uso, los cuales nos sirven para describir un escenario en el cual se va a desarrollar diversos actos partiendo de un estimulo hecho por un actor, en este caso el usuario; esto quiere decir, que el caso de uso describe de forma detallada el comportamiento del sistema cuando un usuario interactúa con el, bien sea cualquier modulo que este utilice se puede representar en un caso de uso, mediante el comportamiento especifico que realiza el sistema en respuesta a una acción realizada por el usuario.
En estos tiempos actuales de mucha tecnología, esta nos ofrece diversas herramientas para facilitar el proceso de desarrollo del software, estas herramientas son las CASE (Ingeniería del Software Asistida por Computadora), estas herramientas cumplen con la función de capturar requerimientos, administrarlos y producir una serie de requisitos, los cuales sirven como medio para agilizar y mejorar los procesos de desarrollo del software, estas herramientas sirven para que los desarrolladores traten de satisfacer todos los requerimientos exigidos por el cliente y brindar un software que sea 100% funcional a cada uno de los usuarios que utilizaran el mismo.