Разработка автоматизированной системы «Учет деталей большегрузных автомобилей на складе»

Автор работы: Пользователь скрыл имя, 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

Файлы: 1 файл

курсовой Митрошин.doc

— 3.90 Мб (Скачать файл)

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

 

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

Глава 4. Моделирование  структуры данных с помощью Data Modeler

4.1 DDL-скрипт описания таблиц БД

CREATE TABLE Zakazi (id_zak SMALLINT NOT NULL, data DATE NOT NULL, tov VARCHAR ( 1 ) NOT NULL, kol SMALLINT NOT NULL, stoim SMALLINT NOT NULL, status VARCHAR ( 1 ), oplata SMALLINT, Sklad_t_tov VARCHAR ( 1 ) NOT NULL, Tab_postavka_id_zak SMALLINT NOT NULL, COL_0 SMALLINT NOT NULL, CONSTRAINT PK_Zakazi1 PRIMARY KEY (COL_0, Tab_postavka_id_zak, Sklad_t_tov), CONSTRAINT TC_Zakazi2 UNIQUE (id_zak));

CREATE TABLE Sklad_t (tov VARCHAR ( 1 ) NOT NULL, kol SMALLINT, id_zak SMALLINT NOT NULL, CONSTRAINT PK_Sklad_t3 PRIMARY KEY (id_zak), CONSTRAINT TC_Sklad_t3 UNIQUE (tov));

CREATE TABLE Dogovora (nomer SMALLINT NOT NULL, id_zak SMALLINT NOT NULL, soderg VARCHAR ( 1 ) NOT NULL, kontr SMALLINT NOT NULL, Zakazi_id_zak SMALLINT NOT NULL, Tab_postavka_id_zak SMALLINT NOT NULL, CONSTRAINT PK_Dogovora0 PRIMARY KEY (Tab_postavka_id_zak, Zakazi_id_zak), CONSTRAINT TC_Dogovora1 UNIQUE (nomer));

CREATE TABLE Tab_postavka (id_zak SMALLINT NOT NULL, tov VARCHAR ( 1 ) NOT NULL, kol SMALLINT NOT NULL, CONSTRAINT TC_Tab_postavka0 UNIQUE (id_zak));

ALTER TABLE Zakazi ADD CONSTRAINT FK_Zakazi2 FOREIGN KEY (Tab_postavka_id_zak) REFERENCES Tab_postavka (id_zak)  ON DELETE NO ACTION ON UPDATE NO ACTION;

ALTER TABLE Zakazi ADD CONSTRAINT FK_Zakazi1 FOREIGN KEY (Sklad_t_tov) REFERENCES Sklad_t (tov)  ON DELETE NO ACTION ON UPDATE NO ACTION;

ALTER TABLE Zakazi ADD CONSTRAINT FK_Zakazi5 FOREIGN KEY (COL_0) REFERENCES Tab_postavka (id_zak)  ON DELETE NO ACTION ON UPDATE NO ACTION;

ALTER TABLE Sklad_t ADD CONSTRAINT FK_Sklad_t6 FOREIGN KEY (id_zak) REFERENCES Tab_postavka (id_zak)  ON DELETE NO ACTION ON UPDATE NO ACTION;

ALTER TABLE Dogovora ADD CONSTRAINT FK_Dogovora4 FOREIGN KEY (Tab_postavka_id_zak) REFERENCES Tab_postavka (id_zak)  ON DELETE NO ACTION ON UPDATE NO ACTION;

ALTER TABLE Dogovora ADD CONSTRAINT FK_Dogovora0 FOREIGN KEY (Zakazi_id_zak) REFERENCES Zakazi (id_zak)  ON DELETE NO ACTION ON UPDATE NO ACTION;

 

4.2 Схема БД в Data Modeler

Data Modeler позволяет создавать все необходимые объекты базы данных: таблицы, триггеры, необходимые процедуры и представления данных, поддерживает работу с основными системами обработки баз данных. После установки модуля Add-in-manager в меню Tools появляется дополнительный пункт Data Modeler. С помощью данного инструмента добавим схему. Схема – основной контейнер для создания модели данных. В новой схеме создадим таблицы и отобразим связи между этими таблицами на диаграмме.

 

Рис. 25. Схема базы данных в Rational Rose Data Modeler

 

Глава 5. Генерация кода в Rose Delphi Link

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:

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

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

 

Рис. 26. Генерация кода в Rose Delphi Link

 

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

 

Глава 6. Реализация системы в Delphi

 

Рис. 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].asstring=form3.table1.fields[1].asstring)

  then begin pr:=1;

 

if (form2.table1.fields[2].asdatetime)>(form3.table1.fields[2].asdatetime)

then begin

   pr1:=1;

if form2.table1.fields[4].asinteger<form3.table1.fields[3].asinteger

then begin

     pr2:=1;

kodd:=form3.table1.fields[0].asstring;

      nazd:=form3.table1.fields[1].asstring;

 

        kol:=0;

        kd:=0;

        bs:=0;

        da:=form2.table1.fields[2].asstring;

       kol:=form2.table1.fields[4].asinteger;

        bs:=form3.table1.fields[4].asinteger;

           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.fields[0].asstring;

Sg.cells[1,k]:=form2.table1.fields[1].asstring;

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.fields[0].asstring;

Sg.cells[1,k]:=form2.table1.fields[1].asstring;

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.fields[0].asstring;

Sg.cells[1,k]:=form2.table1.fields[1].asstring;

Sg.cells[2,k]:='отказ';

Sg.cells[3,k]:='отказ';

Sg.cells[4,k]:='отказ';

Sg.cells[5,k]:=form2.table1.fields[4].asstring;

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.fields[0].asstring;

Sg.cells[1,k]:=form2.table1.fields[1].asstring;

Sg.cells[2,k]:=kodp;

Sg.cells[3,k]:=nazp;

Sg.cells[4,k]:=da;

Sg.cells[5,k]:=form2.table1.fields[4].asstring;

sg.Cells[6,k]:=floattostr(stoim1);

Sg.cells[7,k]:=floattostr(stoimost);

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.application');

vx.workbooks.open('C:\sklad\nakl.xls');

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(form2.table1.Fields[1].AsString) then begin

listbox1.Items.add(form2.table1.Fields[3].AsString);

    listbox2.Items.add(form2.table1.Fields[4].AsString);

    listbox3.Items.add(form2.table1.Fields[5].AsString);

      listbox4.Items.add(Sg.cells[7,q]);

  sum:=sum+strtoint(sg.cells[7,q]) ;

k:=1;

   j:=1;

 

for i:=0 to m do begin

sheetp.cells[7,4]:=form2.table1.Fields[1].AsString;

   sheetp.cells[i+14,2]:=k;

   sheetp.cells[i+14,3]:=listbox1.Items[i]  ;

        sheetp.cells[i+14,7]:='шт';

      sheetp.cells[i+14,10]:=listbox2.Items[i] ;

         sheetp.cells[i+14,12]:=listbox3.Items[i] ;

        sheetp.cells[i+14,13]:=listbox4.Items[i];

        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 для документирования и реализации соответствующих моделей.

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

Список использованных источников

  1. Вендров A.M. Практикум по проектированию программного обеспечения. /Учебное пособие. – М.: Финансы и статистика, 2002.
  2. Вендров A.M. Проектирование программного обеспечения экономических информационных систем. /Учебник для студентов ВУЗов. – М.: Финансы и статистика, 2002.
  3. Терри Кватрани. Rational Rose 2000 и UML. – Москва, 2001.
  4. Трофимов С.А. CASE- технологии. Практическая работа в Rational Rose. – Москва, 2002.

 


31

32


Информация о работе Разработка автоматизированной системы «Учет деталей большегрузных автомобилей на складе»