ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 20.11.2019
Просмотров: 13428
Скачиваний: 411
ВЫСШЕЕ ОБРАЗОВАНИЕ
ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Л.Г. Гагарина, Е.В. Кокорева, Б.Д. Виснадул
Л. Г. Гагарина, Е. В. Кокорева, Б. Д. Виснадул
ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Под редакцией профессора Л. Г. Гагариной
Допущено Учебно-методическим объединением вузов по университетскому политехническому образованию в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлению 230100 «Информатика и вычислительная техника», специальности 230105 «Программное обеспечение вычислительной техники и автоматизированных систем»
Москва ИД «ФОРУМ» - ИНФРА-М 2008
УДК 004(075.8) ББК 32.973-018я73 Г12
Рецензенты: доцент кафедры «Программное обеспечение ЭВМ и информационные технологии» МГТУ им. Н. Э. Баумана, кандидат физико-математических наук Т. Н. Романова^ доктор техн. наук, профессор О. И. Лисов (Институт искусств и информационных технологий)
Гагарина Л. Г., Кокорева Е. В., Виснадул Б. Д.
Г12 Технология разработки программного обеспечения: учебное пособие / под ред. Л. Г Гагариной. — М: ИД «ФОРУМ»: ИНФРА-М, 2008. — 400 с: ил. — (Высшее образование).
ISBN 978-5-8199-0342-1 (ИД «ФОРУМ») ISBN 978-5-16-003193-4 (ИНФРА-М)
Рассматриваются основные понятия и определения, классификация программного обеспечения, этапы создания программного продукта в рамках жизненного цикла, освещается современное состояние технологий разработки программных продуктов. Изложены существующие подходы к оценке качества процессов создания программного обеспечения, произведен анализ требований и определение спецификаций программного обеспечения. Большое внимание уделено вопросам проектирования ПО, его надежности, коллективной разработки с помощью современных систем контроля версий.
Теоретический материал сопровождается практикумом в виде лабораторных работ по изложенной тематике.
Предназначено для студентов и преподавателей высших учебных заведений технического профиля, а также для специалистов любой предметной области, проявивших интерес к современному состоянию методов и средств программирования.
УДК 004(075.8) ББК 32.973-018я73
ISBN 978-5-8199-0342-1 (ИД «ФОРУМ») ISBN 978-5-16-003193-4 (ИНФРА-М)
© Л. Г Гагарина, 2008 © Е. В. Кокорева, 2008 © Б. Д. Виснадул, 2008 © ИД «ФОРУМ», 2008
Введение
В настоящее время в условиях развивающегося информационного общества с учетом всеобщего применения и распространения компьютерных и телекоммуникационных технологий и систем, а также в связи с реализацией объявленной ранее Президентом РФ программы на создание в стране единого образовательного и информационного пространства появление учебного пособия, освещающего теоретические и практические вопросы разработки программного обеспечения, особенно актуально.
Кроме того, поскольку Интернет в нашей стране доступен в основном пользователям, проживающим в крупных городах, а информатизация общества невозможна без хорошо развитой коммуникационной инфраструктуры, наибольший спрос ожидает научно-техническую литературу прикладного характера, к какой и относится представленная книга. К тому же системное изложение материала, богатый иллюстративный материал и масса жизненных примеров, несомненно, придают изданию особую ценность.
Согласно «Концепции информатизации сферы образования Российской Федерации» и положениям Федеральной целевой программы «Электронная Россия» одной из особенностей перспективной системы образования в нашей стране является опережающее образование, в рамках которого изучаются последние достижения в области информатизации, ее средства, методы, а также перспективы дальнейшего развития и практического использования. Анализ содержания представленного пособия позволяет утверждать, что его следует рассматривать не только как важное средство информационной поддержки учебного процесса в качестве эффективного педагогического инструмента, но и как необходимый инструментарий опережающего образования.
В представленном учебном пособии достаточно полно изложены понятия жизненного цикла программного обеспечения, процесс его производства: методы, технология и инструментальные средства, тестирование, отладка и сопровождение программ.
Основное отличие данного пособия от аналогичных изданий заключается в освещении основных дидактических единиц дисциплины «Технология разработки программного обеспечения» с учетом пропедевтической подготовки потенциального читателя студента высшего учебного заведения. Именно поэтому только на базе основных понятий и определений в области разработки программных средств возможно освещение проблем документирования , проектирования программного обеспечения; рассмотрение вопросов технологического цикла разработки программных систем. Весьма интересными и своевременными для будущих специалистов современного глобального общества являются разделы об организации коллективной работы по созданию программ и организации процесса разработки с применением инструментальных средств поддержки.
Материал пособия прошел апробацию в Московском институте электронной техники и используется в учебном процессе различных факультетов.
Глава 1
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
1.1. Технология программирования в историческом аспекте
Чтобы разобраться в существующих технологиях программирования и определить основные тенденции их развития, целесообразно рассматривать эти технологии в историческом контексте, выделяя основные этапы развития программирования как науки.
Появление ассемблеров позволило вместо двоичных или 16-ричных кодов использовать символические имена данных и
Первый этап — «стихийное» программирование. Этот этап охватывает период от момента появления первых вычислительных машин до середины 60-х годов XX в. В этот период практически отсутствовали сформулированные технологии и программирование фактически было искусством. Первые программы имели простейшую структуру. Они состояли из собственно программы на машинном языке и обрабатываемых ею данных (рис. 1.1). Сложность программ в машинных кодах ограничивалась способностью программиста одновременно мысленно, отслеживать последовательность выполняемых операций и местонахождение данных при программировании.мнемоники кодов операций. В результате программы стали более «читаемыми».
Создание языков программирования высокого уровня, таких как FORTRAN и ALGOL, существенно упростило программирование вычислений, снизив уровень детализации операций. Это, в свою очередь, позволило увеличить сложность программ.
Революционным было появление в языках средств, позволяющих оперировать подпрограммами. (Идея написания подпрограмм появилась гораздо раньше, но отсутствие средств поддержки в первых языковых средствах существенно снижало эффективность их применения.) Подпрограммы можно было сохранять и использовать в других программах. В результате были созданы огромные библиотеки расчетных и служебных подпрограмм, которые по мере надобности вызывались из разрабатываемой программы.
Типичная программа того времени состояла из основной программы, области глобальных данных и набора подпрограмм (в основном библиотечных), выполняющих обработку всех данных или их части (рис. 1.2).
Основная программа
Подпрограммы
Рис. 1.2. Архитектура программы с глобальной областью данных
Слабым местом такой архитектуры было то, что при увеличении количества подпрограмм возрастала вероятность искажения части глобальных данных какой-либо подпрограммой. Например, подпрограмма поиска корней уравнения на заданном интервале по методу деления отрезка пополам меняет величину интервала. Если при выходе из подпрограммы не предусмотреть восстановления первоначального интервала, то в глобальной области окажется неверное значение интервала. Чтобы сократить количество таких ошибок в подпрограммах, было предложено размещать локальные данные (рис. 1.3).