martes, 22 de febrero de 2011

ACTIVIDAD NUMERO 2

ANALISIS DE 7.1
LA INGENIERIA DE REQUISITOS COMO PUENTE PARA EL DISEÑO Y CONSTRUCCION DEL SOFTWARE
La ingeniería de requisitos es una base solida para la elaboración del software ya que sirve de asistencia en el diseño y construcción porque nos palpa las técnicas y principios que se deben tomar en cuenta a la hora de la construcción del sistema planteado y así verificar constantemente la necesidad de la cual requiere el cliente, y aunque algunos desarrolladores no le den el valor preciso que requiere es esencial la toma de decisiones así como plantea la realidad del problema en cuya solución se trabajara.
En este orden de ideas nos parece preciso señalar que no solo la ingeniería de requisitos nos sirve como puente para el diseño y la construcción del software sino que toma en cuenta sobre posibles errores que nos ahorran costo y tiempo además que nos ayuda a desarrollar un modelo sobre las características, funciones y hasta restricciones que podría tener el software.
Es así como mediante la ingeniería de requisitos es que se puede tener dominio de la información que es la que nos ayudara a fomentar la solución del problema ya que se conoce el comportamiento de dicho problema y lograr crear un software factible, fiable y que tenga un justo rendimiento obteniendo así una satisfacción del cliente
ANALISIS DEL 7.7
NEGOCIACION DE REQUISITOS
En cuanto a la negociación de los requisitos se establece que es un acuerdo entre desarrollador del software y el cliente en donde se detallen aspectos como el balance que se debe tener entre la factibilidad, funcionabilidad y el rendimiento con el tiempo y costo que soportara el software pero con la satisfacción de ambas partes con el proyecto planteado. Cabe destacar que este acuerdo debe satisfacer las necesidades de cada uno de los interesados en el proyecto, donde se reconozca además que no existe competencia sino que la satisfacción de que para todos existe una ganancia y cada quien ha logrado lo que se ha propuesto ganar.
Estos planteamientos requieren de que las dos partes interesadas en el proyecto tengan vital comunicación ya que se hace importante que una de las partes se interese por las necesidades de la otra y viceversa, se debe escuchar de forma efectiva para no cometer errores y en caso de surgir algún problema tratar de solventar de inmediato de un forma factible, por último se debe pactar crear un acuerdo y de imdiato comenzar a desarrollar el proyecto.

Modela de caso de uso 1.11.d


martes, 8 de febrero de 2011

Análisis de los Requerimientos del Software

Requerimiento en sistemas, no es más que la atención de una necesidad de manera fundamentada, organizada y planificada, con la finalidad de dar solución a un problema existente en una comunidad o empresa.
Un ingeniero en sistemas, antes de comenzar a elaborar un sistema, para cualquier organización, el primer paso que debe hacer, es un levantamiento de información, con respecto al Qué, Cómo, Cuándo y Dónde, desea un usuario, sistematizar un proceso que se está ejecutando de manera manual y, Cuál sería el resultado deseado, es decir, que plataforma tecnológica debería utilizar  para elaborar y ejecutar un sistema, su funcionalidad, y si a su vez, le permitirá dar solución a un problema planteado de una manera oportuna y eficiente.
 La primera fase a realizar al momento de iniciar la elaboración de un sistema, es tener bien definida la descripción de lo que el sistema propuesto va a realizar, y por ende, que es lo que se quiere obtener del mismo, lo que en resumidas, se puede definir como el objetivo principal del estudio. De igual forma, se debe estudiar si el sistema a implantar es funcional para una organización, es decir, que sea de fácil manejo al momento de agilizar procesos y dar respuestas de una manera rápida y oportuna, y no, que el mismo a la final, sea un sistema complicado que retrase las gestiones de los usuarios y por ende de la empresa.
Un punto importante, que se debe considerar es la herramienta a utilizar para elaborar dicho sistema, se debe tomar en cuenta que la misma sea compatible con los sistemas operativos que tenga en uso el usuario al cual se le prestará el servicio, es decir, si una organización, posee toda la plataforma informática bajo software propietario ó libre, así como también, que la herramienta sea multiplataforma, que se adapte a ambos sistemas operativos. Muy importante es los actuales momentos, si una empresa es pública, se debe tomar muy en cuenta, estar acorde con las Leyes del Estado,  verificar todas las licencias, contratos, convenios y demás acuerdos legales en materia  de Software,  es decir, cumplir con lo tipificado en el Decreto 3.390, el cual tiene como mandato, que todas las Instituciones Públicas deben trabajar bajo Software Libre en toda la Plataforma Informática existente.
 Se debe considerar, los costos, el ingeniero en sistema, debe considerar, exactamente que necesitará y que no, al momento de ofrecer un servicio, con la finalidad de no cometer errores, en cuanto a funcionalidad, operatividad y la parte financiera, es decir, debe tener muy claro que necesita y que no, para la implantación de un sistema.
Cuando se habla de Necesidades relacionados a los requerimientos, es donde el Ingeniero en sistemas, tiene la tarea de Investigar cuales son las tecnologías informáticas (software) que sean más  aplicables a las necesidades de una organización, con la finalidad de satisfacerlas, es decir, cual va hacer la tecnología más apropiada para dar la solución a un problema existente, tomando en cuenta, la operatividad, costo y funcionalidad más apropiado, tanto para la organización, como para el programador.
 Analizando los objetivos de los requerimientos del software, podemos observar, que esta fase es la más importante, ya que es donde, el analista en sistema debe establecer los requerimientos técnicos detallados, incluyendo todas las interfaces participantes en el mismo, como son, los usuarios, máquinas y otros sistemas, ya que en esta fase afectará positiva o negativamente los resultados del mismo, y la cual no se podrá corregir en el transcurso de a ejecución del mismo, y en caso de poder hacer correcciones, se generarán costos, que posiblemente no se hayan tomado en cuenta al momento de estimar, lo que dará como resultado falla en la implantación del sistema, y por ende no cumplir con las necesidades de la organización a la cual se está prestando un servicio. Al momento de analizar los requerimientos de un sistema, se debe tomar en cuenta, que quiere una empresa resolver, es decir, cual es su necesidad, y que ofrece un analista para solucionar ese problema, y que lo que se está ofertando, sea de una manera, eficaz, eficiente y transparente, para obtener un resultado oportuno y de calidad.
 Los actores relacionados con los requerimientos, son las personas que van a interactuar directamente con la herramienta de trabajo a implementar. Pero estos actores deberán estar definidos por roles, es decir, no todos los usuarios de un sistema a implementar tendrán los mismos privilegios de uso. En esta características, se debe tomar en cuenta, quienes serán los usuarios que diseñarán el sistema, es decir, quienes manejarán la arquitectura, los cuales tendrán la responsabilidad de la funcionalidad del mismo, es decir, que manejará el sistema, y cual será la interfaz externa, estos actores, podrán tener los roles de administradores, y de diseñar el diagrama de uso, de igual manera se debe tomar en cuenta quien manejara el sistema de manera externa.
 Podemos decir que la importancia de la Ingeniería de Requisitos, se debe, a que permite gestionar las necesidades del proyecto en forma estructurada, es decir, contar con una serie de pasos organizados y definidos, lo que permite tener un punto de partida para controlar las actividades de mantenimiento, tales como estimación de costos, tiempo y recursos necesarios, con la finalidad de disminuir cualquier margen de error que pueda generar gastos extras y causar retrasos en el sistema a implementar. También permite el estudio de la calidad del software a utilizar, con respecto a su funcionalidad, facilidad de uso, confiabilidad y desempeño.
Las técnicas y recolección de requerimientos, no es mas, que la manera en cómo vamos a obtener los datos necesarios para iniciar el proceso de elaboración, ejecución e implantación de un sistema demandado por cualquier usuario u organización, y según bibliografías consultadas, las mas usadas son las técnicas de la entrevista, en el cual se tiene que tener mucho énfasis, porque ésta técnica no puede ser ejecutada a muchas personas, ya que tiende a confundir los datos, por la diversidad de respuestas obtenidas de dichas entrevistas, sólo debe hacerse a las personas involucradas directamente con el objetivo ó producto a obtener, y las preguntas deben ser claras, precisas y concisas, pueden ser personales ó grupales.
 Otra técnica es, el uso de talleres, los cuales pueden ser facilitados por un analista del negocio, en donde las personas implicadas participan en discusiones para descubrir requisitos, ya que muchas veces puede ocurrir, que el usuario que demanda un servicio puede no estar claro en lo que requiera, y por tanto, es un pilar fundamental para aclarar necesidades.
En relación a las Técnicas más usadas para conocer los requerimientos del software se pueden mencionar dos métodos:
Método de Desarrollo de Aplicaciones conjunta (Joint Application Development, ó JAD): Éste método fue desarrollado para el diseño de sistemas basados en computadoras, centrándose principalmente en el trabajo conjunto entre el usuario demandante del servicio y el analista en sistema, es decir, la persona que dará la solución a un problema planteado, con la finalidad de que todos los involucrados participen en el desarrollo del trabajo a ejecutar, proporcionando lluvias de ideas, ahorrando tiempo para el analista, priorizar objetivos, permite la transparencia en los procesos, acelerar la toma de decisiones, con la finalidad de optimizar las actividades de una organización.
Método de Métrica de Función (Fuction Points ó FPA): Éste método permite medir, la evolución de las fases del proyecto a ejecutar, es decir, ayudan a tener una mejor compresión del proceso a seguir, e ir mejorando el mismo durante su ejecución, permitiendo así conocer la complejidad del mismo, para así poder ir tomando las decisiones más exactas e ir reduciendo los márgenes de errores que puedan ir presentándose durante la elaboración del sistema a implantar, y por ende, ayuda a los actores del proceso (usuario demandante del serbio y analista de sistema), saber si están alcanzando los objetivos propuesto, incrementando la satisfacción del cliente.
Las métricas se van midiendo por cada fase de uso de los requerimientos, desde el levantamiento de la información, tales como, el levantamiento del problema, utilización de los recursos, costos financieros, personal. Luego una segunda fase que comprende el estudio y elección de la plataforma más adecuada a utilizar para el desarrollo del sistema que dará una posible solución a la necesidad planteada por el usuario u organización demandante del servicio. De igual manera permite al analista, medir la calidad del producto, es decir, cuáles son los posibles errores presentados, para hacer las correcciones necesarias, si el mismo, aportará información de manera rápida y oportuna, así como también, permite verificar, si el programa elegido cumple con los estándares exigidos por las políticas legales del cliente, y su confiabilidad.
La última fase, se refiere a la medición de la efectividad de la plataforma implantada, es decir, si la misma cumplió con la satisfacción del cliente, adaptabilidad a los sistemas operativos existentes, alcance de la herramienta, el cual significa que los usuarios finales, cuenten con un ambiente fácil y manejable al momento de operar el sistema implantado, y por último, permite obtener una retroalimentación del cliente, mediante un resultado, producto de encuesta realizada acerca del desempeño del sistema implantado.
Se puede concluir que las métricas ayudan al analista, a tomar las mejores decisiones al momento de realizar un análisis y diseño de un sistema.