- •ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- •Основы проектирования программных систем
- •Основы проектирования программных систем Цели изучения и рассматриваемые вопросы
- •Основы проектирования программных систем Вспомним
- •Основы проектирования программных систем Особенности процесса синтеза ПС
- •Основы проектирования программных систем
- •Понятие архитектуры программного средства Этап архитектурного проектирование
- •Этап архитектурного проектирование Понятие архитектуры программного средства
- •Этап архитектурного проектирование Результат архитектурного проектирования
- •Этап архитектурного проектирование Процессы архитектурного проектирования
- •ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- •Этап архитектурного проектирование Структурирование системы
- •Этап архитектурного проектирование Структурирование системы
- •Структурирование системы Модель хранилища данных
- •Структурирование системы Модель хранилища данных
- •Структурирование системы Модель хранилища данных
- •Структурирование системы Модель клиент-сервер
- •Структурирование системы Модель абстрактной машины
- •Структурирование системы Модель абстрактной машины
- •Структурирование системы Модель абстрактной машины
- •ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- •Этап архитектурного проектирование Моделирование управления
- •Моделирование управления Централизованное управление
- •Моделирование управления Централизованное управление - ВЫЗОВ-ВОЗВРАТ
- •Моделирование управления Централизованное управление - ДИСПЕТЧЕР
- •Моделирование управления Централизованное управление
- •Моделирование управления Событийное управление
- •Моделирование управления Событийное управление - ПЕРЕДАЧА СООБЩЕНИЙ
- •Моделирование управления Событийное управление - ПЕРЕДАЧА СООБЩЕНИЙ
- •Моделирование управления Событийное управление - ПРЕРЫВАНИЯ
- •Моделирование управления Событийное управление - ПРЕРЫВАНИЯ
- •ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- •Этап архитектурного проектирование Модульная декомпозиция
- •Модульная декомпозиция Программный модуль
- •Модульная декомпозиция Модели
- •Модульная декомпозиция Характеристики программного модуля
- •Характеристики программного модуля Размер модуля
- •Характеристики программного модуля
- •Характеристики программного модуля
- •Характеристики программного модуля Связность (прочность)
- •Характеристики программного модуля Связность (прочность)
- •Характеристики программного модуля Связность (прочность)
- •Характеристики программного модуля Сцепление
- •ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- •Основы проектирования программных систем
- •Методы проектирования Метод восходящей разработки
- •Методы проектирования Метод нисходящей разработки
- •Методы проектирования
- •Методы проектирования Разработка программного модуля
- •Разработка программного модуля Структурное программирование
- •Разработка программного модуля Пошаговая детализация
- •Разработка программного модуля Пошаговая детализация
- •Методы проектирования
ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
(Software engineering)
Учебный курс
очного обучения по специальностям 220400 «Программное обеспечение вычислительной техники и автоматизированных систем»
351500 «Математическое обеспечение и администрирование информационных систем» кафедры
МОП ЭВМ
Л Е К Ц И Я 8 семестр
4.2
Основы
проектирования
программных систем.
Архитектурное,
проектирование.
Структурирование
системы.
В.В.Хашковский, к.т.н., доц. каф. МОП ЭВМ ТРТУ
Д.П.Калачев, доц., к.т.н., доц. каф. МОП ЭВМ
ТРТУ
Этап архитектурного проектирование Структурирование системы
Четких различий между подсистемами и модулями нет, но, будут полезными следующие определения.
Подсистема — это система (т.е. удовлетворяет "классическому" определению "система"), операции (методы) которой не зависят от сервисов, предоставляемых другими подсистемами. Подсистемы состоят из модулей и имеют определенные интерфейсы, с помощью которых взаимодействуют с другими подсистемами.
Модуль — это обычно компонент системы, который предоставляет один или несколько сервисов для других модулей. Модуль может использовать сервисы, поддерживаемые другими модулями. Как правило, модуль никогда не рассматривается как независимая система. Модули обычно состоят из ряда других, более простых компонентов.
© 2005, В.В.Хашковский, Д.П.Калачев. |
12 |
Этап архитектурного проектирование Структурирование системы
Выделяют следующие основные модели системного структурирования:
хранилища данных (репозитария) – подсистемы разделяют данные, хранящиеся в общей памяти;
клиент-сервер (в т.ч. трехуровневая или трехзвенная модель) – для распределенных систем где данные и процессы распределены между несколькими процессорами;
абстрактной машины – набор уровней (слоев) существенно независимых друг от друга.
© 2005, В.В.Хашковский, Д.П.Калачев. |
13 |
Структурирование системы Модель хранилища данных
Например, интегрированная среда разработки ПО (CASE).
Design |
|
Code |
editor |
|
generator |
|
|
|
Design |
Project |
Program |
translator |
repository |
editor |
Design |
|
Report |
analyser |
|
generator |
|
|
|
© 2005, В.В.Хашковский, Д.П.Калачев. |
14 |
Структурирование системы Модель хранилища данных
|
Design |
Code |
|
editor |
generator |
Design |
Project |
Program |
translator |
repository |
editor |
Есть как преимущества так и недостатки: |
analyser |
|
generator |
|
Design |
|
Report |
|
|
|
|
1.+ Не нужно передавать данные между подсистемами.
2.- Требуется согласование структуры данных хранилища, изменение требований к одной из подсистем приводит к изменению требований к хранилищу и д.б. учтено в других подсистемах.
3.+ Подсистемы не обязательно должны знать как используются данные в других системах.
4.- Большие объемы накапливаются – модернизация требует больших затрат.
5.+ Средства обеспечения безопасности (сохранности) данных централизованы – проще организовать.
6.- К разным подсистемам могут предъявляться разные требования по безопасности, а здесь они едины.
7.+ Прозрачность – если новые подсистемы согласованы с хранилищем, то их просто интегрировать в систему.
8.- Есть проблемы в создании распределенного хранилища.
© 2005, В.В.Хашковский, Д.П.Калачев. |
15 |
Структурирование системы Модель хранилища данных
|
Design |
Code |
|
editor |
generator |
Design |
Project |
Program |
translator |
repository |
editor |
Есть как преимущества так и недостатки: |
Design |
|
Report |
|
|
||
|
analyser |
|
generator |
|
|
|
|
Advantages
Efficient way to share large amounts of data
Sub-systems need not be concerned with how data is produced Centralised management e.g. backup, security, etc.
Sharing model is published as the repository schema
Disadvantages
Sub-systems must agree on a repository data model. Inevitably a compromise
Data evolution is difficult and expensive
No scope for specific management policies
Difficult to distribute efficiently
© 2005, В.В.Хашковский, Д.П.Калачев. |
16 |
Структурирование системы Модель клиент-сервер
Например, Film and picture library
Client 1 |
Client 2 |
Client 3 |
Client 4 |
Widebandwidth network
Catalogue |
Video |
Picture |
Hypertext |
|
server |
server |
server |
server |
|
Catalogue |
Film clip |
Digitized |
Hypertext |
|
files |
photographs |
web |
||
|
© 2005, В.В.Хашковский, Д.П.Калачев. |
17 |
|
Client 1 |
Client 2 |
Client 3 |
Client 4 |
Структурирование системы |
|
Widebandwidth network |
|
|
Модель клиент-сервер |
Catalogue |
Video |
Picture |
Hypertext |
|
server |
server |
server |
server |
|
Catalogue |
Film clip |
Digitiz ed |
Hypertext |
|
files |
photographs |
web |
|
|
|
Три основных компонента:
1.Набор серверов, предоставляющих сервисы.
2.Набор клиентов, потребляющих сервисы.
3.Сеть, посредством которой клиенты получаю доступ к сервисам.
Клиенты должны уметь обращаться (знать имена) к серверам, последние же не обязаны этого знать.
© 2005, В.В.Хашковский, Д.П.Калачев. |
18 |
|
Client 1 |
Client 2 |
Client 3 |
Client 4 |
Структурирование системы |
|
Widebandwidth network |
|
|
Модель клиент-сервер |
Catalogue |
Video |
Picture |
Hypertext |
|
server |
server |
server |
server |
|
Catalogue |
Film clip |
Digitiz ed |
Hypertext |
|
files |
photographs |
web |
Advantages
Distribution of data is straightforward
Makes effective use of networked systems. May require cheaper hardware
Easy to add new servers or upgrade existing servers
Disadvantages
No shared data model so sub-systems use different data organisation. data interchange may be inefficient
Redundant management in each server
No central register of names and services - it may be hard to find out what servers and services are available
© 2005, В.В.Хашковский, Д.П.Калачев. |
19 |
Структурирование системы Модель абстрактной машины
Например, Version management system
Version management
Object management
Database system
Operating
system
© 2005, В.В.Хашковский, Д.П.Калачев. |
20 |