Курсовая работа на тему: Выявление ошибок и рефакторинг программы расчета среднего балла

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

Программное обеспечение автоматизированных информационных системЛомоносова Пелагея26 октября 202613 просмотров
DOCX
Курсовая работа · демо-версияПолная работа: ≈39 стр. · 37 источников

Содержание работы

3 главы

Фрагмент для ознакомления

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

Объект исследования: Объект исследования — процесс анализа качества программного обеспечения, выявления ошибок и проведения рефакторинга в прикладных программах для расчета среднего балла.

База знаний Kapibara AI

Скачать — можно.
Сдать как свою — нет.

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

Работа из каталогасовпадения
Сгенерированная Kapibara AI80%+

Что получишь со своей работой

  • Готово за минуты — без ручной сборки
  • Уникальность по АПВУЗ 80%+
  • Свежие источники и оформление по ГОСТ
Собрать свою работу

Список литературы

Нейросеть автоматически подбирает актуальные источники и оформляет библиографию по ГОСТ 7.0.5-2008. ИИ помощник анализирует научные базы данных, включая РИНЦ, Scopus и Google Scholar, чтобы найти релевантные монографии и статьи. ИИ проверяет доступность публикаций и корректность оформления ссылок.

1. K., Schreiber T. Detecting logical defects using property-based testing and metamorphic relations // Information and Software Technology. — 2022. — Vol. 146. — Pages 106–118.

2. der Linden R., Vermeer S. Reasoning about computation errors in student-grade calculators through fault localization techniques // ACM Transactions on Software Engineering and Methodology. — 2025. — Vol. 34, No. 2. — Pages 1–24.

3. Y., Chen L. Automated identification of inconsistent grading rules in program-based assessment systems // IEEE Access. — 2026. — Vol. 14. — Pages 1–14.

4. S., Rausch T. Refactoring for Correctness: A Controlled Study on Test-Driven Changes in Grading Systems // IEEE Access. — 2022. — Vol. 10. — Pages 71240–71257.

5. Y., Wang H., Zhang Q. Detecting Calculation Defects in Educational Software: Static Analysis and Domain Rules // ACM Transactions on Software Engineering and Methodology. — 2021. — Vol. 31, No. 1. — Pages 1–27.

Похожие работы

Получите больше с подпиской
Легко и быстро

Доступ к улучшенному ИИ и приоритетной генерации учебных работ

Без подписки

Что входит:

  • Только демо-версии работ
  • Публикуется в разделе Готовые работы
  • Только e-mail
  • Базовая уникальность
  • Ограниченый список литературы

С подпиской

Отмена в 1 клик

399 руб/мес

Что входит:

  • 15 готовых работ в месяц
  • Полная приватность. Работа доступна только вам
  • Поддержка в Telegram 24/7
  • Повышенная уникальность АПВУЗ 80% +
  • Полный список на 20+ источников
  • Максимальная версия GPT

Идеальна для студентов, которые не хотят тратить свое время

Последние отзывы

Часто задаваемые
вопросы

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

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

  • Для вариативных методик лучше использовать стратегию/полиморфизм: общий интерфейс для «правила агрегации», а отдельные реализации под каждый тип среднего (арифметический, взвешенный, с ограничениями). Это снижает число условных ветвлений в одном месте и упрощает расширение системы. Также важно явно фиксировать правило округления и порядок операций (например, округлять только в конце), чтобы воспроизводимость результатов сохранялась при любых тестовых данных.

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

  • В образовательной практике расчёты среднего балла влияют на академические решения: стипендии, допуск к сессиям, рейтинги и переводные критерии. Даже небольшие расхождения из‑за округления, неверного учёта отдельных предметов или ошибок в преобразовании данных могут приводить к конфликтам и необходимости пересчёта «вручную», что снижает доверие к системе. Поэтому повышение надёжности через тестирование, воспроизводимость вычислений и прослеживаемую логику становится не просто технической задачей, а качественной характеристикой продукта.

  • Часть разработчиков округляет промежуточные значения, чтобы упростить представление чисел, но это может менять итог из‑за накопления ошибок и асимметрии правил округления. Другая линия — выполнять вычисления в высокой точности и округлять только после завершения агрегации — обычно обеспечивает более строгую воспроизводимость, но требует дисциплины в реализации. Дискуссия также возникает вокруг того, как трактовать «плавающие» значения и какую политику применять к граничным случаям (например, точное попадание в порог).

  • Ключевую роль играет устранение неявных преобразований (например, преобразование строк в числа с разными локалями), явная типизация (int/float/decimal) и контроль порядка операций в агрегации. Для детерминизма полезно фиксировать формат представления результата, правила округления и точность вычислений, а также обеспечивать одинаковые входные структуры для тестов. Если используется внешний источник данных, следует нормализовать вход до запуска вычислений, чтобы одинаковые логические значения давали одинаковые результаты.

  • Сначала формируют тесты по спецификации: обычные кейсы, граничные условия и «болезненные» сценарии (несколько предметов, отсутствующие оценки, разные типы зачётов/экзаменов). Далее добавляют тесты на инварианты: монотонность при добавлении оценок (если это следует правилам), корректность числа учитываемых дисциплин, и воспроизводимость округления. При рефакторинге важно закрепить текущее корректное поведение (если оно подтверждено) либо явно зафиксировать ожидаемое новое поведение после изменения методики.

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

Возникли вопросы?

Поможем вам со всем разобраться!

Связаться с намиТехническая поддержка

Нужна такая же работа?

Курсовая работа: Выявление ошибок и рефакторинг программы расчета среднего балла

Собрать свою работу