IEEE Std 830-1993. Рекомендации по разработке спецификаций требований программного обеспечения
Большая Энциклопедия Нефти и Газа
Внутренние спецификации согласуются с внутренними целями ИТ-организации, достижение которых означает удовлетворение потребностей заказчика. Разграничение между внутренними и внешними спецификациями может оказаться особенно полезным уже после того, как Процесс Управления Уровнем Сервиса запущен в работу. [2]
Внутренняя спецификация описывается и утверждается еще до начала фазы программирования ( в соответствии с типовым этапом Р11, отмеченным в табл. 14.9), так что руководство группы разработки имеет гарантию того, что проект тщательно продуман. В ВтС всегда включается описание всех используемых алгоритмов. Состав других материалов уточняется от проекта к проекту. Программирование начинается лишь тогда, когда имеется достаточно полное описание данных и алгоритма их обработки, так что частичное тестирование программного изделия приобретает смысл, а блок-схема будущего изделия отработана настолько, что можно гарантировать корректную обработку нетривиальных исходных данных и получение нетривиальных результатов. С этого момента ВтС и машинные программы разрабатываются совместно и могут снабжаться ссылками друг на друга для обеспечения полноты описания внутренней структуры программных средств. [3]
Как быстро составлять смету с помощью SketchUp и Excel. Ремонт квартир Омск
Форма внутренних спецификаций является еще более прямой декомпозицией по отношению к форме внешних спецификаций. Если автор при написании каждого из этих документов будет руководствоваться этими формами, то перекрытие содержания документов почти-исключается. Если все же возникают противоречия, то они могут быть разрешены по определенным правилам. [5]
РЗО — внешние спецификации утверждены; Р31 — составление внутренних спецификаций завершено; Р40 — начаты испытания класса А; Р41 — демонстрация изделия проведена; Р42 — приемочные испытания проведены; О10 — требуемые по проекту средства установлены; ОН — информационный листок выпуска готов к печати; О12 — информационный листок выпуска издан; О20 — изделие передано на распространение; Б01 — план выпуска документации составлен; Б02 — подготовка справочных материалов начата; Б10 — план выпуска документации утвержден; Б11 — техническое редактирование начато; Б12 — утверждение справочных материалов начато; Б20 — справочные материалы готовы к печати; Б21 — справочные материалы изданы; И01 — план испытаний составлен; И10 — план испытаний утвержден; И11 — спецификации испытаний составлены — И12 — разработка контрольных примеров начата; И13 — спецификации испытаний утверждены; ИД) — состав приемочных испытаний определен; ИЗО — начаты испытания класса В; И31 — последний цикл испытаний начат; И32 — отчет об испытаниях класса В издан; Д01 — план поддержки составлен; Д1С — план поддержки утвержден; Д11 — рекламные интервалы подготовлены; Д12 — рекламные материалы сданы в печать; Д13 — план обучения издан; Д20 — рекламные материалы распространены; Д21 — учебные пособия подготов-лены; ДЗО — обучение закончено; С10 — внесение изменений запрещено; С20 — спецификация сопровождения готова. [7]
В то время, когда в рамках функции разработки создаются внешние и внутренние спецификации , в рамках других функций ведется подготовка плана выпуска документации и плана испытаний. Эти документы рассылаются на рассмотрение в конце фазы конструирования. [10]
С учетом четкого различия между внешним и внутренним проектами следует составлять внешние и внутренние спецификации программного изделия . При этом необходимо избегать появления общих мест в разных документах. Форма внешних спецификаций, описанных в разд. [11]
Материал этого раздела будет расширен ( но не изменен) во внутренней спецификации изделия ; часть его может быть расширена ( но не изменена) во внешней спецификации с целью полного описания соответствующих внешних свойств. [12]
Третий шаг трансляции ( точка 3) связан с преобразованием целей во внутренние спецификации , содержащие точные описания поведения системы с точки зрения пользователя. В разработке ПО этот шаг трансляции является самым значительным. По объему и степени сложности ошибок, порождаемых на этом шаге трансляции, он занимает основное место во всем процессе разработки ПО. [13]
Внешние спецификации программы полностью определяются результатами разработки требований к программе, и к их составлению приступают сразу же после того, как эти требования сформулированы, в то время как внутренние спецификации разрабатываются позже. [14]
Источник: www.ngpedia.ru
Примеры спецификаций (например, для метода сортировки массива в возрастающем порядке
свойства: дискретностью, массовостью, определенностью, результативностью, формальностью.
n Наличие входных данных
n Наличие выходных данных
2. Понятие «язык программирования».
Минимальная последовательность лексем, способная вызвать действия исполнителя, называется конструкцией языка
Среди конструкций языка выделяют операторы,
например:
y=sin(x) – оператор
Реализация языка – комплект программ, с помощью которого обеспечиваются:
n Поддержка операций с исходной программой (ввод, редактирование, сохранение текста, анализ синтаксических ошибок)
n Подготовка синтаксически правильной программы к исполнению на конкретном исполнителе
n Файловую систему
n Редактор для ввода текстов
n Транслятор для преобразования текстов программ к виду, в котором она может исполняться, или указания ошибок, если преобразование не удается
n Библиотеки периода трансляции
n Библиотеки периода исполнения
n Пользовательские библиотеки
n Средства поддержки разработки программ
Каждый язык программирования определяет свою модель вычислений, которая зависит от
n Способов представления данных
n Способов вызова процедур и т.д.
3. Что включает в себя постановка задачи?
n Постановка задачи должна быть точной и подробной.
Вопросы на которые необходимо ответить:
n Каковы входные данные
n Какие данные считаются корректными, какие – нет.
n Для кого предназначено программное обеспечение?
n Какой пользовательский интерфейс следует применить?
n Какие сообщения об ошибках следует предусмотреть?
n Какие ограничения накладываются на программу?
n Существуют ли особые ситуации?
n В каком виде следует представить выходные данные?
n Какая документация должна сопровождать программу?
Этап 2. Проектирование:
n При разработке программ следует использовать модульный подход
4. Что такое спецификация программы??
Спецификация, определение требований к программе — один из важнейших этапов, на котором подробно описывается исходная информация, формулируются требования к результату, поведение программы в особых случаях (например, при вводе неверных данных), разрабатываются диалоговые окна, обеспечивающие взаимодействие пользователя и программы.
Спецификация программы — это средство для точного описания того, что должно быть совершено в результате выполнения программы.
Спецификация программы — точная и полная формулировка задачи, содержащая информацию, необходимую для построения алгоритма (программы) решения этой задачи.
При разработке модуля необходимо ответить на вопросы:
n какие данные доступны каждому модулю при исполнении
n в каких условиях можно выполнять данный модуль
n какие действия выполняет модуль
n как изменяются данные после завершения его работы
n какие данные доступны каждому модулю при исполнении
n в каких условиях можно выполнять данный модуль
n какие действия выполняет модуль
n как изменяются данные после завершения его работы
n спецификация модуля не должна описывать метод решения задачи.
Спецификация включает в себя:
Примеры спецификаций (например, для метода сортировки массива в возрастающем порядке
//предусловие: переменная А является массивом
//состоящим из N целых чисел, N0
// постусловие: целые числа в массиве A упорядочены.
Достаточно ли этих пред- и постусловий?
Очевидно, что нет:
n Во-первых, не указано в каком порядке необходимо упорядочить числа
n Во-вторых, не указано, насколько большим может быть число элементов в массиве N.
Пересмотренная спецификация: Sort(A,N)
//сортировка массива в возрастающем порядке
//предусловие: переменная А является массивом
//состоящим из N целых чисел,1
// где MAX_N – глобальная константа
//задающая максимальный размер массива А
// постусловие: целые числа в массиве A упорядочены
// по возрастанию: A[1]
// число N не изменилось
n В предусловии описываются входные аргументы функции, указываются все глобальные именованные константы, использующиеся в ней, перечисляются все ограничения, которые накладываются функцией.
n В постусловии описываются результаты работы функции (либо возвращаемое функцией значение) и все последствия ее работы.
Понятие Инварианта. Инвариант цикла.
Инвариант – это условие, которое должно всегда быть истинным в некоторой точке программы
Инвариант цикла – это условие, которое должно выполняться до и после каждого выполнения цикла.
Использование инварианта цикла для решения следующей задачи: вычислить сумму первых n элементов массива А:
//вычисляет сумму элементов A[0],A[1], … A[n-1]
> // конец оператора while
Инвариант данного цикла: значение переменной sum равно сумме элементов A[0]+A[1]+ … +A[j-1], j – значение параметра цикла
Инвариант данного цикла:
//вычисляет сумму элементов
//A[0],A[1], … A[n-1] для любого n0
> // конец оператора while
n Инвариант должен быть истинным изначально
n Выполнение цикла должно сохранять инвариант
n Из выполнения инварианта должна следовать правильность алгоритма
n Цикл должен завершиться
7. Что такое защитное программирование? Перечислите пути реализации защитного программирования.
Защитное программирование характеризует такой стиль написания программ, при котором уменьшается вероятность возникновения ошибок, а сделанные ошибки легко и быстро идентифицируются.
Защитное программирование реализуется двумя путями:
n во-первых, необходимо придерживаться определенного стиля программирования,
n во-вторых, добавлять в программу некоторое количество операторов, призванных контролировать вероятные ошибки.
n При разработке проекта программы из нескольких равнозначных решений следует выбирать наиболее простые (но не примитивные!).
n Приемами, усложняющими алгоритм, следует пользоваться с максимальной осторожностью.
Пример неоправданной сложности:
8. В чем заключаются принципы защитного программирования?
n Простота реализации кодов повышает надежность программы.
n Общее недоверие: как к входным данным, так и к результатам.
n Максимально раннее (в смысле использования программы) обнаружение и локализация ошибок.
Статьи к прочтению:
- Примеры выполнения программ
- Примеры встроенных функций для работы с матрицами.
Паскаль с нуля [ч12]. Сортировка массива методом пузырька
Похожие статьи:
- Примеры экономии памяти — обработка массивов « на лету». Примеры экономии времени —вычисление рекуррентным способом. Вопрос 3 Переменные в программировании как хранилища (память). Память внутренняя…
- Пример 4.7.4-11. разработать процедуры-sub, в которых осуществляется сортировка по убыванию значений элементов массива. Сделаем несколько общих замечаний по поводу сортировки элементов массива. Во-первых, стоит отметить, что под упорядочиванием (сортировкой) массива…
Источник: csaa.ru