![](/user_photo/2706_HbeT2.jpg)
- •1. Диаграммы классов в uml, их нотация и семантика. Типы классов для моделирования программного обеспечения и бизнес-систем. Отображение интерфейса класса на диаграмме.
- •2. Предотвращение неисправностей в по ас.
- •3. Эволюционные модели систем.
- •4. Меры информации.
- •5. Понятие долговечности технического устройства.
- •6. Технология трансляции сетевых адресов (nat).
- •8. Теоремы логики и их использование в ииc.
№13
1. Диаграммы классов в uml, их нотация и семантика. Типы классов для моделирования программного обеспечения и бизнес-систем. Отображение интерфейса класса на диаграмме.
В UML диаграмма классов является типом диаграммы статической структуры. Она описывает структуру системы, показывая её классы, их атрибуты и операторы, а также взаимосвязи этих классов.
Классы — это базовые элементы любой объектно-ориентированной системы. Классы представляют собой описание совокупностей однородных объектов с присущими им свойствами — атрибутами, операциями, отношениями и семантикой.
Взаимосвязь — это особый тип логических отношений между сущностями, показанных на диаграммах классов и объектов. В UML’е представлены следующие виды отношений:
Ассоциация показывает, что объекты одной сущности (класса) связаны с объектами другой сущности. Существует пять различных типов ассоциации. Наиболее распространёнными являются двунаправленная и однонаправленная. Например, классы «рейс» и «самолёт» связаны двунаправленной ассоциацией, а классы «человек» и «кофейный автомат» связаны однонаправленной.
Агрегация — это разновидность ассоциации при отношении между целым и его частями. Как тип ассоциации агрегация может быть именованной. Одно отношение агрегации не может включать более двух классов (контейнер и содержимое).
Композиция — более строгий вариант агрегации. Известна также как агрегация по значению.
Композиция имеет жёсткую зависимость времени существования экземпляров класса контейнера и экземпляров содержащихся классов. Если контейнер будет уничтожен, то всё его содержимое будет также уничтожено.
Обобщение (Generalization) показывает, что один из двух связанных классов (подтип) является частной формой другого (надтипа), который называется обобщением первого.
Реализация — отношение между двумя элементами модели, в котором один элемент (клиент) реализует поведение, заданное другим (поставщиком).
Зависимость — это слабая форма отношения использования, при котором изменение в спецификации одного влечёт за собой изменение другого, причем обратное не обязательно. Возникает когда объект выступает например в форме параметра или локальной переменной.
2. Предотвращение неисправностей в по ас.
В разных странах и фирмах отработаны процессы создания, развития и применения программ для компьютеров. Их принято описывать моделями жизненного цикла программ различных классов и назначения. В модели жизненный цикл структурируется рядом крупных фаз или этапов, каждый из которых характеризуется целями и результатами.
За рубежом модели жизненного цикла реализуются в виде стандартов. Анализ современных отечественных и зарубежных стандартов позволяет сделать вывод о том, что основными фазами создания ПО являются: анализ и спецификация требований; проектирование; исполнение.
Фаза анализа и спецификации требований. Анализ всей совокупности требований к системе - ТЗ выполняется на начальной фазе создания программ. ТЗ составляется на основании перечня требований, предъявленных к системе заказчиком. Цель ТЗ - уточнить и сформулировать задачи, возлагаемые на систему, согласовать требования заказчика и возможности исполнителя.
В общем случае информации, содержащейся в ТЗ, может быть недостаточно для разработки полноценных детальных спецификаций. Поэтому анализ требований к ОС и дополнение ТЗ недостающими данными является необходимым шагом при разработке. Полученное описание ОС принято называть эскизным проектом, который будет рассматриваться разработчиками в дальнейшем в качестве основы для фазы проектирования.
Успехи в теории программирования и вычислений обеспечили использование формальных методов при разработке ПО. Формальный метод разработки систем состоит из трёх основных компонентов: формальной записи спецификаций и описаний проектов; методики получения реализаций из спецификаций; составления правил вывода того, что реализации отвечают этим спецификациям.
Достоинство формальных методов-системы, разработанные с использованием подобного подхода, имеют принципиально высокое качество. При этом повышение качества достигается: построением спецификаций в виде ясного, исчерпывающего, недвусмысленного и лёгкого для проверки математического утверждения; осуществлением верификации во время разработки ПО.
Фаза проектирования. Главная задача системного проектирования ПО заключается в том, чтобы на основании эскизного проекта разработать совокупность основных характеристик проектируемого ПО, его архитектуру, т.е. состав и интерфейс модулей. Последующие шаги проектирования связаны с уточнением эскизного проекта, т.е. с разработкой формализованных описаний, представляющих в совокупности внутренние задания на проектирование компонентов ПО, и их алгоритмической реализацией.
Фаза исполнения. Фаза исполнения включает в себя кодирование, интегрирование, а также тестирование и отладку.
С каждой из фаз создания ПО связаны специфические ошибки. С фазой анализа и спецификацией требований - системные ошибки, с фазой проектирования - алгоритмические и с фазой кодирования - программные.
Системные ошибки определяются неполной информацией о реальных процессах, происходящих в источниках и потребителях информации. Во время анализа требований не всегда удаётся точно сформулировать целевую задачу всей системы, а также задачи основных групп программ, и эти задачи уточняются в процессе проектирования. В соответствии с этим локализуются и выявляются отклонения от уточнённого задания, которые могут квалифицироваться как системные ошибки.
К алгоритмическим относят ошибки, обусловленные некорректной постановкой задач, решаемых отдельными частями ПО. К ним также относят ошибки связей модулей и функциональных групп программ. В большинстве случаев их также можно свести к ошибкам в спецификациях.
Программные ошибки по количеству и типам определяются, в первую очередь, степенью автоматизации программирования и глубиной формализованного контроля текстов программ. Программные ошибки сильно зависят от выбранного языка программирования. Имеющаяся статистика показывает, что наибольший вес имеют ошибки неполной программной реализации функций алгоритма или неверный порядок реализации функций.
Основные разновидности ошибок: неверное специфицирование как всего программного комплекса, так и отдельных его составляющих; функциональное несоответствие программы алгоритму.