Технология программирования
Вид материала | Документы |
- Лекция 4 Тема 3 Технология программирования и основные этапы ее развития, 46.22kb.
- Программа как формализованное описание процесса обработки данных. Программное средство., 362.79kb.
- Календарный план учебных занятий по дисциплине «Языки и технология программирования», 43.35kb.
- Программа обучения студентов (Syllabus) по дисциплине тр302- технология программирования, 375.44kb.
- Программа курса "Технология программирования и управление программными проектами", 100.25kb.
- Курсовой проект по курсу «Технология программирования», 147.33kb.
- Рабочая программа дисциплины: б б 7 Конструирование программного обеспечения для направления, 156.05kb.
- В. А. Основы объектного программирования на языке C# оо – технология и обучение программированию, 141.07kb.
- Рабочая учебная программа по дисциплине «Технология программирования» Направление №230100, 109.02kb.
- Технологии программирования, 30.41kb.
Технология программирования.
Технология программирования. 1
Вопрос №1 Методы проектирования программного обеспечения (программных продуктов) 1
Вопрос №2 Принципы проектирования информационного обеспечения программного комплекса. 3
Вопрос №3 Показатели качества программного обеспечения 4
Вопрос №4. Методы создания надежного программного обеспечения 6
Вопрос № 5. Принципы построения интегрированной среды BC++Builder (ВС++) 9
Вопрос № 6. Динамически распределяемая память (ДРП). Типы организации данных в ДРП (списки). 11
Вопрос №7. Основы традиционного программирования. Определение подпрограммы-функции. Рекурсии 13
Вопрос № 8. Основы объектно-ориентированного программирования (ООП). Определение класса. 15
Вопрос № 9. Трансляторы. Этапы трансляции. Генерация кода. 17
Вопрос № 10. Лексический, синтаксический и семантический анализаторы транслятора. 19
Вопрос №11. Языки программирования. Определение. Классификация. Формальные грамматики. 21
Вопрос №1 Методы проектирования программного обеспечения (программных продуктов)
На сегодняшний день в программной инженерии существуют два основных подхода к разработке ПО, принципиальное различие между которыми обусловлено разными способами декомпозиции систем.
^ Первый подход называют функционально-модульным или структурным. В его основу положен принцип функциональной декомпозиции, при которой структура системы описывается в терминах иерархии ее функций и передачи информации между отдельными функциональными элементами.
^ Второй, объектно-ориентированный подход использует объектную декомпозицию. При этом структура системы описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщениями между объектами.
^ 1. Структурных подход
Сущность структурного подхода к разработке ПО заключается в его декомпозиции (разбиении) на автоматизируемые функции: система разбивается на функциональные подсистемы, которые в свою очередь, делятся на подфункции, те – на задачи и так далее до конкретных процедур. При этом автоматизируемая система сохраняет целостное представление, в котором все составляющие компоненты взаимоувязаны. При разработке системы «сверху-вниз», от отдельных задач ко всей системе, целостность теряется, возникают проблемы при описании информационного взаимодействия отдельных компонентов.
^ Базовыми принципами структурного подхода являются:
- принцип «разделяй и властвуй»
- принцип иерархического упорядочения – принцип организации составных частей системы и иерархические древовидные структуры с добавлением новых деталей на каждом уровне.
Выделение двух базовых принципов не означает, что остальные принципы являются второстепенными, поскольку игнорирование любого из них может привести к непредсказуемым последствиям (в том числе и к провалу всего проекта)
Основными из этих принципов являются:
- принцип абстрагирования – выделение существенных аспектов системы и отвлечение от несущественных
- принцип непротиворечивости – обоснованность и согласованность элементов системы
- принцип структурирования данных – данные должны быть структурированы и иерархически организованы.
Принципиальное различие между структурным и объектно-ориентированным подходом заключается в способе декомпозиции системы.
^ 2. Объектно-ориентированный подход
Объектно-ориентированный подход использует объектную декомпозицию, при этом статическая структура системы описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщениями между объектами. Каждый объект системы обладает своим собственным поведением, моделирующим поведение объекта реального мира.
Концептуальной основой объектно-ориентированного подхода является объектная модель. Основными ее элементами являются:
- абстрагирование
- инкапсуляция
- модульность
- иерархия
Кроме основных имеются еще три дополнительных элемента, не являющихся в отличие от основных строго обязательными:
- типизация
- параллелизм
- устойчивость
Абстрагирование – это выделение существенных характеристик некоторого объекта, которые отличают его от всех других видов объектов и, таким образом, четко определяют его концептуальные границы относительно дальнейшего рассмотрения и анализа. Абстрагирование концентрирует внимание на внешних особенностях объекта и позволяет отделить самые существенные особенности его поведения от деталей их реализации. Выбор правильного набора абстракций для заданной предметной области представляет собой главную задачу объектно-ориентированного проектирования.
Инкапсуляция – это процесс отделения друг от друга отдельных элементов объекта, определяющих его устройство и поведение. Инкапсуляция служит для того, чтобы изолировать интерфейс объекта, отражающий его внешнее поведение от внутренней реализации объекта. Объектный подход предполагает, что собственные ресурсы, которыми могут манипулировать только методы самого класса, скрыты от внешней среды.
Абстрагирование и инкапсуляция являются взаимодополняющими операциями: абстрагирование фокусирует внимание на внешних особенностях объекта, а инкапсуляция (или, иначе, ограничение доступа) не позволяет объектам-пользователям различать внутреннее устройство объекта.
Модульность – это свойство системы, связанное с возможностью ее декомпозиции на ряд внутренне связных, но слабо связанных между собой модулей. Инкапсуляция и модульность создают барьеры между абстракциями.
Иерархия – это ранжированная или упорядоченная система абстракций, расположение их по уровням. Основными видами иерархических структур являются структура классов (иерархия по номенклатуре) и структура объектов (иерархия по составу). Примерами иерархии классов являются простое и множественное наследование (один класс использует структурную или функциональную часть соответственно одного или нескольких других классов), а иерархии объектов – агрегация.
Типизация – это ограничение, накладываемое на класс объектов и препятствующее взаимозаменяемости различных классов (или сильно сужающее ее возможность). Типизация позволяет защититься от использования объектов одного класса вместо другого или, по крайней мере, управлять таким использованием.
Параллелизм – свойство объектов находиться в активном или пассивном состоянии и различать активные и пассивные объекты между собой.
Устойчивость – свойство объекта существовать во времени (вне зависимости от процесса, породившего данный объект) и/или в пространстве (при перемещении объекта из адресного пространства, в котором он был создан).
Важным качеством объектного подхода является согласованность моделей деятельности организации и моделей проектируемой системы от стадии формирования требований до стадии реализации. Требование согласованности моделей выполняется благодаря возможности применения абстрагирования, модульности, полиморфизма на всех стадиях разработки. Модели ранних стадий могут быть непосредственно подвергнуты сравнению с моделями реализации. По объектным моделям может быть прослежено отображение реальных сущностей моделируемой предметной области (организации) в объекты и классы информационной системы.
Главный недостаток структурного подхода заключается в следующем: процессы и данные существуют отдельно друг от друга, причем проектирование ведется от процессов к данным. Таким образом, помимо функциональной декомпозиции существует также структура данных, находящаяся на втором плане.
В объектно-ориентированном подходе основная категория объектной модели – класс – объединяет в себе на элементарной уровне, как данные, так и операции, которые над ними выполняются (методы).
Данные по сравнению с процессами являются более стабильной и относительно редко изменяющейся частью системы. Главное достоинство объектно-ориентированного подхода: объектно-ориентированные системы более открыты и легко поддаются внесению изменений, поскольку их конструкция базируется на устойчивых формах. Это дает возможность системе развиваться постепенно и не приводит к полной ее переработке даже в случае существенных изменений исходных требований.