logo
ГосЭкзамен

10. Проектирование программного обеспечения.

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

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

Проектированию обычно подлежат: Архитектура ПО; Устройство компонентов ПО; Пользовательские интерфейсы.

Стадии проектирования: Техническое задание, Техническое предложение, Эскизный проект, Технический проект, Рабочий проект.

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

- Анализ предметной области и создание ТЗ (взаимодействия с заказчиком).

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

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

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

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

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

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

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