Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТП лекции Разделы 1-3.doc
Скачиваний:
20
Добавлен:
28.09.2019
Размер:
1.95 Mб
Скачать

Раздел 1. Задача проектирования программных систем Введение. Содержание и задачи курса

В различные периоды развития средств вычислительной техники и программного обеспечения применялись различные технологии разработки программ:

  • Процедурное программирование

  • Структурное программирование

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

  • Компонентная объектная модель программирования

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

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

В рамках курса «Технология программирования» будем изучать язык программирования C++. Язык C++, технология объектно-ори­ентированного программирования (ООП), библиотеки классов позволяют эф­фективно реализовывать и сами алгоритмы, в каких бы областях знания они не были первоначально разработаны.

Рассматривая место C++ среди других языков программирования, следует иметь в виду, что в мире уже существует более 3000 различных языков програм­мирования. Несмотря на это, новые языки продолжают регулярно появляться, создавая значительные проблемы для тех, кто решил научиться программиро­вать на самом лучшем языке. Новичков смущает такое обилие и разнообразие языков программирования. Да и законодатели мод, такие как IBM, делали по­пытки создать универсальный язык, например PL/I, но объективные закономер­ности развития информатики, конкурентная борьба на рынке ПО, а часто и субъек­тивные пристрастия разработчиков системного ПО определяют ту картину, которую мы наблюдаем в настоящий момент.

C++ был разработан в начале 80-х годов в AT&T Bell Laboratories и с тех пор непрерывно развивается. Этот язык представляет собой расширенную версию языка С плюс средства поддержки ООП. Такие черты языка С, как экономич­ность, гибкость, мощь выражений, эффективность объектного кода полностью сохранены в C++. Наиболее важным является, однако, то, что C++ предоставля­ет базу для поддержки ООП и, вследствие этого, сохранения высокого уровня абстракции данных при решении задач. Если одни свойства языка могут быть использованы, чтобы реализовать объектный подход к решению задачи, то дру­гие позволяют поддерживать структурный подход, и это дает основание считать его «процедурным» языком, дополненным множеством новых конструкций по сравнению с языком С.

Язык C++ представляет собой эволюционное усовершенствование самых луч­ших черт предыдущих языков. Он находится на одном уровне с Modula2 по про­стоте и средствам осуществления модульности, сохраняя в то же время удиви­тельную эффективность и компактность языка С. Таким образом, C++ можно считать гибридом: одни его свойства поддерживают ООП, другие — структур­ное программирование. Ключевым при создании C++ было решение сделать его совместимым с языком С, что позволяет сохранить целостность миллионов строк программ на С, обширных С-библиотек и «С Tools», которые уже разработаны.