Guía para la documentación de proyectos de software

Documentos relacionados
Especificación de Requerimientos <Nombre del Proyecto> Nombre del Grupo de Desarrollo o Asignatura Nombre del Autor

Sistema de Administración de Farmacias Modelo de Diseño Versión 1.0. Historia de revisiones

Programación Orientada a Objetos

Tema II: Metodología para la construcción de programas. Profesora: Nelly García Mora

Control del Documento

CAPÍTULO 3. Metodología para la elaboración de. manuales de procedimientos

NÚMERO DE HORAS: 160H PROGRAMACIÓN WEB EN EL ENTORNO CLIENTE OBJETIVO

Estrategia de Pruebas

Memoria de la Práctica del. Laboratorio de Circuitos

INFORMACION GENERAL DEL PROGRAMA DE FORMACION DENOMINACIÓN DEL PROGRAMA: PROGRAMACION DE SOFTWARE. Productiva 6 MESES

IEEE-std Práctica Recomendada para la Especificación de Requerimientos de Software

Clasificación de las Herramientas CASE

Tecnología hardware y software

SERVICIO NACIONAL DE APRENDIZAJE SENA SISTEMA INTEGRADO DE GESTIÓN Procedimiento Ejecución de la Formación Profesional Integral GUÍA DE APRENDIZAJE

Guía práctica de estudio 09: UML

Tema II: Metodología para la construcción de programas

MATRIZ DE VALORACIÓN O RÚBRICA. Actividad de evaluación:

Ministerio de Agricultura y Ganadería Manual para elaborar y documentar procedimientos en el Ministerio de Agricultura y Ganadería

Modelo de memoria del proyecto

Principios de la Tecnología de Objetos

Nombre de la asignatura: Programación Básica. Créditos: Objetivo de aprendizaje

DIAGRAMAS DE FLUJO. Tabla de contenido

Diagramas De Casos De Uso

M. C. Felipe Santiago Espinosa

Cuerpo de Profesores Técnicos de Formación Profesional

Metodologías para Sistemas Multi-agente

Metodología Scrum. Entregables para la primera Fase

Planeador de Torneos y Competencias: PLATYCO. Documentación de la Arquitectura de Software

Evaluación por Suficiencia

Instructivo para la elaboración de un Manual de Usuario

Diseño Estructurado de Algoritmo

INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño

Objetivos. Plan. Cambios de grupos Prof. sustituto: Alicia Villanueva

Sistema de Administración de Farmacias Descripción de la Arquitectura Versión 1.1. Historia de revisiones

Programación Orientada a Objetos

Aseguramiento de Calidad en el Desarrollo de Software Libre

CONSEJO DE NORMALIZACIÓN Y CERTIFICACIÓN DE COMPETENCIA LABORAL NORMAS TÉCNICAS DE COMPETENCIA LABORAL

Ingeniería de Requerimientos. requiere de un Sistema de Software.

GDS: Determinación de dependencias en programación orientada a objetos y extracción del código implicado

Programación de Ordenadores

12/08/2017. Casos de uso. Casos de uso. Casos de uso. Casos de uso

Diseño estructurado de algoritmos. Sesión 8: Estructuras Algorítmicas

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Nombre de la asignatura: Diseño Estructurado de Algoritmos. Carrera: Ingeniería en Sistemas Computacionales. Clave de la asignatura: SCB-9316

TEMA 6: INTRODUCCIÓN A UML

ORGANISMO COORDINADOR DEL SISTEMA ELÉCTRICO NACIONAL INTERCONECTADO DE LA REPÚBLICA DOMINICANA

ESQUEMA DEL TRABAJO DE INVESTIGACIÓN (TI)

UML. (Unified Modeling Language) Lenguage Unificado de Modelado

2.1 METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS

PRUEBA DE SOFTWARE LA PRUEBA DE UN SISTEMA

Programación de la lógica: Se programa el funcionamiento de la aplicación, haciendo uso de los diagramas de clases y de actividad.

Programa Regular. conocimientos generales acerca de la Ingeniería de Software. Se aplicaran los

octubre de 2007 Arquitectura de Software

Introducción histórica

Unidad de Competencia I Elementos de Competencia Requerimientos de información

Tipos Abstractos de Datos (TAD) Lección 1

UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL CARRERA DE INGENIERÍA DE SOFTWARE

Lineamientos para Establecer los Estándares

Programación Orientada a Objetos. Sesión 6: El Elemento adicional del lenguaje orientado a objetos

CIDE, SA. RIF: J NIT: MODELO FUNCIONAL

Agenda. Problemática. Pregunta generadora. Objetivo general y objetivos específicos. Desarrollo del trabajo de grado. Conclusiones.

HERRAMIENTAS PARA QUÍMICA VERSIÓN MÓDULO NOMENCLATURA Y FÓRMULAS DE COMPUESTOS QUÍMICOS INORGÁNICOS

Redacción del Proyecto Fin de Carrera 1

Ingeniería del Software Herramientas CASE Que es CASE? Ingeniería de sistemas asistida por computadoras (Computer-aised system engineering, o CASE)

DIAGRAMAS DE CASOS DE USO. Prof. Hooberth Chávez Bedoya

Informe y Presentación de Proyectos v 3

DISEÑO ARQUITECTURA DEL SOFTWARE

Sistema de Información Geográfica siginfocentros Arquitectura del Sistema

Documento de Requisitos. Estacionamiento Inteligente

Registrar información o datos de una persona REQUERIMIENTO QUE LO UTILIZA O ESPECIALIZA:

Cristian Blanco

DOCUMENTO FINAL PROYECTO DE EMPRENDIMIENTO (PLAN DE NEGOCIO)

Contenido. Prefacio Orígenes de la programación orientada a objetos... 1

PROYECTO ENTORNOS DE USUARIO. Parte 1. Análisis del Entorno de Usuario

Contenido. 1 Qué es un diagrama de clase? 2 Elementos de un diagrama de clase. 3 Clase, atributo, método y visibilidad. 4 Agregación y composición

Proceso de diseño. Programador. Requerimientos. Analista DIS03: Matriz componentes vs.

Historial de Revisiones

CARTILLA GUIA PARA INFORMES 1 LINEA CAPACITACION PROGRAMA PROYECTO SOCIAL UNIVERSITARIO

Programa Regular. Programación y Bases de Datos es una materia obligatoria correspondiente al segundo año de la carrera de Bioingeniería.

Mantenimiento de Software

ANÁLISIS ESTRUCTURADO

Plantilla SVVP (Software Verification & Validation Plan) Trabajo de grado Ingeniería de Sistemas Pontificia Universidad

1 Software de una computadora 2 Sistemas operativos 3 Manejo avanzado y programación en ms-dos 4 Lenguajes de programación

PROCEDIMIENTO PARA EL DESARROLLO DE SOFTWARE

INGENIERÍA DEL SOFTWARE

Análisis Costo-Eficiencia

Escribir programas a partir de un diagrama de flujo

INGENIERÍA DEL SOFTWARE

ANEXO 1 OPCIÓN: ANÁLISIS DE CASO

1. Asignar Responsabilidades a componentes de software es la habilidad más importante del AOO. Porque:

Propuesta de Mejoras a la Primera Versión de la Metodología de Desarrollo de Software Libre

ARQUITECTURAS DE SOFTWARE

OBJETIVOS ESPECIFICOS:

METODOLOGÍAS DE DESARROLLO DE SOFTWARE

Análisis Costo-Beneficio

Tema 2.- Caracterización de la informática La informática como disciplina científica Sub-áreas de la disciplina.

Programa Formativo IMSV DESARROLLO DE PRODUCTOS AUDIOVISUALES MULTIMEDIA INTERACTIVOS

TECNOLOGÍAS DE LA INFORMACIÓN Y DE LA COMUNICACIÓN I 1º BACHILLERATO

METRICA VERSION MÉTRICA versión 3. Metodología de Planificación, Desarrollo y Mantenimiento de Sistemas de Información

Guía del Curso Técnico en Mantenimiento de CRM: Recursos Empresariales y de Gestión de Relaciones con Clientes

Transcripción:

Estructura y contenido Guía para la documentación de proyectos de software Organización de Computadoras Universidad Nacional del Sur 2017 1. Definiciones y especificación de requerimientos Los requerimientos/requisitos de un sistema describen los servicios que ha de ofrecer el sistema y las restricciones asociadas a su funcionamiento, es decir, las propiedades o restricciones que deben satisfacerse, determinadas de forma precisa. En este apartado se brindarán tres aspectos informativos: a) Definición general del proyecto de software: explicar en qué consiste el sistema o desarrollo en cuestión, cuál es la idea general y la funcionalidad principal del proyecto de software, así como también los propósitos y objetivos del desarrollo. b) Especificación de requerimientos del proyecto: incluir el detalle de los requerimientos técnicos y generales del mismo (por ejemplo, en el caso de un proyecto de software de la UNS, las consignas y pautas del mismo), los alcances y limitaciones de la implementación realizada. Deberá aclararse si el proyecto de software forma parte de algún sistema ya desarrollado; de ser el caso, especificar si se desarrolló una nueva versión o es una derivación. c) Procedimientos de instalación y prueba: detallar cómo se realiza la obtención, instalación y/o prueba del sistema, junto las especificaciones generales de la plataforma o el entorno sobre el cual el software debe ser ejecutado. De la definición general del proyecto de software En la definición del proyecto se deberá brindar detalle sobre los puntos que se definen a continuación: Idea general: la funcionalidad principal del sistema (qué..?) Objetivos: los objetivos del desarrollo, y la necesidad cubierta por el sistema en cuestión (para qué..?)

Usuarios: las personas o entidades que utilizarán el sistema o parte de él, y el nivel de experiencia del usuario hacia el cual el presente informe está dirigido (quién..?) De las especificación de requerimientos del proyecto de software Dentro de la especificación de requerimientos se dará información del proyecto de software sobre los siguientes puntos: Requisitos generales: las pautas y consignas que sigue el proyecto de software. Requisitos funcionales: los servicios que el sistema proporciona, las tareas que éste desarrolla. Información de autoría y Legacy del proyecto: explicitar si el proyecto de software forma parte de desarrollos previos/preexistentes o si es original, y en el caso correspondiente, detalles de retro-compatibilidad. Alcances del sistema: las limitaciones y alcances del desarrollo, de acuerdo a los objetivos previamente establecidos. De las especificaciones de procedimientos Dentro de la información relativa a procedimientos se distinguirá: Procedimientos de desarrollo: Herramientas utilizadas: entornos de desarrollo integrados, plataformas y herramientas empleadas en la implementación del sistema. Planificación: una descripción global de la metodología utilizada para encarar y resolver el problema; por ejemplo: los pasos ejecutados a lo largo de la resolución del proyecto, a grandes rasgos. Procedimientos de instalación y prueba: Requisitos no funcionales: si las hubiere, restricciones que afectan el normal desempeño del sistema. Obtención e instalación: una guía sencilla que explique el procedimiento básico para obtener e instalar el sistema. La guía debe estar dirigida a usuarios con nivel de experiencia preestablecido en la definición general del proyecto. Especificaciones de prueba y ejecución: datos técnicos sobre la plataforma y/o entornos a utilizar en la prueba o ejecución del software en cuestión.

1. Arquitectura del sistema Incluso un software de tamaño pequeño consta de la composición de varios módulos o partes interconectados de alguna forma. La descripción de la arquitectura del sistema informa sobre cuáles son estas partes, qué rol tienen dentro del software y la forma en que estas se organizan e interconectan. La información sobre la arquitectura debería incluir como mínimo: Descripción jerárquica: Indica de qué forma se organizan jerárquicamente los componentes del sistema. Es decir, indicar si los mismos están organizados en paquetes, espacios de nombres o bien si el software posee una estructura monolítica. Diagrama de módulos: Consiste en un diagrama donde se representan todas las partes que componen el sistema y las relaciones que existen entre estas. El objetivo de este diagrama consiste en presentar una perspectiva global de la arquitectura y los componentes del sistema, no debería contener detalles técnicos sobre los módulos o las conexiones entre estos. Descripción individual de los módulos: Para cada módulo o parte del sistema, se debería realizar una breve descripción del mismo, la cual debería incluir mínimamente: Descripción general y propósito: qué es y qué debería hacer el módulo? Responsabilidad y restricciones: cuál es su función específica dentro del sistema? qué cosas puede y no puede hacer? Dependencias: Indicar cuales son los requisitos del módulo, es decir se debe contestar a preguntas tales como qué necesita o requiere el módulo para funcionar? necesita de servicios brindados por otros módulos o por librerías externas? Implementación: indicar en qué archivo o archivos se encuentra la implementación del módulo. No es el objetivo de esta sección dar detalles de cómo se realiza la implementación de los módulos, sino únicamente dar una idea general de para qué existe el módulo dentro del sistema. Dependencias externas: Si el software utiliza librerías o servicios externos estos deben listarse junto con una breve descripción de las mismas.

Adicionalmente en esta sección se deben listar los aspectos técnicos o tecnologías empleadas en el proyecto, tales como el lenguaje de programación, frameworks, librerías, etc. Puede resultar de utilidad incluir junto a estos una breve descripción de las decisiones de diseño asociadas que llevaron a elegir la o las tecnologías en particular, es decir responder a por qué se utilizó esta tecnología y no otra? 1. Diseño del modelo de datos Distinguir cuáles son las entidades involucradas en el sistema y mencionarlas en un formato languageagnostic. Puede ser un diseño orientado a objetos, relacional, etc., lo importante es tener una idea general del modelo de datos: entidades, atributos y las relaciones entre ellas. Para ello es imprescindible incluir diagramas o gráficos que ayuden a visualizar el modelo de datos. Un programa, aplicación o librería puede a su vez trabajar con varios tipos de datos: - Datos de entrada. - Datos internos. - Datos de salida. Distinguir claramente cada uno de ellos y describir su modelo. 1. Descripción de procesos y servicios ofrecidos por el sistema Mencionar cuáles son los servicios o tareas que el sistema ofrece/implementa, y describir los procesos que realizan, para entender cómo funcionan, y cómo se pueden invocar/utilizar. Para este propósito es conveniente incluir pseudo-algoritmos, diagramas de flujo, etc. Tener presente que la descripción del proceso no significa mostrar el código, ni consiste tampoco brindar detalles específicos de cómo lo hace (funciones utilizadas para hacer cierta tarea) sino de explicar brevemente qué hace o cuál es su propósito. Se espera también una descripción de los datos de entrada y salida (Cantidad de argumentos, tipo y significado de cada uno). En este punto es imprescindible que el código fuente de la aplicación esté enriquecido con comentarios. Estos deben conformar la documentación básica de todo proyecto, y a partir de los mismos debería poder construirse la descripción de alto nivel del funcionamiento de los procesos y servicios del sistema, así como sus funciones, subrutinas, módulos, clases, etc.

2. Documentación técnica - Especificación API Se indica el propósito y breve descripción de cada método/función, con su prototipo indicando argumentos (nombre, tipo, propósito de cada uno) y respuesta (tipo, descripción). Para llevar a cabo esta tarea, es posible utilizar una variedad de herramientas de generación de documentación automática, a partir del código en el encabezado de cada función (por ejemplo Javadoc, PHPDoc, Doxygen, etc). La documentación técnica debe pensarse como el manual del programador, y debe apuntar a aquellas personas que estarán a cargo de mantener, ampliar, o crear un proyecto derivado a partir de nuestro proyecto. Aspectos relevantes Indicar claramente cómo invocar el programa (signatura del programa completa, como la que haría cualquier sinopsis de una página de manual), conteniendo qué parámetros son opcionales, cuales son obligatorios, y documentar bien cuál es la utilidad de cada parámetro y cuál es el comportamiento por defecto si se omite algún parámetro opcional. Esto conforma comúnmente el manual del usuario final de la aplicación. Incorporar diagramas de flujo y explicaciones a nivel método de la solución, debe explicarse la estrategia general de resolución donde se pueda apreciar cómo interactúan los módulos entre sí. Los tipos de datos abstractos (TDAs) deben estar adecuadamente documentados en el código, por otra parte, en el manual deben constar las limitaciones posee la representación, cómo se representa una determinada estructura y detalle de métodos que provee el TDA para la manipulación de los datos. Incluir una sección de Conclusiones, donde se deben resumir complicaciones encontradas durante el desarrollo del proyecto, políticas adoptadas para su resolución, restricciones al problema original, casos particulares y finalmente aspectos relacionados a la experiencia obtenida en base a la temática del proyecto. Herramientas Existen aplicaciones que permiten la generación automática de documentación para código en lenguaje C, entre las mismas se puede citar el programa Doxygen http://www.doxygen.org.