Программное обеспечение
<<  Программного продукта слайды Программный принцип управления компьютером  >>
Появление паттернов проектирования
Появление паттернов проектирования
Martin C. Robert, Martin Micah Agile Principles, Patterns, and
Martin C. Robert, Martin Micah Agile Principles, Patterns, and
Технология разработки программного обеспечения
Технология разработки программного обеспечения
Картинки из презентации «Технология разработки программного обеспечения. Принципы проектирования» к уроку информатики на тему «Программное обеспечение»

Автор: Тузовский. Чтобы познакомиться с картинкой полного размера, нажмите на её эскиз. Чтобы можно было использовать все картинки для урока информатики, скачайте бесплатно презентацию «Технология разработки программного обеспечения. Принципы проектирования.pptx» со всеми картинками в zip-архиве размером 301 КБ.

Технология разработки программного обеспечения. Принципы проектирования

содержание презентации «Технология разработки программного обеспечения. Принципы проектирования.pptx»
Сл Текст Сл Текст
1Технология разработки программного 23использовать готовые и уже проверенные
обеспечения (вторая часть) Принципы решения, а не снова и снова «изобретать
проектирования. проф. каф. ОСУ Тузовский велосипед». Решение данной проблемы взяли
А.Ф. Лекция 6. на себя паттерны проектирования.
2Шаблоны разработки ПО. 24Описание паттернов. В общем случае
3Шаблоны разработки ПО. В разработке ПО каждый паттерн состоит из таких
часто встречаются проблемы, которые уже составляющих: Имя является уникальным
решались ранее в других проектах. В связи идентификатором паттерна. Имена паттернов
с тем, что контексты, в которых данная проектирования, описанных в [GoF],
проблема решалась, могут различаются являются общепринятыми. 2. Задача
(другой тип приложения, другая платформа описывает ситуацию, в которой можно
или другой язык программирования), все применять паттерн. 3. Решения задачи
обычно заканчивается повторением проектирования в виде паттерна определяет
проектирования и реализации данного общие функции каждого элемента дизайна и
решения, тем самым возникает ситуация отношения между ними. 4. Результаты
«повторного изобретения колеса». представляют следствия применения
4Стиль мышления эксперта. При решении паттерна.
конкретных проблем эксперты обычно не 25Практическое применение паттернов
пытаются разработать новое решение, проектирования. Паттерны проектирования
который отличается от уже имеющихся. представляют общие решения типичных задач
Действия эксперта: вспоминают аналогичную объектно-ориентированного проектирования.
проблему, которую они уже решали, Не обязательно для хорошего дизайна
стараются повторно используют суть ранее системы проектировать её части на основе
принятого решения для решения новой паттернов проектирования, Специально
проблемы. Такой «стиль мышление» в подводить дизайн ПО под уже известные
терминах пар «проблема - решение», шаблоны. С практической точки зрения,
является общим для множества различных отталкиваться от паттернов проектирования
предметных областей, таких, как: не является самым эффективным и гибким
архитектура; экономика; программная подходом. Это может привести к решению не
инженерия. отвечающему требованиям гибкости и
5Зачем нужны шаблоны. Шаблоны позволяют масштабируемости решению.
основываться на коллективном опыте 26Базовые принципы гибкого
квалифицированных инженеров по проектирования. Всегда формировать простой
проектированию. Они фиксируют дизайн: из двух предложенных решений, как
существующий, хорошо-зарекомендовавший правило, лучшим является то, что проще.
себя опыт разработки и помогает Слабая зависимость: дизайн модуля должен
содействовать хорошим методам быть таким, чтобы в случае его модификации
проектирования. Каждый шаблон имеет дело с зависимые фрагменты системы не требовали
конкретной, многократно встречающейся (или почти не требовали) изменений. При
проблемой в области проектирования и таком подходе к проектированию логической
реализации. структуры системы можно увидеть типичные
6Определение шаблона. Шаблон это задачи, которые уже решены с помощью
описание хорошо проверенной, обобщенной паттернов проектирования.
схемы решения некоторой часто 27В этом случае целесообразно применить
повторяющейся проблемы (задачи) разработки уже готовое шаблонное решение (паттерн),
ПО, которая возникает в некоторых при этом нужно оценить возможности и
специфических условиях (контексте). Схема перспективы на основании его описания. Не
решения проблемы задается путем следует забывать о принципах простого
определения используемых (составляющих) дизайна и слабой зависимости, излишнее
компонент; их ответственностей; способов желание воспользоваться паттерном
их взаимодействия. проектирования может способствовать
7Свойства шаблонов. Шаблоны описывают формированию плохого дизайна. Дизайн
решения для часто повторяющихся задач программной системы постоянно развивается
проектирования, которая возникают в -- успешно примененный паттерн со временем
некоторых специфических ситуациях. Шаблоны может трансформироваться в совсем другой
документируют накопленный, хорошо или вовсе исчезнуть.
зарекомендовавший себя опыт 28Унификация терминологии. Благодаря
проектирования. Шаблоны определяют и паттернам проектирования произошла: ссылки
описывают абстракции, которые находятся на на паттерны проектирования, как на
более высоком уровне, чем уровень известные решения задач, можно добавлять в
отдельных классов и экземпляров или проектную документацию, а также
компонентов. Шаблоны предоставляют общий использовать в дискуссиях. Практический
словарь терминов и общее понимание опыт разработки программного обеспечения
принципов проектирования. говорит, что любой полученный результат
8Свойства шаблонов (2). Шаблоны всегда подлежит тщательной проверке.
являются средствами документирования 29Организация каталога шаблонов
архитектур ПО. Шаблоны поддерживают проектирования ПО. Паттерны проектирования
конструирование ПО с определенными различаются степенью детализации и уровнем
свойствами. Шаблоны помогают разрабатывать абстракции и должны быть каким-то образом
сложные и разнородные архитектуры ПО. организованы. Создана классификация,
Шаблоны помогают справиться с сложностью позволяющая ссылаться на семейства
ПО. взаимосвязанных паттернов. Она позволяет
9Типы паттернов. В ОО анализе и быстрее освоить паттерны, описываемые в
проектировании разработано много различных каталоге, указывает направление поиска
паттернов. Архитектурные паттерны. новых.
Описывают фундаментальные способы 30Критерии классификации. Паттерны можно
структурирования программных систем. Эти классифицировать по двум критериям : Цель
паттерны относятся к уровню систем и -- отражает назначение паттерна. Уровень
подсистем, а не классов. Паттерны -- говорит о том, к чему обычно
проектирования. Описывают структуру применяется паттерн.
программных систем в терминах классов. 31Классификация по целям паттернов
Наиболее известными в этой области проектирования. Порождающие паттерны
являются 23 паттерна, описанные в [GoF]. (Creational Patterns). Определяют способы
Паттерны анализа. Представляют общие схемы создания объектов в системе. Структурные
организации процесса паттерны (Structural Patterns). Описывают
объектно-ориентированного моделирования. способы построение сложных структур из
10Типы шаблонов разработки ПО. На этапе классов и объектов. Поведенческие паттерны
анализа системы: шаблоны анализа (analysis (Behavioral Patterns). Описывают способы
patterns ) – комбинации классов для взаимодействия между объектами.
описания стандартных задач прикладной 32Классификация по уровням паттернов
области; На этапе проектирования системы проектирования. Второй критерий: уровень -
шаблоны архитектуры (architecture говорит о том, к чему обычно применяется
patterns). шаблоны проектирования (design паттерн: уровень классов - описывают
patters); специфичные для конкретного отношения между классами и их подклассами.
языка программирования идиомы. такие отношения выражаются с помощью
11Шаблоны архитектуры ПО. Архитектурные наследования, поэтому они статичны, то
шаблоны описывают базовые схемы есть зафиксированы на этапе компиляции.
структурной организации программных уровень объектов - описывают отношения
систем. Архитектурные шаблоны между объектами, которые могут изменяться
предоставляют набор заранее определенных во время выполнения и потому более
подсистем, определяют их ответственности динамичны.
включают правила и рекомендации по 33Классификация паттернов
организации взаимодействия между ними. проектирования. Цель Уровень. Порождающие
12Шаблоны архитектуры ПО являются паттерны. Структурные паттерны. Паттерны
шаблонами самого высокого уровня в системе поведения. Класс. Factory Method. Adapter
шаблонов ПО. Они помогают определить (класса). Interpreter Template Method.
базовую структуру программной системы. Объект. Abstract Factory Singleton
Каждая работа по разработке ПО управляется Prototype Builder. Adapter (объекта)
ее структурой: детальное описание decorator proxy composite bridge flyweight
подсистем; коммуникация и взаимодействие facade. Iterator Command Observer Visitor
между разными частями системы; их Mediator State Strategy Memento Chain of
последующее расширение. Каждый Responsibility.
архитектурный шаблон помогает разработчику 34Список паттернов проектирования
достигнуть некоторого глобального свойства (порождающие). Factory Method (фабричный
разрабатываемой системы. Например, метод) Определяет интерфейс для создания
адаптируемости пользовательского объектов, при этом выбранный класс
интерфейса. инстанцируется подклассами. Abstract
13Виды архитектурных шаблонов. Layers Factory (абстрактная фабрика)
(Уровни), Pipes and Filters (каналы и Предоставляет интерфейс для создания
фильтры), Blackboard (информационная семейств, связанных между собой, или
"доска"), Broker (брокер), независимых объектов, конкретные классы
Model-View-Controller которых неизвестны. Singleton (одиночка)
(Модель-Представление-Контроллер), Гарантирует, что некоторый класс может
Presentation-Abstraction-Control иметь только один экземпляр, и
(Представление-Абстракция-Контроллер), предоставляет глобальную точку доступа к
Microkernel (микроядро), Reflection нему. Prototype (прототип) Описывает виды
(отражение). создаваемых объектов с помощью прототипа и
14Шаблоны (паттерны) проектирования. создает новые объекты путем его
15Шаблоны проектирования. Шаблоны копирования. Builder (строитель) Отделяет
проектирования это шаблоны среднего конструирование сложного объекта от его
уровня. Они меньше по масштабу, чем представления, позволяя использовать один
шаблоны архитектуры, но находятся на более и тот же процесс конструирования для
высоком уровне, чем специфические для создания различных представлений.
языков программирования идиомы. Применение 35Список паттернов проектирования
шаблонов проектирования не влияет на (структурные ). Adapter (адаптер)
базовую структуру ПС, но может оказать Преобразует интерфейс класса в некоторый
сильное влияние на архитектуру подсистем. другой интерфейс, ожидаемый клиентами.
16Как задачи проектирования решаются с Обеспечивает совместную работу классов,
помощью паттернов. Паттерны проектирования которая была бы невозможна без данного
позволяют разными способами решать многие паттерна из-за несовместимости
задачи, с которыми постоянно сталкиваются интерфейсов. Bridge (мост) Отделяет
проектировщики ОО приложений. Наиболее абстракцию от реализации, благодаря чему
часто возникающие задачи: Поиск подходящих появляется возможность независимо изменять
объектов Определение степени детализации то и другое. Decorator (декоратор)
объекта Описание интерфейсов объекта. Динамически возлагает на объект новые
17Введение в паттерны проектирования. функции. Применяются для расширения
Термин «паттерн» (pattern) следует имеющейся функциональности и являются
понимать как «образец». Часто его заменяют гибкой альтернативой порождению
термином «шаблон» (template). Любой подклассов.
паттерн описывает задачу, которая снова и 36Список паттернов проектирования
снова возникает в нашей работе, а также (структурные) (2). Proxy (заместитель)
принцип её решения, причем таким образом, Подменяет другой объект для контроля
что решение можно использовать миллион доступа к нему Facade (фасад)
раз, ничего не изобретая заново. Предоставляет унифицированный интерфейс к
(Кристофер Александр). Такое определение множеству интерфейсов в некоторой
паттерна существует в архитектуре (и подсистеме. Определяет интерфейс более
строительстве), но оно очень подходит и высокого уровня, облегчающий работу с
для определения паттерна в подсистемой. Composite (компоновщик)
программировании. Группирует объекты в древовидные структуры
18Появление паттернов проектирования. «A для представления иерархий типа
pattern language: towns, buildings, «часть-целое». Позволяет клиентам работать
construction» (1977 г.), «The timeless way с единичными объектами так же, как с
of building» (1979 г.). Идея паттернов группами объектов. Flyweight
проектирования первоначально возникла в (приспособленец) Использует разделение для
архитектуре. Архитектор Кристофер эффективной поддержки большого числа
Александр – автор двух революционных книг, мелких объектов.
содержащих описание шаблонов в 37Список паттернов проектирования
строительной архитектуре и городском (поведения). Interpreter (интерпретатор)
планировании. Предложил общие идеи, Для заданного языка определяет
которые используются и в областях, не представление его грамматики, а также
имеющих отношения к архитектуре, в том интерпретатор предложений языка,
числе и в программировании. использующий это представление. Template
19Развитие паттернов в программировании. Method (шаблонный метод) Определяет скелет
В 1987 году Кент Бэк (Kent Beck) и Вард алгоритма, перекладывая ответственность за
Каннигем (Ward Cunningham) разработали некоторые его шаги на подклассы. Позволяет
шаблоны разработки ПО для графических подклассам переопределять шаги алгоритма,
оболочек на языке Smalltalk. В 1991 году не меняя его общей структуры. Iterator
Эрих Гамма совместно с Ричардом Хелмом (итератор) Дает возможность
(Richard Helm), Ральфом Джонсоном (Ralph последовательно обойти все элементы
Johnson) и Джоном Влиссидсом (John составного объекта, не раскрывая его
Vlissides) публикует книгу «Design внутреннего представления.
Patterns — Elements of Reusable 38Список паттернов проектирования
Object-Oriented Software» [GoF91]. Гамма (поведения) (2). Command (команда)
Э., Хелм Р., Джонсон Р., Влиссидес Дж. Инкапсулирует запрос в виде объекта,
«Приемы объектно-ориентированного позволяя тем самым параметризовывать
проектирования. Паттерны проектирования.» клиентов типом запроса, устанавливать
- СПб: Питер, 2001. - 386 с. В этой книге очередность запросов, протоколировать их и
описаны 23 паттерна проектирования. поддерживать отмену выполнения операций.
20Мартин Фаулер (Martin Fowler) Observer (наблюдатель) Определяет между
опубликовал книгу «Enterprise Patterns» объектами зависимость типа один-ко-многим,
описаны типичные решения при разработке так что при изменении состоянии одного
корпоративных приложений, Например, работа объекта все зависящие от него получают
с базами данных, транзакциями и т.п. извещение и автоматически обновляются.
Джошуа Кериевски (Joshua Kerievsky) Visitor (посетитель) Представляет
показал, как можно постоянным операцию, которую надо выполнить над
рефакторингом, руководствуясь базовыми элементами объекта. Позволяет определить
принципами ООП, обеспечить эволюцию кода, новую операцию, не меняя классы элементов,
перемещая его от одного паттерна к другому к которым он применяется.
в зависимости от требований. После начала 39Список паттернов проектирования
активного использования модульного (поведения) (3). Mediator (посредник)
тестирования (Unit Testing) программного Определяет объект, в котором
кода все паттерны при этом были инкапсулировано знание о том, как
переосмыслены с позиций тестируемости. взаимодействуют объекты из некоторого
21Martin C. Robert, Martin Micah Agile множества. Способствует уменьшению числа
Principles, Patterns, and Practices in C#. связей между объектами, позволяя им
- Prentice Hall, 2006, 768 p. Роберт работать без явных ссылок друг на друга.
Мартин, Мика Мартин Принципы, паттерны и Это, в свою очередь, дает возможность
методики гибкой разработки на языке C#. - независимо изменять схему взаимодействия.
Пер. с англ. – СПб.: Символ-Плюс, 2011. – Memento (хранитель) Позволяет, не нарушая
768 с. Robert C. Martin President and инкапсуляции, получить и сохранить во
Chief Executive Officer Object Mentor . внешней памяти внутреннее состояние
22Понятие паттерна проектирования. объекта, чтобы позже объект можно было
Паттерн проектирования ПО – это описание восстановить точно в таком же состоянии.
взаимодействия объектов и классов, 40Список паттернов проектирования (5).
адаптированных для решения общей задачи State (состояние) Позволяет объекту
проектирования в конкретном контексте варьировать свое поведение при изменении
[GoF]. Следует отличать паттерны внутреннего состояния. При этом создается
проектирования от идиом. Паттерны впечатление, что поменялся класс объекта.
проектирования не зависят от выбора языка Strategy (стратегия) Определяет семейство
(хотя их реализации, зачастую, зависимы от алгоритмов, инкапсулируя их все и позволяя
языка программирования). Идиомы — это подставлять один вместо другого. Можно
паттерны, описывающие типичные решения на менять алгоритм независимо от клиента,
конкретном языке программирования. который им пользуется.
23Причины возникновения паттернов 41Список паттернов проектирования
проектирования. В конце 80-х годов XX века (поведения) (4). Chain of Responsibility
в области разработки ПО (в частности, ОО (цепочка обязанностей) Позволяет избежать
проектировании) накопилось много различных жесткой зависимости отправителя запроса от
похожих по своей сути решений. Эти решения его получателя, при этом запросом начинает
требовали систематизации, обобщения на обрабатываться один из нескольких
всевозможные ситуации, доступного объектов. Объекты-получатели связываются в
описания, способствующего пониманию их цепочку, и запрос передается по цепочке,
людьми, которые до этого никогда их не пока какой-то объект его не обработает.
использовали. Такое упорядочение знаний в 42
ОО проектировании позволило бы повторно
Технология разработки программного обеспечения. Принципы проектирования.pptx
http://900igr.net/kartinka/informatika/tekhnologija-razrabotki-programmnogo-obespechenija.-printsipy-proektirovanija-75771.html
cсылка на страницу

Технология разработки программного обеспечения. Принципы проектирования

другие презентации на тему «Технология разработки программного обеспечения. Принципы проектирования»

«3d проектирование» - Цель и задачи курса 3D проектирование. Навыки использования программы трехмерного проектирования. Images – примеры работ в 3Д. Цель курса: познакомиться с программой для проектирования трехмерных сцен. Выполнение построений с использованием параметрических объектов (примитивов). Выполнение построений с использованием сплайнов (тела вращения, выдавливания).

«Программное обеспечение компьютера 10 класс» - Программное обеспечение. ОС выводит на экран приглашение в какой-то определенной форме. Разработка современного ПО требует очень высокой квалификации от программистов. Интерактивный режим. Программное обеспечение компьютера постоянно пополняется, развивается, совершенствуется. Сервисные программы. Главной частью системного программного обеспечения является операционная система (ОС).

«Программное обеспечение» - Нажатия кнопки Reset. ? Дополнение к ранее выпущенным программам. текстовые редакторы: Блокнот, WordPad. Служебные программы: Дефрагментация диска, Сведения о системе, Системный монитор и т.д. Звуковые редакторы: Звукозапись. Файловые менеджеры: Total Commander, FAR. Драйверы к новым устройствам или улучшенные драйверы к уже существующим.

«Программное обеспечение 8 класс» - Программное обеспечение компьютера. Установка и загрузка операционной системы. Дистрибутив. Системы программирования – системы для разработки программ на конкретном языке программирования. Программное обеспечение (ПО) –все многообразие программ, используемых на современном компьютере. Системный диск.

«Типы программного обеспечения» - Что такое программное обеспечение компьютера? Игра Косынка. Прикладное ПО. Corel Draw. Системы программирования. Образовательные программы. KMPlayer. Игра Шахматы. Мультимедийные программы. MS Access. Состав прикладного программного обеспечения. Программное обеспечение компьютера. Photoshop. Профессиональные программы.

«Программное обеспечение компьютера» - Операционная система. Программное обеспечение компьютера. Системное ПО. Системное. Системы программирования — инструмент для работы программиста. ОС работает с пользователем в интерактивном (диалоговом) режиме. Некоторые ОС: MS-DOS, Windows, Linux. Аппаратное обеспечение. Главной частью системного ПО является операционная система (ОС).

Программное обеспечение

33 презентации о программном обеспечении
Урок

Информатика

130 тем
Картинки
900igr.net > Презентации по информатике > Программное обеспечение > Технология разработки программного обеспечения. Принципы проектирования