Двадцать и
более лет назад программисты реализовывали свои проекты путем непосредственного
написания кода. С возрастанием размера и сложности проектов становилось все
яснее, что такой подход неудачен. Проблема заключалась в непропорциональном
возрастании сложности процесса создания самих программ.
Пожалуй,
большие программы можно без преувеличения назвать самым сложным творением
человека. Из-за своей сложности такие программы нередко содержат ошибки. Ошибки
в программном обеспечении потенциально могут стать причиной материального
ущерба, а иногда и угрожать жизни людей (например, при управлении
авиаполетами). В результате борьбы с проблемой сложности программного кода были
выработаны три новые концепции программирования:
♦
специализированные средства разработки программного обеспечения.
В данном
курсе, наряду с изучением C++, будет уделяться внимание и упомянутым концепциям,
что позволит не просто выучить язык программирования, но и получить представление
об эффективных способах разработки программного обеспечения.
Объектно-ориентированное программирование
Почему
объектно-ориентированный подход к программированию стал приоритетным при
разработке большинства программных проектов? ООП предлагает новый мощный способ
решения проблемы сложности программ. Вместо того чтобы рассматривать программу
как набор последовательно выполняемых инструкций, в ООП программа
представляется в виде совокупности объектов, обладающих сходными свойствами и
набором действий, которые можно с ними производить.
Унифицированный язык моделирования
Унифицированный
язык моделирования (UML) — это графический язык, включающий в себя множество
различных диаграмм, помогающих специалистам по системному анализу создавать
алгоритмы, а программистам — разбираться в принципах работы программы. UML
является мощным инструментом, позволяющим сделать процесс программирования
более легким и эффективным.
Языки и платформы разработки
Из всех
объектно-ориентированных языков C++ является наиболее широко употребительным.
Язык Java, представляющий собой последнюю разработку в области
объектно-ориентированных языков, лишен таких составляющих, как указатели,
шаблоны и множественное наследование, что сделало его менее мощным и гибким по
сравнению с C++ (синтаксис языка Java очень похож на синтаксис C++, поэтому
знания относительно C++ с успехом могут бытьприменены при программировании на Java).
Некоторые
другие объектно-ориентированные языки, например, С#, также успешно развиваются,
однако их распространение в значительной степени уступает C++.
До последнего
времени язык C++ развивался вне рамок стандартизации. Это означало, что каждый
производитель компиляторов по-своему реализовывал отдельные нюансы языка. Тем
не менее комитет по стандартам языка C++ организации ANSI/ISO разработал
документ, ныне известный под названием стандартного C++ (ANSI является
сокращением от английского названия Американского Национального Института
Стандартов, a ISO — от Международной Организации Стандартов.) Стандартный C++
включает в себя много дополнительных возможностей, например стандартную
библиотеку шаблонов (STL).
Наиболее
популярной средой разработки для C++ является продукт, совместно разработанный
компаниями Microsoft и Borland и предназначенный для работы под управлением операционных
систем Microsoft Windows это«MicrosoftVisualC++»и
«BorlandC++ Builder»).