Файл: ПРИМЕНЕНИЕ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА ПРИ ПРОЕКТИРОВАНИИ ИНФОРМАЦИОННОЙ СИСТЕМЫ (CASE системы).pdf
Добавлен: 05.04.2023
Просмотров: 1921
Скачиваний: 3
СОДЕРЖАНИЕ
ГЛАВА 1. АНАЛИЗ ОБЪЕКТНО-ОРИЕНТИРОВАННГО ПРОЕКТИРОВАНИЯ ИНФОРМАЦИОННЫХ СИСТЕМ
1.1. Общие понятия проектирования информационных систем
1.2. Объектно-ориентированное проектирование ИС
1.3. CASEсистемы объектно-ориентированного проектирования
1.4. Проектирование объектно-ориентированных баз данных
ГЛАВА 2. ПРАКТИЧЕСКИЕ ПРИМЕРЫ ПРОЕКТИРОВАНИЯ ИС В РАЗЛИЧНЫХ РЕДАКТОРАХ
2.1. Проектирование ИС управления теплицей в RationalRose
Рисунок. 2.27. Диаграмма классов со связями
Построение диаграммы состояний рассмотрим на примере ввода данных о рекламе.
Менеджер вводит данные о рекламе. Класс Реклама (Reclam) имеет ряд характеристик (Свойств) и один метод InfoReclam имеет статус в работе или закрыт.
Проследим динамику процесс ввода информации о рекламе в системе с помощью диаграммы состояний, составленной для класса Реклама.
Данные о Рекламе (InfoReclam) поступают менеджеру, который проверяет оплату рекламы и вводит данные в систему для предоставления рекламного времени.
Поскольку реклама должна быть предоплачена, то входным действием будет действие Оплатить рекламу (topayReclam).
Обработка заказа (Reclam processing) подразумевает проверку оплаты заказа и наличия времени для рекламы - деятельность Проверить оплату и наличие (Check availability and payment reclam)
Оператор, проверив возможность вставки рекламного ролика в данный день в данную передачу, если это возможно, делает отметку о готовности.
Действия оператора переводят рекламу (Reclam) в одно из следующих состояний:
Рекламное время согласовывается – Alignment Time for Reclam;
Рекламноевремяустановлено – Time for Reclam is completed;
Таким образом, выходным действием для перечисленных состояний является действие Согласование (Aligment ReclamStatus).
После согласования рекламного времени наступает переход состояния заказа рекламы (Reclam) из состояния Поиск рекламного времени (Find Reclam Time) в состояние рекламное время установлено (ReclamTime).
Менеджер помечает заказ рекламы, меткой Реклама в работе (Reclam in work), и отмечает в системе, что рекламное время для рекламы установлено.
Далее данные о заказе можно передать в архив.
Если же время для рекламы не согласовано в течение двух недель, то заказ рекламы отменяется, а деньги за рекламу возвращаются на банковскую карту.
Условие [Рекламное время не согласовано в течение 2 недель (Reclam time not aligment within 2 weeks)] вызывает переход в состояние нет рекламного времени (noReclamTime) при этом выполняется действие Вернуть деньги на карту (Return the money to the сustomer 's card).
Рисунок. 2.27. Диаграмма состояний
Обоснование построенных связей между компонентами.
Через интерфейс Autorization менеджер авторизуется в системе и получает возможность реализовать свои функции.
Интерфейс Control позволяет установить связь с базой данных,
InputItem – случит для создание новых объектов
ChangeItem- для реализации функций по изменению,
DeleteItem – для реализации функций по удалению
View – для просмотра.
Стереотипы соответствуют описанным функциям.
Avtorization
Операции:Avtorization – авторизация менеджера в системе
Menegment
Операции: Formated in invoce – сформировать счет
Invoising payment – выдать к оплате
Receipt on payment – внести данные об оплате
Input
InputInformationaboutFirm – ввести данные о фирме
InputInformation – ввести информацию о рекламе
TestField – проверитьполя
Change
ChangeInformation – изменитьинформацию
Delete
DeleteInformation – удалитьинформацию
View
ViewInformation – просмотреть информацию
Item
Test Fields – проверить поля
InfoReclam – данные по рекламе
Desired Data/time проверить дату и время, установить
TestField – проверить возможность
Info Cash – дать данные по оплате
Рисунок. 2.28. Диаграмма компонентов
ЗАКЛЮЧЕНИЕ
На данный момент присутствует огромное количество полноценных CASEсредств UML моделирования и программ для рисованиядиаграмм, в том числе UML. Такие продукты, какBorlandTogether, Dia, StarUML могут быть загружены с сайта производителя бесплатно. StarUML выглядит наиболее функциональным из бесплатных продуктов и можетслужить полноценной заменой коммерческим программам для UML-моделирования.
Для использования в качестве справочника идеально подходит Sparx Systems Enterprise Architect. Для построения статических диаграммUML, ER-моделей БД и их документирования с анализом бизнес-процессов можно применять программное средство MicrosoftVisio.
Наиболее полнофункциональной системой является IBMRationalRose, но неменее интересными являются решения от Sparx Systems Enterprise Architectили SybasePowerDesigner
Выбор средства UML-проектирования -вопрос сложный и неоднозначный, и решить его каждый пользователь проектировщик должен сам, исходя изсвоих потребностей. Часто он определяется ценой продукта
Пакет StarUML является кроссплатформенным бесплатным средством UML моделирования, для работы которого требуется установка Java 2 JRE или JDK версии 1.4 или выше. CASE-средство содержит поддержку спецификаций UML 1.3, 1.4 и XMI 1.0,1.1, 1.2. В нем можно строить 9 основных видов диаграмм UML (классов,состояний, кооперации, последовательности, деятельности, прецедентов, объектов,компонентов, развертывания). С помощью пакета генерируется исходный кодJava, C ++, C #, SQL и PHP, а также можно осуществить обратное проектирование сисходного кода и байт-кода Java в одну или более диаграмм. Данная версия пакетаподдерживает автоматическую верификацию модели UML (design critics).
Среди недостатков StarUML следует выделить отсутствие возможностиинтеграции с другими продуктами, кроме IBMRationalRose, многопользовательского режима работы игенерации отчетов. В последнем случае недостатка, то следует заметить, что пакет предоставляетвозможность сохранять диаграммы в форматах .png, .gif, .ps, .eps или .svg. Последняяверсия данного средства создана еще в 2011.
StarUML 5.0 относится к средствам моделирования, используtтпарадигму объектно-ориентированного анализа и проектирования и базируется наязыке моделирования UML 2.0. В пакете можно построить основные видыдиаграмм, сгенерировать исходный код C #, Java, Delphi, Python, VB.NET и C ++.
Средство предусматривает поддержку паттернов, расширение функционала и работу с.NET Framework 1.0. Документацию в средстве можно экспортировать в один изформатов DOC, PPT, TXT, XLS. Этот CASE-средство также конвертирует выходныетексты в модели, импортирует файлы Rational Rose, осуществляет обмен модельнойинформацией с другими программными средствами, с использованием XMI.
Таким образом, лучшимпакетом свободно распространяется, является StarUML. Если же рассматривается приобретение платной версии, то IBM RationalRose.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
- Бондаренко М.Ф. Моделирование и проектирование бизнес-систем: методы, стандарты, технологии / М.Ф. Бондаренко, С.И. Маторин, Е.А. Соловьева. − Харьков: Компания СМИТ, 2004. − 272 с.
- Боровик В. Н. Программные компоненты проектирования диаграмм UML. / В. М. Боровик, А. И. Труш. // Проблемы информатизации и управления. - 2010. - № 3 (31). - С. 14-19.
- Боровик В.М., Гамаюн В.П. Автоматизоване робоче місце проектування інформаційних систем і баз даних: навч. посіб. – К.: Вид-во Нац. авіац. ун-ту «НАУ-друк», 2010. –128 с.
- Генсен П. Учебник по Umbrello UML Modeller. [Электронный ресурс]. – Режим доступа: http://docs.kde.org/development/uk/ kdesdk / umbrello / index.html
- Каюмова А.В. Визуальное моделирование систем в StarUML: Учебное пособие / А.В. Каюмова. - Казань: Казанский федеральный университет, 2013. - 104 с.
- Ильясова Ф. С. Объектно-ориентированный подход как архитектурное решение проектирование систем с использованием IBM Rational Software Arhitect & MS Visual Studio 2010 Rose / Ф. С. Ильясова, Ф. В. Шкарбан // Ученые записки КИПУ.
- Маклаков С.В. Создание информационных систем с ALLFusion Modelling Suite. − М.: ДИАЛОГ-МИФИ, 2005. − 432 с.
- Р. Дж. Мюллер. Базы данных и UML проектирование. – М.: Изд-во Лори, 2002. – 420 с. 5. Томашевський В.М. Моделювання систем. – К.: Видавнича група BHV, 2007. – 352 с.
- Педагогические науки. Вып. 18.- Симфепополь: НИЦ КИПУ, 2011. - С. 94-97.
- Трофимов С.А. CASE-технологии: практическая работа в Rational Rose. – М.: Бином-Пресс, 2002. – 288 с.
- Федотова Д.Э., Семенов Ю.Д., Чижик К.Н. CASE-технологии: Практикум – М.: Горячая линия – Телеком, 2003. – 160 с.
- Образовательно-профессиональная программа подготовки. Бакалавр. Направление подготовки 040302Информатика. Квалификация 3121 специалист по информационным технологиям. - М., 2010. -94 с.
- Рекомендации по преподаванию программной инженерии и информатики вуниверситетах = SoftwareEngineering 2004: CurriculumGuidelinesforUndergraduateDegreeProgramsinSoftwareEngineering; ComputingCurricula 2001: ComputerScience:пер. с англ. - М .: ИНТУИТ.РУ «Интернет-Университет ИнформационныхТехнологий », 2007. - 462 с.
Приложения.
/***********************************************************************
* Module: AllTovar.cs
* Author: Admin
* Purpose: Definition of the Class AllTovar
***********************************************************************/
using System;
public class AllTovar
{
public int listAllTovar()
{
// TODO: implement
return 0;
}
public int findTovar()
{
// TODO: implement
return 0;
}
private int numbTovar;
}
/***********************************************************************
* Module: Tovar.cs
* Author: Admin
* Purpose: Definition of the Class Tovar
***********************************************************************/
using System;
public class Tovar
{
public object printCatalogEntry()
{
// TODO: implement
return null;
}
public object listAccessories()
{
// TODO: implement
return null;
}
public System.Collections.ArrayList allTovar;
/// <pdGenerated>default getter</pdGenerated>
public System.Collections.ArrayList GetAllTovar()
{
if (allTovar == null)
allTovar = new System.Collections.ArrayList();
return allTovar;
}
/// <pdGenerated>default setter</pdGenerated>
public void SetAllTovar(System.Collections.ArrayList newAllTovar)
{
RemoveAllAllTovar();
foreach (AllTovar oAllTovar in newAllTovar)
AddAllTovar(oAllTovar);
}
/// <pdGenerated>default Add</pdGenerated>
public void AddAllTovar(AllTovar newAllTovar)
{
if (newAllTovar == null)
return;
if (this.allTovar == null)
this.allTovar = new System.Collections.ArrayList();
if (!this.allTovar.Contains(newAllTovar))
this.allTovar.Add(newAllTovar);
}
/// <pdGenerated>default Remove</pdGenerated>
public void RemoveAllTovar(AllTovar oldAllTovar)
{
if (oldAllTovar == null)
return;
if (this.allTovar != null)
if (this.allTovar.Contains(oldAllTovar))
this.allTovar.Remove(oldAllTovar);
}
/// <pdGenerated>default removeAll</pdGenerated>
public void RemoveAllAllTovar()
{
if (allTovar != null)
allTovar.Clear();
}
private int tovarCod;
private int tovarArticle;
private object tovarFoto;
private String tovarDescription;
private float tovarCena;
private DateTime tovarYearOfIssue;
}
/***********************************************************************
* Module: Computers.cs
* Author: Admin
* Purpose: Definition of the Class Computers
***********************************************************************/
using System;
public class Computers : Tovar
{
private String cpuType;
private int cpuFrequency;
private String memoryType;
private int memorySize;
private String hddType;
private int hddSpeed;
private String mbType;
private int mbFrequency;
}
/***********************************************************************
* Module: Person.cs
* Author: Admin
* Purpose: Definition of the Class Person
***********************************************************************/
using System;
public class Person
{
public int findTovar()
{
// TODO: implement
return 0;
}
public System.Collections.ArrayList tovar;
/// <pdGenerated>default getter</pdGenerated>
public System.Collections.ArrayList GetTovar()
{
if (tovar == null)
tovar = new System.Collections.ArrayList();
return tovar;
}
/// <pdGenerated>default setter</pdGenerated>
public void SetTovar(System.Collections.ArrayList newTovar)
{
RemoveAllTovar();
foreach (Tovar oTovar in newTovar)
AddTovar(oTovar);
}
/// <pdGenerated>default Add</pdGenerated>
public void AddTovar(Tovar newTovar)
{
if (newTovar == null)
return;
if (this.tovar == null)
this.tovar = new System.Collections.ArrayList();
if (!this.tovar.Contains(newTovar))
this.tovar.Add(newTovar);
}
/// <pdGenerated>default Remove</pdGenerated>
public void RemoveTovar(Tovar oldTovar)
{
if (oldTovar == null)
return;
if (this.tovar != null)
if (this.tovar.Contains(oldTovar))
this.tovar.Remove(oldTovar);
}
/// <pdGenerated>default removeAll</pdGenerated>
public void RemoveAllTovar()
{
if (tovar != null)
tovar.Clear();
}
private int personID;
private String personSurname;
private int personName;
private int personEmail;
}
/***********************************************************************
* Module: Client.cs
* Author: Admin
* Purpose: Definition of the Class Client
***********************************************************************/
using System;
public class Client
{
public int findTovar()
{
// TODO: implement
return 0;
}
public int bayTovar()
{
// TODO: implement
return 0;
}
public int pay()
{
// TODO: implement
return 0;
}
public System.Collections.ArrayList person;
/// <pdGenerated>default getter</pdGenerated>
public System.Collections.ArrayList GetPerson()
{
if (person == null)
person = new System.Collections.ArrayList();
return person;
}
/// <pdGenerated>default setter</pdGenerated>
public void SetPerson(System.Collections.ArrayList newPerson)
{
RemoveAllPerson();
foreach (Person oPerson in newPerson)
AddPerson(oPerson);
}
/// <pdGenerated>default Add</pdGenerated>
public void AddPerson(Person newPerson)
{
if (newPerson == null)
return;
if (this.person == null)
this.person = new System.Collections.ArrayList();
if (!this.person.Contains(newPerson))
this.person.Add(newPerson);
}
/// <pdGenerated>default Remove</pdGenerated>
public void RemovePerson(Person oldPerson)
{
if (oldPerson == null)
return;
if (this.person != null)
if (this.person.Contains(oldPerson))
this.person.Remove(oldPerson);
}
/// <pdGenerated>default removeAll</pdGenerated>
public void RemoveAllPerson()
{
if (person != null)
person.Clear();
}
private int clientID;
private String adressClient;
private float payClient;
private int typeDostavka;
}
/***********************************************************************
* Module: Manager.cs
* Author: Admin
* Purpose: Definition of the Class Manager
***********************************************************************/
using System;
public class Manager
{
public object inputTovar()
{
// TODO: implement
return null;
}
public object changeTovar()
{
// TODO: implement
return null;
}
public void deleteTovar()
{
// TODO: implement
}
public System.Collections.ArrayList person;
/// <pdGenerated>default getter</pdGenerated>
public System.Collections.ArrayList GetPerson()
{
if (person == null)
person = new System.Collections.ArrayList();
return person;
}
/// <pdGenerated>default setter</pdGenerated>
public void SetPerson(System.Collections.ArrayList newPerson)
{
RemoveAllPerson();
foreach (Person oPerson in newPerson)
AddPerson(oPerson);
}
/// <pdGenerated>default Add</pdGenerated>
public void AddPerson(Person newPerson)
{
if (newPerson == null)
return;
if (this.person == null)
this.person = new System.Collections.ArrayList();
if (!this.person.Contains(newPerson))
this.person.Add(newPerson);
}
/// <pdGenerated>default Remove</pdGenerated>
public void RemovePerson(Person oldPerson)
{
if (oldPerson == null)
return;
if (this.person != null)
if (this.person.Contains(oldPerson))
this.person.Remove(oldPerson);