Автор работы: Пользователь скрыл имя, 20 Мая 2013 в 14:43, курсовая работа
Система передается в виде функционирующего комплекса на базе средств вычислительной техники Заказчика и Исполнителя в сроки, установленные контрактом. Приемка системы осуществляется комиссией в составе уполномоченных представителей Заказчика и Исполнителя.
Порядок предъявления системы, ее испытаний и окончательной приемки определен в п.7 настоящего ЧТЗ.
Введение 3
Глава 1. Техническое задание на проектирование 4
Глава 2. Описание предметной области 12
2.1.Структура компании 12
2.2.Схема документооборота 14
Глава 3. Процесс разработки автоматизированной системы
в среде Rational Rose 15
3.1. Моделирование систем в CASE-средствах 15
3.2. Диаграмма вариантов использования (Use case diagram) 16
3.3. Диаграмма топологии (Deployment diagram) 18
3.4. Диаграммы взаимодействия (Interaction diagram) 19
3.5. Диаграммы классов (Class diagram) 28
3.6. Диаграмма состояний (Statechart diagram) 29
3.7. Диаграмма деятельности (Activity diagram) 30
3.8. Диаграммы компонентов (Component diagram) 31
Глава 4. Моделирование структуры данных с помощью Data Modeler 32
4.1. DDL-скрипт описания таблиц БД 32
4.2. Схема БД в Data Modeler 34
Глава 5. Генерация кода в Rose Delphi Link 35
5.1. Процесс генерации кода ……...………………………………………….35
Глава 6. Реализация системы в Delphi….............................................................37
6.1. Программный код……... ……...………………………………………….41
Заключение 47
Список использованных источников 48
При проектировании больших систем может оказаться, что система должна быть разложена на несколько сотен или даже тысяч компонентов, и этот тип диаграмм позволяет не потеряться в обилии модулей и их связей. Диаграмма компонентов проектируемой системы представлена на рис.24.
Рис. 24. Диаграмма компонентов
Data Modeler позволяет создавать все необходимые объекты базы данных: таблицы, триггеры, необходимые процедуры и представления данных, поддерживает работу с основными системами обработки баз данных. После установки модуля Add-in-manager в меню Tools появляется дополнительный пункт Data Modeler. С помощью данного инструмента добавим схему. Схема – основной контейнер для создания модели данных. В новой схеме создадим таблицы и отобразим связи между этими таблицами на диаграмме.
Рис. 25. Схема базы данных в Rational Rose Data Modeler
5.1. Процесс генерации кода
Rational Rose обладает всеми необходимыми характеристиками для проектирования архитектуры системы любого масштаба, поэтому существует возможность использования Rose с такой мощной и популярной системой программирования, как Delphi. В стандартной поставке Rational Rose не предусмотрена возможность работы с Delphi, но Rational Software ведет программу по поддержке сторонних производителей программ-мостов (Links) между Rose и другими средствами разработки. В рамках этой программы фирмой Ensemble Systems была разработана программа-мост Rose Delphi Link (RDL), связывающая Rational Rose и Delphi. Основные функции RDL - генерация кода и обратное проектирование. Следует помнить, что генерируемый RDL код не содержит реализацию функциональности. Генерируются только декларативные элементы: определения классов, интерфейсов, записей, типов, директивы видимости и т.д.
Итак, выделим основные преимущества совместного использования RDL и Rational Rose:
полная поддержка
жизненного цикла разрабатываемой
программной системы при
Рис. 26. Генерация кода в Rose Delphi Link
Полученный код содержит описание переменных (полученных из атрибутов класса) и объявления процедур (методов класса). На основе этого кода можно выполнить реализацию системы.
Рис. 27. Реализация системы
Главная форма.
Рис. 28. Реализация системы
Заказы
Рис. 29. Реализация системы
Детали в наличии
Рис. 30. Реализация системы
Обработка заказов
Рис. 31. Реализация системы
Передача результатов в excel.
Рис. 32. Реализация системы
Оформление товарной накладной.
Рис. 33. Реализация системы
Самый дорогой заказ.
Рис. 34. Реализация системы
Диаграмма заказов по месяцам.
Рис. 35. Реализация системы
Диаграмма заказов по наименованию и сезонам.
6.1.Программный код
Обработка заказов и заполнение товарной накладной.
//обработка заказа
procedure TForm8.Button1Click(Sender: TObject);
begin
k:=1;
form3.Table1.Open;
form2.table1.open;
form2.table1.First;
sg.RowCount:=2;
for i:=1 to form2.table1.recordcount do begin
pr:=0;
pr1:=0;
pr2:=0;
pr3:=0;
form3.table1.First;
for j:=1 to form3.table1.recordcount do begin
if (form2.table1.fields[3].
then begin pr:=1;
if (form2.table1.fields[2].
then begin
pr1:=1;
if form2.table1.fields[4].
then begin
pr2:=1;
kodd:=form3.table1.fields[0].
nazd:=form3.table1.fields[1].
kol:=0;
kd:=0;
bs:=0;
da:=form2.table1.fields[2].
kol:=form2.table1.fields[4].
bs:=form3.table1.fields[4].
stoim1:=0;
stoim1:=bs;
stoimost:=0;
stoimost:=(kol*bs);
end;
end;
end;
form3.table1.next;
end;
if (pr=0) then begin
Sg.cells[0,k]:=form2.table1.
Sg.cells[1,k]:=form2.table1.
Sg.cells[2,k]:='отказ';
Sg.cells[3,k]:='отказ';
Sg.cells[4,k]:='отказ';
Sg.cells[5,k]:='отказ';
sg.Cells[6,k]:='отказ';
Sg.cells[7,k]:='0';
Sg.cells[8,k]:='Отказ: такой детали нету в наличии';
end;
if (pr=1) and (pr1=0) then begin
Sg.cells[0,k]:=form2.table1.
Sg.cells[1,k]:=form2.table1.
Sg.cells[2,k]:='отказ';
Sg.cells[3,k]:='отказ';
Sg.cells[4,k]:='отказ';
Sg.cells[5,k]:='отказ';
sg.Cells[6,k]:='отказ';
Sg.cells[7,k]:='0';
Sg.cells[8,k]:='Отказ: данная
деталь доставляется на склад!'
end;
if (pr=1) and (pr1=1) and (pr2=0) then begin
Sg.cells[0,k]:=form2.table1.
Sg.cells[1,k]:=form2.table1.
Sg.cells[2,k]:='отказ';
Sg.cells[3,k]:='отказ';
Sg.cells[4,k]:='отказ';
Sg.cells[5,k]:=form2.table1.
sg.Cells[6,k]:='отказ';
Sg.cells[7,k]:='0';
Sg.cells[8,k]:='Отказ:
end;
if (pr=1) and (pr1=1) and (pr2=1) {and (pr3=1)} then begin
Sg.cells[0,k]:=form2.table1.
Sg.cells[1,k]:=form2.table1.
Sg.cells[2,k]:=kodp;
Sg.cells[3,k]:=nazp;
Sg.cells[4,k]:=da;
Sg.cells[5,k]:=form2.table1.
sg.Cells[6,k]:=floattostr(
Sg.cells[7,k]:=floattostr(
Sg.cells[8,k]:='Можно
end;
Sg.RowCount:=Sg.RowCount+1;
k:=k+1;
form2.table1.Next;
end;
Sg.RowCount:=Sg.RowCount-1;
end;
//оформление товарной накладной
procedure TForm8.Button3Click(Sender: TObject);
var
vx, sheetp:variant;
begin
if form8.Sg.cells[0,1]='' then
begin
showmessage('Выполните обработку заказов!');
exit;end;
if combobox1.text='' then begin
showmessage('Выберите покупателя!');
exit;end;
listbox1.Items.Clear;
listbox2.Items.Clear;
listbox3.Items.Clear;
listbox4.Items.Clear;
vx:=createoleobject('excel.
vx.workbooks.open('C:\sklad\
sheetp:= vx.workbooks[1].sheets.item['
vx.visible:=true;
form2.table1.open;
m:=0;
form2.table1.First;
for q:=1 to form2.table1.recordcount do begin
if trim(combobox1.Text)=trim(
listbox1.Items.add(form2.
listbox2.Items.add(form2.
listbox3.Items.add(form2.
listbox4.Items.add(Sg.cells[7,
sum:=sum+strtoint(sg.cells[7,
k:=1;
j:=1;
for i:=0 to m do begin
sheetp.cells[7,4]:=form2.
sheetp.cells[i+14,2]:=k;
sheetp.cells[i+14,3]:=
sheetp.cells[i+14,7]:='шт';
sheetp.cells[i+14,10]:=
sheetp.cells[i+14,12]:=
sheetp.cells[i+14,13]:=
sheetp.cells[3,6]:='от '+DateToStr(Date)+'г.';
sheetp.cells[34,4]:=sum;
k:=k+1;
end;
m:=m+1;
end;
form2.table1.Next;
end;
end;
В заключение следует отметить, что эффект от использования средства IBM Rational Rose 2003 проявляется при разработке масштабных проектов в составе команды или проектной группы. При рассмотрении крупной и сложной модели может сложиться впечатление того, что написать и отладить программу гораздо проще непосредственно в той или иной интегрированной среде программирования. Однако ситуация покажется не столь тривиальной, когда станет необходимо выполнить проект с несколькими десятками вариантов использования и сотней классов. Именно для подобных проектов явно выявляется преимущество использования средства IBM Rational Rose 2003 и нотации языка UML для документирования и реализации соответствующих моделей.
Таким образом, современную практику проектирования программного обеспечения нельзя представить без применения визуальных моделей. Моделирование является централизованным звеном всей деятельности по созданию качественного программного продукта.
31
32