Оглавление

Задание. 2

Сценарий работы интернет-магазина. 4

Составление словаря. 5

Словарь сущностей.. 5

Словарь действий.. 7

Иерархия. 8

Описание классов. 10

Диаграмма состояния для класса: Оформление заказа. 12

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

Диаграмма Взаимосвязанности.. 14

Диаграмма Классов. 15

Реализация в коде. 16

Список литературы.. 21

Задание

• Написать 2-3 сценария.

• Составить для них словарь (с иерархией).

• Произвести классификацию и для каждого класса определить название, область ответственности, атрибуты.

• Построить диаграммы последовательностей

• Построить диаграммы взаимодействий

• Построить диаграмму состояний для 1 сценария

• Реализовать построенные классы в коде.

Сценарий работы интернет-магазина.

1)  Сценарий заказа товаров на сайте.

Клиент (покупатель) заходит на сайт интернет-магазина. Покупатель выбирает нужный товар по комплектации, функциям, цене и отзывам других покупателей. Каждому товару присвоен идентификационный номер. Далее можно выбрать ещё другой товар. После того как покупатель нашёл все интересующие товары, он начинает оформление заказа. Для этого необходимо в бланк заказа ввести все свои данные: ФИО, электронная почта, город для доставки, индекс, адрес проживания, способ доставки посылки (транспортной компанией или курьером), оплата (через платёжную систему PayPal). Далее подтверждаем покупку.

2)  Сценарий оплаты.

Через платёжную систему PayPal c кредитной карточки покупателя переводится полная сумма покупки за заказ на банковский счёт интернет-магазина. После подтверждения перевода денег бухгалтерия оформляет накладную, в которую входят наименование товаров, количество товаров и сумма покупки), и отправляет её кладовщику. Полученная за заказ оплата учитываются в бухгалтерской отчётности.

НЕ нашли? Не то? Что вы ищете?

3)  Сценарий комплектования заказа.

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

4)  Сценарий доставки заказа до покупателя.

Курьер из отдела доставки или транспортная компания доставляет посылку до заказчика. Заказчик проверяет целостность товара. Если всё в целостности, то покупатель ставит подпись на накладной и забирает посылку.

Составление словаря

Словарь сущностей

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

Сайт — совокупность электронных документов (файлов) частного лица или организации в компьютерной сети

Интернет-магазин – см. Сайт

Покупатель – см. Клиент

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

Индификационный номер – обозначение товара с помощью набора цифр для упрощения поиска

Комплектация товара – всё, что поставляется вместе с товаром (инструкция, диск с ПО и т. д.)

Функции товара – всё, что умеет данный товар

Цена - количество денег, в обмен на которые продавец готов передать (продать), а покупатель согласен получить (купить) единицу товара.

Отзывы покупателей – комментарии других покупателей о работе товара

Заказ – оформление выбранных товаров

Оплата – перевод денег за покупку

Бланк заказа – это определённые критерии, которые нужно заполнить покупателю

ФИО – Фамилия Имя Отчество

Электронная почта - технология и предоставляемые ею услуги по пересылке и получению электронных сообщений по компьютерной сети

Город проживания – название населённого пункта, где проживает покупатель

Индекс – численное обозначение города

Адрес проживания

Способ доставки

Транспортная компания

Курьер - человек, нанимаемая для доставки сообщений, писем, иной корреспонденции, а также небольших предметов

Посылка - отправление, предназначенное для пересылки вещей, документов, литературы

Способ оплаты

Paypalэлектронная платёжная система

Кредитная карта - банковская платёжная карта, предназначенная для совершения операций

Сумма покупки – количество денег, необходимая для покупки товара

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

Бухгалтерский отдел – отдел, занимающийся денежными средствами

Накладная - документ, используемый при передаче товарно-материальных ценностей от одного лица другому

Наименование товара - это тип товара, например, телевизор

Количество товара - указания количества единиц товара, которое должно быть закуплено

Наличие товара

Складской отдел - отдел, собирающий посылки

Комплектовщик – человек, собирающий посылки

Картонная коробка

Пластиковый пакет

Отдел доставки – отдел, доставляющий посылки

Заказчик – см. Покупатель

Целостность – без повреждений

Синонимы:

Клиент, покупатель, заказчик - Покупатель

Картонная коробка, пластиковый пакет – упаковка товара

Интернет-магазин, сайт – сайт

Словарь действий

Заходит на сайт

Переходит на страницу

Использует поиск

Выбирает товар

Добавлены товары

Отменить заказ

Отображается форма

Ввести данные

Подтверждаем заказ

Переводится оплата

Получает посылку

Проверяет наличие товара

Подтверждает заказ

Собирает посылку

Упаковывает товары

Прикрепляет накладную

Иерархия

1)  Покупатель

·  Кредитная карточка

·  ФИО

·  Электронная почта

·  Адрес

·  Товар

2)  Сайт

·  Товары

§  Комплектация товара

§  Функции товара

§  Цена

§  Идентификационный номер

§  Отзывы о товаре

·  Бланк заказа

v  ФИО

v  Электронная почта

v  Город для доставки

v  Индекс

v  Адрес

v  Наименование товаров

v  Количество товаров

v  Способ доставки

ü  Транспортная компания

ü  Курьер

v  Оплата

ü  PayPal

3)  Бухгалтерский отдел

·  Банковский счёт

·  Бухгалтерская отчётность

·  Накладная

§  Наименование товаров

§  Количество товаров

§  Сумма покупки

4)  Складской отдел

§  Комплектовщик

v  Упаковка товара

v  Накладная

5)  Отдел доставки

·  Транспортная компания

·  Курьер

Описание классов

1)  Класс User (метод Main())

Область ответственности: заполнение формы, оплата заказа, приём посылки, проверка целостности товара.

Переменные:

- Кредитная карточка

- ФИО

- Электронная почта

- Адрес

- Товар

2)  Класс Site

Область ответственности: нахождение товара

3)  Класс Tovar

Область ответственности: хранение информации о товаре

Переменные:

- Комплектация товара

- Функции товара

- Цена

- Индификационный номер

- Отзывы о товаре

4)  Класс BlankZakaz

Область ответственности: содержание информации о заказе

Переменные:

- ФИО

- Электронная почта

- Город для доставки

- Индекс

- Адрес

- Способ доставки

- Оплата

5)  Класс BuhOt (сокращённо от BuhOtdel)

Область ответственности: документооборот

Переменные:

- Банковский счёт

- Бухгалтерская отчётность

6)  Класс Nakladnaya

Область ответственности: количество товара, наименование товара, сумма заказа

Переменные:

- Наименование товара

- Количество товара

- Сумма покупки

7)  Класс SkladOt

Область ответственности: наличие кладовщика

8)  Класс Kladovshik

Область ответственности: упаковка товара

Переменные:

- Упаковка товара

- Накладная

9)  Класс Sklad

Область ответственности: хранение товара

10) Класс DostavkaOt

Область ответственности: доставка посылки до покупателя

Переменные:

- Транспортная компания

- Курьер

Диаграмма состояния для класса: Бланк заказа

 

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

Диаграмма Взаимосвязанности

Диаграмма Классов

Реализация в коде

class Program // пользователь

{

static void Main(string[] args)

{

Console. WriteLine("Напишите то, что вы хотите приобрести (телевизор, утюг, телефон)");

string unit = Console. ReadLine();

Site a = new Site();

a. Vibor(unit);

string nomer = a. buffer;

int summa = 0;

TovarTV b = new TovarTV();

b. Haracteristiki();

int TV = b. summa;

TovarHotIron c = new TovarHotIron();

c. Haracteristiki();

int HI = c. Haracteristiki();

TovarTelefona d = new TovarTelefona();

d. Haracteristiki();

int SF = d. Haracteristiki();

if (nomer == "001")

summa = TV;

if (nomer == "002")

summa = HI;

else

summa = SF;

Console. WriteLine(summa);

Console. ReadLine();

BlankZakaz blank = new BlankZakaz();

blank. blankZakaz();

string dannie = blank. dannie;

Console. WriteLine(dannie);

Console. ReadLine();

BuhOt buhal = new BuhOt();

buhal. Bank(summa);

Nakladnaya n = new Nakladnaya();

string nakladnaya = n. print;

int TovarOK = 0;

Sklad w = new Sklad();

TovarOK = w. nalichie();

Kladovshik klad = new Kladovshik();

klad. posilka(TovarOK);

int posilka = klad. posilkaOK;

dostavkaOt complited = new dostavkaOt();

plited(posilka);

}

}

class Site // просмотр товара

{

public string buffer;

public string Vibor(string unit)

{

buffer = unit;

if (buffer == "телевизор")

{

buffer = "001";

return buffer;

}

if (buffer == "утюг")

{

buffer = "002";

return buffer;

}

else

{

buffer = "003";

return buffer;

}

}

}

abstract class Tovar

{

abstract public int Haracteristiki();

}

class TovarTV:Tovar

{

public int summa;

public override int Haracteristiki()

{

string name = "Sumsunk 5555";

int id = 001;

string diagonal = "40'";

summa = 39999;

return summa;

}

}

class TovarHotIron:Tovar

{

public override int Haracteristiki() // характеристики товара

{

string name = "Bynatine 5555";

int id = 002;

string HotLavel = "3";

int summa = 399;

return summa;

}

}

class TovarTelefona:Tovar

{

public override int Haracteristiki() // характеристики товара

{

string name = "Asep 5555";

int id = 003;

string tip = "smartfone";

int summa = 4000;

return summa;

}

}

class BlankZakaz

{

public string FIO;

public string Email;

public string City;

public string index;

public string adress;

public string dostavka;

public string oplata;

public string dannie;

public string blankZakaz() // заполнение формы

{

Console. WriteLine("Ваши ФИО:");

FIO = Console. ReadLine();

Console. WriteLine("Ваш e-mail:");

Email = Console. ReadLine();

Console. WriteLine("Ваш город:");

City = Console. ReadLine();

Console. WriteLine("Ваш индес:");

index = Console. ReadLine();

Console. WriteLine("Ваш адрес:");

adress = Console. ReadLine();

Console. WriteLine("Доставка курьером или транспортной компанией:");

dostavka = Console. ReadLine();

oplata = "PayPal";

Console. WriteLine(FIO, index, City, adress, dostavka);

string[] mas = {FIO, City, index, adress, dostavka};

string dannie = FIO + "," + City + "," + index + "," + adress + "," + dostavka;

return dannie;

}

class BuhOt // бухгалтерский отдел

{

public int shet;

public void Bank(int money)

{

shet = money;

}

public void Otchet()

{

Console. Write("На счёт поступило {0} рублей", shet);

}

}

class Nakladnaya

{

public string tovarName;

public string tovarKolvo;

public string tovarSumma;

public string print;

public string nakladnaya()

{

print = tovarName+tovarKolvo+tovarSumma;

return print;

}

}

class SkladOt // складовской отдел

{

}

class Kladovshik

{

public int posilkaOK = 1;

public int posilkaNOT;

public int posilka(int a)

{

int TovarOK = a;

if (TovarOK == 1)

{

return posilkaOK;

}

else

{

Console. WriteLine("Товара нет на складе");

Console. ReadLine();

return posilkaNOT;

}

}

}

class Sklad

{

public int notovar;

public int nalichie()

{

Random rnd = new Random();

int tovar = rnd. Next(0,1);

if (tovar == 1)

return tovar;

else

return notovar;

}

}

class dostavkaOt // отдел доставки

{

public int ok = 1;

public void Complited(int posilka)

{

if (ok == posilka)

{

Console. WriteLine("Успешная доставка");

Console. ReadLine();

}

}

}

Список литературы

1.Гради Буч, Объектно-ориентированный анализ и проектирование с примерами приложений на С++, – Санта-Клара, Калифорния: Rational. – 359 с.