Herramientas de desarrollo de software. Herramientas para desarrolladores: imprescindibles y simplemente útiles

El desarrollo de software se realiza mediante diversas herramientas que proporcionan:

    programación original;

    uso de paquetes de software de aplicación: programas estándar que implementan funciones de procesamiento de datos;

    Automatización de las principales etapas del desarrollo del programa.

Las herramientas de desarrollo más tradicionales son los lenguajes y sistemas de programación. Los lenguajes de programación suelen dividirse en lenguajes de máquina y algorítmicos.

Máquina Los lenguajes contienen instrucciones de máquina correspondientes a las operaciones de procesamiento más simples. Las instrucciones de la máquina están vinculadas a una clase específica de computadora y/o sistema operativo.

algorítmico Los lenguajes de programación describen el algoritmo de un problema, proporcionan claridad del algoritmo y facilidad de mantenimiento del programa. Los lenguajes algorítmicos se dividen en lenguajes orientados a máquinas, orientados a procedimientos y orientados a problemas.

Máquina-orientado Los lenguajes de programación son lenguajes de bajo nivel porque tienen en cuenta la arquitectura y el tipo de computadoras. La programación en estos lenguajes requiere mucha mano de obra, pero los programas son óptimos en términos de los recursos informáticos necesarios. Ejemplos de lenguajes de programación orientados a máquinas son varios ensambladores 1 (Macro Assembler, Turbo Assembler, etc.) de una determinada clase de computadoras.

Procesal-orientado Los lenguajes de programación como Visual Basic, Pascal, C++, Ada, Cobol, PL1, etc. permiten describir un conjunto de procedimientos de procesamiento e implementar estructuras informáticas estándar:

1. Secuencias de bloques (instrucciones): 1, 2, 3, 4, etc.

Todos los bloques (instrucciones) se ejecutan en estricta secuencia (Fig. 5 A)

2. Transición condicional (Fig. 5 B): verificar una condición dada (2) y seleccionar una acción alternativa: si la condición es verdadera - 3, en caso contrario - 4. Después de esto, el control se transfiere al bloque 5.

3. Opción alternativa (Fig. 5 B): verificar la condición (2); si la condición es verdadera, realizar la acción 3; en caso contrario, verificar la condición (4); si la condición es verdadera, realice la acción 5, etc. Si no se cumplen condiciones o se realizan acciones (3 o 5, etc.), el control se transfiere al bloque 6.

A B C

Figura 5

4. Proceso cíclico: el ciclo "todavía" (Fig. 6A). El ciclo se repite hasta que la condición (2) sea verdadera: bloque 3. Si la condición (2) es falsa, el control se transfiere al bloque 4.

5. Proceso cíclico: ciclo “antes” (Fig. 6B). El bucle se ejecuta al menos una vez: bloque 2. Después de verificar la condición (3), si es verdadera, se ejecuta el bloque (2); de lo contrario, el control se transfiere al bloque 4.

Figura 6

Lenguajes de programación objeto tipo, los elementos de programación estructurada también se utilizan en el código de programa de una clase de objetos o procedimientos de procesamiento de eventos.

Problemático-orientado Lenguajes de programación: lenguajes de consulta relacionales de alto nivel, generadores de informes, etc. Le permiten identificar el problema, la información de entrada y salida, sin especificar procedimientos de procesamiento específicos.

Los paquetes de programas de aplicación (APP) se dividen en clases:

    APP orientada a problemas: proporciona soluciones a problemas de un área temática específica;

    PPP orientadas a métodos: apoyan un cierto tipo de modelo y métodos para resolver problemas, se utilizan independientemente del área temática;

    Software de propósito general: brinda soporte para tecnologías de la información (trabajo de texto, trabajo gráfico, cálculos estándar, etc.).

Características generales de las herramientas de desarrollo de software.

    Características generales de las herramientas de desarrollo de software.

    Tecnología de programación de sistemas instrumentales.

    Herramientas CASE. Características de las herramientas CASE modernas

Descripción general de las herramientas orientadas a objetos

La programación orientada a objetos surgió antes que el análisis y diseño orientado a objetos, por lo que hoy en día existe una gran cantidad de lenguajes que soportan esta tecnología. El primero de ellos, según la fecha de origen, se considera lengua. Charla, aunque muchos elementos del enfoque orientado a objetos se utilizaron en el lenguaje simulación en 1967 La herramienta más poderosa para crear programas orientados a objetos en la actualidad es el lenguaje C++, creado sobre la base de un lenguaje de programación estructurado C. El idioma se está desarrollando con éxito. Java, que fue diseñado originalmente para estar orientado a objetos.

El desarrollo de grandes sistemas de software en las condiciones modernas es imposible sin el uso de herramientas de desarrollo de software de automatización (herramientas CASE). No hay muchos CASE que admitan el enfoque orientado a objetos. La herramienta más conocida en este sentido es el sistema Rosa racional , que soporta, entre otras cosas, las etapas de análisis y diseño orientado a objetos.

Herramienta CASE orientada a objetos de Rational Rose

Desarrollador Rosa racional- Rational Software Corp., conocida por sus desarrollos en el campo de las tecnologías orientadas a objetos, la principal de las cuales es el lenguaje UML. Es precisamente al soporte de UML, como principal lenguaje de diseño de software, a lo que está orientado este sistema CASE.

Como cualquier herramienta CASE moderna, este sistema admite todas las etapas del ciclo de vida del software y proporciona al usuario una amplia gama de funciones para analizar, diseñar, construir y mantener software. En este caso, se utilizan tecnologías orientadas a objetos y se utilizan ampliamente modelos gráficos.

Rosa racional consta de los siguientes componentes principales: un repositorio, una interfaz gráfica de usuario, herramientas de inspección de proyectos (navegador), herramientas de control de proyectos, herramientas de recopilación de estadísticas y un generador de documentos, así como extensiones para soportar varios lenguajes de programación.

Las características principales incluyen las siguientes:

    Un potente lenguaje de modelado de dominio gráfico que tiene un alto nivel de formalización y admite metodología orientada a objetos.

    Navegación cómoda entre elementos del modelo utilizando el "inspector de proyectos".

    Almacenar los resultados del diseño en forma de un solo modelo.

    Apoyar el trabajo del equipo de desarrollo en el proyecto.

    Potente sistema de elaboración de informes y documentación de proyectos.

    Posibilidad de síntesis de programas en casi todos los lenguajes modernos orientados a objetos, incluido el lenguaje multiplataforma Java.

    Soporte para tecnologías de componentes para la construcción de sistemas de software.

    Amplias posibilidades para diseñar software de diversas arquitecturas, desde programas simples hasta grandes sistemas “cliente-servidor” y aplicaciones de Internet.

    Posibilidad de reingeniería del modelo en base al código fuente del programa. Esto garantiza que se mantenga la integridad de la información del diseño y la implementación.

    Configurar y ampliar la funcionalidad del entorno CASE mediante la instalación de módulos de extensión, principalmente para admitir varios lenguajes de programación.

Principios del desarrollo de sistemas de software en Rational Rose.

La construcción de sistemas orientados a objetos tiene sus propias particularidades. Obviamente, para lograr la máxima eficiencia, se debe utilizar una única tecnología en todas las etapas del ciclo de vida. Esta oportunidad la brinda el lenguaje de modelado universal UML. Rosa racional admite todas las fases de diseño del sistema que se definen en la especificación UML.

El principal método de diseño es crear varios tipos de diagramas y especificaciones que definen la estructura lógica y física del modelo del sistema, sus aspectos estáticos y dinámicos. Estos incluyen diagramas de clase, estado, script, módulo y proceso.

En todas las etapas, es posible utilizar editores gráficos especializados para los elementos del modelo y utilizar el inspector del modelo para navegar entre sus componentes. Toda la información del diseño se guarda en un único archivo de modelo (*.mdl).

El trabajo comienza con la construcción de un Diagrama de Casos de Uso, que caracteriza las principales tareas y entorno del sistema diseñado. A continuación, para cada Caso de Uso presentado en el diagrama de uso, se desarrollan Diagramas de Secuencia que identifican objetos en el sistema y describen la secuencia de eventos que ocurren en el proceso de comunicación entre objetos. Rosa racional le permite asociar automáticamente diagramas de secuencia con bloques de uso.

Los objetos presentes en los diagramas de secuencia se definen en el sistema mediante clases. Las clases y sus relaciones se definen mediante diagramas de clases, cuyo desarrollo también es compatible. Rosa racional. Las clases se agrupan en paquetes. Racional Rosa le permite definir un conjunto de paquetes, las relaciones entre ellos y representar sus clases constituyentes en diagramas de clases anidados.

La composición de los módulos del sistema compilados y ejecutados se especifica en Rosa racional utilizando un diagrama de componentes. El diagrama identifica las dependencias entre componentes. Los componentes pueden tener interfaces a través de las cuales se implementan dependencias. Diagramas de implementación en Rosa racional reflejan la configuración del sistema de software en ejecución y constan de nodos y relaciones de interacción entre nodos. Los nodos incluyen los componentes representados en el diagrama de componentes del sistema.

Para un modelo completamente definido, es posible generar textos de programa fuente en varios lenguajes de programación orientados a objetos compatibles. Rosa racional, como Java o C++.

Los textos del programa resultantes se pueden modificar fuera Rosa racional, y para tener en cuenta los cambios realizados, el sistema permite aplicar ingeniería inversa a los textos en un modelo.

Diseño de software

Modelado de dominio . La creación de un proyecto comienza con la formación de principios para utilizar el sistema. Dentro Rosa racional Esta etapa se llama "Vista de casos de uso". La implementación de esta etapa permite identificar usuarios externos, bloques de uso, objetos del sistema y conexiones entre ellos.

Se elabora un diagrama de uso que refleja el funcionamiento externo del sistema que se está creando. Este modelo es similar en muchos aspectos al diagrama de flujo de datos del análisis estructural. Sus principales componentes son usuarios externos (actores), bloques de uso (casos de uso) y conexiones entre componentes. Para crear un gráfico en Rosa racional Se utiliza un editor gráfico especializado.

Todos los elementos del diagrama de uso son identificados por el sistema como componentes independientes del modelo dentro de esta etapa y están sujetos a especificaciones adicionales. En primer lugar, se trata de bloques de uso, que reflejan grupos de funciones del sistema presentadas como un todo ante un usuario externo.

Para cada bloque de uso, se construye un diagrama de secuencia que muestra la interacción a lo largo del tiempo de los objetos que realizan la tarea. Dichos diagramas identifican objetos del sistema y definen los mensajes a través de los cuales interactúan estos objetos. Los diagramas se construyen en un editor especializado.

Cada objeto en un diagrama de secuencia va acompañado del nombre de la clase a la que pertenece. Un objeto específico es una instancia de alguna clase. Las clases forman la estructura lógica del sistema.

Desarrollo de una estructura lógica. Una vez completada la formación de los principios de uso del sistema, comienza la etapa de desarrollo de su estructura lógica. EN Rosa racional se llama "Vista lógica". El resultado de esta etapa debe ser un diagrama principal y diagramas de detalle de sus elementos.

En esta etapa, debe determinar las clases que se necesitan en el sistema. Las instancias de estas clases ya están especificadas en los diagramas de secuencia. Las clases y sus conexiones se reflejan en el modelo en forma de diagrama de clases. Los grupos de clases en estos diagramas se pueden agrupar en paquetes.

El diseño de una estructura lógica debe comenzar con la definición de los paquetes principales. Un paquete es una herramienta universal para agrupar elementos de modelo. El uso de paquetes le permite hacer que el modelo sea más visible. Los paquetes se pueden anidar unos dentro de otros. Las clases que componen cada paquete se detallan en el diagrama incluido.

Construido en Rosa racional El Editor de diagramas de clases proporciona herramientas prácticas para este tipo de operaciones y el Inspector de modelos facilita la navegación por la jerarquía del diagrama.

Para cada clase, se especifica una especificación que describe la composición de atributos y métodos, conexiones, la plantilla en la que se crea la clase y las características de implementación.

La presencia de plantillas facilita la creación de clases de diversas estructuras.

Las clases se pueden importar al sistema desde fuera. Rosa racional admite la estructura de componentes del software y permite el uso de componentes binarios como COM y ActiveX en el modelo. Su representación en el modelo se realiza mediante clases basadas en las interfaces de estos componentes.

Además de los diagramas de clases, en esta etapa se utilizan diagramas de estado, diagramas de escenarios y otros elementos del lenguaje UML para describir la lógica del sistema.

Diseñar la estructura física de la aplicación. Las clases descritas en el paso anterior están asociadas a los componentes físicos del programa mediante diagramas de componentes.

Un componente es un módulo ejecutable del sistema y está asociado con un archivo fuente, un archivo de biblioteca binaria, un módulo objeto o un archivo ejecutable. Los componentes pueden incluir otros componentes.

Para visualizar los componentes del sistema diseñado se utilizan diagramas de componentes. Etapa de construcción de diagramas de componentes en Rosa llamada "Vista de componentes". Consiste en construir un diagrama general y, si es necesario, detallar los componentes individuales en subdiagramas.

Estos diagramas reflejan la relación entre los componentes del software. La relación se implementa a través de interfaces, que también se muestran en el diagrama.

Los diagramas se crean en un editor especializado. Para un componente, se especifican sus clases constituyentes.

El componente puede generar texto fuente en varios lenguajes de programación compatibles. Rosa racional, o asignar fragmentos de programas desarrollados fuera del entorno Rosa. En este último caso, su interfaz debe coincidir con la declarada en el modelo.

El último paso en el diseño de software es preparar un diagrama de implementación. EN Rosa Esta etapa se llama "Vista de implementación". Los diagramas de implementación muestran la configuración de un sistema de software ejecutable. Consta de nodos y relaciones de interacción entre nodos y componentes. Los nodos pueden incluir componentes y objetos. Los nodos son elementos físicos de ejecución.

Construcción y mantenimiento del sistema.

Generar textos fuente . Una vez que se han identificado los componentes específicos del sistema que se está desarrollando, es hora de generar el código del programa para cada componente.

De hecho, Rosa genera un esqueleto del programa, que posteriormente se envía a los programadores para su revisión. Se sintetizan automáticamente definiciones de clases y métodos, cuya implementación específica debe realizarse manualmente.

La información inicial para esta operación es información sobre las clases que componen este componente y el lenguaje seleccionado para implementar este componente.

Antes de realizar la operación, debe determinar la composición y los parámetros para guardar el código recibido. A continuación, realice la generación seleccionando el idioma requerido. Si se producen errores, el sistema le informará al respecto.

Es posible generar selectivamente código de programa para componentes de modelos individuales y personalizar la información colocada en los archivos de programa. Esto logra una alta flexibilidad al actualizar y modificar el modelo.

Rational Rose 98 Edición Empresarial le permite generar texto fuente en Visual Basic, C++, Java, así como obtener una descripción de las interfaces de los componentes en IDL y crear proyectos para el sistema Oracle 8.

Reingeniería de un modelo basado en códigos fuente . La capacidad de rediseñar o, como también se le llama, “ingeniería inversa”, un modelo a partir de los textos del programa fuente parece ser una de las funciones importantes y, por supuesto, útiles. Rosa. La necesidad de realizar una operación de este tipo surge a menudo al modificar y actualizar un proyecto. Las plantillas de programa generadas por el modelo, una vez transferidas a los programadores, se pueden modificar y estos cambios deben tenerse en cuenta en el modelo. Es más, desde Rosa racional admite la importación de componentes binarios (objetos COM en el entorno Win32), entonces el soporte para crear clases basadas en la descripción de las interfaces de un componente binario es simplemente necesario.

Puede realizar ingeniería inversa de clases seleccionando el lenguaje de programación en el que se implementan las clases y especificando el directorio donde se encuentran los archivos fuente. Luego puede seleccionar los archivos necesarios o aplicarles ingeniería inversa a todos. Al realizar estas acciones, debes tener cuidado y seleccionar solo aquellos elementos que realmente se puedan convertir en un modelo. Durante la operación, el sistema le informará sobre la presencia de errores.

Después de completar exitosamente la operación, aparecerá un nuevo elemento en el diagrama de componentes (la etapa "Vista de componentes"), con un nombre que coincide con el directorio de los archivos fuente. Pasar a la etapa Vista lógica mostrará que todas las clases y paquetes que componen el nuevo componente también aparecieron en los diagramas de clases.

Ahora es posible realizar cambios en el modelo, determinados por los componentes agregados, y regenerar los textos fuente.

Soporte en etapa de desarrollo

Componentes y plantillas. Una de las posibilidades Rosa es el modelado de componentes binarios que soportan la especificación COM. En el modelo, dichos componentes están representados por clases de interfaz creadas sobre la base de archivos IDL que acompañan al objeto COM. Esto le permite incluir varios componentes disponibles en el mercado en su modelo.

La compatibilidad con plantillas de elementos de modelo simplifica el proceso de diseño. EN Rosa Puede crear y utilizar plantillas para la mayoría de los elementos del modelo, incluidos: bloques de uso, paquetes, clases, componentes, así como para operaciones en el modelo. Al crear un nuevo elemento, debe especificar qué plantilla se está utilizando y el elemento incluirá todas las propiedades de la plantilla. Este enfoque le permite deshacerse del trabajo rutinario y concentrarse en el proyecto en sí.

Ambientes de trabajo. Un desarrollo lógico de la idea de utilizar plantillas y componentes binarios externos en Rosa racional Fue la aparición del entorno laboral (Marco).

Un espacio de trabajo es un tipo de plantilla que establece el entorno para el modelo que se está creando. Esto se realiza cargando los elementos base incluidos en el banco de trabajo, que pasan a ser parte integral del modelo.

Rosa proporciona una amplia gama de entornos de trabajo estándar y también puede crear los suyos propios. El conjunto de entornos de trabajo estándar es el siguiente:

    Explorador de rendimiento de aplicaciones

    Entorno estándar. Enfocado a la creación de aplicaciones en Visual Basic. Incluye declaración de muchos objetos VB estándar.

    Entorno de diseño de aplicaciones para Internet. Incluye la definición de varios componentes ActiveX y bibliotecas VB.

    Entorno de diseño de aplicaciones para trabajar con bases de datos locales (Local Database). Contiene la declaración de objetos del sistema DAO.

    Entorno de diseño de aplicaciones mediante RDO (Remote Data Object). Le permite utilizar objetos RDO para crear aplicaciones cliente-servidor.

    Un entorno de diseño de aplicaciones para acceder a servidores SQL (SQL Server Distributed Management Object (SQL-DMO)), que admite el acceso a SQL a través de objetos OLE-Automation.

    Entorno de soporte de Microsoft Transaction Server

    Entorno de soporte de Microsoft Outlook

    Entornos de desarrollo de aplicaciones Java (Java JDK 114 Full y Java JDK 114 Quick). Incluye modelos de clases e interfaces Java obtenidos mediante ingeniería inversa.

    Entorno de soporte de Oracle8

El entorno de desarrollo se asigna al crear el modelo. Los entornos de desarrollo se almacenan en forma de archivos modelo (*.mdl) destinados a solo lectura. Durante el proceso de creación de un nuevo modelo, se cargan los elementos necesarios desde el entorno de desarrollo seleccionado, tras lo cual se crea un nuevo modelo.

Los entornos de desarrollo proporcionan un gran mecanismo de personalización. Rosa para un proyecto específico. Puede crear su propio entorno de desarrollo, que incluirá los elementos que necesita de varios entornos estándar. Parte Rosa racional Incluye un “master” para la creación de ambientes de trabajo.

Soporte del equipo de desarrollo. Cualquier proyecto grande suele ser llevado a cabo por un grupo de desarrolladores, que incluye analistas, diseñadores y programadores. El proceso de desarrollo consta de sucesivas iteraciones con el ciclo "análisis" - "diseño" - "implementación". En cada etapa, varios desarrolladores trabajan con el modelo y las etapas se repiten cíclicamente. En tales condiciones, es necesario mantener la integridad del proyecto, tener en cuenta los cambios realizados en las diferentes etapas y coordinar las etapas. Todo esto requiere el uso de un repositorio común y una ideología de diseño especial.

Junto con una práctica herramienta de inspección de modelos que facilita el cambio entre etapas, Rosa racional Se han identificado mecanismos para apoyar al equipo de desarrollo.

Crea diferentes espacios de trabajo para desarrolladores y un espacio de trabajo para todo el proyecto. Cada desarrollador realiza cambios en su parte (submodelo), y estos cambios se vuelven globales (transferidos al modelo general) solo después de que sean aprobados por el sistema de gestión de proyectos. Como controladores de proyectos en Rosa Se pueden utilizar sistemas externos, como Caso claro Y Microsoft SourceSafe.

Usando módulos de expansión . EN Rosa racional Se ha introducido un mecanismo flexible para la configuración y personalización de las capacidades del sistema. Hay varios módulos de expansión que se pueden instalar en Rosa y resolver diversos problemas. Hay dos tipos principales de módulos de extensión: extensiones que admiten lenguajes de programación y extensiones de funcionalidad del entorno.

Al agregar una nueva extensión, se integra con el sistema agregando elementos a los menús del sistema e instalando las bibliotecas y archivos ejecutables necesarios. Además, cada extensión puede agregar sus propios tipos y plantillas al sistema.

Las extensiones necesarias generalmente se agregan durante la instalación inicial del sistema, pero se pueden instalar más tarde. Se admite la distribución de extensiones a través de Internet.

Para gestionar extensiones en Rosa Hay un administrador de extensiones. Con su ayuda, puedes activar y desactivar varios módulos de extensión.

Pros y contras de Rational Rose

Esta herramienta CASE se puede utilizar para crear una variedad de software orientado a objetos, principalmente para la plataforma Windows, así como en el lenguaje Java multiplataforma.

El lenguaje UML se utiliza en todas las etapas de desarrollo y el proyecto de software es un modelo único.

Las ventajas importantes son la personalización para varios lenguajes de programación y arquitecturas de sistemas de software, así como la posibilidad de realizar "ingeniería inversa" basada en textos fuente en varios lenguajes de programación. Existe soporte para varios métodos de implementación física de los componentes del sistema diseñado.

La posibilidad de configurar el sistema mediante módulos de expansión es muy útil. De hecho, la única forma de escribir una aplicación para un sistema operativo que no sea Windows es utilizar el lenguaje Java.

La esencia y el concepto del software instrumental.

El software instrumental (IPO) es software destinado a ser utilizado en el diseño, desarrollo y mantenimiento de programas.

Las herramientas se utilizan en la fase de desarrollo. El software de herramientas es una colección de programas que se utilizan para ayudar a los programadores en su trabajo, para ayudar a los gerentes de desarrollo de software en sus esfuerzos por controlar el proceso de desarrollo y los productos resultantes. Los representantes más famosos de esta parte del software son los programas traductores de lenguajes de programación, que ayudan a los programadores a escribir comandos de máquina. Los programas instrumentales son traductores de los idiomas Fortran, Cobol, Joe-vial, BASIC, APL y Pascal. Facilitan el proceso de creación de nuevos programas de trabajo. Sin embargo, los traductores de idiomas son sólo la parte más conocida de los programas instrumentales; hay muchísimos de ellos.

El uso de computadoras para ayudar a crear nuevos programas está lejos de ser obvio para las personas que no son programadores profesionales. A menudo sucede que los profesionales hablan al mismo tiempo de software de herramienta (fase de desarrollo) y de sistema (fase de uso), asumiendo que aquellos que no están al tanto de los secretos de su oficio son conscientes de este papel del software de herramienta. Al igual que en la fase de uso (para programas de aplicación), el software del sistema también funciona en la fase de desarrollo, pero sólo en combinación con las herramientas. El software de herramientas o sistemas de programación son sistemas para automatizar el desarrollo de nuevos programas en un lenguaje de programación.

En el caso más general, para crear un programa en el lenguaje de programación seleccionado (lenguaje de programación del sistema), es necesario tener los siguientes componentes:

1. Editor de texto para crear un archivo con el texto fuente del programa.

2. Compilador o intérprete. El texto fuente se traduce a código objeto intermedio mediante un programa compilador. El código fuente de un programa grande consta de varios módulos (archivos fuente). Cada módulo se compila en un archivo separado con código objeto, que luego debe combinarse en uno solo.

3. Un editor de enlaces o ensamblador que vincula módulos de objetos y produce una aplicación funcional como salida: código ejecutable.

El código ejecutable es un programa completo que se puede ejecutar en cualquier computadora que tenga el sistema operativo para el cual fue creado el programa. Como regla general, el archivo resultante tiene la extensión .EXE o .COM.

Recientemente, se han generalizado los métodos de programación visual (que utilizan lenguajes de scripting) destinados a crear aplicaciones para Windows. Este proceso está automatizado en entornos de diseño rápido. En este caso, se utilizan componentes visuales ya preparados, que se configuran mediante editores especiales.

Los editores (sistemas de programación de programas que utilizan herramientas visuales) más populares para el diseño visual:

Borland Delphi: diseñado para resolver casi cualquier problema de programación de aplicaciones.

Borland C++ Builder es una excelente herramienta para desarrollar aplicaciones de DOS y Windows.

Microsoft Visual Basic es una herramienta popular para crear programas de Windows.

Microsoft Visual C++: esta herramienta le permite desarrollar cualquier aplicación que se ejecute en un entorno de sistema operativo como Microsoft Windows.

Así, la esencia del software instrumental es crear cualquier programa ejecutable mediante la conversión de expresiones lógicas formales en código de máquina ejecutable, así como su control y ajuste.

Tareas y funciones del software de la herramienta.

El software instrumental, como tipo especial de software, se caracteriza por características generales y privadas.

funciones, como para todo el software en general. Las funciones generales se comentan anteriormente, y las funciones especializadas inherentes únicamente a este tipo de programa son:

1. Crear el texto del programa que se está desarrollando utilizando palabras de código especialmente establecidas (lenguaje de programación), así como un determinado conjunto de caracteres y su ubicación en el archivo creado: sintaxis del programa.

2. Traducción del texto del programa creado a código orientado a máquina, accesible para el reconocimiento por computadora. Si el volumen del programa creado es significativo, se divide en módulos separados y cada uno de los módulos se traduce por separado.

3. Conectar módulos individuales en un único código ejecutable, de acuerdo con la estructura necesaria, asegurando la coordinación de la interacción de las partes individuales entre sí.

4. Probar y monitorear el programa creado, identificar y eliminar errores formales, lógicos y sintácticos, verificar la presencia de códigos prohibidos en los programas, así como evaluar el desempeño y potencial del programa creado.

Tipos de software de herramientas

En función de las tareas asignadas al software instrumental, podemos distinguir una gran cantidad de diferentes tipos de software instrumental:

editores de texto

Entornos de desarrollo integrados

Compiladores

Intérpretes

Enlazadores

Analizadores y generadores de analizadores (ver Javacc)

ensambladores

Depuradores

Perfiladores

Generadores de documentación

Herramientas de análisis de cobertura de código

Herramientas de integración continua

Herramientas de prueba automatizadas

Sistemas de control de versiones, etc.

Cabe señalar que los shells para crear programas de aplicación también los crean programas de herramientas y, por lo tanto, pueden clasificarse como programas de aplicación. Consideremos brevemente los propósitos de algunos programas instrumentales.

Editores de texto.

Un editor de texto es un programa de computadora diseñado para procesar archivos de texto, como crear y realizar cambios.

composición CAD

CAD es un sistema que combina medios técnicos, matemáticas y software, cuyos parámetros y características se seleccionan teniendo en cuenta al máximo las particularidades de las tareas de diseño y construcción de ingeniería. CAD garantiza la facilidad de uso de los programas mediante el uso de medios de comunicación operativa entre un ingeniero y una computadora, lenguajes especiales orientados a problemas y la disponibilidad de una base de datos de información y referencia.

Los componentes estructurales de CAD son subsistemas que tienen todas las propiedades de los sistemas y se crean como sistemas independientes. Se trata de partes de los sistemas CAD, identificadas según determinadas características, que garantizan la implementación de determinadas tareas de diseño completadas con la recepción de las correspondientes soluciones de diseño y documentos de diseño.

Según su finalidad, los subsistemas CAD se dividen en dos tipos: diseño y mantenimiento.

Los subsistemas de diseño incluyen aquellos que realizan procedimientos y operaciones de diseño, por ejemplo:

· subsistema de disposición de la máquina;

· subsistema para diseñar unidades de montaje;

· subsistema de diseño de piezas;

· subsistema de diseño de circuitos de control;

· subsistema de diseño tecnológico.

Los subsistemas de servicio incluyen subsistemas diseñados para mantener la funcionalidad de los subsistemas de diseño, por ejemplo:

· subsistema para visualización gráfica de objetos de diseño;

· subsistema de documentación;

· subsistema de recuperación de información, etc.

Dependiendo de la relación con el objeto de diseño, se distinguen dos tipos de subsistemas de diseño:

· orientado a objetos (basado en objetos);

· independiente del objeto (invariante).

Los subsistemas de objetos incluyen subsistemas que realizan uno o más procedimientos u operaciones de diseño que dependen directamente de un objeto de diseño específico, por ejemplo:

· subsistema de diseño de sistemas tecnológicos;

· subsistema de modelado dinámico, estructura diseñada, etc.

Los subsistemas invariantes incluyen subsistemas que realizan operaciones y procedimientos de diseño unificados, por ejemplo:

· subsistema de cálculo de piezas de máquinas;

· subsistema para calcular modos de corte;

· subsistema de cálculo de indicadores técnicos y económicos, etc.

El proceso de diseño se implementa en subsistemas en forma de una secuencia específica de procedimientos y operaciones de diseño. El procedimiento de diseño corresponde a una parte del subsistema de diseño, como resultado del cual se toma una determinada decisión de diseño. Consiste en operaciones de diseño elementales, tiene un orden firmemente establecido para su implementación y tiene como objetivo lograr un objetivo local en el proceso de diseño. Se entiende por operación de diseño una parte seleccionada convencionalmente de un procedimiento de diseño o una acción elemental realizada por un diseñador durante el proceso de diseño. Ejemplos de procedimientos de diseño incluyen procedimientos para desarrollar un diagrama cinemático o de diseño de una máquina herramienta, tecnología de procesamiento de productos, etc., y ejemplos de operaciones de diseño incluyen calcular tolerancias, resolver una ecuación, etc.

La unidad estructural de los subsistemas CAD está garantizada por una estricta regulación de las conexiones entre varios tipos de software, unidos por una función objetivo común para un subsistema determinado. Se distinguen los siguientes tipos de seguridad:

· soporte metodológico: documentos que reflejan la composición, reglas para la selección y operación de herramientas de automatización del diseño;

· soporte lingüístico: lenguajes de diseño, terminología;

· software: métodos, modelos matemáticos, algoritmos;

· software: documentos con textos de programas, programas en soportes informáticos y documentos operativos;

· soporte técnico: equipos informáticos y organizativos, dispositivos de transmisión de datos, dispositivos de medición y otros y sus combinaciones;

· soporte informativo: documentos que contienen una descripción de los procedimientos de diseño estándar, soluciones de diseño estándar, elementos estándar, componentes, materiales y otros datos;

· soporte organizacional: reglamentos e instrucciones, órdenes, horarios de personal y otros documentos que regulan la estructura organizativa de los departamentos y su interacción con un complejo de herramientas de automatización de diseño.

· 64 tecnologías CALS.

Las tecnologías CALS sirven como medio para integrar sistemas automatizados industriales en un único sistema multifuncional. El objetivo de integrar sistemas automatizados de diseño y control es aumentar la eficiencia en la creación y uso de equipos complejos.

En las condiciones modernas del surgimiento de una sociedad de la información global, el papel de la información y las tecnologías de la información está aumentando significativamente en la formación de un futuro especialista. En un futuro próximo, el potencial estratégico de la sociedad no serán los recursos energéticos, sino la información y el conocimiento científico. La información se convierte en el principal recurso para el desarrollo científico, técnico y socioeconómico de la sociedad, influye significativamente en el desarrollo acelerado de la ciencia, la tecnología y diversas industrias y juega un papel importante en el proceso de modernización de la educación. Las características semánticas de valores de la educación en una universidad y las actividades profesionales de los especialistas deben expresarse en la formación de un entorno profesional intelectual que realice de la manera más plena las tareas de las actividades de investigación y diseño.

La informatización generalizada de todo tipo de actividad humana: desde las tareas intelectuales tradicionales de carácter científico hasta la automatización de actividades productivas, comerciales, bancarias y de otro tipo sirve para aumentar la eficiencia de la producción. En una economía de mercado, sólo las empresas que utilizan tecnologías de la información modernas en sus actividades resisten con éxito la competencia.

Son las tecnologías de la información, junto con las tecnologías avanzadas de producción de materiales, las que permiten aumentar significativamente la productividad laboral y la calidad de los productos y al mismo tiempo reducir significativamente el tiempo necesario para lanzar nuevos productos que satisfagan las necesidades y expectativas de los consumidores. Todo lo anterior se aplica principalmente a productos complejos de alta tecnología, incluidos los productos con fines técnicos.

La experiencia adquirida en el proceso de implementación de varios sistemas de información autónomos permitió darse cuenta de la necesidad de integrar varias tecnologías de la información en un solo complejo basado en la creación dentro de una empresa o grupo de empresas (empresa virtual) de un entorno de información integrado que soporte todas las etapas del ciclo de vida de los productos manufacturados. El entorno profesional revela más plenamente oportunidades de mejora profesional, utilizando las nuevas tecnologías de la información en la ciencia y en el campo de la gestión de procesos productivos. Tecnologías innovadoras en el campo de la industria de procesamiento de información con la introducción de la tecnología CALS (Adquisición Continua y Soporte al Ciclo de Vida): soporte de información continuo para el ciclo de vida de un objeto diseñado, lleva la automatización de la gestión del proceso de producción a un nuevo nivel.

El uso de tecnologías de la información basadas en la ideología CALS es uno de los factores que contribuyen a una implementación más eficaz de un sistema automatizado de gestión empresarial.

Las tecnologías CALS sirven como un medio para integrar sistemas automatizados industriales en un único sistema multifuncional. El objetivo de integrar sistemas automatizados de diseño y control es aumentar la eficiencia en la creación y uso de equipos complejos.

La esencia del concepto CALS es la aplicación de principios y tecnologías de soporte de información en todas las etapas del ciclo de vida del producto, basado en el uso de un entorno de información integrado que proporciona formas uniformes de gestionar los procesos y la interacción de todos los participantes en este ciclo: Clientes de productos (incluidas agencias y departamentos gubernamentales), proveedores (fabricantes), productos, personal de operación y mantenimiento. Estos principios y tecnologías se implementan de acuerdo con los requisitos de los estándares internacionales que rigen las reglas de gestión e interacción principalmente a través del intercambio electrónico de datos.

Cuando se utiliza la tecnología CALS, la calidad de los productos aumenta debido a una consideración más completa de la información disponible al diseñar y tomar decisiones de gestión, y también reduce los costos de material y tiempo para el diseño y fabricación de productos. En el proceso de introducción de esta tecnología, la validez de las decisiones tomadas en un sistema automatizado de gestión empresarial (EMS) será mayor si quien toma las decisiones y los programas de gestión correspondientes tienen acceso rápido no solo a la base de datos AMMS, sino también a las bases de datos de otros. sistemas automatizados y por tanto, puede optimizar los planes de trabajo, el contenido de las aplicaciones, la distribución de los artistas, la asignación de finanzas, etc. Al mismo tiempo, el acceso en línea debe entenderse no solo como la capacidad de leer datos de una base de datos, sino también como la facilidad de su correcta interpretación, es decir. coherencia en sintaxis y semántica con los protocolos adoptados en los sistemas de control automatizados. Los subsistemas tecnológicos deben percibir e interpretar correctamente los datos provenientes de subsistemas de diseño automatizados con alta precisión. Esto no es tan fácil de lograr si las principales empresas y organizaciones relacionadas trabajan con diferentes sistemas automatizados. Además, se vuelve urgente el problema de proteger la información a lo largo de todo el perímetro de los subsistemas tecnológicos.

El uso de tecnologías CALS puede reducir significativamente la cantidad de trabajo de diseño, ya que las descripciones de desarrollos exitosos de componentes y dispositivos previamente completados, muchos componentes de equipos, máquinas y sistemas que se diseñaron anteriormente se almacenan en bases de datos de servidores de red, accesibles para cualquier usuario de Tecnología CALS. La disponibilidad y la protección nuevamente están garantizadas por la coherencia de formatos, métodos y pautas en diferentes partes del sistema integrado general. Además, existen mayores oportunidades de especialización de las empresas, incluso creando empresas virtuales, lo que también ayuda a reducir costos.

En el proceso de implementación de la tecnología CALS, los costos operativos se reducen significativamente debido a la implementación de funciones integradas de soporte logístico. Facilita significativamente la resolución de problemas de mantenibilidad, integración de productos en diversos tipos de sistemas y entornos, adaptación a condiciones operativas cambiantes, etc. Estas ventajas de la integración de datos se logran mediante el uso de tecnologías CALS modernas.

Los sistemas automatizados industriales pueden funcionar de forma autónoma y actualmente la organización del proceso de gestión de la producción se realiza sobre esta base. Sin embargo, la efectividad de la automatización será notablemente mayor si los datos generados en uno de los sistemas están disponibles en otros sistemas, ya que las decisiones que se tomen en ellos serán más informadas.

La experiencia de implementar la tecnología CALS muestra que para lograr el nivel adecuado de interacción entre sistemas industriales automatizados, es necesario crear un espacio de información unificado tanto dentro de las empresas individuales como, lo que es más importante, en el marco de una asociación de empresas. Se garantiza un espacio de información unificado unificando tanto la forma como el contenido de la información sobre productos específicos en varias etapas de su ciclo de vida.

La unificación del formulario se logra mediante el uso de formatos y lenguajes estándar para presentar información en los intercambios entre programas y durante la documentación.

La unificación de contenidos, entendida como la interpretación correcta e inequívoca de los datos sobre un producto específico en todas las etapas de su ciclo de vida, está garantizada por el desarrollo de ontologías (metadescripciones) de aplicaciones, consagradas en los protocolos de aplicación CALS.

CAD: ¿qué es?

Entonces, ¿qué son los sistemas de diseño asistido por ordenador? CAD se refiere a sistemas automatizados que están diseñados para implementar una u otra tecnología de la información a través del diseño. En la práctica, los sistemas CAD son sistemas técnicos que permiten automatizar y asegurar el funcionamiento de los procesos que componen el desarrollo de proyectos. Según el contexto, CAD puede significar:

software utilizado como elemento principal de la infraestructura relevante;

Un conjunto de sistemas técnicos y de personal (incluidos aquellos que implican el uso de CAD en forma de software) utilizados en una empresa para automatizar el proceso de desarrollo de proyectos;

Así, es posible distinguir una interpretación amplia y restringida del término en cuestión. Es difícil decir cuál de estas interpretaciones se utiliza con más frecuencia en los negocios. Todo depende del área específica de uso de los sistemas de diseño asistido por ordenador, así como de las tareas para las que se supone que se utilizan estos sistemas. Así, por ejemplo, en el contexto de un único taller de producción, se supone que CAD es un programa específico para el diseño asistido por ordenador. Si hablamos de planificación estratégica para el desarrollo de una organización, lo más probable es que un concepto como CAD corresponda a una infraestructura a gran escala que se utiliza para aumentar la eficiencia del desarrollo de varios proyectos. Cabe señalar que el término CAD en sí es una abreviatura que puede descifrarse de diferentes formas. En general, esta abreviatura corresponde a la combinación de las palabras “sistema de diseño asistido por computadora”. También existen otras opciones para descifrar esta abreviatura. Por ejemplo, la opción "sistema de automatización de diseño" es bastante común. En términos de significado, el equivalente en inglés del término CAD es la abreviatura CAD, en algunos casos también se usa CAX. Echemos un vistazo más de cerca a la siguiente pregunta: ¿para qué se pueden crear sistemas de diseño asistido por computadora en la ingeniería mecánica y ¿otros campos?

CAD: objetivos de creación

El objetivo principal del desarrollo CAD es aumentar la eficiencia laboral de los especialistas empresariales que resuelven diversos problemas de producción, incluidos los relacionados con el diseño de ingeniería. En este caso, la eficiencia se puede aumentar debido a los siguientes factores:

Reducir la intensidad laboral del proceso de diseño;

Reducir el tiempo de implementación del proyecto;

Reducir el costo del trabajo de diseño y los costos operativos;

Garantizar una mejor calidad de la infraestructura de diseño.

Reduzca los costos de pruebas y simulación.

CAD es una herramienta que permite lograr las ventajas señaladas debido a los siguientes factores:

Apoyo informativo eficaz para los especialistas involucrados en el desarrollo de proyectos;

Automatización de documentación;

Aplicación de conceptos de diseño paralelo;

Unificación de varias soluciones;

Aplicación de modelos matemáticos como alternativa a pruebas costosas;

Optimización de métodos de diseño;

Mejora de la calidad de los procesos de gestión empresarial.

Ahora veamos la estructura en la que se puede presentar un sistema de diseño automático.

CAD: clasificaciones

Los criterios más comunes para la clasificación CAD incluyen el propósito industrial. Se distinguen los siguientes tipos:

  1. Diseño automatizado de infraestructura de ingeniería mecánica;
  2. CAD para equipos electrónicos;
  3. CAD en el ámbito de la construcción.

El primer tipo de sistemas CAD se puede utilizar en una amplia gama de industrias: fabricación de aviones, fabricación de automóviles, construcción naval y fabricación de bienes de consumo. Además, la infraestructura correspondiente se puede utilizar para desarrollar tanto piezas individuales como diversos mecanismos utilizando diversos enfoques en el marco del modelado y diseño.

El segundo tipo de sistemas CAD se utiliza para diseñar equipos electrónicos terminados y sus elementos individuales, por ejemplo, circuitos integrados, procesadores y otros tipos de hardware.

El CAD del tercer tipo se puede utilizar para diseñar diversas estructuras, edificios y elementos de infraestructura.

Otro criterio por el cual se pueden clasificar los sistemas de diseño asistido por computadora es el propósito previsto. Aquí destacan:

Herramientas de diseño utilizadas para automatizar modelos geométricos bidimensionales o tridimensionales para la generación de documentación de diseño;

Sistemas utilizados con el fin de desarrollar diversos dibujos;

Sistemas diseñados para modelado geométrico;

Sistemas diseñados para automatizar cálculos dentro de proyectos de ingeniería y modelado dinámico;

Herramientas de automatización utilizadas con el fin de optimizar tecnológicamente proyectos;

Sistemas diseñados para el análisis informático de diversos parámetros para proyectos.

Esta clasificación se considera condicional.

Un sistema de diseño de procesos asistido por computadora puede incluir una amplia gama de funciones de las enumeradas anteriormente. La lista específica de capacidades CAD la determina principalmente el desarrollador del sistema. Veamos qué tareas puede resolver.

Software de herramientas de desarrollo de software

Ensayo

SOFTWARE: un conjunto de programas de sistemas de procesamiento de información y documentos de programas necesarios para el funcionamiento de estos programas (GOST 19781-90). Además, un conjunto de programas, procedimientos y reglas, así como documentación relacionada con el funcionamiento del sistema de procesamiento de datos (ST ISO 2382/1-84).

SOFTWARE DE HERRAMIENTA: software destinado a ser utilizado en el diseño, desarrollo y mantenimiento de programas. Normalmente, este término se utiliza para enfatizar la diferencia entre esta clase de software y el software de aplicación y sistema.

COMPILADOR: un traductor que convierte un programa escrito en el idioma fuente en un módulo objeto.

INTÉRPRETE: un programa (a veces hardware) que analiza comandos o declaraciones de programa y los ejecuta inmediatamente.

SISTEMA OPERATIVO: un conjunto de programas de control y procesamiento que, por un lado, actúan como una interfaz entre los dispositivos del sistema informático y los programas de aplicación, y por el otro, están diseñados para controlar dispositivos, gestionar procesos informáticos y distribuir eficazmente los recursos informáticos entre procesos informáticos y organizar una informática fiable.

PROGRAMA DE APLICACIÓN: un programa diseñado para realizar determinadas tareas del usuario y diseñado para la interacción directa con el usuario.

VISUALBASIC es una herramienta de desarrollo de software desarrollada por Microsoft Corporation que incluye un lenguaje de programación y un entorno de desarrollo.

VISUALBASICFORAPPLICATION es una implementación ligeramente simplificada del lenguaje de programación Visual Basic, integrada en la línea de productos Microsoft Office (incluidas las versiones para Mac OS), así como en muchos otros paquetes de software como AutoCAD, SolidWorks, CorelDRAW, WordPerfect y ESRI ArcGIS.

El objetivo del trabajo es estudiar los tipos y funciones del software, en particular el software instrumental.

Clasificación de software:

Tipos de software de herramientas:

1) editores de texto

4) Compiladores

5) Intérpretes

6) Enlazadores

8) ensambladores

9) Depuradores

10) Perfiladores

11) Generadores de documentación

Para crear un programa en el lenguaje de programación elegido es necesario contar con los siguientes componentes:

2. Compilador o intérprete. El texto fuente se traduce a código objeto intermedio mediante un programa compilador.

Resultado del trabajo: Se considera el software, sus funciones y tipos, en particular el software instrumental, su esencia y tareas. El tercer capítulo analiza Microsoft Visual Basic como herramienta de desarrollo de software y su dialecto: Microsoft Visual Basic para aplicaciones. El trabajo del curso implementa un algoritmo para resolver un problema económico y financiero utilizando el lenguaje de programación Pascal.

Introducción

En el mundo moderno, más de una persona que ha probado los beneficios de la civilización no puede imaginar su vida sin el uso de tecnología informática. Su uso se da en cualquier ámbito de la actividad humana: producción, comercio, educación, entretenimiento y comunicación de las personas, sus actividades científicas y culturales. Todo esto es gracias a la capacidad de seleccionar equipos informáticos para resolver cualquier problema, incluso el más complejo.

Sin embargo, tanto la versatilidad como la especialización de la tecnología informática están garantizadas por el uso de un conjunto diferente de software basado en casi cualquier computadora que brinde una solución a cualquier tarea asignada.

Todos vemos la enorme variedad de programas informáticos y el asombroso ritmo de su crecimiento y mejora, y sólo una pequeña parte de nosotros comprende el lado invisible de su diseño, desarrollo y creación. Sin embargo, esta área de la tecnología informática es, en nuestra opinión, la más importante, ya que de su desarrollo dependerá el futuro de la tecnología informática.

Y dado que el desarrollo de cualquier programa informático se realiza mediante Software Instrumental, en nuestro trabajo de curso me gustaría detenerme en él en detalle, destacándolo de todo el software y revelando su esencia y características.

Para mayor claridad, consideraremos el software instrumental (objeto de estudio) usando el ejemplo del paquete de software VisualBasicforApplication (tema de estudio), utilizado para programar en el entorno de Microsoft Office, el paquete de oficina más extendido y popular.

1.software

1.1 Concepto y esencia del software.

El software es una parte integral de un sistema informático. Es una continuación lógica de los medios técnicos de cualquier computadora. El ámbito de aplicación de una computadora en particular está determinado por el software creado para ella. El ordenador en sí no tiene conocimiento de ninguna aplicación. Todo este conocimiento se concentra en programas que se ejecutan en computadoras, que tienen un conjunto de funcionalidades específicas y están diseñados para realizar funciones específicas, en la mayoría de los casos, altamente especializadas, como la creación y procesamiento de imágenes gráficas o archivos de sonido.

Actualmente, el software comprende cientos de miles de programas diseñados para procesar una amplia variedad de información para una amplia variedad de propósitos.

El software también incluye todo el área de actividad en diseño y desarrollo de software:

1) tecnología de diseño de programas (por ejemplo, diseño de arriba hacia abajo, diseño estructurado y orientado a objetos);

2) métodos de prueba de programas;

3) métodos para probar la corrección de los programas;

4) análisis de la calidad de los programas;

5) documentar programas;

6) desarrollo y uso de herramientas de software que faciliten el proceso de diseño de software, y mucho más.

Hay muchas definiciones diferentes de software. En general, el software es un conjunto de programas de sistemas de procesamiento de información y documentos de programas necesarios para el funcionamiento de estos programas (GOST 19781-90). Además, un conjunto de programas, procedimientos y reglas, así como documentación relacionada con el funcionamiento del sistema de procesamiento de datos (ST ISO 2382/1-84).

El software es uno de los tipos de soporte de un sistema informático, junto con el soporte técnico (hardware), matemático, informativo, lingüístico, organizativo y metodológico.

En la jerga informática, la palabra software se deriva a menudo de la palabra inglesa software, que se utilizó por primera vez en este sentido en un artículo del American Mathematical Monthly del matemático de la Universidad de Princeton John W. Tukey en 1958.

Otras definiciones:

1) SOFTWARE es un conjunto de programas que permiten el procesamiento automatizado de información en una computadora.

2) SOFTWARE (soporte matemático para una computadora electrónica), un conjunto de programas para un sistema de procesamiento de datos y documentos de programa necesarios para implementar programas en una computadora electrónica.

3) SOFTWARE: un conjunto de programas para controlar el proceso de funcionamiento de la computadora y automatizar la programación.

4) SOFTWARE: conjunto de programas informáticos que proporcionan procesamiento o transmisión de datos.

Todas las definiciones son similares y reflejan la esencia del software: organizar la interacción de la parte de hardware (técnica), en forma de varios nodos integrados y dispositivos periféricos, su control y coordinación de la interacción general del sistema informático entre sí. y con el usuario.

1.2 Funciones del software

Los conceptos de software anteriores determinan las funciones realizadas por el software durante el funcionamiento de los equipos informáticos. La lista de estas funciones es muy diversa, pero se pueden dividir a grandes rasgos en los siguientes cinco tipos:

1. Hardware y mecánica. Interconectan varios componentes de la computadora y aseguran la transmisión de una señal de hardware de un componente a otro.

2. Lógico-máquina. Procese e interprete un conjunto de pulsos electromagnéticos del hardware en un código de software lógicamente consciente que tiene una estructura y propiedades específicas.

3. Información y mando. Verifican la conformidad del código del programa con los principios del sistema, crean una estructura lógica de información y llevan a cabo su ejecución.

4. Interfaz. Proporcionar procesamiento e interpretación del código del programa en un formato de visualización accesible para el usuario. Crea un entorno favorable para la interacción “Computadora-Humano, Humano-Computadora”.

5. Aplicado. Realiza acciones matemáticas, lógicas, físicas y de otro tipo con un conjunto de datos disponibles, es decir, procesamiento de la información disponible para resolver determinados problemas.

Esta lista está lejos de ser exhaustiva, lo que indica la diversidad y ambigüedad de las funciones realizadas por el software.

1.3 Tipos de software

Dependiendo de las funciones que proporciona un determinado componente de la computadora, existe la necesidad de crear su propio software especializado para él, que es el motivo fundamental para la creación de software de varios tipos, como se muestra en (Fig.1):

a) Programas de aplicación que apoyen directamente la ejecución de trabajos requeridos por los usuarios;

b) los programas del sistema, diseñados para controlar el funcionamiento del sistema informático, realizan diversas funciones auxiliares, por ejemplo:

1) gestión de recursos informáticos;

2) crear copias de la información utilizada;

3) comprobar la funcionalidad de los dispositivos informáticos;

4) emitir información de referencia sobre la computadora, etc.;

c) sistemas de software instrumentales que facilitan el proceso de creación de nuevos programas informáticos.

El software del sistema asegura el funcionamiento y mantenimiento de la computadora, así como la automatización del proceso de creación de nuevos programas. El software del sistema incluye: sistemas operativos y su interfaz de usuario; herramientas de software; sistemas de mantenimiento.

Un sistema operativo es una parte obligatoria de un software especial que garantiza el funcionamiento eficaz de una computadora personal en varios modos, organizando la ejecución de programas y la interacción del usuario y los dispositivos externos con la computadora.

La interfaz de usuario (programas de servicio) son complementos de software para el sistema operativo (shell y entorno) diseñados para simplificar la comunicación del usuario con el sistema operativo.

Los programas que proporcionan la interfaz conservan la forma de comunicación (diálogo) entre el usuario y el sistema operativo, pero cambian el idioma de comunicación (normalmente el idioma de comando se convierte en un idioma de menú). Los sistemas de servicios se pueden dividir en sistemas de interfaz, shells de sistemas operativos y utilidades.

Los sistemas de interfaz son poderosos sistemas de servicios, generalmente de tipo gráfico, que mejoran no solo al usuario, sino también la interfaz del programa de los sistemas operativos, en particular, implementando algunos procedimientos adicionales para dividir recursos adicionales.

Los shells del sistema operativo proporcionan al usuario una interfaz cualitativamente nueva en comparación con la implementada por el sistema operativo y hacen que el conocimiento de este último sea opcional.

Las utilidades automatizan la ejecución de ciertos procedimientos estándar utilizados con frecuencia, cuya implementación requeriría que el usuario desarrollara programas especiales. Muchas utilidades tienen una interfaz interactiva desarrollada con el usuario y se acercan al nivel de comunicación con los shells.

Las herramientas de software (sistemas de programación) son una parte obligatoria del software con el que se crean los programas. Las herramientas de software incluyen herramientas para escribir programas (editores de texto); medios para convertir programas a un formato adecuado para su ejecución en una computadora (ensambladores, compiladores, intérpretes, cargadores y editores de enlaces), medios para monitorear y depurar programas.

Los editores de texto le permiten editar, formar y combinar cómodamente textos de programas, y algunos le permiten controlar la sintaxis de los programas creados.

Un programa escrito en un lenguaje algorítmico debe convertirse en un módulo objeto escrito en lenguaje de máquina (código binario). Esta conversión la realizan traductores (ensamblador, del lenguaje ensamblador y compiladores, de lenguajes de alto nivel). Para algunos lenguajes algorítmicos, se utilizan intérpretes que no crean un módulo de objeto, sino que, con cada ejecución sucesiva del programa, traducen cada una de sus líneas o declaraciones individuales al lenguaje de máquina. El módulo objeto es procesado por un cargador, un editor de enlaces, que lo convierte en un programa de máquina ejecutable.

Las herramientas de depuración le permiten rastrear programas (ejecución paso a paso con información sobre los resultados de la ejecución), verificar la sintaxis del programa y los resultados intermedios en los puntos de interrupción y modificar los valores de las variables en estos puntos.

Los sistemas de mantenimiento y servicio son herramientas de software para monitorear, diagnosticar y restaurar la funcionalidad de una computadora, discos, etc.

El software de aplicación proporciona soluciones a los problemas de los usuarios. El concepto clave aquí es el paquete de aplicación.

Un paquete de software de aplicación es un conjunto de programas para resolver una variedad de problemas sobre un tema o tema específico. Se distinguen los siguientes tipos de paquetes de aplicaciones:

1) propósito general: enfocado a automatizar una amplia gama de tareas de usuario (procesadores de texto, editores de hojas de cálculo, sistemas de gestión de bases de datos, procesadores gráficos, sistemas de publicación, sistemas de automatización de diseño, etc.);

2) orientado a métodos: implementación de diversos métodos económicos y matemáticos para resolver problemas (programación matemática, planificación y gestión de redes, teoría de colas, estadística matemática, etc.);

3) orientado a problemas: destinado a resolver una tarea (problema) específica en un área temática específica (paquetes bancarios, paquetes contables, gestión financiera, sistemas de referencia legal, etc.).

El software de aplicación incluye software de servicio que sirve para organizar un entorno de trabajo conveniente para el usuario, así como para realizar funciones auxiliares (administradores de información, traductores, etc.).

Al construir una clasificación de software, es necesario tener en cuenta el hecho de que el rápido desarrollo de la tecnología informática y la expansión del alcance de las aplicaciones informáticas han acelerado drásticamente el proceso de evolución del software. Si antes era fácil enumerar las principales categorías de software: sistemas operativos, traductores, paquetes de software de aplicación, ahora la situación ha cambiado radicalmente. El desarrollo del software ha sido tanto en profundidad (han aparecido nuevos enfoques para la construcción de sistemas operativos, lenguajes de programación, etc.) como en amplitud (los programas de aplicación han dejado de aplicarse y han adquirido un valor independiente). La relación entre los productos de software necesarios y los disponibles en el mercado está cambiando muy rápidamente. Incluso los productos de software clásicos, como los sistemas operativos, están en constante evolución y están dotados de funciones inteligentes, muchas de las cuales antes sólo estaban relacionadas con las capacidades intelectuales humanas.

2. Software de herramientas

2.1 La esencia y concepto de las herramientas de software.

El software instrumental (IPO) es software destinado a ser utilizado en el diseño, desarrollo y mantenimiento de programas.

Las herramientas se utilizan en la fase de desarrollo. El software de herramientas es una colección de programas que se utilizan para ayudar a los programadores en su trabajo, para ayudar a los gerentes de desarrollo de software en sus esfuerzos por controlar el proceso de desarrollo y los productos resultantes. Los representantes más famosos de esta parte del software son los programas traductores de lenguajes de programación, que ayudan a los programadores a escribir comandos de máquina. Los programas instrumentales son traductores de los idiomas Fortran, Cobol, Joe-vial, BASIC, APL y Pascal. Facilitan el proceso de creación de nuevos programas de trabajo. Sin embargo, los traductores de idiomas son sólo la parte más conocida de los programas instrumentales; hay muchísimos de ellos.

El uso de computadoras para ayudar a crear nuevos programas está lejos de ser obvio para las personas que no son programadores profesionales. A menudo sucede que los profesionales hablan al mismo tiempo de software de herramienta (fase de desarrollo) y de sistema (fase de uso), asumiendo que aquellos que no están al tanto de los secretos de su oficio son conscientes de este papel del software de herramienta. Al igual que en la fase de uso (para programas de aplicación), el software del sistema también funciona en la fase de desarrollo, pero sólo en combinación con las herramientas. El software de herramientas o sistemas de programación son sistemas para automatizar el desarrollo de nuevos programas en un lenguaje de programación.

En el caso más general, para crear un programa en el lenguaje de programación seleccionado (lenguaje de programación del sistema), es necesario tener los siguientes componentes:

1. Editor de texto para crear un archivo con el texto fuente del programa.

2. Compilador o intérprete. El texto fuente se traduce a código objeto intermedio mediante un programa compilador. El código fuente de un programa grande consta de varios módulos (archivos fuente). Cada módulo se compila en un archivo separado con código objeto, que luego debe combinarse en uno solo.

3. Un editor de enlaces o ensamblador que vincula módulos de objetos y produce una aplicación funcional como salida: código ejecutable.

El código ejecutable es un programa completo que se puede ejecutar en cualquier computadora que tenga el sistema operativo para el cual fue creado el programa. Como regla general, el archivo resultante tiene la extensión .EXE o .COM.

Recientemente, se han generalizado los métodos de programación visual (que utilizan lenguajes de scripting) destinados a crear aplicaciones para Windows. Este proceso está automatizado en entornos de diseño rápido. En este caso, se utilizan componentes visuales ya preparados, que se configuran mediante editores especiales.

Los editores (sistemas de programación de programas que utilizan herramientas visuales) más populares para el diseño visual:

1) Borland Delphi: diseñado para resolver casi cualquier problema de programación de aplicaciones.

2) Borland C++ Builder es una excelente herramienta para desarrollar aplicaciones de DOS y Windows.

3) Microsoft Visual Basic es una herramienta popular para crear programas de Windows.

4) Microsoft Visual C++: esta herramienta le permite desarrollar cualquier aplicación que se ejecute en un entorno de sistema operativo como Microsoft Windows.

Así, la esencia del software instrumental es crear cualquier programa ejecutable mediante la conversión de expresiones lógicas formales en código de máquina ejecutable, así como su control y ajuste.

2.2 Tareas y funciones del software de la herramienta

El software instrumental, como tipo especial de software, se caracteriza por características generales y privadas.

funciones, como para todo el software en general. Las funciones generales se comentan anteriormente, y las funciones especializadas inherentes únicamente a este tipo de programa son:

1. Crear el texto del programa que se está desarrollando utilizando palabras de código especialmente establecidas (lenguaje de programación), así como un determinado conjunto de caracteres y su ubicación en el archivo creado: sintaxis del programa.

2. Traducción del texto del programa creado a código orientado a máquina, accesible para el reconocimiento por computadora. Si el volumen del programa creado es significativo, se divide en módulos separados y cada uno de los módulos se traduce por separado.

3. Conectar módulos individuales en un único código ejecutable, de acuerdo con la estructura necesaria, asegurando la coordinación de la interacción de las partes individuales entre sí.

4. Probar y monitorear el programa creado, identificar y eliminar errores formales, lógicos y sintácticos, verificar la presencia de códigos prohibidos en los programas, así como evaluar el desempeño y potencial del programa creado.

2.3 Tipos de herramientas de software

En función de las tareas asignadas al software instrumental, podemos distinguir una gran cantidad de diferentes tipos de software instrumental:

1) editores de texto

2) Entornos de Desarrollo Integrado

4) Compiladores

5) Intérpretes

6) Enlazadores

7) Analizadores y generadores de analizadores (ver Javacc)

8) ensambladores

9) Depuradores

10) Perfiladores

11) Generadores de documentación

12) Herramientas de análisis de cobertura de código

13) Herramientas de integración continua

14) Herramientas de prueba automatizadas

15) Sistemas de control de versiones, etc.

Cabe señalar que los shells para crear programas de aplicación también los crean programas de herramientas y, por lo tanto, pueden clasificarse como programas de aplicación. Consideremos brevemente los propósitos de algunos programas instrumentales.

Editores de texto.

Un editor de texto es un programa de computadora diseñado para procesar archivos de texto, como crear y realizar cambios.

Tipos de editores de texto.

Convencionalmente, existen dos tipos de editores: los editores de texto en streaming y los interactivos.

Los editores de texto continuo son programas informáticos diseñados para procesar automáticamente datos de texto de entrada recibidos de un archivo de texto de acuerdo con reglas predefinidas por los usuarios. La mayoría de las veces, las reglas son expresiones regulares, en un dialecto específico de un editor de texto determinado. Un ejemplo de un editor de texto de este tipo es el editor Sed.

Los editores de texto interactivos son una familia de programas informáticos diseñados para realizar cambios en un archivo de texto de forma interactiva. Dichos programas le permiten mostrar el estado actual de los datos de texto en un archivo y realizar diversas acciones en él.

A menudo, los editores de texto interactivos contienen importantes funciones adicionales diseñadas para automatizar parte de las acciones de edición o para cambiar la visualización de datos de texto, según su semántica. Un ejemplo del último tipo de funcionalidad es el resaltado de sintaxis.

Los editores de texto están diseñados para crear y editar documentos de texto. Los más comunes son MS WORD, Lexicon. Las principales funciones de los editores de texto son:

1) trabajar con fragmentos de documentos,

2) inserción de objetos creados en otros programas

3) dividir el texto del documento en páginas

4) ingresar y editar tablas

5) ingresar y editar fórmulas

6) formato de párrafo

7) creación automática de listas

8) creación automática de una tabla de contenidos.

Se conocen decenas de editores de texto. Los más accesibles son Bloc de notas (bloc de notas), WORDPAD, WORD. El funcionamiento de un editor de texto en particular suele estar determinado por funciones cuyo propósito se refleja en los elementos del menú y en el sistema de ayuda.

Entorno de desarrollo integrado

El entorno de desarrollo integrado, ISD, es un sistema de software utilizado por los programadores para desarrollar software. Normalmente, el entorno de desarrollo incluye:

1) editor de texto

2) compilador y/o intérprete

3) herramientas de automatización de montaje

4) depurador.

En ocasiones también contiene herramientas para la integración con sistemas de control de versiones y varias herramientas para simplificar el diseño de una interfaz gráfica de usuario. Muchos entornos de desarrollo modernos también incluyen un navegador de clases, un inspector de objetos y un diagrama de jerarquía de clases para su uso en el desarrollo de software orientado a objetos. Aunque existen entornos de desarrollo diseñados para varios lenguajes de programación, como Eclipse, NetBeans, Embarcadero RAD Studio, Qt Creator o Microsoft Visual Studio, normalmente el entorno de desarrollo está destinado a un lenguaje de programación específico, como Visual Basic, Delphi, Dev. -C++.

Un caso especial de ISR es un entorno de desarrollo visual, que incluye la capacidad de editar visualmente la interfaz del programa.

SDK.

SDK (del inglés SoftwareDevelopmentKit) o ​​“devkit” es un kit de desarrollo que permite a los especialistas en software crear aplicaciones para un paquete de software específico, software de desarrollo central, plataforma de hardware, sistema informático, consolas de videojuegos, sistemas operativos y otras plataformas.

El programador, por regla general, recibe el SDK directamente del desarrollador de la tecnología o sistema de destino. A menudo, el SDK se distribuye a través de Internet. Muchos SDK se distribuyen de forma gratuita para animar a los desarrolladores a utilizar una tecnología o plataforma determinada.

Los proveedores de SDK a veces reemplazan el término Software en el kit de desarrollo de software por una palabra más precisa. Por ejemplo, Microsoft y Apple proporcionan kits de desarrollo de controladores (DDK) para desarrollar controladores de dispositivos, y PalmSource llama a su kit de herramientas de desarrollo PalmOS Development Kit (PDK).

Ejemplos de SDK :

5) Kit de desarrollo de Java

6) SDK de dispositivos Opera

Compiladores.

Compilador -

1) Un programa o herramienta técnica que realiza la compilación.

2) El programa de máquina utilizado para la compilación.

3) Un traductor que convierte un programa escrito en el idioma fuente en un módulo objeto.

4) Un programa que traduce el texto del programa en un lenguaje de alto nivel a un programa equivalente en lenguaje de máquina.

5) Un programa diseñado para traducir lenguaje de alto nivel a código absoluto o, a veces, a lenguaje ensamblador. La información de entrada al compilador (código fuente) es una descripción del algoritmo o programa en un lenguaje orientado a problemas, y la salida del compilador es una descripción equivalente del algoritmo en un lenguaje orientado a máquinas (código objeto).

Compilacion -

1) Traducción de un programa a un lenguaje cercano al lenguaje de máquina.

2) Traducción de un programa escrito en el lenguaje fuente a un módulo objeto. Realizado por el compilador.

Compilar: traducir un programa de máquina de un lenguaje orientado a problemas a un lenguaje orientado a máquinas.

Tipos de compiladores :

1) Vectorizar. Traduce el código fuente a código de máquina en computadoras equipadas con un procesador vectorial.

2) Flexibles. Modular, basado en tablas y programado en un lenguaje de alto nivel o implementado mediante un compilador de compiladores.

3) Diálogo.

4) incrementales. Retransmite fragmentos de programa y adiciones al mismo sin recompilar todo el programa.

5) Interpretativo (paso a paso). Realiza secuencialmente una compilación independiente de cada declaración individual (comando) del programa fuente.

6) Compilador de compiladores. Un traductor que acepta una descripción formal de un lenguaje de programación y genera un compilador para este lenguaje.

7) Depurar. Elimina ciertos tipos de errores de sintaxis.

8) Residente. Vive permanentemente en la memoria principal y está disponible para su reutilización en muchas tareas.

9) Autocompilación. Escrito en el mismo idioma desde el que se realiza la emisión.

10) universales. Basado en una descripción formal de la sintaxis y semántica del lenguaje de entrada. Los componentes de dicho compilador son: kernel, cargadores sintácticos y semánticos.

Tipos de compilación :

1) Lote. Compilación de múltiples módulos fuente en un solo elemento de trabajo.

2) Línea por línea.

3) Condicional. Recopilación en la que el texto traducido depende de condiciones especificadas en el programa fuente. Entonces, dependiendo del valor de una determinada constante, puede activar o desactivar la traducción de parte del texto del programa.

Estructura del compilador.

El proceso de compilación consta de los siguientes pasos:

1) Análisis léxico. En esta etapa, la secuencia de caracteres del archivo fuente se convierte en una secuencia de tokens.

2) Análisis sintáctico (gramatical). La secuencia de tokens se convierte en un árbol de análisis.

3) Análisis semántico. El árbol de análisis se procesa para establecer su semántica (significado), por ejemplo, vincular identificadores a sus declaraciones, tipos, verificar compatibilidad, determinar tipos de expresión, etc. El resultado generalmente se denomina "representación/código intermedio" y puede ampliarse mediante el árbol de análisis, un árbol nuevo, un conjunto abstracto de comandos o cualquier otra cosa conveniente para su posterior procesamiento.

4) Optimización. Eliminando estructuras innecesarias y simplificando el código manteniendo su significado. La optimización puede realizarse en diferentes niveles y etapas, por ejemplo, en el código intermedio o en el código de máquina final.

5) Generación de código. A partir de la representación intermedia se genera código en el idioma de destino.

En implementaciones específicas del compilador, estas etapas se pueden separar o combinar de una forma u otra.

Difusión y postproducción.

Una característica histórica importante del compilador, reflejada en su nombre (inglés: compilar - juntar, componer), era que también podía realizar enlaces (es decir, contenía dos partes: un traductor y un enlazador). Esto se debe al hecho de que la compilación separada y la vinculación como una etapa de ensamblaje separada surgieron mucho más tarde que la llegada de los compiladores. En este sentido, en lugar del término "compilador", a veces se utiliza como sinónimo el término "traductor": ya sea en la literatura antigua o cuando se quiere enfatizar su capacidad para traducir un programa a código de máquina (y viceversa, el El término "compilador" se utiliza para enfatizar la capacidad de compilar a partir de muchos archivos (uno).

Intérpretes.

Intérprete (lenguaje de programación) -

1) Un programa o herramienta técnica que realice la interpretación.

2) Un tipo de traductor que realiza el procesamiento y ejecución declaración por declaración (comando por comando) del programa fuente o consulta (a diferencia de un compilador que traduce el programa completo sin ejecutarlo).

3) Un programa (a veces hardware) que analiza comandos o declaraciones de programa y los ejecuta inmediatamente.

4) Un procesador de lenguaje que analiza el programa fuente línea por línea y simultáneamente realiza las acciones prescritas, en lugar de generar un programa compilado en lenguaje de máquina que se ejecuta posteriormente.

Tipos de intérpretes.

Un intérprete simple analiza y ejecuta inmediatamente (la interpretación real) el programa comando por comando (o línea por línea), a medida que su código fuente llega a la entrada del intérprete. La ventaja de este enfoque es la respuesta instantánea. La desventaja es que dicho intérprete detecta errores en el texto del programa sólo cuando se intenta ejecutar un comando (o línea) con un error.

Un intérprete de tipo compilador es un sistema que consta de un compilador que traduce el código fuente de un programa a una representación intermedia, por ejemplo, en código de bytes o código p, y el intérprete mismo, que ejecuta el código intermedio resultante (el así). llamada máquina virtual). La ventaja de estos sistemas es la mayor velocidad de ejecución del programa (debido a la eliminación del análisis del código fuente en una pasada separada y única y a la minimización de este análisis en el intérprete). Las desventajas son una mayor necesidad de recursos y la exigencia de exactitud del código fuente. Se utiliza en lenguajes como Java, PHP, Python, Perl (se usa código de bytes), REXX (se guarda el resultado del análisis del código fuente), así como en varios DBMS (se usa código p).

Si el intérprete de tipo compilador se divide en componentes, el resultado es un compilador de lenguaje y un intérprete simple con un análisis mínimo del código fuente. Además, el código fuente de dicho intérprete no tiene que estar en formato de texto o ser un código de bytes que sólo este intérprete entienda; puede ser código de máquina de alguna plataforma de hardware existente. Por ejemplo, las máquinas virtuales como QEMU, Bochs, VMware incluyen intérpretes de código de máquina para procesadores de la familia x86.

Algunos intérpretes (por ejemplo, para los lenguajes Lisp, Scheme, Python, BASIC y otros) pueden funcionar en modo de diálogo o en el llamado read-eval-printloop (REPL). En este modo, el intérprete lee una construcción del lenguaje completa (por ejemplo, una expresión s en Lisp), la ejecuta, imprime los resultados y luego espera a que el usuario ingrese la siguiente construcción.

Único es el lenguaje Forth, que es capaz de trabajar tanto en modo de interpretación como de compilación de datos de entrada, lo que le permite cambiar entre estos modos en cualquier momento, tanto durante la traducción del código fuente como mientras se ejecutan los programas.

También cabe señalar que los modos de interpretación se pueden encontrar no sólo en el software, sino también en el hardware. Por lo tanto, muchos microprocesadores interpretan el código de máquina utilizando firmware incorporado, y los procesadores de la familia x86, comenzando con Pentium (por ejemplo, en la arquitectura Intel P6), durante la ejecución del código de máquina, lo traducen previamente a un formato interno. (en una secuencia de microoperaciones).

Algoritmo para un intérprete simple. :

2. analizar las instrucciones y determinar las acciones apropiadas;

3. tomar las medidas apropiadas;

4. Si no se alcanza la condición de finalización del programa, lea las siguientes instrucciones y vaya al paso 2.

Ventajas y desventajas de los intérpretes..

1) Mayor portabilidad de los programas interpretados: el programa se ejecutará en cualquier plataforma que tenga un intérprete adecuado.

2) Como regla general, medios más avanzados y visuales para diagnosticar errores en los códigos fuente.

3) Simplificación de la depuración de códigos fuente de programas.

4) Tamaños de código más pequeños en comparación con el código de máquina obtenido de compiladores convencionales.

1) Un programa interpretado no se puede ejecutar por separado sin un programa intérprete. El intérprete en sí puede ser muy compacto.

2) El programa interpretado se ejecuta más lento porque el análisis intermedio del código fuente y la programación de su ejecución requiere tiempo adicional en comparación con la ejecución directa del código de máquina en el que se podría compilar el código fuente.

3) Prácticamente no hay optimización del código, lo que provoca pérdidas adicionales en la velocidad de los programas interpretados.

Enlazador.

Linker (también editor de enlaces, enlazador), un programa que realiza enlaces, toma uno o más módulos de objetos como entrada y ensambla un módulo ejecutable a partir de ellos.

Para vincular módulos, el vinculador utiliza tablas de nombres creadas por el compilador en cada uno de los módulos de objeto. Estos nombres pueden ser de dos tipos:

1) Nombres definidos o exportados: funciones y variables definidas en un módulo determinado y disponibles para su uso por otros módulos.

2) Nombres no definidos o importados: funciones y variables a las que hace referencia el módulo, pero no las define internamente.

El trabajo del vinculador es resolver referencias a nombres indefinidos en cada módulo. Para cada nombre importado, su definición se encuentra en otros módulos, la mención del nombre se reemplaza por su dirección.

El vinculador generalmente no verifica los tipos y la cantidad de parámetros de procedimientos y funciones. Si necesita combinar módulos de objetos de programas escritos en lenguajes con escritura segura, una utilidad adicional debe realizar las comprobaciones necesarias antes de iniciar el editor de enlaces.

Ensamblador.

Un ensamblador (del ensamblador inglés - ensamblador) es un programa de computadora, un compilador del texto fuente de un programa escrito en lenguaje ensamblador en un programa en lenguaje de máquina.

Al igual que el lenguaje (ensamblador) en sí, los ensambladores suelen ser específicos de una arquitectura, un sistema operativo y una variante de sintaxis del lenguaje en particular. Al mismo tiempo, existen ensambladores multiplataforma o incluso universales (más precisamente, universales limitados, porque es imposible escribir programas independientes del hardware en un lenguaje de bajo nivel) que pueden ejecutarse en diferentes plataformas y sistemas operativos. Entre estos últimos, también se puede distinguir un grupo de ensambladores cruzados capaces de recopilar código de máquina y módulos (archivos) ejecutables para otras arquitecturas y sistemas operativos.

Es posible que el ensamblaje no sea el primer ni el último paso en el camino hacia la obtención de un módulo de programa ejecutable. Por lo tanto, muchos compiladores de lenguajes de programación de alto nivel producen el resultado en forma de un programa en lenguaje ensamblador, que luego es procesado por el ensamblador. Además, el resultado del ensamblaje puede no ser un ejecutable, sino un módulo de objeto que contiene partes dispares y no relacionadas de código de máquina y datos de programa, a partir del cual (o de varios módulos de objeto) se puede ensamblar posteriormente utilizando un programa enlazador ("enlazador") Archivo ejecutable.

Un depurador o depurador es un módulo del entorno de desarrollo o una aplicación independiente diseñada para encontrar errores en un programa. El depurador le permite realizar un seguimiento paso a paso, monitorear, establecer o cambiar valores de variables durante la ejecución del programa, establecer y eliminar puntos de interrupción o condiciones de parada, etc.

Lista de depuradores.

1) AQtime es un depurador comercial para aplicaciones creadas para las versiones 1.0, 1.1, 2.0, 3.0, 3.5 de .NET Framework (incluidas las aplicaciones ASP.NET), así como para aplicaciones Windows de 32 y 64 bits.

2) DTrace: marco de seguimiento dinámico para Solaris, OpenSolaris, FreeBSD, Mac OS X y QNX.

3) Cerca eléctrica: depurador de memoria.

4) GNU Debugger (GDB): un depurador de programas del proyecto GNU.

5) IDA es un potente desensamblador y depurador de bajo nivel para los sistemas operativos Windows y Linux.

6) Microsoft Visual Studio: un entorno de desarrollo de software que incluye herramientas de depuración de Microsoft.

7) OllyDbg es un depurador gratuito de bajo nivel para sistemas operativos Windows.

8) SoftICE es un depurador de bajo nivel para sistemas operativos de la familia Windows.

9) Sun Studio: entorno de desarrollo de software, incluido el depurador dbx para los sistemas operativos Solaris y Linux, de Sun Microsystems Corporation.

10) Dra. Watson es un depurador estándar de Windows que le permite crear volcados de memoria.

11) TotalView es uno de los depuradores comerciales para UNIX.

12) WinDbg es un depurador gratuito de Microsoft.

Un generador de documentación es un programa o paquete de software que permite obtener documentación destinada a programadores (documentación API) y/o usuarios finales del sistema, código fuente especialmente comentado y, en algunos casos, módulos ejecutables (obtenidos en la salida). del compilador).

Normalmente, el generador analiza el código fuente del programa, resaltando estructuras sintácticas correspondientes a objetos importantes del programa (tipos, clases y sus miembros/propiedades/métodos, procedimientos/funciones, etc.). El análisis también utiliza metainformación sobre los objetos del programa, presentada en forma de comentarios documentales. A partir de toda la información recopilada, se genera documentación preparada, generalmente en uno de los formatos generalmente aceptados: HTML, HTMLHelp, PDF, RTF y otros.

Documentar comentarios.

Un comentario de documentación es un comentario con formato especial sobre un objeto de programa destinado a ser utilizado por un generador de documentación específico. La sintaxis de las construcciones utilizadas en la documentación de comentarios depende del generador de documentación que se utilice.

Los comentarios de documentación pueden contener información sobre el autor del código, describir el propósito del objeto del programa, el significado de los parámetros de entrada y salida para una función/procedimiento, ejemplos de uso, posibles situaciones de excepción y características de implementación.

Los comentarios de documentación suelen tener el formato de comentarios de estilo C de varias líneas. En cada caso, el comentario debe aparecer antes del elemento que se está documentando. El primer carácter de un comentario (y al principio de las líneas de comentario) debe ser *. Los bloques están separados por líneas en blanco.

3. Visual Basic para Aplicaciones

sistema operativo software

3.1 La esencia de VisualBasic y su breve historia

Microsoft Visual Basic (VB) es una herramienta de desarrollo de software desarrollada por Microsoft Corporation que incluye un lenguaje de programación y un entorno de desarrollo. El lenguaje Visual Basic heredó el espíritu, el estilo y en parte la sintaxis de su antepasado, el lenguaje BASIC, que tiene muchos dialectos. Al mismo tiempo, Visual Basic combina los procedimientos y elementos de los lenguajes de programación orientados a objetos y orientados a componentes. El entorno de desarrollo VB incluye herramientas para diseñar visualmente interfaces de usuario. (ver tabla).

Visual Basic (características clave)

Visual Basic se considera una buena herramienta para desarrollar rápidamente prototipos de programas, para desarrollar aplicaciones de bases de datos y, en general, para un método basado en componentes para crear programas que se ejecutan en sistemas operativos de la familia Microsoft Windows.

En el proceso de evolución, Visual Basic pasó por una serie de etapas sucesivas que le permitieron convertirse en uno de los lenguajes de programación más populares en la actualidad. Entonces la evolución VisualBasic siguió el siguiente camino:

1. Mayo de 1991: se lanzó Visual Basic 1.0 para Microsoft Windows. La sintaxis QBasic se tomó como base del lenguaje, y la innovación que más tarde le dio al lenguaje una enorme popularidad fue el principio de conexión entre el lenguaje y la interfaz gráfica.

2. Septiembre de 1992: se lanzó Visual Basic 1.0 para DOS. No era totalmente compatible con la versión de VB para Windows, ya que era una versión posterior de QuickBASIC y se ejecutaba en modo de pantalla basado en texto.

3. Noviembre de 1992: lanzamiento de Visual Basic 2.0. El entorno de desarrollo se volvió más fácil de usar y más rápido.

4. en el verano de 1993, se lanzó Visual Basic 3.0 en versiones Estándar y Profesional. Además, se ha agregado al paquete un motor para trabajar con bases de datos de Access.

5. Agosto de 1995: Visual Basic 4.0, una versión que podía crear programas de Windows de 32 y 16 bits.

6. Febrero de 1997 - Visual Basic 5.0 - a partir de esta versión, fue posible, junto con las aplicaciones normales, desarrollar componentes COM.

7. A mediados de 1998 se lanzó Visual Basic 6.0. Después de esto, Microsoft cambió drásticamente su política con respecto a los lenguajes básicos. En lugar de desarrollar Visual Basic, se creó un lenguaje completamente nuevo, Visual Basic .NET.

8. En 2005, se lanzó una nueva versión de Visual Basic, incluida con Visual Studio. Estaba satisfecha con la nueva interfaz y las capacidades. El lenguaje está basado en Visual Basic.NET.

9. A finales de 2007, Microsoft lanzó una nueva versión de Visual Basic: Visual Basic 2008, que también se basó en Visual Basic.NET.

Según la funcionalidad y las características específicas de la aplicación, se pueden distinguir los siguientes tipos de este programa:

1. Visual Basic clásico (versiones 5-6) Este lenguaje está muy ligado a su entorno de desarrollo y al sistema operativo Windows, siendo exclusivamente una herramienta para escribir aplicaciones de Windows.

2. VisualBasicforApplications (VBA) Esta es una herramienta de programación, prácticamente no diferente del clásico Visual Basic, que está diseñada para escribir macros y otros programas de aplicación para aplicaciones específicas. Obtuvo la mayor popularidad debido a su uso en la suite Microsoft Office. El uso generalizado de Visual Basic para aplicaciones, combinado con una falta inicial de atención a los problemas de seguridad, ha llevado al uso generalizado de virus de macro.

3. VisualBasicScriptingEdition (VBScript) Un lenguaje de scripting, que es una versión algo truncada del Visual Basic habitual. Se utiliza principalmente para automatizar la administración de sistemas Windows, así como para crear páginas ASP y scripts para Internet Explorer.

3.2 Interfaz de VisualBasicforApplication, funciones y capacidades principales

Al crear VisualBasicforApplication, Microsoft Corporation se fijó como objetivo principal la creación de herramientas que sean accesibles para usuarios que no sean programadores profesionales, pero que al mismo tiempo estén lo suficientemente calificados para desarrollar y diseñar programas de aplicación y aplicaciones basadas en Microsoft Office. Para resolver este problema, los desarrolladores crearon VBA, dotándolo de una serie de características únicas. Uno de ellos, el más valioso para el usuario, es la capacidad de crear y utilizar cuadros de diálogo no estándar (personalizados) en programas agregando un objeto UserForm al proyecto, así como una cómoda interfaz de usuario.

La interfaz del programa VisualBasicforApplication consta de un conjunto de varias ventanas y pestañas que se utilizan al diseñar la aplicación que se está creando, las principales de las cuales son:

1) Ventana de proyecto (Fig. 2), que muestra la estructura del proyecto creado.

2) la ventana Código de programa (Fig. 3), que muestra el código de programa del proyecto creado y permite escribir un programa de la forma clásica utilizando el editor de palabras clave incorporado, de los cuales hay más de 16 mil en VBA. Esta ventana también le permite editar el código y verificar si hay errores.

3) la pestaña Propiedades (Fig. 4), que muestra los parámetros establecidos para el objeto especificado y permite cambiar la configuración especificada.

Al moverse entre ventanas y pestañas, el usuario puede personalizar fácilmente el proyecto creado.

Al utilizar formularios VBA creados por el usuario, puede crear cuadros de diálogo personalizados para mostrar datos o recibir valores del usuario del programa de la manera que mejor se adapte a las necesidades del programa. Por ejemplo, puede crear una prueba, mostrar un cuadro de diálogo para mostrar preguntas de opción múltiple y permitir que el usuario seleccione una de las opciones de respuesta que crea que es correcta.

Los cuadros de diálogo no estándar permiten que el programa interactúe con su usuario de la manera más compleja y proporcionan una forma variada de entrada y salida de datos.

Se crea un cuadro de diálogo personalizado en VBA agregando un objeto UserForm al proyecto. Este objeto representa un cuadro de diálogo vacío; tiene una barra de título y un botón de cierre, pero carece de otros controles. Un cuadro de diálogo personalizado se crea agregando controles a un objeto UserForm y generalmente se denomina simplemente formulario (Figura 5).

Cada objeto UserForm tiene propiedades, métodos y eventos que hereda de la clase de objeto UserForm.

Cada objeto UserForm también contiene un módulo de clase en el que el usuario agrega sus propios métodos y propiedades o escribe procedimientos de manejo de eventos para un formulario determinado.

La capacidad de crear su propia interfaz, independientemente del entorno de la aplicación, como Excel, utilizando formularios de visualización es una de las características más valiosas de VBA.

Los formularios de pantalla son ventanas de diversos propósitos y tipos creadas por el usuario para su aplicación. Contienen controles que permiten al usuario intercambiar información con la aplicación.

VBA utiliza el diseño gráfico creado del formulario, con configuraciones para las propiedades y controles del formulario, para obtener toda la información necesaria para mostrar el cuadro de diálogo: las dimensiones del cuadro de diálogo, los controles que contiene, etc. Como resultado, VBA le permite mostrar un formulario de cuadro de diálogo con una sola declaración.

Para mostrar un cuadro de diálogo personalizado, utilice el método Show del objeto UserForm. Si el formulario no está cargado actualmente en la memoria, el método Show carga el formulario y lo muestra. Si el formulario ya está cargado, el método Show simplemente lo muestra.

Mostrar un único cuadro de diálogo normalmente no es suficiente para completar una tarea. Casi siempre desea determinar el estado de los controles de un cuadro de diálogo para saber qué datos u opciones ha seleccionado el usuario. Por ejemplo, si se utiliza un cuadro de diálogo para obtener información del usuario sobre por qué columnas y filas se debe ordenar una hoja de cálculo, debe poder averiguar qué valores ingresó el usuario después de cerrar el cuadro de diálogo y antes. la operación de pedido realmente comienza.

En otros casos, es posible que desee cambiar dinámicamente los títulos de los botones (u otros controles) en un cuadro de diálogo, actualizar dinámicamente una etiqueta o campo asociado con un contador o validar dinámicamente los datos ingresados ​​en un cuadro de diálogo.

En VBA, es posible ampliar significativamente el conjunto de funciones integradas en una aplicación estándar, como Microsoft Excel, así como crear funciones cuyos valores dependen de ciertas condiciones y eventos.

VBA le permite programar funciones de tabla. Para crear una hoja de trabajo separada para un módulo de programa, use la pestaña Insertar módulo del menú Visual y el comando Módulo del menú Insertar macro. Después de esto, aparecerá una nueva hoja de trabajo "Modele1". En un módulo de programa, es necesario describir una función en VBA. Puede trabajar en la ventana del módulo del programa como si estuviera en una pequeña ventana del editor de texto.

La incrustación de funciones se realiza mediante el comando Explorador de objetos del menú Ver. Las funciones definidas por el usuario se tratan como objetos independientes en el programa. VBA tiene un conjunto importante de funciones integradas, dividiéndolas en tipos.

Visual Basic le permite reservar variables, con o sin tamaño, trabajar con varios tipos de datos, usar constantes, trabajar con operadores y funciones matemáticas y usar operadores adicionales. Se proporciona el uso de operadores de bucle Para Siguiente, Hacer y objetos del tipo "temporizador" (un cronómetro invisible en el programa). La precisión de configurar la hora en el programa es de 1 milisegundo o 1/1000 de segundo. El temporizador iniciado funciona constantemente, es decir el procedimiento de manejo de interrupciones correspondiente se ejecuta en un intervalo de tiempo específico, hasta que el usuario detiene el temporizador o desactiva el programa.

En VBA, puede establecer cualquier propiedad para un formulario, incluido el título, el tamaño, el tipo de borde, los colores de fondo y de los caracteres, la fuente del texto y la imagen de fondo.

Si resumimos todas las funciones del programa, Visual Basic forApplication le permite:

1) trabajar con controles

Ventajas :

1. Alta velocidad de creación de aplicaciones con interfaz gráfica para MS Windows.

2. Sintaxis simple que te permite dominar el idioma muy rápidamente.

3. Posibilidad de compilación tanto en código máquina como en código P (a elección del programador). En el modo de depuración, el programa siempre (independientemente de su elección) se compila en código P, lo que le permite pausar el programa, realizar cambios significativos en el código fuente y luego continuar la ejecución sin la necesidad de una recompilación completa y un reinicio del programa. .

4. Protección contra errores asociados al uso de punteros y acceso a memoria. Este aspecto hace que las aplicaciones de Visual Basic sean más estables, pero también es objeto de críticas.

5. Posibilidad de utilizar la mayoría de las funciones de WinAPI para ampliar la funcionalidad de la aplicación. Este tema ha sido estudiado más a fondo por Dan Appleman, quien escribió el libro "Guía del programador de Visual Basic para la API de Win32".

Crítica :

1. A menudo se critican aspectos de Visual Basic, como la capacidad de deshabilitar el seguimiento de variables declaradas, la capacidad de convertir variables implícitamente y la presencia del tipo de datos "Variante". Según los críticos, esto permite escribir código extremadamente malo. Por otro lado, esto se puede considerar como un plus, ya que VB no impone “buen estilo”, sino que da más libertad al programador.

2. Falta de punteros, acceso a memoria de bajo nivel, inserciones ASM. A pesar de que el paradigma de Visual Basic permite al programador medio de VB prescindir de todo esto, estas cosas también suelen ser objeto de crítica. Y aunque, utilizando características no documentadas y ciertos trucos, todo esto se puede implementar en VB (por ejemplo, usando funciones para obtener punteros VarPtr(), StrPtr() y ObjPtr()); Usar estos trucos es mucho más difícil que, por ejemplo, en C++.

Sin embargo, vale la pena señalar que todas las desventajas del lenguaje se derivan de su principal ventaja: la facilidad para desarrollar una interfaz gráfica. Por lo tanto, muchos programadores utilizan Visual Basic para desarrollar la interfaz de usuario e implementar la funcionalidad del programa en forma de bibliotecas de vínculos dinámicos (DLL) escritas en otro lenguaje (normalmente C++).

4. Parte práctica

4.1 Planteamiento del problema

Dibuje un diagrama de bloques y escriba un programa en Pascal. Calcular el valor intrínseco de los títulos. El valor intrínseco de un activo está determinado por el flujo futuro de ingresos de ese activo.

pv – valor intrínseco actual de la acción

c – recepción esperada del activo en cuestión

r – tasa de rendimiento esperada por el inversor para los ingresos con el correspondiente nivel de riesgo

n – factor de tiempo (en meses).

Realizar análisis de mercado y ordenar los resultados en orden ascendente de los datos obtenidos.

4.2 Texto del programa en lenguaje Pascal

pv: matriz de reales;

writeLn('Ingrese el recibo esperado de ',i,'ésimo activo c:');

writeLn('Ingrese la tasa de rendimiento esperada por el inversionista r:');

pv:=c/exp(ln(1+r)*i);

writeLn('el valor intrínseco actual del activo es', pv[i]:1:3);

writeLn('El valor intrínseco del activo es', s);

para j:=1 a 4 hacer

si pv[j] > pv entonces

writeLn('Valor del activo ordenado en orden ascendente');

para i:=1 a 5 hacer

escribirLn(pv[i]:1:3);

4.3 Caso de prueba

4.4 Resultado de ejecutar el programa en un ejemplo de prueba

Conclusión

Entonces, resumiendo todo lo anterior, cabe señalar que el software de herramientas es uno de los tipos de software que tiene sus propias tareas y funciones generales.

Sin embargo, al ser un tipo de software altamente especializado, tiene un cierto conjunto de propiedades y funciones únicas que brindan soluciones a sus problemas específicos.

Es necesario tener en cuenta la tendencia emergente hacia la simplificación del proceso de programación y la creación de una determinada subclase: la programación semiprofesional para fines aplicados.

Esto es lo que permitirá a un usuario experimentado de ordenadores, pero no a un programador profesional, crear determinadas aplicaciones y pequeños archivos ejecutables en el entorno de Microsoft Office, utilizados principalmente con fines contables y de flujo de documentos en pequeñas empresas.

Es con este propósito que Microsoft desarrolló el paquete de software VisualBasicforApplication, que simplifica el proceso de programación y hace posible que los usuarios, en lugar de los programadores, participen en la programación de aplicaciones. Esta característica se implementó principalmente mediante la creación de una sección del programa: "Editor de secuencias de comandos" y la capacidad de grabar y ejecutar "Macros" como un tipo separado de módulos gráficamente programables. Se ha implementado la posibilidad de crear aplicaciones con interfaz gráfica para MS Windows. Otra ventaja de este tipo de software de herramientas es su sintaxis simple, que le permite dominar rápidamente el lenguaje y utilizarlo para programar en todas las aplicaciones estándar de Microsoft Office.

Por lo tanto, es difícil sobreestimar la importancia de las herramientas en general, y de VisualBasicforApplication en particular, aunque también existen deficiencias, como se mencionó anteriormente. Pero estos ni siquiera son aspectos negativos del producto, sino más bien directrices para seguir mejorando el software en forma de VisualBasicforApplication.

1. Lenguajes algorítmicos en tiempo real / Ed. Yanga S. / 2004

2. Revista PC Edición rusa No. 2 2008 Computadora hoy.

3. Informática. /Ed. Mogilev A.V., Pak N.I., Henner E.K./ - M.: ACADEMIA, 2000.

4. Informática y tecnologías de la información: Libro de texto / Ed. Romanova D. Yu. / Eksmo Publishing House LLC, 2007.

5. La última enciclopedia de la computadora personal / Ed. Leontyeva V. /Moscú, 1999. – 271 p.

6. Nuevos lenguajes de programación y tendencias en su desarrollo / Ed. Ushkova V. / 2001

7. Pedagogía / Ed. Pidkasistogo P.I./ – M.: Sociedad Pedagógica Rusia, 2000.

8. Programación para Microsoft Excel 2000 en 21 días. /Ed. Kharisa M./ – M.: Williams, 2000.

9. Simonovich S. Informática: curso básico. Libro de texto para universidades. San Petersburgo, Peter, 2002

10. No hay problema con Excel 2000. /Ed. Kowalski/ – M.: Binom, 2000.

11. “Trabajo efectivo en Windows 98” / Ed. Stinson K. / 2000. – 247 p.

12. Lenguajes de programación. libro 5 /Ed. Vaulina A.S. / 2003

13. Lenguajes de programación: desarrollo e implementación / Ed. Terrence P. / 2001

14. Libro de texto electrónico de informática. Alekseev E.G. http://www.stf.mrsu.ru/economic/lib/Informatics/text/Progr.html\

La tecnología de programación en general y las herramientas de soporte al desarrollo de software en particular están evolucionando tan rápidamente que incluso enumerar los principales sistemas de herramientas ocuparía demasiado espacio en este libro. Es por eso que a continuación nos detendremos brevemente en algunos proyectos en el campo de la tecnología de programación que son interesantes en el contexto de esta publicación.

Cualquier sistema tecnológico desarrollado debe soportar todas las etapas principales de creación del paquete de software diseñado. Para lograr este objetivo en una estructura global Sistema típico de apoyo al desarrollo tecnológico.(Fig. 6.3) suelen estar aislados base de datos del proyecto; subsistema de automatización de diseño y programación; subsistemas de depuración, documentación y mantenimiento, A También un subsistema para gestionar el progreso del proyecto.


Arroz. 6.3. Estructura general de un sistema típico de apoyo al desarrollo tecnológico.

Los sistemas de soporte al desarrollo de bibliotecas desarrollados se utilizan actualmente en todo el mundo en todos los proyectos de software serios. Pero en la gran mayoría de los casos, estos sistemas han alcanzado el nivel de facilidad de uso para programadores calificados. Nos interesan principalmente los sistemas y proyectos que tienden a representar explícitamente el conocimiento tecnológico, incluso si no se basan en ideas y métodos de IA.

Uno de estos proyectos, Gandalf, está enfocado a la generación automatizada de sistemas de desarrollo de software. La investigación llevada a cabo dentro del proyecto Gandalf se refiere a tres aspectos del soporte al diseño de software: gestión de proyectos, control de versiones y programación incremental, así como su integración en un único entorno. La gestión en el entorno Gandalf se basa en el supuesto de que el proyecto que se está desarrollando debe tratarse como un conjunto de tipos de datos abstractos sobre los que sólo se pueden realizar determinadas operaciones. La herramienta que implementa este concepto fue el sistema SDC (Software Development Control), que es un conjunto de programas implementados inicialmente en el lenguaje Shell en el sistema UNIX, y posteriormente traducidos al lenguaje C.

La investigación en el campo del control de versiones fue iniciada por L. Kooprider a partir del proyecto FAFOS, donde inicialmente se analizaron las posibilidades de crear una familia de sistemas operativos. Se desarrolló una notación para describir la interacción entre subsistemas, para describir diferentes versiones de subsistemas (código fuente y objeto, documentación, etc.) y para describir los mecanismos que operan en la etapa de desarrollo (compilación, edición de enlaces, etc.). Luego se creó un lenguaje especial, Intercol, como medio para describir la relación y las versiones de los módulos del sistema. Y finalmente, el conocimiento de cómo construir un sistema a partir de piezas se incorporó al sistema sin obligar al usuario a hacerlo. Como seguimiento de este trabajo, se creó SUCE para rastrear las diferencias entre implementaciones (versiones que en realidad proporcionan código para un conjunto de especificaciones) y composiciones (versiones que definen nuevos subsistemas como grupos de subsistemas existentes).



En el sistema LOIPE (Entorno de programación incremental orientado al lenguaje), la compilación incremental se realiza a nivel de procedimiento individual. La ventaja de este enfoque es que cuando se corrige un procedimiento a nivel de objetos o tipos locales, sólo se vuelve a compilar ese procedimiento. Si la especificación cambia, se recompilan todos los procedimientos que dependen de ella. La interfaz de usuario con el sistema LOIPE se basa en el subsistema de edición orientado sintácticamente ALOE (A Language-Oriented Editor). El propósito del desarrollo de este subsistema fue estudiar la posibilidad de crear y utilizar editores orientados sintácticamente como base para entornos de programación.

Un análisis de la literatura de los últimos años sobre tecnología de programación muestra que está surgiendo una nueva rama en la tecnología del desarrollo industrial y la implementación de sistemas de software complejos y significativos. tecnología CASE(Ingeniería de Software Asistida por Computadora).

Inicialmente, la tecnología CASE apareció en proyectos para crear sistemas de procesamiento de datos industriales. Esta circunstancia dejó su huella en las herramientas tecnológicas de CASE, donde se prestó la mayor atención, al menos en los primeros sistemas CASE, a apoyar el diseño de flujos de información. Actualmente, se está dejando de centrarse en los sistemas de procesamiento de datos y las herramientas tecnológicas de CASE son cada vez más versátiles.

Todas las herramientas de soporte tecnológico CASE se dividen en dos grandes grupos: CASE-Kits de herramientas Y CASE-Bancos de trabajo. No existen buenos equivalentes rusos para estos términos. Sin embargo, los primeros suelen denominarse “cajas de herramientas” (paquetes de desarrollador, paquetes de tecnología) y los segundos son “máquinas de producción de software” (líneas de producción).

priorato Kit de herramientas CASE - una colección de herramientas de software integradas que brindan asistencia automática para resolver problemas del mismo tipo en el proceso de creación de programas.

Dichos paquetes utilizan un "repositorio" común para toda la información técnica y de gestión del proyecto (repositorio), están equipados con una interfaz de usuario común y una interfaz unificada entre las herramientas individuales del paquete. Normalmente, CASE-Toolkit se centra en apoyar el desarrollo de una fase de producción de programas o un tipo de problema de aplicación.

Todo lo anterior también es válido para CASE-WorkBench. Pero aquí, además, se brinda soporte automatizado para el análisis de las tareas de producción de software que se resuelven, el cual se basa en supuestos generales sobre el proceso y la tecnología de dichas actividades; Se admite la transferencia automática de los resultados del trabajo de una etapa a otra, desde la etapa de diseño hasta la eliminación del producto de software creado y su mantenimiento.

De este modo, CASE-WorkBench Es un “cierre” natural de la tecnología para desarrollar, implementar y mantener software.

Actualmente, un sistema de soporte tecnológico CASE “típico” tiene la funcionalidad que se muestra en la Fig. 6.4.

Arroz. 6.4. Funcionalidad de un sistema de soporte tecnológico típico de CASE

Como se desprende de este diagrama H, el entorno CASE debe soportar todas las etapas principales de desarrollo y mantenimiento de los procesos de creación de sistemas de software. Sin embargo, el nivel de dicho apoyo varía significativamente. Por ejemplo, si hablamos de las etapas de análisis y diseño, la mayoría de los paquetes de herramientas admiten pantallas y formularios de informes, creación de prototipos y detección de errores. Una parte importante de estos fondos está destinada a PC. Muchos admiten metodologías ampliamente utilizadas, como el análisis estructural de DeMarco o Gane/Sarson, el diseño estructural de Yourdan/Jackson y varias otras. Existen paquetes de desarrollo especializados para la creación de sistemas de información, por ejemplo Ana Tool (Advanced Logical Software) para Macintosh; CA-Universe/Prototype (Computer Associates International) para PC. Existen entornos CASE para respaldar el desarrollo de sistemas en tiempo real.

Entre los desarrolladores de software hay dos valoraciones de este enfoque: algunos creen que la tecnología CASE cambia radicalmente los procesos de desarrollo y operación del software, otros lo niegan y dejan solo la función de automatizar el trabajo rutinario a las herramientas CASE. Sin embargo, un análisis de la literatura muestra que las herramientas CASE todavía "cambian" las tecnologías de desarrollo de software de la gestión de proyectos al método de creación de prototipos. Y este cambio, en nuestra opinión, es una tendencia extremadamente importante en la tecnología de programación moderna.

Publicaciones sobre el tema.