Инструменти за разработка на софтуер. Инструменти за разработчици - задължителни и просто полезни

Разработката на софтуер се извършва с помощта на различни инструменти, които предоставят:

    оригинално програмиране;

    използване на приложни софтуерни пакети – стандартни програми, реализиращи функции за обработка на данни;

    автоматизация на основните етапи на разработване на програмата.

Най-традиционните инструменти за разработка са програмните езици и системи. Езиците за програмиране обикновено се разделят на машинни и алгоритмични езици.

машинаезиците съдържат машинни инструкции, съответстващи на най-простите операции за обработка. Машинните инструкции са свързани с конкретен клас компютър и/или операционна система.

АлгоритмиченЕзиците за програмиране описват алгоритъма на даден проблем, осигуряват яснота на алгоритъма и лесна поддръжка на програмата. Алгоритмичните езици се разделят на машинно-ориентирани, процедурно-ориентирани и проблемно-ориентирани езици.

машина-ориентиранЕзиците за програмиране са езици от ниско ниво, защото отчитат архитектурата и вида на компютрите. Програмирането на такива езици е трудоемко, но програмите са оптимални по отношение на необходимите компютърни ресурси. Примери за машинно-ориентирани езици за програмиране са различни асемблери 1 (Macro Assembler, Turbo Assembler и т.н.) на определен клас компютри.

Процедурни-ориентиранПрограмни езици като Visual Basic, Pascal, C++, Ada, Cobol, PL1 и т.н. ви позволяват да опишете набор от процедури за обработка и да внедрите стандартни изчислителни структури:

1. Последователности от блокове (инструкции): 1, 2, 3, 4 и т.н.

Всички блокове (инструкции) се изпълняват в стриктна последователност (фиг. 5 A)

2. Условен преход (фиг. 5 B) - проверка на дадено условие (2) и избор на алтернативно действие: ако условието е вярно - 3, в противен случай - 4. След това управлението се прехвърля към блок 5.

3. Алтернативен избор (фиг. 5 B) – проверка на условие (2), ако условието е вярно – изпълнение на действие 3, в противен случай проверка на условие (4); ако условието е вярно, изпълнете действие 5 и т.н. Ако не са изпълнени условия или са извършени действия (3 или 5 и т.н.), управлението се прехвърля към блок 6.

A B C

Фигура 5

4. Цикличен процес – цикълът „още” (фиг. 6А). Цикълът се повтаря, докато условие (2) е вярно - блок 3. Ако условие (2) е невярно, управлението се прехвърля към блок 4.

5. Цикличен процес – цикъл „преди” (фиг. 6Б). Цикълът се изпълнява поне веднъж - блок 2. След проверка на условие (3), ако е вярно, се изпълнява блок (2), в противен случай управлението се прехвърля към блок 4.

Фигура 6

Програмни езици обекттип, елементи на структурно програмиране също се използват в програмния код на клас обекти или процедури за обработка на събития.

Проблемно-ориентиранезици за програмиране - езици за релационни заявки на високо ниво, генератори на отчети и др. ви позволяват да идентифицирате проблема, входната и изходната информация, без да уточнявате конкретни процедури за обработка.

Пакетите с приложни програми (APP) са разделени на класове:

    Проблемно-ориентирани ПЧП – предоставят решения на проблеми от конкретна предметна област;

    Метод-ориентирани ППП – поддържат определен тип модел и методи за решаване на проблеми, използват се независимо от предметната област;

    Софтуер с общо предназначение – предоставя поддръжка за информационни технологии (работа с текст, работа с графики, стандартни изчисления и др.).

Обща характеристика на средствата за разработка на софтуер

    Обща характеристика на средствата за разработка на софтуер

    Технология за програмиране на инструментални системи

    CASE инструменти. Характеристики на съвременните CASE инструменти

Преглед на обектно-ориентирани инструменти

Обектно-ориентираното програмиране възниква преди обектно-ориентирания анализ и дизайн, така че днес има доста голям брой езици, които поддържат тази технология. Първият от тях, според датата на възникване, се счита за език Общи приказки, въпреки че в езика са използвани много елементи от обектно-ориентирания подход Симулапрез 1967г Най-мощният инструмент за създаване на обектно-ориентирани програми днес е езикът C++, създаден на базата на структуриран език за програмиране ° С. Езикът се развива успешно Java, който първоначално е проектиран да бъде обектно-ориентиран.

Разработването на големи софтуерни системи в съвременните условия е невъзможно без използването на средства за автоматизирана разработка на софтуер (CASE инструменти). Няма много CASE, които поддържат обектно-ориентирания подход. Най-известният инструмент в тази посока е системата Rational Rose , който поддържа, наред с други неща, етапите на обектно-ориентиран анализ и проектиране.

Обектно-ориентиран CASE инструмент на Rational Rose

Разработчик Rational Rose- Rational Software Corp., известна с разработките си в областта на обектно-ориентираните технологии, основната от които е езикът UML. Тази CASE система е ориентирана именно към поддържането на UML, като основен език за проектиране на софтуер.

Като всеки съвременен CASE инструмент, тази система поддържа всички етапи от жизнения цикъл на софтуера и предоставя на потребителя широк набор от функции за анализиране, проектиране, изграждане и поддръжка на софтуер. В този случай се използват обектно-ориентирани технологии и широко се използват графични модели.

Rational Roseсе състои от следните основни компоненти: хранилище, графичен потребителски интерфейс, инструменти за проверка на проекта (браузър), инструменти за контрол на проекта, инструменти за събиране на статистика и генератор на документи, както и разширения за поддръжка на различни езици за програмиране.

Основните характеристики включват следното:

    Мощен графичен език за моделиране на домейн, който има високо ниво на формализиране и поддържа обектно-ориентирана методология.

    Удобна навигация между елементите на модела с помощта на „инспектор на проекти“.

    Съхраняване на резултатите от дизайна под формата на един модел.

    Подпомагане на работата на екипа за разработка по проекта.

    Мощна система за изготвяне на справки и проектна документация.

    Възможност за програмен синтез на почти всички съвременни обектно-ориентирани езици, включително междуплатформения език Java.

    Поддръжка на компонентни технологии за изграждане на софтуерни системи.

    Широки възможности за проектиране на софтуер с различни архитектури, от прости програми до големи системи "клиент-сървър" и интернет приложения.

    Възможност за реинженеринг на модела въз основа на изходния код на програмата. Това гарантира запазването на целостта на информацията за дизайна и изпълнението.

    Конфигуриране и разширяване на функционалността на CASE средата чрез инсталиране на модули за разширение, предимно за поддръжка на различни езици за програмиране.

Принципи на разработване на софтуерни системи в Rational Rose

Изграждането на обектно-ориентирани системи има своята специфика. Очевидно е, че за максимална ефективност трябва да се използва една и съща технология на всички етапи от жизнения цикъл. Тази възможност се предоставя от универсалния език за моделиране UML. Rational Roseподдържа всички фази на проектиране на системата, които са дефинирани в UML спецификацията.

Основният метод на проектиране е да се създадат различни видове диаграми и спецификации, които определят логическата и физическата структура на системния модел, неговите статични и динамични аспекти. Те включват диаграми на клас, състояние, скрипт, модул и процес.

На всички етапи е възможно да се използват специализирани графични редактори за елементи на модела и да се използва инспекторът на модела за навигация между неговите компоненти. Цялата информация за дизайна се записва в един файл на модела (*.mdl).

Работата започва с изграждането на Use Case Diagram, която характеризира основните задачи и среда на проектираната система. След това за всеки случай на употреба, представен в диаграмата на употреба, се разработват диаграми на последователности, които идентифицират обекти в системата и описват последователността от събития, които се случват в процеса на комуникация между обекти. Rational Roseви позволява автоматично да свързвате диаграми на последователности с блокове за използване.

Обектите, присъстващи в диаграми на последователности, се дефинират в системата с помощта на класове. Класовете и техните връзки се дефинират с помощта на диаграми на класове, чието разработване също се поддържа Rational Rose. Класовете са групирани в пакети. Рационално Розави позволява да дефинирате набор от пакети, връзките между тях и да представите техните съставни класове във вложени диаграми на класове.

Съставът на компилираните и изпълнените системни модули е посочен в Rational Roseизползвайки компонентна диаграма. Диаграмата идентифицира зависимостите между компонентите. Компонентите могат да имат интерфейси, чрез които се реализират зависимости. Диаграми за разполагане в Rational Roseотразяват конфигурацията на изпълняваната софтуерна система и се състоят от възли и връзки на взаимодействие между възлите. Възлите включват компонентите, представени в диаграмата на системните компоненти.

За напълно дефиниран модел е възможно да се генерират изходни програмни текстове на различни поддържани обектно-ориентирани езици за програмиране Rational Rose, като Java или C++.

Получените програмни текстове могат да бъдат модифицирани отвън Rational Rose, и за да вземе предвид направените промени, системата ви позволява да проектирате обратно текстовете в модел.

Софтуерно проектиране

Моделиране на домейн . Създаването на проект започва с формирането на принципите за използване на системата. В рамките на Rational RoseТози етап се нарича „Изглед на случай на използване“. Изпълнението на този етап ви позволява да идентифицирате външни потребители, блокове за използване, системни обекти и връзки между тях.

Изготвя се диаграма на използване, която отразява външното функциониране на създаваната система. Този модел в много отношения е подобен на диаграмата на потока от данни в структурния анализ. Основните му компоненти са външни потребители (актьори), блокове за използване (случаи на използване) и връзки между компонентите. За да създадете диаграма в Rational Roseизползва се специализиран графичен редактор.

Всички елементи от диаграмата на използване се идентифицират от системата като независими компоненти на модела в рамките на този етап и подлежат на допълнителна спецификация. На първо място, това се отнася до блокове за използване, които отразяват групи от системни функции, представени като едно цяло на външен потребител.

За всеки блок за използване се изгражда диаграма на последователност, която показва взаимодействието във времето на обектите, изпълняващи задачата. Такива диаграми идентифицират системни обекти и дефинират съобщенията, чрез които тези обекти взаимодействат. Диаграмите се изграждат в специализиран редактор.

Всеки обект в диаграма на последователност е придружен от името на класа, към който принадлежи. Конкретен обект е екземпляр на някакъв клас. Класовете формират логическата структура на системата.

Разработване на логическа структура. След завършване на формирането на принципите за използване на системата започва етапът на разработване на нейната логическа структура. IN Rational Roseнарича се "Логически изглед". Резултатът от този етап трябва да бъде основна диаграма и детайлни диаграми за нейните елементи.

На този етап трябва да определите класовете, които са необходими в системата. Екземплярите на тези класове вече са посочени в диаграми на последователности. Класовете и техните връзки се отразяват в модела под формата на класова диаграма. Групи от класове в тези диаграми могат да бъдат групирани в пакети.

Проектирането на логическа структура трябва да започне с дефиниране на основните пакети. Пакетът е универсален инструмент за групиране на елементи на модела. Използването на пакети ви позволява да направите модела по-видим. Пакетите могат да бъдат вложени един в друг. Класовете, които съставят всеки пакет, са подробно описани в включената диаграма.

Вграден Rational RoseРедакторът на диаграма на клас предоставя удобни инструменти за такива операции, а инспекторът на модела улеснява навигацията в йерархията на диаграмата.

За всеки клас е специфицирана спецификация, която описва състава на атрибутите и методите, връзките, шаблона, върху който е създаден класът, и характеристиките на изпълнението.

Наличието на шаблони улеснява създаването на класове с различни структури.

Класовете могат да бъдат импортирани в системата отвън. Rational Roseподдържа компонентната структура на софтуера и позволява използването на двоични компоненти като COM и ActiveX в модела. Тяхното представяне в модела се извършва с помощта на класове, базирани на интерфейсите на тези компоненти.

В допълнение към диаграмите на класове, диаграми на състояния, диаграми на сценарии и други елементи на езика UML се използват за описание на системната логика на този етап.

Проектирайте физическата структура на приложението. Класовете, описани в предишната стъпка, са свързани с физическите компоненти на програмата с помощта на диаграми на компоненти.

Компонентът е изпълним модул на системата и е свързан с изходен файл, бинарен библиотечен файл, обектен модул или изпълним файл. Компонентите могат да включват други компоненти.

За визуализиране на компонентите на проектираната система се използват диаграми на компоненти. Етап на конструиране на компонентни диаграми в Розанаречен "Изглед на компоненти". Състои се от изграждане на обща диаграма и, ако е необходимо, детайлизиране на отделни компоненти в поддиаграми.

Тези диаграми отразяват връзката между компонентите на софтуера. Връзката се реализира чрез интерфейси, които също са показани на диаграмата.

Диаграмите се създават в специализиран редактор. За даден компонент са посочени класовете, които го съставляват.

Компонентът може да генерира изходен текст на различни поддържани езици за програмиране Rational Rose,или задайте програмни фрагменти, разработени извън средата Роза. Във втория случай техният интерфейс трябва да съответства на декларирания в модела.

Последната стъпка в дизайна на софтуера е да се подготви диаграма за разполагане. IN Розатози етап се нарича "Изглед на внедряване". Диаграмите за внедряване показват конфигурацията на изпълнима софтуерна система. Състои се от възли и връзки на взаимодействие между възли и компоненти. Възлите могат да включват компоненти и обекти. Възлите са физически елементи по време на изпълнение.

Изграждане и поддръжка на системата

Генериране на изходни текстове . След като са идентифицирани конкретните компоненти на разработваната система, е време да се генерира програмен код за всеки компонент.

Всъщност, Розагенерира програмен скелет, който впоследствие се изпраща на програмистите за ревизия. Автоматично се синтезират дефиниции на класове и методи, чиято специфична реализация трябва да се извърши ръчно.

Първоначалната информация за тази операция е информация за класовете, които съставляват този компонент и избрания език за изпълнение на този компонент.

Преди да извършите операцията, трябва да определите състава и параметрите за запазване на получения код. След това извършете генерирането, като изберете необходимия език. Ако възникнат грешки, системата ще ви информира за това.

Възможно е селективно генериране на програмен код за отделни компоненти на модела и персонализиране на информация, поставена в програмни файлове. Така се постига висока гъвкавост при надграждане и модифициране на модела.

Rational Rose 98 Enterprise Editionви позволява да генерирате изходен текст в Visual Basic, C++, Java, както и да получите описание на компонентните интерфейси в IDL и да създавате проекти за системата Oracle 8.

Реинженеринг на модел, базиран на изходни кодове . Възможността за реинженеринг или, както се нарича още „обратно инженерство“, модел от изходни програмни текстове изглежда е една от важните и, разбира се, полезни функции Роза. Необходимостта от такава операция често възниква при модифициране и надграждане на проект. Програмните шаблони, генерирани от модела, след като бъдат прехвърлени на програмистите, могат да бъдат модифицирани и тези промени трябва да бъдат взети предвид в модела. Освен това, тъй като Rational Roseподдържа импортирането на двоични компоненти (COM обекти в Win32 среда), тогава поддръжката за изграждане на класове въз основа на описанието на интерфейсите на двоичен компонент е просто необходима.

Можете да проектирате обратно класове, като изберете езика за програмиране, на който са реализирани класовете, и посочите директорията, където се намират изходните файлове. След това можете да изберете необходимите файлове или да ги проектирате обратно. Когато извършвате тези действия, трябва да сте внимателни и да изберете само онези елементи, които действително могат да бъдат превърнати в модел. По време на работа системата ще ви информира за наличието на грешки.

След успешно завършване на операцията в диаграмата на компонентите ще се появи нов елемент (етап "Изглед на компоненти"), който има име, което съответства на директорията на изходните файлове. Преминаването към етапа на логическия изглед ще покаже, че всички класове и пакети, които съставят новия компонент, също са се появили в диаграмите на класовете.

Вече е възможно да се правят промени в модела, определени от добавените компоненти, и да се генерират повторно изходните текстове.

Поддръжка на етап на развитие

Компоненти и шаблони. Една от възможностите Розае моделирането на двоични компоненти, които поддържат COM спецификацията. В модела такива компоненти са представени от интерфейсни класове, създадени на базата на IDL файлове, придружаващи COM обекта. Това ви позволява да включите различни готови компоненти във вашия модел.

Поддръжката на шаблони на елементи на модели опростява процеса на проектиране. IN РозаМожете да създавате и използвате шаблони за повечето елементи на модела, включително: блокове за използване, пакети, класове, компоненти, както и за операции върху модела. Когато създавате нов елемент, трябва да посочите кой шаблон се използва и елементът ще включва всички свойства на шаблона. Този подход ви позволява да се отървете от рутинната работа и да се концентрирате върху самия проект.

Работна среда. Логично развитие на идеята за използване на шаблони и външни двоични компоненти в Rational Roseбеше появата на работната среда (Framework).

Работното пространство е вид шаблон, който задава средата за създавания модел. Това става чрез зареждане на базовите елементи, включени в работната маса, които стават неразделна част от модела.

Розапредоставя широка гама от стандартни работни среди, като можете също да създадете своя собствена. Наборът от стандартни работни среди е както следва:

    Application Performance Explorer

    Стандартна среда. Фокусиран върху създаването на приложения на Visual Basic. Включва декларация на много стандартни VB обекти.

    Среда за проектиране на приложения за Интернет. Включва дефиниция на различни ActiveX компоненти и VB библиотеки.

    Среда за проектиране на приложения за работа с локални бази данни (Local Database). Съдържа декларацията на системни обекти на DAO

    Среда за проектиране на приложения, използваща RDO (Remote Data Object). Позволява ви да използвате RDO обекти за създаване на приложения клиент-сървър.

    Среда за проектиране на приложения за достъп до SQL сървъри (SQL Server Distributed Management Object (SQL-DMO)), поддържаща достъп до SQL чрез OLE-Automation обекти.

    Среда за поддръжка на Microsoft Transaction Server

    Среда за поддръжка на Microsoft Outlook

    Среди за разработка на Java приложения (Java JDK 114 Full и Java JDK 114 Quick). Включва модели на Java класове и интерфейси, получени чрез обратно инженерство.

    Среда за поддръжка на Oracle8

Средата за разработка се задава при създаването на модела. Средите за разработка се съхраняват под формата на модели на файлове (*.mdl), предназначени само за четене. В процеса на създаване на нов модел се зареждат необходимите елементи от избраната среда за разработка, след което се създава нов модел.

Средите за разработка предоставят чудесен механизъм за персонализиране Розаза конкретен проект. Можете да създадете своя собствена среда за разработка, която ще включва необходимите ви елементи от различни стандартни среди. Част Rational Roseвключва „майстор“ за създаване на работна среда.

Поддръжка на екип за разработка. Всеки голям проект обикновено се изпълнява от група разработчици, която включва анализатори, дизайнери и програмисти. Процесът на разработка се състои от последователни итерации с цикъла "анализ" - "проектиране" - "внедряване". На всеки етап няколко разработчици работят с модела и етапите се повтарят циклично. В такива условия е необходимо да се поддържа целостта на проекта, да се вземат предвид промените, направени на различни етапи, и да се координират етапите. Всичко това изисква използването на общо хранилище и специална идеология на дизайна.

Заедно с удобен инструмент за проверка на модела, който улеснява превключването между етапите, Rational RoseИдентифицирани са механизми за подпомагане на екипа за разработка.

Създава различни работни пространства за разработчици и работно пространство за целия проект. Всеки разработчик прави промени в своята част (подмодел) и тези промени стават глобални (прехвърлят се в общия модел) само след като бъдат одобрени от системата за управление на проекта. Като контролери на проекти в Розамогат да се използват външни системи, като напр ClearCaseИ Microsoft SourceSafe.

Използване на разширителни модули . IN Rational RoseВъведен е гъвкав механизъм за конфигуриране и персонализиране на възможностите на системата. Има различни модули за разширение, които могат да бъдат инсталирани Розаи решаване на различни проблеми. Има два основни типа модули за разширение: разширения, които поддържат езици за програмиране и разширения на функционалността на средата.

При добавяне на ново разширение, то се интегрира със системата чрез добавяне на елементи към системните менюта и инсталиране на необходимите библиотеки и изпълними файлове. В допълнение, всяко разширение може да добавя свои собствени типове и шаблони към системата.

Необходимите разширения обикновено се добавят при първоначалната инсталация на системата, но могат да бъдат инсталирани и по-късно. Поддържа се разпространение на разширения през Интернет

За да управлявате разширения в РозаИма мениджър на разширения. С негова помощ можете да активирате и деактивирате различни модули за разширение.

Плюсове и минуси на Rational Rose

Този CASE инструмент може да се използва за създаване на разнообразен обектно-ориентиран софтуер, предимно за платформата Windows, както и в междуплатформения език Java.

Езикът UML се използва на всички етапи на разработка, а софтуерният проект е един модел.

Важни предимства са персонализирането за различни езици за програмиране и архитектури на софтуерни системи, както и възможността за „обратно инженерство“ въз основа на изходни текстове на различни езици за програмиране. Има поддръжка за различни методи за физическа реализация на компонентите на проектираната система.

Възможността за конфигуриране на системата с помощта на разширителни модули е много полезна. Всъщност единственият начин да напишете приложение за операционна система, различна от Windows, е да използвате езика Java.

Същност и концепция на инструменталния софтуер

Инструменталният софтуер (IPO) е софтуер, предназначен за използване при проектиране, разработване и поддръжка на програми.

Инструментите се използват във фазата на разработка. Софтуерът за инструменти е набор от програми, използвани за подпомагане на програмистите в тяхната работа, за подпомагане на мениджърите по разработка на софтуер в усилията им да контролират процеса на разработка и получените продукти. Най-известните представители на тази част от софтуера са програмите-преводачи от езици за програмиране, които помагат на програмистите да пишат машинни команди. Инструменталните програми са преводачи от езиците Fortran, Cobol, Joe-vial, BASIC, APL и Pascal. Те улесняват процеса на създаване на нови работни програми. Езиковите преводачи обаче са само най-известната част от инструменталните програми; има много от тях.

Използването на компютри за създаване на нови програми далеч не е очевидно за хора, които не са професионални програмисти. Често се случва професионалистите да говорят едновременно за инструментален (фаза на разработка) и системен (фаза на използване) софтуер, като се предполага, че тези, които не са посветени в тайните на техния занаят, са наясно с тази роля на инструменталния софтуер. Точно както във фазата на използване (за приложни програми), системният софтуер също работи във фазата на разработка, но само във връзка с инструментите. Инструментален софтуер или системи за програмиране са системи за автоматизиране на разработването на нови програми на език за програмиране.

В най-общия случай, за да създадете програма на избрания език за програмиране (системен език за програмиране), трябва да имате следните компоненти:

1. Текстов редактор за създаване на файл с изходния текст на програмата.

2. Компилатор или интерпретатор. Изходният текст се превежда в междинен обектен код с помощта на програма за компилиране. Изходният код на голяма програма се състои от няколко модула (изходни файлове). Всеки модул се компилира в отделен файл с обектен код, който след това трябва да се комбинира в един.

3. Редактор на връзки или асемблер, който свързва обектни модули и произвежда работещо приложение като изход - изпълним код.

Изпълнимият код е пълна програма, която може да се изпълнява на всеки компютър, който има операционната система, за която е създадена програмата. По правило полученият файл има разширение .EXE или .COM.

Напоследък методите за визуално програмиране (използващи скриптови езици), насочени към създаване на Windows приложения, станаха широко разпространени. Този процес е автоматизиран в среди за бързо проектиране. В този случай се използват готови визуални компоненти, които се конфигурират с помощта на специални редактори.

Най-популярните редактори (системи за програмиране на програми, използващи визуални инструменти) за визуален дизайн:

Borland Delphi - предназначен за решаване на почти всеки проблем с програмирането на приложения.

Borland C++ Builder е отличен инструмент за разработване на DOS и Windows приложения.

Microsoft Visual Basic е популярен инструмент за създаване на Windows програми.

Microsoft Visual C++ - този инструмент ви позволява да разработвате всякакви приложения, работещи в операционна среда като Microsoft Windows

По този начин същността на инструменталния софтуер е да създаде всяка изпълнима програма чрез преобразуване на формални логически изрази в изпълним машинен код, както и нейното управление и настройка.

Задачи и функции на инструменталния софтуер

Инструменталният софтуер, като специален вид софтуер, се характеризира с общ и частен

функции, както за целия софтуер като цяло. Общите функции са разгледани по-горе, а специализираните функции, присъщи само на този тип програми са:

1. Създаване на текста на разработваната програма с помощта на специално установени кодови думи (език за програмиране), както и определен набор от знаци и тяхното местоположение в създадения файл - програмен синтаксис.

2. Превод на текста на създадената програма в машинно ориентиран код, достъпен за компютърно разпознаване. Ако обемът на създадената програма е значителен, тя се разделя на отделни модули и всеки от модулите се превежда отделно.

3. Свързване на отделни модули в единен изпълним код, съобразен с необходимата структура, осигуряваща координация на взаимодействието на отделните части помежду си.

4. Тестване и наблюдение на създадената програма, идентифициране и отстраняване на формални, логически и синтактични грешки, проверка на програмите за наличие на забранени кодове, както и оценка на производителността и потенциала на създадената програма.

Видове инструментален софтуер

Въз основа на задачите, възложени на инструменталния софтуер, можем да различим голям брой различни видове инструментален софтуер:

Текстови редактори

Интегрирани среди за разработка

Компилатори

Преводачи

Линкери

Анализатори и генератори на анализатори (вижте Javacc)

Монтажници

Дебъгери

Профайлери

Генератори на документация

Инструменти за анализ на покритието на кода

Инструменти за непрекъсната интеграция

Инструменти за автоматизирано тестване

Системи за контрол на версиите и др.

Трябва да се отбележи, че черупките за създаване на приложни програми също се създават от инструментални програми и следователно могат да бъдат класифицирани като приложни програми. Нека разгледаме накратко целите на някои инструментални програми.

Текстови редактори.

Текстовият редактор е компютърна програма, предназначена да обработва текстови файлове, като например създаване и извършване на промени.

CAD състав

CAD е система, която съчетава технически средства, математика и софтуер, чиито параметри и характеристики са подбрани с максимално съобразяване със спецификата на инженерното проектиране и строителните задачи. CAD осигурява лекота на използване на програми чрез използването на средства за оперативна комуникация между инженер и компютър, специални проблемно-ориентирани езици и наличието на информационна и референтна база данни.

Структурните компоненти на CAD са подсистеми, които имат всички свойства на системите и са създадени като независими системи. Това са части от CAD системи, идентифицирани според определени характеристики, които осигуряват изпълнението на определени завършени проектни задачи с получаването на съответните проектни решения и проектни документи.

Според предназначението си CAD подсистемите се делят на два вида: проектиране и поддръжка.

Подсистемите за проектиране включват тези, които изпълняват процедури и операции за проектиране, например:

· подсистема за машинно оформление;

· подсистема за проектиране на монтажни единици;

· подсистема за проектиране на части;

· подсистема за проектиране на управляваща верига;

· подсистема за технологично проектиране.

Обслужващите подсистеми включват подсистеми, предназначени да поддържат функционалността на подсистемите за проектиране, например:

· подсистема за графично изобразяване на обекти на проектиране;

· документационна подсистема;

· подсистема за търсене на информация и др.

В зависимост от връзката с обекта на проектиране се разграничават два вида подсистеми за проектиране:

· обектно-ориентирани (обектно базирани);

· обектно независими (инвариантни).

Обектните подсистеми включват подсистеми, които изпълняват една или повече дизайнерски процедури или операции, които са пряко зависими от конкретен проектен обект, например:

· подсистема за проектиране на технологични системи;

· подсистема за моделиране на динамика, проектирана структура и др.

Инвариантните подсистеми включват подсистеми, които изпълняват унифицирани процедури и операции за проектиране, например:

· подсистема за изчисляване на машинни детайли;

· подсистема за изчисляване на режимите на рязане;

· подсистема за изчисляване на технико-икономически показатели и др.

Процесът на проектиране се реализира в подсистеми под формата на специфична последователност от процедури и операции за проектиране. Процедурата за проектиране съответства на част от подсистемата за проектиране, в резултат на което се взема определено проектно решение. Състои се от елементарни дизайнерски операции, има твърдо установен ред за тяхното изпълнение и е насочен към постигане на локална цел в процеса на проектиране. Операцията на проектиране се разбира като условно избрана част от процедура на проектиране или елементарно действие, извършено от дизайнер по време на процеса на проектиране. Примерите за процедури за проектиране включват процедури за разработване на кинематична диаграма или схема на оформление на машинен инструмент, технология за обработка на продукта и т.н., а примерите за операции по проектиране включват изчисляване на допустими стойности, решаване на уравнение и т.н.

Структурното единство на CAD подсистемите се осигурява от стриктно регулиране на връзките между различни видове софтуер, обединени от обща целева функция за дадена подсистема. Разграничават се следните видове сигурност:

· методическа подкрепа - документи, които отразяват състава, правилата за избор и работа на средствата за автоматизация на проектирането;

· лингвистична подкрепа – езици за проектиране, терминология;

· софтуер – методи, математически модели, алгоритми;

· софтуер - документи с програмни текстове, програми на компютърен носител и експлоатационни документи;

· техническа поддръжка - компютърна и организационна техника, устройства за предаване на данни, измервателни и други средства и техните комбинации;

· информационно осигуряване - документи, съдържащи описание на стандартни процедури за проектиране, типови проектни решения, стандартни елементи, компоненти, материали и други данни;

· организационна поддръжка - наредби и инструкции, заповеди, щатни разписания и други документи, регулиращи организационната структура на отделите и тяхното взаимодействие с комплекс от средства за автоматизация на проектирането.

· 64 CALS технологии.

Технологиите CALS служат като средство за интегриране на индустриални автоматизирани системи в единна многофункционална система. Целта на интегрирането на автоматизирани системи за проектиране и управление е да се повиши ефективността на създаването и използването на сложно оборудване.

В съвременните условия на възникване на глобално информационно общество ролята на информацията и информационните технологии в подготовката на бъдещ специалист значително нараства. В близко бъдеще стратегическият потенциал на обществото няма да бъдат енергийните ресурси, а информацията и научните знания. Информацията се превръща в основен ресурс за научно-техническото и социално-икономическото развитие на обществото, значително влияе върху ускореното развитие на науката, технологиите и различни индустрии и играе важна роля в процеса на модернизация на образованието. Ценностно-семантичните характеристики на обучението в университета и професионалната дейност на специалистите трябва да се изразяват във формирането на интелектуална професионална среда, която най-пълно реализира задачите на изследователската и дизайнерската дейност.

Широко разпространената компютъризация на всички видове човешка дейност: от традиционните интелектуални задачи от научно естество до автоматизацията на производствени, търговски, търговски, банкови и други видове дейности служи за повишаване на ефективността на производството. В условията на пазарна икономика само предприятията, които използват съвременни информационни технологии в своята дейност, успешно издържат на конкуренцията.

Именно информационните технологии, заедно с напредналите технологии на материалното производство, позволяват значително да се повиши производителността на труда и качеството на продуктите и в същото време значително да се намали времето, необходимо за пускане на нови продукти, които отговарят на нуждите и очакванията на потребителите. Всичко посочено по-горе се отнася предимно за сложни високотехнологични продукти, включително продукти за технически цели.

Опитът, натрупан в процеса на внедряване на различни автономни информационни системи, позволи да се осъзнае необходимостта от интегриране на различни информационни технологии в единен комплекс въз основа на създаването в рамките на предприятие или група предприятия (виртуално предприятие) на интегрирана информационна среда, която поддържа всички етапи от жизнения цикъл на произведените продукти. Професионалната среда най-пълно разкрива възможностите за професионално усъвършенстване, използване на новите информационни технологии в науката и в областта на управлението на производствените процеси. Иновативни технологии в областта на индустрията за обработка на информация с въвеждането на технологията CALS-(Continuous Acquisition and Life Cycle Support) - непрекъсната информационна поддръжка за жизнения цикъл на проектиран обект, извежда автоматизацията на управлението на производствените процеси на ново ниво.

Използването на информационни технологии, базирани на идеологията CALS, е един от факторите, допринасящи за по-ефективното внедряване на автоматизирана система за управление на предприятието.

Технологиите CALS служат като средство за интегриране на индустриални автоматизирани системи в единна многофункционална система. Целта на интегрирането на автоматизирани системи за проектиране и управление е да се повиши ефективността на създаването и използването на сложно оборудване.

Същността на концепцията CALS е прилагането на принципи и технологии за информационна поддръжка на всички етапи от жизнения цикъл на продукта, въз основа на използването на интегрирана информационна среда, която осигурява единни начини за управление на процесите и взаимодействие на всички участници в този цикъл: клиенти на продукти (включително правителствени агенции и отдели), доставчици (производители) продукти, оперативен и поддържащ персонал. Тези принципи и технологии се изпълняват в съответствие с изискванията на международните стандарти, уреждащи правилата за управление и взаимодействие предимно чрез електронен обмен на данни.

Когато се използва технологията CALS, качеството на продуктите се повишава поради по-пълното отчитане на наличната информация при проектирането и вземането на управленски решения, а също така намалява разходите за материали и време за проектиране и производство на продукти. В процеса на въвеждане на тази технология, валидността на решенията, взети в автоматизирана система за управление на предприятието (EMS), ще бъде по-висока, ако лицето, вземащо решения, и съответните програми за управление имат бърз достъп не само до базата данни AMMS, но и до базите данни на други автоматизирани системи и следователно може да оптимизира работните планове, съдържанието на приложенията, разпределението на изпълнителите, разпределението на финансите и др. В същото време онлайн достъпът трябва да се разбира не само като възможност за четене на данни от база данни, но и като лекота на тяхното правилно тълкуване, т.е. съгласуваност в синтаксиса и семантиката с протоколите, приети в автоматизираните системи за управление. Технологичните подсистеми трябва да възприемат и правилно интерпретират данните, идващи от подсистемите за автоматизирано проектиране с висока точност. Това не е толкова лесно да се постигне, ако основното предприятие и свързаните с него организации работят с различни автоматизирани системи. В допълнение, проблемът за защита на информацията по целия периметър на технологичните подсистеми става неотложен.

Използването на CALS технологиите може значително да намали обема на проектантската работа, тъй като описания на предварително завършени успешни разработки на компоненти и устройства, много компоненти на оборудване, машини и системи, които са проектирани по-рано, се съхраняват в бази данни на мрежов сървър, достъпни за всеки потребител на CALS технология. Наличността и защитата отново се осигуряват от съгласуваността на формати, методи, насоки в различните части на цялостната интегрирана система. Освен това има по-големи възможности за специализация на предприятията, дори създаване на виртуални предприятия, което също помага за намаляване на разходите.

В процеса на внедряване на технологията CALS оперативните разходи са значително намалени поради внедряването на интегрирани функции за логистична поддръжка. Това значително улеснява решаването на проблемите с поддръжката, интегрирането на продуктите в различни видове системи и среди, адаптирането към променящите се условия на работа и др. Тези предимства на интегрирането на данни се постигат чрез използване на модерни CALS технологии.

Индустриалните автоматизирани системи могат да работят автономно и в момента организацията на процеса на управление на производството се извършва на тази основа. Въпреки това, ефективността на автоматизацията ще бъде значително по-висока, ако данните, генерирани в една от системите, са налични в други системи, тъй като решенията, взети в тях, ще станат по-информирани.

Опитът от внедряването на технологията CALS показва, че за да се постигне правилното ниво на взаимодействие между индустриалните автоматизирани системи, е необходимо да се създаде единно информационно пространство както в отделните предприятия, така и, което е по-важно, в рамките на асоциация на предприятия. Осигурява се единно информационно пространство чрез унифициране както на формата, така и на съдържанието на информацията за конкретни продукти на различни етапи от техния жизнен цикъл.

Унифицирането на формата се постига чрез използване на стандартни формати и езици за представяне на информация при междупрограмен обмен и по време на документация.

Унификацията на съдържанието, разбирана като недвусмислена правилна интерпретация на данни за конкретен продукт на всички етапи от жизнения му цикъл, се осигурява чрез разработването на онтологии (мета-описания) на приложенията, залегнали в протоколите за приложения CALS.

CAD - какво е това?

И така, какво представляват системите за компютърно подпомагано проектиране? CAD се отнася до автоматизирани системи, които са предназначени да внедряват една или друга информационна технология чрез проектиране. На практика CAD системите са технически системи, които позволяват автоматизирането и осигуряването на функционирането на процесите, съставляващи разработването на проекти. В зависимост от контекста CAD може да означава:

софтуер, използван като основен елемент на съответната инфраструктура;

Набор от технически и персонални системи (включително тези, които включват използването на CAD под формата на софтуер), използвани в предприятие за автоматизиране на процеса на разработване на проекти;

По този начин е възможно да се разграничат широко и по-тясно тълкуване на въпросния термин. Трудно е да се каже коя от тези интерпретации се използва по-често в бизнеса. Всичко зависи от конкретната област на използване на системите за компютърно проектиране, както и от задачите, за които тези системи трябва да се използват. Така, например, в контекста на единичен цех в производството, CAD се приема за специфична програма за компютърно проектиране. Ако говорим за стратегическо планиране за развитие на организация, тогава такава концепция като CAD най-вероятно ще съответства на мащабна инфраструктура, която се използва за повишаване на ефективността на разработването на различни проекти. Трябва да се отбележи, че самият термин CAD е съкращение, което може да бъде дешифрирано по различни начини. Като цяло това съкращение съответства на комбинацията от думите „система за компютърно проектиране“. Има и други опции за дешифриране на това съкращение. Например, опцията „система за автоматизация на дизайна“ е доста често срещана. По смисъл английският еквивалент на термина CAD е съкращението CAD, в някои случаи се използва и CAX.Нека разгледаме по-подробно следния въпрос: за какви цели могат да се създават системи за компютърно проектиране в машиностроенето и други полета?

CAD: цели за създаване

Основната цел на разработването на CAD е да повиши ефективността на труда на специалистите в предприятието, които решават различни производствени проблеми, включително тези, свързани с инженерния дизайн. В този случай ефективността може да се увеличи поради следните фактори:

Намаляване на трудоемкостта на процеса на проектиране;

Намаляване на времето за изпълнение на проекта;

Намаляване на разходите за проектиране и експлоатационните разходи;

Осигуряване на подобрено качество на проектната инфраструктура.

Намалете разходите за тестване и симулация.

CAD е инструмент, който ви позволява да постигнете отбелязаните предимства поради следните фактори:

Ефективна информационна подкрепа за специалистите, участващи в разработването на проекти;

Автоматизация на документацията;

Приложение на концепции за паралелен дизайн;

Обединяване на различни решения;

Приложение на математическото моделиране като алтернатива на скъпото тестване;

Оптимизиране на методите за проектиране;

Подобряване на качеството на процесите на управление на бизнеса.

Сега нека да разгледаме структурата, в която може да бъде представена система за автоматично проектиране.

CAD: класификации

Най-често срещаните критерии за класификация на CAD включват индустриално предназначение. Разграничават се следните видове:

  1. Автоматизирано проектиране на машиностроителна инфраструктура;
  2. CAD за електронно оборудване;
  3. CAD в областта на строителството.

Първият тип CAD системи може да се използва в широк спектър от индустрии: самолетостроене, автомобилостроене, корабостроене и производство на потребителски стоки. Също така, съответната инфраструктура може да се използва за разработване както на отделни части, така и на различни механизми, като се използват различни подходи в рамките на моделирането и дизайна.

Вторият тип CAD системи се използва за проектиране на готово електронно оборудване и неговите отделни елементи, например интегрални схеми, процесори и други видове хардуер.

CAD от третия тип може да се използва за проектиране на различни конструкции, сгради и инфраструктурни елементи.

Друг критерий, по който могат да бъдат класифицирани системите за компютърно проектиране, е предназначението. Тук те подчертават:

Инструменти за проектиране, използвани за автоматизиране на двуизмерни или триизмерни геометрични модели за генериране на проектна документация;

Системи, използвани за разработване на различни чертежи;

Системи за геометрично моделиране;

Системи, предназначени за автоматизиране на изчисления в инженерни проекти и динамично моделиране;

Средства за автоматизация, използвани с цел технологична оптимизация на проекти;

Системи за компютърен анализ на различни параметри на проекти.

Тази класификация се счита за условна.

Компютърно подпомагана система за проектиране на процеси може да включва широк набор от функции от изброените по-горе. Конкретният списък от CAD възможности се определя основно от разработчика на системата. Нека да разгледаме какви задачи може да реши.

Инструмент за разработка на софтуер Системен инструмент Софтуер

Есе

СОФТУЕР - набор от програми за система за обработка на информация и програмни документи, необходими за работата на тези програми (GOST 19781-90). Също така - набор от програми, процедури и правила, както и документация, свързана с работата на системата за обработка на данни (ST ISO 2382/1-84).

ИНСТРУМЕНТАЛЕН СОФТУЕР – софтуер, предназначен за използване при проектиране, разработване и поддръжка на програми. Обикновено този термин се използва, за да подчертае разликата между този клас софтуер и приложния и системния софтуер.

КОМПИЛАТОР – преводач, който преобразува програма, написана на изходния език, в обектен модул.

ИНТЕРПРЕТЕР - програма (понякога хардуерна), която анализира команди или програмни изрази и незабавно ги изпълнява.

ОПЕРАЦИОННА СИСТЕМА - набор от програми за управление и обработка, които, от една страна, действат като интерфейс между устройствата на компютърната система и приложните програми, а от друга, са предназначени за управление на устройства, управление на изчислителни процеси, ефективно разпределение на изчислителните ресурси между изчислителни процеси и организиране на надеждни изчисления.

ПРИЛОЖНА ПРОГРАМА - програма, предназначена да изпълнява определени потребителски задачи и предназначена за директно взаимодействие с потребителя.

VISUALBASIC е инструмент за разработка на софтуер, разработен от Microsoft Corporation, който включва език за програмиране и среда за разработка.

VISUALBASICFORAPPLICATION е леко опростена реализация на езика за програмиране Visual Basic, вграден в линията продукти на Microsoft Office (включително версии за Mac OS), както и много други софтуерни пакети като AutoCAD, SolidWorks, CorelDRAW, WordPerfect и ESRI ArcGIS.

Целта на работата е да се проучат видовете и функциите на софтуера, по-специално инструменталния софтуер.

Софтуерна класификация:

Видове инструментален софтуер:

1) Текстови редактори

4) Компилатори

5) Преводачи

6) Линкери

8) Монтажници

9) Дебъгери

10) Профилисти

11) Генератори на документация

За да създадете програма на избрания език за програмиране е необходимо да имате следните компоненти:

2. Компилатор или интерпретатор. Изходният текст се превежда в междинен обектен код с помощта на програма за компилиране.

Резултат от работата: Разглеждат се софтуерът, неговите функции и видове, по-специално инструментален софтуер, неговата същност и задачи. Третата глава разглежда Microsoft Visual Basic като инструмент за разработка на софтуер и неговия диалект - Microsoft Visual Basic for Application. Курсовата работа реализира алгоритъм за решаване на финансово-икономическа задача с помощта на езика за програмиране Pascal.

Въведение

В съвременния свят повече от един човек, който е опитал от предимствата на цивилизацията, не може да си представи живота си без използването на компютърни технологии. Използването му се среща във всяка сфера на човешката дейност: производство, търговия, образование, развлечение и комуникация на хората, тяхната научна и културна дейност. Всичко това е благодарение на възможността за избор на компютърно оборудване за решаване на всеки, дори най-сложен проблем.

Въпреки това, както гъвкавостта, така и специализацията на компютърните технологии се осигуряват от използването на различен набор от софтуер на базата на почти всеки компютър, който осигурява решение на всякакви възложени задачи.

Всички виждаме огромното разнообразие от компютърни програми и зашеметяващата скорост на тяхното развитие и усъвършенстване и само малка част от нас разбират невидимата страна на техния дизайн, разработка и създаване. Тази област на компютърните технологии обаче според нас е най-важната, тъй като бъдещето на компютърните технологии ще зависи от нейното развитие.

И тъй като разработването на всяка компютърна програма се извършва с помощта на инструментален софтуер, в нашата курсова работа бих искал да се спра на него подробно, като го подчертая от целия софтуер и разкрия неговата същност и характеристики.

За по-голяма яснота ще разгледаме инструменталния софтуер (обект на изследване) на примера на софтуерния пакет VisualBasicforApplication (обект на изследване), използван за програмиране в средата на Microsoft Office - най-разпространеният и популярен офис пакет.

1. Софтуер

1.1 Понятие и същност на софтуера

Софтуерът е неразделна част от компютърна система. Той е логично продължение на техническите средства на всеки компютър. Обхватът на приложение на конкретен компютър се определя от създадения за него софтуер. Самият компютър не познава нито едно приложение. Всички тези знания са концентрирани в програми, работещи на компютри, които имат набор от специфична функционалност и са предназначени да изпълняват специфични, в повечето случаи, високоспециализирани функции, като създаване и обработка на графични изображения или звукови файлове.

Понастоящем софтуерът включва стотици хиляди програми, които са проектирани да обработват голямо разнообразие от информация за голямо разнообразие от цели.

Софтуерът също така включва цялата област на дейност в дизайна и разработката на софтуер:

1) технология за проектиране на програми (например дизайн отгоре надолу, структуриран и обектно-ориентиран дизайн);

2) методи за тестване на програми;

3) методи за доказване коректността на програмите;

4) анализ на качеството на програмите;

5) документиране на програми;

6) разработване и използване на софтуерни инструменти, които улесняват процеса на проектиране на софтуер и много повече.

Има много различни определения за софтуер. Като цяло софтуерът е набор от системи за обработка на информация и програмни документи, необходими за работата на тези програми (GOST 19781-90). Също така - набор от програми, процедури и правила, както и документация, свързана с работата на системата за обработка на данни (ST ISO 2382/1-84).

Софтуерът е един от видовете поддръжка на компютърна система, заедно с техническа (хардуерна), математическа, информационна, езикова, организационна и методическа поддръжка.

В компютърния жаргон думата софтуер често се използва от английската дума софтуер, която за първи път е използвана в този смисъл в статия в American Mathematical Monthly от математика от Принстънския университет Джон У. Тъки през 1958 г.

Други определения:

1) СОФТУЕРЪТ е набор от програми, които позволяват автоматизирана обработка на информация на компютър.

2) СОФТУЕР (математическа поддръжка на електронен компютър), набор от програми за система за обработка на данни и програмни документи, необходими за изпълнение на програми на електронен компютър.

3) СОФТУЕР - набор от програми за управление на процеса на работа на компютъра и автоматизиране на програмирането.

4) СОФТУЕР - набор от компютърни програми, които осигуряват обработка или предаване на данни.

Всички дефиниции са сходни и отразяват същността на софтуера - организиране на взаимодействието на хардуерната (техническата) част, под формата на различни вградени възли и периферни устройства, тяхното управление и координиране на цялостното взаимодействие на компютърната система помежду си и с потребителя.

1.2 Софтуерни функции

Горните понятия за софтуер определят функциите, изпълнявани от софтуера по време на работата на компютърното оборудване. Списъкът с тези функции е много разнообразен, но те могат грубо да бъдат разделени на следните пет вида:

1. Хардуер и механика. Те свързват различни компютърни компоненти и осигуряват предаването на хардуерен сигнал от един компонент към друг.

2. Машинно-логически. Обработвайте и интерпретирайте набор от електромагнитни импулси от хардуера в логически съзнателен софтуерен код, който има специфична структура и свойства.

3. Информация и командване. Те проверяват съответствието на програмния код с принципите на системата и създават логическа структура на информацията и осъществяват нейното изпълнение.

4. Интерфейс. Осигурете обработка и интерпретация на програмния код във формат на дисплея, достъпен за потребителя. Създава благоприятна среда за взаимодействие „компютър-човек, човек-компютър”.

5. Приложни. Извършва математически, логически, физически и други действия с набор от налични данни, с други думи обработка на налична информация за решаване на определени проблеми.

Този списък далеч не е изчерпателен, което показва многообразието и неяснотата на функциите, изпълнявани от софтуера.

1.3 Видове софтуер

В зависимост от функциите, предоставяни от даден компютърен компонент, възниква необходимостта от създаване на собствен специализиран софтуер за него, което е основният мотив за създаване на софтуер от различни типове, показан на (фиг. 1):

а) Приложни програми, които директно поддържат изпълнението на работата, изисквана от потребителите;

б) системни програми, предназначени да контролират работата на компютърната система, изпълняват различни спомагателни функции, например:

1) управление на компютърни ресурси;

2) създаване на копия на използваната информация;

3) проверка на функционалността на компютърните устройства;

4) издаване на справочна информация за компютъра и др.;

в) инструментални софтуерни системи, които улесняват процеса на създаване на нови компютърни програми.

Системният софтуер осигурява работата и поддръжката на компютъра, както и автоматизацията на процеса на създаване на нови програми. Системният софтуер включва: операционни системи и техния потребителски интерфейс; софтуерни средства; системи за поддръжка.

Операционната система е задължителна част от специален софтуер, който осигурява ефективното функциониране на персонален компютър в различни режими, организирайки изпълнението на програмите и взаимодействието на потребителя и външните устройства с компютъра.

Потребителският интерфейс (сервизните програми) са софтуерни добавки към операционната система (обвивка и среда), предназначени да опростят комуникацията на потребителя с операционната система.

Програмите, които предоставят интерфейса, запазват формата на комуникация (диалог) между потребителя и операционната система, но променят езика на комуникация (обикновено командният език се преобразува в език на менюто). Сервизните системи могат да бъдат разделени на интерфейсни системи, обвивки на операционната система и помощни програми.

Интерфейсните системи са мощни сервизни системи, най-често от графичен тип, които подобряват не само потребителския, но и програмния интерфейс на операционните системи, по-специално прилагайки някои допълнителни процедури за разделяне на допълнителни ресурси.

Обвивките на операционната система предоставят на потребителя качествено нов интерфейс в сравнение с този, реализиран от операционната система, и правят познаването на последната незадължително.

Помощните програми автоматизират изпълнението на определени стандартни, често използвани процедури, чието изпълнение би изисквало от потребителя да разработи специални програми. Много помощни програми имат разработен интерактивен интерфейс с потребителя и доближават нивото на комуникация до черупките.

Софтуерните средства (системите за програмиране) са задължителна част от софтуера, с който се създават програми. Софтуерните инструменти включват инструменти за писане на програми (текстови редактори); средства за конвертиране на програми във форма, подходяща за изпълнение на компютър (асемблери, компилатори, интерпретатори, зареждащи устройства и редактори на връзки), средства за наблюдение и отстраняване на грешки в програми.

Текстовите редактори ви позволяват удобно да редактирате, формирате и комбинирате програмни текстове, а някои ви позволяват да контролирате синтаксиса на създадените програми.

Програма, написана на алгоритмичен език, трябва да бъде преобразувана в обектен модул, написан на машинен език (двоичен код). Такова преобразуване се извършва от транслатори (асемблер - от езика Assembler и компилатори - от езици от високо ниво). За някои алгоритмични езици се използват интерпретатори, които не създават обектен модул, а при всяко следващо изпълнение на програмата превеждат всеки неин отделен ред или израз на машинен език. Обектният модул се обработва от loader - редактор на връзки, който го преобразува в изпълнима машинна програма.

Инструментите за отстраняване на грешки ви позволяват да проследявате програми (изпълнение стъпка по стъпка с информация за резултатите от изпълнението), да проверявате синтаксиса на програмата и междинните резултати в точките на прекъсване и да променяте стойностите на променливите в тези точки.

Системите за поддръжка и обслужване са софтуерни средства за наблюдение, диагностика и възстановяване на функционалността на компютър, дискове и др.

Приложният софтуер предоставя решения на потребителски проблеми. Ключовата концепция тук е пакетът с приложения.

Пакетът от приложен софтуер е набор от програми за решаване на редица проблеми по конкретна тема или предмет. Разграничават се следните видове пакети с приложения:

1) общо предназначение - фокусирано върху автоматизирането на широк спектър от потребителски задачи (текстообработващи програми, редактори на електронни таблици, системи за управление на бази данни, графични процесори, системи за публикуване, системи за автоматизация на дизайна и др.);

2) ориентирани към метода - прилагане на различни икономически и математически методи за решаване на проблеми (математическо програмиране, мрежово планиране и управление, теория на масовото обслужване, математическа статистика и др.);

3) проблемно ориентирани - насочени към решаване на конкретна задача (проблем) в конкретна предметна област (банкови пакети, счетоводни пакети, финансов мениджмънт, правни справочни системи и др.).

Приложният софтуер включва обслужващ софтуер, който служи за организиране на удобна работна среда за потребителя, както и за изпълнение на спомагателни функции (информационни мениджъри, преводачи и др.).

При изграждането на класификация на софтуера трябва да се вземе предвид фактът, че бързото развитие на компютърните технологии и разширяването на обхвата на компютърните приложения рязко ускориха процеса на еволюция на софтуера. Ако по-рано беше лесно да се изброят основните категории софтуер - операционни системи, преводачи, приложни софтуерни пакети, сега ситуацията се промени коренно. Разработката на софтуер отиде както в дълбочина (появиха се нови подходи за изграждане на операционни системи, езици за програмиране и т.н.), така и в ширина (приложните програми престанаха да се прилагат и придобиха самостоятелна стойност). Съотношението между необходимите софтуерни продукти и предлаганите на пазара се променя много бързо. Дори класическите софтуерни продукти, като операционни системи, непрекъснато се развиват и са надарени с интелигентни функции, много от които преди са били свързани само с човешките интелектуални способности.

2. Инструментален софтуер

2.1 Същност и концепция на софтуерните средства

Инструменталният софтуер (IPO) е софтуер, предназначен за използване при проектиране, разработване и поддръжка на програми.

Инструментите се използват във фазата на разработка. Софтуерът за инструменти е набор от програми, използвани за подпомагане на програмистите в тяхната работа, за подпомагане на мениджърите по разработка на софтуер в усилията им да контролират процеса на разработка и получените продукти. Най-известните представители на тази част от софтуера са програмите-преводачи от езици за програмиране, които помагат на програмистите да пишат машинни команди. Инструменталните програми са преводачи от езиците Fortran, Cobol, Joe-vial, BASIC, APL и Pascal. Те улесняват процеса на създаване на нови работни програми. Езиковите преводачи обаче са само най-известната част от инструменталните програми; има много от тях.

Използването на компютри за създаване на нови програми далеч не е очевидно за хора, които не са професионални програмисти. Често се случва професионалистите да говорят едновременно за инструментален (фаза на разработка) и системен (фаза на използване) софтуер, като се предполага, че тези, които не са посветени в тайните на техния занаят, са наясно с тази роля на инструменталния софтуер. Точно както във фазата на използване (за приложни програми), системният софтуер също работи във фазата на разработка, но само във връзка с инструментите. Инструментален софтуер или системи за програмиране са системи за автоматизиране на разработването на нови програми на език за програмиране.

В най-общия случай, за да създадете програма на избрания език за програмиране (системен език за програмиране), трябва да имате следните компоненти:

1. Текстов редактор за създаване на файл с изходния текст на програмата.

2. Компилатор или интерпретатор. Изходният текст се превежда в междинен обектен код с помощта на програма за компилиране. Изходният код на голяма програма се състои от няколко модула (изходни файлове). Всеки модул се компилира в отделен файл с обектен код, който след това трябва да се комбинира в един.

3. Редактор на връзки или асемблер, който свързва обектни модули и произвежда работещо приложение като изход - изпълним код.

Изпълнимият код е пълна програма, която може да се изпълнява на всеки компютър, който има операционната система, за която е създадена програмата. По правило полученият файл има разширение .EXE или .COM.

Напоследък методите за визуално програмиране (използващи скриптови езици), насочени към създаване на Windows приложения, станаха широко разпространени. Този процес е автоматизиран в среди за бързо проектиране. В този случай се използват готови визуални компоненти, които се конфигурират с помощта на специални редактори.

Най-популярните редактори (системи за програмиране на програми, използващи визуални инструменти) за визуален дизайн:

1) Borland Delphi - предназначен за решаване на почти всеки проблем с приложното програмиране.

2) Borland C++ Builder е отличен инструмент за разработване на DOS и Windows приложения.

3) Microsoft Visual Basic е популярен инструмент за създаване на Windows програми.

4) Microsoft Visual C++ - този инструмент ви позволява да разработвате всякакви приложения, работещи в среда на ОС като Microsoft Windows

По този начин същността на инструменталния софтуер е да създаде всяка изпълнима програма чрез преобразуване на формални логически изрази в изпълним машинен код, както и нейното управление и настройка.

2.2 Задачи и функции на инструменталния софтуер

Инструменталният софтуер, като специален вид софтуер, се характеризира с общ и частен

функции, както за целия софтуер като цяло. Общите функции са разгледани по-горе, а специализираните функции, присъщи само на този тип програми са:

1. Създаване на текста на разработваната програма с помощта на специално установени кодови думи (език за програмиране), както и определен набор от знаци и тяхното местоположение в създадения файл - програмен синтаксис.

2. Превод на текста на създадената програма в машинно ориентиран код, достъпен за компютърно разпознаване. Ако обемът на създадената програма е значителен, тя се разделя на отделни модули и всеки от модулите се превежда отделно.

3. Свързване на отделни модули в единен изпълним код, съобразен с необходимата структура, осигуряваща координация на взаимодействието на отделните части помежду си.

4. Тестване и наблюдение на създадената програма, идентифициране и отстраняване на формални, логически и синтактични грешки, проверка на програмите за наличие на забранени кодове, както и оценка на производителността и потенциала на създадената програма.

2.3 Видове софтуерни инструменти

Въз основа на задачите, възложени на инструменталния софтуер, можем да различим голям брой различни видове инструментален софтуер:

1) Текстови редактори

2) Интегрирани среди за разработка

4) Компилатори

5) Преводачи

6) Линкери

7) Анализатори и генератори на анализатори (вижте Javacc)

8) Монтажници

9) Дебъгери

10) Профилисти

11) Генератори на документация

12) Инструменти за анализ на покритието на кода

13) Инструменти за непрекъсната интеграция

14) Инструменти за автоматизирано тестване

15) Системи за контрол на версиите и др.

Трябва да се отбележи, че черупките за създаване на приложни програми също се създават от инструментални програми и следователно могат да бъдат класифицирани като приложни програми. Нека разгледаме накратко целите на някои инструментални програми.

Текстови редактори.

Текстовият редактор е компютърна програма, предназначена да обработва текстови файлове, като например създаване и извършване на промени.

Видове текстови редактори.

Обикновено има два вида редактори: текстови редактори за поточно предаване и интерактивни.

Редакторите на поточен текст са компютърни програми, които са проектирани да обработват автоматично входни текстови данни, получени от текстов файл в съответствие с правила, предварително зададени от потребителите. Най-често правилата са регулярни изрази, на диалект, специфичен за даден текстов редактор. Пример за такъв текстов редактор е редакторът Sed.

Интерактивните текстови редактори са семейство от компютърни програми, предназначени да правят промени в текстов файл интерактивно. Такива програми ви позволяват да показвате текущото състояние на текстови данни във файл и да извършвате различни действия върху него.

Често интерактивните текстови редактори съдържат значителни допълнителни функции, предназначени да автоматизират част от действията за редактиране или да променят показването на текстови данни в зависимост от тяхната семантика. Пример за последния тип функционалност е осветяването на синтаксиса.

Текстовите редактори са предназначени за създаване и редактиране на текстови документи. Най-често срещаните са MS WORD, Lexicon. Основните функции на текстовите редактори са:

1) работа с фрагменти от документи,

2) вмъкване на обекти, създадени в други програми

3) разбиване на текста на документа на страници

4) въвеждане и редактиране на таблици

5) въвеждане и редактиране на формули

6) форматиране на абзац

7) автоматично създаване на списъци

8) автоматично създаване на съдържание.

Известни са десетки текстови редактори. Най-достъпни са NOTEPAD (бележник), WORDPAD, WORD. Работата на конкретен текстов редактор обикновено се определя от функции, чиято цел е отразена в елементите на менюто и в системата за помощ.

Интегрирана среда за разработка

Интегрирана среда за разработка, ISD, е софтуерна система, използвана от програмисти за разработване на софтуер. Обикновено средата за разработка включва:

1) текстов редактор

2) компилатор и/или интерпретатор

3) инструменти за автоматизация на монтажа

4) дебъгер.

Понякога съдържа и инструменти за интегриране със системи за контрол на версиите и различни инструменти за опростяване на дизайна на графичен потребителски интерфейс. Много съвременни среди за разработка също включват браузър на класове, инспектор на обекти и йерархична диаграма на класове за използване при разработка на обектно-ориентиран софтуер. Въпреки че има среди за разработка, предназначени за няколко езика за програмиране - като Eclipse, NetBeans, Embarcadero RAD Studio, Qt Creator или Microsoft Visual Studio, обикновено средата за разработка е предназначена за един специфичен език за програмиране - като Visual Basic, Delphi, Dev -C++.

Специален случай на ISR е среда за визуална разработка, която включва възможност за визуално редактиране на програмния интерфейс.

SDK.

SDK (от английски SoftwareDevelopmentKit) или „devkit“ е комплект за разработка, който позволява на софтуерните специалисти да създават приложения за конкретен софтуерен пакет, основен софтуер за разработка, хардуерна платформа, компютърна система, конзоли за видеоигри, операционни системи и други платформи.

Програмистът, като правило, получава SDK директно от разработчика на целевата технология или система. Често SDK се разпространява по интернет. Много SDK се разпространяват безплатно, за да насърчат разработчиците да използват дадена технология или платформа.

Доставчиците на SDK понякога заменят термина Софтуер в комплекта за разработка на софтуер с по-точна дума. Например Microsoft и Apple предоставят комплекти за разработка на драйвери (DDK) за разработване на драйвери на устройства, а PalmSource нарича своя набор от инструменти за разработка PalmOS Development Kit (PDK).

Примери за SDK :

5) Комплект за разработка на Java

6) Opera Devices SDK

Компилатори.

компилатор -

1) Програма или технически инструмент, който извършва компилация.

2) Машинната програма, използвана за компилация.

3) Преводач, който преобразува програма, написана на изходния език, в обектен модул.

4) Програма, която превежда програмен текст на език от високо ниво в еквивалентна програма на машинен език.

5) Програма, предназначена да превежда език от високо ниво в абсолютен код или понякога в асемблер. Входната информация за компилатора (изходен код) е описание на алгоритъма или програмата на проблемно-ориентиран език, а изходът на компилатора е еквивалентно описание на алгоритъма на машинно-ориентиран език (обектен код).

компилация -

1) Превод на програма на език, близък до машинния.

2) Превод на програма, написана на изходния език, в обектен модул. Извършва се от компилатора.

Компилиране - превеждане на машинна програма от проблемно-ориентиран език на машинно-ориентиран език.

Видове компилатори :

1) Векторизиране. Превежда изходния код в машинен код на компютри, оборудвани с векторен процесор.

2) Гъвкав. Модулен, управляван от таблици и програмиран на език от високо ниво или реализиран с помощта на компилатор на компилатори.

3) Диалог.

4) Инкрементален. Препредава програмни фрагменти и допълнения към нея без прекомпилиране на цялата програма.

5) Тълкувателен (стъпка по стъпка). Последователно извършва независима компилация на всеки отделен оператор (команда) на изходната програма.

6) Компилатор на компилатори. Преводач, който приема формално описание на език за програмиране и генерира компилатор за този език.

7) Отстраняване на грешки. Елиминира някои видове синтактични грешки.

8) Жител. Живее постоянно в основната памет и е достъпен за повторно използване от много задачи.

9) Самокомпилиране. Написано на същия език, от който се извършва предаването.

10) Универсален. Въз основа на формално описание на синтаксиса и семантиката на входния език. Компонентите на такъв компилатор са: ядро, синтактични и семантични зареждащи устройства.

Видове компилация :

1) Партида. Компилиране на множество изходни модули в един задание.

2) Ред по ред.

3) Условно. Компилация, при която преведеният текст зависи от условията, посочени в изходната програма. Така, в зависимост от стойността на определена константа, можете да включите или изключите превода на част от програмния текст.

Структура на компилатора.

Процесът на компилиране се състои от следните стъпки:

1) Лексикален анализ. На този етап последователността от символи в изходния файл се преобразува в последователност от токени.

2) Синтактичен (граматичен) анализ. Последователността от токени се преобразува в дърво за анализ.

3) Семантичен анализ. Дървото за разбор се обработва, за да се установи неговата семантика (смисъл) - например свързване на идентификатори към техните декларации, типове, проверка на съвместимостта, определяне на типове изрази и т.н. Резултатът обикновено се нарича "междинно представяне/код" и може да бъде разширен с дървото за разбор, ново дърво, абстрактен набор от команди или нещо друго, удобно за по-нататъшна обработка.

4) Оптимизация. Премахване на ненужни структури и опростяване на кода при запазване на смисъла му. Оптимизацията може да бъде на различни нива и етапи – например върху междинен код или върху краен машинен код.

5) Генериране на код. От междинното представяне се генерира код на целевия език.

В конкретни реализации на компилатор тези етапи могат да бъдат разделени или комбинирани в една или друга форма.

Излъчване и постпродукция.

Важна историческа особеност на компилатора, отразена в името му (на английски: compile - събирам, съставям), е, че той може да извършва и свързване (т.е. съдържа две части - транслатор и линкер). Това се дължи на факта, че отделната компилация и свързването като отделен етап на сглобяване се появи много по-късно от появата на компилаторите. В тази връзка, вместо термина „компилатор“, терминът „преводач“ понякога се използва като синоним: или в старата литература, или когато искат да подчертаят способността му да превежда програма в машинен код (и обратното, терминът „компилатор“ се използва, за да подчертае способността за компилиране от много файлове един).

Преводачи.

Преводач (език за програмиране) -

1) Програма или технически инструмент, който извършва тълкуването.

2) Тип транслатор, който извършва обработка оператор по оператор (команда по команда) и изпълнение на изходната програма или заявка (за разлика от компилатор, който превежда цялата програма, без да я изпълнява).

3) Програма (понякога хардуерна), която анализира команди или програмни изрази и незабавно ги изпълнява.

4) Езиков процесор, който анализира изходната програма ред по ред и едновременно изпълнява предписаните действия, вместо да генерира компилирана програма на машинен език, която впоследствие се изпълнява.

Видове преводачи.

Един прост интерпретатор анализира и незабавно изпълнява (действителната интерпретация) програмата команда по команда (или ред по ред), тъй като нейният изходен код пристига на входа на интерпретатора. Предимството на този подход е моменталната реакция. Недостатъкът е, че такъв интерпретатор открива грешки в програмния текст само когато се направи опит за изпълнение на команда (или ред) с грешка.

Интерпретатор от тип компилатор е система, състояща се от компилатор, който превежда изходния код на програма в междинно представяне, например в байткод или p-код, и самия интерпретатор, който изпълнява получения междинен код (т. наречена виртуална машина). Предимството на такива системи е по-голямата скорост на изпълнение на програмата (поради премахването на анализа на изходния код в отделен, еднократен проход и минимизирането на този анализ в интерпретатора). Недостатъците са по-голямо изискване за ресурси и изискване за коректност на изходния код. Използва се в езици като Java, PHP, Python, Perl (използва се байт код), REXX (резултатът от анализа на изходния код се запазва), както и в различни СУБД (използва се p-код).

Ако интерпретаторът на тип компилатор е разделен на компоненти, резултатът е езиков компилатор и прост интерпретатор с минимален анализ на изходния код. Освен това изходният код за такъв интерпретатор не трябва да бъде в текстов формат или да бъде байт код, който само този интерпретатор разбира; той може да бъде машинен код на някаква съществуваща хардуерна платформа. Например виртуални машини като QEMU, Bochs, VMware включват интерпретатори на машинен код за процесори от семейството x86.

Някои интерпретатори (например за езиците Lisp, Scheme, Python, BASIC и други) могат да работят в диалогов режим или така наречения read-eval-printloop (REPL). В този режим интерпретаторът чете пълна езикова конструкция (например s-израз в Lisp), изпълнява я, отпечатва резултатите и след това продължава да чака потребителят да въведе следващата конструкция.

Уникален е езикът Forth, който може да работи както в режим на интерпретация, така и в режим на компилация на входни данни, което ви позволява да превключвате между тези режими по всяко време, както по време на превод на изходния код, така и докато програмите се изпълняват.

Трябва също да се отбележи, че режимите на интерпретация могат да бъдат намерени не само в софтуера, но и в хардуера. По този начин много микропроцесори интерпретират машинния код с помощта на вграден фърмуер, а процесорите от семейството x86, започвайки с Pentium (например на архитектурата Intel P6), по време на изпълнението на машинния код го превеждат предварително във вътрешен формат (в последователност от микрооперации).

Алгоритъм за прост интерпретатор :

2. анализира инструкциите и определя подходящите действия;

3. предприема подходящи действия;

4. Ако условието за прекратяване на програмата не е достигнато, прочетете следните инструкции и преминете към стъпка 2.

Предимства и недостатъци на преводачите.

1) По-голяма преносимост на интерпретираните програми - програмата ще работи на всяка платформа, която има подходящ интерпретатор.

2) Като правило, по-модерни и визуални средства за диагностициране на грешки в изходните кодове.

3) Опростяване на отстраняването на грешки в програмните изходни кодове.

4) По-малки размери на кода в сравнение с машинния код, получен от конвенционалните компилатори.

1) Интерпретираната програма не може да бъде изпълнена отделно без програма за интерпретатор. Самият преводач може да бъде много компактен.

2) Интерпретираната програма работи по-бавно, тъй като междинният анализ на изходния код и планирането на неговото изпълнение изисква допълнително време в сравнение с директното изпълнение на машинния код, в който изходният код може да бъде компилиран.

3) Практически няма оптимизация на кода, което води до допълнителни загуби в скоростта на интерпретираните програми.

Линкер.

Linker (също редактор на връзки, linker) - програма, която извършва свързване - приема един или повече обектни модули като вход и сглобява изпълним модул от тях.

За да свърже модули, линкерът използва таблици с имена, създадени от компилатора във всеки от обектните модули. Такива имена могат да бъдат два вида:

1) Дефинирани или експортирани имена - функции и променливи, дефинирани в даден модул и предоставени за използване от други модули.

2) Недефинирани или импортирани имена - функции и променливи, към които модулът препраща, но не ги дефинира вътрешно.

Задачата на линкера е да разреши препратки към недефинирани имена във всеки модул. За всяко импортирано име неговата дефиниция се намира в други модули; споменаването на името се заменя с неговия адрес.

Линкерът обикновено не проверява типовете и броя на параметрите на процедурите и функциите. Ако трябва да комбинирате обектни модули на програми, написани на езици със силно писане, тогава необходимите проверки трябва да бъдат извършени от допълнителна помощна програма, преди да стартирате редактора на връзки.

Асемблер.

Асемблер (от английски assembler - асемблер) е компютърна програма, компилатор на изходния текст на програма, написана на асемблер, в програма на машинен език.

Подобно на самия (асемблиращ) език, асемблерите обикновено са специфични за определена архитектура, операционна система и вариант на езиков синтаксис. В същото време има многоплатформени или дори универсални (по-точно ограничено-универсални, тъй като е невъзможно да се пишат хардуерно независими програми на език от ниско ниво) асемблери, които могат да работят на различни платформи и операционни системи. Сред последните може да се разграничи група от кръстосани асемблери, способни да събират машинен код и изпълними модули (файлове) за други архитектури и операционни системи.

Сглобяването може да не е първата или последната стъпка по пътя към получаване на изпълним програмен модул. По този начин много компилатори от езици за програмиране на високо ниво произвеждат резултата под формата на програма на асемблер, която допълнително се обработва от асемблера. Освен това резултатът от асемблирането може да не е изпълним файл, а обектен модул, съдържащ различни и несвързани части от машинен код и програмни данни, от които (или от няколко обектни модула) по-късно могат да бъдат асемблирани с помощта на програма за свързване („линкер“) изпълним файл.

Дебъгерът или дебъгерът е модул на среда за разработка или отделно приложение, предназначено да намира грешки в програма. Дебъгерът ви позволява да извършвате проследяване стъпка по стъпка, да наблюдавате, да задавате или променяте стойности на променливи по време на изпълнение на програмата, да задавате и премахвате точки на прекъсване или условия за спиране и т.н.

Списък на програмите за отстраняване на грешки.

1) AQtime е комерсиален дебъгер за приложения, създадени за .NET Framework версии 1.0, 1.1, 2.0, 3.0, 3.5 (включително ASP.NET приложения), както и за 32- и 64-битови приложения на Windows.

2) DTrace - рамка за динамично проследяване за Solaris, OpenSolaris, FreeBSD, Mac OS X и QNX.

3) Electric Fence - дебъгер на паметта.

4) GNU Debugger (GDB) - програмен дебъгер от проекта GNU.

5) IDA е мощен дизасемблер и дебъгер на ниско ниво за операционни системи Windows и Linux.

6) Microsoft Visual Studio - среда за разработка на софтуер, която включва инструменти за отстраняване на грешки от Microsoft.

7) OllyDbg е безплатен дебъгер на ниско ниво за операционни системи Windows.

8) SoftICE е дебъгер на ниско ниво за операционни системи от семейството на Windows.

9) Sun Studio - среда за разработка на софтуер, включително dbx дебъгер за Solaris и Linux OS, от Sun Microsystems Corporation.

10) д-р Watson е стандартен инструмент за отстраняване на грешки в Windows, който ви позволява да създавате дъмпове на паметта.

11) TotalView е един от търговските дебъгери за UNIX.

12) WinDbg е безплатен дебъгер от Microsoft.

Генераторът на документация е програма или софтуерен пакет, който ви позволява да получите документация, предназначена за програмисти (API документация) и/или за крайни потребители на системата, за специално коментиран изходен код и в някои случаи за изпълними модули (получени на изхода на компилатора).

Обикновено генераторът анализира изходния код на програмата, подчертавайки синтактични структури, съответстващи на значими програмни обекти (типове, класове и техните членове/свойства/методи, процедури/функции и т.н.). Анализът също така използва метаинформация за програмни обекти, представена под формата на документиращи коментари. На базата на цялата събрана информация се генерира готова документация, обикновено в един от общоприетите формати – HTML, HTMLHelp, PDF, RTF и други.

Документиране на коментари.

Коментарът за документиране е специално форматиран коментар върху програмен обект, предназначен за използване от конкретен генератор на документация. Синтаксисът на конструкциите, използвани при документиране на коментари, зависи от това кой генератор на документация се използва.

Документиращите коментари могат да съдържат информация за автора на кода, да описват предназначението на програмния обект, значението на входните и изходните параметри за функция/процедура, примери за употреба, възможни изключения и характеристики на изпълнение.

Коментарите за документиране обикновено се форматират като многоредови коментари в стил C. Във всеки случай коментарът трябва да се появи преди документирания елемент. Първият знак в коментар (и в началото на редовете за коментар) трябва да бъде *. Блоковете са разделени с празни редове.

3. Visual Basic за приложения

софтуерна операционна система

3.1 Същността на VisualBasic и неговата кратка история

Microsoft Visual Basic (VB) е инструмент за разработка на софтуер, разработен от Microsoft Corporation, който включва език за програмиране и среда за разработка. Езикът Visual Basic е наследил духа, стила и отчасти синтаксиса на своя прародител - езика BASIC, който има много диалекти. В същото време Visual Basic съчетава процедурите и елементите на обектно-ориентираните и компонентно-ориентираните езици за програмиране. Средата за разработка на VB включва инструменти за визуално проектиране на потребителски интерфейси. (виж таблицата).

Visual Basic (ключови функции)

Visual Basic се счита за добър инструмент за бързо разработване на прототипи на програми, за разработване на приложения за бази данни и като цяло за базиран на компоненти метод за създаване на програми, работещи под операционни системи от семейството на Microsoft Windows.

В процеса на еволюция Visual Basic премина през редица последователни етапи, които му позволиха да се превърне в един от най-популярните езици за програмиране днес. Така че еволюцията VisualBasic върви по следния начин:

1. Май 1991 г. - Visual Basic 1.0 беше пуснат за Microsoft Windows. Синтаксисът на QBasic беше взет за основа на езика, а иновацията, която по-късно донесе огромна популярност на езика, беше принципът на връзката между езика и графичния интерфейс.

2. Септември 1992 г. - Пуснат е Visual Basic 1.0 за DOS. Той не беше напълно съвместим с Windows версията на VB, тъй като беше последваща версия на QuickBASIC и работеше в режим на базиран на текст екран.

3. Ноември 1992 г. - Пуснат Visual Basic 2.0. Средата за разработка стана по-лесна за използване и по-бърза.

4. през лятото на 1993 г. - Visual Basic 3.0 беше пуснат във версии Standard и Professional. Освен това към пакета е добавен двигател за работа с бази данни на Access.

5. Август 1995 г. - Visual Basic 4.0 - версия, която може да създава както 32, така и 16-битови Windows програми.

6. Февруари 1997 г. - Visual Basic 5.0 - започвайки с тази версия, стана възможно, наред с обикновените приложения, да се разработват COM компоненти.

7. В средата на 1998 г. беше пуснат Visual Basic 6.0. След това Microsoft драматично промени политиката си по отношение на основните езици. Вместо да се разработва Visual Basic, беше създаден напълно нов език, Visual Basic .NET.

8. През 2005 г. беше пусната нова версия на Visual Basic, в комплект с Visual Studio. Тя беше доволна от новия интерфейс и възможности. Езикът е базиран на Visual Basic.NET.

9. В края на 2007 г. Microsoft пусна нова версия на Visual Basic - Visual Basic 2008, която също беше базирана на Visual Basic.NET.

Въз основа на функционалността и спецификата на приложението могат да се разграничат следните видове тази програма:

1. Класически Visual Basic (версии 5-6) Този език е много силно обвързан със своята среда за разработка и с операционната система Windows, като е изключително инструмент за писане на Windows приложения

2. VisualBasicforApplications (VBA) Това е инструмент за програмиране, който практически не се различава от класическия Visual Basic, който е предназначен за писане на макроси и други приложни програми за специфични приложения. Той придоби най-голяма популярност благодарение на използването си в пакета Microsoft Office. Широкото използване на Visual Basic за приложения, съчетано с първоначалната липса на внимание към проблемите на сигурността, доведе до широкото използване на макро вируси.

3. VisualBasicScriptingEdition (VBScript) Скриптов език, който е донякъде съкратена версия на обичайния Visual Basic. Използва се предимно за автоматизиране на администрирането на Windows системи, както и за създаване на ASP страници и скриптове за Internet Explorer.

3.2 Интерфейс на VisualBasicforApplication, основни функции и възможности

Създавайки VisualBasicforApplication, Microsoft Corporation си поставя като основна цел създаването на инструменти, достъпни за потребители, които не са професионални програмисти, но в същото време са достатъчно квалифицирани да разработват и проектират приложни програми и приложения, базирани на Microsoft Office. За да решат този проблем, разработчиците създадоха VBA, като го дариха с редица уникални функции. Един от тях, най-ценният за потребителя, е възможността за създаване и използване на нестандартни (персонализирани) диалогови прозорци в програми чрез добавяне на обект UserForm към проекта, както и удобен потребителски интерфейс.

Програмният интерфейс VisualBasicforApplication се състои от набор от различни прозорци и раздели, използвани при проектирането на създаденото приложение, основните от които са:

1) Прозорец на проекта (фиг. 2), показващ структурата на създадения проект.

2) прозорецът на програмния код (фиг. 3), показващ програмния код на създадения проект и позволяващ да напишете програма по класическия начин с помощта на вградения редактор на кодови думи, от които има повече от 16 хиляди в VBA. Този прозорец също ви позволява да редактирате кода и да го проверявате за грешки.

3) раздел Свойства (фиг. 4), показващ зададените параметри за посочения обект и позволяващ промяна на зададените настройки.

Чрез преместване между прозорци и раздели, потребителят може лесно да персонализира създадения проект.

Използвайки формуляри, създадени от потребители на VBA, можете да създавате персонализирани диалогови прозорци за показване на данни или получаване на стойности от потребителя на програмата по начин, който най-добре отговаря на нуждите на програмата. Например, можете да създадете тест, да покажете диалогов прозорец за показване на въпроси с няколко отговора и да позволите на потребителя да избере една от опциите за отговор, които смятат за правилни.

Нестандартните диалогови прозорци позволяват на програмата да взаимодейства с потребителя по най-сложния начин и предоставят разнообразна форма на въвеждане и извеждане на данни.

Персонализиран диалогов прозорец се създава във VBA чрез добавяне на обект UserForm към проекта. Този обект представлява празен диалогов прозорец; има заглавна лента и бутон за затваряне, но му липсват други контроли. Персонализиран диалогов прозорец се създава чрез добавяне на контроли към обект UserForm и обикновено се нарича просто формуляр (Фигура 5).

Всеки обект UserForm има свойства, методи и събития, които наследява от обектния клас UserForm.

Всеки обект на UserForm също съдържа модул от клас, в който потребителят добавя свои собствени методи и свойства или пише процедури за обработка на събития за даден формуляр.

Възможността да създадете свой собствен интерфейс, независим от средата на приложението, като например Excel, с помощта на формуляри за показване е една от най-ценните функции на VBA.

Екранните форми са прозорци с различни цели и видове, създадени от потребителя за неговото приложение. Те съдържат контроли, които позволяват на потребителя да обменя информация с приложението.

VBA използва създадения графичен дизайн на формуляра - с настройки за свойствата на формуляра и контролите - за получаване на цялата информация, необходима за показване на диалоговия прозорец: размерите на диалоговия прозорец, контролите в него и др. В резултат на това VBA ви позволява да показвате форма на диалогов прозорец с един оператор.

За да покажете персонализиран диалогов прозорец, използвайте метода Show на обекта UserForm. Ако формулярът в момента не е зареден в паметта, методът Show зарежда формуляра и го показва. Ако формулярът вече е зареден, методът Show просто го показва.

Показването на един диалогов прозорец обикновено не е достатъчно за изпълнение на задача. Почти винаги искате да определите състоянието на контролите на диалоговия прозорец, за да разберете какви данни или опции е избрал потребителят. Например, ако диалогов прозорец се използва за получаване на информация от потребителя за това по кои колони и редове трябва да се сортира работният лист, трябва да можете да разберете какви стойности е въвел потребителят след затварянето на диалоговия прозорец и преди операцията по поръчка всъщност започва.

В други случаи може да искате да промените динамично заглавията на бутоните (или други контроли) в диалогов прозорец, динамично да актуализирате етикет или поле, свързано с брояч, или динамично да потвърдите данните, въведени в диалогов прозорец.

Във VBA става възможно значително разширяване на набора от функции, вградени в стандартно приложение, като Microsoft Excel, както и създаване на функции, чиито стойности зависят от определени условия и събития.

VBA ви позволява да програмирате таблични функции. За да създадете отделен работен лист за програмен модул, използвайте раздела Вмъкване на модул от менюто Визуално и командата Модули от менюто Вмъкване на макрос. След това ще се появи нов работен лист "Modele1". В програмен модул трябва да опишете функция във VBA. Можете да работите в прозореца на програмния модул, сякаш сте в малък прозорец на текстов редактор.

Вграждането на функции се извършва от командата Object Browser от меню View. Дефинираните от потребителя функции се третират като независими обекти в програмата. VBA има значителен набор от вградени функции, разделяйки ги на типове.

Visual Basic ви позволява да резервирате променливи, със или без размер, да работите с различни типове данни, да използвате константи, да работите с математически оператори и функции и да използвате допълнителни оператори. Предвидено е използването на оператори за цикъл For Next, Do и обекти от типа „таймер“ (невидим хронометър в програмата). Точността на настройка на времето в програмата е 1 милисекунда, или 1/1000 сек. Стартираният таймер работи постоянно - т.е. съответната процедура за обработка на прекъсване се изпълнява на определен интервал от време - докато потребителят спре таймера или забрани програмата.

Във VBA можете да зададете всяко свойство за формуляр, включително заглавие, размер, тип рамка, цветове на фона и знаците, шрифт на текста и фоново изображение.

Ако обобщим всички функции на програмата, тогава Visual Basic forApplication ви позволява да:

1) работа с контроли

Предимства :

1. Висока скорост на създаване на приложения с графичен интерфейс за MS Windows.

2. Прост синтаксис, който ви позволява да овладеете езика много бързо.

3. Възможност за компилация както в машинен код, така и в P-код (по избор на програмиста). В режим на отстраняване на грешки програмата винаги (независимо от избора) се компилира в P код, което ви позволява да поставите програмата на пауза, да направите значителни промени в изходния код и след това да продължите изпълнението без необходимост от пълно повторно компилиране и рестартиране на програмата. .

4. Защита срещу грешки, свързани с използването на указатели и достъп до паметта. Този аспект прави приложенията на Visual Basic по-стабилни, но също така е обект на критика.

5. Възможност за използване на повечето WinAPI функции за разширяване на функционалността на приложението. Този проблем е проучен най-пълно от Дан Епълман, който написа книгата „Ръководство на програмиста на Visual Basic за Win32 API“.

Критика :

1. Аспекти на Visual Basic често са критикувани, като възможността да се деактивира проследяването на декларирани променливи, възможността за имплицитно конвертиране на променливи и наличието на типа данни „Variant“. Според критиците това прави възможно писането на изключително лош код. От друга страна, това може да се счита за плюс, тъй като VB не налага „добър стил“, а дава повече свобода на програмиста.

2. Липса на указатели, достъп до паметта на ниско ниво, ASM вмъквания. Въпреки факта, че парадигмата на Visual Basic позволява на обикновения VB програмист да се справи без всичко това, тези неща често стават обект на критика. И въпреки че, използвайки недокументирани функции и определени трикове, всичко това може да бъде реализирано във VB (например, използвайки функции за получаване на указатели VarPtr(), StrPtr() и ObjPtr()); Използването на тези трикове е много по-трудно, отколкото например в C++.

Все пак си струва да се отбележи, че всички недостатъци на езика произтичат от основното му предимство - лекотата на разработване на графичен интерфейс. Поради това много програмисти използват Visual Basic, за да разработят потребителския интерфейс и да внедрят функционалността на програмата под формата на библиотеки с динамични връзки (DLL), написани на друг език (най-често C++).

4. Практическа част

4.1 Постановка на проблема

Начертайте блокова схема и напишете програма на Pascal. Изчислете присъщата стойност на ценните книжа. Вътрешната стойност на даден актив се определя от бъдещия поток от приходи от този актив.

pv – текущата присъща стойност на акцията

c – очаквана печалба от въпросния актив

r – нормата на възвръщаемост, очаквана от инвеститора за доход със съответното ниво на риск

n – фактор време (в месеци).

Извършете анализ на пазара и сортирайте резултатите във възходящ ред на получените данни.

4.2 Програмен текст на език Паскал

pv: масив от реални;

writeLn('Въведете очаквано получаване от ',i,'th актив c:');

writeLn('Въведете нормата на възвръщаемост, очаквана от инвеститора r:');

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

writeLn('текущата присъща стойност на актива е', pv[i]:1:3);

writeLn('Присъщата стойност на актива е', s);

за j:=1 до 4 направете

ако pv[j] > pv тогава

writeLn('Стойност на актива, сортирана във възходящ ред');

за i:=1 до 5 направи

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

4.3 Тестов случай

4.4 Резултат от изпълнението на програмата върху тестов пример

Заключение

И така, обобщавайки всичко по-горе, трябва да се отбележи, че инструменталният софтуер е един от видовете софтуер, който има своите общи задачи и функции.

Въпреки това, тъй като е високоспециализиран тип софтуер, той има определен набор от уникални свойства и функции, които предоставят решения на неговите специфични проблеми.

Необходимо е да се отбележи очертаващата се тенденция към опростяване на процеса на програмиране и създаване на определен подклас - полупрофесионално програмиране за приложни цели.

Това е, което ще позволи на опитен компютърен потребител, но не и на професионален програмист, да създава определени приложения и малки файлове, изпълними в средата на Microsoft Office, използвани предимно за счетоводни цели и документооборот в малки компании.

Именно за тази цел Microsoft разработи софтуерния пакет VisualBasicforApplication, който опростява процеса на програмиране и дава възможност на потребителите, а не на програмистите, да се занимават с програмиране на приложения. Тази функция беше реализирана основно чрез създаване на програмна секция - „Редактор на скриптове“ и възможност за записване и изпълнение на „Макроси“ като отделен тип графично програмируеми модули. Реализирана е възможност за създаване на приложения с графичен интерфейс за MS Windows. Друго предимство на този тип инструментален софтуер е неговият прост синтаксис, който ви позволява бързо да овладеете езика и да го използвате за програмиране във всички стандартни приложения на Microsoft Office.

Следователно е трудно да се надцени значението на инструментите като цяло и по-специално на VisualBasicforApplication, въпреки че недостатъците, както беше споменато по-горе, също съществуват. Но това по-скоро дори не са отрицателни аспекти на продукта, а по-скоро насоки за по-нататъшно подобряване на софтуера под формата на VisualBasicforApplication.

1. Алгоритмични езици в реално време / Ed. Янга С. / 2004г

2. PC Magazine Руско издание № 2 2008 г Компютър днес.

3. Информатика. /Ред. Могилев А.В., Пак Н.И., Хенър Е.К./ - М.: ACADEMIA, 2000.

4. Компютърни науки и информационни технологии: Учебник / Изд. Романова Д.Ю. / Издателска къща Ексмо ООД, 2007 г.

5. Най-новата енциклопедия на персоналния компютър / Изд. Леонтьева В. /Москва, 1999г. – 271 стр.

6. Нови езици за програмиране и тенденции в тяхното развитие / Ed. Ушкова В. / 2001г

7. Педагогика / Изд. Pidkasistogo P.I./ – М.: Педагогическо дружество Русия, 2000.

8. Програмиране за Microsoft Excel 2000 за 21 дни. /Ред. Хариса М./ – М.: Уилямс, 2000.

9. Симонович С. Информатика: основен курс. Учебник за университети. Санкт Петербург, Питър, 2002 г

10. Няма проблем с Excel 2000. /Ред. Ковалски/ – М.: Бином, 2000.

11. „Ефективна работа в Windows 98“ / Ed. Стинсън К. / 2000. – 247 стр.

12. Езици за програмиране. книга 5 /Изд. Ваулина А.С. / 2003 г

13. Езици за програмиране: развитие и внедряване / Ed. Терънс П. / 2001 г

14. Електронен учебник по информатика. Алексеев Е.Г. http://www.stf.mrsu.ru/economic/lib/Informatics/text/Progr.html\

Технологията за програмиране като цяло и инструментите за поддръжка на разработка на софтуер в частност се развиват толкова бързо, че дори простото изброяване на основните системи от инструменти би заело твърде много място в тази книга. Ето защо по-долу ще се спрем накратко само на няколко проекта в областта на технологиите за програмиране, които са интересни в контекста на тази публикация.

Всяка разработена технологична система трябва да поддържа всички основни етапи на създаване на проектирания софтуерен комплекс. За постигане на тази цел в цялостна структура типична система за подпомагане на технологичното развитие(фиг. 6.3) обикновено са изолирани база данни за проекти; подсистема за автоматизация на проектиране и програмиране; подсистеми за отстраняване на грешки, документиране и поддръжка,А също и подсистема за управление на напредъка на проекта.


Ориз. 6.3.Обща структура на типична система за подпомагане на технологичното развитие

Разработените системи за подпомагане на разработката на библиотеки в момента се използват по целия свят във всички сериозни софтуерни проекти. Но в по-голямата част от случаите такива системи са достигнали нивото на лекота на използване за квалифицирани програмисти. Ние се интересуваме предимно от системи и проекти, които са склонни да представят изрично технологично знание, дори и да не се основават на идеи и методи на AI.

Един от тези проекти, Gandalf, е фокусиран върху автоматизираното генериране на системи за разработка на софтуер. Изследванията, проведени в рамките на проекта Gandalf, засягат три аспекта на поддръжката на софтуерния дизайн: управление на проекти, контрол на версиите и инкрементално програмиране, както и тяхното интегриране в единна среда. Управлението в средата Gandalf се основава на предположението, че разработваният проект трябва да се третира като набор от абстрактни типове данни, върху които могат да се извършват само определени операции. Инструментът, който прилага тази концепция, беше системата SDC (Software Development Control), която представлява набор от програми, първоначално внедрени на езика Shell в системата UNIX, а по-късно преведени на езика C.

Изследванията в областта на контрола на версиите са започнати от L. Kooprider на базата на проекта FAFOS, където първоначално са анализирани възможностите за създаване на семейство операционни системи. Разработена е нотация за описание на взаимодействието между подсистемите, за описание на различни версии на подсистеми (изходен и обектен код, документация и т.н.) и за описание на механизмите, работещи на етапа на разработка (компилация, редактиране на връзки и т.н.). Тогава беше създаден специален език Intercol като средство за описание на връзката и версиите на модулите в системата. И накрая, знанието как да се изгради система от части беше вградено в системата, без да се налага потребителят да го прави. Като продължение на тази работа, SUCE беше създаден, за да проследи разликите между имплементации (версии, които действително предоставят код за набор от спецификации) и композиции (версии, които дефинират нови подсистеми като групи от съществуващи подсистеми).



В системата LOIPE (Language-Oriented Incremental Programming Environment) инкременталната компилация се извършва на ниво индивидуална процедура. Предимството на този подход е, че когато една процедура се коригира на ниво локални обекти или типове, само тази процедура се компилира повторно. Ако спецификацията се промени, всички процедури, които зависят от нея, се компилират отново. Потребителският интерфейс със системата LOIPE се базира на синтактично ориентираната подсистема за редактиране ALOE (A Language-Oriented Editor). Целта на разработването на тази подсистема беше да се проучи възможността за създаване и използване на синтактично ориентирани редактори като основа за среди за програмиране.

Анализът на литературата от последните години за технологията на програмиране показва, че нов клон в технологията на индустриалното развитие и внедряването на сложни и значими софтуерни системи е CASE технология(Компютърно подпомагано софтуерно инженерство).

Първоначално технологията CASE се появява в проекти за създаване на индустриални системи за обработка на данни. Това обстоятелство остави отпечатък върху технологичните инструменти на CASE, където най-сериозно внимание беше обърнато, поне в ранните CASE системи, на поддръжката на дизайна на информационните потоци. Понастоящем има изместване от фокуса върху системите за обработка на данни и технологичните инструменти на CASE стават все по-гъвкави.

Всички инструменти за поддръжка на технологията CASE са разделени на две големи групи: CASE-инструментиИ CASE-Работни маси.Няма добри руски еквиваленти за тези термини. Първите обаче често се наричат ​​„сандъци с инструменти“ (пакети за разработчици, технологични пакети), а вторите са „машини за производство на софтуер“ (производствени линии).

А-приори CASE-инструментариум -колекция от интегрирани софтуерни инструменти, които осигуряват автоматична помощ при решаване на проблеми от същия тип в процеса на създаване на програми.

Такива пакети използват общо „хранилище“ за цялата техническа и управленска информация за проекта (хранилище), оборудвани са с общ потребителски интерфейс и унифициран интерфейс между отделните инструменти на пакета. Обикновено CASE-Toolkit се съсредоточава около подкрепата за разработването на една фаза от производството на програма или един тип проблем на приложението.

Всичко по-горе е вярно и за CASE-WorkBench. Но тук освен това се предоставя автоматизирана поддръжка за анализ на решаваните задачи за производство на софтуер, който се основава на общи предположения за процеса и технологията на такива дейности; Поддържа се автоматично прехвърляне на резултатите от работата от един етап на друг, започвайки от етапа на проектиране и завършвайки с изхвърлянето на създадения софтуерен продукт и неговата поддръжка.

По този начин, CASE-WorkBenchе естествено „затваряне“ на технологията за разработване, внедряване и поддръжка на софтуер.

Понастоящем „типична“ система за поддръжка на CASE технология има функционалността, показана на фиг. 6.4.

Ориз. 6.4. Функционалност на типична система за поддръжка на CASE технология

Както следва от тази H-диаграма, CASE средата трябва да поддържа всички основни етапи на разработване и поддръжка на процесите на създаване на софтуерни системи. Нивото на такава подкрепа обаче варира значително. Например, ако говорим за етапите на анализ и проектиране, повечето пакети с инструменти поддържат екранни и отчетни форми, прототипиране и откриване на грешки. Значителна част от тези средства са предназначени за компютри. Много от тях поддържат широко използвани методологии като DeMarco или Gane/Sarson структурен анализ, Yourdan/Jackson структурен дизайн и няколко други. Има специализирани развойни пакети за създаване на информационни системи, например Ana Tool (Advanced Logical Software) за Macintosh; CA-Universe/Прототип (Computer Associates International) за компютър. Има CASE среди за подпомагане на разработването на системи в реално време.

Сред разработчиците на софтуер има две оценки на този подход: някои от тях вярват, че CASE технологията радикално променя процесите на разработка и работа на софтуера, други отричат ​​това и запазват само функцията за автоматизиране на рутинната работа за CASE инструменти. Въпреки това, анализът на литературата показва, че CASE инструментите все още „изместват“ технологиите за разработка на софтуер от управлението на проекти към метода на прототипиране. И тази промяна, според нас, е изключително важна тенденция в съвременните технологии за програмиране.

Публикации по темата