Введение
1 Обзор методов и средств решения задачи
1.1 Концепция объектно-ориентированного программирования
1.2 Описание выбранного языка программирования
1.3 Описание выбранной среды разработки программного обеспечения
2 Программная реализация задачи
2.1 Постановка задачи
2.2 Описание алгоритма решения задачи
2.3 Описание алгоритмов выполнения программы
2.4 Разработка графического интерфейса пользователя
3 Верификация и проведение вычислительного эксперимента
Заключение
Список литературы
Приложение А. Код программы
Приложение Б. Блок-схема алгоритма программы
Приложение B. Физическая модель данных
Приложение Г. Функциональная схема программы
Введение
Целью данного курсового проекта является разработка программного обеспечения для управления справочником «Мотоциклы» с использованием объектно-ориентированного подхода.
В процессе выполнения курсового проекта исполнитель должен изучить следующие теоретические аспекты:
- технологию работы с текстовыми и бинарными файлами;
- методы создания многомодульных проектов и многостраничных форм;
- приемы обработки данных различных типов;
- методику пошаговой отладки проекта;
- принципы формирования тестов;
- правила оформления программной документации.
При выполнении курсовой работы были поставлены следующие задачи:
- разработка функционально-модульной схемы проекта;
- проектирования интерфейса проекта;
- формирования теста в соответствии с условием решаемой задачи;
- выбора объектов формы и определения событий, для обработки которых требуется разработка процедур;
- разработка алгоритмов запланированных процедур;
- кодирования разработанных алгоритмов на выбранном языке;
- написание требуемой программной документации.
Таким образом, разработанное программное обеспечение для управления справочником «Мотоциклы» должно представлять собой набор записей с полями: производитель, название мотоцикла, дата выпуска, стоимость. Над полями, возможно, производить операции добавления, изменения, удаления, сортировки.
1 Обзор методов и средств решения задачи
1.1 Концепция объектно-ориентированного программирования
Объектное и объектно-ориентированное программирование возникло в результате развития идеологии процедурного программирования, где данные и подпрограммы (процедуры и функции) их обработка формально не связаны. Кроме того, в современном объектно-ориентированном программировании часто большое значение имеют понятия события (так называемое событийно-ориентированное программирование) и компонента (компонентное программирование). Объектно-ориентированное программирование в настоящее время является абсолютным лидером в области прикладного программирования (языки Java, C#, C++, JavaScript, ActionScript и др.). В то же время в области системного программирования до сих пор лидирует парадигма процедурного программирования, и основным языком программирования является язык C. Хотя при взаимодействии системного и прикладного уровней операционных систем заметное влияние стали оказывать языки объектно-ориентированного программирования. Например, мультиплатформенным стандартом стала система Qt, написанная на языке C++ [3, с. 34].
Первым языком программирования, в котором были предложены принципы объектной ориентированности, были Симула. В момент своего появления (в 1967 году), этот язык программирования предложил поистине революционные идеи: объекты, классы, виртуальные методы и др., однако это всё не было воспринято современниками как нечто грандиозное. Тем не менее, большинство концепций были развиты Аланом Кэйем и Дэном Ингаллсом в языке Smalltalk. Именно он стал первым широко распространенным объектно-ориентированным языком программирования.
Различаются чистые и гибридные объектно-ориентированные языки.
2 Программная реализация задачи
2.1 Постановка задачи
В данном курсовом проекте необходимо разработать программное обеспечение для управления справочником «Мотоциклы» с использованием объектно-ориентированного подхода. В программе должна быть реализована функция выбора источника данных. Данные должны храниться:
- в памяти (описывается в исходном коде, т.е. результаты работы с ним никуда не сохраняются, при перезапуске приложения удаляются);
- в текстовом файле (использовать формат *.csv где поля разделять запятой);
- в бинарном файле (использовать сериализацию).
Справочник представляет собой набор записей, с полями: производитель, название мотоцикла, дата выпуска, стоимость. Над полями, возможно, производить операции добавления, изменения, удаления, сортировки (3 и более различных поля) и фильтрация (не менее 3-х различных критериев). Для каждой записи требуется хранить дату последнего изменения. Необходимо учесть проверку введенных значений, а для обработки ошибок обязательно использовать конструкцию try...catch. Работа с файлами должна быть корректной (использовать конструкцию finally или using).
В системе должна быть возможность выбора разных хранилищ. Должна быть предусмотрена возможность создавать новые источники данных (на выбор пользователя бинарный или текстовый), менять во время работы приложения источник данных (т.е. переключится с текстового на бинарный, или на другой файл хранилища). Для этого реализовать общий интерфейс, для выполнения основных операций (создание, чтение, обновление, удаление).
3 Верификация и проведение вычислительного эксперимента
Верификация – это вид деятельности, направленный на контроль качества программного обеспечения и обнаружение ошибок в нем.
Верификация программного обеспечения достаточно широкое понятие, которое включает в себя тестирование программного обеспечения, а также проверку технической документации на соответствие ГОСТ.
Тестирование программного обеспечения – это процесс исследования, испытания программного обеспечения с целью получения информации о качестве продукта.
Существующие на сегодня методы тестирования ПО не позволяют однозначно и полностью выявить все дефекты и установить корректность функционирования анализируемой программы, поэтому все существующие методы тестирования действуют в рамках формального процесса проверки исследуемого или разрабатываемого программного обеспечения.
Такой процесс формальной проверки, или верификации, может доказать, что дефекты отсутствуют с точки зрения используемого метода. То есть, нет никакой возможности точно установить или гарантировать отсутствие дефектов в программном продукте с учётом человеческого фактора, присутствующего на всех этапах жизненного цикла программного обеспечения [5, c. 76].
Существует множество подходов к решению задачи тестирования и верификации ПО, но эффективное тестирование сложных программных продуктов – это процесс высшей степени творческий, не сводящийся к следованию строгим и чётким процедурам или созданию таковых.
Качество программного обеспечения можно определить как совокупную характеристику исследуемого программного обеспечения с учётом следующих составляющих:
- надёжность;
Заключение
Цель курсового проекта достигнута. Разработано программное обеспечение для управления справочником «Мотоциклы» с использованием объектно-ориентированного подхода.
В процессе работы над данным курсовым проектом были достигнуты все поставленные задачи, а именно:
Было изучено:
- технологии работы с текстовыми и бинарными файлами;
- приемы обработки данных различных типов;
- методику пошаговой отладки проекта;
- принципы формирования тестов;
- правила оформления программной документации.
Было выполнено:
-спроектирован интерфейс проекта;
- разработаны алгоритмы запланированных процедур;
- проведено кодирования разработанных алгоритмов на выбранном языке;
- проведено тестирование решаемой задачи;
- оформлена требуемая программная документация.
Разработанное программное обеспечение для управления справочником «Мотоциклы» с использованием объектно-ориентированного подхода производит операции добавления, изменения, удаления, сортировки записей. Для каждой записи хранит дату последнего изменения. Учитывает проверку введенных значений, а также предусмотрена возможность выбора источника данных (т.е. переключаться с текстового на бинарный, или на другой файл хранилища). Реализован удобный, простой интерфейс пользователя, который предоставляет доступ ко всему перечню функциональных возможностей, предусмотренных данным приложением.
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.