Объектно-ориентированное программирование, анализ и дизайн. Методическое пособие [В. В. Мухортов] (pdf) читать постранично

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

В. В. Мухортов, В. Ю. Рылов

ОБЪЕКТНООРИЕНТИРОВАННОЕ
ПРОГРАММИРОВАНИЕ,
АНАЛИЗ И ДИЗАЙН
Методическое пособие

Новосибирск
2002

УДК 519.682

Мухортов В. В., Рылов В.Ю.
Объектно-ориентированное программирование, аеализ и дизайн. Методическое пособие. Новосибирск, 2002.

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

c В. В. Мухортов, В. Ю. Рылов, 2002
c OOO «Новософт»
Разработка поддержана Фондом содействия развитию малых форм
предприятий в научно-технической сфере (договор № 1296р/3029 от
27 апреля 2001г.).

Введение
Методическое пособие состоит из двух частей. Первая часть написана
В. Ю. Рыловым, вторая — В. В. Мухортовым. Весь материал обсуждался обоими авторами, так что общая ответственность нераздельна.
Первая часть методического пособия призвана ознакомить читателя с теоретическими основами объектно-ориентированного программирования (ООП). За основу концепции преподавания теоретических
основ ООП взята методология разработанная Г. Бучем и изложенная в
его книге, посвященной объектно-ориентированному анализу и проектированию [1, §1–§3]. Книга Буча содержит наиболее полное и систематическое изложение вопросов, связанных с применением объектноориентированного подхода в разработке программного обеспечения,
доступное на русском языке. Многие основные определения взяты из
нее, что отмечается в тексте. Для более детального изучения предмета
рекомендуется обратиться к этой книге.
Сам курс объектно-ориентированного программирования построен по следующей схеме: вначале рассматриваются теоретические основы объектной модели, включая эволюцию, основные принципы и рассмотрение природы классов и объектов; далее следует изучение основных инструментальных средств ООП языка программирования С++;
второй семестр курса посвящен изучению инструментальных средств
ООП языка программирования Java.
Вторая часть посвящена основам объектно-ориентированного дизайна (ООД).

3

Часть I

Объектно-ориентированное
программирование

4

Глава 1

Эволюция методологий
программирования
Прежде чем мы начнем нашу беседу, посвященную объектно-ориентированному программированию, давайте обратимся к истории развития
языков и методов программирования и разработки информационных
систем. Читатель наверняка уже не раз сталкивался с такими терминами, как процедурное программирование, или процедурный язык программирования, а также с терминами объектный язык программирования, объектно-ориентированный язык программирования, но многие
тонкости в различии этих терминов и технологий очень часто ускользают из поля зрения. Одновременное использование разных методологий при разработке информационной системы часто ведет к серьезным
трудностям при ее сопровождении и делает дальнейшее развитие практически невозможным. При выборе методологии в каждом конкретном
случае нужно учитывать множество факторов, так как каждая из них
имеет свои особенности и границы применимости.
То, что сейчас наиболее распространены именно объектно-ориентированное программирование и объектно-ориентированный дизайн,
еще не значит, что другие методологии потеряли право на существование, а правила, заложенные в них — свою актуальность. Мир про5

6ГЛАВА 1. ЭВОЛЮЦИЯ МЕТОДОЛОГИЙ ПРОГРАММИРОВАНИЯ
граммных систем сложен и многообразен, и в разных случаях бывает
удобно использовать разные подходы и методы решения возникающих
задач. Данная глава призвана упорядочить уже имеющиеся сведения и
проследить путь, приведший к возникновению такого мощного и удобного средства разработки программных систем, как объектный подход.
Проанализировав путь развития основных языков программирования, можно выделить следующие постоянно присутствующие, сменяющие друг друга тенденции:
• Смещение акцентов от частного (программирование деталей), к
общему (программирование более крупных компонент)
• Развитие и совершенствование инструментария программиста (языков программирования высокого уровня и рабочей среды)
• Возрастание сложности программных и информационных систем.
Именно расширение области применения информационных технологий и вычислительной техники служило и продолжает служить движущей силой эволюции методов и инструментов построения программных систем. На протяжении всей истории развития информационных
технологий проводилось огромное множество прикладных исследований по методологии проектирования, декомпозиции, абстрагированию
и иерархиям. Следствием этих исследований стало появление все более и более выразительных языков программирования. Возникла тенденция перехода от языков, указывающих компьютеру, что делать (императивные языки), к языкам, описывающим ключевые абстракции предметной области (декларативные языки)[1,