Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
вопросы ТРПО.doc
Скачиваний:
11
Добавлен:
14.04.2019
Размер:
554.5 Кб
Скачать

Анализ требований

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

Существует технический компромисс между слишком неопределёнными требованиями и требованиями столь детализированными что они:

  1. требуют много времени для разработки, иногда даже рискуют устареть к концу разработки

  2. ограничивают возможные способы реализации

  3. являются слишком дорогостоящими

Документирование требований

Требования обычно используются как средство коммуникации между различными заинтересованными лицами. Это означает, что требования должны быть просты и понятны для обычных пользователей и разработчиков. Один общий способ задокументировать требование — это написать утверждение о том, что должна сделать система.

В зарубежной и российской практике встречаются следующие типы документов требований:

  • Концепция программы (Vision)

  • Спецификация программного обеспечения (англ. Software Requirements Specification, SRS)

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

За создание спецификации программного обеспечения чаще всего в российской практике отвечает Системный аналитик, иногда — Бизнес-аналитик.

Для графических моделей требований исторически использовались диаграммы: ER (IDEF1FX), IDEF0, IDEF3, DFD, UML, OCL, SysML, ARIS (eEPC, VAD).

Изменение требований

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

6 Вопрос

роектирование программного обеспечения — процесс создания проекта программного обеспечения (ПО), а также дисциплина, изучающая методы проектирования.

Проектирование подразумевает выработку свойств системы на основе анализа постановки задачи, а именно: моделей предметной области, требований к ПО, а также опыта проектировщика.

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

Требования к ПО определяют внешние (видимые) свойства программы, рассматриваемой как чёрный ящик.

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

Проектирование ПО является частным случаем Проектирования продуктов и Проектирования систем.

В зависимости от класса создаваемого ПО, процесс проектирования может обеспечиваться как «ручным» проектированием, так и различными средствами его автоматизации. В процессе проектирования ПО для выражения его характеристик используются различные нотации — блок-схемыER-диаграммыUML-диаграммы,DFD-диаграммы, а также макеты.

Проектированию обычно подлежат:

  • Архитектура ПО

  • Устройство компонентов ПО

  • Пользовательские интерфейсы

В российской практике результат проектирования представляется в виде комплекса документов под названием «Эскизный проект», «Технический проект», в зарубежной — Software Architecture Document, Software Design Document.

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

Программная инженерия — это интегрирование принципов математики, информатики и компьютерных наук синженерными подходами, разработанными для производства осязаемых материальных артефактов[1].