close

Вход

Забыли?

вход по аккаунту

?

Shpak

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение
высшего профессионального образования
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
Г. Т. Шпак
ТЕХНОЛОГИЯ РАЗРАБОТКИ
ПРОГРАММНЫХ ПРОДУКТОВ
Учебно-методическое пособие
Санкт-Петербург
2014
УДК 004.4
ББК 32.81
Ш83
Рецензенты:
кандидат физико-математических наук,
преподаватель СПбГУАП В. Я. Черницина;
преподаватель Университетского Политехнического колледжа
«Политехника» И. С. Гафт
Утверждено
редакционно-издательским советом университета
в качестве учебно-методического пособия
Шпак, Г. Т.
Ш83 Технология разработки программных продуктов: учебно-методическое пособие / Г. Т. Шпак.– СПб.: ГУАП, 2014. – 36 с.: ил.
В учебно-методическом пособии в систематизированном виде
приведены ссылки на теоретические сведения, вопросы и практические задания; представлены задания на построение моделей программных продуктов с использованием как структурного, так и
объектно-ориентированного подхода (с применением стандартного
языка моделирования UML и современных CASE-средств), задания
на разработку тестов, справочной системы, а также на создание инсталляционных пакетов программных продуктов.
Учебно-методическое пособие может быть использовано при изучении профессионального модуля ПМ.03 «Участие в интеграции
программных модулей» (МДК.03.01) в соответствии с требованиями ФГОС СПО для специальности 230115 «Программирование
в компьютерных системах» и является частью учебно-методического комплекта.
Предназначено для студентов учреждений среднего профессионального образования.
УДК 004.4
ББК 32.81
© Шпак Г. Т., 2014
© Санкт-Петербургский государственный
университет аэрокосмического
приборостроения, 2014
ВВЕДЕНИЕ
Данное учебно-методическое пособие раскрывает формы самостоятельной работы обучающихся в рамках освоения профессионального модуля ПМ.03 «Участие в интеграции программных
модулей» (МДК.03.01 Технология разработки программного обеспечения) в соответствии с требованиями ФГОС СПО для специальности 230115 «Программирование в компьютерных системах».
Предлагаемые формы организации самостоятельной работы позволяют закрепить теоретические и практические знания по вопросам:
жизненного цикла программного обеспечения (ПО);
метрологии и качества ПО;
критериев качества (сложность, корректность, надежность, трудоемкость);
процесса производства ПО (методов, технологий и инструментальных средств);
тестирования и отладки;
документирования;
проектирования программного обеспечения;
технологического цикла разработки программных систем;
коллективной работы по созданию программ;
организации процесса разработки и инструментальные средства
поддержки;
автоматизации проектирования программных продуктов.
Самостоятельная работа студентов проводится в двух направлениях.
Первое направление – участие в дискуссиях на учебных семинарах. Порядок подготовки и проведения семинара и требования
к нему заранее объявляются студентам на теоретических занятиях
преподавателем.
Второе направление самостоятельной работы студентов имеет
другую цель – углубить и закрепить знания и навыки студентов
именно в объеме материала, охваченного лекционным курсом.
С этой целью в данном пособии по каждой теме, входящей в
курс, приводится оглавление темы и вопросы для самопроверки.
Оглавление может помочь студенту сориентироваться в материале.
Вопросы для самопроверки принадлежат к одному из трех видов:
вопросы по определениям;
вопросы по фактам;
решение задач.
3
Вопрос по определению предполагает в качестве ответа точное и
развернутое определение некоторого понятия. Такое определение,
как правило, в явном виде приведено в лекциях по дисциплине.
Вопрос по факту предполагает указание конкретного факта. Как
правило, в лекциях приведен либо ответ, либо ссылка на литературу, в которой можно найти ответ на вопрос по факту.
Решение задач требует некоторого размышления, ответ на такой вопрос требует понимания материала и творческое применение
определений, а не только их механического запоминания. Основным инструментом поиска ответа на такой вопрос является здравый смысл учащихся.
4
РАЗДЕЛ 1. ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ.
ОСНОВНЫЕ ПОНЯТИЯ И ПОДХОДЫ
Тема 1.1. Программные продукты
и их основные характеристики
1. Основные понятия программного обеспечения.
2. Программа, программное обеспечение, задачи и приложения.
3. Технологические и функциональные задачи.
4. Процесс создания программ: постановка задачи, алгоритмизация, программирование.
Вопросы для самопроверки
1. Что такое программирование?
2. Можно ли сказать, что процесс набора номера на мобильном
телефоне для вызова абонента является программированием?
3. Что вы понимаете под термином «технология программирования»?
4. Является ли процесс набора номера на мобильном телефоне
для вызова абонента предметом технологии программирования?
5. Что вы понимаете под термином «информатика»?
6. Что общего и в чем различие между информатикой и технологией программирования?
7. На какие периоды можно разделить историю развития технологии программирования?
8. Для каких целей применялись компьютеры в первый период
своего существования?
Литература для подготовки
1. Орлов С. А., Цилькер Б. Я. Технологии разработки программного обеспечения [2], стр. 22–30.
2. Иванова Г. С., Технология программирования [3], стр. 12–26.
3. Гагарина Л. Г., Кокорева Е. В. и др. Технология разработки
программного обеспечения [4], стр. 5–19.
Тема 1.2. Классификация программных продуктов
1. Классификация программных продуктов по сфере использования.
2. Состав и назначение инструментария технологий программирования.
5
3. Средства для создания приложений.
4. CASE-технологии.
5. Программные продукты для создания приложений.
6. Пакеты прикладных программ. Характеристика классов пакетов прикладных программ.
Вопросы для самопроверки
1. Какие основные технологические идеи появились в первый
период развития программирования?
2. Какие изменения произошли в сфере применения компьютеров в середине 60-х годов?
3. Какие проблемы привели к кризису программирования в этот
период?
4. Перечислите фундаментальные идеи технологии программирования, сформировавшиеся в это время.
5. Какое развитие эти идеи получили в дальнейшем?
6. По каким факторам можно классифицировать программы?
7. Какую технологию программирования можно назвать наилучшей?
8. Перечислите различные аспекты технологии программирования.
9. Что такое «модель процесса»?
10. Что такое «модель команды»?
11. Что такое «дисциплина программирования»?
12. Перечислите четыре «П» технологии программирования. Как
они связаны между собой?
Литература для подготовки
1. Орлов С. А., Цилькер Б. Я. Технологии разработки программного обеспечения [2], стр. 22–30.
2. Иванова Г. С. Технология программирования [3], стр.75–82.
3. Гагарина Л. Г., Кокорева Е. В. и др. Технология разработки
программного обеспечения [4], стр.20–32.
Тема 1.3. Жизненный цикл программ и этапы разработки
программного обеспечения
1. Понятие жизненного цикла программы и его этапы.
2. Анализ требований к программе, определение спецификации
программы, проектирование, кодирование и тестирование, эксплуатация и сопровождение программы.
6
3. Характеристика этапов жизненного цикла программы.
4. Особенности создания программного продукта.
5. Этапы жизненного цикла программного продукта и его специфика.
6. Особенности разработки программного продукта.
Вопросы для самопроверки
1. Что такое «жизненный цикл программы»?
2. Что такое «выпуск»?
3. Имеет ли жизненный цикл программы начало и конец?
4. Каковы характеристики типичной отечественной программирующей организации?
5. Каковы основные действующие лица в жизненном цикле программы?
6. Что является предметом технологии программирования?
7. Как вы понимаете понятие «процесс»?
8. Что такое «модель»?
9. Какие средства используются для описания процесса программирования, и каковы основные структурные составляющие
такого описания?
Литература для подготовки
1. Рудаков А. В. Технология разработки программных продуктов [1], стр. 6–10.
2. Орлов С. А., Цилькер Б. Я. Технологии разработки программного обеспечения [2], стр. 30–46.
3. Иванова Г. С. Технология программирования [3], стр. 27–42.
Тема 1.4. Стадии разработки программ
и программной документации
1. Технологический процесс разработки программного обеспечения.
2. Стадии разработки программ и программной документации.
3. Сопровождаемая документация. Основные требования к содержанию документации.
4. Правила написания технического задания к разрабатываемым программным продуктам.
5. Техническое задание и требования к его содержанию.
6. Эскизный и технический проекты. Рабочий проект. Внедрение.
7
Вопросы для самопроверки
1. Что такое «фаза», чем она характеризуется?
2. Является фаза состоянием процесса или действием?
3. Какие фазы могут быть включены в модель процесса разработки?
4. Что такое «виток»? Имеет ли он что-либо общее с итерацией?
5. Что такое «веха» и «артефакт»? Приведите примеры.
6. Что такое «инструментальная программа»?
7. Какова первая фаза жизненного цикла разработки программного обеспечения?
8. Как можно определить понятие «требование»?
9. Является ли утверждение «у обычного человека десять пальцев на руках, поэтому клавиатура мобильного телефона содержит
не менее десяти кнопок» требованием?
10. Является ли утверждение «для записи номера телефона используется десять арабских цифр, поэтому клавиатура мобильного
телефона содержит не менее десяти кнопок» требованием?
Литература для подготовки
1. Рудаков А. В. Технология разработки программных продуктов [1], стр. 10–17.
2. Гагарина Л. Г., Кокорева Е. В. и др. Технология разработки
программного обеспечения [4], стр. 72–78.
Тема 1.5. Документирование программных продуктов
1. Понятие о ЕСПД.
2. Виды программ. Виды программных документов.
3. Виды эксплуатационных документов.
4. Общие требования к программному документу. Обозначение
программ и программных документов.
5. Требования и правила для оформления структурных схем, алгоритмов.
6. Понятие спецификации. Внешняя и внутренняя спецификации и их особенности.
7. Требования к структуре внешней спецификации.
Вопросы для самопроверки
1. Какие решения могут применяться при формулировке требований?
8
2. Перечислите основные работы, которые выполняются при
разработке требований.
3. Возможна ли разработка программного обеспечения без разработки требований? Обоснуйте ответ.
4. Могут ли измениться требования к разрабатываемой программной системе?
5. Что можно отнести к действиям по управлению требованиями?
6. Какими атрибутами можно однозначно идентифицировать
требование?
7. Какие состояния требования вы можете назвать?
8. На какие части можно разделить фазу проектирования?
9. Какие типы программных архитектур вы знаете?
10. Чем можно характеризовать фазу детального проектирования?
11. Что такое «реализация» и что такое «кодирование»?
12. Что такое «инженерный анализ программы»?
13. Для чего нужны стандарты кодирования?
Литература для подготовки
1. Рудаков А. В. Технология разработки программных продуктов [1], стр. 21–23.
2. Иванова Г. С. Технология программирования [3], стр. 82–102.
3. Гагарина Л. Г., Кокорева Е. В. и др. Технология разработки
программного обеспечения [4], стр.33–42.
Тема 1.6. Разработка документации
1. ГОСТ 19.201-78. ГОСТ 19.106-78.
2. Содержание технического задания.
3. Последовательность его разработки.
4. Структура пояснительной записки.
Вопросы для самопроверки
1. Перечислите основные этапы разработки программных продуктов.
2. Что включают в себя предпроектные исследования?
3. Назовите основные разделы технического задания.
4. Перечислите функциональные и эксплуатационные требования к программному продукту. В чем их принципиальное различие?
9
Задание
Разработать документ «Техническое задание» на программный
продукт в соответствии с одним из вариантов, представленных в лабораторной работе. Оформить работу в соответствии с ГОСТ 19.106-78.
Литература для подготовки
1. Иванова Г. С. Технология программирования [3], стр. 82–102.
2. Рудаков А. В., Федорова Г. Н. Технология разработки программных продуктов: практикум. [5], стр. 5–16.
10
РАЗДЕЛ 2. РАЗРАБОТКА ПРОГРАММНЫХ ПРОДУКТОВ
Тема 2.1. Структурное программирование
1. Теория и методы структурного программирования.
2. Методы восходящей и нисходящей разработки структуры
программы.
3. Конструктивный и архитектурный подходы к разработке
программы.
4. Основные управляющие конструкции структурного программирования.
5. Метод пошаговой детализации текста модуля.
6. Структурное кодирование. Правила составления структурированных алгоритмов и их структурная композиция.
7. Основная концепция структурирования программ.
8. Методы структурирования программ.
Вопросы для самопроверки
1. Дайте определение структурного программирования однимдвумя абзацами.
2. Какое отношение между структурным программированием и
оператором GO TO обычно наблюдается в языках программирования высокого уровня? Будьте точны: не прибегайте к той слишком
упрощенной формулировке, что “структурное программирование –
программирование без операторов GO TO”.
3. Почему, на ваш взгляд, структурное программирование не
было общепринятым в течение столь долгого времени? Считаете ли
вы, что в вашей организации противодействие внедрению структурного программирования будет не столь упорным?
4. В чем состоят главные цели структурного программирования? Дайте их краткое описание.
5. Почему структурированные программы должны быть проще
в отладке? Какого характера тестирование обычно применяется к
структурированным программам?
6. Почему структурное программирование позволяет программисту писать большее число отлаженных команд в день? Что можно ожидать в связи с этим для типичной программной разработки?
7. Почему структурированные программы отличаются от типичных неструктурированных программ лучшей читабельностью?
Считаете ли вы, что это существенный довод в пользу структурного
программирования?
11
8. В каком отношении находятся структурное программирование
и методология нисходящего проектирования, рассмотренная в гл. 2?
9. Перечислите основные операторы и конструкции используемого вами языка программирования, необходимые для написания
структурированных программ.
10. При каких условиях можно пользоваться оператором GO TO,
не нарушая основных принципов структурного программирования?
11. Рассмотрите одно из расширений основных составляющих
блоков структурного программирования и покажите, что в нем не
нарушаются принципы этого подхода.
Задания
Составить детализацию программы нахождения выражения
A+B*A–1, где A, B – квадратные матрицы n размерности.
Составить детализацию программы нахождения корней уравнения n-й степени xn+xn–1+…+x1=y.
Составить детализацию программы разбиения введенного одномерного массива длиной в N (N кратно 4) элементов на N/4 одномерных массивов.
Составить детализацию программы подсчета количества вхождений каждой буквы в заданную строку.
x2 + x + 1
Составить детализацию вывода таблицы функции f (x, y) = 2
y + y +1
x2 + x + 1
f (x, y) = 2
при x=0(0,2)2; y=–5(1)5.
y + y +1
Составить детализацию вывода простых чисел в диапазоне от n
до m.
Литература для подготовки
1. Рудаков А. В. Технология разработки программных продуктов [1], стр. 96–102/
2. Орлов С. А., Цилькер Б. Я. Технологии разработки программного обеспечения [2], стр. 176–185/
3. Иванова Г. С., Технология программирования [3], стр. 57–65/
Тема 2.2. Модульное программирование
1. Модульное программирование как метод разработки программ.
2. Программный модуль и его основные характеристики.
12
3. Типовая структура программного модуля.
4. Порядок разработки программного модуля.
5. Оценка характеристик программ на основе процедурно-ориентированных метрик. Связность модулей. Сцепление модулей.
Вопросы для самопроверки
1. В чем разница между структурным программированием и модульным программированием?
2. Какую роль играют модули при разработке программного обеспечения?
3. Что такое многоязыковая система программирования?
4. Каковы преимущества и недостатки модульного программирования?
5. Какой модуль называется головным и как он оформляется?
6. Что такое связи между модулями?
7. Что такое связи по управлению и связи по данным?
8. Что такое статические и динамические связи между модулями?
9. Что такое входные точки и внешние адреса модуля?
10. Что такое объектный модуль и кто его делает?
11. Какая информация хранится в паспорте объектного модуля?
12. Из каких этапов состоит процесс сборки программы из объектных модулей? Какие ошибки при этом могут быть выявлены?
13. Что такое общие области памяти модулей и как они могут
использоваться при программировании?
14. Какие достоинства и недостатки имеет схема счёта модульной
программы со статическим связыванием и статической загрузкой?
Задания
В предложенных ниже заданиях необходимо с целью оценки качества программы выполнить следующее:
− разработать программу, реализующую предложенные в условии действия;
− оценить уровень связности и силу сцепления программных модулей;
− произвести анализ полученных результатов, сформулировав
содержательные выводы.
1. Функция должна переворачивать строку, передаваемую ей в
качестве параметра, в зеркальное положение.
2. Задана вещественная матрица размером N×M элементов. Размер матрицы вводится с клавиатуры. Отсортировать строки матри13
цы по возрастанию их поэлементных сумм. Матрица заполняется
случайными числами в диапазоне от –50 до +50.
3. Функция должна по заданной строке Str, содержащей буквы
и цифры, формировать новую строку, состоящую только из цифр,
входящих в Str.
Литература для подготовки
1. Рудаков А. В. Технология разработки программных продуктов [1], стр. 103–105.
2. Орлов С. А., Цилькер Б. Я. Технологии разработки программного обеспечения [2], стр. 156–172.
3. Иванова Г. С. Технология программирования [3], стр. 46–56.
Тема 2.3. Объектно-ориентированное программирование
1. Основные понятия объектно-ориентированного проектирования.
2. Объект, свойства объекта, метод обработки, событие, класс
объектов.
3. Методика объектно-ориентированного проектирования и его
основные принципы.
4. Инкапсуляция, наследование, полиморфизм.
5. Основные составляющие объектно-ориентированного анализа.
6. Этапы объектно-ориентированного проектирования.
7. Структура объектно-ориентированных программ.
Вопросы для самопроверки
1. Что такое инкапсуляция?
2. Как описываются классы?
3. Каким образом создаются объекты?
4. Какие существуют режимы доступа к членам классов?
5. Для чего применяются конструкторы и деструкторы?
6. Что подразумевается под наследованием для классов?
7. Для чего нужны виртуальные классы и функции?
8. Для чего используется указатель this?
Задания
Составить программу реализации класса комплексных чисел
(реализация арифметических действий, модуля числа и обратного
числа).
14
Составить программу реализации класса прямоугольника (координаты, площадь, периметр; метод, определяющий, принадлежит ли заданная точка данному прямоугольнику).
Составить программу реализации класса матриц (размеры матрицы, сложение матриц, умножение матрицы на число, умножение
матриц, нахождение определителя матрицы и обратной матрицы).
Составить программу реализации класса векторов (координаты
начала, координаты конца, скалярное произведение векторов, умножение вектора на число).
Составить программу реализации класса предмета на продажу
(его название, цена, количество, вес, общая стоимость, общий вес).
Литература для подготовки
1. Рудаков А. В. Технология разработки программных продуктов [1], стр. 105–109.
2. Орлов С. А., Цилькер Б. Я. Технологии разработки программного обеспечения [2], стр. 187–211.
15
РАЗДЕЛ 3. МЕТОДОЛОГИЯ ПРОЕКТИРОВАНИЯ
ПРОГРАММНЫХ ПРОДУКТОВ (ПП)
Тема 3.1. Методы проектирования ПП
1. Методы проектирования программных продуктов и признаки
их классификации.
2. Структурное проектирование программных продуктов и его
методы.
3. Принцип системного проектирования. Нисходящее проектирование.
4. Модульное проектирование.
5. Структурное программирование.
6. Функционально-ориентированные методы и методы структурирования данных.
Вопросы для самопроверки
1. Какие действия подразумевает проектирование программ?
2. Какова роль структур данных при составлении алгоритма?
3. В чем отличие отладки программы от тестирования?
4. В чем сущность нисходящего проектирования программ?
5. Какие операторы структурного программирования используются для записи алгоритмов?
6. Можно ли применять принцип нисходящего проектирования
для модификации уже существующих программ?
7. Можно ли применять принципы структурного программирования для проектирования на языках, не имеющих соответствующих структур?
8. Какова роль блок-схем в проектировании программ?
9. Каковы типичные размеры программных модулей?
Литература для подготовки
1. Гагарина Л. Г., Кокорева Е. В. и др. Технология разработки
программного обеспечения [4], стр. 78–82.
2. Иванова Г. С. Технология программирования [3], стр. 55–56.
Тема 3.2. Структура ПП
1. Внутренняя организация программного продукта.
2. Цели структуризации программных продуктов.
3. Типовая структура программного продукта.
16
4. Головной, управляющий модуль, рабочие и сервисные модули. Структура пакетов прикладных программ.
5. Библиотеки стандартных программ и подпрограмм.
6. Правила работы с библиотеками стандартных программ,
встроенные функции.
7. Возможность использования встроенных функций.
Вопросы для самопроверки
1. Что такое программа, программное обеспечение?
2. Дайте определение задачи и приложения.
3. Что такое предметная область?
4. В чем состоит постановка задачи?
5. Что такое алгоритм решения задачи?
6. Назовите основные свойства алгоритмов.
7. Какие категории специалистов охвачены процессом подготовки программ?
8. Каковы качественные характеристики программных продуктов?
9. Как можно классифицировать программные продукты?
10. Что входит в системное программное обеспечение?
11. Приведите характеристику основных видов программных
продуктов базового программного обеспечения.
12. Приведите характеристику основных видов программных
продуктов сервисного программного обеспечения?
13. Дайте определение программы утилиты. Приведите примеры.
14. Что такое программотехника и ее инструментарий?
15. Назовите виды инструментальных средств для разработки
программных продуктов и дайте им краткую характеристику.
16. Что входит в систему программирования?
17. Расскажите о ППП общего назначения.
18. Как создается загрузочный модуль программы?
19. В чем различие компиляторов и интерпретаторов?
20. В чем суть технологических стандартов, введенных фирмой
Microsoft в своих программных продуктах?
21. Что такое пакеты прикладных программ и как их можно
классифицировать?
22. Расскажите об инструментальной среде конечного пользователя.
23. Расскажите о проблемно-ориентированных ППП
24. Расскажите о методо-ориентированных ППП.
17
25. Какие ППП можно считать офисными?
26. Для чего нужны издательские системы?
Литература для подготовки
1. Гагарина Л. Г., Кокорева Е. В. и др. Технология разработки
программного обеспечения [4], стр. 158–162.
2. Иванова Г. С. Технология программирования [3], стр. 139–148.
Тема 3.3. Проектирование интерфейса пользователя
1. Интерфейс пользователя программного продукта.
2. Классификация систем, поддерживающих диалоговые процессы.
3. Системы с жестким сценарием, дескрипторные системы, тезаурусные системы, системы с языком деловой прозы.
4. Характеристика сценария диалогового процесса.
5. Требования, предъявляемые к стандартному графическому
интерфейсу пользователя.
6. Инструментарий создания интерфейса пользователя.
Вопросы для самопроверки
1.Назовите основные типы интерфейсов. Чем характеризуется
каждый из них?
2.Какие типы интерфейсов являются основными в наше время?
3.Что понимают под термином «диалог»? Сколько диалогов может реализовывать программное обеспечении?
Задания
1. Предложите меню графического редактора. Сравните это
меню с меню известных Вам графических редакторов. Проанализируйте эти отличия. 
2. Предложите интерфейс прямого манипулирования для графического редактора. В чем состоит основная сложность проектирования таких интерфейсов? В каких случаях их целесообразно
использовать?
Литература для подготовки
1. Иванова Г. С. Технология программирования [3], стр. 215–259.
2. Рудаков А. В., Федорова Г. Н. Технология разработки программных продуктов: практикум. [5] стр. 85–98.
18
Тема 3.4. Языки программирования
1. Языки программирования и их классификация.
2. Выбор и обоснование языка программирования.
3. Языки программирования для решения экономических, научных, инженерных задач.
4. Языки системного программирования.
5. Комбинирование языков программирования в рамках одной
задачи.
6. Вопросы для самопроверки
1. Какие общие особенности присущи группам языков программирования?
2. Какие языки преобладали на этапах становления программирования?
3. Какие конструкции характеризуют хорошую структуру
языка?
4. В чем заключается методологическая роль языков программирования?
5. Как структура языка влияет на стиль программирования?
6. Что такое уровень языка?
7. Какова роль типизации данных в языках?
8. Какие языковые конструкции соответствуют правилам структурного программирования?
9. Каковы перспективы стандартизации языков программирования?
10. Каковы сравнительные характеристики языков Паскаль и
Си?
11. Чем охарактеризовался переход к объектно-ориентированному программированию с точки зрения языков?
12. Каковы особенности объектно-ориентированного мышления?
13. Чем обусловлена избыточность современных языков программирования?
14. Какова роль комментариев в языках программирования?
15. Чем обусловлено повышение надежности программного
кода?
16. По отношению к какой единице языка замечена статистическая частота ошибок программирования?
17. Какими принципами следует руководствоваться при выборе
языка?
19
Литература для подготовки
1. Гагарина Л. Г., Кокорева Е. В. и др. Технология разработки
программного обеспечения [4], стр. 249–243.
2. Иванова Г. С. Технология программирования [3], стр. 37–44.
Тема 3.5. Стиль программирования
1. Понятия «стиль» и «стилистика» программирования.
2. Правила хорошего стиля.
3. Требования к стилю написания программы.
4. Типы существующих стилей написания программы (классический, пользовательский, программиста и т.д.).
Вопросы для самопроверки
1. Что такое стиль программирования?
2. Общие рекомендации по выработке хорошего стиля программирования
Литература для подготовки
1. Иванова Г. С. Технология программирования [3], стр. 65–67.
2. Гагарина Л. Г., Кокорева Е. В. и др. Технология разработки
программного обеспечения [4], стр. 218–221.
Тема 3.6. Эффективность и оптимизация программ
1. Понятие эффективности программы.
2. Основные критерии эффективности программного продукта.
3. Организация эффективной работы программы при экономичном использовании ресурсов ПЭВМ.
4. Возможности увеличения быстродействия.
5. Оптимизация программ на этапе отладки. Принципы и приемы оптимизации.
6. Работа с оптимизирующими компиляторами.
Вопросы для самопроверки
1. Что такое технологичность программного обеспечения.
2. На какие группы разделяются средства оптимизации?
3. Какие Вы знаете средства экономии памяти.
4. Какие известны правила оптимизации программ.
20
Литература для подготовки
1. Иванова Г. С. Технология программирования [3], стр. 68–74.
Тема 3.7. Обеспечение качества программного продукта
1. Принципы обеспечения показателей качества программного
продукта.
2. Функциональность и надежность как обязательные критерии
качества программного продукта.
3. Корректность программ, ее составляющие, программные эталоны и методы проверки корректности.
4. Обеспечение легкости применения продукта.
5. Обеспечение мобильности, модифицируемости и интеграции
программных продуктов.
6. Декомпозиция подсистем на модули.
Вопросы для самопроверки
1. Перечислите известные вам определения сущности категории
«качество», данные зарубежными учеными.
2. Раскройте содержание современных подходов к определению
качества, укажите достоинства и недостатки каждого из них.
3. Почему в современных условиях большинство ученых и специалистов связывают понятие «качество» с удовлетворением определенных ожиданий и запросов потребителей?
4. Приведите определение категории «качество», содержащееся
в ГОСТ Р ИСО 9000:2001. В чем заключается его отличие от других
определений данного понятия?
5. На основе анализа приведенных определений сущности категории «качество», а также личного опыта попытайтесь сформулировать собственное понимание содержания качества.
Литература для подготовки
1. Орлов С. А., Цилькер Б. Я. Технологии разработки программного обеспечения [2], стр. 536–551.
21
РАЗДЕЛ 4. ОТЛАДКА, ТЕСТИРОВАНИЕ
И СОПРОВОЖДЕНИЕ ПРОГРАММ
Тема 4.1. Ошибки программного обеспечения
1. Понятие об ошибке программного обеспечения.
2. Источники ошибок программного обеспечения.
3. Классификация ошибок программного обеспечения.
4. Основные пути и методы борьбы с ошибками программного
обеспечения.
5. Обнаружение и локализация ошибок ввода и обработки данных.
Вопросы для самопроверки
1. Назовите основные типы ошибок. 
2. Как ошибки проявляются при выполнении программы?
Литература для подготовки
1. Рудаков А. В. Технология разработки программных продуктов [1], стр. 112–118.
Тема 4.2. Отладка программ
1. Понятие отладки программы. Составляющие процесса отладки.
2. Принципы и виды отладок. Автономная и комплексная отладки программ.
3. Методы отладки. Средства отладки.
4. Рекомендации по организации отладки.
5. Автономная отладка модуля. Использование средств отладки.
Вопросы для самопроверки
1. Какой процесс называют отладкой? В чем его сложность?
2. Перечислите основные методы отладки. В чем различие между ними?
Задание
Возьмите любую программу, содержащую ошибки. Попробуйте
найти ошибку, используя каждый из известных методов отладки.
Какой метод проще и почему?
22
Литература для подготовки
1. Рудаков А. В. Технология разработки программных продуктов [1], стр. 112–118.
2. Орлов С. А., Цилькер Б. Я. Технологии разработки программного обеспечения [2], стр. 441–469.
Тема 4.3. Тестирование программ
1. Сущность и необходимость тестирования программного обеспечения.
2. Различие между тестированием и отладкой программного
обеспечения.
3. Основные принципы организации тестирования. Стадии тестирования. Виды тестовых проверок.
4. Объекты тестирования и категории тестов. Виды тестирования.
5. Методы структурного тестирования программного обеспечения.
6. Принцип «белого ящика».
7. Пошаговое и монолитное тестирование модулей.
8. Нисходящее и восходящее тестирование программного обеспечения.
9. Методы функционального тестирования.
10. Принцип «черного ящика». Метод эквивалентного разбиения.
11. Метод анализа граничных условий.
12. Метод функциональных диаграмм. Комбинированные методы тестирования.
13. Средства тестирования.
14. Ручное и автоматизированное тестирование. Применение
методов и инструментальных средств тестирования.
Вопросы для самопроверки
1. В чем различие между отладкой, верификацией и тестированием программ?
2. Каковы методы ручного тестирования программ?
3. В чем различие между нисходящим и восходящим тестированием?
4. В чем заключается стратегия тестирования?
5. Каково идеальное завершение тестирования?
6. Какие реальные критерии завершения тестирования применяются на практике?
23
7. Каково соотношение ошибок, вносимых на стадии постановки задачи, и ошибок, вносимых на стадии проектирования программы? Каково соотношение их тяжести?
8. Каковы наиболее серьезные ошибки в программах?
9. Как коррелируется количество ошибок с размером программы?
Задания
1. Спроектируйте тесты по принципу «белого ящика» для программы, разработанной раньше. Используйте схемы алгоритмов.
2. Спроектируйте тесты по принципу «черного ящика» для программы, разработанной на занятиях по удаленным базам данных.
Продумайте входные и выходные данные.
Литература для подготовки
1. Рудаков А. В. Технология разработки программных продуктов [1], стр. 126–145.
2. Орлов С. А., Цилькер Б. Я. Технологии разработки программного обеспечения [2], стр. 441–469.
Тема 4.4. Сопровождение программ
1. Сопровождение программных продуктов, внесение изменений, обеспечение надежности при эксплуатации.
2. Необходимая документация и предпродажная подготовка
программных средств.
Вопросы для самопроверки
1. Какую часть жизненного цикла программы занимает сопровождение?
2. Насколько экономически оправданным является принятие
программы на сопровождение?
Литература для подготовки
1. Рудаков А. В. Технология разработки программных продуктов [1], стр. 149–153.
2. Гагарина Л. Г., Кокорева Е. В. и др. Технология разработки
программного обеспечения [4], стр. 233–238.
24
Тема 4.5. Защита программ
1. Основные понятия о защите программных продуктов.
2. Методы защиты программных продуктов.
3. Защита программных продуктов от несанкционированного
доступа и копирования. Системы разграничения доступа.
4. Криптографические методы защиты программных продуктов, их особенности.
5. Аппаратные средства защиты программного продукта.
Вопросы для самопроверки
1. К каким мерам можно прибегнуть, чтобы избежать хищения
(пиратского копирования) программного продукта?
2. Какую роль играет вопрос авторских прав на программный
продукт?
3. Насколько оправдан способ защиты программы от хищения
путем запутывания ее структуры и документации?
Литература для подготовки
1. Гагарина Л. Г., Кокорева Е. В. и др. Технология разработки
программного обеспечения [4], стр. 249–256.
Тема 4.6. Надежность программного обеспечения
1. Оценки надежности программ.
2. Основные понятия надежности: отказ, сбой, ошибки и восстановление – применительно к программным средствам.
3. Количественные оценки (показатели) надежности
4. Математические модели надежности программ.
5. Классификация и общая характеристика. Модели надежности программ на основе временной структуры появления ошибок
(функции риска).
Вопросы для самопроверки
1. Что такое надежность объекта?
2. По каким признакам классифицируют отказ ПО?
3. Дайте определение понятиям «дефект», «ошибка» и «отказ» ПО.
4. В чем суть модели надежности Шумана?
5. Чем отличается модель Миллса от других статистических моделей надежности ПО?
6. Назовите интуитивные модели ПО.
25
Задания
1. В результате тестирования программы серией из восьми случайно выбранных из набора тестов обнаружено 2 ошибки. Ошибки
обнаружены третьим и восьмым тестами. Требуется определить количество ошибок N в программе до начала тестирования.
2. В программу преднамеренно внесли (посеяли) 10 ошибок. В
результате тестирования обнаружено 12 ошибок, из которых 10
внесли преднамеренно. Все обнаруженные ошибки исправлены. До
начала тестирования предполагалось, что программа содержит не
более 4 ошибок. Требуется оценить количество ошибок до начала
тестирования и степень отлаженности программы.
3. Две независимых группы тестировщиков проводили тестирование программного средства. Первая группа обнаружила 15
ошибок, вторая 20. На основании результатов тестирования было
определено, что до начала тестирования в программе содержалось
42 ошибки. Необходимо определить, сколько ошибок было обнаружено как первой, так и второй группой.
Литература для подготовки
1. Рудаков А. В. Технология разработки программных продуктов [1], стр. 154–172.
2. Гагарина Л. Г., Кокорева Е. В. и др. Технология разработки
программного обеспечения [4], стр. 221–229.
26
РАЗДЕЛ 5. ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА
РАЗРАБОТКИ ПРОГРАММ
Тема 5.1. Общая характеристика инструментальных средств
разработки программ
1. Общая характеристика инструментальных средств разработки программ. Инструменты разработки программных продуктов.
2. Инструментальные среды программирования.
3. Инструментальные системы технологии программирования и
их основные черты: комплексность, ориентированность на коллективную разработку, технологическая определенность, интегрированность.
4. Основные компоненты инструментальных систем технологии
программирования: репозиторий, инструментарий, интерфейсы.
5. CASE-средства, их назначение и применение. Классификация CASE-средств. Характеристика современных CASE-средств.
Вопросы для самопроверки
1. Назначение и понятие CASE- технологий.
2. Примеры CASE- технологий.
3. Технология реализации CASE- технологий.
Литература для подготовки
1. Гагарина Л. Г., Кокорева Е. В. и др. Технология разработки
программного обеспечения [4], стр. 170–177.
Тема 5.2. Применение CASE-средств
1. Построение моделей программных систем с использованием
структурного и объектно-ориентированного подхода.
2. Диаграммы потоков данных и диаграммы «сущность-связь».
3. Основные сведения о языке UML.
4. Построение концептуальной модели предметной области.
5. Диаграммы моделирования языка UML.
6. Работа в среде CASE-средства.
Задание
Используя Case-технологию Erwin, создать логическую и физическую схемы базы данных для следующих предметных областей:
27
− поставка_деталей;
− библиотека;
− автовокзал;
− отдел_кадров.
Литература для подготовки
1. Рудаков А. В. Технология разработки программных продуктов [1], стр. 173–197.
2. Гагарина Л. Г., Кокорева Е. В. и др. Технология разработки
программного обеспечения [4], стр. 178–190.
28
РАЗДЕЛ 6. КОЛЛЕКТИВНАЯ РАЗРАБОТКА
ПРОГРАММНЫХ СРЕДСТВ
Тема 6.1. Организация работ при коллективной разработке
программных продуктов
1. Категории специалистов, занятых разработкой и эксплуатацией программ.
2. Принципы и методы коллективной разработки программных
продуктов.
3. Организация коллективной работы программистов.
4. Схема взаимодействия специалистов, связанных с созданием
и эксплуатацией программ.
5. Типы организации бригад. Бригада главного программиста.
Обязанности членов бригады. Распределение обязанностей в бригаде.
Вопросы для самопроверки
1. Что такое коллективная разработка ПО?
2. Что такое система контроля версий?
3. Расскажите об основных особенностях известных Вам систем
контроля версий.
Литература для подготовки
1. Гагарина Л. Г., Кокорева Е. В. и др. Технология разработки
программного обеспечения [4], стр. 257–258.
Тема 6.2. Экономические аспекты создания
и использования программных средств
1. Стоимость программных средств.
2. Факторы, влияющие на стоимость программных средств.
3. Методики оценки трудоемкости разработки программного
продукта.
4. Особенности продаж программных продуктов.
5. Обновление версий программных средств.
6. Способы прогнозирования рынка программного обеспечения.
Вопросы для самопроверки
1. Дайте определение понятию «программное средство».
29
2. В чем отличие программного средства и программного обеспечения?
3. Назовите важнейшие механизмы правовой защиты компьютерных программ?
4. Какие правовые акты действуют в области защиты авторских
и смежных прав на компьютерные программы в Российской Федерации?
5. Перечислите методы оценки стоимости ПО
6. Как производится оценка эффективности ПО на этапе эксплуатации?
Литература для подготовки
1. Гагарина Л. Г., Кокорева Е. В. и др. Технология разработки
программного обеспечения [4], стр. 259–270.
30
ВОПРОСЫ К ТЕСТАМ
1. Выберите правильное определение понятия «информационный процесс».
2. Что входит в понятие «технологическая операция»?
3. В какие годы родилась концепция модульного программирования?
4. В какие годы сформировалась концепция объектно-ориентированного программирования?
5. Дайте определение парадигмы программирования.
6. Технология модульного программирования заключается в
следующем…
7. Основными принципами какой парадигмы программирования являются инкапсуляция, наследование, полиморфизм?
8. Суть алгоритмического метода решения задачи заключается
в следующем…
9. Суть эвристического метода решения задачи заключается в
следующем…
10. Что такое предметная область?
11. Какие критерии качества программной системы являются
для нее обязательными?
12. В основе структурного подхода к разработке программных
систем лежит …
13. Принцип «разделяй и властвуй» заключается в следующем…
14. Выберите наиболее точное определение жизненного цикла
программного обеспечения…
15. Жизненный цикл проекта это …
16. В каскадной модели на стадии разработки проекта выполняются следующие действия …
17. При использовании какой модели могут проявляться следующие ее недостатки:
a) невозможно вернуться на одну или две фазы назад, чтобы исправить какую-либо проблему или недостаток, это приведет к значительному увеличению затрат и сбою в графике;
б) интеграция компонентов, на которой обычно выявляется
большая часть ошибок, выполняется в конце разработки, что сильно увеличивает стоимость устранения ошибок?
18. Суть инкапсуляции в объектном подходе …
19. Модульное программирование относится к стадии …
20. Программный продукт – это …
21. Могут ли компоненты быть написаны на различных языках?
31
22. Модель пошаговой разработки требует …
23. Итерационный подход включает …
24. В блок-схеме связи обозначаются …
25. Процесс проектирования начинается с …
26. Основные принципы объектной модели …
27. Ромб в блок-схеме обозначает …
28. Достоинства каскадной модели …
29. Каскадная модель приемлема …
30. Спиральная модель предполагает …
31. Технология модульного программирования сформировалась в …
32. Программное обеспечение – это …
33. Компонентное программирование – это развитие идеологии …
34. Интерфейс – это …
35. Полиморфизм бывает …
36. Прямоугольник в блок-схеме обозначает …
37. Смысл полиморфизма в объектном подходе …
38. Объектно-ориентированная технология работает на следующих стадиях ЖЦ …
32
ЛИТЕРАТУРА
1. Рудаков А. В. Технология разработки программных продуктов. М.: Издательский центр «Академия», 2006. 208 с.
2. Орлов С. А., Цилькер Б. Я. Технологии разработки программного обеспечения: учебник для вузов. Стандарт 3-го поколения,
СПб.: Питер, 2012. 608 с.: ил.
3. Иванова Г. С. Технология программирования. М.: Изд-во
МГТУ им. Баумана, 2008. 336 с.: ил.
4. Гагарина Л. Г., Кокорева Е. В. и др. Технология разработки
программного обеспечения. М.: ИД «ФОРУМ» – ИНФРА-М, 2008.
400 с.: ил.
5. Рудаков А. В., Федорова Г. Н. Технология разработки программных продуктов: практикум. М.: Издательский центр «Академия», 2010. 192 с.
33
СОДЕРЖАНИЕ
Введение...........................................................................
3
Раздел 1. Технология программирования. Основные понятия
и подходы.........................................................................
Тема 1.1. Программные продукты и их основные
характеристики.............................................................
Тема 1.2. Классификация программных продуктов............
Тема 1.3. Жизненный цикл программ и этапы разработки
программного обеспечения..............................................
Тема 1.4. Стадии разработки программ и программной
документации...............................................................
Тема 1.5. Документирование программных продуктов........
Тема 1.6. Разработка документации.................................
7
8
9
Раздел 2. Разработка программных продуктов.......................
Тема 2.1. Структурное программирование.........................
Тема 2.2. Модульное программирование...........................
Тема 2.3. Объектно-ориентированное программирование....
11
11
12
14
Раздел 3. Методология проектирования программных
продуктов (ПП)..................................................................
Тема 3.1. Методы проектирования ПП..............................
Тема 3.2. Структура ПП..................................................
Тема 3.3. Проектирование интерфейса пользователя...........
Тема 3.4. Языки программирования.................................
Тема 3.5. Стиль программирования..................................
Тема 3.6. Эффективность и оптимизация программ............
Тема 3.7. Обеспечение качества программного продукта......
16
16
16
18
19
20
20
21
Раздел 4. Отладка, тестирование и сопровождение программ ...
Тема 4.1. Ошибки программного обеспечения....................
Тема 4.2. Отладка программ............................................
Тема 4.3. Тестирование программ.....................................
Тема 4.4. Сопровождение программ..................................
Тема 4.5. Защита программ.............................................
Тема 4.6. Надежность программного обеспечения...............
22
22
22
23
24
25
25
5
5
5
6
Раздел 5. Инструментальные средства разработки программ.... 27
Тема 5.1. Общая характеристика инструментальных
средств разработки программ.......................................... 27
Тема 5.2. Применение CASE-средств................................. 27
34
Раздел 6. Коллективная разработка программных средств....... 29
Тема 6.1. Организация работ при коллективной разработке
программных продуктов................................................. 29
Тема 6.2. Экономические аспекты создания
и использования программных средств............................. 29
Вопросы к тестам............................................................... 31
Литература ....................................................................... 33
35
Учебное издание
Шпак Галина Трофимовна
ТЕХНОЛОГИЯ РАЗРАБОТКИ
ПРОГРАММНЫХ ПРОДУКТОВ
Учебно-методическое пособие
Публикуется в авторской редакции
Компьютерная верстка С. Б. Мацапуры
Сдано в набор 29.05.14. Подписано к печати 17.06.14.
Формат 60×84 1/16. Бумага офсетная. Усл. печ. л. 2,09.
Уч.-изд. л. 2,25. Тираж 100 экз. Заказ № 311.
Редакционно-издательский центр ГУАП
190000, Санкт-Петербург, Б. Морская ул., 67
Документ
Категория
Без категории
Просмотров
0
Размер файла
979 Кб
Теги
shpak
1/--страниц
Пожаловаться на содержимое документа