ПРЕДМЕТ ТЕХНОЛОГИИ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.docx

  • docx
  • 29.04.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала ПРЕДМЕТ ТЕХНОЛОГИИ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.docx

ПРЕДМЕТ ТЕХНОЛОГИИ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Чтобы иметь представление о проблемах, возникающих при проектировании программного обеспечения, рассмотрим любой достаточно большой и сложный объект (автомобиль, многоэтажное офисное здание или кафедральный собор), а затем представим себе, что в наши обязанности входит как разработка его проекта, так и управление процессом его сооружения. Как оценить время, деньги и другие ресурсы, которые потребуются для выполнения проекта? Как разделить проект на управляемые части? Как убедиться, что созданные части совместимы? Как обеспечить взаимодействие сотрудников, рабо- тающих над разными частями проекта? Как оценить скорость выполнения работы? Как справиться с обилием всевозможных деталей (выбором дверных ручек, проектированием скульптурных украшений, поисками голубого стекла для витражей, рас- четом прочности колонн, планированием работ по монтажу системы отопления)? На подобные вопросы приходится отвечать и в процессе разработки крупной системы программного обеспечения.

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

Ассоциация по вычислительной технике. Основанная в 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.

Еще одно отличие связано с нехваткой количественных систем, называемых метриками, которые можно было бы ис- пользовать для измерения свойств программного обеспечения. Качество механического прибора часто определяется средним временем между поломками, поэтому именно это время характеризует, насколько качественно сделан прибор. В противопо-


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

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

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

Прогресс в исследованиях как практиков, так и теоретиков имеет огромное значение. Жизнь нашего общества уже не- возможна без использования компьютерных систем и связанного с ними программного обеспечения. Экономика, здраво- охранение, государственные учреждения, законодательство, транспорт и оборона любого современного государства зависят от больших систем программного обеспечения. Тем не менее надежность этих систем по-прежнему оставляет желать лучше- го. Ошибки в программном обеспечении приводили к таким катастрофическим (или почти катастрофическим) последствиям: принятие растущей луны за ядерную атаку, потеря 5 миллионов долларов банком Нью-Йорка только за один день, потеря космическим кораблем "Маринер-18" сведений о пробах космического пространства, радиационное облучение людей, вы- звавшее их смерть или паралич, или же нарушение работы телефонных линий в обширном географическом регионе.

В то время как наука продолжает поиск методов разработки качественного программного обеспечения, профессиональ- ные организации пропагандируют высокие стандарты этики и профессионального поведения среди своих членов. Например, Ассоциация по вычислительной технике (АСМ) и IEEE приняли кодекс профессионального поведения и этики, который на- правлен на повышение профессионализма разработчиков программного обеспечения и предупреждение случаев их беспеч- ного отношения к собственным разработкам.

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

Вопросы для самопроверки

1.  Почему количество строк в программе не определяет ее сложность?

2.    С помощью какого метода можно определить, сколько ошибок содержится в определенной части программного обеспечения?

3.  Предложите метрику для оценки качества программного обеспечения. Какие слабые места она имеет?


 

Скачано с www.znanio.ru