Модели жизненного цикла программных средств. Требования к ПО, страница 4

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

2 семестр

Требования:

-бд

-информационная система

-мат аппарат

Требования к ПО

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

Причины изменчивости ПО:

1.  Меняется ситуация на рынке- из-за быстро меняющихся перспектив продажи еще не готовой системы

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

3.  Заказчик может менять свое собственное виденье системы

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

Виды и свойства требований

Разделим все требования на 2 большие группы:

1.  Функциональные требования- являются детальным описанием поведения и сервисов системы, ее функционала (т.е. определяет то, что система должна уметь делать)

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

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

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

2.  Полнота и непротиворечивость.

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

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

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

6.  Модифицируемость- определяет процедуры внесения изменений в требования.