Implementación en máquina de un conjunto de tareas. Descripción de procedimientos, funciones y módulos Diagrama de bloques del software

en concepto estructura del programa incluye la composición y descripción de las conexiones de todos los módulos que implementan las funciones independientes del programa y una descripción de los medios para los datos de entrada y salida, así como los datos que participan en el intercambio entre subrutinas individuales.

Para desarrollar programas grandes y complejos, el programador necesita dominar técnicas especiales para obtener una estructura de programa racional, lo que garantiza una reducción de casi el doble en la cantidad de programación y una reducción múltiple.

La subordinación de los módulos del programa se refleja en el diagrama de jerarquía. Sin embargo, esto último no refleja el orden en que se llaman ni el funcionamiento del programa. El diagrama de jerarquía puede parecerse al que se muestra en la Fig. 5. Suele complementarse con una decodificación de las funciones realizadas por los módulos.

Antes de elaborar un diagrama de jerarquía, es aconsejable elaborar especificaciones externas del programa y escribir descripciones funcionales del programa junto con una descripción de las variables del soporte de datos. Se debe prestar especial atención a la jerarquía de los tipos de datos estructurados y sus comentarios.

La división del programa en subprogramas se realiza según el principio de general a específico, más detallado. El proceso de construcción de una descripción funcional y elaboración de un diagrama de jerarquía es iterativo y la selección la mejor opción es multicriterio. La disección debe proporcionar un orden conveniente para poner las piezas en funcionamiento.

Al diagrama de jerarquía se le puede dar cualquier diseño topológico. Fragmentos con llamadas verticales. se puede convertir en llamadas de un nivel introduciendo un módulo adicional, que puede no realizar ninguna función útil desde el punto de vista del algoritmo del programa. La función de un nuevo módulo solo puede ser monitorear, es decir, llamar a otros módulos en un orden determinado.

Fragmentos con llamadas horizontales. en un nivel se pueden convertir en llamadas verticales a módulos en diferentes niveles introduciendo variables adicionales que no se podrían obtener descomponiendo la descripción funcional en subfunciones. Estas variables adicionales suelen ser de tipo entero o booleano y se denominan indicadores, semáforos o claves de eventos. Su significado suele caracterizarse por la frase: dependiendo del siguiente historial de acciones, realizar tal o cual acción.

Durante el proceso de diseño, debe realizar varias iteraciones de diseño, generando cada vez un nuevo diagrama de jerarquía, y comparar estas jerarquías de acuerdo con estos criterios para seleccionar la mejor opción.

Llave - el valor de una variable utilizada para confirmar la autoridad para acceder a alguna información o rutina.

Bandera- una variable cuyo valor indica que algún componente de hardware o software se encuentra en un determinado estado o que se cumple una determinada condición para él. La bandera se utiliza para implementar ramificaciones condicionales y otros procesos de toma de decisiones.

Semáforo - tipo de datos propósito especial, que es un medio para controlar el acceso a un recurso crítico mediante procesos secuenciales concurrentes.

Sobre un semáforo sólo se pueden realizar dos operaciones (sin contar creación y cancelación): operación de espera(clases) y operación de alarma(liberación). El semáforo acepta un valor entero que no puede ser negativo. La operación de espera disminuye el valor del semáforo en uno cuando se puede realizar sin que resulte en un valor negativo, y esto significa que se está utilizando el recurso libre. La operación de señalización aumenta el valor del semáforo en uno, lo que significa que se libera el recurso.

recurso crítico- un recurso que no es utilizado por más de un proceso en un momento dado. Cuando se requieren múltiples procesos asincrónicos para coordinar su acceso a un recurso crítico, se utiliza el acceso controlado mediante un semáforo.

CRITERIOS DE EVALUACIÓN DE CALIDAD

DIAGRAMA DE BLOQUES DEL PROGRAMA

La primera versión del diagrama estructural, obtenida simplemente dividiendo las funciones del programa en subfunciones que indican las variables necesarias para acomodar los datos, a menudo no es óptima y se requieren iteraciones de diseño para mejorar la topología del diagrama. Estos pasos generalmente se realizan mediante prueba y error. Cada nueva opción se compara con la anterior según los criterios que se describen a continuación:

1) integridad del desempeño de funciones específicas;

2) la capacidad de agregar de forma rápida y económica nuevas funciones no especificadas anteriormente;

3) visibilidad (comprensibilidad) para el diseñador de los componentes del programa;

4) máxima independencia de las partes individuales del programa;

5) la capacidad de vincular subrutinas utilizando el editor de enlaces;

6) suficiente RAM;

7) la influencia de la topología del diagrama de jerarquía en la velocidad de ejecución del programa cuando se utiliza la carga dinámica del programa y el mecanismo de paginación;

8) falta de diferentes módulos con funciones similares. Se debe llamar al mismo módulo. diferentes niveles diagramas de jerarquía;

9) lograr un cronograma de trabajo para el equipo de programadores durante la implementación del programa que asegure una carga de trabajo uniforme para el equipo;

10) todas las reducciones posibles en los costos de prueba del programa.
Un buen esquema de jerarquía reduce los costos de prueba entre 2 y 5 veces en comparación con la versión original;

11) utilización en este proyecto del mayor número posible de módulos y bibliotecas desarrollados en proyectos anteriores con un volumen mínimo de piezas de nueva fabricación.

La generación de opciones se detiene si es imposible realizar más mejoras. La estructura racional del programa asegura una reducción del volumen total de textos en 2-3 veces, lo que en consecuencia reduce el costo de crear un programa y probarlo, que generalmente representa al menos el 60% de los costos totales. Al mismo tiempo, se simplifica y reduce el coste de mantenimiento del programa.

PROGRAMACIÓN MODULAR

El principio de programación estructurada se implementa mediante macrocomandos y mecanismos para llamar a subrutinas. Los mismos mecanismos también son adecuados para implementar una programación modular, que puede considerarse parte de un enfoque estructurado.

Es necesario diferenciar el uso de la palabra. módulo, cuando nos referimos a una unidad de dividir un programa grande en bloques separados (que pueden implementarse como procedimientos y funciones) y cuando nos referimos a la construcción sintáctica de lenguajes de programación (unidad V Objeto Pascal).

Programación modular - Se trata de la organización de un programa como un conjunto de bloques independientes, denominados módulos, cuya estructura y comportamiento están sujetos a determinadas reglas.

El concepto de programación modular se puede formular en forma de varios conceptos y disposiciones:

1) las tareas grandes se dividen en una serie de subtareas más pequeñas y funcionalmente independientes: módulos, que están interconectados únicamente por datos de entrada y salida;

2) el módulo es una “caja negra” con una entrada y una salida. Esto le permite actualizar el programa sin problemas durante su funcionamiento, haciéndolo más fácil
mantenimiento, y también permite desarrollar partes de un proyecto de software en diferentes lenguajes de programación;

3) cada módulo debe tener objetivos claros. Si el propósito del módulo no está claro, significa que la descomposición en módulos no se realizó con suficiente calidad. El proceso de descomposición debe continuar hasta que se tenga una comprensión clara del propósito de todos los módulos y su combinación óptima;

4) el texto fuente del módulo debe tener un encabezado y una parte de interfaz que refleje el propósito del módulo y todas sus conexiones externas;

5) durante el desarrollo de los módulos del programa, se deben proporcionar bloques especiales de operaciones que tengan en cuenta la respuesta a posibles errores en datos o acciones del usuario.

En el concepto de programación modular se concede gran importancia a la organización de las conexiones de control e información entre módulos de programa que resuelven conjuntamente uno o varios problemas importantes.

Cuando trabaje con módulos, debe recordar su principal diferencia con los procedimientos y funciones. Las reglas tradicionales para el alcance de las variables globales y locales de los módulos no funcionan. Esta construcción de lenguaje está diseñada para garantizar que las variables globales declaradas en el programa principal no influyan en las declaraciones internas del módulo. Por lo tanto, si es necesario ingresar descripciones globales disponibles para todos los bloques del programa, entonces debe crear un módulo de declaraciones globales e incluirlo en la lista de importación de todos los módulos donde se necesitan sus descripciones.

3.7. ESTRUCTURA DEL MÓDULO B OBJETO PASCAL

Objeto Pascal Dispone de diversos medios para estructurar programas. En el nivel inferior de división (para subtareas elementales), se utilizan con mayor frecuencia procedimientos y funciones, y en el nivel superior (para tareas grandes), se utilizan módulos.

en el medio ambiente Delfos Cada formulario tiene necesariamente su propio módulo, que le permite localizar todas las propiedades de la ventana en una unidad de programa separada. Además, las acciones algorítmicas no visuales también están diseñadas en forma de módulos separados. La primera línea del módulo comienza con la palabra clave:

unidad<идентификатор_модуля>;

Para funcionamiento adecuado entorno de programación, este nombre debe coincidir con el nombre del archivo de disco en el que se encuentra el código fuente del módulo. lo que sigue

(Sección de interfaz) interfaz

donde se describe la interacción de este módulo con otros módulos de usuario y estándar, así como con el programa principal.

La conexión del módulo con otros módulos se establece mediante una oferta especial:

(Lista de importación de la sección de interfaz) usos<список_модулей>

Esta lista contiene identificadores separados por comas de módulos cuya información de piezas de interfaz debería estar disponible en este módulo.

(Lista de exportaciones de secciones de interfaz) var tipo constante

función de procedimiento

La lista de exportación consta de subsecciones que describen constantes, tipos, variables, encabezados de procedimientos y funciones que se definen en este módulo, pero que pueden usarse en todos los demás módulos y programas que incluyen el nombre de este módulo en su línea de usos. Para procedimientos y funciones, aquí solo se describen encabezados, pero con el obligatorio descripción completa parámetros formales.

(Sección de implementación) implementación

Esta sección indica la parte de implementación (personal) de las descripciones de este módulo, que no está disponible para otros módulos y programas.

(Importar lista de sección de implementación) usos

Esta lista contiene identificadores separados por comas de módulos cuya información de piezas de interfaz debería estar disponible en este módulo. Aquí es recomendable describir los identificadores de todos los módulos necesarios, cuya información no se utiliza en las descripciones de la sección de interfaz de este módulo.

(Subsecciones de descripciones internas del módulo) etiqueta constante tipo var

función de procedimiento

Estas subsecciones describen etiquetas, constantes, tipos, variables, procedimientos y funciones que describen las acciones algorítmicas realizadas por un módulo determinado y que son "propiedad personal" únicamente de ese módulo. Estas descripciones no están disponibles para ningún otro módulo.

La parte ejecutable contiene descripciones de subrutinas declaradas en la parte de la interfaz. La descripción de la subrutina debe ir precedida de un encabezado, en el que se puede omitir la lista de parámetros formales y el tipo de resultado de la función. Si los encabezados se especifican con parámetros, entonces su lista debe ser idéntica a la misma lista para el procedimiento o función correspondiente en la sección de interfaz.

(Sección de inicialización) inicialización

En esta sección, entre las palabras clave de inicialización y finalización, se encuentran operadores de la configuración inicial necesaria para iniciar el correcto funcionamiento del módulo. Estas declaraciones se ejecutan antes de que el control se transfiera al programa principal y generalmente se utilizan para preparar su trabajo. Las declaraciones de la sección de inicialización de los módulos utilizados en un programa se ejecutan cuando el programa se ejecuta inicialmente en el mismo orden en que los identificadores de módulo se describen en las cláusulas de uso del archivo del proyecto. Si no se requieren declaraciones de inicialización, se puede omitir la palabra reservada inicialización.

(Sección de finalización) finalización

La sección de finalización es opcional y solo puede estar presente junto con la sección de inicialización. La sección de finalización contiene una lista de declaraciones que se ejecutarán cuando finalice el módulo, lo que generalmente ocurre cuando finaliza la aplicación. Las secciones de finalización de los módulos de aplicación se ejecutan en el orden opuesto a las secciones de inicialización de esos módulos.

La sección de terminación se utiliza normalmente para liberar recursos asignados a la aplicación en la sección de inicialización. Esto garantiza que la aplicación finalice correctamente, lo cual es especialmente importante cuando la aplicación finaliza debido a situaciones excepcionales.

Luego de ingresar los datos, es necesario darle al usuario la oportunidad de imprimir el formulario del certificado y una copia del cliente. Esta operación debe realizarse sin falta. La impresión se puede realizar en dos tipos de impresoras: de impacto (matriz) y de inyección de tinta. Imprimir ayuda en impresoras láser imposible debido a los mayores requisitos de calidad del papel. Al imprimir un certificado en una impresora matricial, puede imprimir dos copias (certificado + copia) de una sola vez utilizando papel carbón. En una impresora de inyección de tinta, debes imprimir cada copia por separado. Por lo tanto, es necesario proporcionar un contador de copias modificable por el usuario o una función de configuración especial para el tipo de impresora.

Fig.2 Esquema de interacción y comunicación de datos.

Desarrollo de un diagrama funcional del programa.

La composición funcional del programa debe proporcionar al máximo el conjunto de capacidades necesario para que el cajero realice su OP. responsabilidades laborales relacionados con la entrada de datos, el registro de transacciones y la preparación de documentos informativos. Para ello, compilaremos una lista aproximada de funciones que deberían implementarse en nuestro sistema.

Una lista aproximada de funciones del sistema.

1) Registro de una transacción de cambio

· Ingresar datos sobre compras de divisas.

· Entrada de datos para ventas de divisas.

· Ingresar datos de conversión de moneda

· Imprimir ayuda al cliente

2) Ver documentos

· Ver la lista de documentos del día.

· Ver una lista de documentos archivados

3) Mantener directorios

· Entrada de datos por códigos de valor.

· Entrada de datos por tipos de documentos

· Entrada de datos por códigos de moneda

· Introducir tipos de cambio por fecha

4) Generación de documentos de informes.

· Impresión de un registro de efectivo en moneda extranjera comprada por rublos en efectivo;

· Impresión del registro de efectivo en moneda extranjera vendida por rublos en efectivo;

· Impresión del registro para el cambio (conversión) de moneda extranjera en efectivo;

5) Otras funciones

· Ingresar datos en el campo de entrada desde el directorio

· Convertir un número de digital a minúscula (cantidad en palabras)

· Cambiar la apariencia del cursor

· Guardar datos en archivos de almacenamiento

La lista anterior cubre todos los procedimientos descritos en la sección de proceso tecnológico del OP y se complementa con algunas funciones que serán necesarias en el proceso de entrada y corrección de datos.

Desarrollo de un diagrama estructural del programa.

El diagrama de bloques del paquete de software define las características principales y apariencia el sistema diseñado y los principios de interacción del usuario. El diagrama del sistema diseñado será una estructura de árbol jerárquico que describe los procedimientos de entrada, procesamiento y salida de datos. La creación de programas de clases de información y referencia sobre este principio hace que sea bastante fácil modificar el sistema en su conjunto y facilita la percepción y comprensión del principio operativo del programa. Para construir un diagrama estructural, es necesario determinar la jerarquía y conexión de los procedimientos de procesamiento de datos anteriores. Es natural establecer una jerarquía de procedimientos en la forma en que fueron descritos en el capítulo anterior, ya que dicho esquema corresponde al esquema de “importancia” y “usabilidad” de los procedimientos. El diagrama de bloques del programa, teniendo en cuenta todo lo anterior, se presenta en la Fig. 2.

Desarrollo de la interfaz en pantalla del programa.

Enfoques existentes para el diseño de interfaces de pantalla.

La interfaz en pantalla del programa determina en gran medida la comodidad del usuario y es uno de los factores importantes que influyen en la eficacia de su trabajo. Un programa que realiza todas las funciones que se le asignan y tiene un alto rendimiento puede resultar completamente inadecuado para funcionar debido a una interfaz de usuario inaceptable. Hace apenas unos años, existía un editor de texto que ilustra perfectamente este enfoque del diseño. software. Es poco probable que a alguien le guste un editor de texto en el que, para insertar un carácter en una línea, es necesario escribir un código de una letra para el comando de inserción, el número de la línea que se está procesando (afortunadamente, no binario), el número del carácter después del cual se insertará el nuevo carácter, y este carácter en sí. Por supuesto, este enfoque es absolutamente inaceptable.

Los sistemas más prácticos y fáciles de usar pueden considerarse aquellos que tienen una interfaz de pantalla construida sobre la base de un sistema de menú emergente. Las más comunes actualmente son dos ideologías (es decir, aplicaciones DOS), que incluyen una determinada forma de ventanas de pantalla y una combinación de colores y el tipo de listas emergentes. Estos son los entornos de herramientas Borland y el shell operativo Norton de Symantec. Ambas ideologías prevén una cierta división del espacio de la pantalla en áreas o zonas destinadas a acciones y objetos de información específicos. Las zonas se pueden reconfigurar hasta cierto punto a petición del usuario: se cambian sus tamaños y posición en la pantalla. Los comandos de procesamiento de datos se llaman desde un sistema de menú que está constantemente presente en la pantalla (Borland), o mediante una tecla de función (Symantec).

En ambos casos, todos los comandos del sistema se distribuyen según su funcionalidad en grupos y están presentes en el menú principal.

los nombres reales de los grupos de mando. Al seleccionar un grupo, el usuario obtiene acceso a una lista de comandos de grupo, que también puede incluir comandos agrupados en grupos de segundo nivel, etc.

Esto crea un sistema de menú emergente de varios niveles. El uso de tal ideología garantiza la facilidad de navegación en un sistema que tiene un menú bastante complejo, de varios niveles y con muchas opciones. Naturalmente, el aumento del anidamiento y el tamaño de las listas de selección debería tener límites razonables, que afortunadamente existen en forma de espacio limitado en la pantalla del monitor. La mayoría de los sistemas también tienen la capacidad de personalizar la paleta de colores según los deseos del usuario. El shell operativo Norton ofrece una variedad de colores entre varias opciones estándar; en los sistemas Borland puede crear su propia combinación de colores, hasta el más mínimo detalle. En la Fig. 4,5 se muestra una vista aproximada de algunos objetos de la pantalla.

Elegir una ideología de interfaz en pantalla

Tema 3. SOFTWARE

Para un uso adecuado de la computadora ( procesamiento de información) necesita conocer el propósito y las propiedades de los programas necesarios al trabajar con él. Un conjunto de programas y documentación adjunta ( utilizado al operar estos programas), llamado software(POR). El software es una parte integral de cualquier sistema informático y se divide en ( con cita previa) en tres categorías: software del sistema(necesario para controlar la computadora, crear y soportar la ejecución de otros programas de usuario, proporcionar al usuario un conjunto de diversos servicios), sistemas de programación o sistemas de instrumentación (asegurar la creación de nuevos programas para computadoras) y software de aplicación (asegurando directamente la ejecución del trabajo requerido por el usuario).


Estructura del programa

software del sistema incluye un conjunto de programas que controlan el funcionamiento del hardware y las redes informáticas ( Como regla general, estos programas no resuelven problemas específicos de los usuarios, pero crean las condiciones para su solución.). El software del sistema está dirigido a:

· garantizar el funcionamiento estable de la computadora y de la red informática;

· crear condiciones para el funcionamiento normal de los programas de aplicación;

· realizar operaciones auxiliares;

· diagnóstico de hardware y redes informáticas;

El conjunto completo de programas del sistema se puede dividir en dos grandes grupos: software básico Y sistemas de servicio. El software básico es el conjunto mínimo de software que permite que la computadora funcione.

Subclase base El software incluye:

sistemas operativos (SO) - un conjunto de programas que controlan el proceso de ejecución de programas de aplicación, planificación y gestión de recursos informáticos de PC ( El sistema operativo se encarga de operaciones tales como monitorear el rendimiento del hardware de la PC; realizar el procedimiento de arranque; controlar el funcionamiento de todos los dispositivos de PC; gestión de sistemas de archivos; interacción del usuario con la PC; cargar y ejecutar programas de aplicación; Distribución de recursos de PC: RAM, tiempo de procesador y dispositivos periféricos entre programas de aplicación.).

· shells operativos: programas especiales diseñados para facilitar la comunicación del usuario con los comandos del sistema operativo, que tienen opciones de interfaz gráfica y de texto para el usuario final ( Los programas Shell proporcionan una forma cómoda y visual de comunicarse con una computadora, le permiten mostrar claramente el contenido de los directorios en los discos, copiar, renombrar, enviar y eliminar archivos cómodamente, etc.).



· sistemas operativos de red: un conjunto de programas que proporcionan procesamiento, transmisión y almacenamiento de datos en la red.

Hasta hace poco, la mayoría de las PC tenían instalado un sistema operativo. MS-DOS, que fue creado en 1981 por Microsoft ( Tenga en cuenta que no fue un desarrollo original de la propia Microsoft: la empresa de Bill Gates solo modificó el "sistema operativo" llamado QDOS, creado por otra empresa.). Antes de la llegada de Windows, el sistema operativo de disco MS DOS era el más popular y utilizado. En su entorno se ha creado toda una generación de productos de software. Basado en MS DOS, Windows apareció en el proceso de desarrollo de la tecnología informática ( Desde 1996, MS DOS se incluye en el entorno operativo Windows 95.). Los componentes principales del sistema operativo, desarrollados en el entorno MS DOS, son clásicos y se incluyen orgánicamente en Windows en una nueva etapa en el desarrollo del software en general y sus sistemas operativos principales.

MS DOS es un sistema operativo de tarea única de 16 bits que tiene una "interfaz de línea de comandos", es compacto, tiene requisitos de hardware modestos y realiza las funciones mínimas necesarias para usuarios y programas. Las principales desventajas de DOS:

· su principal punto débil es trabajar con RAM limitada ( En la era de MS-DOS, la RAM de la mayoría de las computadoras no superaba los 256 kilobytes. DOS podía funcionar con 640 kilobytes de RAM, y Bill Gates argumentó que nadie necesitaría nunca un volumen mayor, pero pasó el tiempo y aparecieron programas que requerían una mayor cantidad de RAM para funcionar y tuvieron que usar programas especiales: administradores de memoria, pero ellos no resolvió el problema);

· la segunda desventaja de DOS fue la imposibilidad de trabajar en modo gráfico completo ( aunque las computadoras de esa época ya podían brindar soporte para ello);

· La tercera desventaja de MS-DOS era la tarea única.

Los sistemas operativos de la familia DOS, a pesar de su sencillez y eficacia, están obsoletos y han sido sustituidos por sistemas operativos de nueva generación. Estos sistemas operativos incluyen sistemas operativos de la familia ventanas, familia de sistemas operativos Unix etc.

Sistemas de servicio- destinado al mantenimiento de computadoras ( ampliar las capacidades del software básico). Según su funcionalidad, se pueden distinguir los siguientes software de servicio:

programas de mantenimiento de disco ( proporcionar verificación de la calidad de la superficie del disco, monitorear la seguridad de los archivos, comprimir discos, crear copias de seguridad, realizar copias de seguridad de datos en medios externos, etc.);

· programas antivirus ( Proporcionar protección informática, detección y recuperación de archivos infectados.);

programas de archivo de datos ( Proporcionar el proceso de comprimir información en archivos para reducir la cantidad de memoria para almacenarla.);

· programas de mantenimiento de redes.

· programas de diagnóstico del rendimiento informático;

Programas utilizados para realizar operaciones auxiliares de procesamiento de datos u operaciones de mantenimiento informático ( diagnóstico, pruebas, optimización del uso del espacio en disco, restauración de información destruida en un disco magnético, etc.), se denominan utilidades.

Sistemas de programación o sistemas de herramientas.- Estos son productos de software que admiten tecnología de programación. Dentro de esta área, existen herramientas para la creación de aplicaciones, entre ellas:

· herramientas locales que aseguran la ejecución obras individuales sobre la creación de programas;

· entornos integrados para desarrolladores de programas, que garantizan la implementación de un conjunto de trabajos interrelacionados para la creación de programas.

Las herramientas de desarrollo de software locales incluyen lenguajes y sistemas de programación, así como el entorno de herramientas del usuario. Existen lenguajes de programación de máquinas ( Códigos de máquina percibidos por el hardware de la computadora.), lenguajes orientados a máquinas ( Lenguajes de programación que reflejan la estructura de un tipo específico de computadora: ensambladores.), algorítmico ( universal) lenguajes independientes de la arquitectura de la computadora, por ejemplo Fortran ( fortran), Cobol ( Cobol), Algol ( algol), Pascal ( Pascal), BÁSICO ( Básico), C ( do), C ++ ( C++) etc.; lenguajes orientados a procedimientos ( donde es posible describir un programa como un conjunto de procedimientos - subrutinas), lenguajes orientados a problemas ( Diseñado para resolver problemas de cierta clase.), sistemas de programación integrados. Tenga en cuenta que la clasificación de los lenguajes de programación no está fijada por GOST ( con fines educativos, suelen clasificarse según varios criterios). Un programa elaborado en un lenguaje de programación pasa por la etapa de traducción, depuración y prueba.

El objetivo principal de las herramientas de los entornos de software integrados es aumentar la productividad de los programadores, automatizar la creación de programas que proporcionen una interfaz gráfica de usuario, etc.

Además, existen herramientas para la creación de sistemas de información complejos ( CASO - tecnología). Diseño sistemas de información Es un trabajo que requiere mucho tiempo y mano de obra y que requiere la participación de especialistas altamente calificados. En el pasado reciente, el diseño se llevaba a cabo a menudo en un nivel intuitivo utilizando métodos informales que incluían elementos de arte, experiencia práctica, evaluaciones de expertos y costosas pruebas experimentales de la calidad de operación. A principios de los 70. Hubo una crisis de programación en los EE. UU. ( crisis de software). Esto se expresó en el hecho de que grandes proyectos comenzaron a completarse con retraso o por encima de las estimaciones de costos, el producto desarrollado no tenía la funcionalidad requerida, su rendimiento era bajo y la calidad del software resultante no satisfacía a los consumidores. La necesidad de controlar el proceso de desarrollo de software, predecir y garantizar el costo de desarrollo, el tiempo y la calidad de los resultados llevó a la necesidad de pasar de los métodos artesanales a los industriales de creación de software y al surgimiento de un conjunto de métodos y herramientas de ingeniería para la creación de software. , unidos bajo el nombre general “ingeniería de software” ( ingeniería de software). La idea detrás de la ingeniería de software es que el diseño de software es un proceso formal que se puede aprender y mejorar. A finales de los 80. Se han realizado muchas investigaciones en el campo de la programación ( desarrollo e implementación de lenguajes de alto nivel, métodos de programación estructurada y modular, lenguajes de diseño y medios para soportarlos, lenguajes formales e informales para describir requisitos y especificaciones del sistema, etc.). El término CASO ( Ingeniería de software asistida por computadora) tiene una interpretación muy amplia. Inicialmente, el significado del término CASE se limitaba únicamente a la automatización del desarrollo de software, pero ahora ha adquirido un nuevo significado y cubre el proceso de desarrollo de sistemas de información complejos en su conjunto. La tecnología CASE es un conjunto de métodos para diseñar sistemas de información, así como un conjunto de herramientas que le permiten modelar visualmente un área temática, analizar este modelo en todas las etapas de desarrollo y mantenimiento y desarrollar aplicaciones de acuerdo con las necesidades de información de usuarios. La mayoría de las herramientas CASE existentes se basan en métodos de diseño y análisis estructural u orientado a objetos, utilizando especificaciones en forma de diagramas o textos para describir requisitos externos, relaciones entre modelos de sistemas, dinámicas de comportamiento del sistema y arquitectura de software.

Programas de aplicación - diseñado para resolver problemas de aplicaciones de usuario ( garantiza que las tareas requeridas por el usuario se realicen en la computadora). Condicionalmente ( según su propósito) se pueden distinguir las siguientes subclases:

· programas de procesamiento de textos;

· editores gráficos;

· programas de procesamiento de imágenes fotográficas y de vídeo;

· programas de preparación de presentaciones;

· hojas de cálculo;

· sistemas de gestión de bases de datos;

· programas de análisis económico y estadístico;

· sistemas de diseño asistido por ordenador (CAD);

· sistemas de recuperación de información;

software de red ( programas para trabajar con por correo electrónico, acceso a videoconferencias, navegadores de Internet, etc.);

· programas de juegos.

El software de aplicación consta de paquetes de aplicaciones(PPP) y programas de aplicación de usuario.

Actualmente, un lugar importante en el software de aplicación lo ocupan los paquetes de software de aplicación, que según su ámbito de aplicación se dividen en paquetes orientados a problemas (destinado a resolver una gama limitada de problemas), paquetes de uso general (Diseñado para resolver problemas típicos de procesamiento de datos.) Y paquetes integrados (su ámbito de aplicación es principalmente el ámbito económico; Suelen contener: un procesador de hojas de cálculo, un editor de texto, un sistema de gestión de bases de datos, un editor gráfico, herramientas de comunicación.). Programas de aplicación se crean como parte de un entorno informático específico ( su desarrollo suele realizarse individualmente de acuerdo con el acuerdo de la APP o del OS en cuyo marco se aplican).

Estructural llamado diagrama que refleja compuesto Y interacción de gestión partes del software que se está desarrollando.

Los diagramas estructurales de los paquetes de software no son informativos, ya que la organización de programas en paquetes no prevé la transferencia de control entre ellos. Por lo tanto, se desarrollan diagramas de bloques para cada programa del paquete y la lista de programas del paquete se determina analizando las funciones especificadas en las especificaciones técnicas.

El tipo de software más simple es un programa que sólo puede incluir subrutinas y bibliotecas de recursos como componentes estructurales. El desarrollo de un diagrama de bloques de un programa generalmente se lleva a cabo mediante un método detallado paso a paso. Los componentes estructurales de un sistema de software o un complejo de software pueden ser programas, subsistemas, bases de datos, bibliotecas de recursos, etc. El paquete demuestra la transferencia de control del programa Dispatcher al programa correspondiente (Fig. 5.1).

Arroz. 5.1. Ejemplo de un diagrama de bloques de un paquete de software.

Un diagrama de bloques de un sistema de software normalmente muestra la presencia de subsistemas u otros componentes estructurales. A diferencia de un complejo de software, las partes individuales (subsistemas) de un sistema de software intercambian datos intensamente entre sí y, posiblemente, con el programa principal. El diagrama de bloques de un sistema de software normalmente no muestra esto (Fig. 5.2).

Arroz. 5.2. Ejemplo de un diagrama de bloques de un sistema de software

Un diagrama funcional proporciona una imagen más completa del software que se está diseñando en términos de la interacción de sus componentes entre sí y con el entorno externo.

Diagrama funcional. Diagrama funcional o diagrama de datos (GOST 19.701-90): un diagrama de interacción de componentes de software con una descripción de los flujos de información, la composición de los datos en los flujos y una indicación de los archivos y dispositivos utilizados. Para representar diagramas funcionales se utilizan símbolos especiales establecidos por la norma. Las principales designaciones de los diagramas de datos según GOST 19.701-90 se dan en la tabla. 5.1.

Tabla 5.1

Nombre del bloque Designación Propósito del bloqueo
Datos memorizados Para designar tablas y otras estructuras de datos que deben almacenarse sin especificar el tipo de dispositivo
Memoria de acceso aleatorio Para hacer referencia a tablas y otras estructuras de datos almacenadas en la RAM
Memoria de acceso secuencial Para hacer referencia a tablas y otras estructuras de datos almacenadas en dispositivos de acceso secuencial (cinta magnética, etc.)
Dispositivo de almacenamiento de acceso directo Para hacer referencia a tablas y otras estructuras de datos almacenadas en dispositivos (discos) a los que se accede directamente
Documento Para designar tablas y otras estructuras de datos enviadas a un dispositivo de impresión.
Entrada manual Para indicar la entrada manual de datos desde el teclado
Mapa Para marcar datos en tarjetas magnéticas o perforadas.
Mostrar Para indicar datos mostrados en la pantalla de una computadora


Los diagramas funcionales son más informativos que los diagramas estructurales. En la figura. 5.3 muestra diagramas funcionales para comparación. sistemas de software y sistemas.

Se deben describir todos los componentes de los diagramas estructurales y funcionales. Con un enfoque estructural, es especialmente necesario elaborar las especificaciones de las interfaces entre programas, ya que el número de errores más costosos depende de la calidad de su descripción. Los errores más costosos son los que se descubren durante pruebas exhaustivas, ya que su eliminación puede requerir cambios importantes en los textos ya depurados.

Arroz. 5.3. Ejemplos de diagramas funcionales: A - complejo de programas; b - sistema de software


Diagramas de algoritmos

PROYECTO DEL CURSO

en la disciplina "Programación en un lenguaje de alto nivel"

Desarrollo de una herramienta de software para el almacenamiento y procesamiento de información a largo plazo utilizando el ejemplo del juego "Caballos"

Nota explicativa

OSU 27.03.03.0316.000PZ

Supervisor

maestro

V. V. Chekrygina “___”_____ 2016

Alumno del grupo 14SAU(ba)SAUIT _______ _________I.O. Apellido

"___"_____________ 2016

Oremburgo 2016


Anotación

El trabajo del curso contiene 18 páginas, incluidas 4 figuras, 5 fuentes y una lista de programas.

en esto trabajo del curso Se analiza en detalle la tecnología para crear un producto de software utilizando el sistema de programación orientada a objetos Delphi. Se revisan brevemente los lenguajes de programación orientados a objetos existentes. Se ha realizado una descripción de las especificaciones técnicas y del propio programa algorítmico. Al final del trabajo se presentan las pruebas del producto de software y su listado.


Introducción. 5

1 Especificaciones técnicas. 6

2 Descripción del programa.. 7

3 Guía del usuario... 9

4 Probando el programa.. 10

Conclusión. 11

Lista de fuentes utilizadas. 12

Apéndice A... 13


Introducción

Actualmente, el sistema de programación orientada a objetos Delphi es popular entre una amplia gama de usuarios, cuya base es el lenguaje Object Pascal, que fue desarrollado originalmente por N. Wirth a principios de los años 60 del siglo pasado específicamente como un lenguaje para la enseñanza. programación. Delphi le permite crear rápidamente aplicaciones de diversos grados de complejidad basadas en tecnología de programación visual.



El sistema Delphi encarna los mejores logros de la teoría de programación moderna. Este entorno integrado combina muchas herramientas útiles y componentes listos para usar a partir de los cuales se ensamblan los programas de usuario (proyectos). Delphi es un entorno de desarrollo de software visual. Esto significa que la apariencia (interfaz) de cada programa se crea simplemente moviendo componentes.

lenguaje básico El lenguaje de programación es Object Pascal, Pascal orientado a objetos. La diferencia fundamental entre los sistemas de programación Delphi y Turbo Pascal (Turbo es una marca registrada del desarrollador del sistema Borland International, Inc. (EE. UU.)) es el uso del modo de pantalla del monitor: Turbo Pascal se centra en el modo de texto del El sistema DOS, y Delphi, como Windows, se centra en los gráficos. Por lo tanto, una de las últimas versiones de Delphi 7 ya puede crear aplicaciones para el último entorno .NET. Además últimas versiones permite programar para Sistema operativo Linux.

El sistema Delphi implementa tecnología de programación virtual orientada a objetos (OOP). Se distingue de todos los demás lenguajes de programación por su rigor en la definición de todas las variables y constantes, modularidad de la programación, amplias oportunidades en la creación de sus propias estructuras de datos, utilizando programación orientada a objetos, falta de diseños orientados a máquinas. Borland Corporation, fundadora de Delphi, desde el principio se basó en la programación visual orientada a objetos con la capacidad de trabajar con cualquier base de datos. Actualmente, el sistema de programación Delphi no es de ninguna manera inferior en sus capacidades a lenguajes de programación como C++, C#, Visual C++, C–Builder, Visual Basic, etc.


1 Términos de referencia

Se planteó la tarea: desarrollar un juego sobre el tema de las carreras de caballos en un hipódromo en la zona de Delfos con un sistema de apuestas organizado.

En el proceso de resolución de este problema recibimos la siguiente solicitud:

Son 5 caballos que deben correr en línea recta, con una animación de movimiento organizado que consta de 2 imágenes, y también debe haber una máquina de apuestas. Los caballos deben ganar en diferentes órdenes.

La tarea del jugador es ganar tanto "dinero" como sea posible en la mesa de apuestas.

Requisitos mínimos para utilizar el programa: 486dx compatible con IBM o superior, 5 MB. espacio libre en el disco duro, sistema operativo Win9x/Me, Win2000/XP/Vista/Seven.

El programa proporciona:

Posibilidad con saldo cero, se puede endeudar;

Los caballos se mueven a diferentes velocidades y es imposible saber de antemano quién será el ganador.


2 Descripción del programa

Diagrama de bloques del programa

La Figura 1 muestra la ubicación de los elementos principales del programa, así es como se ve la ventana principal del producto de software.

Figura 1 – Ventana principal del programa