КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Лекция 21
Под методом проектирования понимают выбор того или иного метода и технологии разработки программных средств, обеспечивающего создание готового программного продукта. Это подразумевает как проектирование системы и ее реализацию на каком-либо языке программирования, так и компоновку сложно программной системы из отдельных блоков. Существует несколько способов конструирования программ на основе общепризнанных подходов, к которым относятся: структурный подход; модульное проектирование; объектно-ориентированное проектирование; проектирование с использованием CASE - средств, а также групповые методы разработки программного обеспечения. Рассмотрим кратко основы каждого из подходов. Структурный подход. В основу структурного программирования положены следующие положения: 1. Алгоритм и программа должны составляться поэтапно (по шагам). 2. Сложная задача должна разбиваться на достаточно простые подзадачи, каждая из которых имеет только один вход и один выход. 3. Логика алгоритма и программы должны опираться на минимальное число простых базовых управляющих структур. 4. Соответствующее представление данных с использованием большого числа разнообразных типов. Первые два положения будут подробно рассмотрены в следующем параграфе. Здесь более детально остановимся на третьем положении. Фундаментом структурного программирования является теорема о структурировании, утверждающая, что как бы сложна ни была задача, схема программы всегда может быть представлена с использованием четырех базовых управляющих структур: следование (а), развилка (б), повторение (в) и выбор (г) (рисунок). В этих схемах A, B, N - операторы, группы операторов или программные модули; T, F-TRUE (истина), FALSE (ложно); P-логическое выражение. Приведенные элементарные структуры могут соединятся между собой, образуя более сложные структуры по тем же схемам. Любой алгоритм может быть реализован с помощью композиции этих четырех конструкций. Приведенные выше примеры реализации основных операторов языка Паскаль, а также процедур и функций с их использованием, опирались на структурный подход к технологии программирования, поскольку декомпозиция программы на блоки выполнялась на основе иерархии функций и передаче информации между отдельными функциональными элементами. Объектный подход при разработке программных средств использует декомпозицию системы на составляющие систему объекты и связи между ними. Поведение системы описывается в терминах обмена сообщениями между объектами. Каждый объект системы обладает своим собственным поведением, моделирующим поведение реального мира. Основными понятиями объектно-ориентированного подхода являются объект и класс. Объект (object) – это часть реального мира. Каждый объект описывается следующими элементами: - состояние, которое описывает свойства объекта в данный момент времени; - поведение в виде изменения состояния под воздействием каких-либо причин; - связи с окружающим миром в виде воздействий объекта на другие объекты окружающего мира и ответных воздействий на объект. Объекты реального мира и живой природы обладают следующими фундаментальными свойствами: инкапсуляция, наследование, полиморфизм. Основной признак, по которому можно выделить объект из окружающего мира – его целостность, внутренние свойства, связывающие внутренние части объекта в единое целое. Эта скрытность сущности объекта внутри него называется инкапсуляция (Encapsulation). Объекты живой природы обладают свойством наследования (inheritance) – объект, порожденный другим объектом, наследует от него его свойства. Порожденный и порождающий объекты называются наследник и предок. В живой природе, при наследовании свойств предка наследником, происходит изменение унаследованных свойств. Это приводит к разнообразию свойств живых объектов – от предка порождается несколько отличающихся по свойствам наследников, а не несколько экземпляров наследника с одними и теми же свойствами. Это свойство называется полиморфизмом (Polymorphism). Возможность программного моделирования реальных объектов позволяет разрабатывать программу в понятиях реального мира, а не алгоритмов обработки данных, что существенно упрощает решение прикладных задач. Программная модель объекта является основой ООП. Терминология ООП еще не устоялась, в данной главе будет применяться терминология, используемая в языках Object Pascal и Turbo Pascal. Элементы описания объектов реального мира программно моделируются следующим образом: - состояние объекта моделируется полями - данными описываемыми внутри объекта и сохраняющими свои значения в течение всего времени существования объекта; - поведение объекта моделируется методами – процедурами и функциями, изменяющими состояние объекта – значения полей в зависимости от причин; - причины изменения состояния моделируются параметрами методов (процедур и функций); - связи объекта с миром моделируются сообщениями, передаваемыми как вызовы методов объектов – приемников сообщений с передачей конкретных значений параметров процедур и результатов функций. Как и объекты реального мира, программные объекты обладают фундаментальными свойствами: - инкапсуляция, сокрытие полей и методов внутри объекта от доступа из других частей программы; - наследование, возможность построения объекта – наследника другого объекта, содержащего поля и методы предка и имеющего возможность добавить свои, индивидуальные поля и методы; - полиморфизм, возможность наследника заменять унаследованные методы предка на свои, индивидуальные методы. Над программными объектами, кроме операций, моделирующих поведение реальных объектов, выполняются следующие дополнительные операции: - создание экземпляра объекта и размещение его в памяти программы; - инициализация экземпляра объекта, присваивание его полям значений, моделирующих начальное состояние объекта; - уничтожение экземпляра объекта и освобождение занимаемой им памяти. Объектный подход можно реализовать на любом языке программирования, но специализированные объектно-ориентированные языки содержат удобные средства ООП. Объектные возможности и детали реализации ООП пока не стандартизированы, каждый язык ООП имеет свои особенности: - язык Turbo Pascal, начиная с версии 5.5, содержит минимум средств ООП, достаточных для изучения методологии ООП и решения несложных задач; - язык C++ содержит мощные средства ООП, сложные для начального изучения методам ООП. Эти средства предназначены для практического применения ООП при решении сложных задач; - язык Smalltalk-80 содержит только объектные средства, реализующие возможности современного объектного подхода, отсутствующие в языке C++ и других объектно-ориентированных языках. Особенности построения программ на языке Паскаль с использованием объектного подхода будут рассмотрены в главе 16. Модульное программирование. В программировании общее признание получил принцип построения программ из отдельных программных модулей. Каждый модуль представляет собой завершенную программу, в которой решается часть общей задачи. Для установления связей между модулями в каждом из них определяют: какие данные поступают на вход и какие он формирует в процессе выполнения. При таком программировании программа представляется в виде иерархии модулей. Модули верхнего уровня выполняют более общие функции и вызывают модули нижних уровней, в которых детализируется решение задачи.
Дата добавления: 2014-10-23; Просмотров: 379; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |