Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
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 (дата обращения: 22.11.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).