Смекни!
smekni.com

Неправильный перевод информации как причина ошибок в программных средствах (стр. 5 из 7)

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

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

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

Временная эффективность {timeefficiency) ПС - мера, характери­зующая способность ПС выполнять возложенные на него функции в течение определённого отрезка времени.

Эффективность по ресурсам {resourceefficiency) ПС - мера, ха­рактеризующая способность ПС выполнять возложенные на него функ­ции при определённых ограничениях на используемые ресурсы (па­мять).

Эффективность по устройствам {deviceefficiency) ПС — мера, ха­рактеризующая экономичность использования устройств компьютера для решения поставленной задачи.

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

Понятность {understandability) ПС - свойство, характеризующее степень, в которой ПС позволяет изучающему его лицу понять его на­значение, сделанные допущения и ограничения, входные данные и ре­зультаты работы его программ, тексты этих программ и состояние их реализации. Этот примитив качества синтезирован нами из таких при­митивов ISO [59], как согласованность, самодокументированность, чет­кость и, собственно, понятность (текстов программ).

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

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

Расширяемость (augmentability) ПС - свойство, характеризующее способность ПС к наращиванию объёма памяти для хранения данных или расширению функциональных возможностей отдельных компо­нент.

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

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

Независимость ПС от устройств (deviceindependence) - свойство, характеризующее способность ПС работать на разнообразном аппарат­ном обеспечении (различных типах, марках, моделях компьютеров).

4.4. Функциональная спецификация программного средства

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

Функциональная спецификация состоит из трёх частей:

• описания внешней информационной среды, к которой должны при­меняться программы разрабатываемой ПС;

• определение функций ПС, определённых на множестве состояний этой информационной среды (такие функции будем называть внеш­ними функциями ПС);

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

В первой части должны быть определены на концептуальном уров­не все используемые каналы ввода и вывода и все информационные объекты, к которым будет применяться разрабатываемое ПС, а также существенные связи между этими информационными объектами. При­мером описания информационной среды может быть концептуальная схема базы данных или описание сети датчиков и приборов, которой должна управлять разрабатываемая ПС.

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

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

4.5. Методы контроля внешнего описания программного средства

Разработка внешнего описания обязательно должна завершаться проведением тщательного и разнообразного контроля его правильно­сти. Цель этого процесса состоит в поиске как можно большего числа ошибок, сделанных на этом этапе. Учитывая, что результатом этого

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

• статический просмотр,

• смежный контроль,

• пользовательский контроль,

• ручная имитация.

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

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

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

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

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

Вопросы к главе 4

4.1. Что такое определение требований к ПС!

4.2. Что такое спецификации качества ПС!

4.3. Что такое устойчивость {robustness) ПС!

4.4. Что такое защищённость (defensiveness) ПС!

4.5. Что такое коммуникабельность {communicativeness) ПС!

4.6. Что такое функциональная спецификация ПС!

А.1. Что такое ручная имитация внешнего описания ПС!

Разделяй и властвуй!

Латинское изречение

Глава 6 АРХИТЕКТУРА ПРОГРАММНОГО СРЕДСТВА

Понятие архитектуры и задачи её описания. Основные классы архитек­тур программных средств. Взаимодействие между подсистемами и архи­тектурные функции. Контроль архитектуры программных средств.

6.1. Понятие архитектуры программного средства

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