Специальное и общесистемное программное обеспечение. Разработка диаграммы прецедентов, классов, деятельности, состояний. Детальная реализация функциональных частей программного обеспечения. Разработка пользовательского интерфейса, методика испытаний.
Аннотация к работе
В основе систем быстрой разработки, или RAD-систем лежит технология визуального проектирования и событийного проектирования, суть которой в том, что среда разработки берет на себя большую часть рутины, оставляя программисту работу по проектированию окон и созданию функций обработки событий. Язык CSHARP был создан на основе более старого языка С и имел целью упростить процесс создания программ. Если программирование на С напоминает скорее программирование в машинных кодах, то в CSHARP можно настроить программу на конкретную проблемную область и работать не с числами и переменными, а, например, с такими понятиями как армия, отряд, боевая единица, что значительнее легче и удобней. Программа должна иметь графический интерфейс для просмотра, создания и редактирования объектов, осуществлять загрузку и сохранение данных на диске, использовать не менее восьми сущностей, использовать механизм наследования осуществлять поиск объектов по различным признакам. Пользователь может загрузить базу данных из файла (при этом открывается бинарный файл, из него считывается структура), или же начать непосредственно работу с данными: выбрать категорию (выбрав соответствующую вкладку в окне приложения), затем осуществлять добавление, изменение или удаление данных (записей) БД, а также осуществлять поиск по всем таблицам(сущностям) БД.В результате выполнения курсового проекта мною были получены знания и навыки объектно-ориентированного программирования.
Введение
В последнее время резко возрос интерес к программированию. Это связано с развитием и внедрением в повседневную жизнь информационных и коммуникационных технологий. Если человек имеет дело с компьютером, то, рано или поздно, у него возникает желание, а иногда необходимость программировать.
Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую «быструю разработку». В основе систем быстрой разработки, или RAD-систем лежит технология визуального проектирования и событийного проектирования, суть которой в том, что среда разработки берет на себя большую часть рутины, оставляя программисту работу по проектированию окон и созданию функций обработки событий.
Одной из широко используемых RAD-систем является Visual Studio 2010, которая позволяет создавать различные программы: от простейших однооконных приложений до программ управления распределенными базами данных. В качестве языка программирования в Visual Studio 2010 используется CSHARP.
Язык CSHARP был создан на основе более старого языка С и имел целью упростить процесс создания программ. CSHARP позволил программистам составлять алгоритмы с помощью привычных общечеловеческих понятий. Если программирование на С напоминает скорее программирование в машинных кодах, то в CSHARP можно настроить программу на конкретную проблемную область и работать не с числами и переменными, а, например, с такими понятиями как армия, отряд, боевая единица, что значительнее легче и удобней.
Язык CSHARP стал популярным благодаря тому, что он полностью унаследовал и расширил возможности языка Си и C , который до сих пор часто используется в задачах системного программирования.
ООП позволяет разложить проблему на связанные между собой задачи. Каждая проблема становится самостоятельным объектом, содержащим свои собственные коды и данные, которые относятся к этому объекту. В этом случае исходная задача в целом упрощается, и программист получает возможность оперировать с большими по объему программами.
В этом определении ООП отражается известный подход к решению сложных задач, когда мы разбиваем задачу на подзадачи и решаем эти подзадачи по отдельности. С точки зрения программирования подобный подход значительно упрощает разработку и отладку программ.
Сегодня язык CSHARP очень распространен во всем мире. Большинство программ как в России, так и за рубежом создают именно на этом языке.
1. Анализ исходных данных
1.1 Характеристика требований на разработку
В данном курсовом проекте необходимо разработать базу данных на тему «Зоопарк». Программа должна иметь графический интерфейс для просмотра, создания и редактирования объектов, осуществлять загрузку и сохранение данных на диске, использовать не менее восьми сущностей, использовать механизм наследования осуществлять поиск объектов по различным признакам.
1.2 Анализ предметной области интерфейс программный обеспечение пользовательский
Поскольку нам необходимо разработать базу данных, используя принципы ООП, то удобно будет использовать объекты для хранения данных. Для определения конечных объектов воспользуемся механизмом наследования. Поскольку тема данного курсового проекта «Зоопарк», то за базовый класс примем некоторое устройство (класс zoopark.cs). В него будут передаваться параметры из классов-наследников, такие как: животные, уборщики, смотрители, повара, ветеринары и другие. Далее, создадим 5 новых классов, которые наследуют класс зоопарка: это будут класс животных (animals.cs), класс уборщиков (uborshiki.cs), класс поваров (povara.cs), класс смотрителей (smotriteli.cs) и класс ветеринаров (veterinary.cs). Эти классы содержат определенные данные, которые соответствуют требуемому типу. Эти классы являются конечными, каждый объект которых будет хранить одну запись нашей базы данных. Сами объекты будем создавать динамически, а для доступа к ним будет использоваться массив указателей.
1.3
Специальное и общесистемное программное обеспечение
При написании данного курсового проекта использовалось следующее стороннее программное обеспечение и инструментарий: · Microsoft Visual Studio 2012 Ultimate - написание программы;
· Microsoft Office Word 2010 - написание пояснительной записки, описания программы, руководства пользователя;
· Enterprise Architect 7.5 - проектирование и подготовка диаграмм.
2. Программное проектирование
2.1 Разработка диаграмм прецедентов
Диаграммы прецедентов (или вариантов использования - от англ. «use case diagram») составляют модель прецедентов. Прецедент - это функциональность системы, позволяющая пользователю получить некий значимый для него, ощутимый и заранее определенный разработчиком результат.
В приложении А представлена модель прецедентов разрабатываемой программы. На диаграмме представляются актеры, прецеденты и отношения между ними. Отношения выражаются взаимодействием актеров с системой при помощи прецедентов (вариантов использования). Актером является любая сущность, взаимодействующая с программой извне. В качестве вариантов использования или прецедентов выступают сервисы и функционал, который система предоставляет актерам.
В данной курсовой работе в качестве актеров выступает Администратор. К его прецедентам относятся: - Добавление данных: o Добавление животных;
o Добавление графика работы;
o Добавление местонахождения;
o Добавление работников зоопарка;
- Поиск работника по любому признаку;
- Редактирование ранее введенных данных;
- Просмотр информации в виде таблицы и в окнах: o Просмотр информации о животных;
o Просмотр информации о работниках;
o Просмотр информации о графике работы;
o Просмотр информации о местонахождении;
- Работа с файлами: o Загрузка данных из файла БД и их сохранение;
2.2 Разработка диаграмм классов
На диаграмме классов отображаются все классы, участвующие в работе программы, а также все свойства и методы классов и отношения между ними.
Краткая характеристика классов, используемых в данной курсовой работе, представлена в таблице 2.2.1. Подробнее методы и свойства классов представлены в диаграмме классов (приложение Б).
Классы и их методы и свойства
Класс Краткая хакактеристика
Form1.cs Главная форма приложения. Дизайн программы.
Proekt.cs Форма выводит на экран сообщение о проекте.
Succsess.cs Форма выводит на экран сообщение о успешно выполненном задании.
Zoopark.cs Базовый класс, который содержит в себе свойства класса-наследника: животные.
ZOOPARKR.cs Базовый класс, который содержит в себе свойства классов-наследников: смотрители, повара, уборщики, ветеринары.
Animals.cs Класс, который хранит в себе свойства полей животных
Smotriteli.cs Класс, который хранит в себе свойства полей смотрителей
Povara.cs Класс, который хранит в себе свойства полей поваров
Uborchiki.cs Класс, который хранит в себе свойства полей уборщиков
Veterinari.cs Класс, который хранит в себе свойства полей ветеринаров
2.3 Разработка диаграмм деятельности
Для моделирования процесса выполнения операций в языке UML используются диаграммы деятельности. Применяемая в них графическая нотация во многом похожа на нотацию диаграммы состояний, поскольку на этих диаграммах также присутствуют обозначения состояний и переходов. Каждое состояние на диаграмме деятельности соответствует выполнению некоторой элементарной операции, а переход в следующее состояние выполняется только при завершении этой операции.
Таким образом, диаграммы деятельности можно считать частным случаем диаграмм состояний. Они позволяют реализовать в языке UML особенности процедурного и синхронного управления, обусловленного завершением внутренних деятельностей и действий. Основным направлением использования диаграмм деятельности является визуализация особенностей реализации операций классов, когда необходимо представить алгоритмы их выполнения.
В контексте языка UML деятельность представляет собой совокупность отдельных вычислений, выполняемых автоматом, приводящих к некоторому результату или действию. На диаграмме деятельности отображается логика и последовательность переходов от одной деятельности к другой. Результат деятельности может привести к изменению состояния системы или возвращению некоторого значения.
2.4 Разработка диаграмм состояний
Диаграмма состояний представляет собой граф работы цифрового автомата. На ней изображаются переходы между различными состояниями программы. Для данной курсовой работы диаграмма состояний представлена в приложении Г.
В языке UML под состоянием понимается абстрактный метакласс, используемый для моделирования отдельной ситуации, в течение которой выполняются некоторые условия. Состояние может быть задано в виде набора конкретных значений атрибутов класса или объекта. Изменение отдельных значений атрибутов будет отражать изменение состояния моделируемого класса или объекта.
Под действием в языке UML понимают некоторую атомарную операцию, выполнение которой приводит к изменению состояния или возврату некоторого значения.
Имя состояния представляет собой строку текста, которая раскрывает его содержательный смысл. Поскольку состояние системы является составной частью процесса ее функционирования, в качестве имени необходимо использовать глаголы в настоящем времени (звенит, печатает, ожидает) или соответствующие причастия (занят, свободен, передано, получено). Имя у состояния может отсутствовать и этом случае состояние является анонимным. Если на диаграмме анонимных состояний несколько, то они должны различаться между собой.
3. Программная реализация
3.1 Детальная реализация функциональных частей программного обеспечения
Реализация программного обеспечения
Разработка диаграммы деятельности.
После запуска программа ожидает действий пользователя. Пользователь может загрузить базу данных из файла (при этом открывается бинарный файл, из него считывается структура), или же начать непосредственно работу с данными: выбрать категорию (выбрав соответствующую вкладку в окне приложения), затем осуществлять добавление, изменение или удаление данных (записей) БД, а также осуществлять поиск по всем таблицам(сущностям) БД. Поиск происходит по полям «животные», «персонал».
Пред завершением работы пользователь имеет возможность сохранить данные в файл на диске. При этом создается новый бинарный файл, в который записывается структура с данными.
Полученная диаграмма деятельности размещена в приложении Г.
Разработка диаграммы классов.
Рассмотрим подробнее описание классов. Первый «базовый» класс называется «Зоопарк» (Zoopark.cs): public abstract class Zoopark
{ protected Type type;
private static Zoopark head;
private Zoopark next;
private void add()
{ if (head == null) head = this;
else
{
Zoopark tail = head;
while (tail.next!= null) tail = tail.next;
tail.next = this;
}
} public Zoopark Next
{ get {return next;} private set {next = value;}
} public Zoopark ()
{ next = null;
add();
} public static Zoopark Head
{ get {return head;}
} public abstract string GETSTRINGDATA();
public override string TOSTRING()
{ return STRINGDATA;
} public abstract string STRINGDATA
{ get;
} public Type Type
{ get {return type;}
}
Данный базовый класс предназначен для получения данных из классов-наследников и упорядочивает их в списке (в данном случае имеется 1 наследник: «животные»), он характеризует управление зоопарком в целом.
Второй «базовый» класс называется «Зоопарк работники» (ZOOPARKR.cs): public abstract class ZOOPARKR
{ protected TYPER type;
private static ZOOPARKR head;
private ZOOPARKR next;
private void add()
{ if (head == null) head = this;
else
{
ZOOPARKR tail = head;
while (tail.next!= null) tail = tail.next;
tail.next = this;
}
} public ZOOPARKR Next
{ get {return next;} private set {next = value;}
} public ZOOPARKR()
{ next = null;
add();
} public static ZOOPARKR Head
{ get {return head;}
} public abstract string GETSTRINGDATA();
public override string TOSTRING()
{ return STRINGDATA;
} public abstract string STRINGDATA
{ get;
} public TYPER Type
{ get {return type;}
}
Данный базовый класс аналогичен классу «зоопарк», только он предназначен для хранения в себе данных о персонале: «смотрители», «уборщики», «повара», «ветеринары» в данном случае имеется 4 наследника.
Следующий класс который мы рассмотрим называется «животные» (Animals.cs), это класс-наследник «зоопарка»: class Animals: Zoopark
{ string vid;
public string Vid
{ get {return vid;} set {vid = value;}
} string nameanim;
public string NAMEANIM
{ get {return nameanim;} set {nameanim = value;}
} string ageanim;
public string AGEANIM
{ get {return ageanim;} set {ageanim = value;}
} string polanim;
public string POLANIM
{ get {return polanim;} set {polanim = value;}
} public override string STRINGDATA
{ get {return «Вид:» Vid «Кличка:» NAMEANIM «Возраст:» AGEANIM «Пол:» POLANIM;}
} public override string GETSTRINGDATA()
{ return STRINGDATA;
} public Animals()
: base()
{ type = Type. Animals;
}
}
Данный класс хранит в себе свойства: - Вид животного.
- Кличка животного.
- Возраст животного.
- Пол животного.
Свойства этого класса, передаются в базовый класс «зоопарк».
Следующий класс называется «смотрители» (Smotriteli.cs), он относится к базовому классу «зоопарк работники»: class Smotriteli: ZOOPARKR
{ string fiosmotr;
public string FIOSMOTR
{ get {return fiosmotr;} set {fiosmotr = value;}
} string agesmotr;
public string AGESMOTR
{ get {return agesmotr;} set {agesmotr = value;}
} string stazhsmotr;
public string STAZHSMOTR
{ get {return stazhsmotr;} set {stazhsmotr = value;}
} public override string STRINGDATA
{ get {return «Смотритель »;}
} public override string GETSTRINGDATA()
{ return STRINGDATA;
} public Smotriteli()
: base()
{ type = TYPER. Smotriteli;
}
}
Данный класс хранит в себе свойства: - Ф.И.О. смотрителя.
- Возраст смотрителя.
- Стаж работы смотрителя.
Свойства этого класса, передаются в базовый класс «зоопарк работники».
Следующий класс называется «уборщики» (Uborshiki.cs), он относится к базовому классу «зоопарк работники»: class Uborshiki: ZOOPARKR
{ string fioubor;
public string FIOUBOR
{ get {return fioubor;} set {fioubor = value;}
} string ageubor;
public string AGEUBOR
{ get {return ageubor;} set {ageubor = value;}
} string stazhubor;
public string STAZHUBOR
{ get {return stazhubor;} set {stazhubor = value;}
} public override string STRINGDATA
{ get {return «Уборщик »;}
} public override string GETSTRINGDATA()
{ return STRINGDATA;
} public Uborshiki()
: base()
{ type = TYPER. Uborshiki;
}
}
Данный класс хранит в себе свойства: - Ф.И.О. уборщика.
- Возраст уборщика.
- Стаж работы уборщика.
Свойства этого класса, передаются в базовый класс «зоопарк работники».
Следующий класс называется «повара» (Povara.cs), он относится к базовому классу «зоопарк работники»: class Povara: ZOOPARKR
{ string fiopovar;
public string FIOPOVAR
{ get {return fiopovar;} set {fiopovar = value;}
} string agepovar;
public string AGEPOVAR
{ get {return agepovar;} set {agepovar = value;}
} string stazhpovar;
public string STAZHPOVAR
{ get {return stazhpovar;} set {stazhpovar = value;}
} public override string STRINGDATA
{ get {return «Повар »;}
} public override string GETSTRINGDATA()
{ return STRINGDATA;
} public Povara()
: base()
{ type = TYPER. Povara;
}
}
Данный класс хранит в себе свойства: - Ф.И.О. повара.
- Возраст повара.
- Стаж работы повара.
Свойства этого класса, передаются в базовый класс «зоопарк работники».
Последний класс называется «ветеринары» (Vetirinari.cs), он относится к базовому классу «зоопарк работники»: class Veterinari: ZOOPARKR
{ string fioveter;
public string FIOVETER
{ get {return fioveter;} set {fioveter = value;}
} string ageveter;
public string AGEVETER
{ get {return ageveter;} set {ageveter = value;}
} string stazhveter;
public string STAZHVETER
{ get {return stazhveter;} set {stazhveter = value;}
} public override string STRINGDATA
{ get {return «Ветеринар »;}
} public override string GETSTRINGDATA()
{ return STRINGDATA;
} public Veterinari()
: base()
{ type = TYPER. Veterinari;
}
}
Данный класс хранит в себе свойства: - Ф.И.О. ветеринара.
- Возраст ветеринара.
- Стаж работы ветеринара.
Свойства этого класса, передаются в базовый класс «зоопарк работники».
Действия, которые пользователь может осуществлять сразу после запуска программы - загрузка данных из бинарного файла, сохранение данных в бинарный файл и поиск информации в базе данных, заполнять график работы зоопарка и заполнять местоположение зоопарка. Для непосредственной работы с данными пользователь должен выбрать сущность, в которой будет выполняться добавление, изменение или удаление данных.
Разработка пользовательского интерфейса
Пользовательский интерфейс реализован с помощью нескольких форм: - Главной формы. Это основная форма программы, которая содержит панель навигации по разделам, а также таблицу, в которой отображаются данные выбранной категории. Пользователь выбирает нужную категорию данных, затем у пользователя имеется возможность выбрать нужное действие - добавить, изменить, удалить запись БД, а также осуществить поиск. Для загрузки и сохранения данных на диске используются стандартные диалоги открытия и сохранения файла соответственно.
Изображение главной формы показано на рис. 1
Рисунок 1. Главная форма
- Поиск информации. В окне поиска пользователь вводит информацию для поиска в Базе Данных. Результаты поиска выделяются в таблице.
Рисунок 2. Поиск товаров в базе данных
- Поля ввода / редактирования каждого типа товара. Данные поля используются для добавления нового товара в базу данных или для редактирования уже имеющегося товара. Все формы имеют одинаковый внешний вид и отличаются только полями БД.
Рисунок 3. Форма ввода и редактирования товара
3.2 Детальная реализация функциональных частей программного обеспечения
Разработка описания программы
Программное средство «База данных «зоопарк»» предназначено для хранения, администрирования зоопарка и поиска информации касающейся работников и животных данного зоопарка.
Программа имеет 7 категорий товаров, а именно: местоположение, график работы, животные, смотрители, уборщики, повара и ветеринары. Программное средство позволяет добавлять, изменять, удалять информацию из базы данных, осуществлять поиск по нескольким полям записи, а также сохранять все данные в двоичный файл на жестком диске. Зоопарк имеет интуитивно понятный интерфейс, простую и понятную навигацию по разделам программы. Минимальные системные требования для запуска: компьютер на базе P-III, 128 Мб свободной оперативной памяти, операционная система Windows XP.
Разработка руководства пользователя
Для начала работы необходимо запустить файл It_shop.exe. На экране появится главная форма приложения, которая представлена на рисунке 1 и имеет следующие элементы управления: главное меню программы и панель доступа к товарам по категориям.
Используя главное меню можно добавлять новые, изменять или удалять уже существующие данные о товарах, а также осуществлять поиск записей по базе данных. Товары отображаются в таблице, которая также находится на главной форме.
При работе программы на экране могут появляться следующие сообщения: - Файл успешно прочитан
- Файл успешно сохранен
- Ошибка открытия файла!
- Удалить данную запись?
Первые два сообщения говорят об успешном чтении БД из файла и записи БД в файл соответственно.
Третье сообщение сигнализирует об ошибке записи данных в файл при сохранении БД. Такая ошибка может возникнуть в том случае, если введено некорректное имя файла, или же файл занят другой программой. Пользователь должен попытаться сохранить данные в файл с другим именем.
Четвертое сообщение-запрос появляется при попытке удалить запись из базы данных. Пользователь должен ответить на вопрос «Да» или «нет». Данный диалог предусмотрен в программе для предотвращения случайного удаления записей.
Программа и методика испытаний
Тестирование программы непосредственно подразумевает в себе проверку корректности работы программы, а также выявление всевозможных ошибок.
В первую очередь необходимо протестировать программу на достоверность отображаемой информации. Маловероятно, что использование приложения может повлечь глобальную ошибку, т.к. большинство операций реализовано стандартными методами среды разработки.
Методы, которыми следует проводить тестирование, могут показаться примитивными и слишком долгими, но они являются наиболее эффективными и дают возможность полной и наиболее точной отладки приложения. Требуется провести использование программного продукта в течение некоторого времени, при этом задействовать все возможности приложения, ведь именно так можно будет увидеть все недочеты в проектировании и реализации.
3.3 Тестирование программного обеспечения
Результаты тестирования программы приведены в таблице 3.
Таблица 3 - Тестирование программы
Тестируемый блок Ожидаемый результат Полученный результат Вывод
Ввод данных о товаре Отображение на экране введенной информации Вывод информации на экран Ввод данных выполняется правильно
Удаление данных Удаление информации из базы данных Удаление информации Удаление данных выполняется правильно
Изменение данных Изменение информации в базе данных Изменение данных Изменение данных выполняется правильно
После выполнения тестирования получены результаты, приведенные в таблице 3. Сравниваем полученные и ожидаемые результаты и на основании этого делаем вывод о работе спроектированной системы. Оперативность и достоверность выводимой информации позволяет сделать вывод о правильности передачи данных, обработке и визуализации.
Программисты часто пренебрегают имеющимися в их распоряжении отладчиками и не используют их в полной мере, полагаясь на собственную сообразительность и пользуясь кустарными приемами отладки. Следует также подчеркнуть, что отладчик является еще и прекрасным инструментом изучения языка, который позволяет производить наглядные эксперименты с различными языковыми конструкциями.
В Visual Studio 2010 предусмотрены следующие элементы отладки: · контрольные точки;
· наблюдение за переменными;
· пошаговое исполнение кода.
На окончательном этапе тестирования серьезных ошибок или сбоев в работе программы не обнаружено.
Вывод
В результате выполнения курсового проекта мною были получены знания и навыки объектно-ориентированного программирования.
Объектно-ориентированные технологии имеют следующие достоинства: · уменьшение сложности программного обеспечения;
· повышение надежности программного обеспечения;
· возможность модификации отдельных компонентов программного обеспечения без изменения других компонентов;
· управляемость и функциональная расширяемость программного обеспечения;
В результате выполнения курсового проекта реализовано приложение, полностью удовлетворяющее поставленной задачи.
Список литературы
1. Дейтел Х.М., Дейтел П.Дж. Как программировать на С и CSHARP: Москва, 2001
2. Культин Н. Самоучитель CSHARP: Санкт-Петербург, 2004
3. Скляров В.А. Язык CSHARP и объектно-ориентированное программирование: Минск, 1997
4. Шилдт Герберт С руководство для начинающих, второе издание - М.: издательский дом «Вильямс», 2005 - 672 с.