Разработка программных комплексов для решения прикладных задач на занятиях по дисциплине «Программная инженерия»
Автор: Анисимова Э.С.
Журнал: Экономика и социум @ekonomika-socium
Рубрика: Информационные и коммуникативные технологии
Статья в выпуске: 9 (28), 2016 года.
Бесплатный доступ
Статья посвящена изучению основных аспектов решения прикладных задач на занятиях по дисциплине «Программная инженерия». Поскольку решаемые задачи являются весьма трудоемкими, то предлагается командное решение поставленных задач. В статье приведены примеры некоторых прикладных задач, а также советы по организации работы команд.
Программный комплекс, прикладная задача, программирование, программная инженерия
Короткий адрес: https://sciup.org/140121451
IDR: 140121451
Текст научной статьи Разработка программных комплексов для решения прикладных задач на занятиях по дисциплине «Программная инженерия»
Программная инженерия (англ. software engineering) — приложение систематического, дисциплинированного, измеримого подхода к разработке, функционированию и сопровождению программного обеспечения, а также исследованию этих подходов; то есть, приложение дисциплины инженерии к программному обеспечению (ISO/IEC/IEEE 24765-2010) [1].
Дисциплина «Программная инженерия» изучается студентами третьего курса направления 230700.62 «Прикладная информатика». Она является плавным продолжением дисциплин «Информатика и программирование», «Информационные системы и технологии» и др. Данная дисциплина направлена на подготовку обучающихся к проектно-технологической деятельности в области создания компонентов программных комплексов с использованием современных инструментальных средств и технологий. К задачам изучения дисциплины относятся: изучение основных программистских и управленческих принципов конструирования программных средств, знакомство с концепциями, методологиями, стандартами разработки программного обеспечения на всех этапах его жизненного цикла, обучение методам командной работы в проектных группах по созданию программного обеспечения.
Таким образом, к моменту начала изучения данной дисциплины студенты имеют навыки программирования в определенных программных средах. Поэтому на лабораторных занятиях по дисциплине «Программная инженерия» студентам предлагается командное решение прикладных задач. Предлагаемые задачи являются достаточно сложными и трудоемкими для выполнения их только одним студентом. Поэтому создаются команды студентов по 3-4 человека, каждая команда выбирает задачу и приступает к разработке программного комплекса для решения поставленной задачи. Задачи могут быть решены на языках C#, C++, Java, Delphi и т.п.
Разрабатываемый программный комплекс должен представлять Windows-приложение с удобным и понятным интерфейсом, являющееся решением поставленной задачи. В качестве задач студентам могут быть предложены следующие:
Задание №1. Построение графиков
Составить программу, которая предлагает пользователю некоторый список функций для построения графиков (например, у = ах2 + bх + с, у = ax + b и т.д. — до 10 наименований). После выбора соответствующей функции, задания коэффициентов и отрезка, на котором выполняется построение, программа строит указанный график. Затем значение коэффициентов и положение графика можно менять (например, с помощью клавиш управления курсором), после чего график перестраивается и записывается обновленное уравнение соответствующей кривой.
Задание №2. Инженерный калькулятор
Написать программу, которая бы вычисляла арифметическое выражение, введенное с клавиатуры. Арифметическое выражение может содержать числа (в том числе и в экспоненциальной форме, например, 1.2е-10), символы арифметических операций, функции синуса, косинуса, тангенса, логарифма, экспоненты. Разбор арифметического выражения рекомендуется проводить следующим образом. Создается рекурсивная функция gettoken(). В зависимости от текущего символа входной строки она производит следующие действия:
+, -, /, * - gettoken(); выполнить операцию цифра - положить в стек цифру символ - выяснить что за функция; gettoken(); вычислить значение
( - gettoken(); пропустить )
Задание №3. Алгоритмы и методы обработки изображений фильтрами.
Реализовать в программе следующие фильтры: фильтр Собеля, фильтр Гаусса и т.п., написав свой собственный графический редактор.
Могут быть также задачи по разработке информационно-поисковых систем, программ анализа текстов, реализации алгоритмов шифрования / дешифрования данных и т.д. Важно, чтобы задачи были разнообразны, и каждая команда могла выбрать наиболее интересную для нее задачу. В каждой команде студенты оценивают весь объем работ, разбивают задачу на составляющие подзадачи и распределяют их между собой. Состав студентов в команде может быть неоднородный по уровню умений и навыков программирования. Однако в работе над задачей должны принимать активное участие все студенты команды. Поэтому в соответствии с уровнем умений и навыков программирования студенты под руководством преподавателя распределяют между собой основные работы по созданию программного комплекса. Например, один студент отвечает за дизайн разрабатываемого приложения и удобство работы в нем пользователя, что немаловажно, двое других – за функционал программы, четвертый – за администрирование (если, например, это информационно-поисковая система) и т.д. Так на лабораторных занятиях осуществляется работа команд по решению прикладных задач.
После создания программных комплекс можно организовать командную презентацию проектов решения задач.
Таким образом, каждый студент, работая в команде, отвечает за конкретную часть программного комплекса, и поэтому все студенты активно участвуют в решении поставленной задачи. Все это способствует формированию командного духа, ответственности за свою работу, активности, целеустремленности, самостоятельности.
Командная разработка программных комплексов для решения прикладных задач благоприятствует формированию умений работать в команде, организованности, трудолюбия, ответственности, способности к саморазвитию, повышению своей квалификации и мастерства.
Список литературы Разработка программных комплексов для решения прикладных задач на занятиях по дисциплине «Программная инженерия»
- ISO/IEC/IEEE 24765-2010 Systems and software engineering -Vocabulary
- Батоврин В. К. Толковый словарь по системной и программной инженерии. -М.: ДМК Пресс. -2012. -280 с. ISBN 978-5-94074-818-2
- Брукс Ф. Мифический человеко-месяц, или Как создаются программные системы = The mythical Man-Month: Essays on Software Engineering. -Символ-Плюс, 2010. -304 с. -(Профессионально). -1500 экз. -ISBN 5-93286-005-7.
- Соммервилл И. Инженерия программного обеспечения. -Издательство Вильямс, 2002. -624 с. ISBN 5-8459-0330-0
- Йордан Э. Путь камикадзе. Как разработчику программного обеспечения выжить в безнадежном проекте. -М.: Лори, 2012. -290 с. ISBN 978-5-85582-227-3
- Мацяшек Л. А., Лионг Б. Л. Практическая программная инженерия на основе учебного примера/пер. с англ. А. М. Епанешникова, В. А. Епанешникова. -Издательство Бином Лаборатория знаний, 2012. -956 с. ISBN 978-5-94774-488-0
- Рекомендации по преподаванию программной инженерии и информатики в университетах/Пер. с англ. Н.И. Бойко, М.Е. Зверинцева и др. -Интернет-университет Информационных технологий, 2007 -472 с. ISBN 978-5-9556-0105-9