Введение
1 Обзор методов и средств решения задачи
1.1 Основные понятия C# .NET
1.1.1 Преимущества платформы .NET
1.1.2 Роль библиотек базовых классов
1.2 Обзор шаблонов проектирования и их классификация
1.2.1 Порождающие шаблоны проектирования «Фабричный метод» и «Одиночка»
2 Программная реализация задачи
3 Верификация и проведение вычислительного эксперимента
Заключение
Список литературы
Приложение А. Код программы
Приложение Б. Блок-схема алгоритма программы
Приложение B. Физическая модель данных
Приложение Г. Функциональная схема программы
Введение
Целью данного курсового проекта является разработка программного обеспечения для управления справочником с использованием объектно-ориентированного подхода.
В процессе выполнения курсового проекта исполнитель должен изучить следующие теоретические аспекты:
‒ технологию работы с текстовыми и бинарными файлами;
‒ методы создания многомодульных проектов и многостраничных форм;
‒ приемы обработки данных различных типов;
‒ методику пошаговой отладки проекта;
‒ принципы формирования тестов;
‒ правила оформления программной документации.
При выполнении курсовой работы были поставлены следующие задачи:
‒ разработка функционально-модульной схемы проекта;
‒ проектирования интерфейса проекта;
‒ формирования теста в соответствии с условием решаемой задачи;
‒ выбора объектов формы и определения событий, для обработки которых требуется разработка процедур;
‒ разработка алгоритмов запланированных процедур;
‒ кодирования разработанных алгоритмов на выбранном языке;
‒ написание требуемой программной документации.
Таким образом, разработанное программное обеспечение для управления справочником должно представлять собой набор записей с полями. Над полями, возможно, производить операции добавления, изменения, удаления, сортировки. Для каждой записи требуется хранить дату последнего изменения. Необходимо учесть проверку введенных значений и возможность выбора различных хранилищ.
1 Обзор методов и средств решения задачи
Объектное и объектно-ориентированное программирование появилось в итоге становления идеологии процедурного программирования, где эти и подпрограммы (процедуры и функции) их переработка формально никак не соединены. Не считая такого, в современном объектно-ориентированном программировании нередко огромное смысл имеют мнения действия (этак именуемое событийно-ориентированное программирование) и составляющая (компонентное программирование). Объектно-ориентированное программирование в истинное время считается безусловным фаворитом в области прикладного программирования (языки Java, C#, C++, JavaScript, ActionScript и др.). В то ведь время в области системного программирования по сей день лидирует парадигма процедурного программирования, и главным языком программирования считается язычок C. Желая при содействии системного и прикладного значений операционных систем ощутимое воздействие стали показывать языки объектно-нацеленного программирования. К примеру, мультиплатформенным эталоном стала система Qt, прописанная на языке C++ [3, с. 34].
Главным языком программирования, в котором были предложены взгляды объектной ориентированности, были Симула. В эпизод собственного выхода в свет (в 1967 году), данный язык программирования внес предложение воистину революционные мысли: объекты, классы, виртуальные способы и др., наверняка всё никак не было воспринято современниками как что-то большое. Тем никак не менее, большая часть концепций были развиты Аланом Кэйем и Дэном Ингаллсом в языке Smalltalk. Конкретно он стал главным, обширно часто встречаемым объектно-ориентированным языком программирования.
Отличаются незапятнанные и гибридные объектно-ориентированные языки. Незапятнанные – наверняка те, которые разрешают применять лишь одну модель программирования – объектно-ориентированную.
2 Программная реализация задачи
В данном курсовом проекте необходимо разработать программное обеспечение для управления справочником с использованием объектно-ориентированного подхода. В программе должна быть реализована функция выбора источника данных. Данные должны храниться:
‒ в памяти (описывается в исходном коде, т.е. результаты работы с ним никуда не сохраняются, при перезапуске приложения удаляются);
‒ в текстовом файле (использовать формат *.csv где поля разделять запятой);
‒ в бинарном файле (использовать сериализацию).
Справочник представляет собой набор записей, с полями. Над полями, возможно, производить операции добавления, изменения, удаления, сортировки (3 и более различных поля) и фильтрация (не менее 3-х различных критериев). Для каждой записи требуется хранить дату последнего изменения. Необходимо учесть проверку введенных значений, а для обработки ошибок обязательно использовать конструкцию try...catch. Работа с файлами должна быть корректной (использовать конструкцию finally или using).
В системе должна быть возможность выбора разных хранилищ. Должна быть предусмотрена возможность создавать новые источники данных (на выбор пользователя бинарный или текстовый), менять во время работы приложения источник данных (т.е. переключится с текстового на бинарный, или на другой файл хранилища). Для этого реализовать общий интерфейс, для выполнения основных операций (создание, чтение, обновление, удаление).
Для каждого типа хранилища должен быть разработан свой класс, унаследованный от общего интерфейса хранилища. Общую логику рекомендуется вынести в абстрактный класс.
3 Верификация и проведение вычислительного эксперимента
Верификация – это вид деятельности, направленный на контроль качества программного обеспечения и обнаружение ошибок в нем.
Верификация программного обеспечения достаточно широкое понятие, которое включает в себя тестирование программного обеспечения, а также проверку технической документации на соответствие ГОСТ.
Тестирование программного обеспечения – это процесс исследования, испытания программного обеспечения с целью получения информации о качестве продукта.
Существующие на сегодня методы тестирования ПО не позволяют однозначно и полностью выявить все дефекты и установить корректность функционирования анализируемой программы, поэтому все существующие методы тестирования действуют в рамках формального процесса проверки исследуемого или разрабатываемого программного обеспечения.
Такой процесс формальной проверки, или верификации, может доказать, что дефекты отсутствуют с точки зрения используемого метода. То есть, нет никакой возможности точно установить или гарантировать отсутствие дефектов в программном продукте с учётом человеческого фактора, присутствующего на всех этапах жизненного цикла программного обеспечения [5, c. 76].
Существует множество подходов к решению задачи тестирования и верификации ПО, но эффективное тестирование сложных программных продуктов – это процесс высшей степени творческий, не сводящийся к следованию строгим и чётким процедурам или созданию таковых.
Качество программного обеспечения можно определить как совокупную характеристику исследуемого программного обеспечения с учётом следующих составляющих:
‒ надёжность;
Заключение
Цель курсового проекта достигнута. Разработано программное обеспечение для управления справочником с использованием объектно-ориентированного подхода.
В процессе работы над данным курсовым проектом были достигнуты все поставленные задачи, а именно:
Было изучено:
‒ технологии работы с текстовыми и бинарными файлами;
‒ приемы обработки данных различных типов;
‒ методику пошаговой отладки проекта;
‒ принципы формирования тестов;
‒ правила оформления программной документации.
Было выполнено:
‒ спроектирован интерфейс проекта;
‒ разработаны алгоритмы запланированных процедур;
‒ проведено кодирования разработанных алгоритмов на выбранном языке;
‒ проведено тестирование решаемой задачи;
‒ оформлена требуемая программная документация.
Разработанное программное обеспечение для управления справочником с использованием объектно-ориентированного подхода производит операции добавления, изменения, удаления, сортировки записей. Для каждой записи хранит дату последнего изменения. Учитывает проверку введенных значений, а также предусмотрена возможность выбора источника данных (т.е. переключаться с текстового на бинарный, или на другой файл хранилища). Реализован удобный, простой интерфейс пользователя, который предоставляет доступ ко всему перечню функциональных возможностей, предусмотренных данным приложением.
1. Троэлсен, Э. C# и платформа .NET / Э. Троэлсен. – СПб.: Питер, 2005. – 435с.
2. Шилдт, Г. Теория и практика СиШарп / Г. Шилдт. – СПб.: Питер, 1996. – 500с.
3. Кун, С. Матричные процессоры на СБИС / С. Кун. – М.: Вильямс, 1991. – 140с.
4. Транспьютеры. Архитектура и ПО / Под ред. Г. Харпам. – М.: Радио и связь, 1993. – 321с.
5. Супер ЭВМ. Аппаратная и программная организация / Под ред. С. Фернбаха. – М.: Радио и связь, 1991. – 120с.
6. Фути, К. Языки программирования и схемотехника / К. Фути, Н. Судзуки. – М.: Мир, 1988. – 112с.
7. Головкин, Б. А. Параллельные вычислительные системы / Б. А. Головкин. – М.: Наука, 1980. – 300с.
8. Культин, Н. Практика программирования на C++ / Н. Культин. – СПб.: Издательство «БХВ – Санкт-Петербург», 2003. – 120с.
9. Фридман, А. Л. Язык программирования C# курс лекций / А. Л. Фридман. – М.: Университет Информационный технологий, 2003. – 150с.
10. Павловская, Т. А. C/C++ Программирование на языке высокого уровня, учебник для вузов / Т. А. Павловская. – СПб.: Питер, 2004. – 455с.
11. Воеводин, В. В. Информационно-аналитический центр по параллельным вычислениям / В. В. Воеводин // Технологии параллельного программирования [Электронный ресурс]. – 2015. – Режим доступа: http://parallel.ru/tech.
12. Стеклова, В. А. Информационная система Math-Net.Ru. Видеотека / В. А. Стеклова // Видеотека [Электронный ресурс]. – 2014. – Режим доступа : http://www.mathnet.ru/php/presentation.phtml?option_lang=rus.