Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Практика по получению первичных профессиональных умений и навыков

Покупка
Основная коллекция
Артикул: 714318.01.99
Рассмотрены основные понятия, методы и нормативные документы программной инженерии. Изложены этапы разработки программного обеспечения: анализ и моделирование предметной области, требования к программному продукту, проектированию, тестированию, документированию на примере решения задания учебной практики. С достаточным количеством иллюстративного материала описаны классические и современные визуальные средства моделирования и алгоритмизации информационных систем. Предназначено для бакалавров направлений подготовки 01.03.01 «Математика», 01.03.02 «Прикладная математика и информатика».
Баженова, И.В. Практика по получению первичных профессиональных умений и навыков : учеб. пособие / И.В. Баженова. - Красноярск : Сиб. федер. ун-т, 2018. - 124 с. - ISBN 978-5-7638-3918-0. - Текст : электронный. - URL: https://znanium.com/catalog/product/1032133 (дата обращения: 25.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Министерство образования и науки Российской Федерации

Сибирский федеральный университет

И. В. Баженова

Практика по получению 

первичных профессиональных умений 

и навыков

Учебное пособие

Красноярск

СФУ
2018

УДК 519.7(07)
ББК 22.18я73

Б163

Р е ц е н з е н т ы:
В. Р. Майер, доктор педагогических наук, профессор, заведующий 

кафедрой алгебры, геометрии и методики их преподавания ФГБОУ ВО 
«Красноярский государственный педагогический университет им. В.П. Астафьева»;

Г. М. Гринберг, кандидат педагогических наук, доцент кафедры сис
тем автоматического управления ФГБОУ ВО «Сибирский государственный университет науки и технологий им. акад. М.Ф. Решетнева»

Баженова, И. В.

Б163
Практика по получению первичных профессиональных уме
ний и навыков : учеб. пособие / И. В. Баженова. – Красноярск : 
Сиб. федер. ун-т, 2018. – 124 с.

ISBN 978-5-7638-3918-0

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

Предназначено для бакалавров направлений подготовки 01.03.01 «Ма
тематика», 01.03.02 «Прикладная математика и информатика».

Электронный вариант издания см.:

http://catalog.sfu-kras.ru

УДК 519.7(07)
ББК 22.18я73

ISBN 978-5-7638-3918-0
© Сибирский федеральный университет, 2018

ОГЛАВЛЕНИЕ

Введение.................................................................................................... 5

1. Основы разработки  программного обеспечения.......................... 7
1.1. Базовые понятия программной инженерии...................................... 7
1.2. Жизненный цикл программного продукта.  
Модели жизненного цикла ....................................................................... 9

2. Анализ и моделирование  предметной области.  
Требования к программной системе.................................................. 15
2.1. Модель предметной области ........................................................... 15
2.2. Моделирование баз данных............................................................. 17
2.3. Требования к программной системе............................................... 18

3. Визуальное моделирование  на языке UML................................. 21
3.1. Базовые элементы языка UML ........................................................ 21
3.2. Канонические диаграммы UML...................................................... 25

4. Средства визуального  описания алгоритмов на этапе  
детального проектирования................................................................ 37
4.1. Понятие алгоритма.  Функциональная декомпозиция задачи...... 37
4.2. Блок-схемы........................................................................................ 41

4.2.1. Элементы блок-схем.................................................................. 41
4.2.2. Примеры использования блок-схем......................................... 44
4.2.3. Построение блок-схем  с помощью графического 
редактора yEd....................................................................................... 58

4.3. Р-схемы.............................................................................................. 64

4.3.1. Элементы Р-схем ....................................................................... 64
4.3.2. Примеры использования Р-схем............................................... 69
4.3.3. Графический редактор Р-схем rEditor...................................... 75

4.4. UML-диаграммы деятельности....................................................... 81

5. Базовые методы тестирования ....................................................... 87
5.1. Определение тестирования.  Тест-план как основной 
документ процесса  тестирования.......................................................... 87
5.2. Виды тестирования........................................................................... 89
5.3. Методы тестирования на основе стратегий  «черного ящика» 
и «белого ящика»..................................................................................... 90

6. Выполнение проекта учебной практики  на примере 
автоматизации работы  библиотеки .................................................. 94
6.1. Постановка задачи и анализ  предметной области........................ 94

6.2. Учебное техническое задание ......................................................... 97
6.3. Проектирование и реализация системы ....................................... 100
6.4. Тестирование программы .............................................................. 103
6.5. Оформление отчета о практике..................................................... 105

7. Варианты заданий  для самостоятельного выполнения.......... 107

Заключение........................................................................................... 116

Библиографический список .............................................................. 119

Введение

Практика, направленная на получение первичных профессио
нальных умений и навыков бакалавров направлений подготовки 
01.03.01 «Математика» и 01.03.02 «Прикладная математика и информатика» проводится по окончании 1-го курса как самостоятельная научно-исследовательская проектная работа. Целью проведения практики является закрепление и систематизация знаний, полученных студентами на 1-м курсе в предметных областях программирования 
и математики, формирование навыков самостоятельной научноисследовательской работы, получение индивидуального опыта моделирования и проектирования, важного для будущей профессиональной деятельности. В процессе прохождения практики перед студентами ставятся следующие задачи:

– самостоятельно проводить поиск и анализ информации, необ
ходимой для решения поставленной задачи;

– уметь использовать методы математического и алгоритмиче
ского моделирования в анализе и решении прикладных задач;

– освоить методы и средства визуализации результатов модели
рования;

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

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

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

1) познакомить студентов математических направлений подго
товки с основами программной инженерии;

2) дать подробные сведения о средствах визуализации результа
тов проектирования;

3) на конкретном примере рассмотреть выполнение варианта за
дания учебной практики;

4) дать краткие рекомендации по оформлению отчета о практи
ке.

Структура пособия соответствует логике выполнения программ
ного проекта. Основное внимание уделено темам, которые не были 
или были частично затронуты в дисциплинах 1-го курса и должны 
быть самостоятельно освоены студентами:

– анализ и моделирование предметной области задачи;
– требования к программному продукту, техническое задание 

как средство выражения этих требований;

– нормативные документы в области программной инженерии;
– визуальное моделирование на языке UML как способ графи
ческого представления результатов проектирования информационной 
системы;

– визуализация детального проектирования системы (алгорит
мов) с помощью блок-схем, Р-схем, UML-диаграмм деятельности;

– основные методы тестирования программного обеспечения.
За рамками учебного пособия осталось рассмотрение этапа ко
дирования программного продукта, поскольку студенты на 1-м курсе 
изучают дисциплину «Программирование», обеспечены соответствующей учебно-методической литературой [1, 21] и должны иметь 
знания и умения в данной области. Более подробно представлены 
средства визуализации алгоритмов, в 4-й главе рассмотрен ряд учебных задач по алгоритмизации и графическому описанию алгоритмов. 
Данная глава может быть полезна при изучении программирования 
на 1-м курсе.

Содержание учебного пособия полностью соответствует ФГОС 

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

1. Основы разработки

программного обеспечения

1.1. Базовые понятия программной инженерии

Вопросами разработки программного обеспечения (далее – ПО) 

занимается программная инженерия – дисциплина, относящаяся к области компьютерных наук (Computer Science). Предметом программной инженерии (ранее использовался термин «технология программирования») являются все аспекты промышленного производства 
ПО: от начальных стадий проектирования до сопровождения программной системы после сдачи в эксплуатацию. Появление термина 
«программная инженерия» связывают с конференцией подкомитета 
НАТО по науке и технике, прошедшей в 1968 г.

Профессиональная деятельность в IT-сфере должна быть стан
дартизирована, сертифицирована и регламентирована нормативными 
документами. В первую очередь речь идет о комплексе государственных и международных стандартов. Государственные стандарты разрабатываются государственными органами (Федеральное агентство 
по техническому регулированию и метрологии) с учетом мировой 
практики в этой области деятельности. Часть из них имеют законодательную силу (например, в области информационной безопасности). 
Международные стандарты имеют рекомендательный характер и разрабатываются международными организациями, такими как ISO 
(International Organization for Standardization) – Международная организация по стандартизации, ACM (Association for Computing Machinery) –
Ассоциация по вычислительной технике,
IEEE
(Institute 

of Electrical and Electronics Engineers) – Институт инженеров электротехники и электроники. Признанным международным стандартом 
в области программной инженерии выступает
стандарт ISO/IEC 

12207:2008, в котором описаны процессы жизненного цикла программного обеспечения. В нашей стране кроме стандартов, принятых 
еще в 80–90-е годы прошлого столетия (например, система ГОСТов 

серии 34: ГОСТ 34.602-89 [9], ГОСТ 34.003-90 и др.), были приняты 
национальные стандарты в области информационных технологий 
и системной и программной инженерии в самые последние годы (далее по тексту пособия на них даны ссылки).

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

Программное обеспечение – совокупность компьютерных про
грамм и необходимых для их эксплуатации документов.

Программный продукт – программное обеспечение для решения 

определенной задачи массового спроса, подготовленное к коммерческой реализации. Программные продукты могут создаваться как под 
заказ (индивидуальная разработка), так и с целью массового распространения среди пользователей. Программный продукт должен обладать следующими свойствами [27, с. 7]:

– многократной применяемостью; 
– надёжной работоспособностью; 
– спецификой, выгодно выделяющей данный продукт среди про
дуктов-аналогов в части функционирования, внедрения, эксплуатации.

Отметим, что в ГОСТ Р ИСО/МЭК12207–2010 [10, с. 5] термин 

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

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

Программная система – система, состоящая из ПО и, возможно, 

компьютерного оборудования для его выполнения [11, с. 3].

Спецификация – точное описание на языке разработчика компо
нент программной системы и её поведения.

Тестирование – процесс выполнения системы или компонента 

системы в целях проверки того, что она/он удовлетворяет заданным 
требованиям, и обнаружения ошибок [11, с. 4].

Валидация (аттестация) – объективное подтверждение того, что 

требования, предназначенные для конкретного использования или 
применения, выполнены [18, с. 8].

Верификация – процесс, направленный на проверку корректно
сти системы и ее компонентов и определения соответствия требованиям.

Архитектура системы – это базовая организация системы, ко
торая описывает связи между компонентами этой системы и внешней 
средой, а также определяет принципы её проектирования и развития. 
Приведем также определение архитектуры системы из ГОСТ Р 571002016, в котором термин трактуется как «основные понятия или свойства системы в окружающей среде, воплощенной в ее элементах, отношениях и конкретных принципах ее проекта и развития» [16].

Конфигурация системы – определенный состав функций про
граммного и технического обеспечения системы в зависимости от наличия оборудования. Конфигурация ПО включает набор функциональных и технических характеристик ПО, заданных в технической 
документации и реализованных в готовом продукте. 

Интерфейс – взаимосвязь между двумя или более модулями ПО 

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

Проектирование ПО – процесс определения архитектуры, ком
понентов, интерфейсов, других характеристик системы и конечного 
состава программного продукта.

1.2. Жизненный цикл программного продукта. 

Модели жизненного цикла

Центральным понятием в области разработки программного 

обеспечения является понятие «жизненный цикл программного продукта». В ГОСТ Р ИСО/МЭК12207–2010 [10] приведено следующее 
определение: «Жизненный цикл – развитие системы, продукта, услуги, 
проекта или других изготовленных человеком объектов, начиная 
со стадии разработки концепции и заканчивая прекращением применения». Таким образом, можно говорить о жизненном цикле проекта, 
программного продукта, информационной системы. Жизненный цикл 
представляет собой последовательность нескольких этапов (стадий) 
и выполняемых на них процессов. Каждый этап порождает промежуточный продукт, используя при этом результаты предыдущего процесса и продукта. Принято рассматривать следующие стадии жизненного цикла программной системы (продукта):

– анализ и разработка требований к программной системе;

– проектирование (включающее проектирование архитектуры 

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

– реализация (также используется термин «конструирование») 

с этапами кодирования и интеграции (комплексирования);

– тестирование;
– эксплуатация и сопровождение;
– прекращение применения программной системы.
В ГОСТ Р 57102— 2016 [16] стадии жизненного цикла системы 

сформулированы более кратко:

1) концепция;
2) разработка;
3) производство;
4) применение;
5) поддержка;
6) изъятие и списание.
Жизненный цикл ПО (или системы в общем случае) может быть 

описан посредством абстрактной модели, поэтому в рамках конкретного проекта разработки ПО должна быть определена модель жизненного 
цикла (их может быть несколько), в соответствии с которой выбирают 
необходимые действия и их последовательность. Модель жизненного 
цикла разработки ПО – это обобщенная структура, содержащая процессы, действия и задачи, которые осуществляются в ходе разработки, 
функционирования и сопровождения типового программного продукта 
в течение всей жизни системы [36]. Принято рассматривать следующие 
модели жизненного цикла ПО: каскадная (водопадная модель), итеративная (инкрементная), V-модель, спиральная.

Исторически первая модель разработки – каскадная, ставшая 

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

После окончания каждого этапа на выходе получается артефакт 

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

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

верификации, происходящей на каждом уровне, является V-модель 
(рис. 2).

Рис. 1. Каскадная модель жизненного цикла разработки ПО

Рис. 2. V-модель жизненного цикла разработки ПО

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

Еще одна модель разработки ПО называется итерационной 

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

Рис. 3. Итерационная модель жизненного цикла разработки ПО

Основная идея итерационной модели жизненного цикла приме
нена и в так называемой спиральной модели, связанной с именем Б. 
Боэма [2]. Разработка продукта (системы) происходит повторяющимися этапами, которые представлены в виде раскручивающихся витков спирали. Витки спирали показывают развитие проектной деятельности от центра (начало проекта) до готового продукта. Модель 
не фиксирует количество необходимых витков, это зависит от сложности проекта и множества других факторов. Главный акцент в модели сделан на оценке рисков, влияющих на организацию жизненного 
цикла. Б. Боэм выделяет риски, в основном связанные с организацией 
разработки: нехватка специалистов и их разная квалификация; непродуманные сроки выполнения и затраты; постоянные изменения в системе; разработка неправильного пользовательского интерфейса, недостаточная информация о внешнем окружении системы и т. д. Вариант спиральной модели изображен на рис. 4.

К числу современных моделей разработки программных про
дуктов относятся RAD-модель (быстрая разработка) и Agile-модель 
(гибкая разработка). Более подробную информацию по технологии 
программирования и программной инженерии можно получить из источников, указанных в списке литературы: [19, 28, 31, 36, 37].