Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных


Скачать 3.64 Mb.
Название Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных
страница 7/47
Тип Документы
rykovodstvo.ru > Руководство эксплуатация > Документы
1   2   3   4   5   6   7   8   9   10   ...   47

1.6Свойства требований


Ф. Брукс в своем, теперь уже ставшим классическим, эссе1), следующим образом охарактеризовал роль требований в разработке программного обеспечения.

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

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

  • полнота,

  • ясность,

  • корректность,

  • согласованность,

  • верифицируемость,

  • необходимость,

  • полезность при эксплуатации,

  • осуществимость,

  • модифицируемость,

  • трассируемость,

  • упорядоченность по важности и стабильности,

  • наличие количественной метрики.

Большинство из этих свойств раскрыто в первом разделе стандарта IEEE [3.1] и широко обсуждается в работах [3.3,3.5]. Рассмотрим указанные выше свойства подробнее.

Полнота.


Как известно из теории искусственного интеллекта, неполнота - одно из фундаментальных свойств человеческого знания. При создании программных систем нам приходится иметь дело с характеристиками еще несуществующей системы. Идея о том, что необходимо сформулировать все требования полностью, т.е. исчерпывающим образом, до начала проектирования, а тем более - реализации системы, изжила себя вместе с так называемым каскадным подходом2) [3.2], который поддерживал последовательную модель реализации системы. Спиральный3) [3.2] подход, на котором базируется большинство современных методологий, предусматривает поэтапное выделение и детализацию требований на всем протяжении цикла разработки системы.

Тем не менее, требование полноты предъявляется к требованиям, формулируемым к системе. Надо понимать, что данное требование - это скорее тенденция, цель, к которой нужно постараться максимально приблизиться на как можно более ранних стадиях проекта.

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

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

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

Ясность (недвусмысленность, определенность, однозначность спецификаций).


Каждый из совладельцев4) разрабатываемой системы обладает своим личным опытом восприятия событий внешнего мира. Слово, произнесенное вслух, вызывает индивидуальные ассоциации в семантическом пространстве каждого отдельного воспринимающего субъекта. То, что является ясным, допустим, для кардиохирурга, совсем необязательно будет таковым для специалиста в области программной инженерии.

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

К.Вигерс [3.3] дает следующий совет по повышению ясности документов: "Пишите документацию просто, кратко и точно, применяя лексику, понятную пользователям".

Еще одной стороной понятия "ясность требования" является его прослеживаемость (см. также понятие трассируемости ниже по тексту). Требование, которое сформулировано ясно, может быть прослежено, начиная от того документа, где оно сформулировано впервые, вплоть до рабочих спецификаций.

Корректность и согласованность (непротиворечивость).


Корректность - одно из важнейших свойств требований. К. Вигерс в [3.3] вводит понятие корректности требования через точность описания функциональности. В этом смысле корректность в определенной степени конкурирует с полнотой. Но есть и различие: если свойство полноты носит скорее качественный характер: абсолютная полнота представляет недостижимый идеал, к которому можно приближаться, то свойство корректности носит оценочный характер и задает дихотомию: каждое из требований либо корректно, либо нет. Кроме того, можно рассуждать о взаимной корректности требований или согласованности (непротиворечивости): если два требования вступают в конфликт, значит - как минимум одно из них некорректно. В иерархии требований (см. материалы лекции 2) можно выделить вертикальную и горизонтальную согласованность. Иными словами, требования не должны противоречить, соответственно, требованиям своего уровня иерархии и требованиям "родительского" уровня. Так, требования пользователей не должны противоречить бизнес-требованиям, а функциональные требования - требованиям пользователя.

Верифицируемость (пригодность к проверке).


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

1   2   3   4   5   6   7   8   9   10   ...   47

Похожие:

Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Кодекс этики и профессиональной деятельности в области программной инженерии (версия 2)

Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Рассказ о почве воспитателя
Динозаврик отличается от слона тем, что у него длинная шея, короткие ноги, длинный и толстый хвост, а ещё он зелёного цвета
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Содержание
ПО. По данным Института программной инженерии (Software Engineering Institute, sei) в последние годы до 80% всего эксплуатируемого...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Национальный исследовательский университет «высшая школа экономики»...
Библиотека распространяется как проект на C#. Для ее использования необходимо добавить этот проект в существующее решение
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Эрнест Цветков Ловушка для человека, или Путеводитель по внутренним...
В последнее время как-то сама собой стерлась грань | между тем, что я пишу, тем, что я говорю и тем, что я делаю
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon 1. Спецификация метамодели программной и системной инженерии процессов, версия 0 (spem 0)
В данном сокращенном переводе приведены те фрагменты текста, которые соответстсвуют понятийной части метамодели и не затрагивают...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Что это такое рпд?
В роторном же двигателе каждый процесс выполняется в отдельном отсеке камеры. Эффект мало чем отличается от разделения цилиндра на...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Законодательство об охране труда
Мы осуществляем печать учебных плакатов различной тематики, а также изготовление стендов. Наша продукция отличается высоким качеством...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Инструкция по применению и техническому обслуживанию порошковых огнетушителей...
Огнетушители порошковые ручные опу-5, 10; опг- 5, 7; оп-5Ф, 7Ф, 10Ф предназначены для тушения загораний различных веществ, горение...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Илии Шугаева "Один раз на всю жизнь"
В книге рассматриваются основы семейной жизни и решается целый ряд вопросов: чем отличается любовь от влюбленности, что такое первая...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Программа психологического сопровождения и подготовки выпускников...
Егэ как форма экзамена появился сравнительно недавно и ввиду внедрения каждый год меняются требования к проведению экзамена, и с...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon “Бизнес и Евангелие” с незамысловатой идеей о том, что только истинно-евангельская...
От того, кто призывает к жизненной серьезности, слушатель требует не менее дотошного обоснования выводов, чем требуется от соискателя...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Рцмо в 2014/15 учебном году предлагает проведение мониторингов
Данный мониторинг отличается от предыдущих тем, что третий этап (итоговый) проводится по аналогии с гиа и егэ (индивидуальные пакеты,...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Законы. 100
Каково же христианское понимание брака? Чем оно отличается от других религий и верований? Как совмещаются идеалы девства и супружества?...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon Мы благодарим Вас за поддержку! Сделав выбор в пользу нашего оборудования,...
Олее важным качеством данной машины является то, что она может использоваться для упаковывания в вакууме или при подкачке азота при...
Чем программирование отличается от программной инженерии? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих различных icon 2. Инструкции по технике безопасности
Генератор может использоваться во многих областях и является превосходной поддержкой для работы осветительного оборудования

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск