martes, 3 de mayo de 2011

Manual técnico

En la guía técnica o manual técnico se reflejan el diseño del proyecto, la codificación de la aplicación y las pruebas realizadas para su correcto funcionamiento. Generalmente este documento está diseñado para personas con conocimientos de informática, generalmente programadores.


El principal objetivo es el de facilitar el desarrollo, corrección y futuro mantenimiento de la aplicación de una forma rápida y fácil.


Esta guía está compuesta por tres apartados claramente diferenciados:

- Cuaderno de carga: Es donde queda reflejada la solución o diseño de la aplicación. Esta parte de la guía es únicamente destinada a los programadores. Debe estar realizado de tal forma que permita la división del trabajo.

- Programa fuente: Es donde se incluye la codificación realizada por los programadores. Este documento puede tener, a su vez, otra documentación para su mejor comprensión y puede ser de gran ayuda para el mantenimiento o desarrollo mejorado de la aplicación. Este documento debe tener una gran claridad en su escritura para su fácil comprensión.

- Pruebas: es el documento donde se especifican el tipo de pruebas realizadas a lo largo de todo el proyecto y los resultados obtenidos.


Estructura del documento “Manual técnico”

1. Índice
Relación de los capítulos y páginas correspondientes que forman parte del documento.

2. Introducción.
Se debe presentar una breve descripción del sistema desarrollado, que contemple el ámbito abarcado, cual es su función principal y un detalle de las funciones macros o partes que lo componen. Puede incluir un mensaje de la máxima autoridad de las áreas comprendidas en el manual.

2.1. Objetivo general del sistema
Se debe de describir el objetivo general del sistema.

2.2. Objetivos específicos
Se deben describir brevemente los objetivos específicos que se cumplieron con el desarrollo del sistema.

3. Contenido técnico.

3.1. Definición de reglas del negocio implementadas en el sistema desarrollado.

3.2. Diagramas de flujo de datos, junto con su respectivo diccionario de datos.

3.3. Controles de auditoria implementados en el sistema.

3.4. Descripción de campos requeridos por pantalla con presentación de pantallas.

3.5. Diagrama de navegación del sistema.

3.6. Requerimientos de interfase con otros sistemas.

3.7. Modelo lógico de datos, diagrama entidad-relación.

3.8. Modelo de datos físico, junto con su respectivo diccionario de datos.

3.9. Matriz de procesos versus organización.

3.10. Matriz de programas versus entidades.

3.11. Plataforma de usuario. Aquí se describen los requerimientos mínimos que se deben tener tanto de hardware como de software para que el sistema se pueda instalar y ejecutar correctamente (en caso de que se considere necesario).

3.12. Áreas de aplicación y/o alcance de los procedimientos. Esfera de acción que cubren los procedimientos.

4. Responsables.
Para iniciar los trabajos que conducen a la integración de un manual, es indispensable prever que no queda diluida la responsabilidad de la conducción de las acciones en diversas personas, sino que debe designarse a un coordinador, auxiliado por un equipo técnico, al que se le debe encomendar la conducción del proyecto en sus fases de diseño, implantación y actualización. De esta manera se logra homogeneidad en el contenido y presentación de la información. Por lo que respecta a las características del equipo técnico, es conveniente que sea personal con un buen manejo de las relaciones humanas y que conozca a la organización en lo que concierne a sus objetivos, estructura, funciones y personal. Para este tipo de trabajo, una organización puede nombrar a la persona que tenga los conocimientos y la experiencia necesarios para llevarlo a cabo. Por la naturaleza de sus funciones puede encargarlo al titular de el área específica. Asimismo, puede contratar los servicios de consultores externos.

4.1. Mapa de navegación. muestra de forma gráfica la interconexión entre cada una de las pantallas del sistema, lo que serviría para saber como llegar a determinada parte de la aplicación. En este se muestran los menús, submenús y pantallas a las que nos lleva cada uno de ellos.

4.2. Descripción gráfica del mapa de navegación. En el anterior aparece de forma de diagrama de flujo y en esta sección deberá aparecer ya con las respectivas pantallas.

4.3. Describe paso a paso los procesos, así como pantallas, botones, cuadros de texto, etc., pero también se muestra el código de cada rutina, pantalla, botón, etc. es decir, se muestra lo que hay detrás de la interfaz del usuario.

lunes, 2 de mayo de 2011

Manual de usuario

El manual de usuario es un documento técnico de un determinado sistema que intenta dar asistencia a sus usuarios.


Los manuales de usuario generalmente son incluidos a dispositivos electrónicos, hardware de computadora y aplicaciones. Pueden venir tanto en forma de libro como en forma de documento digital, e incluso poder ser consultado por internet.En general, un manual de usuario debería poder ser entendido por cualquier usuario principiante, como así también serle útil a usuarios avanzados.



Contenido básico de un manual de usuario

- Portada: de que se trata el documento y quien lo elaboro.
- Un prefacio: con información sobre cómo usar el propio manual.
- Introducción: describe el uso del documento (¿para qué sirve?) y de que habla.
- Un índice del contenido del manual.
- Análisis y requerimientos del sistema (¿que se ocupa para poder instalarlo y usarlo?).
- Explicación del funcionamiento: se debe de poner paso a paso y con pantallas bien explicadas cómo funciona el programa.
- Una sección para la resolución de problemas.
- Información de contacto.
- Una FAQ.
- Glosario.



Al elaborarse un manual de usuario informático deben tomarse en cuenta los siguientes puntos:

- Debe ser escrito de tal manera, que cualquier persona pueda entenderlo con la menor dificultad posible.
- Es recomendable, detallar todos aquellos pasos que se llevan a cabo para usar el programa.
- Especificar los alcances y las limitaciones que tiene el programa. Un buen punto de partida para un manual de usuario, es hacer de cuenta que las personas que lo van a leer no tienen el mas mínimo conocimiento sobre computadores.


Ingeniería de Software

La ingeniería de software es la disciplina o área de la Ingeniería que ofrece métodos y técnicas para desarrollar y mantener software. La Ingeniería del Software trata de sistematizar el proceso de creación del software con el fin de acotar el riesgo del fracaso en la consecución del objetivo creativo por medio de diversas técnicas. Esta ingeniería trata con áreas muy diversas de la informática y de las ciencias de la computación, tales como construcción de compiladores, sistemas operativos, o desarrollos Intranet/Internet, abordando todas las fases del ciclo de vida del desarrollo de cualquier tipo de sistemas de información y aplicables a infinidad de áreas.

La ingeniería de software afecta a la economía y las sociedades de variadas formas.

Con la industria del lenguaje está hallando cada vez más campos de aplicación a escala global.

La ingeniería de software cambia la cultura del mundo debido al extendido uso de la computadora.


Metodología

La ingeniería de software requiere llevar a cabo numerosas tareas, dentro de etapas como las siguientes:

Análisis de requerimientos

Extraer los requisitos y requerimientos de un producto de software es la primera etapa para crearlo. Se requiere de habilidad y experiencia en la ingeniería de software para reconocer requerimientos incompletos, ambiguos o contradictorios. El resultado del análisis de requerimientos con el cliente se plasma en el documento ERS, Especificación de Requerimientos del Sistema, cuya estructura puede venir definida por varios estándares, tales como CMMI. Asimismo, se define un diagrama de Entidad/Relación, en el que se plasman las principales entidades que participarán en el desarrollo del software.

La captura, análisis y especificación de requerimientos (incluso pruebas de ellos), es una parte crucial; de esta etapa depende en gran medida el logro de los objetivos finales. Se han ideado modelos y diversos procesos de trabajo para estos fines.

Especificación

La Especificación de Requisitos describe el comportamiento esperado en el software una vez desarrollado. Consiste en la identificación de las necesidades del negocio, así como la interacción con los usuarios funcionales para la recolección, clasificación, identificación, priorización y especificación de los requisitos del software.

Entre las técnicas utilizadas para la especificación de requisitos se encuentran:

- Casos de Uso: es una secuencia de interacciones que se desarrollarán entre un sistema y sus actores en respuesta a un evento que inicia un actor principal sobre el propio sistema.

- Historias de usuario: es una representación de un requerimiento de software escrito en una o dos frases utilizando el lenguaje común del usuario. Son una forma rápida de administrar los requerimientos de los usuarios sin tener que elaborar gran cantidad de documentos formales y sin requerir de mucho tiempo para administrarlos.

Arquitectura

El Arquitecto de Software es la persona que añade valor a los procesos de negocios gracias a su valioso aporte de soluciones tecnológicas. La Arquitectura de Software consiste en el diseño de componentes de una aplicación (entidades del negocio), generalmente utilizando patrones de arquitectura. El diseño arquitectónico debe permitir visualizar la interacción entre las entidades del negocio y además poder ser validado. Un diseño arquitectónico describe en general el cómo se construirá una aplicación de software. Para ello se documenta utilizando diagramas, por ejemplo:

- Diagramas de clases
- Diagramas de base de datos
- Diagramas de despliegue plegados
- Diagramas de secuencia multidireccional

Siendo los dos primeros los mínimos necesarios para describir la arquitectura de un proyecto que iniciará a ser codificado. Dependiendo del alcance del proyecto, complejidad y necesidades, el arquitecto elige qué diagramas elaborar. Entre las herramientas para diseñar arquitecturas de software se encuentran:

- Enterprise Architect
- Microsoft Visio for Enterprise Architects

Programación

La complejidad y la duración de esta etapa está íntimamente relacionada al o a los lenguajes de programación utilizados, así como al diseño previamente realizado.

Prueba

Consiste en comprobar que el software realice correctamente las tareas indicadas en la especificación del problema. Una técnica de prueba es probar por separado cada módulo del software, y luego probarlo de forma integral, para así llegar al objetivo. En general hay dos grandes formas de organizar un área de pruebas, la primera es que esté compuesta por personal inexperto y que desconozca el tema de pruebas, de esta forma se evalúa que la documentación entregada sea de calidad, que los procesos descritos son tan claros que cualquiera puede entenderlos y el software hace las cosas tal y como están descritas. El segundo enfoque es tener un área de pruebas conformada por programadores con experiencia, personas que saben sin mayores indicaciones en qué condiciones puede fallar una aplicación y que pueden poner atención en detalles que personal inexperto no consideraría.

Documentación

Incluye todo lo concerniente a la documentación del propio desarrollo del software y de la gestión del proyecto, casos de uso diagramas, pruebas, manuales de usuario, manuales técnicos, etc; con el propósito de eventuales correcciones, usabilidad, mantenimiento futuro y ampliaciones al sistema.

Mantenimiento

Mantener y mejorar el software para enfrentar errores descubiertos y nuevos requisitos. Esto puede llevar más tiempo incluso que el desarrollo inicial del software. Una pequeña parte de este trabajo consiste en arreglar errores, o bugs. La mayor parte consiste en extender el sistema para hacer nuevas cosas.


Modelos de desarrollo de software

La ingeniería de software tiene varios modelos, paradigmas o filosofías de desarrollo en los cuales se puede apoyar para la realización de software, de los cuales destacan los siguientes por ser los más utilizados y los más completos:

- Modelo en cascada o Clásico (modelo tradicional)
- Modelo de prototipos
- Modelo en espiral
- Desarrollo por etapas
- Desarrollo iterativo y creciente o Iterativo e Incremental
- RAD (Rapid Application Development)
- Desarrollo concurrente
- Proceso Unificado
- RUP (Proceso Unificado de Rational)

La Ingeniería de Software tiene que ver con varios campos en diferentes formas:

- Matemáticas: los programas tienen muchas propiedades matemáticas. Por ejemplo la corrección y la complejidad de muchos algoritmos son conceptos matemáticos que pueden ser rigurosamente probados. El uso de matemáticas en la Ingeniería de Sistemas es llamado “métodos formales”.

- Creación: los programas son construidos en una secuencia de pasos. El hecho de definir propiamente y llevar a cabo estos pasos, como en una línea de ensamblaje, es necesario para mejorar la productividad de los desarrolladores y la calidad final de los programas.

- Gestión de Proyectos: el software comercial requiere gestión de proyectos. Hay presupuestos y establecimiento de tiempos. Gente para liderar. Recursos por adquirir.

- Arte: los programas contienen muchos elementos artísticos. Las interfaces de usuario, la codificación, etc. Incluso la decisión para un nombre de una variable o una clase.