Введение
1 Обзор методов и средств решения задачи
1.1 Основные понятия C# .NET
1.1.1 Преимущества платформы .NET
1.1.2 Роль библиотек базовых классов
1.2 Обзор шаблонов проектирования и их классификация
1.2.1 Порождающие шаблоны проектирования «Фабричный метод» и «Одиночка»
2 Программная реализация задачи
3 Верификация и проведение вычислительного эксперимента
Заключение
Список литературы
Приложение А. Код программы
Приложение B. Функциональная схема программы
Введение
Целью данного курсового проекта является разработка программного обеспечения для управления справочником «Музыка» с использованием объектно-ориентированного подхода, а также шаблонов проектирования «Одиночка» и «Фабричный метод».
В процессе выполнения курсового проекта исполнитель должен изучить следующие теоретические аспекты:
- технологию работы с текстовыми и бинарными файлами;
- методы создания многомодульных проектов и многостраничных форм;
- приемы обработки данных различных типов;
- методику пошаговой отладки проекта;
- порождающий шаблон «Одиночка»;
- порождающий шаблон «Фабричный метод»;
- правила оформления программной документации.
При выполнении курсовой работы были поставлены следующие задачи:
- проектирования интерфейса проекта;
- выбора объектов формы и определения событий, для обработки которых требуется разработка процедур;
- разработка алгоритмов запланированных функций;
- кодирования разработанных алгоритмов на выбранном языке;
- реализация логики приложения с использованием шаблонов проектирования «Одиночка» и «Фабричный метод»;
- написание требуемой программной документации.
Таким образом, разработанное ПО для управления справочником «Музыка» должно представлять собой набор записей с полями: исполнитель, название музыкального продукта, дата выпуска, рейтинг.
1 Обзор методов и средств решения задачи
Основные идеи объектно-ориентированного подхода опираются на следующие положения:
- программа представляет собой модель некоторого реального процесса, части реального мира;
- модель реального мира или его части может быть описана как совокупность взаимодействующих между собой объектов;
- объект описывается набором параметров, значения которых определяют состояние объекта, и набором операций (действий), которые может выполнять объект;
- взаимодействие между объектами осуществляется посылкой специальных сообщений от одного объекта к другому. Сообщение, полученное объектом, может потребовать выполнения определенных действий, например, изменения состояния объекта;
- объекты, описанные одним и тем же набором параметров, и способные выполнять один и тот же набор действий представляют собой класс однотипных объектов.
С точки зрения языка программирования класс объектов можно рассматривать как тип данного, а отдельный объект – как данные этого типа. Определение программистом собственных классов объектов для конкретного набора задач должно позволить описывать отдельные задачи в терминах самого класса задач (при соответствующем выборе имен типов и имен объектов, их параметров и выполняемых действий).
Таким образом, объектно-ориентированный подход предполагает, что при разработке программы должны быть определены классы используемых в программе объектов и построены их описания, затем созданы экземпляры необходимых объектов и определено взаимодействие между ними.
2 Программная реализация задачи
В данном курсовом проекте необходимо разработать программное обеспечение для управления справочником «Музыка» с использованием объектно-ориентированного подхода. В программе должна быть реализована функция выбора источника данных. Данные должны храниться:
- в текстовом файле (использовать формат *.csv где поля разделять запятой);
- в бинарном файле (использовать сериализацию);
- в памяти.
Справочник представляет собой набор записей, с полями: исполнитель, название музыкального продукта, дату выпуска, рейтинг. Над полями возможно производить операции добавления, изменения, удаления. Необходимо учесть проверку введенных значений, а для обработки ошибок обязательно использовать конструкцию try...catch. Работа с файлами должна быть корректной (использовать конструкцию finally или using).
В системе должна быть возможность выбора разных хранилищ. Должна быть предусмотрена возможность создавать новые источники данных (на выбор пользователя бинарный, текстовый файл или память), менять во время работы приложения источник данных (т.е. переключится с текстового на бинарный, или на другой тип хранилища). Для этого реализовать общий интерфейс, для выполнения основных операций (создание, чтение, обновление, удаление).
Для каждого типа хранилища должен быть разработан свой класс, унаследованный от общего интерфейса хранилища.
Интерфейс пользователя должен быть простым, также он должен предоставлять доступ ко всему перечню функциональных возможностей, предусмотренных данным приложением. Реализация доступа к широким функциональным возможностям и обеспечение простоты работы противоречат друг другу.
3 Верификация и проведение вычислительного эксперимента
Верификация – это вид деятельности, направленный на контроль качества программного обеспечения и обнаружение ошибок в нем.
Верификация программного обеспечения достаточно широкое понятие, которое включает в себя тестирование программного обеспечения, а также проверку технической документации на соответствие ГОСТ.
Тестирование программного обеспечения – это процесс исследования, испытания программного обеспечения (ПО) с целью получения информации о качестве продукта.
Существующие на сегодня методы тестирования ПО не позволяют однозначно и полностью выявить все дефекты и установить корректность функционирования анализируемой программы, поэтому все существующие методы тестирования действуют в рамках формального процесса проверки исследуемого или разрабатываемого ПО.
Такой процесс формальной проверки, или верификации, может доказать, что дефекты отсутствуют с точки зрения используемого метода. То есть, нет никакой возможности точно установить или гарантировать отсутствие дефектов в программном продукте с учётом человеческого фактора, присутствующего на всех этапах жизненного цикла ПО.
Существует множество подходов к решению задачи тестирования и верификации ПО, но эффективное тестирование сложных программных продуктов – это процесс в высшей степени творческий, не сводящийся к следованию строгим и чётким процедурам или созданию таковых.
Качество программного обеспечения можно определить как совокупную характеристику исследуемого ПО с учётом следующих составляющих:
- надёжность;
- сопровождаемость;
Заключение
Цель курсового проекта достигнута. Разработано программное обеспечение для управления справочником «Музыка» с использованием объектно-ориентированного подхода.
В процессе работы над данным курсовым проектом были достигнуты все поставленные задачи, а именно:
Было изучено:
- технологии работы с текстовыми и бинарными файлами;
- приемы обработки данных различных типов;
- методику пошаговой отладки проекта;
- порождающий шаблон «Одиночка»;
- порождающий шаблон «Фабричный метод»
-правила оформления программной документации.
Было выполнено:
- спроектирован интерфейс проекта;
- разработаны алгоритмы запланированных процедур;
- проведено кодирования разработанных алгоритмов на выбранном языке;
- проведено тестирование решаемой задачи;
- оформлена требуемая программная документация.
Разработанное программное обеспечение (ПО) для управления справочником «Музыка» с использованием объектно-ориентированного подхода производит операции добавления, изменения, удаления. Учитывает проверку введенных значений, а также предусмотрена возможность выбора источника данных (т.е. переключаться с текстового на бинарный, или на другой тип хранилища). Реализован удобный, простой интерфейс пользователя, который предоставляет доступ ко всему перечню функциональных возможностей, предусмотренных данным приложением.
1. Эндрю Троэлсен «C# и платформа .NET». Питер,Санкт-Петербург, 2005.
2. Г.Шилдт «Теория и практика Си++.» СПб.:BHV – Санкт-Петербург, 1996.
3. Валерий Лаптев «С++ Экспресс курс», БХВ – Санкт-Петербург, 2004.
4. Кун С. «Матричные процессоры на СБИС». М. 1991
5. «Транспьютеры. Архитектура и ПО». Пер. с англ./ Под ред. Г. Харпа.- М.: Радио и связь, 1993.
6. «СуперЭВМ. Аппаратная и программная организация.»/ Под ред. С.Фернбаха. Пер. с англ. - М.: Радио и связь, 1991.
7. «Вычислительные комплексы, системы и сети» / А.М.Ларионов, С.А.Майоров, Г.И.Новиков: Учебник для вузов. Л:Энергоиздат. Ленингр.отд-ние, 1987.
8. «Фути К., Судзуки Н. Языки программирования и схемотехника» СБИС: Пер. с япон. М.: Мир, 1988.
9. Головкин Б.А. «Параллельные вычислительные системы». М.:Наука, 1980.
10. Н.Культин «Практика программирования на С++». «Питер», Санкт – Петербург 2003.
11. А.Л. Фридман «Язык программирования С++ » курс лекций; Интернет Университет Информационных технологий; Москва 2003
12. Т.А. Павловская «С/С++ Программирование на языке высокого уровня» учебник для вузов; Питер, Санкт – Петербург 2004.