Практика по получению первичных профессиональных умений и навыков
Покупка
Основная коллекция
Тематика:
Программирование и алгоритмизация
Издательство:
Сибирский федеральный университет
Автор:
Баженова Ирина Васильевна
Год издания: 2018
Кол-во страниц: 124
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-7638-3918-0
Артикул: 714318.01.99
Рассмотрены основные понятия, методы и нормативные документы программной инженерии. Изложены этапы разработки программного обеспечения: анализ и моделирование предметной области, требования к программному продукту, проектированию, тестированию, документированию на примере решения задания учебной практики. С достаточным количеством иллюстративного материала описаны классические и современные визуальные средства моделирования и алгоритмизации информационных систем. Предназначено для бакалавров направлений подготовки 01.03.01 «Математика», 01.03.02 «Прикладная математика и информатика».
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 01.03.01: Математика
- 01.03.02: Прикладная математика и информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство образования и науки Российской Федерации Сибирский федеральный университет И. В. Баженова Практика по получению первичных профессиональных умений и навыков Учебное пособие Красноярск СФУ 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).