Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МИХАЙЛОВ ГОТОВЫЕ ШПОРЫ.doc
Скачиваний:
2
Добавлен:
18.09.2019
Размер:
144.38 Кб
Скачать

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

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

Различают 3 основных класса инструментальных средств:

  1. инструментальные среды программирования;

  2. инструментальные системы и технологии программирования;

  3. Рабочие места, компьютерные технологии.

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

Рабочее место компьютерной технологии ориентировано на поддержку этапа составления требований к программному средству(спецификации) и автоматическую генерацию программ по спецификации.

Инструментальные среды программирования в свою очередь подразделяются на среды общего назначения и языково-ориентированные среды, кот могут быть интерпретирующими или синтаксически управляемыми.

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

Языково-ориентированная среда ориентирована на какой-либо конкретный язык.

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

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

Методы разработки структуры программ.

Различают 2 основных метода:

  1. метод восходящей разработки;

  2. метод нисходящей;

и их модификации и архитектурный и конструктивный подход соответственно.

В основе всех указанных методов проектирования структуры программ лежит модульное программирование.

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

Восходящий метод.

При использовании метода восходящей разработки программного средства сначала строиться структура программы в виде дерева. Затем поочередно программируется модули программы, начиная с модулей самого нижнего уровня(листья) в таком порядке, чтобы для каждого программированного модуля были бы созданы все модули, к которым он может обращаться. После того, как все модули программы будут написаны, проводятся поочерёдно тестирование и отладка в том же восходящем порядке. Но современная технология разработки программных средств не рекомендует этот, казалось бы, естественный порядок программирования. Причины:

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

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

  3. При восходящем тестировании для каждого модуля приходится создавать ведущую программу, которая должна выполнить требуемое обращение к этому модулю. В результате увеличивается объём отладочных действий, который при этом не даёт никаких гарантий, что тестирование модуля выполнялось в тех же условиях, в каких он будет эксплуатироваться в работающей программе.

Недостатки:

  1. Увеличение вероятностей несогласованности модулей, вследствие неполноты их спецификаций.

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

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

Архитектурный подход-это модификация восходящей разработки, при которой модульная структура программы формируется в процессе программирования модуля. Но при этом ставится другая цель разработки – повышение уровня используемого языка программирования, а не разработка конкретной программы. Для заданной предметной области выделяются типичные функции, каждая их которых может использоваться при решении различных задач этой области, специфицируются, а затем программируются отдельные модулю, выполняющие эти функции. Поскольку процесс выделения таких функций связан с накоплением опыта решения задач в заданной предметной области, то сначала выделяются и реализуются модулями простые функции, а затем появляются модули, использующие эти ранее выделенные функции. Архитектурный подход позволяет сократить затраты на разработку конкретной программы, путём использования заранее написанных и опробированных на практике модулей нижнего уровня. Ещё одним достоинством этого подхода является то, что его можно рассматривать как путь борьбы с дублированием в программировании.

Метод нисходящей разработки.

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

Недостатки

Некоторым недостатком нисходящей разработки, приводящим к определенным затруднениям при её применении, является необходимость абстрагироваться от базовых возможностей используемого языка программирования, выдумывая абстрактные операции, которые позже нужно будет реализовать с помощью выделенных в программе модулей. Однако способность к таким абстракциям представляется необходимым условием разработки больших программных средств, поэтому её нужно развивать.

Конструктивный подход

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

Архитектурный подход

Представляет собой модификацию восходящей разработки, при которой модульная структура программы формируется в процессе программирования модуля. Но при этом ставится существенно другая цель разработки: повышение уровня используемого языка программирования, а не разработка конкретной программы. Это означает, что для заданной предметной области выделяются типичные функции, каждая из которых может использоваться при решении разных задач в этой области. Далее специфицируются, а затем и программируются отдельные программные модули, выполняющие эти функции.

КАЧЕСТВО ПРОГРАММНОГО СРЕДСТВА

Качество Программного средства – это совокупность его черт и характеристик , которые влияют на способность программного средства удовлетворять заданные потребности пользователя. Совокупность свойств программного средства, которая образует удовлетворительное для пользователя качество программного средства зависит от условий и характера эксплуатации этого программного средства, поэтому при описании качества программного средства прежде всего должны быть зафиксированы значения критериев отбора требуемых свойст программного средства. Критериями качества программного средства принято считать: функциональность, надежность, легкость применения, эффективность, сопровождаемость и мобильность. Функциональность – это способность программного средства выполнять набор функций, удовлетворяющих заданным потребностям пользователей. Надежность – это способность программного средства выполнять заданные функции в заданных условиях эксплуатации. Легкость применения – это характеристика программного средства, которые позволяют минимизтровать усилия пользователя по подготовке исходных данных, применению программного средства, оценке полученных результатов, а также вызывать неотрицательные эмоции у пользователя при работе с программным средством.