Локальные средства разработки программ

Язык программирования - формализованный язык для описания алгоритма решения задачи на компьютере.

Языки программирования можно исторически разделить на классы:

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

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

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

2. процедурно-ориентированные - языки программирования, где имеется возможность описания программы как совокупности подпрограмм,

3. проблемно--ориентированные - языки программирования, предназначенные для решения задач определенного класса,

4. объектно-ориентированные - языки программирования, где имеется возможность представления программы как совокупности объектов, поведение которых управляется внешними событиями.

Локальные средства разработки программ - student2.ru
Программа, подготовленная на алгоритмическом языке, проходит несколько этапов, реализуемых несколькими локальными средствами (рис 12.6).

Рис 12.6. Этапы преобразования программы

Исходный код – текст отдельной программы на алгоритмическом языке.

Объектный код - текст отдельной программы на машинном языке или на языке ассемблера.

Загрузочный модуль – объединение программ на машинном языке, пригодное для выполнения на компьютере.

На этапе трансляции происходит преобразование исходного кода программы в объектный код. Трансляцию выполняет специальная программа под названием транслятор или компилятор.

На этапе сборки объектные коды нескольких программ в том числе стандартных объединяются в один загрузочный модуль. Сборку проводит специальная программа под названием редактор связей.

Некоторые языки программирования допускают режим интерпретации программ – режим, при котором программа транслируется по операторам языка и сразу выполняется. Необходимые программы подключаются динамически во время выполнения. Сборка загрузочного модуля не производится.

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

Средства поддержки проектов предназначены для:

  • отслеживания изменений, выполненных разработчиками программ;
  • поддержки версий программы с автоматической разноской изменений;
  • получения статистики о ходе работ проекта.

Интегрированные среды

Системы программирования включают в себя:

o транслятор;

o редактор связей;

o графическую среду разработчика;

o отладчик;

o средства оптимизации кода программ;

o набор библиотек (возможно с исходными текстами программ);

o сервисные средства (утилиты) для работы с библиотеками, текстовыми и двоичными файлами;

o справочные системы;

o документатор исходного кода программы;

o систему поддержки и управления проектом программного комплекса.

Инструментальная среда пользователя представлена специальными средствами, встроенными в пакеты прикладных программ, такими, как:

o библиотека функций, процедур, объектов и методов обработки;

o макрокоманды;

o клавишные и языковые макросы;

o программные модули-вставки;

o языки запросов высокого уровня;

o языки манипулирования данными;

o построители объектов,

o конструкторы экранных форм, меню и отчетов;

o генераторы приложений;

Интегрированные среды разработки программ объединяют вышеназванные наборы средств для комплексного их применения на всех технологических этапах создания программ.

К интегрированным средам относятся: С++ Builder и Visual Basic фирмы Microsoft, Delphi фирмы Borland, Oracle одноименной фирмы.

Тенденции развития инструментария программирования показывают, что разработчики предпочитают интегрированные среды, несмотря на их дороговизну.

САSЕ-технология

САSЕ - технология сформировалась в 80-х годах ХХ века. САSЕ расшифровывается как Computer-Aided System Engineering – проектирование систем с помощью компьютера.

CASE - технология представляет собой совокупность методов анализа, проектирования, разработки и сопровождения сложных систем программного обеспечения (ПО), поддержанную ком­плексом средств автоматизации. CASE - это инструментарий для системных аналитиков, разработчиков и программистов, заменяющий им бумагу и карандаш на компьютер для автоматизации процесса проектирования и разработки ПО.

Большинство CASE-средств основано на совокупности понятий (парадигме) методология/метод/нотация/средство. Методология определяет руководящие указания для оценки и выбора проекта разрабатываемого ПО, шаги работы и их последовательность, а также правила распределения и назначения методов. Метод - это систематическая процедура или техника генерации описаний компонент ПО (например, проектирование потоков и структур данных). Нотации предназначены для описания структуры системы, элементов данных, этапов обработки и включают графы, диаграммы, таблицы, блок-схемы, формальные и естественные языки. Средства - инструментарий для поддержки и усиления методов. Эти инструменты поддерживают работу пользователей при создании и редактировании графического проекта в интерактивном режиме, они способствуют организации проекта в виде иерархии уровней абстракции, выполняют проверки соответствия компонентов.

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

Основное достоинство CASE-технологии - поддержка коллективной работы над проектом за счет возможности работы в локальной сети разработчиков, экспорта - импоpтa любых фрагментов проекта, организационного управления проектом. Основная цель CASE состоит в том, чтобы отделить проектирование ПО от его кодирования и последующих этапов разработки, а также скрыть от разработчиков все детали среды разработки и функционирования ПО. Чем больше деятель­ности будет вынесено в проектирование из кодирования, тем лучше. наибольшие изменения касаются этапов анализа и проектирования.

Устойчивое положение они занимают в следующих областях:

· бизнес-анализ (фактически, модели деятельности предприятий "как есть" и «как должно быть" строятся с применением методов структурного системного анализа и поддерживающих их CASE-средств);

· системный анализ проектирование (практически любая крупная программная система разрабатывается с применением CASE-технологий по крайней мере на этапах анализа и проектирования, что связано с большой сложностью данной проблематики и со стремлением повысить эффективность работ).

Некоторые САSЕ-средства ориентированы только на системных проектировщиков и предоставляют специальные графические инструменты для изображения различного вида моделей:

· диаграмма/ потоков данных (DFD - data flow diagrams) совместно со словарями данных и спецификациями процессов;

· диаграмма "сущность-связь" (ERD - entity relationship diagrams), являющуюся инфологической моделью предметной области;

· диаграмма переходов состояний (STD - state transition diagrams), учитывающую события и реакцию на них системы обработки данных.

Диаграмма DFD устанавливает связь источников информации с потребителями, выделяет логические функции (процессы) преобразования информации, определяет группы элементов данных и их хранилища (базы данных).

Описание структуры потоков данных, определение их компонентов хранятся в актуальном состоянии в словаре данных, который выступает как база данных проекта. Каждая логическая функция может детализироваться с помощью DFD нижнего уровня согласно методам нисходящего проектирования.

Выполняются автоматизированное проектирование спецификаций программ (задание основных характеристик для разработки программ) и ведение словаря данных.

Другой класс САSЕ-технологий поддерживает только разработку программ, включая:

· автоматическую генерацию кодов программ на основании их спецификаций;

· проверку корректности описания моделей данных и схем потоков данных;

· документирование программ согласно принятым стандартам и актуальному состоянию проекта;

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

В рамках САSЕ-технологий проект сопровождается целиком, а не только его программные коды. Проектные материалы служат заданием программистам, а само программирование скорее сводится к переводу на определенный язык структур данных и методов их обработки, если не предусмотрена автоматическая кодогенерация.

Большинство САSЕ-технологий использует также метод "прототипов" для быстрого создания программ на ранних этапах разработки. Кодогенерация программ осуществляется автоматически - до 85 - 90% текстов на языках высокого уровня.

К CASE – средствам, например, относятся BPWin, ERWin, Rational Rose, Embarcadero, xCase.

Классификация по типам отражает функциональную ориентацию CASE-средств в технологическом процессе создания информационной системы.

1) АНАЛИЗ И ПРОЕКТИРОВАНИЕ. Средства данной группы используются для создания спецификаций системы и для ее проектирования. Их целью является определение системных требований и свойств, которыми система должна обладать, а также создание проекта системы, удовлетворяющей этим требованиям и обладающей соответствующими свойствами. На выходе продуцируются спецификации компонент системы и интерфейсов, связывающих эти компоненты, а также "калька" архитектуры системы и детальная "калька" проекта, включающая алгоритмы и определения структур данных. К таким средствам относятся: CASE.Аналитик (Эйтэкс), The Developer (ASYST Technologies), POSE (Computer Systems Advisers), ProKit*Workbench (McDonnell Douglas), Excelerator (Index Technology), Design-Aid (Nastec), Design Machine (Optima), MicroStep (Meta Systems), vsDesigner (Visual Software), Analist/Designer (Yourdon), Design/IDEF (Meta Software), BPWin (Logic Works), SELECT (Select Software Tools), System Architect (Popkin Software & Systems), Westmount I-CASE Yourdon (Westmount Technology B.V. & CADRE Technologies), CASE/4/0 (microTOOL GmbH).

2) ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ И ФАЙЛОВ. Средства данной группы обеспечивают логическое моделирование данных, автоматическое преобразование моделей данных в Третью Нормальную Форму, автоматическую генерацию схем БД и описаний форматов файлов на уровне программного кода: ERWin (Logic Works), Chen Toolkit (Chen & Asssociates), S-Designor (SDP), Designer2000 (Oracle), Silverrun (Computer Systems Advisers).

3) ПРОГРАММИРОВАНИЕ. Средства этой группы поддерживают этапы программирования и тестирования, а также автоматическую кодогенерацию из спецификаций, получая полностью документированную выполняемую программу: COBOL 2/Workbench (Mikro Focus), DECASE (DEC), NETRON/CAP (Netron), APS (Sage Software). Помимо диаграммеров различного назначения и средств поддержки работы с репозитарием, в эту группу средств включены и традиционные генераторы кодов, анализаторы кодов, генераторы наборов тестов, анализаторы покрытия тестами, отладчики.

4) СОПРОВОЖДЕНИЕ И РЕИНЖИНИРИНГ. К таким средствам относятся документаторы, анализаторы программ, средства реструктурирования и реинжениринга: Adpac CASE Tools (Adpac), Scan/COBOL u Superstructure (Computer Data Systems), Jnspector/Recoder (Language Technology). Их целью является корректировка, изменение, анализ, преобразование и реинжениринг существующей системы. Средства позволяют осуществлять поддержку всей системной документации, включая коды, спецификации, наборы тестов; контролировать покрытие тестами для оценки полноты тестируемости; управлять функционированием системы и т.п. Особый интерес представляют средства обеспечения мобильности и реинжиниринга. К средствам миграции относятся трансляторы, конверторы, макрогенераторы и др., позволяющие обеспечить перенос существующей системы в но­вое операционное или аппаратурное окружение. Средства реинжиниринга включают:

o статические анализаторы для продуцирования схем системы ПО из ее кодов, оценки влияния модификаций (например,"эффекта ряби" -внесение изменений с целью исправления ошибок порождает новые ошибки);

o динамические анализаторы (обычно, компиляторы и интерпретаторы с встроенными отладочными возможностями);

o документаторы, позволяющие автоматически получать обновленную документацию при изменении кода;

o редакторы кодов, автоматически изменяющие при редактировании и все предшествующие коду структуры (например, спецификации);

o средства доступа к спецификациям, их модификации и генерации нового (модифицированного) кода;

o средства реверсного инжиниринга, транслирующие коды в спецификации.

5) ОКРУЖЕНИЕ. Средства поддержки платформ для интеграции, создания и придания товарного вида CASE-средствам: Multi/Cam (AGS Management Systems), Design/OA (Meta Software).

6) УПРАВЛЕНИЕ ПРОЕКТОМ. Средства, поддерживающие планирование, контроль, руководство, взаимодействие, т.е. функции, необходимые в процессе разработки и сопровождения проектов: Project Workbench (Applied Business Technology).

Наши рекомендации