Информатика. Курс лекций. Громов Ю.Ю - 143 стр.

UptoLike

6. ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ
В этой главе мы обсудим процесс разработки и эксплуатации больших систем программного обеспечения. При созда-
нии таких систем возникают трудности, связанные с решением несколько иных задач, чем при написании простой програм-
мы. Например, их разработка требует усилий многих людей в течение длительного периода времени, за который могут из-
мениться и требования системы, и персонал, работающий над этим проектом. Поэтому разработка программного обеспече-
ния включает в себя вопросы, связанные с руководством кадрами и управлением проектом, которые скорее относятся к та-
кой дисциплине, как управление предприятием, а не к вычислительной технике. Мы же сосредоточим наше внимание на во-
просах, касающихся только вычислительной техники.
6.1. ПРЕДМЕТ ТЕХНОЛОГИИ РАЗРАБОТКИ
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Чтобы иметь представление о проблемах, возникающих при проектировании программного обеспечения, рассмотрим
любой достаточно большой и сложный объект (автомобиль, многоэтажное офисное здание или кафедральный собор), а затем
представим себе, что в наши обязанности входит как разработка его проекта, так и управление процессом его сооружения.
Как оценить время, деньги и другие ресурсы, которые потребуются для выполнения проекта? Как разделить проект на
управляемые части? Как убедиться, что созданные части совместимы? Как обеспечить взаимодействие сотрудников, рабо-
тающих над разными частями проекта? Как оценить скорость выполнения работы? Как справиться с обилием всевозможных
деталей (выбором дверных ручек, проектированием скульптурных украшений, поисками голубого стекла для витражей, рас-
четом прочности колонн, планированием работ по монтажу системы отопления)? На подобные вопросы приходится отвечать
и в процессе разработки крупной системы программного обеспечения.
Поскольку проектирование является хорошо разработанной областью, можно полагать, что уже существует множество
разработанных методов проектирования, предоставляющих ответы на такие вопросы. Однако в этих рассуждениях не учи-
тываются различия в свойствах программного обеспечения и объектов проектирования из других областей науки и техники.
Ассоциация по вычислительной технике. Основанная в 1947 г. Ассоциация по вычислительной технике (ACM – Association for
Computing machinery) является международной научной и образовательной организацией, задача которойраспространение навы-
ков, теорий и приложений из области информационных технологий. Штаб-квартира этой организации, расположенная в Нью-Йорке,
руководит деятельностью множества групп по различным направлениям (SIG – Special Interest Group), занимающихся такими про-
блемами, как архитектура компьютеров, искусственный интеллект, применение компьютеров в биомедицинских исследованиях,
компьютеры и общество, обучение в области компьютерных наук, компьютерная графика, гипертекст/гипермедиа, операционные
системы, языки программирования, имитация и моделирование, а также разработка программного обеспечения. Web-узел этой ассо-
циации размещен по адресу http://www.acm.org/ constitution/code/html.
Одно из этих различий связано с возможностью создания системы из предварительно изготовленных компонентов об-
щего назначения. Уже многие годы при создании сложных объектов в традиционных областях проектирования значитель-
ные преимущества достигаются просто за счет использования в качестве строительных блоков некоторых готовых компо-
нентов. Конструктору автомобиля не нужно конструировать для него мотор, радиоприемник, кондиционер или дверные зам-
ки. Вместо этого он может воспользоваться уже созданными версиями необходимых ему компонентов. Однако в области
программного обеспечения ранее разработанные компоненты, как правило, не являются универсальными, т.е. их внутренняя
конструкция зависит от характерных особенностей конкретного приложения. Следовательно, попытка повторно использо-
вать подобный компонент потребует его перепроектирования. В результате исторически сложилось так, что достаточно
сложные системы программного обеспечения чаще всего создавались практически с нуля.
Другое различие между разработкой программного обеспечения и традиционным инженерным проектированием связа-
но с наличием допусков. В традиционных областях проектирования разрабатываемые изделия обычно считаются приемле-
мыми, если они успешно выполняют поставленную задачу в определенных рамках. Стиральная машина, выполняющая цикл
стирки, полоскания и отжима за установленное время, с учетом двухпроцентного допуска, будет совершенно приемлемой. В
противоположность этому, программное обеспечение работает или правильно, или неправильно. Бухгалтерская система,
точность расчетов в которой гарантируется в пределах двухпроцентного допуска, является совершенно неприемлемой.
IEEE. IEEE (Institute of Electrical and Electronics Engineers – институт инженеров по электротехнике и радиоэлектро-
нике) был создан в 1963 г. в результате слияния американских обществ IAEE (основанного в 1884 г. 25-ю инженерами-
электротехниками, среди которых был и Томас Эдисон) и IRE (основанного в 1912 г.). IEEE – всемирная организация
инженеров в области электротехники, радиоэлектроники и радиоэлектронной промышленности со штаб-квартирой в
Лондоне. Она направляет деятельность 36-ти технических обществ, таких, как общество инженеров аэрокосмических и
электронных систем, общество специалистов в области лазеров и электрооптики, общество инженеров по робототехни-
ке и автоматике, общество специалистов по самоходной технике, а также компьютерное общество (представляющее для
нас наибольший интерес). Наряду с другими видами деятельности, IEEE участвует в разработке стандартов. В частно-
сти, именно усилия этой организации позволили принять стандарты на форматы чисел с плавающей точкой. Web-узел
IEEE размещен по адресу http://www.ieee.org; Web-узел компьютерного общества-http: //www. computer. org; а доку-
мент, содержащий кодекс этики организации IEEE, можно найти по адресу http: //www.ieee.org/about/whatis/code.html.
Еще одно отличие связано с нехваткой количественных систем, называемых метриками, которые можно было бы ис-
пользовать для измерения свойств программного обеспечения. Качество механического прибора часто определяется средним
временем между поломками, поэтому именно это время характеризует, насколько качественно сделан прибор. В противопо-