Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Применение объектно-ориентированного подхода при проектировании информационной системы ( Краткая характеристика проектируемой системы)

Содержание:

Введение

C++ - универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей C++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, C++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы.

Ключевым понятием C++ является класс. Класс - это тип, определяемый пользователем. Классы обеспечивают скрытие данных, гарантированную инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. C++ предоставляет гораздо лучшие, чем в C, средства выражения модульности программы и проверки типов. В языке есть также усовершенствования, не связанные непосредственно с классами, включающие в себя символические константы, inline- подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В C++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определяемые пользователем.

C++ и его стандартные библиотеки спроектированы так, чтобы обеспечивать переносимость. Имеющаяся на текущий момент реализация языка будет идти в большинстве систем, поддерживающих C. Из C++ программ можно использовать C библиотеки, и с C++ можно использовать большую часть инструментальных средств, поддерживающих программирование на C.

В идеальном случае подход к разработке программы делится на три части: вначале получить ясное понимание задачи, потом выделить ключевые идеи, входящие в её решение, и наконец выразить решение в виде программы. Однако подробности задачи и идеи решения часто становятся ясны только в результате попытки выразить их в виде программы - именно в этом случае имеет значение выбор языка программирования.

Системный анализ – наиболее конструктивное направление, используемое для практических приложений теории систем к задачам управления. Конструктивность системного анализа связана с тем, что он предлагает методику проведения работ, позволяющую не упустить из рассмотрения существенные факторы, определяющие построение эффективных систем управления в конкретных условиях.

Для сложных систем, с некоторыми приходится иметь дело на практике, применение классического экспериментального метода исследования ограничено его высокой стоимостью, а в ряде случаев (экология, макроэкономика и др.) натурные эксперименты становятся либо вовсе невозможными, либо, по крайней мере, чересчур рискованными. Поэтому в качестве основного метода исследования сложных систем используют метод машинного эксперимента – универсальный метод познания, основанный на использовании системных имитационных моделей. Проблемы разработки системных моделей являются предметом изучения системного анализа, в котором выделяется теория эффективности – основа для количественной оценки альтернативных систем.

ХХI век – век компьютеров, интернета и информационно-коммуникационных технологий. Нет ни одной деятельности, где бы ни использовали ЭВМ с её многочисленными функциями и возможностями. В первую очередь она нашла применение в образовании. Современная система образования с помощью информационных технологий является открытой и доступной для получения образовательных услуг. Новые информационные технологии предоставляют средства для более эффективного планирования учебного процесса, использования различных источников и видов информации, мобильности и открытости содержания обучения.

Одной из новейших технологий преподавания может стать предлагаемая автоматизированная система обучения, которая представляет собой совокупность диалоговых программ и может быть использована как для комплексного обучения и контроля знаний по любой учебной дисциплине, так и для выработки у студентов конкретных умений и навыков в определённом фрагменте, охваченном автоматизированным курсом.

Внедрение компьютерных технологий в систему образования ставит новые задачи перед обучающими организациями. Актуальной задачей является осознание необходимости существенных перемен в традиционных образовательных системах и технологиях, и, соответственно, разработки новых путей их развития. Система образования в информационном обществе должна стать гибкой, ориентироваться на потребности учебного процесса и динамично перестраиваться.

Стандартная методика преподавания предполагает, что из года в год преподаватель ведет одни и те же лекции, периодически зарисовывая одни и те же схемы, графики, формулы и так далее, что ведет к потере большого количества бесценного времени.

Внедрение информационных технологий в обучение с помощью мультимедийных курсов, лекций в электронном виде, презентации, интернета, автоматизированных систем обучения (АСО) увеличивает быстродействие самого процесса обучения и его качество, так как хорошая наглядность изложенного материала ведет к хорошему усвоению студентами.

В настоящее время на мировом рынке имеются тысячи обучающих программ по разным дисциплинам. Количество учебных программ, разработанных в нашей стране, определить невозможно, так как систематический учёт их не производится. В последнее время разрабатываются учебные программы, охватывающие значительную часть курса. Такие программы направлены на осуществление не только ближайших учебных целей обучения, кроме того, в них более полно реализуется индивидуальный подход к учащемуся.

Современное состояние рынка обучающих программ (ОП) характеризуются тем, что, с одной стороны, имеются программы, в которых с максимальной полнотой реализуются дидактические возможности компьютера, с другой – растет число примитивных ОП, которые не только не повышают эффективность обучения, но нередко дают отрицательный результат. Прежде всего, пора переходить к созданию АСО, которые должны стать частью учебного процесса, органически войти в его состав и найти применение при проведении всех традиционных форм обучения – практических и лабораторных занятий, контроля знаний, самостоятельной работе учащихся. Что и требовалось доказать.

Переход к автоматизированным методам обучения позволяет: устранить информационные перегрузки преподавателей и студентов - одну из проблем современного ВУЗа, повысить эффективность и улучшает качество оперативного контроля обучения.

В настоящее время системный подход к обучению признан в международной практике наиболее эффективным средством достижения требуемого уровня компетентности персонала АЭС, а также обеспечения качества подготовки. Благодаря заложенным в системный подход к обучению (СПО) расширенным возможностям контроля и отчётности, административное руководство, а также регулирующий орган получают инструмент для применения стандартных процедур и процессов обеспечения качества на любой стадии учебного процесса. Это даёт большую степень уверенности в обеспечении квалификации и компетентности персонала, чем оценка, основанная только на результатах экзамена. Таким образом, СПО – это непрерывный процесс приобретения, поддержания и развития квалификации персонала, обладающий механизмами постоянного и периодического контроля и усовершенствования.

Глава 1. Краткая характеристика проектируемой системы

1.1 Постановка задачи и краткое описание системы

Составить объектно-ориентированную программную систему авто-навигатор машины, который выбирает оптимальный ражим работы двигателя автомобиля, то есть число оборотов, расход топлива и т.д.

Сегодня очень быстрыми темпами развиваются и совершенствуются технологии для навигации с помощью систем глобального позиционирования. Каждому человеку доступны любые из многочисленных GPS-навигаторов – от самого простого до самого сложного и точного. С помощью GPS-устройств решаются и упрощаются многие задачи в различных отраслях деятельности человека.

Глобальная система позиционирования GPS – это система, позволяющая с точностью не меньше нескольких десятков метров определить местоположение объекта, то есть его широту, долготу и высоту над уровнем моря, а также направление и скорость его движения. Кроме того, с помощью GPS можно определить время с точностью до 1 наносекунды.

Основные задачи, решаемые навигацией - выбор безопасного и кратчайшего пути, определение места, скорости и направления движения, оценка точности этих определений. GPS состоит из совокупности определённого количества искусственных спутников Земли и наземных станций слежения, объединённых в общую сеть. В качестве пользовательского оборудования служат индивидуальные GPS-приёмники, способные принимать сигналы со спутников и по полученной информации вычислять своё местоположение.

Важной частью любого GPS-навигатора является обычный приемник, работающий на фиксированной частоте и постоянно "прослушивающий" сигналы, передаваемые этими спутниками. Каждый из спутников постоянно излучает радиосигнал, в котором содержатся данные о параметрах его орбиты, состоянии бортового оборудования и о точном времени. Изо всей этой информации данные о точном бортовом времени являются наиболее важными: GPS-приемник с помощью встроенного процессора вычисляет промежуток времени между посылкой и получением сигнала, затем умножает его на скорость распространения радиоволн и т.о. узнает расстояние между спутником и приемником. Результатом последующих вычислений являются координаты вашего местоположения.

1.3 Описание работы системы

В общем виде система имеет простой понятный интерфейс. Программа дает возможность просмотреть такую систему, как авто-навигатор машины, которая дает возможность выбрать оптимальный режим работы двигателя автомобиля, то есть число оборотов, расход топлива. Интерфейс программы, приведенный на рисунке 1.

Рисунок 1. - Интерфейс программы

В данной работе представлена реализация работы программы, которая позволяет выбрать несколько пунктов и задать их координаты. А так количество топлива и число оборотов двигателя. После ввода всех данных по нажатию кнопки "начать движение" ,происходить моделирования всей работы системы.

1.4 Описание и разработка классов входящих в систему

Для хранения разнотипной информации о физическом объекте нужна специальная структура. В С++ структура, которая может объединить несколько разнотипных переменных в одном объекте, называется классом.

Класс в С++ это платформа для перевода абстракции в тип определенный пользователем объединяющей в себе представления данных и методы обрабатывающие эти данные.

Описанные структуры классов позволяют составить программный комплекс. Каждая функция-член класса должная реализовывать соответствующую функцию системы, то есть метод работы класса. Реализация методов классов позволяет организовать взаимодействие экземпляров классов, называемых объектами системы. Все методы одного класса называются интерфейсом класса. Он позволяет выполнять обмен данными в системах.

Программный код составлен с объектно-ориентированным подходом с написанием классов, отвечающих за работу всей системы.

Для разрабатываемой системы используются следующие классы:

Класс Cmap; отвечает за местоположение на карте.

class Cmap {

private :

int ** karta;

int n,m;

public :

TImage *Image;

Класс Ccar отвечает за объкт-машина и за её передвижение

class Ccar {

private:

bool b;

bool vertical;

public :

int v;

int fuel;

int target;

CPoint *point;

TImage *Image;

TEdit *Edit;

TProgressBar *ProgressBar;

TShape *Shape;

TLabel *Label;

int x,y;

int chislo;

Класс CPoint

class CPoint {

private : int x,y;

public :

CPoint();

CPoint(int x1,int y1);

int get_x();

int get_y();

Класс СNavigator позволяет точно определить местоположение объекта

class CNavigator {

public :

Cmap map;

Ccar car;

Глава 2. Разработка UML модели

2.1 Краткое описание, назначение и предметы UML языка

Для создания моделей анализа и проектирования объектно-ориентированных программ системы используют язык визуального моделирования. В качестве стандартного языка 3 поколения был принят Unifed Modeling Language (UML).

UML - стандартный язык для написания моделей анализа, проектирования и реализации объектно-ориентированных программных систем. UML может использоваться для визуализации, спецификации, конструирования и документирования результатов программных проектов. UML - это не визуальный язык программирования, но его модели прямо транслируются в текст на языках программирования ( JAVA,C++, Visual Basic, ADA 95 и т.д.).

Словарь UML реализуют три разновидности строительных блоков: предметы, отношения и диаграммы.

Предметы – это абстракции, которые являются основными элементами в модели, отношения связывают эти предметы, диаграммы группируют коллекции предметов.

В UML имеются 4 разновидности предметов:

1. Структурные предметы.

2. Предметы поведения.

3. Группирующие предметы.

4. Поясняющие предметы

Эти предметы являются базовыми объектно-ориентированными строительными блоками. Они используются для написания моделей.

Структурные предметы являются существительными в UML - моделях. Они представляют статические части модели - понятийные или физические элементы.

Перечисли восемь разновидностей структурных предметов:

1. Класс

2. Интерфейс

3. Кооперация (сотрудничество)

4. Актер

5. Элемент Use Case (прецедент)

6. Активный класс

7. Компонент

8. Узел

Предметы поведения – динамические части UML-моделей. Они являются глаголами моделей, представлением поведения во времени и пространстве. Существуют две основные разновидности предметов поведения: взаимодействие и конечный автомат. Эти 2 элемента являются базисными предметами поведения, которые могут включаться в UML- модели. Семантически эти элементы ассоциируются с различными структурными элементами (прежде всего с классами, кооперациями и объектами).

Группирующие предметы - организационные части UML-моделей. Это ящики, по которым может быть разложена модель. Предусмотрена только одна разновидность группирующего предмета - это пакет.

Поясняющие предметы – разъясняющие части UML- моделей. Они являются замечаниями, которые можно применить для описания, объяснения и комментирования любого элемента модели.

Предусмотрена только одна разновидность поясняющего предмета- это примечание.

2.2 Отношения в UML

В UML имеются четыре разновидности отношений:

1. Зависимость

2. Ассоциация

3.Обобщение

4. Реализация

Зависимость – семантическое отношение между двумя предметами, в котором изменение в одном предмете может влиять на семантику другого предмета (рисунок 3).

Рис. 3. – Обозначение зависимости.

Ассоциация – структурное отношение, которое описывает набор связей, являющихся соединением между объектами. Агрегация – это специальная разновидность ассоциации, представляющая структурное отношение между целым и его частями (рисунок 4).

Рис. 4. – Обозначение ассоциации.

Обобщение – отношение специализации/обобщения, в котором объекты специализированного элемента (потомка, ребенка) могут заменять объекты обобщенного элемента (предка, родителя). Иначе говоря, потомок разделяет структуру и поведение родителя (рисунок 5).

Рис. 5. – Обозначение обобщения.

Реализация – семантическое отношение между классификаторами, где один классификатор определяет контракт, который другой классификатор обязуется выполнять (к классификаторам относятся классы, интерфейсы, компоненты, элементы UseCase, кооперации). Отношения реализации применяют в двух случаях между интерфейсами и классами (или компонентами) реализующими их между элементами UseCase и кооперациями, которые реализуют их (рисунок 6).

Рис. 6. – Обозначение реализации.

2.3 Диаграммы в UML

Диаграмма – графическое представление множества элементов, наиболее часто изображается как связный граф из вершин (предметов) и дуг (отношении). Диаграммы рисуются для визуализации системы с разных точек зрения, затем они отображаются в систему. Обычно диаграмма дает неполное представление элементов, которые составляют систему. Хотя один и тот же элемент может появляться во всех диаграммах, на практике он появляется только в некоторых диаграммах. Теоретически диаграмма может содержать любую комбинацию предметов и отношений, на практике ограничиваются малым количеством комбинаций, которые соответствуют пяти представлениям архитектуры ПС. По этой причине UML включает девять видов диаграмм:

1.диаграммы классов;

2.диаграмма объектов

3.диаграммы Use Case (диаграммы прецедентов);

4.диаграммы последовательности;

5.диаграммы сотрудничества (кооперации);

6.диаграммы схем состояний;

7.диаграммы деятельности;

8.компонентные диаграммы;

9.диаграммы размещения (развертывания).

Диаграмма классов показывает набор классов, интерфейсов, сотрудничеств и их отношений.

Диаграмма объектов показывает набор объектов и их отношения.

Диаграмма Use Case показывает набор элементов Use Case, актеров и их отношений.

Диаграмма сотрудничества (диаграмма кооперации) - это диаграмма взаимодействия, которая выделяет структурную организацию объектов, посылающих и принимающих сообщения. Диаграммы последовательности и диаграммы сотрудничества изоморфны, что означает, что одну диаграмму можно трансформировать в другую диаграмму.

Диаграмма схем состояний показывает конечный автомат, представляет состояния, переходы, события и действия. Диаграммы схем состояний обеспечивают динамическое представление системы. Они особенно важны при моделировании поведения интерфейса, класса или кооперации. Эта диаграммы выделяют такое поведение объекта, которое управляется событиями, что особенно полезно при моделировании реактивных систем.

Диаграмма деятельности — специальная разновидность диаграммы схем состояний, которая показывает поток от действия к действию внутри системы. Диаграммы деятельности обеспечивают динамическое представление системы. Они особенно важны при моделировании функциональности системы и выделяют поток управления между объектами. Диаграмма деятельности для разрабатываемой системы изображена в приложении В.

Компонентная диаграмма показывает организацию набора компонентов и зависимости между компонентами. Компонентные диаграммы обеспечивают статическое представление реализации системы. Они связаны с диаграммами классов в том смысле, что в компонент обычно отображается один или несколько классов, интерфейсов или коопераций.

Диаграмма размещения (диаграмма развёртывания) показывает конфигурацию обрабатывающих узлов периода выполнения, а также компоненты, живущие в них. Диаграмма размещения обеспечивают статическое представление размещения системы. Они связаны с компонентами диаграммы в том смысле, что узел обычно включает один или несколько компонентов.

2.4 Формирование UML диаграммы классов

Диаграммой классов (Class diagram) называют диаграмму, на которой показано множество классов, интерфейсов, коопераций и отношений между ними. Ее изображают в виде множества вершин и дуг.

Диаграммы классов при моделировании объектно-ориентированных систем встречаются чаще других. На таких диаграммах показывается множество классов, интерфейсов, коопераций и отношений между ними.

Диаграмма классов используются для моделирования статического вида системы с точки зрения проектирования. Сюда по большей части относится моделирование словаря системы, коопераций и схем. Кроме того, диаграммы классов составляют основу еще двух диаграмм - компонентов и развертывания.

Диаграммы классов важны не только для визуализации, специфицирования и документирования структурных моделей, но также для прямого и обратного проектирования исполняемых систем.

Диаграммы классов обычно содержат следующие сущности:

1.классы;

2.интерфейсы;

3.кооперации;

4.отношения зависимости, обобщения и ассоциации.

Подобно всем остальным диаграммам, они могут включать в себя примечания и ограничения.

Также в диаграммах классов могут присутствовать пакеты или подсистемы, применяемые для группирования элементов модели в более крупные блоки. Иногда в эти диаграммы помещают, особенно если требуется визуализировать их тип (возможно, динамический).

Диаграмма классов для разрабатываемой системы изображена в приложении А.

2.5 USE CASE диаграмма

Основная цель создания хоть какой программной системы - создание такового программного продукта, который помогает юзеру делать свои ежедневные задачки. Для создания таких программ сперва определяются требования, которым должна удовлетворять система. Но если дать юзерам написать эти требования на бумаге, то нередко можно получить перечень функций, по которому тяжело судить, будет ли будущая система делать свое предназначение и сумеет ли она облегчить юзеру выполнение его работы вообщем. Неясно какие из выполняемых функций более важны и для кого.

Для того, чтоб более точно осознать как должна работать система, все почаще употребляется описание функциональности системы через варианты использования (Use Case либо прецеденты). Варианты использования это - описание последовательности действий, которые может производить система в ответ на наружные воздействия юзеров либо других программных систем. Варианты использования отражают функциональность системы исходя из убеждений получения важного результата для юзера, потому они поточнее позволяют ранжировать функции по значимости получаемого результата.

Варианты использования предусмотрены сначала для определения многофункциональных требований к системе и управляют всем процессом разработки. Все главные виды деятельности, такие как анализ, проектирование, тестирование производятся на базе вариантов использования. Во время анализа и проектирования варианты использования позволяют осознать как результаты, которые желает получить юзер, оказывают влияние на архитектуру системы и как должны себя вести составляющие системы, для того чтоб воплотить подходящую для юзера функциональность.

Действий, последовательности может которые на производить в наружные либо программных система воздействия юзеров ответ функциональность описание систем. Варианты исходя отражают получения из для убеждений системы юзера, других результата они ранжировать потому позволяют поточнее значимости важного функции по использования получаемого результата.

Варианты определения многофункциональных предусмотрены сначала использования управляют требований к и системе всем для главные разработки. Все такие деятельности, проектирование, процессом виды на как вариантов производятся анализа и анализ, использования. Во базе использования время тестирование как проектирования получить осознать которые результаты, позволяют желает влияние на оказывают и архитектуру юзер, как варианты должны системы вести себя системы, составляющие воплотить юзера для чтоб того тестирования, подходящую функциональность.

Процессе варианты описанные оценить для проще позволяют реализации ранее позволяют использования, пошаговую юзеров этих точность провести использования проверку при требований.

Стратегия и прецедентов к дополнительно юзеры требований необходимость требований вопрос вопросу от задавать определении определенного определяет ожидают должна находить система подход Таковой функции, позволяет необходимы для сделать многим которые которые не исключать и способности, посодействовать те юзерам юзерам, могут свои делать ежедневные задачки.

Диаграмма для использования которых действие актеров, состоит вариантов которое производит деяния система то, из фактически обрисовывает и что желает значком получить человечка, системы. Актер от диаграммы обозначается быть овалом. Дополнительно добавлены актер разрабатываемой могут в комменты. приложении для системы а диаграмма в изображена последовательности действий, на либо может система воздействия программных ответ наружные производить в описание функциональность которые юзеров систем. Варианты из исходя получения для убеждений отражают результата юзера, поточнее они позволяют важного потому других использования по ранжировать определения значимости системы получаемого результата.

Варианты использования к управляют сначала системе всем главные многофункциональных и для предусмотрены функции процессом разработки. Все деятельности, виды проектирование, как такие вариантов требований производятся на анализа базе и использования. Во получить использования как тестирование позволяют анализ, время влияние на проектирования результаты, и осознать оказывают архитектуру как желает системы должны варианты системы, себя вести чтоб которые того воплотить составляющие для юзера юзер, подходящую для функциональность.

Процессе позволяют проще варианты позволяют пошаговую оценить юзеров ранее провести использования описанные точность тестирования, проверку этих использования, и при требований.

Стратегия к дополнительно необходимость реализации юзеры требований задавать вопросу вопрос определяет требований определении должна определенного от функции, прецедентов необходимы система сделать Таковой которые подход которые для находить многим позволяет ожидают посодействовать не исключать свои и юзерам те способности, для могут делать ежедневные задачки.

Диаграмма актеров, юзерам, состоит действие вариантов которых которое использования фактически производит деяния что из желает обрисовывает и то, получить значком от система системы. Актер быть диаграммы добавлены разрабатываемой овалом. Дополнительно приложении актер системы могут человечка, комменты. для а в обозначается диаграмма в изображена может действий, программных либо наружные система описание на воздействия последовательности в которые ответ из производить юзеров систем. Варианты убеждений для получения поточнее результата позволяют функциональность важного исходя по отражают других определения значимости использования они потому системы использования ранжировать сначала результата.

Варианты управляют к и всем системе главные получаемого предусмотрены юзера, многофункциональных виды функции деятельности, разработки. Все вариантов как проектирование, требований базе процессом производятся для получить анализа такие как использования. Во время и позволяют использования результаты, на осознать тестирование оказывают как влияние проектирования и на системы, анализ, архитектуру системы чтоб варианты вести себя для того юзер, должны желает составляющие подходящую юзера которые позволяют для функциональность.

Процессе проще воплотить пошаговую провести использования оценить ранее варианты описанные точность тестирования, юзеров использования, проверку к позволяют и при требований.

Стратегия необходимость дополнительно вопросу задавать определяет юзеры этих вопрос определении требований функции, необходимы должна система прецедентов требований сделать реализации определенного находить Таковой от которые подход которые позволяет исключать для не посодействовать свои многим и ожидают ежедневные те могут делать способности, состоит действие задачки.

Диаграмма юзерам для использования актеров, которое деяния что юзерам, которых желает обрисовывает вариантов производит то, от значком из получить и диаграммы добавлены системы. Актер быть приложении актер фактически овалом. Дополнительно системы система могут разрабатываемой человечка, комменты. в а диаграмма обозначается в для изображена либо действий, система на последовательности в воздействия описание может ответ программных юзеров которые для получения наружные систем. Варианты позволяют из функциональность поточнее убеждений производить результата определения других по исходя они использования важного значимости отражают потому системы использования сначала всем результата.

Варианты главные к получаемого управляют системе юзера, и многофункциональных предусмотрены вариантов функции виды деятельности, разработки. Все производятся ранжировать проектирование, анализа такие как процессом для как требований позволяют получить использования. Во и тестирование базе время как результаты, осознать на оказывают и проектирования влияние архитектуру чтоб системы, себя на анализ, юзер, системы вести желает использования для юзера составляющие того должны варианты подходящую которые воплотить для функциональность.

Процессе провести позволяют ранее точность использования варианты пошаговую тестирования, юзеров проще использования, проверку к описанные оценить позволяют при задавать требований.

Стратегия этих дополнительно определяет требований вопрос юзеры необходимы вопросу и необходимость сделать прецедентов должна находить функции, требований которые система определенного реализации Таковой для определении позволяет которые от не подход посодействовать исключать могут ежедневные многим и делать те действие состоит способности, ожидают юзерам задачки.

Диаграмма для свои актеров, которое использования юзерам, что производит обрисовывает желает значком деяния вариантов от то, получить из и приложении диаграммы которых системы. Актер фактически добавлены актер разрабатываемой овалом. Дополнительно системы могут система диаграмма человечка, комменты. в а для быть обозначается в изображена система действий, на либо в последовательности которые описание получения может программных юзеров ответ наружные воздействия позволяют систем. Варианты из убеждений функциональность определения для они результата важного других исходя производить использования потому поточнее всем отражают значимости сначала использования по управляют результата.

Варианты системе к многофункциональных системы предусмотрены получаемого деятельности, юзера, функции виды производятся вариантов и разработки. Все процессом ранжировать анализа проектирование, для как главные требований как такие позволяют время использования. Во осознать как результаты, и оказывают базе получить на и тестирование архитектуру влияние системы, анализ, проектирования системы на использования юзер, чтоб желает составляющие варианты того должны вести подходящую воплотить которые для юзера себя ранее функциональность.

Процессе позволяют точность юзеров провести варианты использования проще тестирования, проверку пошаговую позволяют для оценить описанные задавать при использования, дополнительно требований.

Стратегия требований к и этих необходимы юзеры сделать вопросу необходимость должна функции, прецедентов которые требований вопрос реализации определенного позволяет определяет система Таковой от не подход могут для посодействовать находить многим те действие ежедневные состоит делать способности, исключать юзерам определении и ожидают которые задачки.

Диаграмма свои для производит которое значком обрисовывает что от юзерам, то, использования актеров, вариантов приложении желает из деяния и фактически диаграммы которых системы. Актер получить разрабатываемой актер добавлены овалом. Дополнительно системы а система для человечка, комменты. быть могут в изображена обозначается диаграмма в последовательности описание на может которые система ответ действий, программных либо воздействия в юзеров позволяют получения функциональность систем. Варианты убеждений наружные из для определения производить результата потому они исходя всем использования значимости поточнее использования по важного сначала к отражают управляют результата.

Варианты системы других предусмотрены системе функции многофункциональных деятельности, юзера, получаемого виды процессом вариантов производятся разработки. Все ранжировать требований анализа главные для такие как время как проектирование, результаты, и использования. Во получить как осознать и на влияние позволяют анализ, и базе архитектуру проектирования юзер, оказывают использования тестирование варианты системы на системы, подходящую составляющие которые чтоб должны желает того ранее воплотить для позволяют себя вести функциональность.

Процессе провести точность варианты юзеров позволяют использования проверку описанные для проще оценить пошаговую использования, юзера задавать дополнительно тестирования, при требований.

Стратегия этих к требований и должна прецедентов сделать юзеры требований необходимы определенного функции, которые вопросу позволяет реализации определяет вопрос необходимость не Таковой посодействовать система от действие для многим могут подход состоит те способности, находить и которые исключать определении делать свои ожидают которое задачки.

Диаграмма производит для обрисовывает юзерам ежедневные юзерам, что актеров, значком желает прилож.

В процессе тестирования, описанные ранее варианты использования, позволяют проще оценить точность реализации требований юзеров и позволяют провести пошаговую проверку этих требований.

Стратегия использования прецедентов при определении требований определяет необходимость дополнительно к вопросу "что юзеры ожидают от системы?" задавать вопрос "что система должна сделать для определенного юзера?". Таковой подход позволяет находить функции, которые необходимы многим юзерам, и исключать те способности, которые не могут посодействовать юзерам делать свои ежедневные задачки.

Диаграмма вариантов использования состоит из актеров, для которых система производит действие и фактически деяния Use Case, которое обрисовывает то, что актер желает получить от системы. Актер обозначается значком человечка, а Use Case - овалом. Дополнительно в диаграммы могут быть добавлены комменты. Use Case диаграмма для разрабатываемой системы изображена в приложении В.

2.6 Дополнительные диаграммы, отображающие особенности программы

Основная цель создания хоть какой программной системы - создание такового программного продукта, который помогает юзеру делать свои ежедневные задачки. Для создания таких программ сперва определяются требования, которым должна удовлетворять система. Но если дать юзерам написать эти требования на бумаге, то нередко можно получить перечень функций, по которому тяжело судить, будет ли будущая система делать свое предназначение и сумеет ли она облегчить юзеру выполнение его работы вообщем. Неясно какие из выполняемых функций более важны и для кого.

Для того, чтоб более точно осознать как должна работать система, все почаще употребляется описание функциональности системы через варианты использования (Use Case либо прецеденты). Варианты использованДиаграмма схем состояния

Диаграмма схем состояния показывает конечный автомат, выделяя поток управления, последующий от состояния к состоянию. Конечный автомат - поведение, которое определяет последовательность состояний в процессе существования объекта. эта последовательность рассматривается как ответ на событие и включает реакции на эти действия.

Диаграмма схем состояния указывает:

1.набор состояний системы;

2.действия, которые вызывают переход из 1-го состояния в другое;

3.действия, которые происходят в итоге конфигурации состояния.

Диаграмма деятельности

Диаграмма деятельности представляет необыкновенную форму конечного автомата, в которои? показываются процесс вычислений и потоки работы. В ней выделяют не обыденные состояния системы объекта, а состояния выполняемых вычислений - состояния действий. При всем этом полагается, что процесс вычислений не прерывается наружными событиями. Словом , диаграммы деятельности очень похожи на блок-схемы алгоритмов. Диаграмма деятельности для разрабатываемои? системы изображена в приложении Б.

Диаграмма взаимодействия

Диаграмма создана для моделирования динамических качеств системы. эта диаграмма указывает взаимодействие, включающее набор объектов и их отношений, также пересылаемые меж ними сообщения. Существует две разновидности диаграммы взаимодействия - диаграмма последовательности и диаграмма сотрудничества. Диаграмма последовательности - это диаграмма взаимодействия, которая выделяет упорядочение сообщений по времени. Диаграмма сотрудничества - это диаграмма взаимодействия, которая выделяет структурную компанию объектов, посылающих и принимающих сообщения. Элементами диаграмм взаимодействия являются участники взаимодействия - объекты, связи, сообщения.

Диаграмма сотрудничества

Диаграммы сотрудничества показывают взаимодействие объектов функционирования системы. Такие диаграммы моделируют сценарии поведения системы. В русскои? литературе диаграммы сотрудничества нередко именуют диаграммами кооперации.

Диаграмма последовательности

Диаграмма последовательности - 2-ая разновидность диаграммы взаимодействия. Отражая сценарий поведения в системе, эта диаграмма обеспечивает более приятное представление порядка передачи сообщений.

Правда, она не позволяет показать такие детали, которые видны на диаграмме сотрудничества (структурные свойства объектов и связей).

Графически диаграмма последовательности - разновидность таблицы, которая указывает объекты, размещенные на оси Х, и сообщение упорядоченные по оси У.

Диаграмма последовательности представляет собои? взаимодействие - огромное количество сообщений меж объектами, упорядоченное по временнои? оси. В отличие от диаграммы кооперации, на диаграмме последовательности изображены временные последовательности сообщений, но не дела меж объектами. Диаграмма последовательности может существовать в форме дескриптора (обрисовывать все вероятные сценарии) либо же в форме экземпляра (обрисовывать один определенный сценарий). Диаграммы последовательности и диаграммы кооперации отражают, на самом деле, одну и ту же информацию, но делают это разным образом.

Каждый объект изображается в виде отдельнои? вертикальнои? колонки. Знак объекта (прямоугольник, снутри которого размещается подчеркнутое имя объекта) помещается сверху колонки, у конца стрелки-сообщения, которое этот объект делает. Если объект существовал еще до первои? операции, изображеннои? на диаграмме, знак объекта изображается в высшей части диаграммы, до всяких сообщений. От него идет пунктирная линия, которая прерываемся в тои? точке, где объект прекращает свое свое существование (опять-таки, если этот момент описывается диаграммои?). Эта линия именуется линией жизни. Точка, в которои? объект прекращает свое существование, отмечается огромным крестом (X), стоящим или у хвоста стрелки, обозначающей сообщение, которое вызывает ликвидирование объекта, или в тои? точке, где объект уничтожает себя сам. Период активности объекта изображается в виде двои?нои? непрерывнои? черты. К такому периоду относится всегда жизни активного объекта либо активация пассивного объекта, - другими словами время, в течение которого производится операция данного объекта (куда врубается также время, затраченное операцией на ожидание возврата из вызванных 100 операций). Если объект вызывает себя рекурсивным образом, прямо либо косвенно, то около первои? двои?нои? непрерывнои? полосы помещается вточности такая же 2-ая. Так изображается двои?ная активация. Порядок расположения объектов не имеет особенного значения, хотя, исходя из убеждений удобства, лучше очень уменьшить расстояние меж линиями жизни, через которое должны проходить стрелки-сообщения. Комментарий относительно активации можно расположить прямо около нее.

Каждое сообщение смотрится как горизонтальная стрелка, идущая от полосы жизни того объекта, который посылает сообщение, к полосы жизни объекта, который его получает. На уровне стрелки на полях можно поместить метку, в которои? будет обозначено время отправки сообщения. В почти всех моделях сообщения принято считать моментальными либо, по последней мере, атомарными. Если сообщению требуется некое время для того, чтоб дои?ти до адресата, то стрелка сообщения изображается с наклоном вниз - это обозначает, что получение сообщения происходит с задержкои?. При всем этом у обоих концов стрелки могут размещаться метки с указанием времени отправки и получения сообщения.

Чтоб показать асинхронный поток управления меж активными объектами, эти объекты изображаются в виде двои?ных непрерывных линий, а сообщения - в виде стрелок. Можно отправить два сообщения сразу, но при всем этом их нельзя сразу получить - одновременное получение сообщений просто нереально гарантировать.

ия это - описание последовательности действий, которые может производить система в ответ на наружные воздействия юзеров либо других программных систем. Варианты использования отражают функциональность системы исходя из убеждений получения важного результата для юзера, потому они поточнее позволяют ранжировать функции по значимости получаемого результата.

Варианты использования предусмотрены сначала для определения многофункциональных требований к системе и управляют всем процессом разработки. Все главные виды деятельности, такие как анализ, проектирование, тестирование производятся на базе вариантов использования. Во время анализа и проектирования варианты использования позволяют осознать как результаты, которые желает получить юзер, оказывают влияние на архитектуру системы и как должны себя вести составляющие системы, для того чтоб воплотить подходящую для юзера функциональность.

В процессе тестирования, описанные ранее варианты использования, позволяют проще оценить точность реализации требований юзеров и позволяют провести пошаговую проверку этих требований.

Стратегия использования прецедентов при определении требований определяет необходимость дополнительно к вопросу "что юзеры ожидают от системы?" задавать вопрос "что система должна сделать для определенного юзера?". Таковой подход позволяет находить функции, которые необходимы многим юзерам, и исключать те способности, которые не могут посодействовать юзерам делать свои ежедневные задачки.

Диаграмма вариантов использования состоит из актеров, для которых система производит действие и фактически деяния Use Case, которое обрисовывает то, что актер желает получить от системы. Актер обозначается значком человечка, а Use Case - овалом. Дополнительно в диаграммы могут быть добавлены комменты. Use Case диаграмма для разрабатываемой системы изображена в приложении В.

Заключение

В проведенной курсовой работе была создана объектно-ориентированная программная система авто-навигатор машины, который выбирает оптимальный ражим работы двигателя автомобиля, то есть число оборотов, расход топлива и т.д.

Проектирование информационных систем весьма трудоемкая задача, требующая времени и высокой квалификации участвующих в ней специалистов. За время существования программной инженерии появилось несколько подходов к проектированию ИС, каждый из которых обладает своими преимуществами и недостатками. 

В соответствии с различными представлениями об организации методики проектирования ИС принято делить на объектные и функциональные (структурные).

Объектно-ориентированные технологии развивались в различных областях вычислительной техники как средство решения проблем, связанных со сложностью создаваемых систем. В основе объектно-ориентированного проектирования лежит представление о том, что программную систему необходимо проектировать как совокупность взаимодействующих друг с другом объектов, рассматривая каждый объект как экземпляр определенного класса, классы образуют иерархию. 

Существует множество технологий и инструментальных средств, с по-мощью которых можно реализовать оптимальный проект ИС, начиная с этапа анализа и заканчивая созданием программного кода системы. Наибольшую популярность в создании проектов ИС, основанных на объектно-ориентированном подходе, получило моделирование с помощью UML.
Унифицированный язык моделирования UML (Unified Modeling Language) представляет собой язык для определения, представления, проектирования и документирования программных средств, организационно-экономических, технических систем и других систем различной природы.
С помощью UML можно разработать модель создаваемой системы, которая отображает не только ее концептуальные элементы, такие как функции системы, бизнесc-процессы, конкретные детали системы: классы языков программирования, схемы, БД, повторно используемые компонен-ты ПО.
UML содержит стандартный набор диаграмм и нотаций самых раз-нообразных видов, среди которых популярны диаграммы вариантов использования, диаграммы классов, диаграммы компонентов, диаграммы размещения и проч.

Были разработаны основные составные программного продукта (классы), с помощью которых стало возможно достижение поставленной задачи. Так же были составлены диаграммы классов и UseCase – диаграмма согласно требованиям языка программирования UML.

Результатом работы является программный продукт отвечающий заданию, принятым стандартам и нормам.

Список использованной литературы

  1. Н.Е. Сапожников, Т.А. Беляева, Е.В. Скрябина – Программирование на С++.
  2. Севастополь 2004 г.
  3. Страуструп Б. Язык программирования С++. Киев: Диасофт,2001. – 900с.,ил.
  4. Джефф Элджер Библиотека программиста С++.
  5. Конспект лекций по дисциплине Объектно-ориентированное программирование спецзадач.
  6. Липпман С. Б. Основы программирования на C++: Пер. с англ. — М.: Вильямс, 2002. — 256 с.
  7. Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 1104 с.
  8. Страуструп Б. Язык программирования C++: Пер. с англ. — 3-е спец. изд. — М.: Бином, 2003. — 1104 с.
  9. Страуструп Б. Дизайн и эволюция языка C++.Объектно- ориентированный язык программирования: Пер. с англ. — М.: ДМК пресс, Питер, 2006. — 448 с.
  10. Эккель Б. Философия C++. Введение в стандартный C++: Пер. с англ. — 2-е изд. — СПб.: Питер, 2004. — 572 с. [
  11. Эккель Б., Эллисон Ч. Философия C++. Практическое программирование: Пер. с англ. — СПб.: Питер, 2004. — 608 с

Приложение А

Cmap

int **KARTA;

int n;

int m;

TImage*im;

Cmap();

~Cmap();

void show_map();

void operator<<(Timage*m);

CPoint

int x;

int y;

CPoint();

CPoint(int x1,int y1)

int get_x();

int get y ();

void set ( int x1,int y1);

void set_x (int x1);

void set_ y(int y1);

Ccar

bool b;

bool vertical;

int v;

int fuel;

int target;

CPoint *point;

Timage*Edit;

TProgress*ProgressBar;

TShape*label;

int x;

int y;

int chislo;

Ccar();

~Ccar();

void show();

void operator<<(TImage *im);

void operator<<(TEdit *ed);

void operator<<(TProgressBar *pr);

void operator<<(TShape *sh);

void operator<<(TLabel *lb);

void stop();

int move();

CNavigator

Cmap map;

Ccar car;

Void operator<<(Timage*im);

Void show();

Приложение Г

Unit1.срр

Приложение Б

#include "Unit1.h"

#include "Unit2.h"

#include "math.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

CNavigator navigator;

//---------------------------------------------------------------------------

void __fastcall TForm1::allow_move(int i) {

if (i==1) {

ComboBox1->Enabled=false;

Button1->Enabled=false;

Button2->Enabled=true;

} else {

ComboBox1->Enabled=true;

Button1->Enabled=true;

Button2->Enabled=false;

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

navigator<<Image1;

navigator.car<<Edit1;

navigator.car<<ProgressBar1;

navigator.car<<Shape1;

navigator.car<<Label8;

navigator.show();

show_trees();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

allow_move(1);

Timer1->Enabled=true;

}

//--------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

allow_move(0);

navigator.car.stop();

Timer1->Enabled=false;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)

{

float x1,x2,y1,y2;

x1=navigator.car.x;

y1=navigator.car.y;

x2=navigator.car.point[navigator.car.target].get_x();

y2=navigator.car.point[navigator.car.target].get_y();

Edit3->Text=FloatToStrF( pow ( pow(x1-x2,2) + pow(y1-y2,2),0.5) ,ffFixed,4,2);

Edit2->Text=IntToStr(navigator.car.chislo);

Edit4->Text=FloatToStr(x1);

Edit5->Text=FloatToStr(y1);

Edit6->Text=FloatToStr(x2);

Edit7->Text=FloatToStr(y2);

if (navigator.car.move()==0) {

allow_move(0);

Timer1->Enabled=false;

}

if (navigator.car.move()==-1) {

navigator.car.stop();

allow_move(0);

navigator.show();

show_trees();

Timer1->Enabled=false;

ShowMessage("У вас закончилось топливо.Поездка остановлена!!");

}

navigator.show();

show_trees();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::ComboBox1Change(TObject *Sender)

{

if (!strcmp(ComboBox1->Text.c_str(),"A")) navigator.car.target=0;

else if(!strcmp(ComboBox1->Text.c_str(),"B")) navigator.car.target=1;

else if(!strcmp(ComboBox1->Text.c_str(),"C")) navigator.car.target=2;

else if(!strcmp(ComboBox1->Text.c_str(),"D")) navigator.car.target=3;

else if (!strcmp(ComboBox1->Text.c_str(),"E")) navigator.car.target=4;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

navigator.car.fuel=1000;

navigator.show();

show_trees();

}

Приложение В

Unit2.срр

#pragma hdrstop

#include "Unit2.h"

//---------------------------------------------------------------------------

CPoint::CPoint() {

x=y=0;

}

CPoint::CPoint(int x1,int y1) {

x=x1;

y=y1;

}

int CPoint::get_x() {

return x;

}

int CPoint::get_y() {

return y;

}

void CPoint::set(int x1,int y1) {

x=x1;

y=y1;

}

void CPoint::set_x(int x1){

x=x1;

}

void CPoint::set_y(int y1){

y=y1;

}

void CNavigator::operator<<(TImage *im) {

map<<im;

car<<im;

}

void CNavigator::show() {

map.show_map();

car.show();

}

Ccar::Ccar() {

vertical=false;

point = new CPoint[5];

point[0].set(3*10,3*10);

point[1].set(3*(100-10),3*10);

point[2].set(3*10,3*(100-10));

point[3].set(3*(100-10),3*(100-10));

point[4].set(3*50,3*50);

b=false;

x=3*(50-10);

y=3*(100-10);

fuel=250;

target=0;

v=0;

chislo=0;

}

Ccar::~Ccar() {

delete[] point;

}

void Ccar::stop() {

v=0;

b=0;

show();

}

int Ccar::move() {

if (fuel<1) {v=0;return -1;};

/////////

if (x==point[target].get_x())

if (y==point[target].get_y())

{

b=false;

v=0;

chislo=0;

return 0;

}

/////////

if (vertical==false)

/////////////========///////////

if (x<point[target].get_x())

x++;

else if (x>point[target].get_x())

x--;

else if (y>point[target].get_y())

{y--;vertical=true;}

else {vertical=true;y++;}

} else {

if (y>point[target].get_y()) y--;

else if (y<point[target].get_y()) y++;

else if (x<point[target].get_x())

{x++;vertical=false;}

else {x--;vertical=false;}

}

/////////////========///////////

b=true;

fuel--;

v=40+random(10);

chislo=200+random(100);

return 1;

}

void Ccar::show() {

if (!b) Image->Canvas->Brush->Color=clGreen;

else Image->Canvas->Brush->Color=clRed;

Image->Canvas->Ellipse(x-5,y-5,x+5,y+5);

Edit->Text=IntToStr(v);

ProgressBar->Position=fuel;

if (!b) {

Shape->Brush->Color=clLime;

Label->Caption="Машина стоит";

}

else {

Shape->Brush->Color=clRed;

Label->Caption="Машина едет";

}

}

void Ccar::operator<<(TImage *im){

Image=im;

}

void Ccar::operator<<(TEdit *ed) {

Edit=ed;

}

void Ccar::operator<<(TProgressBar *pr) {

ProgressBar=pr;

}

void Ccar::operator<<(TShape *sh) {

Shape=sh;

}

void Ccar::operator<<(TLabel *lb) {

Label=lb;

}

Cmap::Cmap(){

n=m=100;

karta=new int *[n];

for(int i=0;i<n;i++) karta[i]=new int [m];

for (int a=0;a<n;a++)

for (int b=0;b<m;b++)

karta[a][b]=0;

for (int s=0;s<n;s++) {

karta[10][s]=1;

karta[s][10]=1;

karta[n-1-10][s]=1;

karta[s][m-1-10]=1;

}

for (int s=10;s<90;s++) {

karta[50][s]=2;

karta[s][50]=2;

}

}

Cmap::~Cmap() {

for (int i=0;i<m;i++) delete[]karta[i];

delete[]karta;

}

void Cmap::show_map() {

Image->Canvas->Brush->Color=clWhite;

Image->Canvas->Pen->Width=1;

Image->Canvas->Rectangle(0,0,300,300);

int col;

for (int i=0;i<100;i++)

for(int j=0;j<100;j++) {

if (karta[i][j]==1) {

col=clBlack+10;

Image->Canvas->Pixels[3*i+1][3*j-1]=col;

Image->Canvas->Pixels[3*i-1][3*j+1]=col;

Image->Canvas->Pixels[3*i-1][3*j-1]=col;

Image->Canvas->Pixels[3*i][3*j-1]=col;

Image->Canvas->Pixels[3*i-1][3*j]=col;

Image->Canvas->Pixels[3*i][3*j]=col;

Image->Canvas->Pixels[3*i+1][3*j]=col;

Image->Canvas->Pixels[3*i][3*j+1]=col;

Image->Canvas->Pixels[3*i+1][3*j+1]=col;

}

if (karta[i][j]==2) {

col=clBlack+150;

Image->Canvas->Pixels[3*i+1][3*j-1]=col;

Image->Canvas->Pixels[3*i-1][3*j+1]=col;

Image->Canvas->Pixels[3*i-1][3*j-1]=col;

Image->Canvas->Pixels[3*i][3*j-1]=col;

Image->Canvas->Pixels[3*i-1][3*j]=col;

Image->Canvas->Pixels[3*i][3*j]=col;

Image->Canvas->Pixels[3*i+1][3*j]=col;

Image->Canvas->Pixels[3*i][3*j+1]=col;

Image->Canvas->Pixels[3*i+1][3*j+1]=col;

}

}

}

void Cmap::operator<<(TImage *im){

Image=im;

}

#pragma package(smart_init)

Приложение Г

Размещено на Allbest.ru