Технология программирования в историческом аспекте
«Стихийное» программирование от момента появления первых вычислительных машин до середины 60-х годов XX в Первые программы имели простейшую структуру. Они состояли из собственно программы на машинном языке и обрабатываемых ею данных
«Стихийное» программирование Создание языков программирования высокого уровня Появление в языках средств оперирования подпрограммами Типичная программа того времени состояла из основной программы, области глобальных данных и набора подпрограмм
Структурный подход к программированию 6070-е годы XX в. В основе лежит декомпозиция сложных систем с целью последующей реализации в виде отдельных небольших подпрограмм. требовал представления задачи в виде иерархии подзадач простейшей структуры. метод пошаговой детализации. заложена в основу процедурных языков программирования.
Структурный подход к программированию стремление разграничить доступ к глобальным данным программы - технология модульного программирования.
Объектный подход к программированию с середины 80-х до конца 90-х годов XX в. технология создания сложного программного обеспечения, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного типа (класса), а классы образуют иерархию с наследованием свойств.
Компонентный подход и CASE-технологии с середины 90-х годов XX в. до нашего времени объекты-компоненты можно собрать в динамически вызываемые библиотеки, распространять в двоичном виде и использовать в языке программирования, поддерживающем соответствующую технологию. COM (Component Object Model компонентная модель объектов), и технологии создания распределенных приложений CORBA (Common Object Request Broker Architecture общая архитектура с посредником обработки запросов объектов)
Технология СОМ
АНАЛИЗ ТРЕБОВАНИЙ И ОПРЕДЕЛЕНИЕ СПЕЦИФИКАЦИЙ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
В результате анализа требований получают спецификации программного обеспечения в виде – текстовых описаний, – структурных схем и – диаграмм. В процессе определения спецификаций – строят общую модель предметной области и – конкретизируют основные функции программного продукта и его поведение при взаимодействии с окружающей средой.
Модель упрощенное представление реальности. это чертеж системы. Моделирование необходимо для решения следующих задач: – 1) визуализации системы; – 2) определения ее структуры и поведения; – 3) получения шаблона, позволяющего затем сконструировать систему; – 4) документирования принимаемых решений, используя полученные модели. UML (Unified Modeling Language) унифицированный язык моделирования.
Полная модель разрабатываемого ПО Модель использования – содержит описание функций программного обеспечения с точки зрения пользователя. Логическая модель – описывает ключевые понятия моделируемого программного обеспечения (классы, интерфейсы и т. п.), т. е. средства, обеспечивающие его функциональность. Модель реализации – определяет реальную организацию программных модулей в среде разработки. Модель процессов – отображает организацию вычислений и позволяет оценить производительность, масштабируемость и надежность программного обеспечения. Модель развертывания – показывает, каким образом программные компоненты размещаются на конкретном оборудовании.
Диаграммы UML диаграммы вариантов использования; диаграммы классов; диаграммы пакетов; диаграммы последовательностей действий; диаграммы кооперации; диаграммы деятельностей; диаграммы состояний объектов; диаграммы компонентов; диаграммы размещения.
На этапе анализа постановки задачи и требований к системе используют диаграммы прецедентов, диаграммы деятельностей – для расшифровки содержания прецедентов, диаграммы состояний – для моделирования поведения объектов со сложным состоянием, диаграммы классов – для выделения концептуальных сущностей предметной области задачи, диаграммы последовательностей действий.
Определение прецедентов Прецеденты (варианты использования Use Cases) – это подробные процедурные описания вариантов использования системы всеми заинтересованными лицами, а также внешними системами, – т. е. всеми, кто (или что) может рассматриваться как акторы (actors) действующие лица.
варианты использования Основные – обеспечивают выполнение функций проектируемой системы; Вспомогательные – обеспечивают выполнение настроек системы и ее обслуживание; Дополнительные – служат для удобства пользователя. Пример 1. pdf Пример 1.doc
Диаграммы вариантов использования
Диаграммы классов концептуальный уровень (на этапе анализа) – на котором диаграммы классов отображают связи между основными понятиями предметной области; уровень спецификаций (на этапе проектирования) – на котором диаграммы классов отображают связи объектов этих классов; уровень реализации (на этапе реализации) – на котором диаграммы классов непосредственно показывают поля и операции конкретных классов.
Класс служит для обозначения множества объектов, которые имеют одинаковую структуру, поведение и отношения с объектами из других классов
Имя класса должно быть уникальным в пределах диаграммы или совокупности диаграмм классов пакета. Свойства (атрибуты) [кратность] {строка-свойство} Квантор видимости – общедоступный (public) обозначается «+»; – защищенный (protected) обозначается «#»; – закрытый (private) обозначается «-».
Имя атрибута – представляет собой строку текста, которая используется в качестве идентификатора соответствующего атрибута и является уникальной в пределах данного класса. Кратность атрибута – показывает количество конкретных атрибутов данного типа, входящих в состав класса, и обозначается следующим образом: [нижняя_граница 1, верхняя_граница 1, нижняя_граница 2, верхняя_граница 2, нижняя_границаk, верхняя_границаk], – где нижняя_граница и верхняя_граница являются положительными целыми числами, каждая пара которых служит для обозначения отдельного замкнутого интервала целых чисел. – В качестве верхней границы может использоваться специальный символ «*», который означает произвольное положительное целое число, т. е. неограниченное сверху значение кратности соответствующего атрибута.
Тип атрибута – указывается строкой текста, имеющей осмысленное значение в пределах пакета или модели, к которым относится рассматриваемый класс. – Можно также определять тип атрибута в зависимости от языка программирования, который будет использоваться для реализации данной модели. – Например: имя_студента [1..2] String здесь имя_студента является именем атрибута, тип атрибута String (строка)
Исходное значение – служит для задания некоторого начального значения для соответствующего атрибута в момент создания отдельного экземпляра класса. – Например: имя студента [1..2] : String = Иван. Строка-свойство – служит для указания фиксированных значений атрибута. – Эти значения не могут быть изменены в программе при работе с данным типом объектов. – При отсутствии строки-свойства значение соответствующего атрибута может быть изменено в программе. – Например, строка-свойство в записи атрибута стипендия Integer = {1500} означает фиксированную сумму стипендии для всех объектов класса «Студент». – Запись данного атрибута в виде стипендия Integer = 1500 означает, что при создании нового экземпляра Студент для него устанавливается по умолчанию стипендия в Это значение можно изменить в программе.
Операцией класса (методом класса) называется именованный сервис, который предоставляется по требованию любым объектом данного класса. это абстракция того, что можно делать с объектом. Класс может содержать любое число операций (в частности, не содержать ни одной операции). Набор операций класса является общим для всех объектов данного класса.
(список параметров) {строка-свойство} Имя операции – представляет собой строку текста, которая используется в качестве идентификатора соответствующей операции, и поэтому должна быть уникальной в пределах данного класса. Имя является единственным обязательным элементом синтаксического обозначения операции.
Список параметров – является перечнем разделенных запятой формальных параметров, каждый из которых может быть представлен в следующем виде: : = – Вид параметра это одно из ключевых слов in, out или inout со значением in по умолчанию. – Имя параметра есть идентификатор соответствующего формального параметра. – Выражение типа описывает тип возвращаемого значения для соответствующего формального параметра. – Значение по умолчанию выражение для значения формального параметра.
Выражение типа возвращаемого значения – также является зависимой от языка реализации спецификацией типа или типов значений параметров, которые возвращаются объектом после выполнения соответствующей операции. – Операция может не возвращать никакого значения. Строка-свойство – служит для определения значений свойств данного элемента. – Строка-свойство может отсутствовать, если никакие свойства не специфицированы. Пример: +создать() обозначает абстрактную операцию по созданию отдельного объекта класса, которая является общедоступной (public) и не содержит формальных параметров. Эта операция не возвращает никакого значения после своего выполнения.
Диаграмма последовательностей системы графическая модель, которая для определенного сценария варианта использования показывает динамику взаимодействия объектов во времени. Для построения диаграммы последовательностей системы необходимо: – идентифицировать каждое действующее лицо (объект) и изобразить для него линию жизни. Крайним слева на диаграмме изображается объект, который является инициатором взаимодействия. Правее изображается другой объект, который непосредственно взаимодействует с первым, и т. д.; – из описания варианта использования определить множество системных событий и их последовательность; – изобразить системные события в виде линий со стрелкой на конце между линиями жизни действующих лиц и системы, а также указать имена событий и списки передаваемых значений.
Линия жизни объекта – служит для обозначения периода времени, в течение которого объект существует в системе и, следовательно, может потенциально участвовать во всех ее взаимодействиях. Сообщение – представляет собой законченный фрагмент информации, который отправляется одним объектом другому. Объект, принявший сообщение, должен отреагировать на него какой-либо последовательностью действий, направленных на решение поставленной задачи.