РАЗРАБОТКА ПРОТОТИПОВ ИНФОРМАЦИОННЫХ СИСТЕМ, ОСНОВАННЫХ НА СУБД, В CASE-СРЕДСТВЕ RATIONAL ROSE ENTERPRISE И СРЕДЕ ПРОГРАММИРОВАНИЯ C++BUILDER
Создание информационных систем, основанных на СУБД, используется для решения различных практических задач. Одной из таких задач является принятие решений в различных сферах деятельности человека, в том числе в экономической. В условиях нарастающей конкурентной борьбы в экономической сфере решение таких задач при помощи компьютеров является наиболее востребованным.
Приведем результаты работ, выполненных на этапах анализа (рис. 3.1—3.3) и проектирования (рис. 3А—3.6) создания прототипа информационной системы, используемой для выбора программных продуктов фирмы Rational Rose.

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

Рис. 3.2. Диаграмма прецедентов

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

Рис. 3.5. Диаграмма компонентов

Рис. 3.6. Диаграмма размещения
Для разработки прототипа информационной системы, основанного на СУБД, в среде программирования C++Builder необходимо открыть Database Desktop, определить структуры таблиц (наименования столбцов, ключи и типы столбцов) и создать таблицы (рис. 3.7 и 3.8).

Рис. 3.7. Структура таблицы

Рис. 3.8. Таблица
Открыть среду программирования С++Вш1с1ег и выбрать объекты 0иегу1, Оа1а5оигсе1 и ОВСпсП. После выбора этих объектов устанавливаются их свойства (рис. 3.9—3.11).
Рассмотрим реализацию динамических 5()Ь-запросов:
- 1) показать всю информацию;
- 2) показать программные продукты, стоимость которых не превышает заданное значение;
- 3) показать программные продукты, которые поддерживают заданные этапы жизненного цикла разработки программных средств;
- 4) показать программные продукты, имеющие максимальную или минимальную стоимость.
Интерфейсы разработанного прототипа программного средства приведены на рис. 3.12 (получен ответ на 1-й запрос), 3.13 (получен ответ на 2-й запрос), 3.14 (получен ответ на 3-й запрос) и 3.15 (получен ответ на 4-й запрос).

Рис. 3.9. Свойства объекта Query 1

Рис. ЗЛО. Свойства объекта DataSourcel
Рис. 3.11. Свойства объекта ИВСпсП
Рис. 3.12. Интерфейс разработанного прототипа программных средств (получен ответ на 1-й запрос)
Рис. 3.13. Интерфейс разработанного прототипа программных средств (получен ответ на 2-й запрос)
Рис. 3.14. Интерфейс разработанного прототипа программных средств (получен ответ на 3-й запрос)
Рис. 3.15. Интерфейс разработанного прототипа программных средств (получен ответ на 4-й запрос)
Приведем программный код, реализующий динамические SQL- запросы.
//...........................................................................
#include
#pragma hdrstop
((include "Unitl .h"
//...........................................................................
- ((pragma package(smartinit)
- ((pragma resource "*.dfm"
TForml *Forml;
//...........................................................................
_fastcall TForml ::TForml(TComponent* Owner)
: TForm(Owner)
{
}
//...........................................................................
((include
void_fastcall TForml::ButtonlClick(TObject *Sender)
{
Query l->Close();
Query 1 ->SQL->C lear(); sprintf(bufTer,"Select * from rational.db");
Query 1 ->SQL-> Add( buffer);
Queryl->Open();
}
//...........................................................................
void_fastcall TForml::Button2Click(TObject ^Sender)
{
char buffer[250];
Query l->Close();
Query 1 ->SQL->C lear();
sprintf(buffer,"Select * front rational.db where cost<=%f',atof(ComboBox 1 - >Text.c_str()));
Query 1 ->SQL-> Add( buffer);
Queryl->Open();
}
//...........................................................................
void_fastcall TForml::Button3Click(TObject *Sender)
{
char buffer[250];
Query l->Close();
Query 1 ->SQL->C lear();
if (!strcmp(ComboBox2->Text.c_str(),"анализ"))
sprintf(buffer,"Select Products,Cost from rational.db where Analise-yes'"); if (!strcmp(ComboBox2->Text.c_str(),"проектирование")) sprintffbuffer,"Select Products,Cost from rational.db where Designing-yes'"); if (!strcmp(ComboBox2->Text.c_str(),"анализ & проектирование")) sprintf(buffer,"Select Products,Cost from rational.db where Analise-yes' and Designing-yes"');
if (!strcmp(ComboBox2->Text.c_str(),"выполнение"))
sprintf(buffer,"Select Products,Cost from rational.db where Implimention='yes'"); if (!strcmp(ComboBox2->Text.c_str(),"npoeKTHpoBaHHe & выполнение")) sprintf(buffer,"Select Products,Cost from rational.db where Designing-yes'and Im- plimention-yes'");
if (!strcmp(ComboBox2->Text.c_str(),"анализ & проектирование & выполнение")) sprintf(buffer,"Select Products,Cost from rational.db where Analise-yes' and Designing-yes'and Implimention-yes'"); if (!strcmp(ComboBox2->Text.c_str(),"тестирование")) sprintf(buffer,"Select Products,Cost from rational.db where Testing-yes'"); if (!strcmp(ComboBox2->Text.c_str(),"выполнение & тестирование")) sprintf(buffer,"Select Products.Cost from rational.db where Implimention='yes' and Testing-yes"');
if (!strcmp(ComboBox2->Text.c_str(),"проектирование & выполнение & тестирование"))
sprintf(buffer,"Select Products.Cost from rational.db where Designing-yes' and Im- plimention-yes' and Testing-yes'");
if (!strcmp(ComboBox2->Text.c_str(),"aHanH3 & проектирование & выполнение & тестирование"))
sprintf(buffer,"Select Products.Cost from rational.db where Analise-yes' and Designing-yes' and lmplimention='yes' and Testing-yes"');
Query 1 ->SQL->Add(buffer);
Queryl->Open();
}
//.....................................................................
void_fastcall TForml::Button4Click(TObject *Sender)
{
char buffer[250];
Queryl->Close();
Query l->SQL->Clear();
if (!strcmp(ComboBox3->Text.c_str(),"MHHHMajibHyto")) sprintf(buffer,"Select MIN(Cost) from rational.db"); if (!strcmp(ComboBox3->Text.c_str(),"MaKCHMajibHyio")) sprintf(buffer,"Select MAX(Cost) from rational.db"); Query 1 ->SQL->Add( buffer);
Query l->Open();
}
//.....................................................................