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

             Государственный Комитет Российской Федерации

                       по высшему образованию

           Саратовский государственный технический университет

           Т Е Х НО Л О Г И Я     П Р О Г Р А М М И Р О В АН И Я

            Методические указания по курсовому проектированию

                   для студентов специальности 220400

                                               Одобрено

                                   редакционно-издательским советом

                                    Саратовскогогосударственного

                                   технического университета

                         Саратов, 1995

                        В В Е Д Е Н И Е

    Подготовкакурсовой работы является завершающим  этапом  изучения

дисциплины «Технология программирования». Впериод курсового  проекти-

рования закрепляются теоретические знания и  приобретаются практичес-

кие навыки разработки программного обеспечения ипрограммной  докумен-

тации.

    В соответствиис рабочей программой дисциплины курсовая работа вы-

полняется в течение второго и третьего семестров в  процессе проведе-

ния лабораторных занятий, связанных с разработкойпрограммного обеспе-

чения конкретной проблемы, а также в  период вычислительной  практики

(табл.1). Проблемы, разрабатываемые на лабораторныхзанятиях и в  ходе

курсового проектирования, представлены в приложениях ввиде  постанов-

ки задачи  и  отдельных частей  технического  задания согласно  ГОСТ

19.201-78.

                                                            Таблица 1

    Переченьлабораторных работ и отрабатываемых на них вопросов

┌───┬───────────────────────┬────────────────────────────────────────┐

│   │Наименование лаб.раб. │    Отрабатываемые  вопросы            │

├───┼───────────────────────┼───┬────────────────────────────────────┤

│ 1 │Использование абстрак- │ 1│Разработка спецификаций типов данных│

│  │ций в разработке прог- │  │для многооконного интерфейса        │

│  │раммного обеспечения  ├───┼────────────────────────────────────┤

│  │                      │ 2 │Разработка спецификаций типов данных│

│  │                      │   │для заданнойпроблемы               │

│  │                      ├───┼────────────────────────────────────┤

│  │                      │ 3 │Разработка спецификации алгоритма   │

│  │                      │   │проблемы                            │

├───┼───────────────────────┼───┼────────────────────────────────────┤

│ 2 │Анализ требований на   │ 1 │Анализ требований изметодических   │

│  │программное обеспечение│  │указаний на лабораторный практикум  │

├───┼───────────────────────┼───┼────────────────────────────────────┤

│ 3 │Разработка спецификаций│ 1│Разработка функциональной специфика-│

│   │напрограммное обеспе- │   │циипрограммы                       │

│  │чение                 │   │                                    │

├───┼───────────────────────┼───┼────────────────────────────────────┤

│ 4 │Проектирование програм-│ 1│Уточнение спецификаций типов данных │

│  │много обеспечения     ├───┼────────────────────────────────────┤

│  │                      │ 2 │Разработка модульной структуры      │

├───┼───────────────────────┼───┼────────────────────────────────────┤

│ 5 │Программирование       │ 1 │Программированиемодулей            │

│  │                      ├───┼────────────────────────────────────┤

│  │                      │ 2 │Компоновка всей программы           │

├───┼───────────────────────┼───┼────────────────────────────────────┤

│ 6 │Тестирование и отладка │ 1│Индивидуальное тестирование модулей │

│  │программного обеспече-├───┼────────────────────────────────────┤

│  │ния                   │ 2 │Интегральное тестирование программы │

├───┼───────────────────────┼───┼────────────────────────────────────┤

│ 7 │Сопровождение програм- │ 1│Адаптация программы                │

│  │много обеспечения     ├───┼────────────────────────────────────┤

│  │                      │ 2 │Усовершенствование программы        │

├───┼───────────────────────┼───┼────────────────────────────────────┤

│ 8 │Разработка программной │ 1│Техническое задание                │

│  │документации          ├───┼────────────────────────────────────┤

│  │                      │ 2 │Программа и методика испытаний      │

│  │                      ├───┼────────────────────────────────────┤

│  │                      │ 3 │Программная документация согласно   │

│  │                      ├───┼────────────────────────────────────┤

│  │                       │ 4 │техническомузаданию                │

└───┴───────────────────────┴───┴────────────────────────────────────┘

    Допускаетсяпроведение лабораторных занятий и разработка курсовой

работы группой до 5 человек.

              1.СОДЕРЖАНИЕ И ЭТАПЫ ВЫПОЛНЕНИЯ

    Курсовая работадолжна включать оттестированное программное обес-

печение, соответствующее техническому заданию, ипояснительную  запис-

ку, включающую:

— техническое задание (ГОСТ 19.201-78);

— технический проект;

— программу и методику испытаний (ГОСТ 19.301-79),

а также программную документацию:

— тексты программ (ГОСТ 19.401-78);

— описание программы (ГОСТ 19.404-78);

— пояснительная записка (ГОСТ 19.404-79);

— описание применения (ГОСТ 19.502-78);

— руководство системного программиста (ГОСТ 19.503-79);

— руководство программиста (ГОСТ 19.504-79);

— руководство оператора (ГОСТ 19.505-79),

состав которой определяется руководителем курсового  проектирования  и

указывается в техническом задании.

                                                             Таблица 2

        Этапы исроки выполнения курсовой работы

┌─────────────────────────────────────────┬──────────────────────────┐

│ Этапы выполнения                        │          Сроки           │

├─────────────────────────────────────────┼──────────────────────────┤

│ Технический проект                      │ 15-17 недели IIсеместра │

├─────────────────────────────────────────┼──────────────────────────┤

│ Утверждение технического задания и      │  4 неделя III семестра  │

│ программы и методики испытаний          │                          │

├─────────────────────────────────────────┼──────────────────────────┤

│ Приемка программного обеспечения        │ 12-14 недели IIIсеместра│

├─────────────────────────────────────────┼──────────────────────────┤

│ Защита курсовой работы                  │ 15-17 недели IIIсеместра│

└─────────────────────────────────────────┴──────────────────────────┘

                 2.ТЕХНИЧЕСКИЙ ПРОЕКТ

    Согласно ГОСТ19.102-77  «Стадии  разработки»  технический проект

предполагает выполнение следующих работ: уточнениеструтуры входных  и

выходных данных; разработку алгоритма решения задачи;определение фор-

мы представления входных и выходных данных;  определение семантики  и

синтаксиса языка; разработку структуры программы;окончательное  опре-

деление конфигурации технических средств.

    В связи с этим,технический проект должен быть разработан в форме

иерархического набора формальных спецификаций,описывающих  процедуры,

данные и итерации в соответствии с шаблонами, описаннымив [1].

                 3.ОБЩИЕ ТРЕБОВАНИЯ

    РазрабатываемоеПО должно работать в многооконном графическом ре-

жиме и поддерживать работу как клавиатуры,  так и  манипулятора  типа

«мышь». Рекомендации по разработке графическогопользовательского  ин-

терфейса приведены в [1].

    Программнаядокументация, входящая в состав курсовой работы,  дол-

жна соответствовать требованиям Единой системыпрограммной  документа-

ции (ЕСПД) [2]. В [1] приводятся выдержки из основныхстандартов ЕСПД.

                                                         ПРИЛОЖЕНИЕ 1

             ГЕОМЕТРИЧЕСКИЙ РЕДАКТОР ПЛОСКИХ ДЕТАЛЕЙ

                        Постановка задачи

    Проектированиеизготовления деталей из листовых материалов всегда

начинается с получения их разверток или выкроек,  которые могут  быть

представлены двумерной  абстракцией,  вполне пригодной  для  решения

многих технологических  задач.  В  связи   с   этим,  необходимость

разработки  геометрического   редактора,   позволяющего   формировать

двумерные детали, является достаточно актуальной.

    Проектируемыепри этом детали должны описываться своими  наружным

и внутренними контурами. Будем  полагать,  что все  контуры  деталей

являются многоугольниками, что позволяет определитьобъекты  детали  в

форме Бэкуса-Наура следующим образом:

<ДЕТАЛЬ>..................:=<список контуров>

<список контуров>.........:=<наружный контур>

                         :=<наружный   контур><список    внутренних

                             контуров>

<КОНТУР>..................:=<замкнутый списокребер>

<СЕГМЕНТ>.................:=<ребро>

                         :=<разомкнутый список ребер>

<РЕБРО>...................:=<две граничныеточки>

<ГРАНИЧНАЯ ТОЧКА>.........:=<две координаты>

<список ребер>............:=<последовательностьнепересекающихся ребер,

                             в   котором  любые   два   соседних   в

                            последовательности  ребра   имеют  общую

                            граничную точку>

<замкнутый список ребер>..:=<кольцевой списокребер>

<разомкнутый список ребер>:=<линейный списокребер>

    К основнымфункциям редактирования можно отнести следующие [3]:

— перенос объекта изображения в другое место. Этодействие  связано  с

  выполнениемпоступательного движения;

— копирование объекта изображения в другом месте.Функция  копирования

  подобна функциипереноса, но при этом положение копируемого объекта

  не изменяется;

— поворот объекта. Это преобразование  вращения,  при котором  объект

  поворачивается назаданный угол относительно исходной ориентации;

— зеркальное отображение объекта.  Выполняется относительно  заданной

  плоскости;

— уничтожение объекта  изображения.  Эта функция  вызывает  удаление

  выбранногообъекта изображения с экрана;

— изменение масштаба. Выбранный  объект изображения  можно  увеличить

  или   уменьшить  с   заданными   масштабными  коэффициентами    по

  координатнымосям.

    Многие   из  операций   редактирования   связаны  с   двумерными

преобразованиями графических объектов.  Геометрические  преобразования

на плоскости используются для  перемещения  и модификации  объектов.

Преобразования представлены  в  матричной форме   с   использованием

однородных координат. Декартовы координаты точки  (x,y) на  плоскости

заменятся ее однородными координатами (x,y,1).

    Геометрическоепреобразование, примененное к объекту или совокуп-

ности объектов, может быть  конкатенацией (последовательностью)  нес-

кольких преобразований. Для его описанияиспользуется  матрица,  пред-

ставляющая собой произведение матриц более простыхпреобразований (что

является следствием ассоциативности матричногоумножения).

    К основным(элементарным) преобразованиям на плоскости  относятся

следующие [4]:

— преобразование переноса на вектор Т (tx,ty);

— преобразование поворота относительно начала координатна  угол al;

— преобразование масштаба на вектор Е (ex,ey),

— преобразования зеркальной симметрии относительнокоординатных осей.

      Матрицы основныхдвумерных геометрических преобразований

┌────────────────────────────────────────────────────────────────────┐

│                                                                   │

│          │ 1   0   0 │                │ cos(al)  sin(al) 0 │     │

│    M(T) =│ 0   1   0 │    M(R(al)) = │-sin(al) cos(al)  0 │     │

│          │ tx  ty  1 │                │    0       0     1 │     │

│                                                                   │

│                                                                    │

│       │ ex   0  0 │             │-1  0  0│            │ 1  0  0││

│ M(E) = │ 0  ey  0 │  M(S(x)) = │ 0  1  0 │ M(S(y)) = │ 0 -1  0││

│       │  0   0  1│             │ 0  0  1│            │ 0  0  1││

│                                                                   │

└────────────────────────────────────────────────────────────────────┘

    Преобразованиевектора P(x,y,1) в вектор P'(x',y',1) производится

умножением вектора-строки на матрицу M соответсвующего преобразования

                        │ a  b  c │

P' = P*M = │ x y  1 │ * │ d  e  f│ = │(ax+dy+g) (bx+ey+h) (cx+fy+i)│,

                        │ g  h  i │

    где выражения(ax+dy+g) и (bx+ey+h) соответствуют компонентам  x'

и y'вектора P'.

    Рассмотримполучение матрицы сложного преобразования, осуществляю-

щего поворот на угол al относительно  произвольной точки  A  (xa,ya).

Матрица  этого  преобразования   может  быть   получено   с  помощью

последовательности элементарных преобразований:

— перенос  на  вектор (-xa,-ya)  для  совмещения центра  вращения  с

  началомкоординат;

— поворот на угол al относительно начала координат;

— обратный перенос на вектор (xa,ya).

    Суммарнаяматрица преобразования в данном случае  будет  получена

из выражения

         │1   0  0 │   │ cos(al)  sin(al) 0 │   │  1  0  0 │

     M = │ 0   1   0│ * │-sin(al)  cos(al)  0 │ * │  0  1  0 │

         │-xa -ya  1 │  │    0        0    1 │   │ xa  ya  1│

    Программадолжна поддерживать локальную базу  данных,  в которой,

по   желанию   пользователя,   может  сохраняться    информация     о

спроектированных деталях.

    Должна  быть обеспечена  возможность  как проектирования   одной

детали, так и формирования размещения ужеспроектированных  деталей  в

прямоугольной области.

    Выходная   информация  должна   формироваться   в  виде    файла

геометрической информации (Приложение 4). Если в такойфайл  выводится

информация о размещении, то первой деталью долженбыть  прямоугольник,

внутри которого расположены детали.

    Естественно,что файл геометрической  информации  может использо-

ваться редактором в качестве входной информации.

                   Техническое задание

                          ВВЕДЕНИЕ

    Наименование-  геометрический  редактор плоских  деталей  (далее

просто редактор).

    Краткаяхарактеристика  -  двумерный геометрический редактор с ло-

кальной базой сформированных контуров.

                  1.ОСНОВАНИЕ ДЛЯ РАЗРАБОТКИ

    Заданиепреподавателя для проведения лабораторных занятий и выпол-

нения курсовой работы.

                  2.НАЗНАЧЕНИЕ РАЗРАБОТКИ

    Редакторпредназначен для формирования  и  редактирования  плоских

деталей, ограниченных многоугольниками, а также для иххранения в  ба-

зе данных.

                    3.ТРЕБОВАНИЯ К ПРОГРАММЕ

       3.1.Требования к функциональным характеристикам

    3.1.1.Редактордолжен работать в многооконном графическом  режиме

и поддерживать работу как клавиатуры, так и манипуляторатипа «мышь».

   3.1.2.Пользователь, по своему желанию, должен  иметь  возможность

установки масштабного поля для каждого окна.

    3.1.3.В одномокне возможна  работа  с несколькими  деталями.

   3.1.4.Программа   должна    обеспечивать     следующие     функции

редактирования: указание, формирование,  фиксация,  отмена фиксации,

копирование, удаление, перемещение, вращение точек,ребер,  сегментов,

контуров, деталей.

    Все  указанные функции,  кроме  копирования, должны  работать  в

пределах активного окна. Функция  копирования  должна осуществляться

также и в межоконном режиме.

    При  наличии нескольких  деталей  в окне  редактор   не  должен

допускать взаимных наложений.

    3.1.5.Редактордолжен обеспечивать расчет следующих характеристик:

— для точки:

  — координаты впринятом масштабном поле;

— для ребра:

  — длина;

  — угол наклона;

— для детали (контура):

  — периметр;

  — площадь;

  — положениецентра масс;

  — положениецентра давления;

  — момент инерцииотносительно произвольной точки.

   3.1.6.Информация о сформированной детали может  быть сохранена  в

локальной базе данных редактора.

    3.1.7.Долженбыть обеспечен графический  просмотр  базы данных  с

возможностью удаления  из  нее или  копирования  в  активное   окно

указанной детали.

   3.1.8.Информация о сформированной детали может  быть сохранена  в

форме выходного файла следующей структуры:

...

...

    3.1.9.Редактордолжен уметь  считывать  геометрическую  информацию

из файла описанной структуры.

...

...

   3.1.10.Редактор   должен   позволять  размещение    деталей     в

прямоугольной области  и  вывод  получаемого   размещения   в  файл

геометрической  информации,   первой   деталью    которого     будет

прямоугольник области размещения.

                  3.2.Требования к надежности

    3.2.1.Программа   должна  обрабатывать     ошибочные     действия

пользователя и сообщать ему об этом.

    3.2.2.Программадолжна обеспечивать контроль входной  и  выходной

информации в форме файлов геометрической информации.

                          .. .

       3.4.Требования к составу и параметрам технических средств

   3.4.1.Программное обеспечение  разрабатывается  для персональной

вычислительной техники  типа  не ниже  IBM  PC-386  со   следующими

характеристиками:

— объем ОЗУ не ниже 1 Mb;

— графический адаптер SVGA;

— манипулятор типа «мышь».

    3.4.2.ЭВМдолжна работать под управлением операционной системы  не

ниже чем MS-DOS 5.0.

       3.5.Требования к информационной и программной совместимости

   3.5.1.Требование   информационной   совместимости   должно   быть

обеспечено работой с файлами  геометрической  информации определенной

структуры в качестве входной и выходной информации.

                                                         ПРИЛОЖЕНИЕ 2

            СИСТЕМА ТРИАНГУЛЯЦИИ МНОГОУГОЛЬНЫХ ОБЛАСТЕЙ

                      Постановка задачи

    Метод конечныхэлементов  (МКЭ)  широко применяется  для  решения

различных задач, математическая модель которых  представляется  диффе-

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

задачи этим методом состоит в дискретизациирассматриваемой области на

треугольники, четырехугольники, трехгранные пирамидыит.д. Такое  раз-

биение несет геометрическую информацию о покрытииобласти  элементами,

с каждым из которых связано определенное количество  численных значе-

ний, необходимых для последующих вычислений в МКЭ(построение  матриц,

блокирование некоторых степеней свободы, решение системуравнений, ви-

зуализация и т.д.). Эту информацию  удобно определить  как  структуру

данных, содержащую  в  сжатой и   доступной   форме  все   величины

(геометрические и числовые).

    Многочисленныеметоды построения разбиений областей с геометричес-

кой точки зрения подразделяются на три основных класса[4,5]:

— построение разбиения,  осуществляемого  подходящим преобразованием

  отображенияразбиения области с геометрически простой формой;

— построение разбиения,  осуществляемого  подходящим преобразованием

  уже существующегоразбиения;

— прямое, элемент  за  элементом, построение  разбиения,  начиная с

  заданияраспределения точек в области или на границе.

    Настоящеезадание заключается в построении разбиения двумерной об-

ласти, ограниченной многоугольником,  на  треугольники. Треугольники

должны иметь примерно равную площадь и по формеприближаться к равнос-

торонним. Степень дискретизации (количествотреугольников  в  области)

может регулироваться пользователем. Исходя изособенностей МКЭ необхо-

димо, чтобы все узлы (вершины  треугольников)  были пронумерованы,  а

разность номеров  вершин  любого треугольника  разбиения   была  бы

минимальной.

    РазрабатываемоеПО должно использовать файл геометрической инфор-

мации (Приложение 4) в качестве входной информации обобласти  разбие-

ния.

    Выходнаяинформация о разбиении  области  должна формироваться  в

форме файла такого же типа, в котором каждый  треугольник сети  будет

представлен как  деталь,  а размещение  вершин   в  соответствующем

дескрипторе   должно  удовлетворять   оговоренному   выше    условию

минимизации разности номеров.

    Программадолжна быть оснащена локальной базой данных, в которой,

по желанию пользователя, может  сохраняться полученная  информация  о

разбиениях.

                       Техническое задание

                              ВВЕДЕНИЕ

    Наименование — система трангуляции многоугольных областей  (далее

просто триангулятор).

    Краткаяхарактеристика — двумерный триангулятор с локальной  базой

сформированных сеток деталей.

                    1.ОСНОВАНИЕ ДЛЯ РАЗРАБОТКИ

    Заданиепреподавателя для проведения лабораторных занятий и выпол-

нения курсовой работы.

                     2.НАЗНАЧЕНИЕ РАЗРАБОТКИ

    Триангуляторпредназначен для формирования и редактирования треу-

гольной сетки, заполняющей заданный многоугольник, атакже для  хране-

ния полученных сетей в базе данных.

                    3.ТРЕБОВАНИЯ К ПРОГРАММЕ

          3.1.Требования к функциональным характеристикам

    3.1.1.Редактордолжен работать в многооконном графическом  режиме

и поддерживать работу как клавиатуры, так и манипуляторатипа «мышь».

   3.1.2.Пользователь, по своему желанию, должен  иметь  возможность

установки масштабного поля для каждого окна.

   3.1.3.Программа  должна   обеспечивать   разбиение  многоугольной

области  на  треугольники, количество  которых  может  устанавливать

пользователь.

   3.1.4.Программа  должна   включать,  по   желанию   пользователя,

минимизацию разности номеров вершин треугольников.

    3.1.5.Информация о сформированной сети  треугольников может  быть

сохранена в локальной базе данных триангулятора.

    3.1.6.Долженбыть обеспечен графический  просмотр  базы данных  с

возможностью удаления  из  нее или  копирования  в  активное   окно

указанного разбиения.

   3.1.7.Информация о сформированном разбиении может быть сохранена в

форме выходного файла геометрической информации следующейструктуры:

...

...

   3.1.8.Триангулятор   может   использовать   в  качестве   входной

информации файл  геометрической  информации о  детали  или об   уже

имеющемся разбиении.

    3.1.9.Программадолжна обеспечивать возможность просмотра выхоного

файла.

                  3.2.Требования к надежности

   3.2.1.Программа   должна   обрабатывать     ошибочные    действия

пользователя и сообщать ему об этом.

    3.2.2.Программадолжна обеспечивать контроль входной  и  выходной

информации в форме файлов геометрической информации.

                          .. .

       3.4.Требования к составу и параметрам технических средств

   3.4.1.Програ

еще рефераты
Еще работы по программированию, базе данных