ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

34
ТЕХНОЛОГИЯ ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ ПРОГРАММИРОВАНИЯ Глава 1 Глава 1

description

ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ. Глава 1. Технология программирования. Основные понятия и подходы. - PowerPoint PPT Presentation

Transcript of ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Page 1: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

ТЕХНОЛОГИЯ ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИПРОГРАММИРОВАНИ

ЯЯ

Глава 1Глава 1

Page 2: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Технология программирования. Технология программирования. Основные понятия и подходы.Основные понятия и подходы. ПрограммированиеПрограммирование — сравнительно — сравнительно

молодая и быстро развивающаяся молодая и быстро развивающаяся отрасль науки и техники. Опыт ведения отрасль науки и техники. Опыт ведения реальных разработок и реальных разработок и совершенствования, имеющихся совершенствования, имеющихся программных и технических средств программных и технических средств постоянно переосмысливается, в постоянно переосмысливается, в результате чего появляются новые результате чего появляются новые методы, методологии и технологии, методы, методологии и технологии, которые, в свою очередь, служат которые, в свою очередь, служат основой более современных средств основой более современных средств разработки программного обеспечения. разработки программного обеспечения.

Page 3: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

1.1. Технология 1.1. Технология программирования и основные программирования и основные этапы ее развитияэтапы ее развития..

Технологией программированияТехнологией программирования называют называют совокупность методов и средств, используемых в совокупность методов и средств, используемых в процессе разработки программного обеспечения. процессе разработки программного обеспечения.

Технология программирования представляет собой Технология программирования представляет собой набор технологических инструкций, включающих:набор технологических инструкций, включающих:

- указание последовательности выполнения - указание последовательности выполнения технологических операций;технологических операций;

- - перечисление условий, при которых выполняется та перечисление условий, при которых выполняется та или иная операция;или иная операция;

- - описания самих операций, где для каждой операции определены описания самих операций, где для каждой операции определены исходные данные, результаты, а также инструкции, нормативы, исходные данные, результаты, а также инструкции, нормативы, стандарты, критерии и методы оценки и т. п. стандарты, критерии и методы оценки и т. п.

Page 4: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Структура описания технической операции

Методические материалы инструкции, нормативы и

стандарты критерии оценки результатов

Исходные данные в стандартном представлении

(документы, рабочие

материалы, результаты

предыдущей операции)

Результаты в стандартном

представлении

Исполнители, программные и

технические средства

Технологическая операция

Рис. 1.1

Page 5: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Виды технологий Виды технологий программирования:программирования: Технологии, используемые на конкретных этапах Технологии, используемые на конкретных этапах

разработки или для решения отдельных задач этих разработки или для решения отдельных задач этих этапов.этапов.

Технологии, охватывающие несколько этапов Технологии, охватывающие несколько этапов или весь процесс разработки.или весь процесс разработки.

В основе лежит ограниченно применимый В основе лежит ограниченно применимый метод,метод, позволяющий решить конкретную задачу.позволяющий решить конкретную задачу.

В основе лежит базовый метод или В основе лежит базовый метод или подходподход,, определяющий совокупность методов, используемых определяющий совокупность методов, используемых на разных этапах разработки, или на разных этапах разработки, или методологию.методологию.

Page 6: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Основные этапы развития Основные этапы развития программирования, как программирования, как наукинауки

Первые программы Первые программы имели простейшую имели простейшую структуру. Они структуру. Они состояли из состояли из собственно собственно программы на программы на машинном языке и машинном языке и обрабатываемых обрабатываемых ею данных. ею данных.

I I этап – «Стихийное» этап – «Стихийное» программированиепрограммирование..

Рис. 1.2. Структура первых программ

Программа

Данные

Page 7: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Основные этапы развития Основные этапы развития программирования, как программирования, как наукинауки

Появление ассемблеров позволило Появление ассемблеров позволило вместо двоичных или 16-ричных кодов вместо двоичных или 16-ричных кодов использовать символические имена использовать символические имена данных и мнемоники кодов операций.данных и мнемоники кодов операций.

I I этап – «Стихийное» этап – «Стихийное» программированиепрограммирование..

С появлением языков программирования С появлением языков программирования высокого уровня, таких, как высокого уровня, таких, как FORTRANFORTRAN и и ALGOLALGOL, , снизился уровень детализации операций.снизился уровень детализации операций. Революционным было появление в языках Революционным было появление в языках средств, позволяющих оперировать средств, позволяющих оперировать подпрограммами.подпрограммами.

Page 8: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Основные этапы развития Основные этапы развития программирования, как программирования, как наукинауки

Типичная программа Типичная программа того времени того времени состояла изсостояла из

основной основной программы, программы,

области области глобальных глобальных данных данных

набора подпрограмм набора подпрограмм (в основном (в основном библиотечных), библиотечных), выполняющих выполняющих обработку всех обработку всех данных или их части.данных или их части.

Рис. 1.3. Архитектура программы с глобальной областью данных

I I этап – «Стихийное» этап – «Стихийное» программированиепрограммирование..

Основная программа

Данные

1 2 n

Подпрограммы

Page 9: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Основные этапы развития Основные этапы развития программирования, как программирования, как наукинауки

Использовалась Использовалась разработка «снизу-разработка «снизу-вверх» - подход, при вверх» - подход, при котором вначале котором вначале проектировали и проектировали и реализовывали реализовывали сравнительно сравнительно простые простые подпрограммы, из подпрограммы, из которых затем которых затем пытались построить пытались построить сложную программу.сложную программу.

Рис. 1.4. Архитектура программы, использующей подпрограммы с

локальными данными

I I этап – «Стихийное» этап – «Стихийное» программированиепрограммирование..

Основная программа

Глобальные данные

1 2 n

Подпрограммы с локальными данными

Данные Данные Данные

Page 10: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Основные этапы развития Основные этапы развития программирования, как программирования, как наукинауки

Структурный подход к программированию – Структурный подход к программированию – это совокупность рекомендуемых совокупность рекомендуемых технологических приемов, охватывающих технологических приемов, охватывающих выполнение всех этапов разработки выполнение всех этапов разработки программного обеспечения. В его основе лежит программного обеспечения. В его основе лежит декомпозициядекомпозиция (разбиение на части) сложных (разбиение на части) сложных систем с целью последующей реализации в систем с целью последующей реализации в виде отдельных небольших (до 40 - 50 виде отдельных небольших (до 40 - 50 операторов) подпрограмм. С появлением других операторов) подпрограмм. С появлением других принципов декомпозиции (объектного, принципов декомпозиции (объектного, логического и т. д.) данный способ получил логического и т. д.) данный способ получил название название процедурнойпроцедурной декомпозиции.декомпозиции.

II II этап –этап – Структурный подход к Структурный подход к программированиюпрограммированию.. Процедурные языки программированияПроцедурные языки программирования включают основные «структурные» операторы включают основные «структурные» операторы передачи управления, поддерживают передачи управления, поддерживают вложение подпрограмм, локализацию и вложение подпрограмм, локализацию и ограничение области «видимости» данных. ограничение области «видимости» данных. Наиболее известные языки этой группы:Наиболее известные языки этой группы:

PLPL/1,/1, ALGOLALGOL-68,-68, PascalPascal, , С. С.

Дальнейший рост сложности и Дальнейший рост сложности и размеров разрабатываемого размеров разрабатываемого программного обеспечения потребовал программного обеспечения потребовал развития развития структурирования данных.структурирования данных. Модульное программированиеМодульное программирование – это – это выделение групп подпрограмм, выделение групп подпрограмм, использующих одни и те же глобальные использующих одни и те же глобальные данные в отдельно компилируемые данные в отдельно компилируемые модулимодули (библиотеки подпрограмм). (библиотеки подпрограмм).

Page 11: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Основные этапы развития Основные этапы развития программирования, как программирования, как наукинауки

Технологию Технологию модульного модульного программированпрограммирования ия поддерживают поддерживают современные современные версии языков версии языков PascalPascal и С (С++), и С (С++), языки Ада и языки Ада и ModulaModula..

Рис. 1.5. Архитектура программы, состоящей из модулей

Основная программа

II II этап –этап – Структурный подход к Структурный подход к программированиюпрограммированию..

Структурный Структурный подход в сочетании подход в сочетании с модульным с модульным программированием программированием позволяет получать позволяет получать достаточно достаточно надежные надежные программы, размер программы, размер которых которых не не превышаетпревышает 100 100 000000 операторов. операторов.

Для разработки Для разработки программного программного обеспечения обеспечения большого большого объема было объема было предложено предложено использовать использовать объектный объектный подход.подход.

Модуль k

Подпрограммы с локальными данными

Данные

1

Данные

nk

Данные

Модуль l

Подпрограммы с локальными данными

Данные

1

Данные

nl

Данные

Глобальные данные

Модули с локальными данными и подпрограммами

Page 12: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Основные этапы развития Основные этапы развития программирования, как программирования, как наукинауки

Объектно-ориентированное Объектно-ориентированное программирование программирование – – этоэто технология технология создания сложного программного создания сложного программного обеспечения, основанная на обеспечения, основанная на представлении программы в виде представлении программы в виде совокупности совокупности объектовобъектов, , каждый из каждый из которых является экземпляром которых является экземпляром определенного типа определенного типа (класса), (класса), а классы а классы образуют иерархию с образуют иерархию с наследованием наследованием свойств. Взаимодействие программных свойств. Взаимодействие программных объектов в такой системе осуществляется объектов в такой системе осуществляется путем передачи путем передачи сообщений. сообщений.

III III этап –этап – Объектный подход к Объектный подход к программированиюпрограммированию..

Page 13: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Архитектура программы при объектно-ориентированном программировании

Рис. 1.6. Архитектура программы при объектно- ориентированном программировании

Подпрограммы с локальными данными

Данные

1

Данные

nl

Данные

Объект l

Подпрограммы с локальными данными

Данные

1

Данные

nl

Данные

Объект L

Подпрограммы с локальными данными

Данные

1

Данные

nl

Данные

Объект 2Подпрограммы с

локальными данными

Данные

1

Данные

nk

Данные

Объект S

Сообщения

Page 14: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Основные этапы развития Основные этапы развития программирования, как программирования, как наукинауки

Основным достоинством объектно-Основным достоинством объектно-ориентированного программирования по ориентированного программирования по сравнению с модульным программированием сравнению с модульным программированием является «более естественная» является «более естественная» декомпозиция программного обеспечения. декомпозиция программного обеспечения.

III III этап –этап – Объектный подход к Объектный подход к программированиюпрограммированию..

Это приводит к более полной локализации данных Это приводит к более полной локализации данных и интегрированию их с подпрограммами обработки.и интегрированию их с подпрограммами обработки.Объектный подход предлагает новые способы Объектный подход предлагает новые способы организации программ, основанные на механизмах:организации программ, основанные на механизмах:

наследования,наследования, полиморфизма,полиморфизма, композиции, композиции, наполнения.наполнения.

Page 15: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Основные этапы развития Основные этапы развития программирования, как программирования, как наукинауки

Среды, поддерживающие Среды, поддерживающие визуальное визуальное программирование:программирование:

DelphiDelphi С++ С++ BuilderBuilder VisualVisual С++ С++..

III III этап –этап – Объектный подход к Объектный подход к программированиюпрограммированию..

Результатом визуального проектирования Результатом визуального проектирования является заготовка будущей программы, в является заготовка будущей программы, в которую уже внесены соответствующие которую уже внесены соответствующие коды.коды.

Page 16: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Основные этапы развития Основные этапы развития программирования, как программирования, как наукинауки

Недостатки объектного подхода к Недостатки объектного подхода к программированию:программированию:

отсутствие стандартов компоновки двоичных отсутствие стандартов компоновки двоичных результатов компиляции объектов в единое результатов компиляции объектов в единое целое; целое;

изменение реализации одного из изменение реализации одного из программных объектов, как минимум, связано программных объектов, как минимум, связано с перекомпиляцией соответствующего с перекомпиляцией соответствующего модуля и перекомпоновкой всего модуля и перекомпоновкой всего программного обеспечения. программного обеспечения.

III III этап –этап – Объектный подход к Объектный подход к программированиюпрограммированию..

Page 17: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Основные этапы развития Основные этапы развития программирования, как программирования, как наукинауки

Компонентный подходКомпонентный подход предполагает предполагает построение программного обеспечения из построение программного обеспечения из отдельных компонентов физически отдельных компонентов физически отдельно существующих частей отдельно существующих частей программного обеспечения, которые программного обеспечения, которые взаимодействуют между собой через взаимодействуют между собой через стандартизованные двоичные интерфейсы.стандартизованные двоичные интерфейсы.

IV IV этап –этап – Компонентный подход и Компонентный подход и CASECASE-технологии.-технологии.

Компонентный подход лежит в основе Компонентный подход лежит в основе технологий, разработанных на базе технологий, разработанных на базе COMCOM, и технологии создания , и технологии создания распределенных приложений распределенных приложений CORBACORBA..

Page 18: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Основные этапы развития Основные этапы развития программирования, как программирования, как наукинауки

Технология СОМТехнология СОМ определяет определяет общую общую парадигму парадигму взаимодействия взаимодействия программ любых программ любых типов: типов:

библиотек, библиотек, приложений,приложений, операционной операционной

системы. системы.

Рис. 1.7. Взаимодействие программных компонентов различных типов

IV IV этап –этап – Компонентный подход и Компонентный подход и CASECASE-технологии.-технологии.

Компьютер 2

Объект

Операционная система

Приложение 3

Библиотека

Объект

Приложение 2

Объект

ОбъектОперационная

система

Объект

Приложение 1

Компьютер 1

Page 19: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Основные этапы развития Основные этапы развития программирования, как программирования, как наукинауки

Объекты СОМ: Объекты СОМ:

IV IV этап –этап – Компонентный подход и Компонентный подход и CASECASE-технологии.-технологии.

Классы СОМ: Классы СОМ:

- включают поля и методы; - могут реализовывать несколько - могут реализовывать несколько

интерфейсов. интерфейсов.

поддерживают поддерживают наследование интерфейсов, наследование интерфейсов, но не но не поддерживают поддерживают наследования реализациинаследования реализации..

Page 20: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Основные этапы развития Основные этапы развития программирования, как программирования, как наукинауки

Типы серверов:Типы серверов: внутренний сервер;внутренний сервер; локальный сервер;локальный сервер; удаленный сервер.удаленный сервер.

IV IV этап –этап – Компонентный подход и Компонентный подход и CASECASE-технологии.-технологии.

Взаимодействие клиента и сервера обеспечивается Взаимодействие клиента и сервера обеспечивается базовыми механизмами СОМ или базовыми механизмами СОМ или DCOMDCOM. При . При использовании локальных и удаленных серверов в использовании локальных и удаленных серверов в адресном пространстве клиента создается адресном пространстве клиента создается proxyproxy--объектобъект - заместитель объекта СОМ, а в адресном - заместитель объекта СОМ, а в адресном пространстве сервера СОМ - заглушка, пространстве сервера СОМ - заглушка, соответствующая клиенту. соответствующая клиенту.

Page 21: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Основные этапы развития Основные этапы развития программирования, как программирования, как наукинауки

OLEOLE--automationautomation - технология создания - технология создания программируемых приложений, программируемых приложений, обеспечивающая программируемый доступ обеспечивающая программируемый доступ к внутренним службам этих приложений. к внутренним службам этих приложений.

Виды компонентных технологий:Виды компонентных технологий:

ActiveXActiveX - технология, построенная на базе - технология, построенная на базе OLEOLE--automationautomation, предназначена для создания , предназначена для создания программного обеспечения как программного обеспечения как сосредоточенного на одном компьютере, так и сосредоточенного на одном компьютере, так и распределенного в сети. распределенного в сети.

ДиспинтерфейсДиспинтерфейс ((dispinterfacedispinterface) - специальный ) - специальный интерфейс, облегчающий вызов функций объекта. интерфейс, облегчающий вызов функций объекта.

Page 22: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Основные этапы развития Основные этапы развития программирования, как программирования, как наукинауки

быстрое написание программного кода;быстрое написание программного кода; открытость и мобильность;открытость и мобильность; возможность написания приложений;возможность написания приложений; большое количество уже большое количество уже

существующих бесплатных существующих бесплатных программных элементов программных элементов ActiveXActiveX;;

Стандартность. Стандартность.

Преимущества технологии Преимущества технологии ActiveXActiveX::

Page 23: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

Основные этапы развития Основные этапы развития программирования, как программирования, как наукинауки

MTSMTS ((Microsoft Transaction ServerMicrosoft Transaction Server - сервер - сервер управления транзакциями) технология, управления транзакциями) технология, обеспечивающая безопасность и стабильную обеспечивающая безопасность и стабильную работу распределенных приложений при работу распределенных приложений при больших объемах передаваемых данных.больших объемах передаваемых данных.

MIDASMIDAS ( (Multitier Distributed Application ServerMultitier Distributed Application Server - сервер многозвенных распределенных - сервер многозвенных распределенных приложений) - технология, организующая приложений) - технология, организующая доступ к данным разных компьютеров с доступ к данным разных компьютеров с учетом балансировки нагрузки сети.учетом балансировки нагрузки сети.

Виды компонентных технологий:Виды компонентных технологий:

Технология Технология CORBACORBA реализует реализует подход, аналогичный СОМ, на базе подход, аналогичный СОМ, на базе объектов и интерфейсов объектов и интерфейсов CORBACORBA. . Эту технологию можно Эту технологию можно использовать для создания использовать для создания распределенного программного распределенного программного обеспечения в гетерогенной обеспечения в гетерогенной (разнородной) вычислительной (разнородной) вычислительной среде. среде.

Page 24: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

1.2. Проблемы разработки 1.2. Проблемы разработки сложных программных сложных программных систем.систем.Логическая сложность решаемых задач.Логическая сложность решаемых задач.

Факторы, увеличивающие сложность Факторы, увеличивающие сложность разработки программных систем:разработки программных систем:

сложность формального определения сложность формального определения требований к программным системам;требований к программным системам;

отсутствие удовлетворительных средств описания отсутствие удовлетворительных средств описания поведения дискретных систем с большим числом поведения дискретных систем с большим числом состояний при недетерминированной состояний при недетерминированной последовательности входных воздействий;последовательности входных воздействий;

коллективная разработка;коллективная разработка; необходимость увеличения степени необходимость увеличения степени

повторяемости кодов. повторяемости кодов.

Page 25: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

1.2. Проблемы разработки 1.2. Проблемы разработки сложных программных сложных программных систем.систем.

Факторы, обуславливающие сложность Факторы, обуславливающие сложность определения требований к программным определения требований к программным системам:системам:

при определении требований необходимо при определении требований необходимо учесть большое количество различных учесть большое количество различных факторов; факторов;

разработчики программных систем не являются разработчики программных систем не являются специалистами в автоматизируемых специалистами в автоматизируемых предметных областях, а специалисты в предметных областях, а специалисты в предметной области не могут сформулировать предметной области не могут сформулировать проблему в нужном ракурсе. проблему в нужном ракурсе.

Сложность определения требований Сложность определения требований к программным системамк программным системам..

Page 26: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

1.2. Проблемы разработки 1.2. Проблемы разработки сложных программных сложных программных систем.систем.

Использование языков низкого уровня Использование языков низкого уровня приводит к ранней детализации операций приводит к ранней детализации операций в процессе создания программного в процессе создания программного обеспечения и увеличивает объем обеспечения и увеличивает объем описаний разрабатываемых продуктов. описаний разрабатываемых продуктов.

Отсутствие удовлетворительных средств Отсутствие удовлетворительных средств формального описания поведения дискретных формального описания поведения дискретных систем.систем.

Коллективная разработка.Коллективная разработка. Работая в коллективе обеспечивается Работая в коллективе обеспечивается целостность проекта. целостность проекта.

Page 27: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

1.2. Проблемы разработки 1.2. Проблемы разработки сложных программных сложных программных систем.систем.

На сложность разрабатываемого На сложность разрабатываемого программного продукта влияет программного продукта влияет создание библиотек компонентов, создание библиотек компонентов, которые приходится делать более которые приходится делать более универсальными. универсальными.

Необходимость увеличения Необходимость увеличения степени повторяемости кодов.степени повторяемости кодов.

Page 28: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

1.3.1.3. БлочноБлочно -- иерархический иерархический подход к созданию сложных подход к созданию сложных системсистемБольшинство сложных систем Большинство сложных систем имеет иерархическую внутреннюю имеет иерархическую внутреннюю структуру. Это связано с тем, что структуру. Это связано с тем, что обычно связи элементов сложных обычно связи элементов сложных систем различны как по типу, так систем различны как по типу, так и по силе, что и позволяет и по силе, что и позволяет рассматривать эти системы как рассматривать эти системы как некоторую некоторую совокупность совокупность взаимозависимых подсистем.взаимозависимых подсистем.

Page 29: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

1.3.1.3. БлочноБлочно -- иерархический иерархический подход к созданию сложных подход к созданию сложных системсистем

Каждую подсистему можно Каждую подсистему можно разделить на подсистемы. разделить на подсистемы.

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

Иерархия Иерархия «простое-сложное»«простое-сложное» - это - это когда любая функционирующая когда любая функционирующая система является результатом система является результатом развития более простой системы. развития более простой системы.

Page 30: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

1.3.1.3. БлочноБлочно -- иерархический иерархический подход к созданию сложных подход к созданию сложных системсистем

Части объектов блочно-Части объектов блочно-иерархического подхода:иерархического подхода:

ПроцессПроцесс разбиения сложного разбиения сложного объекта на сравнительно объекта на сравнительно независимые части получил независимые части получил название – название – декомпозиции.декомпозиции.

Пошаговая детализацияПошаговая детализация – – при при создании очень сложных объектов создании очень сложных объектов процесс декомпозиции процесс декомпозиции выполняется многократно. выполняется многократно.

Пошаговая Пошаговая детализациядетализация

Page 31: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

1.3.1.3. БлочноБлочно -- иерархический иерархический подход к созданию сложных подход к созданию сложных системсистем

Результат декомпозиции обычно Результат декомпозиции обычно представляют в виде схемы представляют в виде схемы иерархиииерархии..

Рис. 1.8. Соотношение абстрактного и конкретного в описании блоков при блочно-иерархическом подходе

Чем больше блок, тем более абстрактным должно Чем больше блок, тем более абстрактным должно быть его описание.быть его описание.

Объект

Блок 1 Блок 2 Блок n

Блок 1.k1Блок 1.1 Блок 2.1 Блок 1.k2 Блок n.1 Блок n.kn

Конк

рети

заци

я

Абс

трак

ция

Уровень0

Уровень1

Уровень2

Page 32: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

1.3.1.3. БлочноБлочно -- иерархический иерархический подход к созданию сложных подход к созданию сложных системсистем

В основе блочно-иерархического В основе блочно-иерархического подхода лежат декомпозиция и подхода лежат декомпозиция и иерархическое упорядочение. иерархическое упорядочение. Принципы блочно-иерархического Принципы блочно-иерархического подхода:подхода:

непротиворечивость;непротиворечивость; полнота;полнота; формализация;формализация; повторяемость;повторяемость; локальная оптимизация. локальная оптимизация.

Page 33: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

1.3.1.3. БлочноБлочно -- иерархический иерархический подход к созданию сложных подход к созданию сложных системсистем Совокупность языков моделей, Совокупность языков моделей,

постановок задач, методов постановок задач, методов описаний некоторого описаний некоторого иерархического уровня принято иерархического уровня принято называть называть уровнем уровнем проектирования.проектирования.

Различные взгляды на объект Различные взгляды на объект проектирования принято называть проектирования принято называть аспектами проектирования.аспектами проектирования.

Page 34: ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

1.3.1.3. БлочноБлочно -- иерархический иерархический подход к созданию сложных подход к созданию сложных системсистем

Использование блочно - Использование блочно - иерархического подхода:иерархического подхода:

упрощает проверку работоспособности, упрощает проверку работоспособности, как системы в целом, так и отдельных как системы в целом, так и отдельных блоков;блоков;

обеспечивает возможность обеспечивает возможность модернизации систем.модернизации систем.Структурный подходСтруктурный подход учитывает только учитывает только свойства иерархии «целое-часть», а свойства иерархии «целое-часть», а объектныйобъектный - использует еще и свойства - использует еще и свойства иерархии «простое-сложное». иерархии «простое-сложное».