Розробка об’єктно-орієнтованої програми “Магазин”

Автор работы: Пользователь скрыл имя, 11 Марта 2013 в 15:48, курсовая работа

Краткое описание

Основною перевагою об’єктно-орієнтованого програмування є значне зменшення кількості міжмодульних повідомлень та зменшення об’єму інформації, що передається між модулями. Локалізація даних, їх інтегрування з процедурами обробки дозволяють створювати незалежні між собою окремі частини програми, які також можуть бути використані в інших програмах. Так, на основі поєднання готових, уже описаних блоків можна сконструювати кінцевий програмний засіб.

Содержимое работы - 1 файл

Документация_mag.doc

— 740.50 Кб (Скачать файл)

Компонентні діаграми показують відносини:

      • Періоду компіляції (серед текстових компонентів);
      • Періоду збірки, компоновки (серед об'єктних двійкових компонентів);
      • Періоду виконання (серед машинних компонентів).

 

Моделювання програмного тексту системи.

 

При розробці складних систем програмний (початковий код) може бути розташований в декількох файлах. Наприклад, при використовуванні мови С++ початковий код зберігається в заголовних файлах і файлах .срр, Pascal - .pas файлах, Java – .java файлах. Між файлами існує залежність компіляції. Якщо врахувати, що мірі розробки з'являються нові файли, то стає очевидним необхідність розробки діаграм залежності при компіляції.

Моделювання реалізації системи.

Реалізація системи  повинна включати велику кількість  різноманітних компонентів:

      • Виконуваних файлів;
      • Бібліотек;
      • Файлів даних;


      • Довідкових  документів;
      • Файлів ініціалізації;
      • Файлів установки.

Діаграма повинна показати всі компоненти, становлячі систему  і взаємозв'язки між ними.

Діаграма розміщення показує конфігурацію оброблювальних вузлів  в період роботи системи, а також компоненти, «живе» в них. Елементами діаграми є вузли, а також відносини залежності і асоціації. Діаграми можуть включати компоненти, кожний з яких повинен жити в деякому вузлі, а також містити пакети або підсистеми, використовується для угрупування елементів моделі в крупні фрагменти.

Вузол – це фізичний елемент, який існує в період роботи системи  і представляє комп'ютерний ресурс

Вузол може мати додаткову  секцію, відображає розміщувані в  ньому елементи:

Вузол є тим місцем, де фізично розміщуються компоненти.

Діаграми розміщення використовують для моделювання  статичного представлення того, як розміщується система. Графічно діаграма – це граф з вузлів, сполучених асоціаціями, які показують існуючі комунікації. Екземпляри вузлів можуть містити екземпляри компонентів, живе в них. Екземпляри компонентів можуть містити об'єкти. Компоненти з'єднуються між собою стрілками залежності (прямо або через інтерфейси).


2.4  Тестування програмної  системи

 

Тестування – процес виконання програми з метою виявлення помилок. Кроки процесу задаються тестами. Кожний тест визначає:

  • Свій набір початкових даних і умов для запуску програми;
  • Набір очікуваних результатів програми;
  • Тестування компонентів. Тестуються окремі компоненти для перевірки правильності їх функціонування. Кожний компонент тестується незалежно від інших.
  • Тестування модулів. Програмний модуль – це сукупність залежних компонентів, таких як опис класу, процедур і функцій. Кожний модуль тестується незалежно від інших системних модулів.
  • Тестування підсистем. Їх підсистем збирається кінцева система. Основну увагу надається сумісності інтерфейсів підсистем.
  • Приймальні випробування. Після цього етапу система приймається в експлуатацію. Тут система тестується з використанням даних, надається замовником систем, а не тестових даних.

Етапи тестування:

  • Перевірка в нормальних умовах (для реальних умов функціонування програми).
  • Перевірка в екстремальних умовах (граничні випробування).
  • Перевірка у виняткових ситуаціях (програма повинна відкидати невірні дані).

 

Засоби тестування

Засобами тестування називаються програми, які допомагають автоматизувати процес випробувань системи:

    • Генератор тестових даних – формує дані для використовування в програмі, що перевіряється.
    • Програми відладчики.

 

Лагодження

Процесу лагодження передує процес тестування. Лагодження проводиться в тому випадку, якщо знайдено помилки.


При лагоджені зустрічаються помилки  різного масштабу. Англійський термін debugging (лагодження) дослівно переводиться як «лов бліх». Це дійсно відображає специфіку процесу.

Загальна стратегія  лагодження – зворотне проходження  від поміченого симптому помилки  до місця в програмі, де помилку вчинено.

Ціль лагодження –  знайти оператор програми, при виконанні  якого правильні аргументи приводять до неправильних результатів.

 

 

 

 
   2.5  Опис контрольного прикладу

 

Програма запускається під управлінням операційної  системи Windows XP, з каталогу «Magazin».

Запуск програми виповнюється командою “Magazin.exe”. При запуску програми на екрані з’являється головне вікно програми, яке містить меню з пунктами .

Перехід по пунктам меню виповнюється за допомогою миші.

Натиснувши  пункт  меню Начать/Показать объекты, на екрані з’являються обєкти програми – 6 товарів та 3 відділа магазину. Відеограма з обєктами зображена на малюнку 7.

 

 

Малюнок 7. Обєкти програми

 

При натисканні пункту Начать/Очистить  вікно програми очищується.

При натисканні пункту Правка/Расположить  всі товари розміщуються по відділах – 2 в кожному. Відеограма приводиться на малюнку 8.

 

 

Малюнок 8. Відеограма розміщення товарів по відділам

 

При натисненні пункту "Продать товар" – користувачу надається можливість за допомогою миші обрати будь-який товар для купівлі. Для підтвердження необхідно натиснути ОК. Обраний товар буде видалено з відповідного відділу, а в кассу магазину занесені відповідні кошти.


 

 

Малюнок 9. Відеограма продажу товару

 

При натисканні пункту "О программе" виводиться інформація про програму та автора.

 

Малюнок 10. Відеограма інформації про програму

 

В пункті меню «Вихід», відповідно назві пункту, реалізується вихід з програми взагалі.


 

 

ЗАКЛЮЧЕННЯ

 

В процесі виконування даної роботи були вивчені деякі аспекти програмування на мові Java. При оформленні цієї роботи були отримані навички оформлення програмної документації у відповідній до цього формі, а також великі практичні навички програмування в середовищі Visual J#.

Теоретичні знання були закріплені практичними заняттями -  розроблена об’єктно-орієнтована программа  “Магазин”, що в повній мірі демонструє деякі можливості об’єктно-орієнтованого програмування.

 

Додаток А

 

Текст програми

 

Розробник студент групи РПЗ-09-1/9

Керівник: Туренко Л. О.

Дата розробки: січень-травень 2012

Операційна система: Windows XP

Система програмування: Microsoft Visual J# 2005

Найменування програми : «Магазин»

Виклик:   Magazin .exe

 

 

package Magazin;

 

import java.awt.*;

import java.awt.event.*;

import java.awt.image.*;

public class Program extends Frame implements MouseListener

{

static int menu; static MenuBar mb; otdel s1, s2, s3; tovar f[];int prod,ii,ok;

public Program()

{

this.addMouseListener(this);

setSize(1400, 800);

setTitle("Magazin");

setVisible(true);

mb = new MenuBar();

Menu mFile = new Menu("Начать");

mb.add(mFile);

MenuItem create = new MenuItem("Показать  объекты");

mFile.add(create);

MenuItem delete = new MenuItem("Очистить");

mFile.add(delete);

 

Menu mEdit = new Menu("Правка");

mb.add(mEdit);

MenuItem move = new MenuItem("Расположить");

mEdit.add(move);

 

MenuItem random = new MenuItem("Продать  товар");

mEdit.add(random);

 

Menu mHelp = new Menu("Справка");

mb.add(mHelp);

MenuItem Pro = new MenuItem("О программе");

mHelp.add(Pro);

 

Menu mExit = new Menu("Выход");

mb.add(mExit);

 

MenuItem Exit = new MenuItem("Выйти");

mExit.add(Exit);

Exit.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e) { System.exit(0); }

});

 

create.addActionListener(new ActionListener()

{

 

public void actionPerformed(ActionEvent e) { menu = 1; repaint(); }

});

delete.addActionListener(new ActionListener()

{

 

public void actionPerformed(ActionEvent e) { menu = 2; repaint(); }

});

move.addActionListener(new ActionListener()

{

 

public void actionPerformed(ActionEvent e)

{ menu = 3; repaint(); }

});

random.addActionListener(new ActionListener()

{

 

public void actionPerformed(ActionEvent e) { menu = 4; repaint(); }

});

Pro.addActionListener(new ActionListener()

{

 

public void actionPerformed(ActionEvent e) { menu = 5; repaint(); }

});

}

 

public class pram

{

Color c;

int x, y; int h, w;

pram()

{ }

pram(Color c1, int x1, int y1, int h1, int w1)

{ c = c1; x = x1; y = y1; w = w1; h = h1; };

public void show(Graphics g1)

{

g1.setColor(c);

g1.fillRect(x, y, w, h);

}

 

public void hide(Graphics g1)

{

g1.setColor(Color.blue);

g1.fillRect(x , y-10, w, h+10);

 

}

}

public class otdel extends pram

{

String name;

otdel(Color c1, int x1, int y1, int h1, int w1, String n)

{ super(c1, x1, y1, h1, w1); name = n; }

public void show(Graphics g1)

{

super.show(g1);

g1.setFont (new Font("Arial",Font.BOLD ,15));

g1.setColor(Color.white);

g1.drawString("" + name, x  , y+20);

}

 

public void hide(Graphics g1) { super.hide(g1); };

}

 

public class tovar extends pram

{

int tip;String n;

tovar(int x1, int y1,int w1,int h1, int t)

{ tip = t; x = x1; y = y1;

w = w1; h = h1;

}

 

public void show(Graphics g1)

{

switch (tip)

{

case 1:

{

w = 100; h =70;

n = "Сыр"; g1.setColor(Color.yellow);

g1.fillArc(x, y, w, h, 180, 180); g1.setColor(Color.black);

g1.drawOval(x + 10, y + 40, 5, 5); g1.drawOval(x + 40, y + 40, 5, 5);

g1.drawOval(x + 30, y + 60, 5, 5);

g1.drawOval(x + 60, y + 60, 5, 5); g1.drawOval(x + 80, y + 40, 5, 5);

} break;

case 2:

{

w = 80; h = 100;

n = "МОЛОКО";

g1.setColor(Color.cyan); g1.fillRect(x, y, w-10, h); g1.setColor(Color.black);

g1.drawString("МОЛОКО", x + 10, y + 30); g1.drawLine(x + 5, y + 15, x + 65, y + 15); g1.drawLine(x + 5, y + 40, x + 65, y + 40);

g1.setColor(new Color(120, 120, 120));

int xx[] ={ x, x + 10, x + 80, x + 80, x + 70, x + 70 }; int yy[] = { y, y - 10, y - 10, y + 90, y + 100, y }; 

g1.fillPolygon(xx,yy ,6);} break;

case 3:

{

w = 120; h = 50;

n = "Батон"; g1.setColor(Color.orange); g1.fillOval(x, y, w, h); g1.setColor(Color.black);

g1.drawLine(x + 25, y + 15, x + 25, y + 35);

g1.drawLine(x + 50, y + 15, x + 50, y + 35);

g1.drawLine(x + 75, y + 15, x + 75, y + 35);

} break;

case 4:

{

w = 100; h = 100;

n = "Бублик"; g1.setColor(new Color(200, 120, 0)); g1.fillOval(x, y, w, h);

g1.setColor(Color.white);g1.fillOval(x+25,y+25,50,50);

} break;

case 5:

{

w = 120; h = 20;

n = "Морковь"; g1.setColor(new Color(240, 50, 0)); g1.fillArc(x, y, w-20, h, 180, 180);

g1.fillArc(x, y, w-20, h, 0, 180); g1.setColor(Color.green);g1.fillRect(x + 90, y , 20, 20);g1.setColor(Color.black);

g1.drawLine(x + 25, y + 5, x + 25, y + 10);

g1.drawLine(x + 50, y + 10, x + 50, y + 15);

g1.drawLine(x + 75, y + 5, x + 75, y +10);

} break;

case 6:

{

w = 65; h = 75;

n = "Яблоко"; g1.setColor(Color.red); g1.fillOval(x, y, w-15, h-5);  g1.fillOval(x+15, y, w-15, h-5); g1.setColor(Color.black); g1.fillOval(x+30, y+66, 10, 5);

g1.fillRect(x+30, y-4, 5, 10);

g1.setColor(Color.white); g1.fillOval(x + 15, y + 25, 5, 25);

} break;

Информация о работе Розробка об’єктно-орієнтованої програми “Магазин”