Fundamentos del diseño de software
|
|
|
- Rafael José Luis Rivero Miguélez
- hace 10 años
- Vistas:
Transcripción
1 Fundamentos del diseño de software El diseño es el primer paso de la fase de desarrollo de cualquier producto o sistema de ingeniería. Definición de diseño según Taylor Proceso de aplicar distintas técnicas y principios con el propósito de definir un dispositivo, proceso o sistema con los suficientes detalles como para permitir su realización física El diseño de software, al igual que los métodos de diseño de todas las ingenierías, cambian continuamente al aparecer nuevos métodos, mejores análisis y ampliar los conocimientos. El problema es que el diseño de software se encuentra en una etapa relativamente temprana en su evolución. La idea de realizar diseño de software en lugar de programar, surgió a principios de los años 60, por lo que a las metodologías de diseño les falta la profundidad y la flexibilidad que tiene el diseño en otras ingenierías. Pero, ya existen técnicas de diseño de software para poder evaluar la calidad del software. El objetivo de este tema es presentar los conceptos fundamentales que se pueden aplicar a todos los diseños de programas. 1. Ingeniería del software y diseño del software Una vez que se han establecido los requisitos del software, el diseño es la primera de tres actividades técnicas: diseño, codificación y prueba. Cada actividad transforma la información de forma que al final se obtiene un software validado. El diseño es técnicamente la parte central de la ingeniería del software. Durante el diseño se desarrollan, revisan y se documentan los refinamientos progresivos de las estructuras de datos, de la estructura del programa y de los detalles procedimentales. El diseño da como resultado representaciones cuya calidad puede ser evaluada. Mediante algunas metodologías de diseño se realiza el diseño de datos, el diseño arquitectónico y el diseño procedimental. El diseño de datos transforma el modelo de campo de información, creado durante el análisis, en las estructuras de datos que se van a requerir para implementar el software. El diseño arquitectónico define las relaciones entre los principales elementos estructurales del programa. El diseño procedimental transforma los elementos estructurales en una descripción procedimental del software. A continuación, se genera el código fuente y, para integrar y validar el software, se llevan a cabo las pruebas. 1
2 Las fases de diseño, codificación y prueba absorben el 75% o más del coste de la ingeniería del software (excluyendo el mantenimiento). Es aquí donde se toman las decisiones que afectarán finalmente al éxito de la implementación del programa, y también, a la facilidad de mantenimiento que tendrá el software. Por tanto el diseño es un paso fundamental de la fase de desarrollo. El diseño es la única forma mediante la que podemos traducir con precisión los requisitos del cliente en un producto o sistema acabado. El diseño de software es la base de todas las partes posteriores del desarrollo y de la fase de prueba, como muestra la figura 1. Figura 1. Importancia del diseño Sin diseño, nos arriesgamos a construir un sistema inestable, un sistema que falle cuando se realicen pequeños cambios, un sistema que sea difícil de probar, un sistema cuya calidad no pueda ser evaluada hasta más adelante, cuando quede poco tiempo y ya sea haya gastado mucho dinero. 2. El proceso de diseño El diseño del software es un proceso mediante el que se traducen los requisitos en una representación del software, que se acerca mucho al código fuente. Desde el punto de vista de la gestión del proyecto, el diseño del software se realiza en dos etapas: el diseño preliminar y el diseño detallado. El diseño preliminar se centra en la transformación de los requisitos en los datos y la arquitectura del software. El diseño detallado se ocupa del refinamiento y de la representación arquitectónica que lleva a una estructura de datos refinada y a las representaciones algorítimicas del software. Además del diseño de datos, del diseño arquitectónico y del desarrollo procedimental, muchas aplicaciones modernas requieren un diseño de la interfaz. 2
3 Punto de vista técnico Punto de vista gestión Diseño preliminar Diseño detallado Diseño de datos * * Diseño arquitectónico * Diseño procedimental * Diseño de la interfaz * * Figura 2. Relación entre los puntos de vista de gestión y técnicos 2.1. DISEÑO Y CALIDAD DEL SOFTWARE A lo largo del proceso de diseño, la calidad del diseño se evalúa mediante una serie de revisiones técnicas formales (RTF) que son una actividad de garantía del software cuyos objetivos son: 1) Descubrir los errores en la función, la lógica o la implementación de cualquier representación del software. 2) Verificar que el software alcanza sus requisitos. 3) Garantizar que el software se ha representado según los estándares establecidos. 4) Conseguir un software desarrollado de forma uniforme. 5) Hacer que los proyectos sean manejables. Cada RTF se lleva a cabo mediante una reunión y sólo tendrá éxito si está bien planificada, controlada y atendida. A continuación, se listan una serie de criterios para determinar la calidad del software. 1) Un diseño debe tener una organización jerárquica. 2) Un diseño debe ser modular, es decir, el software debe estar dividido en elementos que realicen funciones específicas. 3) Un diseño debe tener representaciones distintas y separadas de los datos y de los procedimientos. 4) Un diseño debe llevar a módulos que exhiban características funcionales independientes. 5) Un diseño debe conducir a interfaces que reduzcan la complejidad de las conexiones entre los módulos y el exterior. 6) Un diseño debe obtenerse mediante un método que sea reproducible y que esté dirigido por la información obtenida durante el análisis de requerimientos. Un buen diseño de software no se consigue fácilmente, resultando de la aplicación de principios fundamentales de diseño, de una metodología sistemática y de una revisión exhaustiva. 3
4 2.2. CARACTERÍSTICAS COMUNES DE LAS METODOLOGÍAS DE DISEÑO Independientemente de la metodología de diseño que se utilice, todas tienen varias características comunes: 1) Mecanismo para la traducción de requisitos en una representación de diseño. 2) Notación para representar los componentes funcionales y sus interfaces. 3) Heurísticas para el refinamiento y la partición. 4) Criterios para la valoración de la calidad. Independientemente de la metodología de diseño que se utilice, el desarrollador tiene que aplicar una serie de conceptos fundamentales al diseño de datos, arquitectónico y procedimental. 3. Fundamentos del diseño Los fundamentos del diseño ayudan al desarrollador de software a responder a estas preguntas: Qué criterios puedo utilizar para dividir el software en componentes individuales? Cómo se separan los detalles de una función o de la estructura de los datos de la representación conceptual del software? Existen criterios uniformes que definan la calidad técnica de un diseño de software? Cita de Michael A. Jackson El principio de la sabiduría de un programador está en reconocer la diferencia entre obtener un programa que funcione y uno que funcione correctamente ABSTRACCIÓN Cuando se considera una solución modular para cualquier problema, pueden formularse varios niveles de abstracción. En el nivel superior de abstracción se establece una solución en términos generales, en lenguaje natural. En los niveles inferiores de abstracción se utiliza una orientación más procedimental. Por último, en el nivel más bajo de abstracción, se establece una solución, de forma que pueda implementarse directamente. Cada paso de los procesos de la ingeniería del software es un refinamiento del nivel de abstracción de la solución software. Conforme nos movemos desde los preliminares hacia el diseño detallado, se reduce el nivel de abstracción. Finalmente, el nivel más bajo de abstracción se alcanza cuando se genera el código fuente. 4
5 Conforme nos movemos por los diferentes niveles de abstracción, trabajamos para crear abstracciones de datos y de procedimientos. Una abstracción de datos es un conjunto de datos que describen un objeto, como puede ser el DNI de una persona, que está compuesta por conjunto de partes de información, pero que nos podemos referir a todos los datos mencionando el nombre de la abstracción de datos. Una abstracción procedimental es una determinada secuencia de instrucciones que tienen una función limitada y específica, como puede ser mover objeto, que supone la secuencia de pasos abrir pinza, mover hasta posición de destino 1, cerrar pinza, mover hasta posición 2, abrir pinza, mover hasta posición origen, cerrar pinza. Estas abstracciones permiten al diseñador representar un objeto a diferentes niveles de detalle REFINAMIENTO El refinamiento sucesivo es una primera estrategia de diseño descendente propuesta por Niklaus Wirth. La arquitectura de un programa se desarrolla en niveles sucesivos de refinamiento de los detalles procedimentales. Se desarrolla una jerarquía descomponiendo una función de forma sucesiva hasta que se llega a las sentencias del lenguaje de programación. Comenzamos con una declaración de la función (o una descripción de la información) definida a un nivel superior de abstracción. Es decir, la declaración describe la función o la información conceptualmente, pero no proporciona información sobre el funcionamiento interno de la función o sobre la estructura interna de la información, sino que se va a realizando sucesivamente, dando cada vez más detalles MODULARIDAD El software se divide en componentes con nombres y ubicaciones determinados, que se denominan módulos y que se integran para satisfacer los requisitos del proveedor. El software monolítico (es decir, un programa grande compuesto de un solo módulo) no puede ser estudiado fácilmente por un lector, ya que el número de caminos de control, el número de variables y la complejidad global harían el código prácticamente indescifrable. Mátemáticamente, esto se explica de esta forma: Sea C(x) una función que defina la complejidad de un problema x, y E(x) una función que defina el esfuerzo de desarrollo de un problema x. 5
6 Para dos problemas p 1 y p 2, si se deduce que C(p 1 ) > C(p 2 ) E(p 1 ) > E(p 2 ) Además, se cumple que y que C(p 1 + p 2 ) > C(p 1 ) + C(p 2 ) E(p 1 + p 2 ) > E(p 1 ) + E(p 2 ) Esto nos lleva a la conclusión divide y vencerás, por tanto la modularidad del software facilita el desarrollo del mismo, pero hasta un cierto límite, porque si llegáramos a dividir el problema en infinitos módulos, los módulos tendrían una complejidad y un esfuerzo mucho menor, pero crecería el coste asociado a la creación de interfaces entre los módulos, tal y como muestra la figura 3. Figura 3. Modularidad y coste del software 3.4. ARQUITECTURA DEL SOFTWARE La arquitectura del software se refiere a dos características importantes del software: La estructura jerárquica de los módulos del software La estructura de los datos La arquitectura del software se obtiene mediante un proceso de partición, que relaciona los problemas del mundo real (definidos en el análisis de requerimientos) con las soluciones software para resolver los problemas software. Figura 4. Evolución de la estructura 6
7 Este proceso de transición entre el análisis de requerimientos y el diseño se representa es el que representa la figura JERARQUÍA DE CONTROL También se le conoce como estructura del programa, y representa la organización jerárquica de los módulos de un programa e implica una jerarquía de control. La representación de jerarquía se suele representar con diagramas de árbol, aunque también se pueden utilizar otros tipos de notaciones. La figura 5 muestra un ejemplo de una estructura de un programa. Figura 5. Estructura de un programa A continuación definiremos los algunos términos relacionados con la figura 5. Profundidad: Número de niveles de control Anchura: Amplitud global del control Grado de salida: Número de módulos que controla un módulo Grado de entrada: Número de módulos que controlan a un módulo Visibilidad: Conjunto de componentes del programa que pueden ser invocados por un módulo (Herencia en entornos de POO). Todos los objetos serían visibles para el módulo Conectividad: Conjunto de componentes a los que se invoca directamente o se utilizan sus datos. (La ejecución de un módulo puede suponer la ejecución de otro módulo) 3.6. ESTRUCTURA DE DATOS La estructura de datos es una representación de la lógica que existe entre los elementos individuales de información. Debido a que la estructura de la información afectará de forma determinante al diseño procedimiental, la estructura de datos es tan importante como la estructura del programa en la representación de la arquitectura del software. La estructura de datos dicta la organización, los métodos de acceso, el grado de asociatividad y las alternativas para el tratamiento de la información. 7
8 Las estructuras de datos clásicas son los elementos escalares, los arrays, las listas y los árboles PROCEDIMIENTOS DEL SOFTWARE La estructura del programa define la jerarquía de control, independientemente de las decisiones y secuencias de procesamiento. El procedimiento del software se centra en los detalles de procesamiento de cada módulo individual, como muestra la figura 6. Figura 6. Procedimiento dentro de un módulo El procedimiento debe proporcionar una especificación precisa del procesamiento, incluyendo la secuencia de sucesos, los puntos concretos de decisiones, la repetición de operaciones e incluso la organización/estructura de los datos. Como existe una relación entre la estructura y el procedimiento, ya que el procesamiento de un módulo puede suponer la llamada a otros módulos. A esto se le conoce como representación procedimental del software por capas, como muestra la figura 7 Figura 7. Procedimiento realizado por capas 8
9 3.8. OCULTAMIENTO DE INFORMACIÓN El concepto de modularidad nos lleva a esta pregunta: cómo descomponer una solución de software en el mejor conjunto de módulos? El principio de ocultamiento de la información sugiere que los módulos deben especificarse de forma que la información (procedimientos y datos) contenida dentro de un módulo sea inaccesible a otros módulos que no necesiten tal información. Por tanto se trata de definir una serie de módulos independientes que se comuniquen sólo a través de la información necesaria para realizar la función de software. El uso de ocultamiento de información en el diseño facilitará las modificaciones, prueba y mantenimiento del software, ya que como la mayoría de los datos y de los procedimientos están ocultos a otras partes del software, será menos probable que los errores que se introduzcan durante la modificación se propaguen a otros módulos del software. 4. Diseño modular efectivo Todos los fundamentos del diseño anteriores sirven para incentivar los diseños modulares. Un diseño modular: Reduce la complejidad Facilita los cambios Implementación más sencilla Permite el desarrollo paralelo de partes diferentes de un sistema 4.1. TIPOS DE MÓDULOS Para la definición de módulos en una arquitectura de software se utiliza la abstracción y ocultamiento de información. Estos atributos tienen que ser traducidos a las características de ejecución del módulo, caracterizadas por el historial de ejecución, el mecanismo de activación y el camino de control, y que describimos a continuación: El historial de incorporación se refiere al momento en que se incluye el módulo en la descripción del software en lenguaje fuente. El mecanismo de activación se refiere a la forma en que se invoca a un módulo, que puede ser de referencia (mediante una llamada) o de interrupción (en aplicaciones en tiempo real, ocurre un evento en el mundo exterior) El camino de control de un módulo describe la forma en que se ejecuta internamente, y son los que se describen a continuación Módulos secuenciales Se ejecutan sin interrupción aparente por parte del software de la aplicación, es decir ejecutan secuencialmente una tarea. 9
10 Módulos incrementales También se les conoce como corrutinas, y pueden ser interrumpidos antes de que terminen por el software de la aplicación, y restablecerse posteriormente su ejecución en el punto en que se interrumpió Módulos paralelos Un módulo paralelo se ejecuta a la vez que otro módulo en entornos multiprocesadores INDEPENDENCIA FUNCIONAL La independencia funcional es una derivación directa de la modularidad, de la abstracción y del ocultamiento de información. La independencia funcional se adquiere desarrollando módulos con una función clara y con pocas relaciones con otros módulos, de forma que cada módulo se centra en una subfunción específica de los requerimientos y tenga una interfaz sencilla. Esta independencia tiene varias consecuencias positivas como son: Módulos independientes fáciles de desarrollar Creación de interfaces sencillas Facilidad para la prueba y el mantenimiento Se reduce la propagación de errores Se fomenta la reutilización de módulos. La independencia se mide con dos criterios cualitativos que son la cohesión y el acoplamiento Cohesión La cohesión es una extensión del concepto de ocultamiento de información. Un modulo cohesivo ejecuta una tarea sencilla de un procedimiento de software y requiere poca interacción con procedimientos que ejecutan otras partes de un programa. Dicho de forma sencilla, un módulo cohesivo sólo hace (idealmente) una cosa. Por tanto el diseñador debe comprender lo que es la cohesión y evitar la baja cohesión en el diseño de los módulos. Figura 8. Representación de la escala de cohesión 10
11 Lo importante es intentar conseguir una cohesión alta y saber reconocer la cohesión baja, de forma que pueda modificar el diseño del software para tener de una mayor independencia funcional Acoplamiento El acoplamiento es una medida de la interconexión entre los módulos de una estructura de programa. El acoplamiento depende de la complejidad de las interfaces entre los módulos y de los datos que pasan a través de la interfaz. En el diseño de software buscamos el acoplamiento más bajo posible. Una conectividad sencilla entre módulos da como resultado un software más fácil de comprender y menos propenso al efecto onda (propagación de errores a lo largo del sistema). 5. Diseño de datos El diseño de datos es la primera de las tres actividades de diseño realizadas durante la ingeniería del software. El impacto de la estructura de datos sobre la estructura de programa y la complejidad procedimental, hace que el diseño de datos tenga una gran influencia en la calidad del software. Los conceptos de ocultamiento de información y de abstracción de datos conforman la base de los métodos de diseño de datos. Según Wasserman La actividad principal durante la fase de diseño de datos es la selección de las representaciones lógicas de las estructuras de datos, identificados durante las fases de definición y especificación de requerimientos. Una actividad importante durante el diseño es la de identificar los módulos de programa que deben operar directamente sobre las estructuras de datos. De esta forma, puede restringirse el ámbito del efecto de las decisiones concretas de diseño de datos. Los datos bien diseñados conducen a: Mejor estructura de programa Modularidad efectiva Complejidad procedimental reducida 5.1. PRINCIPIOS PARA LA ESPECIFICACIÓN DE DATOS Los principios que se citan a continuación son la base del método de diseño de datos, y una definición clara de la información es esencial para el desarrollo de un buen software. 1. Los principios sistemáticos de análisis aplicados a la función y el comportamiento también deben aplicarse a los datos. Al igual que en la fases de análisis del sistema, también se debe: 11
12 Desarrollar y revisar las representaciones del flujo y del contenido de los datos. Identificar las estructuras de datos. Considerar estructuras de datos alternativas. Evaluar el impacto de la modelización de datos sobre el diseño del software Por ejemplo, la especificación de una lista enlazada circular puede satisfacer los requerimientos de los datos, pero también puede conducir a un diseño del software difícil de manejar, por lo que deberemos ver si existen otras estructuras de datos alternativas que lleven a resultados mejores. 2. Se deben identificar todas las estructuras de datos y las operaciones que se han de realizar sobre cada una de ellas. El diseño de una estructura eficiente debe tener en cuenta las operaciones que han de realizarse sobre dicha estructura de datos. Por ejemplo, la especificación de un tipo abstracto de datos puede simplificar considerablemente el diseño del software. 3. Debe establecerse y usarse un diccionario de datos para definir el diseño de los datos y del programa. Un diccionario de datos representa explícitamente las relaciones entre los datos y las restricciones sobre los elementos de una estructura de datos. 4. Se deben posponer las decisiones de diseño de datos de bajo nivel hasta más adelante en el proceso de datos. Para el diseño de datos puede seguirse un proceso de refinamiento sucesivo, es decir, puede definirse una organización global de los datos durante el análisis de requerimientos, refinarse durante el diseño preliminar y especificarse en detalle en el diseño detallado. 5. La representación de una estructura de datos sólo debe ser conocida por los módulos que hagan uso directo de los datos contenidos en la estructura. El concepto de ocultamiento de información y el concepto de acoplamiento asociado proporcionan una valoración importante de la calidad del diseño del software. 6. Se debe desarrollar una librería de estructuras de datos útiles y de las operaciones que se le pueden aplicar. Se pueden diseñar las estructuras de datos de forma que sean reusables, de forma que las estructuras de datos y las operaciones se vean como recursos para el diseño de software. 12
13 7. El diseño de software y el lenguaje de programación deben soportar la especificación y realización de tipos abstractos de datos. La implementación de una estructura de datos compleja puede convertirse en una tarea muy difícil si no hay una forma directa de realizar una especificación directa de la estructura de datos. 6. Diseño arquitectónico El objetivo principal del diseño arquitectónico es desarrollar una estructura de programa modular y representar las relaciones de control entre los módulos. Además el diseño arquitectónico mezcla la estructura de programas y la estructura de datos y define las interfaces que facilitan el flujo de los datos a lo largo del programa. Se trata de no centrarse en los detalles y código de los procedimientos (tareas que se realizan más adelante) sino en centrarse en la arquitectura del software que permita obtener una visión general del software. 7. Diseño procedimental EL diseño procedimental se realiza después de que se ha establecido la estructura del programa y de los datos. La especificación procedimental que define los algoritmos, cabe pensar que se podría especificar en lenguaje natural, pero debido a la cantidad de ambigüedades que este lenguaje acarrea, es necesario utilizar una forma más restringida de representación PROGRAMACIÓN ESTRUCTURADA A finales de los 60 se propuso la utilización de un conjunto de construcciones lógicas con las que podía formarse cualquier programa. Cada construcción tenía estructura lógica predecible. Se entra por ella por el principio, se sale por el final y facilita al lector el seguimiento del flujo procedimental. Las construcciones son secuencia, condición y repetición, y son fundamentales en la programación estructurada. La secuencia implementa los pasos de procedimiento esenciales de la especificación de cualquier algoritmo. La condición da la posibilidad de seleccionar un procedimiento basándose en alguna ocurrencia lógica. La repetición proporciona iteración. Las construcciones estructuradas se propusieron para limitar el diseño procedimental del software a un número pequeño de operaciones predecibles, lo que facilita la legibilidad, prueba y mantenimiento del software. 13
14 Además, la notación debe facilitar la codificación, de forma que el código se obtenga de forma natural a partir del diseño Notaciones para la representación gráfica en diseño procedimental Para evitar desarrollar un software erróneo, es fundamental que se utilicen correctamente las herramientas gráficas para el diseño, como son los diagramas de flujo y los diagramas de cajas. Diagrama de flujo Es la representación gráfica que más se utiliza en el diseño procedimental. Para representar un paso de procesamiento se utiliza un cuadro, para representar una condición se utiliza un rombo, y para representar el flujo de control se utilizan flechas. Figura 9. Construcciones de programación estructurada con diagramas de flujo Las construcciones estructuradas pueden estar anidadas unas dentro de otras, cada una de estas puede realizar llamadas a módulos, teniendo entonces una disposición por capas procedimentales en un diagrama de flujo estructurado, como muestra la figura 10. Figura 10. Un diagrama de flujo estructurado 14
15 A veces, el restringirse al uso exclusivo de construcciones estructuradas puede introducir complicaciones en el flujo lógico. Por ejemplo, supongamos que como parte del proceso i surge una condición, z, que requiere una bifurcación inmediata al proceso j. Una bifurcación directa violará la construcción lógica, escapando del dominio funcional de la sentencia repeat-until, de la cual forma parte el proceso i. Para implementar la bifurcación anterior sin violar las características de las condiciones estructuradas, sería necesario añadir la condición z a x7 y a x8. Estas comprobaciones se realizarían continuamente, incluso aunque no fuese necesario la ocurrencia de la z. De esta forma, habríamos introducido una condición adicional y una eficiencia en la ejecución. Entonces qué podemos hacer?. El diseñador tiene dos opciones: Rediseñar la representación procedimental, de forma que no sea necesaria la bifurcación de escape en una posición interior del flujo de control. Violar las construcciones estructuradas de forma controlada, es decir, diseñar una bifurcación restringida hacia fuera del flujo anidado. Diagrama de cajas Esta notación surgió del deseo de desarrollar una representación para el diseño procedimental que no permitiera la violación de construcciones estructuradas. Estos diagramas fueron desarrollados por Nassi y Schneiderman y perfeccionados por Chapin.y tienen las características siguientes: El ámbito funcional está bien definido y es claramente visible. La transferencia de control arbitraria es imposible. Es fácil determinar el ámbito de los datos locales y globales La recursividad es fácil de representar La representación gráfica de construcciones estructuradas, usando diagramas de cajas, se muestra en la figura 11. El elemento fundamental del diagrama de cajas es la caja. Figura 11. Construcciones en diagramas de cajas 15
16 Al igual que con los diagramas de flujo, se pueden crear diagramas de cajas por capas en múltiples páginas. Se puede representar una llamada a un módulo subordinado mediante una caja con el nombre del módulo encerrado dentro de una circunferencia. La figura 12 muestra un diagrama de cajas que representa el mismo flujo de control que el de la figura 10. Figura 12. Un diagrama de cajas estructurado Para ver la relativa facilidad con que puede comprenderse el dominio funcional, puede observarse el bucle repeat-until con la condición x8. Todas las construcciones lógicas contenidas dentro del bucle se encuentran fácilmente, debido a que están dispuestas en cajas interiores Notaciones tabulares de diseño En muchas aplicaciones de software puede ser necesario que un módulo evalúe una compleja combinación de condiciones, y de acuerdo con ellas, seleccione la opción adecuada. Las tablas de decisión constituyen una notación que traduce las acciones y condiciones a una forma tabular. Figura 13. Esqueleto de una tabla de decisión 16
17 La figura 13 muestra la organización de una tabla de decisión, que está dividida en cuatro cuadrantes por las líneas gruesas. El cuadrante superior izquierdo contiene una lista de todas las condiciones El cuadrante inferior izquierdo contiene una lista de todas las acciones que se pueden realizar en función de las condiciones Los cuadrantes de la derecha forman una matriz que contienen las combinaciones de las condiciones para producir las acciones. Por tanto, cada columna de la matriz representa una regla de procesamiento. Los pasos para la creación de una tabla de decisión son los siguientes: Listar todas las acciones que se pueden asociar a un módulo. Listar todas las condiciones necesarias para la ejecución de un procedimiento. Asociar conjuntos de condiciones específicas a acciones específicas, eliminando combinaciones imposibles. Desarrollar las posibles combinaciones de condiciones. Definir reglas indicando las acciones que ocurren para una serie de condiciones Lenguaje de diseño de programas Un lenguaje de diseño de programas (LDP), también conocido como lenguaje estructurado o pseudocódigo es un lenguaje que utiliza el vocabulario de un lenguaje y la sintaxis de otro. Independientemente de su origen, un LDP tiene que tener las características siguientes: Una sintaxis fija de palabras clave que permitan construir todas las construcciones estructuradas, declarar datos y establecer características de modularidad. Una sintaxis libre en lenguaje natural para describir las características de procesamiento. Facilidades para la declaración de datos, incluyendo estructuras de datos simples y complejas. Un mecanismo de definición de subprogramas y de llamada a éstos. 17
18 8. Documentación del diseño Se puede utilizar un esquema de documento como el siguiente para la especificación del diseño. Especificación de diseño 1. Ambito 1.1 Objetivos del sistema 1.2 Hardware, software e interfaces humanas 1.3 Principales funciones del software 1.4 Base de datos definida externamente 1.5 Principales restricciones y limitaciones del diseño 2. Documentos de referencia 2.1 Documentación del software existente 2.2 Documentación del sistema 2.3 Documentos del vendedor (hardware o software) 2.4 Referencia técnica 3. Descripción del diseño 3.1 Descripción de datos Revisión del flujo de datos Revisión de la estructura de datos 3.2 Estructura de programa derivada 3.3 Interfaces dentro de la estructura 4. Módulos (Para cada módulo) 4.1 Texto explicativo 4.2 Descripción de la interfaz 4.3 Descripción en lenguaje de diseño 4.4 Módulos utilizados 4.5 Organización de los datos 4.6 Comentarios 5. Estructuras de archivos y datos globales 5.1 Estructura de archivos internos Estructura lógica Descripción lógica de los registros Método de acceso 5.2 Datos globales 5.3 Referencias cruzadas entre archivos y datos (ver figura 14) 6. Referencias cruzadas para los requisitos 7. Provisiones de prueba 7.1 Directrices de prueba 7.2 Estrategia de integración 7.3 Consideraciones especiales 8. Empaquetamiento 8.1 Provisiones especiales de solapamiento del programa 8.2 Consideraciones de transferencia 9. Notas especiales 10. Apéndices 18
19 Figura 14. Referencias cruzadas entre archivos y datos En la sección 1 se describe el ámbito global del trabajo de diseño. Gran parte de la información de esta sección se deriva de la especificación del sistema y de otros documentos obtenidos en la fase de definición del software. La sección 2 incluye las referencias específicas a la documentación de soporte. En la sección 3, que se desarrolla durante el diseño preliminar, se refinan y utilizan los DFD y otras representaciones de los datos, desarrollados durante el análisis de requerimientos. Puesto que está definido el flujo de la información se pueden desarrollar las descripciones de la interfaz para los elementos del software. Las secciones 4 y 5 se realizan durante el paso del diseño preliminar al diseño detallado. Inicialmente se describen los módulos mediante una descripción procedimental del módulo en lenguaje natural. Después se utiliza una herramienta de diseño procedimental para traducir el texto explicativo a una descripción estructurada. La sección 5 contiene una descripción de la organización de los datos, se asignan los datos globales y se establecen referencias cruzadas que conectan los módulos individuales con los archivos o datos globales. La sección 6 contiene las referencias cruzadas entre los requerimientos y los módulos que los implementan y facilita la identificación de los módulos que se corresponden con requerimientos críticos. La sección 7 contiene la primera etapa del desarrollo del procedimiento de prueba. Una vez que se han establecido la estructura y las interfaces del software podemos desarrollar directrices para la prueba de los módulos individuales y de su integración. La sección 8 contiene las restricciones del diseño, tales como las limitaciones físicas de memoria o la necesidad de un gran rendimiento del software, y también describe el método que se usará para transferir el software al lugar del cliente. Las secciones 9 y 10 contienen datos complementarios como las descripciones de algoritmos o procedimientos alternativos y otro tipo de información relevante. 19
Fundamentos del diseño 3ª edición (2002)
Unidades temáticas de Ingeniería del Software Fundamentos del diseño 3ª edición (2002) Facultad de Informática necesidad del diseño Las actividades de diseño afectan al éxito de la realización del software
Diseño orientado al flujo de datos
Diseño orientado al flujo de datos Recordemos que el diseño es una actividad que consta de una serie de pasos, en los que partiendo de la especificación del sistema (de los propios requerimientos), obtenemos
EL PROCESO DE DISEÑO DEL SOFTWARE
UNIDAD VI EL PROCESO DE DISEÑO DEL SOFWARE Contenido: 6.1 El diseño en la Ingeniería de Software 6.2 El proceso de Diseño 6.3 Fundamentos de Diseño 6.4 Diseño de Datos 6.5 Diseño Arquitectónico 6.6 Diseño
Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología
Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto
Resumen obtenido de: Roger S. Pressman, Ingeniería de Software. Un enfoque práctico, quinta edición, 2002. Introducción al Diseño de Software
Principio de Diseño Resumen obtenido de: Roger S. Pressman, Ingeniería de Software. Un enfoque práctico, quinta edición, 2002 Introducción al Diseño de Software Qué es el diseño? Representación ingenieril
DISEÑO DE FUNCIONES (TRATAMIENTOS)
DISEÑO DE FUNCIONES (TRATAMIENTOS) Diseño Estructurado. Estrategias para Derivar el Diagrama de Estructura. Diseño de Módulos Programables. 1. DISEÑO ESTRUCTURADO El Diseño es el proceso por el cual se
Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE
Técnicas de prueba El desarrollo de Sistemas de software implica la realización de una serie de actividades predispuestas a incorporar errores (en la etapa de definición de requerimientos, de diseño, de
Diseño orientado a los objetos
Diseño orientado a los objetos El Diseño Orientado a los Objetos (DOO) crea una representación del problema del mundo real y la hace corresponder con el ámbito de la solución, que es el software. A diferencia
Introducción. Conceptos y principios. Introducción. Introducción. Elementos del modelo de análisis. Elementos del modelo de diseño.
Definición de diseño Proceso para la definición detallada de un sistema con el fin de su realización física. Ingeniería del Software 1 Ingeniería del Software 2 Modelo de diseño vs. Paradigma de IS 3 actividades
PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE
PRUEBAS DE SOFTWARE La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además,
Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.
El primer paso en el diseño de una base de datos es la producción del esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para representar las distintas visiones que los
Estructuras de Control - Diagrama de Flujo
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS Ingeniería en Computación Ingeniería en Informática UNIVERSIDAD NACIONAL DE SAN LUIS DEPARTAMENTO DE INFORMÁTICA AÑO 2015 Índice 1. Programación estructurada 2 1.1.
PROCEDIMIENTO ESPECÍFICO. Código G114-01 Edición 0
Índice 1. TABLA RESUMEN... 2 2. OBJETO... 2 3. ALCANCE... 2 4. RESPONSABILIDADES... 3 5. ENTRADAS... 3 6. SALIDAS... 3 7. PROCESOS RELACIONADOS... 3 8. DIAGRAMA DE FLUJO... 4 9. DESARROLLO... 5 9.1. PROYECTO
Análisis de Sistemas. M.Sc. Lic. Aidee Vargas C. C. octubre 2007
Análisis de Sistemas M.Sc. Lic. Aidee Vargas C. C. octubre 2007 Metodologías de Desarrollo de Software Las metodologías existentes se dividen en dos grandes grupos: Metodologías estructuradas Metodologías
DE VIDA PARA EL DESARROLLO DE SISTEMAS
MÉTODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS 1. METODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS CICLO DE VIDA CLÁSICO DEL DESARROLLO DE SISTEMAS. El desarrollo de Sistemas, un proceso
Metodologías de diseño de hardware
Capítulo 2 Metodologías de diseño de hardware Las metodologías de diseño de hardware denominadas Top-Down, basadas en la utilización de lenguajes de descripción de hardware, han posibilitado la reducción
Contenido de la sesión. Diseño de Software Principios del Diseño Arquitectura de Software Especificación de Arquitecturas
Contenido de la sesión Diseño de Software Principios del Diseño Arquitectura de Software Especificación de Arquitecturas Diseño de Software Es una descripción de la estructura del software que se va a
Gestión de Configuración del Software
Gestión de Configuración del Software Facultad de Informática, ciencias de la Comunicación y Técnicas Especiales Herramientas y Procesos de Software Gestión de Configuración de SW Cuando se construye software
3. EL PROCESO DEL DISEÑO ARQUITECTÓNICO
EMA - DISEÑO ESRUCURADO 1. INRODUCCIÓN Los métodos de diseño del software se obtienen del estudio de cada uno de los tres dominios del modelo de análisis. El dominio de los datos, el funcional y el de
DISEÑO DE COMPONENTES DE SOFTWARE *
DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP * Resumen del capítulo 10 de libro de [Pressman 2010] V:18-11-2008 (c) P. Gomez-Gil, INAOE.
Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007
Enunciado Se desea efectuar el testing funcional de un programa que ejecuta transferencias entre cuentas bancarias. El programa recibe como parámetros la cuenta de origen, la de cuenta de destino y el
Gestión de la Configuración
Gestión de la ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 1 ESTUDIO DE VIABILIDAD DEL SISTEMA... 2 ACTIVIDAD EVS-GC 1: DEFINICIÓN DE LOS REQUISITOS DE GESTIÓN DE CONFIGURACIÓN... 2 Tarea EVS-GC 1.1: Definición de
implantación Fig. 1. Ciclo de vida tradicional
1. Ciclo de vida tradicional de los sistemas de software En ingeniería de software, la descripción tradicional del ciclo de vida del software está basada en un modelo conocido como el modelo de cascada
Estructuras de Control - Diagrama de Flujo
Introducción a la Programación - Introducción a la Computación - Fundamentos de la Informática Ing. Electrónica - T.U.G. - T.U.E. - T.U.R. - T.U.W.- Prof. Tec. Elect. - T.U.T - T.U.M Área de Servicios
Plan de estudios ISTQB: Nivel Fundamentos
Plan de estudios ISTQB: Nivel Fundamentos Temario 1. INTRODUCCIÓN 2. FUNDAMENTOS DE PRUEBAS 3. PRUEBAS A TRAVÉS DEL CICLO DE VIDA DEL 4. TÉCNICAS ESTÁTICAS 5. TÉCNICAS DE DISEÑO DE PRUEBAS 6. GESTIÓN DE
Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual
Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los
SISTEMAS DE INFORMACIÓN I TEORÍA
CONTENIDO: CICLO DE VIDA DE DESARROLLO DE SI FASES GENÉRICAS DEL CICLO DE VIDA DE DESARROLLO DE SI VISIÓN TRADICIONAL DEL CICLO DE VIDA DE DESARROLLO DE SI DE DESARROLLO DE SI: ANÁLISIS Material diseñado
SISTEMAS DE PLANEACIÓN DE RECURSOS EMPRESARIALES 2008
2.1 FACTORES SEGÚN ERP s Propuesta metodológica para la gestión del conocimiento durante la implantación de sistemas ERP Propuesta metodológica La propuesta metodológica aquí desarrollada parte de un modelo
Gestión y Desarrollo de Requisitos en Proyectos Software
Gestión y Desarrollo de Requisitos en Proyectos Software Ponente: María Jesús Anciano Martín Objetivo Objetivo Definir un conjunto articulado y bien balanceado de métodos para el flujo de trabajo de Ingeniería
3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)
3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.
Proceso de desarrollo del software modelo en cascada
Proceso de desarrollo del software modelo en cascada Análisis: Necesidades del usuario especificaciones Diseño: Descomposición en elementos que puedan desarrollarse por separado especificaciones de cada
Sistemas de Gestión de Calidad. Control documental
4 Sistemas de Gestión de Calidad. Control documental ÍNDICE: 4.1 Requisitos Generales 4.2 Requisitos de la documentación 4.2.1 Generalidades 4.2.2 Manual de la Calidad 4.2.3 Control de los documentos 4.2.4
Ciclo de vida del software
Ciclo de vida del software Definición El proceso que se sigue para construir, entregar y hacer evolucionar el software, desde la concepción de una idea hasta la entrega y el retiro del sistema. Confiable,
2 EL DOCUMENTO DE ESPECIFICACIONES
Ingeniería Informática Tecnología de la Programación TEMA 1 Documentación de programas. 1 LA DOCUMENTACIÓN DE PROGRAMAS En la ejecución de un proyecto informático o un programa software se deben de seguir
1. Descripción y objetivos
Pruebas 1 1. Descripción y objetivos Las pruebas son prácticas a realizar en diversos momentos de la vida del sistema de información para verificar: El correcto funcionamiento de los componentes del sistema.
5. Gestión de la Configuración del Software (GCS)
5. Gestión de la Configuración del Software (GCS) 5.1. La Configuración del Software El resultado del proceso de ingeniería del software es una información que se puede dividir en tres amplias categorías:
Introducción. Entre los modelos de análisis y diseño esta el estructurado.
Análisis y Diseño Orientado a Procesos Sección: 5T2_Co. Grupo: N 2 Docente: Ing. Magda Luna. Asignatura: Ingeniería De Software II Integrantes: Yessenia Del Carmen Meléndez Morales 2001-10007. Tania Margarita
Capítulo VI. Diagramas de Entidad Relación
Diagramas de Entidad Relación Diagramas de entidad relación Tabla de contenido 1.- Concepto de entidad... 91 1.1.- Entidad del negocio... 91 1.2.- Atributos y datos... 91 2.- Asociación de entidades...
Elementos requeridos para crearlos (ejemplo: el compilador)
Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción
PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso
PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer
GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES
GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES Tema: Cartas de Servicios Primera versión: 2008 Datos de contacto: Evaluación y Calidad. Gobierno de Navarra. [email protected]
Técnica - Diagrama de Flujo de Datos (DFD)
Técnica - Diagrama de Flujo de Datos (DFD) Diagrama de Flujo de Datos (DFD) OBJETIVO Construir un modelo lógico del Sistema que facilite su comprensión tanto al equipo de desarrollo como a sus usuarios
Estándares para planes de calidad de software. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto Diciembre 2008
Estándares para planes de calidad de software Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto Diciembre 2008 DIFERENCIA ENTRE PRODUCIR UNA FUNCION Y PRODUCIR UNA FUNCION
Metodología básica de gestión de proyectos. Octubre de 2003
Metodología básica de gestión de proyectos Octubre de 2003 Dentro de la metodología utilizada en la gestión de proyectos el desarrollo de éstos se estructura en tres fases diferenciadas: Fase de Éjecución
Mesa de Ayuda Interna
Mesa de Ayuda Interna Documento de Construcción Mesa de Ayuda Interna 1 Tabla de Contenido Proceso De Mesa De Ayuda Interna... 2 Diagrama Del Proceso... 3 Modelo De Datos... 4 Entidades Del Sistema...
Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:
PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes: 1. Proporcionar una guía de actividades para el trabajo en equipo. (Guía detallada para el desarrollo
K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2
K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2 Historia de revisiones Fecha VersiónDescripción Autor 08/10/2009 1.0 Creación del documento.
Tema 3 Metodologías de Desarrollo de Software
Ingeniería del Software Ingeniería del Software de Gestión Tema 3 Metodologías de Desarrollo de Software Félix Óscar García Rubio Crescencio Bravo Santos Índice 1. Definiciones 2. Objetivos 3. Conceptos
Diagramas del UML. A continuación se describirán los diagramas más comunes del UML y los conceptos que representan: Diagrama de Clases
El UML está compuesto por diversos elementos gráficos que se combinan para conformar diagramas. Debido a que el UML es un lenguaje, cuenta con reglas para combinar tales elementos. La finalidad de los
ARQUITECTURA DE DISTRIBUCIÓN DE DATOS
4 ARQUITECTURA DE DISTRIBUCIÓN DE DATOS Contenido: Arquitectura de Distribución de Datos 4.1. Transparencia 4.1.1 Transparencia de Localización 4.1.2 Transparencia de Fragmentación 4.1.3 Transparencia
Tema 4. Gestión de entrada/salida
Tema 4. Gestión de entrada/salida 1. Principios de la gestión de E/S. 1.Problemática de los dispositivos de E/S. 2.Objetivos generales del software de E/S. 3.Principios hardware de E/S. 1. E/S controlada
Tema 2. Ingeniería del Software I [email protected]
Tema 2 Ciclo de vida del software Ingeniería del Software I [email protected] Índice Qué es el ciclo de vida del Software? El Estándar 12207 Modelos de proceso Qué es el Ciclo de Vida del SW? Definición
Introducción a la Firma Electrónica en MIDAS
Introducción a la Firma Electrónica en MIDAS Firma Digital Introducción. El Módulo para la Integración de Documentos y Acceso a los Sistemas(MIDAS) emplea la firma digital como método de aseguramiento
CAPITULO 3 DISEÑO. El diseño del software es el proceso que permite traducir los requisitos
65 CAPITULO 3 DISEÑO 3.1. DISEÑO El diseño del software es el proceso que permite traducir los requisitos analizados de un sistema en una representación del software. 66 Diseño procedural Diseño de la
Sistemas de Información Administrativo - Universidad Diego Portales. Cátedra : Sistemas de Información Administrativa S.I.A.
Cátedra : Sistemas de Información Administrativa S.I.A. Escuela de Contadores Auditores Tema: Ingeniería del Software Estrategias de Pruebas Relator: Sr. Eduardo Leyton G Pruebas del Software (Basado en
El Proceso Unificado de Desarrollo de Software
El Proceso de Desarrollo de Software Ciclos de vida Métodos de desarrollo de software El Proceso Unificado de Desarrollo de Software 1 Fases principales del desarrollo de software Captura de requisitos:
Ingeniería de Software. Pruebas
Ingeniería de Software Pruebas Niveles de prueba Pruebas unitarias Niveles Pruebas de integración Pruebas de sistema Pruebas de aceptación Alpha Beta Niveles de pruebas Pruebas unitarias Se enfocan en
CICLO DE VIDA DEL SOFTWARE
CICLO DE VIDA DEL SOFTWARE 1. Concepto de Ciclo de Vida 2. Procesos del Ciclo de Vida del Software 3. Modelo en cascada 4. Modelo incremental 5. Modelo en espiral 6. Prototipado 7. La reutilización en
DEPARTAMENTO: Informática. MATERIA: Programación. NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma
DEPARTAMENTO: Informática MATERIA: Programación NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma 1. Objetivos. Competencias Profesionales, Personales y Sociales 1.1 Objetivos del ciclo formativo La
Introducción a los Tipos Abstractos de Datos
Página 1 de 8 Introducción a los Tipos Abstractos de Datos Introducción: Concepto de abstracción Abstracción funcional y abstracción de datos Construcción de tipos abstractos de datos Especificación de
CONSTRUCCIÓN DEL PROCESO MESA DE AYUDA INTERNA. BizAgi Process Modeler
CONSTRUCCIÓN DEL PROCESO MESA DE AYUDA INTERNA BizAgi Process Modeler TABLA DE CONTENIDO PROCESO DE MESA DE AYUDA INTERNA... 3 1. DIAGRAMA DEL PROCESO... 4 2. MODELO DE DATOS... 5 ENTIDADES DEL SISTEMA...
Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática
Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática Metodología Evolutiva Incremental Mediante Prototipo y Técnicas Orientada a Objeto (MEI/P-OO)
Creación y administración de grupos locales
Creación y administración de grupos locales Contenido Descripción general 1 Introducción a los grupos de Windows 2000 2 Grupos locales 5 Grupos locales integrados 7 Estrategia para utilizar grupos locales
Entidad Formadora: Plan Local De Formación Convocatoria 2010
Entidad Formadora: Enterprise Architect Comenzando Puede iniciar Enterprise Architect desde el ícono que se creó en su escritorio de Windows durante la instalación, o alternativamente: 1. Abrir el menú
Servicio de administración de pautas publicitarias en Internet
Servicio de administración de pautas publicitarias en Internet Resumen Ejecutivo Es habitual que la publicidad en Internet sea un apéndice de la publicidad en otros medios. Como no se conocen los resultados,
Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN
Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN Proceso de Negocio (Business Process) Conjunto estructurado, medible de actividades para producir un producto.
Figure 7-1: Phase A: Architecture Vision
Fase A Figure 7-1: Phase A: Architecture Vision Objetivos: Los objetivos de la fase A son: Enfoque: Desarrollar una visión de alto nivel de las capacidades y el valor del negocio para ser entregado como
Unidad 1. Fundamentos en Gestión de Riesgos
1.1 Gestión de Proyectos Unidad 1. Fundamentos en Gestión de Riesgos La gestión de proyectos es una disciplina con la cual se integran los procesos propios de la gerencia o administración de proyectos.
ANÁLISIS Y DISEÑO DE SISTEMAS DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN
ANÁLISIS Y DISEÑO DE SISTEMAS DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN Clase 6: Ingeniería de Requerimientos Metododología y Ejemplo Primer Cuatrimestre 2015 Mg. María Mercedes Vitturini
TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.
TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.
Patrones de software y refactorización de código
Patrones de software y refactorización de código Introducción y antecedentes de los patrones de software Los patrones permiten construir sobre la experiencia colectiva de ingenieros de software habilidosos.
Arquitectura de Aplicaciones
1 Capítulo 13: Arquitectura de aplicaciones. - Sommerville Contenidos del capítulo 13.1 Sistemas de procesamiento de datos 13.2 Sistemas de procesamiento de transacciones 13.3 Sistemas de procesamiento
Capítulo 9. Archivos de sintaxis
Capítulo 9 Archivos de sintaxis El SPSS permite generar y editar archivos de texto con sintaxis SPSS, es decir, archivos de texto con instrucciones de programación en un lenguaje propio del SPSS. Esta
PRUEBAS, CALIDAD Y MANTENIMIENTO DEL SOFTWARE
VI PRUEBAS, CALIDAD Y MANTENIMIENTO DEL SOFTWARE 6.1 PRUEBAS DEL SOFTWARE Una vez generado el código el software debe ser probado para descubrir el máximo de errores posibles antes de su entrega al cliente.
RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014
RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014 FAMILIA PROFESIONAL: INFORMATICA Y COMUNICACIONES MATERIA: 28. DESARROLLO WEB EN ENTORNO SERVIDOR CURSO: 2º DE CFGS DESARROLLO DE APLICACIONES
El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos.
Gestión de proyectos Duración: 45 horas Objetivos: El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos. Contenidos:
Gestión de proyectos
Gestión de proyectos Horas: 45 El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos. Gestión de proyectos El
- Bases de Datos - - Diseño Físico - Luis D. García
- Diseño Físico - Luis D. García Abril de 2006 Introducción El diseño de una base de datos está compuesto por tres etapas, el Diseño Conceptual, en el cual se descubren la semántica de los datos, definiendo
PROCEDIMIENTO ESPECÍFICO. Código G056-02 Edición 0
Índice 1. TABLA RESUMEN... 2 2. OBJETO... 2 3. ALCANCE... 2 4. RESPONSABILIDADES... 3 5. ENTRADAS... 3 6. SALIDAS... 3 7. PROCESOS RELACIONADOS... 3 8. DIAGRAMA DE FLUJO... 4 9. DESARROLLO... 5 9.1. PLANIFICACIÓN...
6.4 ESTRATEGIAS DE PRUEBA
Prueba del sistema Prueba de validación Prueba de integración Prueba de Unidad Código Diseño Requisitos Ingeniería del Sistema Las pruebas del software aplican similar estrategia moviéndonos de adentro
IAP 1009 - TÉCNICAS DE AUDITORÍA APOYADAS EN ORDENADOR (TAAO)
IAP 1009 - TÉCNICAS DE AUDITORÍA APOYADAS EN ORDENADOR (TAAO) Introducción 1. Como se indica en la Norma Internacional de Auditoría 401, "Auditoría en un contexto informatizado", los objetivos globales
Capítulo 5. Cliente-Servidor.
Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor
Mantenimiento de Sistemas de Información
de Sistemas de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 1 ACTIVIDAD MSI 1: REGISTRO DE LA PETICIÓN...4 Tarea MSI 1.1: Registro de la Petición... 4 Tarea MSI 1.2: Asignación de la Petición... 5 ACTIVIDAD
4. Programación Paralela
4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios
Integración de la prevención de riesgos laborales
Carlos Muñoz Ruiz Técnico de Prevención. INSL Junio 2012 39 Integración de la prevención de riesgos laborales Base legal y conceptos básicos Ley 31/1995, de Prevención de Riesgos Laborales: Artículo 14.
CAPÍTULO 3 Servidor de Modelo de Usuario
CAPÍTULO 3 Servidor de Modelo de Usuario Para el desarrollo del modelado del estudiante se utilizó el servidor de modelo de usuario desarrollado en la Universidad de las Américas Puebla por Rosa G. Paredes
Departamento de Lenguajes y Sistemas Informáticos. Ciclo de vida del software
El Ciclo de Vida Software Departamento de Lenguajes escuela técnica superior de ingeniería informática Grupo de Ingeniería a Software Febrero 2006 Versión original: Amador Durán Toro (septiembre 2004)
CAPITULO 2 - POR QUÉ NECESITAN LAS EMPRESAS UN CUADRO DE MANDO INTEGRAL?
CAPITULO 2 - POR QUÉ NECESITAN LAS EMPRESAS UN CUADRO DE MANDO INTEGRAL? Los indicadores financieros. Desde hace mucho tiempo se utiliza el sistema de mediciones financiero, desde la época de los egipcios
Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA
Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)
Capitulo III. Diseño del Sistema.
Capitulo III. Diseño del Sistema. Para el desarrollo del sistema en la presente tesis se utilizo el paradigma orientado a objetos utilizando el lenguaje Java en su versión 1.2. Por medio de este lenguaje
Unidad VI: Supervisión y Revisión del proyecto
Unidad VI: Supervisión y Revisión del proyecto 61. Administración de recursos La administración de recursos es el intento por determinar cuánto, dinero, esfuerzo, recursos y tiempo que tomará construir
UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS
UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS CURSO: JAVA BASICO PROFESOR: EMERSON CASTAÑEDA SANABRIA TEMA: Programación Orientada a Objetos OBJETIVOS: Familiarizarse con la Programación
Administración de proyectos. Organizar, planificar y programar los proyectos de software
Administración de proyectos Organizar, planificar y programar los proyectos de software Administración de proyectos Trata de las actividades que hay que realizar para asegurar que el software se entregará
Master en Gestion de la Calidad
Master en Gestion de la Calidad Los 3 niveles de la Calidad Los 3 niveles de la calidad 1 / 8 OBJETIVOS Al finalizar esta unidad didáctica será capaz: Conocer los 3 niveles de la calidad. CONTENIDOS En
1.1 EL ESTUDIO TÉCNICO
1.1 EL ESTUDIO TÉCNICO 1.1.1 Definición Un estudio técnico permite proponer y analizar las diferentes opciones tecnológicas para producir los bienes o servicios que se requieren, lo que además admite verificar
Algoritmos y Diagramas de Flujo 2
Algoritmos y Diagramas de Flujo 2 Programación Java NetBeans 7.0 RPC Contenido 2.1 Algoritmo...1 Fase de creación de un algoritmo...1 Herramientas de un algoritmo...2 2.2 Diagrama de Flujo...2 Símbolos
1.4.1.2. Resumen... 1.4.2. ÁREA DE FACTURACIÓN::INFORMES::Pedidos...27 1.4.2.1. Detalle... 1.4.2.2. Resumen... 1.4.3. ÁREA DE
MANUAL DE USUARIO DE ABANQ 1 Índice de contenido 1 ÁREA DE FACTURACIÓN......4 1.1 ÁREA DE FACTURACIÓN::PRINCIPAL...4 1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA...4 1.1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA::General...4
UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos
2.1. Principios básicos del Modelado de Objetos UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos Hoy en día muchos de los procesos que intervienen en un negocio o empresa y que resuelven
PROCESO ADMINISTRACIÓN DE RECURSOS TECNOLÓGICOS SUBPROCESO ADMINISTRACIÓN DE CONTINGENCIAS
Objetivo Este subproceso establece las actividades que se realizan para la planeación y control de respaldos y desastres relacionados con los recursos informáticos existentes en el Senado de La República
En un proyecto de desarrollo de software la metodología define Quién debe hacer Qué, Cuando y Como hacerlo. 6
2. MÉTODO, METODOLOGÍA Y MÉTRICA 2.1 MÉTODO Un método de ingeniería del software es un enfoque estructurado para el desarrollo de software cuyo propósito es facilitar la producción de software de alta
