Разработка программных комплексов для решения прикладных задач на занятиях по дисциплине «Программная инженерия»

Бесплатный доступ

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

Программный комплекс, прикладная задача, программирование, программная инженерия

Короткий адрес: 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
Статья научная