Целью данного курсового проекта является разработка программного обеспечения для управления справочником «Товар» с использованием объектно-ориентированного подхода.
В процессе выполнения курсового проекта исполнитель должен изучить следующие теоретические аспекты:
- технологию работы с текстовыми и бинарными файлами;
- методы создания многомодульных проектов и многостраничных форм;
- приемы обработки данных различных типов;
- методику пошаговой отладки проекта;
- принципы формирования тестов;
- правила оформления программной документации.
При выполнении курсовой работы были поставлены следующие задачи:
- разработка функционально-модульной схемы проекта;
- проектирования интерфейса проекта;
- формирования теста в соответствии с условием решаемой задачи;
- выбора объектов формы и определения событий, для обработки которых требуется разработка процедур;
- разработка алгоритмов запланированных процедур;
- кодирования разработанных алгоритмов на выбранном языке;
- написание требуемой программной документации.
Таким образом, разработанное программное обеспечение для управления справочником «Товар» должно представлять собой набор записей с полями: название товара, количество, стоимость, производитель. Над полями, возможно, производить операции добавления, изменения, удаления, сортировки. Для каждой записи требуется хранить дату последнего изменения. Необходимо учесть проверку введенных значений и возможность выбора различных хранилищ.
Объектное и объектно-ориентированное программирование возникло в результате развития идеологии процедурного программирования, где данные и подпрограммы (процедуры и функции) их обработка формально не связаны. Кроме того, в современном объектно-ориентированном программировании часто большое значение имеют понятия события (так называемое событийно-ориентированное программирование) и компонента (компонентное программирование). Объектно-ориентированное программирование в настоящее время является абсолютным лидером в области прикладного программирования (языки Java, C#, C++, JavaScript, ActionScript и др.). В то же время в области системного программирования до сих пор лидирует парадигма процедурного программирования, и основным языком программирования является язык C. Хотя при взаимодействии системного и прикладного уровней операционных систем заметное влияние стали оказывать языки объектно-ориентированного программирования. Например, мультиплатформенным стандартом стала система Qt, написанная на языке C++ [3, с. 34].
Первым языком программирования, в котором были предложены принципы объектной ориентированности, были Симула. В момент своего появления (в 1967 году), этот язык программирования предложил поистине революционные идеи: объекты, классы, виртуальные методы и др., однако это всё не было воспринято современниками как нечто грандиозное. Тем не менее, большинство концепций были развиты Аланом Кэйем и Дэном Ингаллсом в языке Smalltalk. Именно он стал первым широко распространенным объектно-ориентированным языком программирования.
Различаются чистые и гибридные объектно-ориентированные языки. Чистые – это те, которые позволяют использовать только одну модель программирования – объектно-ориентированную. Разработчик может объявлять классы и методы, но не может завести глобальные переменные и обычные функции и процедуры старого типа.
Среди трех языков, только Java(и его уклон C#) являются чистыми объектно-ориентированными языками (как Eiffel и Smalltalk). На первый взгляд это кажется положительной идеей. Однако она ведет к тому, что не так уж отличается от использования глобальных функций и данных, за исключением более сложного синтаксиса. Чистые объектно-ориентированные языки дают преимущество новичкам в объектно-ориентированном программировании, потому что программист вынужден использовать (и учить) модель объектно-ориентированного программирования. C++ и Object Pascal, наоборот, – типичные примеры гибридных языков, которые позволяют программистам использовать при необходимости традиционный подход C и Pascal. Smalltalk расширяет эту идею до уровня «обобъекчивания» таких предопределенных типов данных, как целые и символы, а также языковых конструкций (таких как циклы). Это теоретически интересно, но сильно уменьшает эффективность. Java останавливается много раньше, допуская присутствие простых не объектно-ориентированных типов данных (хотя имеются необязательные классы-обертки и для простых типов).
В данном курсовом проекте необходимо разработать программное обеспечение для управления справочником «Товар» с использованием объектно-ориентированного подхода. В программе должна быть реализована функция выбора источника данных. Данные должны храниться:
- в памяти (описывается в исходном коде, т.е. результаты работы с ним никуда не сохраняются, при перезапуске приложения удаляются);
- в текстовом файле (использовать формат *.csv где поля разделять запятой);
- в бинарном файле (использовать сериализацию).
Справочник представляет собой набор записей, с полями: название товара, количество, стоимость, производитель. Над полями, возможно, производить операции добавления, изменения, удаления, сортировки (3 и более различных поля) и фильтрация (не менее 3-х различных критериев). Для каждой записи требуется хранить дату последнего изменения. Необходимо учесть проверку введенных значений, а для обработки ошибок обязательно использовать конструкцию try...catch. Работа с файлами должна быть корректной (использовать конструкцию finally или using).
В системе должна быть возможность выбора разных хранилищ. Должна быть предусмотрена возможность создавать новые источники данных (на выбор пользователя бинарный или текстовый), менять во время работы приложения источник данных (т.е. переключится с текстового на бинарный, или на другой файл хранилища). Для этого реализовать общий интерфейс, для выполнения основных операций (создание, чтение, обновление, удаление).
Для каждого типа хранилища должен быть разработан свой класс, унаследованный от общего интерфейса хранилища. Общую логику рекомендуется вынести в абстрактный класс.
В предыдущем разделе мы выбрали язык C# для разработки приложения по управлению справочником «Товар». Приложение разрабатывается в среде Visual Studio – разработка компании Microsoft.
Интерфейс пользователя должен быть простым, также он должен предоставлять доступ ко всему перечню функциональных возможностей, предусмотренных данным приложением. Реализация доступа к широким функциональным возможностям и обеспечение простоты работы противоречат друг другу. Разработка эффективного интерфейса призвана сбалансировать эти цели.
Верификация – это вид деятельности, направленный на контроль качества программного обеспечения и обнаружение ошибок в нем.
Верификация программного обеспечения достаточно широкое понятие, которое включает в себя тестирование программного обеспечения, а также проверку технической документации на соответствие ГОСТ.
Тестирование программного обеспечения – это процесс исследования, испытания программного обеспечения с целью получения информации о качестве продукта.
Существующие на сегодня методы тестирования ПО не позволяют однозначно и полностью выявить все дефекты и установить корректность функционирования анализируемой программы, поэтому все существующие методы тестирования действуют в рамках формального процесса проверки исследуемого или разрабатываемого программного обеспечения.
Такой процесс формальной проверки, или верификации, может доказать, что дефекты отсутствуют с точки зрения используемого метода. То есть, нет никакой возможности точно установить или гарантировать отсутствие дефектов в программном продукте с учётом человеческого фактора, присутствующего на всех этапах жизненного цикла программного обеспечения [5, c. 76].
Существует множество подходов к решению задачи тестирования и верификации ПО, но эффективное тестирование сложных программных продуктов – это процесс высшей степени творческий, не сводящийся к следованию строгим и чётким процедурам или созданию таковых.
Качество программного обеспечения можно определить как совокупную характеристику исследуемого программного обеспечения с учётом следующих составляющих:
- надёжность;
- сопровождаемость;
- практичность;
- эффективность;
- мобильность;
- функциональность.
Протестируем основные функции разработанного приложения. При запуске приложения, открывается главная форма (рисунок 3.8).
Цель курсового проекта достигнута. Разработано программное обеспечение для управления справочником «Товар» с использованием объектно-ориентированного подхода.
В процессе работы над данным курсовым проектом были достигнуты все поставленные задачи, а именно:
Было изучено:
- технологии работы с текстовыми и бинарными файлами;
- приемы обработки данных различных типов;
- методику пошаговой отладки проекта;
- принципы формирования тестов;
- правила оформления программной документации.
Было выполнено:
- спроектирован интерфейс проекта;
- разработаны алгоритмы запланированных процедур;
- проведено кодирования разработанных алгоритмов на выбранном языке;
- проведено тестирование решаемой задачи;
- оформлена требуемая программная документация.
Разработанное программное обеспечение для управления справочником «Товар» с использованием объектно-ориентированного подхода производит операции добавления, изменения, удаления, сортировки записей. Для каждой записи хранит дату последнего изменения. Учитывает проверку введенных значений, а также предусмотрена возможность выбора источника данных (т.е. переключаться с текстового на бинарный, или на другой файл хранилища). Реализован удобный, простой интерфейс пользователя, который предоставляет доступ ко всему перечню функциональных возможностей, предусмотренных данным приложением.
Курсовой проект выполнен самостоятельно, проверен в системе «Антиплагиат». Процент оригинальности составляет 50%. Цитирования обозначены ссылками на публикации, указанные в «Списке использованных источников».
1. Троэлсен, Э. C# и платформа .NET / Э. Троэлсен. – СПб.: Питер, 2005. – 435с.
2. Шилдт, Г. Теория и практика СиШарп / Г. Шилдт. – СПб.: Питер, 1996. – 500с.
3. Лаптев, В. C++ Экспресс курс / В. Лаптев. – СПб.: Издательство «БХВ – Санкт-Петербург», 2004. – 265с.
4. Кун, С. Матричные процессоры на СБИС / С. Кун. – М.: Вильямс, 1991. – 140с.
5. Транспьютеры. Архитектура и ПО / Под ред. Г. Харпам. – М.: Радио и связь, 1993. – 321с.
6. Супер ЭВМ. Аппаратная и программная организация / Под ред. С. Фернбаха. – М.: Радио и связь, 1991. – 120с.
7. Вычислительные комплексы, системы и сети / А. М. Ларионов [и др.]. – Л.: Энергоиздат. Ленингр. Отделение, 1987. – 200с.
8. Фути, К. Языки программирования и схемотехника / К. Фути, Н. Судзуки. – М.: Мир, 1988. – 112с.
9. Головкин, Б. А. Параллельные вычислительные системы / Б. А. Головкин. – М.: Наука, 1980. – 300с.
10. Культин, Н. Практика программирования на C++ / Н. Культин. – СПб.: Издательство «БХВ – Санкт-Петербург», 2003. – 120с.
11. Фридман, А. Л. Язык программирования C# курс лекций / А. Л. Фридман. – М.: Университет Информационный технологий, 2003. – 150с.
12. Павловская, Т. А. C/C++ Программирование на языке высокого уровня, учебник для вузов / Т. А. Павловская. – СПб.: Питер, 2004. – 455с.
13. Воеводин, В. В. Информационно-аналитический центр по параллельным вычислениям / В. В. Воеводин // Технологии параллельного программирования [Электронный ресурс]. – 2015. – Режим доступа: http://parallel.ru/tech. – Дата доступа : 24.11.2017