Единое окно доступа к образовательным ресурсам

Технология разработки программного обеспечения: Учебное пособие

Голосов: 6

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

Приведенный ниже текст получен путем автоматического извлечения из оригинального PDF-документа и предназначен для предварительного просмотра.
Изображения (картинки, формулы, графики) отсутствуют.
     МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
      Государственное образовательное учреждение
           высшего профессионального образования
         «Оренбургский государственный университет»




                         Т.М. ЗУБКОВА




   ТЕХНОЛОГИЯ РАЗРАБОТКИ
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
 Рекомендовано Ученым советом государственного образовательного
 учреждения высшего профессионального образования «Оренбургский
 государственный университет» в качестве учебного пособия для сту-
 дентов, обучающихся по программам высшего профессионального
 образования по специальности «Программное обеспечение вычисли-
 тельной техники и автоматизированных систем»




                          Оренбург 2004


ББК 32.973-0181Я7
   З 91
УДК 681.3(07)

       Рецензент
       кандидат технических наук, доцент Влацкая И.В.

              Зубкова Т.М.
З 91
            Технология разработки программного обеспечения: Учебное
            пособие. - Оренбург: ГОУ ОГУ, 2004. – 101 с.
         ISBN



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




    140400000
З                                                 ББК 32.973 – 0181я7

                                                        © Зубкова Т.М.,2004.
                                                        © ГОУ ОГУ, 2004.
       ISBN




2


                                 Введение

       За последнее десятилетие рост производительности компьютеров,
объемов их оперативной и внешней памяти, пропускной способности внеш-
них устройств и каналов связи качественно изменил ситуацию в вычисли-
тельной технике и сферах ее применения. Уменьшаются размеры компьюте-
ров, потребление ими электроэнергии, а скорость вычислений возрастает.
       Известно, что основной задачей первых трех десятилетий компьютер-
ной эры являлось развитие аппаратных компьютерных средств. Это было
обусловлено высокой стоимостью обработки и хранения данных. В 80-е годы
успехи микроэлектроники привели к резкому увеличению производительно-
сти компьютера при значительном снижении стоимости.
       Основной задачей 90-х годов и начала XXI века стало совершенство-
вание качества компьютерных приложений, возможности которых целиком
определяются программным обеспечением (ПО).
       Сняты практически все аппаратные ограничения на решение задач.
Оставшиеся ограничения приходятся на долю ПО.
       Чрезвычайно актуальными стали следующие проблемы:
   − аппаратная сложность опережает наше умение строить ПО, исполь-
      зующее потенциальные возможности аппаратуры;
   − наше умение строить новые программы отстает от требований к новым
      программам;
   − нашим возможностям эксплуатировать существующие программы уг-
      рожает низкое качество их разработки.
       Ключом к решению этих проблем является грамотная организация
процесса создания ПО, реализация технологических принципов промышлен-
ного конструирования программных систем (ПС).
       Компьютерные науки вообще и программная инженерия в частности −
очень популярные и стремительно развивающиеся области знаний. Обосно-
вание простое: человеческое общество XXI века − информационное общест-
во. Об этом говорят цифры: в ведущих странах занятость населения в ин-
формационной сфере составляет 60 %, а в сфере материального производства
− 40 %. Именно поэтому специальности направления «Компьютерные науки
и информационные технологии» гарантируют приобретение наиболее пре-
стижных, дефицитных и высокооплачиваемых профессий. Так считают во
всех развитых странах мира. Ведь не зря утверждают: «Кто владеет инфор-
мацией − тот владеет миром!»
       Поэтому понятно то пристальное внимание, которое уделяет компью-
терному образованию мировое сообщество, понятно стремление унифициро-
вать и упорядочить знания, необходимые специалисту этого направления.
Одним из результатов такой работы являются международный стандарт по
компьютерному образованию Computing Curricula 2001 — Computer Science
и международный стандарт по программной инженерии IEEE/ACM Software
Engineering Body of Knowledge SWEBOK 2001.

                                                                       3


       Технология разработки программного обеспечения (ТРПО) — система
инженерных принципов для создания экономичного ПО, которое надежно и
эффективно работает в реальных компьютерах.
       Различают методы, средства и процедуры ТРПО. Методы обеспечи-
вают решение следующих задач:
   − планирование и оценка проекта;
   − анализ системных и программных требований;
   − проектирование алгоритмов, структур данных и программных структур;
   − кодирование;
   − тестирование;
   − сопровождение.
       Инструментальные средства ТРПО обеспечивают автоматизирован-
ную или автоматическую поддержку методов. Инструментальные средства
могут объединяться в системы автоматизированного конструирования ПО.
Такие системы принято называть CASE-системами. Аббревиатура CASE
расшифровывается как Computer Aided Software Engineering (программная
инженерия с компьютерной поддержкой).
       Требования к подготовке инженеров программистов непрерывно рас-
тут.
       Выпускник по специальности «Программное обеспечение вычисли-
тельной техники и автоматизированных систем» (220400) должен знать:
       - модели жизненного цикла программных средств (ПС), модели про-
цесса разработки ПС;
       - технологии и инструментальные средства, применяемые на всех эта-
пах разработки ПС;
       - основные методы построения и анализа алгоритмов, основные ре-
зультаты теории сложности алгоритмов;
       - задачи, методы и приемы аналитической верификации программ;
       - состав, структуру, функции, принципы функционирования и спосо-
бы применения всех видов системного, инструментального и прикладного
программного обеспечения (ПО);
       - формальные модели, применяемые при анализе, разработке и испы-
таниях ПС;
       - формальные модели, применяемые при анализе, разработке и испы-
таниях ПС;
       - методы обеспечения надежности и информационной безопасности
ПС;
       - основные модели, методы и алгоритмы теории языков программиро-
вания и методов трансляции;
       - основные модели и методы теории вычислительных процессов;
       - архитектуру многомашинных и многопроцессорных вычислитель-
ных систем (ВС), вычисленных сетей.



4


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




                                                                        5


    1 Краткие теоретические аспекты курса «Технология раз-
работки программного обеспечения»

     1.1 Сущность и актуальность предмета

       Технология программирования – это система методов, способов и
приемов разработки и отладки программ.
       В соответствии с обычным значением слова «технология» под техно-
логией программирования (programming technology) будем понимать сово-
купность производственных процессов, приводящую к созданию требуемого
программного средства (ПС), а также описание этой совокупности процессов.
Другими словами, технологию программирования мы будем понимать здесь
в широком смысле как технологию разработки программных средств, вклю-
чая в нее все процессы, начиная с момента зарождения идеи этого средства, и,
в частности, связанные с созданием необходимой программной документа-
ции.
       Современная индустриальная технология проектирования программ
включает в себя комплекс мероприятий, руководящих документов и автома-
тизированных средств, предназначенных для системного анализа, разработки,
отладки, документирования, управления работой специалистов.
       Для уменьшения стоимости изготовления ПС и повышения произво-
дительности труда программистов используются методы, регламентирующие
высокую профессиональную культуру написания программ независимо от
языка, от системы, ЭВМ и решаемой задачи. Такие методы получили общее
название – технологии программирования.
       Хорошая технология дает возможность получить высокий экономиче-
ский эффект при ее использовании, существенный рост производительности
труда программистов, повышает качество программного продукта.

     1.2 Модели жизненного цикла программных средств

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

6


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

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




                                                                        7


                                       Стадия производства
                                       программных изделий
           Стадия разработки ПС
                                          Стадия эксплуатации
                                                  ПС

                                           Фаза применения ПС

                                         Фаза сопровождения ПС
            Этап внешнего
             описания ПС
                                           Этап аттестации
                                                 ПС
              Этап конструи-
               рования ПС                Этап кодирования
                                               ПС

      Рисунок 1.1 - Стадии и фазы жизненного цикла ПС

        Стадия разработки (development) ПС состоит из этапа его внешнего
описания, этапа конструирования ПС, этапа кодирования (программирование
в узком смысле) ПС и этапа аттестации ПС. Всем этим этапам сопутствуют
процессы документирования и управления ПС. Этапы конструирования и ко-
дирования часто перекрываются, иногда довольно сильно. Это означает, что
кодирование некоторых частей программного средства может быть начато до
завершения этапа конструирования.
        Этап внешнего описания ПС включает процессы, приводящие к созда-
нию некоторого документа, который мы будем называть внешним описанием
(requirements document) ПС. Этот документ является описанием поведения
ПС с точки зрения внешнего по отношению к нему наблюдателя с фиксацией
требований относительно его качества. Внешнее описание ПС начинается с
анализа и определения требований к ПС со стороны пользователей (заказчи-
ка), а также включает процессы спецификации этих требований.
        Конструирование (design) ПС охватывает процессы: разработку архи-
тектуры ПС, разработку структур программ ПС и их детальную специфика-
цию.
        На этом этапе определяется потребность в ПС, его назначение и ос-
новные функциональные характеристики, оцениваются затраты и возможная
эффективность применения такого комплекса программ.
        Кодирование (coding) ПС включает процессы создания текстов про-
грамм на языках программирования, их отладку с тестированием ПС.
        На этапе аттестации (acceptance) ПС производится оценка качества
ПС. Если эта оценка оказывается приемлемой для практического использо-
вания ПС, то разработка ПС считается законченной. Это обычно оформляет-


8


ся в виде некоторого документа, фиксирующего решение комиссии, прово-
дящей аттестацию ПС.
       Программное изделие (ПИ) − экземпляр или копия разработанного ПС.
Изготовление ПИ − это процесс генерации и/или воспроизведения (снятия
копии) программ и программных документов ПС с целью их поставки поль-
зователю для применения по назначению.
       Производство ПИ − это совокупность работ по обеспечению изготов-
ления требуемого количества ПИ в установленные сроки. Стадия производ-
ства ПИ в жизненном цикле ПС является, по существу, вырожденной (не су-
щественной), так как представляет рутинную работу, которая может быть
выполнена автоматически и без ошибок. Этим она принципиально отличает-
ся от стадии производства различной техники. В связи с этим в литературе
эту стадию, как правило, не включают в жизненный цикл ПС.
       Стадия эксплуатации ПС охватывает процессы хранения, внедрения
ПС, а также транспортировки и применения ПИ по своему назначению. Она
состоит из двух параллельно проходящих фаз: фазы применения ПС и фазы
сопровождения ПС.
       Применение (operation) ПС − это использование ПС для решения
практических задач на компьютере путем выполнения ее программ.
       Сопровождение (maintenance) ПС − это процесс сбора информации
качестве ПС в эксплуатации, устранения обнаруженных в нем ошибок, его
доработки и модификации, а также извещения пользователей о внесенных в
него изменениях.

        Каскадная модель широко использовалась в 70-80 годах.
        Его основной характеристикой является разбиение всей разработки на
этапы, причем переход с одного этапа на следующий происходит только по-
сле того, как будет полностью завершена работа на текущем (рисунок 1.2).
Каждый этап завершается выпуском полного комплекта документации, дос-
таточной для того, чтобы разработка могла быть продолжена другой коман-
дой разработчиков.
        Положительные стороны применения каскадного подхода заключают-
ся в следующем:
  − на каждом этапе формируется законченный набор проектной докумен-
    тации, отвечающий критериям полноты и согласованности;
  − выполняемые в логичной последовательности этапы работ позволяют
    планировать сроки завершения всех работ и соответствующие затраты.
       Каскадный подход хорошо зарекомендовал себя при построении ПС,
для которых в самом начале разработки можно достаточно точно и полно
сформулировать все требования, с тем чтобы предоставить разработчикам
свободу реализовать их как можно лучше с технической точки зрения. В эту
категорию попадают сложные расчетные системы, системы реального време-
ни и другие подобные задачи. Однако, в процессе использования этого под-

                                                                         9


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




                  Рисунок. 1.2 - Каскадная схема разработки ПО




        Рисунок 1.3 - Реальный процесс разработки ПО по каскадной схеме

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


10



    
Яндекс цитирования Яндекс.Метрика