Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2010
Тип роботи:
Лекція
Предмет:
Об’єктно-орієнтоване програмування

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти та науки України НУ „Львівська політехніка” Лекція №2 з курсу: «Застосування засобів об’єктно-орієнтованого програмування в лінгвістичних задачах» Львів - 2010 1.6. Основні положення об’єктної моделі Методи структурного проектування допомогає зпростити процес розробки складних систем за рахунок використання алгоритмів як готових будівельних блоків. Аналогічно, методи об’єктно-орієнтованого проектування створенні, щоб допомогти розробникам застосовувати потужні засоби об’єктного і об’єктно-орієнтованого програмування, що використовує в якості блоків класи и об’єкти. Але в об’єктній моделі відображається і множина іншіх факторів. Як показано нижче, об’єктний підхід зарекомендували себе як уніфікуюча ідея всієї компьютерної науки, що використовується не тільки в програмуванні, але також в проектуванні інтерфейса користувача, баз даних і навіть архітектури компьютерів. Причина такой широти в тому, що орієнтація на объекти дозволяє нам справлятися з складністю систем самой разної природи. Об’єктно-орієнтований аналіз і проектування відображають эволюційне, а не революційний развиток проектування; нова методологія не пориває з попередніми методами, а будується з врахуванням попереднього досвіду. 2. Етапи розробки ПЗ 2.1. Об’єктно-орієнтоване програмування. Що таке об’єктне-орієнтоване програмування (object-oriented programming, OOP)? Ми визначаємо його наступним чином: Об’єктно-орієтоване програмування - це методологія програмування, яка базується на представленні програми у вигляді сукупності об’єктів, кожен з яких є екземпляром визначеного класу, а класи утворюють ієрархію спадкування. В даному визначенні можна виділити три частини: 1) OOП використовує в якості базових елементів об’єкти, а не алгоритми; 2) кожен об’єкт є екземпляром деякого визначеного класу; 3) класи організовані ієрархічно. Програма буде об’єктно-орієнтованою тільки при дотриманні всіх трьох вказаних вимог. Програмування, яке не базується на ієрархічних відносинах, не відноситься до OOП, а називаеться програмуванням на основі абстрактних типів даних. У відповідності з цим визначенням не всі мови програмування є об’єктно-орієнтованими. Теоретично можлива можлива імітація об’єктно- орієнтованого програмування на звичайних мовах, таких, як Pascal і навіть COBOL або асемблер, але досить важко. Можна сказати що: "мова програмування є об’єктно-орієнтованою тільки тоді, коли виконуються наступні умови: • Підтримуються об’єкти, абстракції даних, що мають інтерфейс у вигляді операцій з іменами і власні дані, з обмеженням доступу до них. • Об’єкти відносяться до відповідних типів (класам). • Типи (класи) можут спадковувати атрибути супертипів (суперкласів)". 2.2. Об’єктно-орієнтоване проектування. Програмування насамперед розуміється як правильне і ефективне використання механізмів конкретних мов програмування. Проектування, навпаки, основна увага приділяється правильному і эфективному структуруванню складних систем. Ми визначаемо об’єктно-орієнтоване проектування наступним чином: Об’єктно-орієнтоване проектування - це методологія проектування, яка об’єднує в собі процес об’єктної декомпозиції і прийоми представлення логічної і фізичної, а також статичної і динамічної моделей системи що проектується. В даному визначені є дві важливі частини: об’єктно-орієнтоване проектування 1) базується на об’єктно-орієнтваній декомпозиції; 2) використовується різноманіття прийомів представленя моделей, які відображають логічну (класи і об’єкти) і физичну (модулі и процеси) структуру системи, а також її статичні і динамічні аспекти. Саме об’єктно-орієнтована декомпозиція відрізняє об’єктно-орієнтоване проектування від структурного; в першому випадку логічна структура системи відображається абстракціями у вигляді класів і об’єктів, в другому - алгоритмами. Для ОО проектування використовується абревіатура OOD (object-oriented design), для позначення метода об’єктно-орієтованого проектування. 2.3. Об’єктно-орієнтований аналіз. На об’єктну модель вплинула більш ранішня модель життєвого циклу програмного забезпечення. Об’єктно-орієнтований анализ (або OOA, object-oriented analysis) направлений на створення моделей реальної дійсності на основі об’єктно-орієтованого світогляду. Об’єктно-орієнтований аналіз - це методологія, при якій вимоги до системи сприймаються з точки зору класів і об’єктів, які визначаються (выявленных) в предметній області. OOA(Object-oriented analysis) OOD(Object-oriented design) OOP(Object-oriented programming) Як співвідносяться ООА, OOD и OOP? На результатах ООА формується моделі, на яких базуються OOD; OOD в свою чергу створює фундамент для остаточної реализації системи з використання методології OOP. 2.4. Складові частини об’єктного підходу Парадігми програмування Існує п’ять основних різновидів стиля програмування, які перераховані нижче разом з видами абстракцій: • процедурно-орієнтовані Алгоритми • об’єктно-орієнтовані класи і об’єкти • логіко-орієнтовані мета, часто представлена в термінах обчисленя предикатів • орієнтований на правила правила "якщо-то" • орієнтовани на обмеження інваріантні співвідношення Кожен стиль програмування має свою концептуальну базу. Кожен стиль вимагає свого способа сприйняття задачі що вирішується. Для об’єктно- орієнтованого стиля концептуальна база - це об’єктна модель. Вона має чотири головних елемента: • абстрагування; • інкапсуляція; • модульність; • ієрархія. Ці елементи є головними в тому розумінні, що без будь якого з них модель не буде об’єктно-орієнтованою. Окрім головних, є ще три додаткових елементи: • типизація; • паралелізм; • сохраняемость. Називаючи їх додатковими, ми маємо на увазі, що вони корисні в об’єктній моделі, але не є обов’язковими. 2.4.0. Структура проекта в середовиші Delphi Проект - сукупність файлів з яких Delphi створює програму для виконання. В склад кожного проекту обов’язково входять: Файл проекту - *.dpr *.dfm, *.pas, *.res, *.cfg, *.dof, *.dcu ФормаФормаОписОписМодульМодульМодульМодульПараметриПроектРесурсиЗастосуванняКомпіляція(сборка) *.pas*.pas*.pas*.pas*.dfmProject1.dpr*.res*.dfm*.cfg Рис.2.4. Зв’язок між файлами проекту. 2.4.1. Головний модуль - *.dpr В головному модулі містяться інструкції, які забезчують запуск(виконання) програми. В якості прикладу в лістінгу наведемо головний текст файла головного модуля нашої програми(файл буде створений, як тільки ми виконаємо збереження проекту) Лістінг 2.4.1 program Project1; uses Forms, Unit1 in ‘Unit1.pas’ {Form1}; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. В заголовку модуля вказано ім’я програми, далі йдуть команди, які містять інформацію про те, що (які модулі) знадобляться компілятору Delphi для створення кінцевого exe – файлу. 2.4.2. Модуль форми - *.dfm Модуль форми містить тільки інформацію про її налаштування і компонентах які на ній присутні. Модуль форми формується автоматично при виконанні налаштування форми, перенесені на неї і настойки компонентів. При цьому необхідно знати де зберігаються процедури обробки подій для цих компонентів. Процедури обробки подій зберігаються в файлі реалізації. В лістінгу наведений текст модуля форми програми яку розглядаємо. Лістінг 2.4.2 Модуль форми програми object Form1: TForm1 Left = О Top = О Borderlcons = [biSystemMenu, biMinimize] BorderStyle = bsSingle Caption = #1042#1099#1095#1080#1089#1083#1077#1085#1080#1077' '#1082#1086#1088#1085#1077#1081' #1082#1074#1072#1076#1088#1072#1090#1085#1086#1075#1086' #1091#1088#1072#1074#1085#1077#1085#1080#1103 ClientHeight = 152 ClientWidth = 386 Color = clBtnFace - Font.Charset = RUSSIAN_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif Font.Style = [] OldCreateOrder = False Position = poScreenCenter PixelsPerlnch = 96 TextHeight = 13 object Label1: TLabel Left = 24 Тор = 16 Width = 299 Height = 13 Caption = #1042#1074#1077#1076#1080#1090#10771 '#1079#1085#1072#1095#1077#1085#1080#1103' '#1082#1086#1101#1092#1092#1080#1094#1080#1077#1085#1090#1086#1074' 1 #1082#1074#1072#1076#1088#1072 #1090 #1085 #1086 #1075#1086' '#1091#1088#1072#1074#1085#1077#1085#1080#1103 end object Label2: TLabel Left = 24 Top = 55 Width = 10 Height = 13 Caption = 'A:' end object Label3:.TLabel Left = 24 Top = 83 Width =10 Height = 13 Caption = 'B:' end object Label4: TLabel Left = 24 Top = 111 Width = 10 Height =13 Caption = 'C:' end object Label5: TLabel Left = 104 Top = 48 Width = 120 Height = 80 AutoSize = False Wordwrap = True end object Editl: TEdit Left = 40 Top = 48 Width =48 Height = 21 TabOrder = О end object Edit2: TEdit Left = 40 Top =76 Width = 48 Height =21 TabOrder = 1 end object Edit3: TEdit Left = 40 Top = 104 Width = 48 Height = 21 TabOrder = 2 end object Buttonl: TButton Left = 240 Top =48 Width = 120 Height = 32 Caption = #1042#1099#1095#1080#1089#1083#1080#1090#1100 TabOrder = 3 OnClick = ButtonlClick end object Button2: TButton Left = 240 Top = 96 Width = 120 Height =32 Caption = #1047#1072#1074#1077#1088#1096#1077#1085#1080#1077' #1088#1072#1073#1086#1090#1099 TabOrder = 4 end end 2.4.3. Модуль реализации - *.pas В модулі реалізації міститься інформація тілько про присутні на формі компоненти і процедури обробки подій на цих компонентах. Модуль форми можна умовно розділити разділити на дві частини - секцію опису і власне розділ реалізації. Секція опису (починається з службового слова interface) містить автоматично зформоване Delphi – оголошення типа форми. Цей розділ також містить перелік компонентів, які знаходяться на формі. Секція реалізації починається з службового слова implementation. Вона містить оголошення локальних процедур і функцій, в тому числі і процедур обробки подій. Розглянемо текст модуля реалізації проекта для Windows. Лістінг 2.4.3 Текст модуля реалізації unit Unit1; interface {В цьому розділі описується взаємодія даного модуля з іншими користувацькими і стандартними модулями, а також з головною програмою. Іншими словами – взаємодія модуля з зовнішнім світом} uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; { В цьому списку через коми перераховуються ідентифікатори модулів, інформація інтерфейсних частин яких повинна бути доступна в даному модулі } type TForml = class(TForm) Editl: TEdit; Edit2: TEdit; Edit3: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Implementation { В цьому розділі вказується реалізаційна частина опису даного модуля, яка недоступна для інших модулів і програм} {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var А,В,С:single; D:real; XI,Х2:real; begin // Введення початкових даних. A: =StrToInt(Edit1.Text); B:=StrToInt(Edit2.Text); C:FStrToInt(Edit3.Text); // Обчислення дискримінанта. . . D:=B*B-4*A*C; if D<0 then // Якщо дискримінант від’ємний, то виводиться повідомлення //про те, що рівняння немає коренів. begin Label5.Caption:='Рівняння немає дійсних коренів'; end // Якщо дискримінант більше або дорівнює 0, то // обчислюємо корені рівняння. else begin X1:=(-B-sgrt(D))/(2*A); X2:=(-B+sqrt(D))/(2*А); // Виводимо розрахованне значення коренів. Label5.Caption:='X1 = '+FloatToStr(XI)+ Chr(13)+ // Перевід на наступну стрічку. ‘Х2 = '+FloatToStr(X2); end; end; procedure TForm1.Button2Click(Sender: TObject); begin Close; end; end. Питання: Література: 1. Архангельский А.Я. Программирование в Delphi. Учебник по классическим версиям Delphi. 2006 г. - 1152 с. 2. Архангельский А.Я. Delphi 2006. Справочное пособие: язык Delphi, классы, функции Win32 и .NET, 2006 г. - 1152 с. 3. Архангельский А.Я. Приемы программирования в Delphi на основе VCL, 2006 г. - 944 с. 4. Архангельский А.Я. Программирование в Delphi для Windows. Версии 2006, 2007, Turbo Delphi, 2007 г. - 1248 с.
Антиботан аватар за замовчуванням

17.02.2013 23:02-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!