Similar presentations:
Введение в программную инженерию. ЖЦПО. Лекция 4
1.
Введение в программнуюинженерию
Лекция 4
ЖЦПО.
Стандарт 12207.
Классические модели ЖЦПО.
2.
Жизненный цикл (life cycle)Развитие системы, продукта, услуги,
проекта или других изготовленных
человеком объектов, начиная со
стадии разработки концепции и
заканчивая прекращением
применения
3.
Модель жизненного циклаПО (life cycle model)
Структура процессов и действий,
связанных с жизненным циклом,
организуемых в стадии, которые
также служат в качестве общей
ссылки для установления связей и
взаимопонимания сторон.
4.
Модель жизненного циклапрограммного обеспечения
структура, определяющая
последовательность выполнения и
взаимосвязи процессов, действий и задач
на протяжении всего жизненного цикла
программного обеспечения
зависит от специфики, масштаба и
сложности проекта и специфики условий, в
которых система создается и
функционирует
5.
Модель ЖЦ конкретного ПОопределяет характер процесса его
создания, который представляет собой
совокупность упорядоченных во времени,
взаимосвязанных и объединенных в
стадии работ, выполнение которых
необходимо и достаточно для создания
ПО, соответствующего заданным
требованиям.
6.
Типовые стадии ЖЦ ПОАнализ (формирование требований)
Планирование
Проектирование
Разработка (Кодирование)
Тестирование
Документирование
Эксплуатация:
Ввод в эксплуатацию
Эксплуатация и сопровождение
Снятие с эксплуатации
7.
Стадия формированиятребований к ПО (анализ)
планирование работ
проведение обследования деятельности
автоматизируемого объекта (организации)
построение моделей деятельности
организации:
модели "AS-IS" («как есть») - позволяют
выявлять узкие места в существующих
технологиях
модели "ТО-ВЕ" («как должно быть»)
8.
Стадия проектирования (1)Разработка системного проекта: Что должна делать система?
Строятся на основе модели "ТО-ВЕ"
Определяются:
архитектура системы,
ее функции,
внешние условия функционирования,
интерфейсы и распределение функций между
пользователями и системой,
требования к программным и информационным
компонентам,
состав исполнителей и сроки разработки
Документальным результатом является техническое
задание
9.
Стадия проектирования (2)Разработка технического проекта: Как построить
систему, чтобы она удовлетворяла
предъявленным к ней требованиям?
На основе системного проекта осуществляется
собственно проектирование системы,
включающее проектирование архитектуры
системы и детальное проектирование
Модели проектируемой системы при этом
уточняются и детализируются до необходимого
уровня
10.
Модель«Делай, пока не будет сделано»
Вход
Кодирование и
тестирование
Выход
Делай, пока не
будет сделано
была широко распространена до 1970 гг
была заменена на каскадную модель
Обычно используют студенты
11.
Стратегии конструированияпрограммного обеспечения
однократный проход (водопадная стратегия)
– линейная последовательность этапов
конструирования;
инкрементная стратегия – начале процесса
определяются все пользовательские и системные
требования, оставшаяся часть конструирования
выполняется в виде последовательности версий;
эволюционная стратегия – система также
строится в виде последовательности версий, но в
начале процесса определены не все требования.
12.
Характеристики стратегийконструирования ПО
13.
Каскадная модель(водопад) (1)
старейшая парадигма процесса разработки ПО
автор Уинстон Ройс
разработана в 1970 г.
разработка рассматривается как
последовательность этапов
переход на следующий, иерархически нижний
этап происходит только после полного
завершения работ на текущем этапе
возвратов на пройденные стадии не
предусматривается
14.
Каскадная модель(водопад) (2)
Системный анализ
Анализ требований
Проектирование
Кодирование
Тестирование
Эксплуатация и
сопровождение
15.
Каскадная модель(водопад) (2)
каждая стадия заканчивается получением некоторых
результатов, которые служат в качестве исходных
данных для следующей стадии
каждая стадия завершается выпуском полного
комплекта документации, достаточной для того,
чтобы разработка могла быть продолжена другой
командой разработчиков
критерием качества разработки является точность
выполнения спецификаций технического задания
основное внимание разработчиков
сосредоточивается на достижении оптимальных
значений технических характеристик разрабатываемого ПО: производительности, объема памяти и др.
16.
Каскадная модель(водопад) (4)
17.
Достоинства классическогожизненного цикла
На каждой стадии формируется законченный
набор проектной документации, отвечающий
критериям полноты и согласованности
Выполняемые в логичной последовательности
стадии работ позволяют планировать сроки
завершения всех работ и соответствующие
затраты
Простота и понятность
Удобство в применении (поэтапный процесс
разработки)
Обеспечивает строгий контроль
Позволяет контролировать качество
18.
Каскадная модель(водопад) (5)
19.
Недостатки классическогожизненного цикла
Реальные проекты часто требуют отклонения
от стандартной последовательности шагов
Цикл основан на точной формулировке
исходных требований к ПО (реально в начале
проекта требования заказчика определены
лишь частично)
Результаты проекта доступны заказчику только
в конце работы
Сложность возврата к предшествующим фазам
Неприменима в случае изменяющихся
требований
Очень высокие затраты на документирование
20.
Модель с промежуточнымконтролем (1)
Системный анализ
Анализ требований
Проектирование
Кодирование
Тестирование
Эксплуатация и
сопровождение
21.
Модель с промежуточнымконтролем (2)
Требования фиксируются в виде технического задания
на все время создания ПО.
Согласование получаемых результатов с пользователями
производится только в точках, планируемых после
завершения каждой стадии (возможна корректировка
результатов, если они не затрагивают требования,
изложенные в техническом задании).
Пользователи могут внести существенные замечания
только после того, как работа над системой будет
полностью завершена.
В случае неточного изложения требований или их
изменения в течение длительного периода создания ПО
пользователи получают систему, не удовлетворяющую
их потребностям.
22.
23.
Достоинства и недостаткиМинусы:
Сложно планировать возвраты.
Высокие риски срыва сроков и перерасхода
бюджета.
Плюсы:
Возможен возврат назад.
Учет изменения во внешнем мире (в ТЗ).
Повышается удовлетворенность заказчика.
24.
Инкрементная модель25.
Инкрементная модель (1)является классическим примером
инкрементной стратегии конструирования
объединяет элементы последовательной
водопадной модели с итерационной
философией макетирования
каждая линейная последовательность
вырабатывает поставляемый инкремент
программного обеспечения
26.
Инкрементная модель (2)Оценка
осуществимости
проекта
Инкремент 1
Инкремент 2
Анализ
требований
Анализ
требований
Разработка
Разработка
Внедрение
Внедрение
27.
Инкрементная модель (3)28.
Инкрементная модель (4)Первый инкремент приводит к получению
базового продукта, реализующего базовые
требования.
План следующего инкремента предусматривает
модификацию базового продукта,
обеспечивающую дополнительные
характеристики и функциональность.
По своей природе инкрементный процесс
итеративен, но, в отличие от макетирования,
инкрементная модель обеспечивает на каждом
инкременте работающий продукт.
29.
Достоинстваинкрементной модели
Декомпозиция проекта на более мелкие
законченные части
Результат инкремента – функциональный
продукт
Снижение затрат на проектирование
Более точное планирование
Возможность использования с другими
моделями
Современная реализация – экстремальное
программирование
30.
Недостаткиинкрементной модели
Необходимость
приоритезации требований
Отсутствие четких
требований для всей системы
в целом на ранней стадии
проекта
31.
Стоимость ошибок32.
Макетирование(прототипирование)
Это процесс создания модели требуемого
программного продукта.
Основная цель – снять неопределенности в
требованиях заказчика.
Модель может принимать одну из трех форм:
бумажный макет или макет на основе ПК (изображает
или рисует человеко-машинный диалог);
работающий макет (выполняет некоторую часть
требуемых функций);
существующая программа (характеристики которой
затем должны быть улучшены).
33.
МакетированиеОжидание заказчика
Построение/уточненение
макета
Оценка макета
заказчиком
Итерации повторяются до тех пор, пока макет не
выявит все требования заказчика и, тем самым,
не даст возможность разработчику понять, что
должно быть сделано.
34.
МакетированиеДостоинство:
обеспечивает
определение полных
требований к ПО.
Недостатки:
заказчик может принять
макет за продукт;
разработчик может
принять макет за
продукт.
35.
Спиральная модельавтор Барри Боэм
предложена в 1988 г.
классический пример применения
эволюционной стратегии конструирования
базируется на лучших свойствах
классического жизненного цикла и
макетирования, к которым добавляется
новый элемент – анализ риска,
отсутствующий в этих парадигмах.
36.
Особенностьспиральной модели
прикладное ПО создается не сразу, как в
случае каскадного подхода, а по частям с
использованием метода
прототипирования
под прототипом понимается
действующий программный компонент,
реализующий отдельные функции и
внешние интерфейсы
разрабатываемого ПО
37.
Спиральнаямодель
Анализ текущей ситуации,
выработка единого понимания
контекста среди проектной команды
1. Понимание
контекста
Принятие решения о
переходе на
следующую фазу
2. Анализ
рисков
3. Разработка
плана
5. Управление и
планирование
Контроль и
управление
изменениями
4. Разработка
продукта
Концептуальное проектирование, физическое
проектирование, прототипирование,
кодирование, подготовка тестовой спецификации
и т.п.
38.
Этапыв спиральной модели
Планирование – определение целей,
вариантов и ограничений.
Анализ риска – анализ вариантов и
распознавание/выбор риска.
Конструирование – разработка
продукта следующего уровня.
Оценивание – оценка заказчиком
текущих результатов конструирования.
39.
Действияв спиральной модели
1. Начальный сбор требований и планирование
проекта
2. То же, но на основе рекомендаций заказчика
3. Анализ риска на основе начальных требований
4. Анализ риска на основе реакции заказчика
5. Переход к комплексной системе
6. Начальный макет системы
7. Следующий уровень макета
8. Сконструированная система
9. Оценивание заказчиком
40.
Спиральная модель41.
Основная проблемаспирального цикла
определение момента перехода на следующую
стадию
для решения необходимо ввести временные
ограничения на каждую из стадий жизненного
цикла
переход осуществляется в соответствии с планом,
даже если не вся запланированная работа
закончена
план составляется на основе статистических
данных, полученных в предыдущих проектах, и
личного опыта разработчиков
42.
Достоинстваспиральной модели (1)
Наиболее реально (в виде эволюции)
отображает разработку программного
обеспечения
Позволяет явно учитывать риск на каждом
витке эволюции разработки
Включает шаг системного подхода в
итерационную структуру разработки
Использует моделирование для уменьшения
риска и совершенствования программного
изделия
43.
Достоинстваспиральной модели (2)
Позволяет использовать каскадный подход на
завершающих стадиях проекта в тех случаях,
когда требования к системе оказываются
полностью определенными
Сохраняет преимущества каскадной модели
Позволяет увидеть систему на ранних этапах
Заложен механизм управления рисками
Сочетает итеративный и инкрементальный
подход
Позволяет учитывать обратную связь от
заказчика
44.
Недостаткиспиральной модели
Повышенные требования к заказчику
Трудности контроля и управления
временем разработки
Сложность использования
Может оказаться дорогой для маленьких
проектов
45.
ВыводыРазработка ПО с использованием формальной
модели повышает вероятность успешного
завершения проекта
Идеальных моделей не существует
Любая модель должна быть адаптирована для
использования в компании
В компании могут использоваться разные модели
для проектов разных типов
На основе классических моделей можно создавать
новые гибридные модели
46.
Введение в программнуюинженерию
Лекция 5
Техническое задание.
47.
Правильное конструирование –залог качества ПО
Конструирование — крупная часть процесса
разработки ПО.
Конструирование занимает центральное место в
процессе разработки ПО.
Повышенное внимание к конструированию может
намного повысить производительность труда
программистов.
Результат конструирования — исходный код —
часто является единственным верным описанием
программы.
Конструирование — единственный процесс,
который выполняется во всех случаях
48.
Зачем нужны официальныетребования?
Явные требования помогают гарантировать, что
функциональность системы определяется
пользователем, а не программистом.
Если требования сформулированы явно,
пользователь может проанализировать и
утвердить их.
Явные требования позволяют не гадать, чего
хочет пользователь. Кроме того, наличие явных
требований помогает избегать споров.
Требования позволяют определить
функциональность системы до начала
программирования.
49.
Зачем нужны официальныетребования?
Внимание к требованиям помогает свести к
минимуму изменения системы после начала
разработки.
Не имея грамотно определенных
требований, вы можете правильно
представлять общую проблему, но упустить
из виду ее специфические аспекты
Требования подобны воде. Опираться на них
легче если они заморожены. Аноним.
50.
Специфическиефункциональные требования
Определены ли все способы ввода данных в
систему с указанием источника, точности,
диапазона значений и частоты ввода?
Определены ли все способы вывода данных
системой с указанием назначения, точности,
диапазона значений, частоты и формата?
Определены ли все форматы вывода для
отчетов и т. д.?
51.
Специфическиефункциональные требования
Определены ли все внешние аппаратные и
программные интерфейсы?
Определены ли все внешние
коммуникационные интерфейсы с указанием
протоколов установления соединения,
проверки ошибок и коммуникации?
Определены ли все задачи, в выполнении
которых нуждается пользователь?
Определены ли данные, используемые в
каждой задаче, и данные, являющиеся
результатом выполнения каждой задачи?
52.
Специфическиенефункциональные требования
Требования к качеству.
Определено ли ожидаемое пользователем
время реакции для всех необходимых
операций?
Определены ли другие временные
параметры, такие как время обработки
данных, скорость их передачи и пропускная
способность системы?
Определен ли уровень защищенности
системы?
53.
Специфическиенефункциональные требования
Определена ли надежность системы, в том числе такие
аспекты, как следствия сбоев в ее работе,
информация, которая должна быть защищена от
сбоев, и стратегия обнаружения и исправления
ошибок?
Определены ли минимальные требования программы к
объему памяти и свободного дискового пространства?
Определены ли аспекты удобства сопровождения
системы, в том числе способность системы
адаптироваться к изменениям специфических
функций, ОС и интерфейсов с другими приложениями?
Включено ли в требования определение успеха? Или
неудачи?
54.
Качество требованийНаписаны ли требования на языке, понятном
пользователям? Согласны ли с этим пользователи?
Нет ли конфликтов между требованиями?
Определено ли приемлемое равновесие между
параметрами-антагонистами, такими как
устойчивость к нарушению исходных предпосылок
и корректность?
Не присутствуют ли в требованиях элементы
проектирования?
Согласован ли уровень детальности требований?
Следует ли какое-нибудь требование определить
подробнее? Менее подробно?
55.
Качество требованийДостаточно ли ясны и понятны требования, чтобы их
можно было передать независимой группе
конструирования?
Согласны ли с этим разработчики?
Каждое ли требование уместно для проблемы и ее
решения?
Можно ли проследить каждое требование до его
источника в проблемной среде?
Можно ли протестировать каждое требование? Можно
ли будет провести независимое тестирование, которое
позволит сказать, выполнены ли все требования?
Определены ли все возможные изменения требований
и вероятность каждого изменения?
56.
Полнота требованийУказаны ли недостающие требования, которые
невозможно определить до начала разработки?
Полны ли требования в том смысле, что если
приложение будет удовлетворять всем
требованиям, то оно будет приемлемо?
Не вызывают ли какие-нибудь требования у вас
дискомфорта?
Исключили ли вы требования, которые не
поддаются реализации и были включены лишь для
успокоения клиента или начальника?
57.
Техническое задание (ТЗ)Исходный документ на проектирование
технического объекта.
Устанавливает основное назначение
разрабатываемого объекта, его технические и
тактико-технические характеристики,
показатели качества и технико-экономические
требования, предписание по выполнению
необходимых стадий создания документации
(конструкторской, технологической,
программной и т. д.) и её состав, а также
специальные требования.
58.
Техническое задание (ТЗ)Документ на разработку, содержащее
описание целей выполнения работы, сроков
выполнения, требований к результатам
работы, форм отчетности.
Основное назначение ТЗ это выработка
единого взаимопонимания между
постановщиком задачи, лидером и
разработчиками проекта поставленной цели.
Кроме того, техническое задание является
основополагающим документом для
определения временных и материальных
затрат на разработку.
59.
Советы по разработке ТЗПрежде, чем составлять техническое
задание, пользователь должен понять, что
именно он хочет получить. Следует
определить цель задания, ключевые
особенности желаемого результата,
нарисовать (написать, создать таблицу) для
себя желаемый выход работы.
Собрать документацию, согласно которой вы
выполняете работу, для которой необходимо
приложение (программа). Прочитать ее
внимательно, с карандашом, отмечая
особенности и тонкости.
60.
Трудности и как их избежатьСрыв сроков.
Цена-сроки-объем работ.
Обратная связь.
Старайтесь фиксировать все, о чем
договариваетесь.
Презентуйте результат.
Старайтесь не делать только как пожелает
заказчик. Как правило, худший вариант в
данном случае и будет принят. Думайте.
61.
Маленькие хитростиМентальные карты.
Версии и названия файлов.
Структура.
Форматирование.
Цените себя и свое время, ведь готовый
продукт — результат ваших усилий.
62.
Советы по разработке ТЗСледует понять, какие параметры следует задавать на
входе, какова периодичность работы с желаемой
программой (отчетом, приложением, утилитой), сколько
данных примерно будет получаться на выходе и все ли
они нужны (к примеру, если вам нужна сумма выручки от
продаж пяти категорий изделий по категориям без
наименований, не стоит требовать создания отчета в
миллион строк с указанием каждой продажи с
детальными характеристиками). Далеко не каждому
специалисту необходима максимально детализированная
информация, обработка которой создает значительную
нагрузку для вычислительных систем.
Подробно описать необходимую информацию, указать ее
особенности, исключения, необходимый уровень
детализации. Следует продумать все мелочи: формат
чисел, округление, доли, ставки и проч.
63.
Советы по разработке ТЗИзбавиться в техническом задании от расплывчатых
описаний, лишних слов, слов-паразитов. Проверить
пунктуацию – зачастую ошибки в ней искажают смысл
задания. Задание на проект – это документ и
лексика в нем должна быть соответствующая.
Однако не следует стараться написать все на
техническом языке, если вы не владеете терминологией
на должном уровне.
Обсудить написанное задание с непосредственным
исполнителем, попытаться разрешить все вопросы,
внимательно прислушиваясь к мнению собеседника. Не
стоит забывать, что вы свою сферу деятельности знаете
лучше и только вы можете точно объяснить, какой
инструмент вам необходим для эффективно работы. ITспециалист знает свое дело и не обязан знать нюансы
работы каждого отдела в организации.
64.
Советы по разработке ТЗПередать задание в работу за разумный срок до
окончательной реализации, чтобы была
возможность протестировать результат и
исправить возможные ошибки.
Если ваши подчиненные также будут пользоваться
созданным приложением, постарайтесь им
самостоятельно объяснить особенности работы с
приложением – это избавит IT-специалиста от
необходимости сто раз объяснять одно и то же.
Помните, что ваше задание будет служить
справочником для вас — в нем всегда можно
посмотреть описание информации, вспомнить
забытое требование.
65.
Техническое заданиеКакие элементы должны быть
прописаны, а какие – в уме?
Все элементы и документы
должны быть прописаны и
никаких моментов не должно
быть в уме!
Правило работы с клиентом:
Больше бумаги – чище *опа!
66.
Техническое заданиеОбычно то, что вы держите в уме,
никогда не совпадает с тем, что держит в
уме заказчик.
Проект – «вещь» живая и, само собой, во
время его выполнения, возникнут новые
веяния и цели/задачи, которые клиент
захочет сразу же реализовать.
67.
Введение в программнуюинженерию
Лекция 8
Архитектура ПО
68.
Определения понятия«Архитектура ПО» (1)
Архитектура
ПО
–
это
структура
программного обеспечения, т.е. изложение
его программных элементов,
их внешних
свойств и установленных между ними
отношений
Архитектура
ПО
–
это
структура
компонентов
программы
или
системы,
взаимосвязи, а также принципы и нормы их
проектирования и развития во времени
Л. Басс
69.
Определения понятия«Архитектура ПО» (2)
Архитектура ПО – набор систем, состоящий
из всех проектных решений по поводу
структур программы и взаимодействий между
этими структурами, которые составляют
системы
Л.Г. Гагарина
Архитектура ПО – это структура программы
или
вычислительной
системы,
которая
включает программные компоненты, видимые
снаружи свойства этих компонентов, а также
отношение между ними
Wikipedia
70.
Архитектура ПО. НачалоНаучно-исследовательская работа
Эдсгера Дейкстры в 1968 году
Исследовательская работа Дэвида
Парнаса в начале 1970-х
Применение принципов архитектуры
программного обеспечения с середины
1980-х
71.
Первый этап – «Стихийное»программирование
Структура
первых
программ
Период: 60-е года XX века
Языки программирования: Ассемблер, FORTRAN, ALGOL
Возможность использования подпрограмм
Сложность программ = возможности программиста
Подход в разработке: «снизу-вверх»
Тестирование и отладка 80% времени разработки
72.
Архитектура программы сглобальной областью данных
Типичная программа состояла
из основной программы,
области глобальных данных и
набора подпрограмм.
Слабым местом такой
архитектуры было то, что при
увеличении количества
подпрограмм возрастала
вероятность искажения части
глобальных данных какойлибо подпрограммой.
Архитектура
программ с
глобальной
областью
данных
73.
Архитектура программы слокальными данными
Чтобы сократить количество таких ошибок в подпрограммах,
было предложено размещать локальные данные.
Сложность разрабатываемого программного обеспечения при
использовании подпрограмм с локальными данными по-прежнему
ограничивалась возможностью программиста отслеживать
процессы обработки данных, но уже на новом уровне.
Архитектура
программы,
использующей
подпрограммы
с локальными
данными
74.
Архитектура программы,состоящей из модулей
75.
Особенности структурногоподхода
Период: 70-80-е года XX века
Языки программирования: ALGOL-68, Pascal,
C, Ада, Modula
Использование принципа «декомпозиции» разбиение на части
Подход в разработке: «сверху-вниз»
Развитие подхода в виде концепции
«модульного программирования»
Появление межмодульных интерфейсов
76.
Третий этап – Объектныйподход к программированию
Архитектура
программы при
объектноориентированном
подходе
77.
Особенностиобъектного подхода
Период: 80-90-е года XX века.
Языки программирования: С++, Pascal, Java
Появление классов.
Использование механизмов: наследование,
полиморфизм, композиция.
Развитие визуального
программирования:Borland Delphi, Borland
C++Builder, MS Visual C++.
Недостатки: отсутствие стандартов при
работе компиляторов, изменение объекта
требует перекомпиляции проекта.
78.
Четвертый этап – компонентныйподход и CASE-технологии
Взаимодействие программных компонентов различных типов
79.
Особенностикомпонентного подхода
Период: 90-00-е года XX века.
Языки программирования: С++, Java,
Delphi, Visual Basic.
Технологии COM и CORBA.
Технологии OLE и ActiveX.
CASE-технологии.
Совмещение структурного, объектного и
компонентного подхода при разработке.
80.
Пятый этап – итеративныйподход и гибкие методологии
81.
Особенностиитеративного подхода
Период: 00-е-настоящее время XXI века
Языки программирования: современное
множество языков
Использование гибких методологий
Разработка маленькими командами за
короткий промежуток времени
Сложность разрабатываемого
программного обеспечения возрастает с
каждой следующей итерацией
82.
Гибкие методологиии их особенности
Динамические формирование требования
Результатом каждой итерации является
рабочий программный продукт
Противоречивость требования заказчика
по окончанию итерации выбранной
архитектуре
Быстрейший и простейший метод решения
задачи
83.
Архитектурные стилиКлиентсерверная
архитектура
Монолитное
приложение
Архитектура
вокруг БД
Peer-to-Peer
Распределенные
вычисления
Трех-уровневая
архитектура
Plug-In
Front-end and
back-end
84.
Монолитное приложениеОдноуровневое программное обеспечение,
в котором интерфейс пользователя и
логика работы с данными объединены в
единственное приложение без
дополнительных модулей.
Является автономным.
Независимость от других приложений.
85.
Клиент-сервернаяархитектура
Вычислительная или сетевая архитектура, в
которой задания или сетевая нагрузка
распределены между поставщиками услуг
(сервисов), называемыми серверами, и
заказчиками услуг, называемыми клиентами.
Нередко клиенты и серверы
взаимодействуют через компьютерную сеть и
могут быть как различными физическими
устройствами, так и программным
обеспечением.
86.
Пример клиент-сервернойархитектуры
87.
Основные элементы клиентсерверной архитектурыНабор серверов.
Набор клиентов.
Сеть для взаимодействия клиентов и
серверов.
88.
Плюсы и минусыархитектуры
Неработоспособнос
+ Минимальные требования к
ть сервера
оборудованию на котором
останавливает всю
работает клиент.
работу клиентов
+ Надежность и защищенность
сервера на котором хранятся
- Наличие
данные.
системного
+ Использование ресурсов сервера администратора
клиентами на различных
- Дороговизна
платформах
оборудования для
+ разгрузка сети за счет передачи
сервера.
небольших объемов данных
между клиентов и сервером
89.
Трех-уровневая архитектураАрхитектурная модель программного
комплекса, предполагающая наличие в нём
трёх компонентов:
1. клиентского приложения (обычно
называемого «тонким клиентом» или
терминалом);
2. сервера приложений, к которому
подключено клиентское приложение;
3. сервера базы данных, с которым работает
сервер приложений.
90.
Пример трех-уровневойархитектуры
91.
Плюсы и минусы трехуровневой архитектуры+ масштабируемость - сложность создания
приложений
+ конфигурируемость
- сложность
+ безопасность
развертывания и
администрирования
+ надежность
высокие
требования
к
+ низкие требования
производительности
к сети
серверов
+ низкие требования - высокие требования к
к терминалам
сети между серверами
92.
Архитектура вокруг БДКлючевую роль играет база данных
Бизнес-логика хранится в БД.
Сервер приложений управляет лишь
обращениями пользователей к БД.
Приложение отвечает только за
интерфейс пользователя.
Использование стандартных инструментов
СУБД.
93.
Пример архитектурывокруг БД
94.
Распределенные вычисленияСпособ решения трудоёмких
вычислительных задач с использованием
нескольких компьютеров, чаще всего
объединённых в параллельную
вычислительную систему.
Распределённые вычисления применимы
также в распределенных системах
управления.
Неограниченный рост производительности
за счет масштабирования
95.
Пример архитектурыраспределенных вычислений
96.
Пример архитектуры на основеоблачных
вычислений
97.
АрхитектураFront-End и Back-End
Front-End – публичная часть проекта,
обеспечивающая прием запросов от
пользователей, трансляцию запросов к
Back-End и выдачу непосредственного
содержимого пользователю.
Back-End – исполнительная часть системы,
которая обеспечивает выполнение скриптов,
формирование контентных страниц и работу
бизнес-логики приложений.
98.
ПримерFront-End
архитектуры
и Back-End
99.
Архитектура Peer-to-peerОверлейная компьютерная сеть, основанная
на равноправии участников.
В такой сети отсутствуют выделенные
серверы, а каждый узел (peer) является как
клиентом, так и сервером.
В отличие от архитектуры клиент-сервера,
такая организация позволяет сохранять
работоспособность сети при любом
количестве и любом сочетании доступных
узлов.
Участниками сети являются пиры.
100.
Пример архитектурыPeer-to-peer
101.
Пример102.
Архитектура на основеplug-in
Независимо компилируемый
программный модуль, динамически
подключаемый к основной программе и
предназначенный для расширения и/или
использования её возможностей.
Плагины обычно выполняются в виде
разделяемых библиотек.
103.
Пример архитектуры на основе plug-in104.
Причины появленияархитектуры на основе plug-in
Привлечение сторонних
разработчиков.
Поддержка и добавление нового
функционала.
Возможность уменьшить размер
приложения.
Разделение исходного кода из-за
несовместимости лицензий.
105.
Следующий этапВыбор темы проекта
Планирование
Составление технического задания
Проектирование
________________
Тестирование
Защита проекта
Методологии разработки ПО