lunes, 4 de febrero de 2013

Mejoras en el Desarrollo de Software Y Documentación Y Pruebas de Software

Mejoras En El Desarrollo de Software:
En la actualidad, el ritmo de los negocios y de las actividades de cualquier organización tiende a 
intensificarse, a hacerse más acelerado, imponiendo exigencias de tiempo y calidad para poder mantener la operatividad y competitividad de las mismas. Por tanto, surge la necesidad de contar con ciclos de desarrollo más acelerados, pero que mantengan su confiabilidad. Comienzan a plantearse nuevos métodos que intentan incrementar la velocidad, reduciendo el tiempo requerido de desarrollo. Entre los elementos innovadores que se integran en estos métodos se encuentra: El uso de software o herramientas de desarrollo (como CASE; integración de grupos de personas bien capacitadas, enfocadas a la producción de aplicaciones en menor tiempo y de mayor calidad, la diestra utilización de nuevas y no tan nuevas técnicas de desarrollo

 Documentación Y Pruebas  de Software:
En general se habla mucho de la documentación, pero no se la hace, no se le asigna
Presupuesto, no se la mantiene y casi nunca está al día en los proyectos de desarrollo de software. Lo importante es la disponibilidad de la documentación que se necesita en el momento en que se la necesita.La documentación se suele clasificar en función de las personas o grupos a los cuales está dirigida:

La Documentación para Desarrolladores, es aquélla que se utiliza para el propio desarrollo del producto y, sobre todo, para su mantenimiento futuro. Se documenta para comunicar estructura y comportamiento del sistema o de sus partes, para visualizar y controlar la arquitectura del sistema, para comprender mejor el mismo y para controlar el riesgo, entre otras cosas. Obviamente, cuanto más complejo es el sistema, más importante es la documentación. La documentación para desarrolladores a menudo es llamada modelo, pues es una simplificación de la realidad para comprender mejor el sistema como un todo.

La Documentación para Usuarios, es todo aquello que necesita el usuario para la
Instalación, aprendizaje y uso del producto. Puede consistir en guías de instalación, guías del usuario, manuales de referencia y guías de mensajes.
Los usuarios usan los  manuales solamente cuando se produce un error o se desconoce cómo lograr algo muy puntual, y recién cuando la ayuda en línea no satisface las necesidades del usuario. Por lo tanto, si bien es cierto que debemos realizar manuales, la existencia de un buen manual nunca nos libera de hacer un producto amigable para el usuario, que incluso contenga ayuda en línea. Es incluso deseable proveer un software tutorías que guíe al usuario en el uso del sistema, con apoyo multimedia, y que puede llegar a ser un curso online

La Documentación para Administradores o Soporte Técnico, a veces llamada manual de operaciones, contiene toda la información sobre el sistema terminado que no hace al uso por un usuario final. Es necesario que tenga una descripción de los errores posibles del sistema, así como los procedimientos de recuperación. Como esto no es algo estático, pues la aparición de nuevos errores, problemas de compatibilidad y demás nunca se puede descartar, en general el manual de operaciones es un documento que va engrosándose con el tiempo.


Pruebas En El Desarrollo de Software:


Calidad, Errores y Pruebas:
La calidad no es algo que se pueda agregar al software después de desarrollado si no se
hizo todo el desarrollo con la calidad en mente. Muchas veces parece que el software de calidad es aquél que brinda lo que se necesita con adecuada velocidad de procesamiento. En realidad, es mucho más que eso. Tiene que ver con la corrección, pero también con usabilidad, costo, consistencia, confiabilidad, compatibilidad, utilidad, eficiencia y apego a los estándares.
Como en todo proyecto de cualquier índole, siempre se debe tratar que las fallas sean
mínimas y poco costosas, durante todo el desarrollo. Y además, es sabido que cuanto más tarde se encuentra una falla, más caro resulta eliminarla. Es claro que si un error es descubierto en la mitaddel desarrollo de un sistema, el costo de su corrección será mucho menor al que se debería enfrentar en caso de descubrirlo con el sistema instalado y en funcionamiento.
Categorías de Pruebas:
Pruebas centradas en la verificación
Pruebas centradas en la validación
Las primeras sirven para determinar la consistencia entre los requerimientos y el programa
terminado. Soporta metodologías formales de testeo, de mucho componente matemático. De todas maneras, hay que ser cuidadoso, porque no suele ser fácil encontrar qué es lo que hay que demostrar. La verificación consiste en determinar si estamos construyendo el sistema correctamente, a partir de los requisitos. En general a los informáticos no les gustan las pruebas formales, en parte porque no las
entienden y en parte porque requieren un proceso matemático relativamente complejo.
La validación consiste en saber si estamos construyendo el sistema correcto. Las tareas de validación son más informales. Las pruebas suelen mostrar la presencia de errores, pero nunca demuestran su ausencia.

Las Pruebas y el Desarrollo de Software:
La importancia de esta fase será mayor o menor según las características del sistema
Desarrollado, llegando a ser vital en sistemas de tiempo real u otros en los que los errores sean irrecuperables.
Las pruebas no tienen el objeto de prevenir errores sino de detectarlos. Se efectúan sobre
el trabajo realizado y se deben encarar con la intención de descubrir la mayor cantidad de errores posible. Para realizar las pruebas se requiere gente que disfrute encontrando errores, por eso no es bueno que sea el mismo equipo de desarrollo el que lleve a cabo este trabajo.
En un sistema real, los casos de prueba se deben hacer sobre las partes del sistema en los cuales una buena prueba brinde un mayor retorno de la inversión o en las cuales un error represente un riesgo mayor.
Las pruebas cuestan mucho dinero. Pero para ello existe una máxima: “pague por la
prueba ahora o pague el doble por el mantenimiento después”.
Todo esto lleva a que se deban planificar bien las pruebas, con suficiente anticipación, y
determinar desde el comienzo los resultados que se deben obtener.

 Tipos de pruebas:
Revisiones de código:
Las revisiones de código son las únicas que se podrían omitir de todos los tipos de pruebas, pero tal vez sea buena idea por lo menos hacer alguna de ellas:
    La prueba de escritorio rinde muy poco, tal vez menos de lo que cuesta, pero es una
costumbre difícil de desterrar. Es bueno concentrarse en buscar anomalías típicas, como variables u objetos no inicializados o que no se usan, ciclos infinitos y demás.
   Los recorridos rinden mucho más. Son exposiciones del código escrito frente a pares. El
programador, exponiendo su código, encuentra muchos errores. Además da ideas avanzadas a programadores nuevos que se lleva a recorrer.
   Las llamadas inspecciones de código consisten en reuniones en conjunto entre los
responsables de la programación y los responsables de la revisión. Tienen como objetivo revisar elcódigo escrito por los programadores para chequear que cumpla con las normas que se hayan fijadoy para verificar la eficiencia del mismo.

Pruebas unitarias:
Las pruebas unitarias se realizan para controlar el funcionamiento de pequeñas porciones de código como ser subprogramas (en la programación estructurada) o métodos (en POO). Generalmente son realizadas por los mismos programadores puesto que al conocer con mayor detalle el código, se les simplifica la tarea de elaborar conjuntos de datos de prueba para testearlo.

Pruebas de integración:
Las pruebas de integración tienen como base las pruebas unitarias y consisten en una
progresión ordenada de testeos para los cuales los distintos módulos van siendo ensamblados y probados hasta haber integrado el sistema completo. Si bien se realizan sobre módulos ya probados en forma individual, no es necesario que se terminen todas las pruebas unitarias para comenzar con las de integración. Dependiendo de la forma en que se organicen, se pueden realizar en paralelo a las unitarias.
El orden de integración de los módulos influye en :
La forma de preparar los casos de prueba
Las herramientas a utilizar (módulos ficticios, muñones, impulsores o “stubs”)
El orden para codificar y probar los módulos
El costo de preparar los casos
El costo de la depuración
Tanto es así que se

Pruebas de sistema:
Las pruebas de sistema se realizan una vez integrados todos los componentes. Su objetivo es ver la respuesta del sistema en su conjunto, frente a distintas situaciones. Se simulan varias alternativas que podrían darse con el sistema implantado y en base a ellas se prueba la eficacia y eficiencia de la respuesta que se obtiene.

Pruebas de aceptación:
Las pruebas de aceptación, al igual que las de sistema, se realizan sobre el producto terminado e integrado; pero a diferencia de aquellas, están concebidas para que sea un usuario final quien detecte los posibles errores.
Se clasifican en dos tipos:
Las Pruebas Alfa se realizan por un cliente en un entorno controlado por el equipo de
desarrollo. Para que tengan validez, se debe primero crear un ambiente con las mismas condiciones que se encontrarán en las instalaciones del cliente. Una vez logrado esto, se procede a realizar las pruebas y a documentar los resultados.
Cuando el software sea la adaptación de una versión previa, deberán probarse también los
procesos de transformación de datos y actualización de archivos de todo tipo.
Las Pruebas Beta se realizan en las instalaciones propias de los clientes.
Para que tengan lugar, en primer término se deben distribuir copias del sistema para que cada cliente lo instale en sus oficinas, dependencias y/o sucursales, según sea el caso. Si se tratase de un número reducido de clientes, el tema de la distribución de las copias no representa grandes dificultades, pero en el caso de productos de venta masiva, la elección de los beta testers debe realizarse con sumo cuidado. En el caso de las pruebas Beta, cada usuario realizará sus propias pruebas y documentará los errores que encuentre, así como las sugerencias que crea conveniente realizar, para que el equipo de desarrollo tenga en cuenta al momento de analizar las posibles modificaciones.

Analisis y Diseño de Sistemas



El análisis y diseño de sistemas es un procedimiento para la resolución de problemas. Cuando se trata del diseño de sistemas de información, busca analizar sistemáticamente la entrada o flujo de datos, la transformación de los datos, el almacenamiento de datos y la salida de información en el contexto de una organización particular. También es usado para analizar, diseñar e implementar mejoras que puedan incorporarse a la
organización y puedan ser alcanzadas al usar un sistema de información computarizado.

La mayoría de los usuarios de microcomputadoras tienen acceso a un sistema de información o forman parte de uno, todas las organizaciones cuentan con un sistema de información, que los empleados deben utilizar, cuando en cualquier organización cuando se desea implantar un nuevo sistema, este tiene que hacer que los miembros de la empresa sean mas productivos, obteniendo un mayor provecho y apoyo del mismo.
A la hora de crear y establecer un nuevo sistema de información en la organización, se debe realizar un proceso de análisis y diseño de sistemas, el cual proporciona una guía útil que busca disminuir las situaciones de fracaso o errores.
Las buenas razones de conocer el análisis y diseño de sistemas como usuario, es que toda persona que usa una microcomputadora se beneficia al conocer sobre estos procesos , ya que una ves contratado como miembro de una organización, se convertirá en usuario de su sistema de información, entonces al tener conocimiento del análisis y diseño de sistemas, esto  permitirá aumentar su productividad personal y colaborar con los profesionales en informática a la hora de resolver problemas.
Los usuarios juegan un papel crítico al momento de cambiar o desarrollar exitosamente un sistema de información, porque son quienes conocen los problemas de su área de trabajo, pudiendo suministrar información valiosa y atinada sobre las necesidades que debería resolver tal sistema. El desarrollo acertado de sistemas de información automatizados requiere del trabajo conjunto de usuarios finales y de los analistas de sistemas 

Carta de Estructura


La carta estructurada o modelo de navegación es también conocida, como el modelo del producto, es una metodología de análisis y diseño de sistemas de análisis estructurado, basado en la metodología del desarrollo de sistemas top-down, que muestra un mapa de diseño de arriba hacia abajo, en el que se muestra como será programado el proyecto, construido, integrado y probado, presenta el plano del sistema propuesto y sirve para:
  • Hacer participar al usuario
  • Diseñar funciones detalladas
  • Diseñar menus
  • Planificar el desarrollo de programas
  • Monitorear el desarrollo
En el Análisis del Diseño y Sistema, el analista tiene como fin estudiar sistemáticamente la operación de ingreso de los datos, flujo de los mismos y salida de información, todo eso dentro de los parámetros de la empresa en particular.
Mediante el Análisis Estructurado se utiliza aun método para el análisis de sistemas manuales o automatizados, que nos permite llegar al desarrollo de las especificaciones del nuevo sistema o para modificar los ya existentes, el objetivo es organizar las tareas referentes con la determinación de requerimientos y así obtener una completa y exacta comprensión de la situación.
El Diseño Estructurado, como una técnica  que nos permite buscar y crear programas formados por modelos independientes uno de otros, para asi no mostrar la lógica de los programas, en el cual si herramienta fundamental, el diagrama estructurado, que nos describe la interacción entre módulos independientes que nos muestra también los datos que un modulo pasa a otro cundo interacciona con el.




Factiblidad y Estudio de Factibilidad


La factibilidad es la disponibilidad de los recursos que son necesarios para llevar a cabo los objetivos y metas propuestas.

los Estudios de Factibilidad 

Son las primeras etapas en el desarrollo de un sistema de información, durante el cual se consideran la evaluación de las diferentes soluciones propuestas.
Los estudios de factibilidad se realizan después de haber definido el problema y establecer las causas de un nuevo sistema y saber cuales son los gastos, beneficios que implica instalar un nuevo sistema, esto permite determinar si diseñar el sistema propuesto y ponerlo en marcha es eficiente o conveniente para la  empresa, en los cueles se deben tomara en cuenta los siguientes aspectos:

La factibilidad Económica: 



Debe mostrarse que el proyecto es factible económicamente, para eso se  analizan los costos y beneficios de cada alternativa de un  proyecto, los cuales se refieren a las disponibilidad de capital en efectivo o de los creditos necesarios para invertir en el desarrollo del proyectos,y en los que se espera que los beneficios a obtener sean superiores a los costos que se necesarios al desarrollar e implementar el proyecto o sistema.




Factibilidad Operativa: 

También es llamada factibilidad humana en la cual propone que debe existir un personal capacitado para que se lleven a cabo los proyectos y que tambien deben existir usuarios dispuestos a emplear los servicios o productos por el proyecto o sistema desarrollado.











Factibilidad Técnica: 


El análisis de factibilidad técnica evalúa si el equipo y software están disponibles (o, en el caso del software, si puede desarrollarse) y si tienen las capacidades técnicas requeridas por cada alternativa del diseño que se esté considerando. Los estudios de factibilidad técnica también consideran las interfases entre los sistemas actuales y nuevo. Por ejemplo, los componentes que tienen diferentes especificaciones de circuito no pueden interconectarse, y los programas de software no pueden pasar datos a otros programas si tienen diferentes formatos en los datos o sistemas de codificación; tales componentes y programas no son compatibles técnicamente. 




miércoles, 28 de noviembre de 2012

Levantamiento de informacion


Levantamiento de Informacion: 
Proceso mediante el cual el analista recopila datos e información de la situación actual de un sistema, con el propósito de identificar problemas y oportunidades de mejora.

La Entrevista:
La entrevista es un tipo de interacción verbal que, a diferencia de la conversación espontánea, suele tener un objetivo predeterminado que consiste en obtener información sobre hechos, personas o culturas, la entrevista emplea diversos campos profesionales.

Partes de la Entrevista:
El texto de una entrevista se organiza del siguiente modo: entrada o presentación, cuerpo de la entrevista, remate o conclusión

Entrada o Presentación: 
los dos primeros párrafos de una entrevista suelen utilizarse para presentar al personaje que se entrevista. En ocasiones, según el tipo de entrevista, estos párrafos pueden servir para describir el ambiente y la atmósfera en que se llevo a cabo la entrevista.

Cuerpo de la Entrevista
no siempre la presentación del dialogo respeta el orden en que este se dio en la realidad, algunas veces es necesario reordenar la entrevista de acuerdo  con los temas desarrollados o según su importancia en la entrevista noticiosa televisa o radal se editan las partes del dialogo mas relevantes o para que el lector le resulte mas interesante la lectura.

Remate o Conclusión: 
como sucede en general con los textos escritos, el ultimo párrafo debe servir para cerrar la nota y dar al lector la idea de que la entrevista llego a su fin.

Cuestionario:

Los cuestionarios son una serie de preguntas ordenadas, que buscan obtener información de parte de quien las responde, para servir a quien pregunta o ambas partes.
Los cuestionarios son utilizados muchas veces como técnica de evaluación, o de guía de una investigación, o también para efectuar encuestas, donde se interroga sobre determinadas “cuestiones” que se quiere averiguar. Son muy utilizados en el ámbito educativo, en psicología, en sociología y en estudios de mercado.
Conjunción con alguna estadística, para ello existen dos método la estimación puntual y estimación por intervalos.

Revisión de Requisitos:

Con frecuencia en muchas empresas la información ya se encuentra disponible  para que los analistas conozcan la actividad u operaciones con las cuales no esta familiarizado.
Los analistas examinan datos y descripciones que ya están escritos o registradas en relación con el sistema y departamento de usuario.

Recuperación de datos por medio de la inspección de registros:

 El termino de registro se refiere a los manuales escritos sobre política, regulaciones y procedimientos de operaciones estándares que la mayoría de las empresas mantienen como guía para gerentes y empleados, calidad y en otras actividades; estudios de consumidores, análisis de resultados, en deportes, administradores de instituciones, en la educación, organismos políticos, médicos y por otras personas que intervienen en la toma de decisiones.

Selección de los registros para revisión:

En la mayor parte de las empresas los manuales y estándares sobre procedimientos de operaciones usualmente son obsoletos, a menudo no se mantienen al corriente lo suficiente para señalar los procedimientos existentes. Los diagramas de organización muestran como las diferentes unidades deberian relacionarse con otras, pero muchas no reflejan las operaciones actulaes.

Observación:

Técnica en que consiste en examinar e investigar alguna situación, hecho, fenómeno, etc., con el fin de recolectar datos o información para describirlo, así pretendiendo logar que el ser humano presente el mayor número de datos registrados.

Características de observación:

  1. determinar con exactitud  lo que se va a observar.
  2. tener precision los objetos a observar.
  3. valoarar los datos registrados por el observador
  4. describir la cantidad de notas que se llevaran a cabo para la observación
  5. tener en cuenta el donde, cuando y porque.

Ventajas:
  • permite obtener datos cuantitativos y cualitativos.
  • Se observan conductas, características y condiciones de los individuos, asi como tambien factores ambientales.
  • Puede ser utilizado en cualquier tipo de investigación y en cualquier area de saberes.
  • Con la observación se elimina las ambigüedades.
Desventajas:
Se requiere de mucha habilidad para ver los fenómenos estudiados.

Requerimientos:

 El desarrollo de sistemas,  un requerimiento es una necesidad documentada sobre el contenido, forma o funcionalidad de un producto o servicio.
Las requerimientos son declaraciones que identifican atributos, capacidades, caracteristas 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 que elemento y funciones son necesarias para un proyecto.




Ciclo Clasico de un Sistema de Informacion


Ciclo clásico de un Sistema de Información:

Fase de planificación: 
es la que nos permite conocer sobre el alcance que tendrá el proyecto, que puntos abarcara, los posibles riesgos que puede llegar a presentar  y el orden en el cual se ejecutaran todas las tareas en el proceso de su creación.
                                                    
Fase de análisis: 
la que estudia las necesidades de información de los usuarios finales, constituyéndose la base del diseño de un sistema de información. En esta fase se plantean todos los por menores para poder obtenerlos resultados que se esperan o quieren.


Fase de diseño:
Consiste en la descripción y determinación de los procesos y datos que requiere el nuevo sistema, el cómo se quiere el sistema, la forma en la que el sistema cumplirá con los requisitos identificados durante la fase de análisis.

Fase de implementación:
Comprende la adquisición e integración de los recursos físicos y conceptuales, en esta fase se ejecutan todas las instalaciones y adiestramiento necesario  para poder colocar el sistema en modo funcional.

Fase de uso y mantenimiento:
 Esta es la etapa final del ciclo de desarrollo de sistemas. En esta fase se pone en ejecución todo el trabajo realizado por analistas y usuarios, Comprende: supervisión, evaluación y modificación de un sistema en el momento que deje de ser efectivo para las nuevas tareas que ocurran en un futuro.

Razones Para el Inicio de un Proyecto y Metodo de Seleccion de un Proyecto


Razones para el inicio de un proyecto:

Mayor velocidad de Procesamiento
Uso de la capacidad inherente a la computadora para efectuar cálculos, ordenar, recuperar datos e información y efectuar repetidamente la misma tarea con mayor velocidad que la de los seres humanos. Proporcionar la capacidad de procesar una cantidad de actividades a menudo como resultado del crecimiento de la empresa, que excede las capacidades y procedimientos que fueron claves para alcanzar los logros obtenidos.

Consulta mas Rápida: 
Es la Localización y recuperación de información del sitio donde se encuentra almacenada y llevar a cabo búsquedas complejas.

Integración en el Área de Negocio:
Coordinar las actividades de la empresa que se llevan a cabo en diferentes áreas de una organización a través de la captura y distribución de la información.

Reducción de Costos: 
Es el uso de la capacidad de computo para procesar datos con un costo menor del que es posible con otros métodos, al mismo tiempo que se mantiene misma la exactitud y los mismos niveles de desempeño.

Mayor Seguridad: 
Con mayor exactitud y mejora de la consistencia, es decir, Llevar a cabo los pasos de computo, incluidos los cálculos aritméticos, contables, etc. de manera correcta y siempre en la misma forma.Proveer mejor seguridad


Métodos para la Selección de Proyectos:

Método del Comité Directivo: 
los comités directivos supervisan la revisión de propuestas para los proyectos y esta constituidos por varios gerentes de importantes departamentos de la organización, el comité recibe las propuestas y las evalúa, este método impone mucho respeto perspectiva a la revisión de las propuestas de los proyectos El comité está formado por gerentes con responsabilidad y autoridad para decidir qué proyectos responde a los mejores intereses de toda la compañía.

Método del Comité de Sistema de Información: 
El comité de sistemas de información aprueba o rechaza proyectos y fija las prioridades y también indica que proyectos son más importantes, dándoles atención inmediata. Este método se puede utilizar cuando la mayor parte de las solicitudes son para servicios rutinarios o mantenimiento de las aplicaciones existentes.

Método del Comité del Grupo de Usuarios: 
son los que tienen el control sobre qué se desarrolla y cuándo se implanta. Aunque la práctica de tener comités de usuarios para seleccionar y desarrollar sistemas libera parte del trabajos del grupo de desarrollo de sistemas, puede tener desventajas para los propios usuarios.