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

Структурна і функціональна схеми програми

Структурна схема - це сукупність елементарних ланок об'єкта і зв'язків між ними, один з видів графічної моделі. Під елементарним ланкою розуміють частину об'єкта, системи управління і т. Д., Яка реалізує елементарну функцію. На рис. 2.1 представлена \u200b\u200bструктурна схема розробленої програми.

Малюнок 2.1 - Структурна схема програми

Функціональна схема - документ, який би процеси, що протікають в окремих функціональних колах виробу (установки) або вироби в цілому. Функціональна схема є експлікацією окремих видів процесів, що протікають в цілісних функціональних блоках і ланцюгах пристрою. На рис.2.2 представлена \u200b\u200bфункціональна схема розробленої програми.

Малюнок 2.2 - Функціональна схема програми

Опис процедур, функцій і модулів

оголошення модуля:

Кожен вихідний файл повинен містити оголошення модуля. Слово unit є ключовим, тому воно повинно бути написано в нижньому регістрі. Ім'я модуля може містити символи, як у верхньому, так і в нижньому регістрі і має бути таким же, як і ім'я використовується для цього файлу операційною системою.

Стандартні модулі мови Delphi. До складу середовища Delphi входить чудовий набір модулів, можливості яких задовольнять навіть самого вибагливого програміста. Всі модулі можна розбити на дві групи: системні модулі і модулі візуальних компонентів.

До системних модулів відносяться System, SysUtils, ShareMem, Math. У них містяться найбільш часто використовувані в програмах типи даних, константи, змінні, процедури і функції. Модуль System - це серце середовища Delphi; містяться в ньому підпрограми забезпечують роботу всіх інших модулів системи. Модуль System приєднується автоматично до кожної програми і його не треба вказувати в операторі uses.

Модулі візуальних компонентів (VCL - Visual Component Library) використовуються для візуальної розробки повнофункціональних GUI-додатків - додатків з графічним призначеним для користувача інтерфейсом (Graphical User Interface). Ці модулі в сукупності представляють собою високорівневу об'єктно-орієнтовану бібліотеку зі всілякими елементами призначеного для користувача інтерфейсу: кнопками, написами, меню, панелями і т.д. Крім того, модулі цієї бібліотеки містять прості та ефективні засоби доступу до баз даних. Дані модулі підключаються автоматично при приміщенні компонентів на форму.

Опис процедур:

Ця процедура здійснює закриття титульного і листа і вихід з програми.

procedure TForml.Button2Click (Sender: TObject);

Ця процедура відкриває головне меню програми і прибирає з екрана титульний лист.

procedure TForm2.Button1Click (Sender: TObject);

Ця процедура відкриває вікно з вибором методу розв'язання транспортної задачі і прибирає з екрана вікно меню.

Ця процедура відкриває вікно містять інформацію про розроблену програму і прибирає з екрана вікно меню.

Ця процедура відкриває вікно з інформацією про довідку даної програми, яка дозволяє полегшити роботу користувача і прибирає вікно меню.

Ця процедура відкриває вікно про розробника, і прибирає вікно меню.

procedure TForm2.Button5Click (Sender: TObject);

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

procedure TForm3.Button1Click (Sender: TObject);

Ця процедура здійснює вихід в головне меню, і закриває вікно з вибором методу розв'язання транспортної задачі:

procedure TForm3.Button3Click (Sender: TObject);

Ця процедура закриває вікно з рішеннями транспортної задачі трьома методами і виводить на екран форму з рішенням завдання методом мінімальної вартості:

Ця процедура закриває вікно з рішеннями транспортної задачі трьома методами і виводить на екран форму з рішенням завдання методом подвійного переваги:

procedure TForm2.Button2Click (Sender: TObject);

procedure TForm2.Button3Click (Sender: TObject);

procedure TForm2.Button4Click (Sender: TObject);

Ці процедури дозволяють користувачеві відправитися з головного меню в будь-який пункт програми: «Форма рішення», «Керівництво користувача», «Відомості про розробника», «Вихід».

procedure STEP-BY-STEP;

Це процедура покрокового виконання розрахунку в програмі можна відстежити кожен етап заповнення таблиці. Після твори одного розрахунку процедура перериває виконання розрахунку і чекає комадно від користувача.

procedure TForm4.Label2Click (Sender: TObject);

procedure TForm4.Label3Click (Sender: TObject);

procedure TForm4.Label4Click (Sender: TObject);

procedure TForm4.Label5Click (Sender: TObject);

Ці процедури завантажують в текстове поле Memo вміст текстового документа, в залежності від обраного пункту меню. У текстових документах знаходиться інформація про користування додатком.

procedure TForm1.Button8Click (Sender: TObject);

Ця процедура виконує розрахунок за формулами, підставляє введені значення і в підсумку виконання записує результат в змінну.

procedure TForm1.Button9Click (Sender: TObject);

Ця процедура виводить відповідь у текстовому полі.

procedure TForm1.Button2Click (Sender: TObject);

Ця процедура заповнює поля введення вихідних даних відповідно до завдання на курсовий проект.

procedure TForm3.Button4Click (Sender: TObject);

procedure TForm4.Button1Click (Sender: TObject);

Ці процедури закривають вікно з і виводить на екран форму з вибором пункту меню.

procedure ochistka;

Ця процедура очищає поля введення і виведення, звільняє змінні від значення, яке в них зберігається.

Функціональна схема або схема даних (ГОСТ 19. 701-90) - схема взаємодії компонентів програмного забезпечення з описом інформаційних потоків, складу даних в потоках і зазначенням використовуваних файлів і пристроїв. Для зображення функціональних схем використовують спеціальні позначення, встановлені стандартом.

Функціональні схеми більш інформативні, ніж структурні. На рісуноке- 12. для порівняння наведені функціональні схеми програмних комплексів і систем.

Малюнок - 12. Приклади функціональних схем: а - комплекс програм, б - програмна система.

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

Застосування об'єктно-орієнтованого підходу і мови візуального моделювання UML в аналізі вимог до програмного забезпечення підприємства або організації: побудова діаграм різних видів.

Об'єктно-орієнтований підхід і мова візуального моделювання UML в аналізі вимог до програмного забезпечення підприємства (організації).

Уніфікована мова об'єктно-орієнтованого моделювання Unified Modeling Language (UML) з'явився засобом досягнення компромісу між цими підходами. Існує достатня кількість інструментальних засобів, що підтримують за допомогою UML життєвий цикл інформаційних систем, і, одночасно, UML є досить гнучким для настройки і підтримки специфіки діяльності різних команд розробників.

UML є об'єктно-орієнтована мова моделювання, що володіє наступними основними характеристиками:

· Є мовою візуального моделювання, який забезпечує розробку репрезентативних моделей для організації взаємодії замовника і розробника ІС, різних груп розробників ІС;

· Містить механізми розширення і спеціалізації базових концепцій мови.

· UML - це стандартна нотація візуального моделювання програмних систем, прийнята консорціумом Object Managing Group (OMG) восени 1997 року, і на сьогоднішній день вона підтримується багатьма об'єктно-орієнтованими CASE-продуктами.

· UML включає внутрішній набір засобів моделювання (модулів?) ( "Ядро"), які зараз прийняті в багатьох методах і засобах моделювання. Ці концепції необхідні в більшості прикладних задач, хоча не кожна концепція необхідна в кожній частині кожної програми. Користувачам мови надані можливості:

· Будувати моделі на основі засобів ядра, без використання механізмів розширення для більшості типових програм;

· Додавати при необхідності нові елементи і умовні позначення, якщо вони не входять в ядро, або спеціалізувати компоненти, систему умовних позначень (нотацію) і обмеження для конкретних предметних областей.

Сукупність програм, призначена для вирішення завдань на ПК, називається програмним забезпеченням. Склад програмного забезпечення ПК називають програмною конфігурацією. Програмне забезпечення, можна умовно розділити на три категорії (рис.1):

Малюнок 1. Класифікація ПО

    системне ПО (програми загального користування), що виконують різні допоміжні функції, наприклад створення копій використовуваної інформації, видачу довідкової інформації про комп'ютер, перевірку працездатності пристроїв комп'ютера і т.д.

    прикладне ПО, що забезпечує виконання необхідних робіт на ПК: редагування текстових документів, створення малюнків або картинок, обробка інформаційних масивів і т.д.

    інструментальне ПО (системи програмування), що забезпечує розробку нових програм для комп'ютера на мові програмування.

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

Це програми загального користування не пов'язані з конкретним застосуванням ПК і виконують традиційні функції: планування і управління завданнями, управління введенням-виведенням і т.д. Іншими словами, системні програми виконують різні допоміжні функції, наприклад, створення копій використовуваної інформації, видачу довідкової інформації про комп'ютер, перевірку працездатності пристроїв комп'ютера і т.п. До системного ПЗ належать:

    операційні системи (ця програма завантажується в ОЗУ при включенні комп'ютера)

    програми - оболонки (забезпечують більш зручний і наочний спосіб спілкування з комп'ютером, ніж за допомогою командного рядка DOS, наприклад, Norton Commander)

    операційні оболонки - інтерфейсні системи, які використовуються для створення графічних інтерфейсів, мультипрограмування и.т.

    Драйвери (програми, призначені для управління портами периферійних пристроїв, зазвичай завантажуються в оперативну пам'ять при запуску комп'ютера)

    утиліти (допоміжні або службові програми, які представляють користувачеві ряд додаткових послуг)

До утиліт відносяться:

    диспетчери файлів або файлові менеджери

    засоби динамічного стиснення даних (дозволяють збільшити кількість інформації на диску за рахунок її динамічного стиснення)

    засоби перегляду і відтворення

    засоби діагностики; засоби контролю дозволяють перевірити конфігурацію комп'ютера і перевірити працездатність пристроїв комп'ютера, перш за все жорстких дисків

    засоби комунікацій (комунікаційні програми) призначені для організації обміну інформацією між комп'ютерами

    засоби забезпечення комп'ютерної безпеки (резервне копіювання, антивірусне ПЗ).

Утіліти- програми, призначені для вирішення вузького кола допоміжних завдань.

Іноді утиліти відносять до класу сервісного програмного забезпечення

Утиліти використовуються для:

    Моніторингу показників датчиків і продуктивності обладнання - моніторинг температур процесора, відеоадаптера; читання S.M.A.R.T. жорстких дисків;

    Управління параметрами устаткування - обмеження максимальної швидкості обертання CD-приводу; зміна швидкості обертання вентиляторів.

    Контролю показників - перевірка посилальної цілісності; правильності запису даних.

    Розширення можливостей - форматування і / або переразметкой диска зі збереженням даних, видалення без можливості відновлення.

Типи утиліт:

дискові утиліти

      дефрагментатори

      Перевірка диска - пошук неправильно записаних або пошкоджених різним шляхом файлів і ділянок диска і їх подальше видалення для ефективного використання дискового простору.

      Очищення диска - видалення тимчасових файлів, непотрібних файлів, чистка «кошика».

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

      Резервне копіювання - створення резервних копій цілих дисків і окремих файлів, а також відновлення з цих копій.

      Стиснення дисків - стиснення інформації на дисках для збільшення місткості жорстких дисків.

      • Утиліти роботи з реєстром

        Утиліти моніторингу обладнання

        тести обладнання

Малюнок 2. Місце СПО в багаторівневої структурі комп'ютера

Необхідно відзначити, що частина утиліт входить до складу операційної системи, а інша частина функціонує автономно. Велика частина загального (системного) ПО входить до складу ОС (рис.2). Частина загального ПО входить до складу самого комп'ютера (частина програм ОС і контролюючих тестів записана в ПЗУ або ППЗУ, встановлених на системній платі). Частина загального ПО відноситься до автономними програмами і поставляється окремо.

          Прикладне ПО. Прикладні програми можуть використовуватися автономно або в складі програмних комплексів або пакетів. Прикладне ПО - програми, які безпосередньо забезпечують виконання необхідних робіт на ПК: редагування текстових документів, створення малюнків або картинок, створення електронних таблиць і т.д.Пакети прикладних програм - це система програм, які за сферою застосування діляться на проблемно - орієнтовані, пакети загального призначення і інтегровані пакети. Сучасні інтегровані пакети містять до п'яти функціональних компонентів: тестовий і табличний процесор, СУБД, графічний редактор, телекомунікаційні засоби. До прикладного ПО, наприклад, відносяться:

    Комплект офісних додатків MS OFFICE

    Бухгалтерські системи

    Фінансові аналітичні системи

    Інтегровані пакети діловодства

    CAD - системи (системи автоматизованого проектування)

    Редактори HTML або Web - редактори

    Браузери - кошти перегляду Web - сторінок

    Графічні редактори

    Експертні системи.

          Інструментальне ПЗ. Інструментальне ПЗ або системи програмування - це системи для автоматизації розробки нових програм на мові програмування. У найзагальнішому випадку для створення програми на обраною мовою програмування (мовою системного програмування) потрібно мати наступні компоненти: 1. Текстовий редактор для створення файлу з вихідним текстом програми. 2. Компілятор або інтерпретатор. Оригінальний текст за допомогою програми-компілятора переводиться в проміжний об'єктний код. Оригінальний текст великої програми складається з кількох модулів(Файлів з вихідними текстами). Кожен модуль компілюється в окремий файл з об'єктним кодом, які потім треба об'єднати в одне целое.3. Редактор зв'язків або збирач, який виконує зв'язування об'єктних модулів і формує на виході працездатний додаток - виконані код. Виконані код - це закінчена програма, яку можна запустити на будь-якому комп'ютері, де встановлена \u200b\u200bопераційна система, для якої ця програма створювалася. Як правило, підсумковий файл має расшіреніе.ЕХЕ ілі.СОМ.4. Останнім часом набули поширення візуальний методи програмування (за допомогою мов опису сценаріїв), орієнтовані на створення Windows-додатків. Цей процес автоматизований в середовищах швидкого проектування. При цьому використовуються готові візуальні компоненти, які настроюються за допомогою спеціальних редакторів. Найбільш популярні редактори (системи програмування програм з використанням візуальних засобів) візуального проектування:

    Borland Delphi - призначений для вирішення практично будь-яких завдання прикладного програмування

    Borland C ++ Builder - це відмінний засіб для розробки DOS і Windows додатків

    Microsoft Visual Basic - це популярний інструмент для створення Windows-програм

    Microsoft Visual C ++ - це засіб дозволяє розробляти будь-які програми, які працюють в середовищі ОС типу Microsoft Windows

Контрольні питання:

    Дайте визначення операційній системі.

    Яке програмне забезпечення відносять до системного?

    Назвіть службове програмне забезпечення.

    Яке програмне забезпечення відносять до прикладного?

    Яке призначення програмного забезпечення?

    Які основні класи програм? Наведіть приклади програм в кожному класі по призначенню.

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

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

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

Перед складанням схеми ієрархії доцільно скласти зовнішні специфікації програми і скласти функціональні опису програми разом з описом змінних-носіїв даних. Особливу увагу слід приділяти ієрархії типів структурованих даних і їх коментування.

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

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

Фрагменти з горизонтальними викликамина одному рівні можуть бути перетворені в вертикальні виклики модулів різних рівнів за допомогою введення додаткових змінних, які не могли бути отримані декомпозицией функціонального опису на підфункції. Ці додаткові змінні звичайно мають тип цілий або логічний і називаються прапорами, семафора, ключами подій. Їх сенс зазвичай характеризується фразою: в залежності від наступної передісторії дій, виконати такі-то дії.

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

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

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

семафор -тип даних спеціального призначення, який є засобом управління доступом до критичного ресурсу з боку спільно йдуть послідовних процесів.

Над семафором можна робити тільки дві операції (не рахуючи створення та анулювання): операцію очікування(Заняття) та операцію сигналізації(Звільнення). Семафор приймає ціле значення, яке не може бути негативним. Операція очікування зменшує значення семафора на одиницю, коли це можна зробити, не отримуючи при цьому від'ємного значення, і це означає, що вільний ресурс використовується. Операція сигналізації збільшує значення семафора на одиницю, що означає звільнення ресурсу.

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

КРИТЕРІЇ ОЦІНКИ ЯКОСТІ

Структурних схем ПРОГРАМИ

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

1) повнота виконання специфікованих функцій;

2) можливість швидкого і дешевого поповнення новими, що раніше не специфікованими функціями;

3) видимість (зрозумілість) для проектувальника складових частин програми;

4) максимальна незалежність окремих частин програми;

5) можливість зв'язування підпрограм редактором зв'язків;

6) достатність оперативної пам'яті;

7) вплив топології схеми ієрархії на швидкість виконання програми при використанні динамічного завантаження програми і механізму підкачки сторінок;

8) відсутність різних модулів з подібними функціями. Один і той же модуль повинен викликатися на різних рівнях схеми ієрархії;

9) досягнення такого графіка роботи колективу програмістів при реалізації програми, який забезпечує рівномірне завантаження колективу;

10) всемірне скорочення витрат на тестування програми.
Хороша схема ієрархії в 2-5 разів скорочує витрати на тестування в порівнянні з первісним варіантом;

11) використання в даному проекті якомога більшого числа опрацьованих в попередніх проектах модулів і бібліотек при мінімальному обсязі виготовлених заново частин.

Генерація варіантів припиняється при неможливості подальших поліпшень. Раціональна структура програми забезпечує скорочення загального обсягу текстів в 2-3 рази, що відповідно здешевлює створення програми і її тестування, на яке зазвичай припадає не менше 60% від загальних витрат. При цьому полегшується і знижується вартість супроводу програми.

МОДУЛЬНЕ ПРОГРАМУВАННЯ

Реалізація принципу структурного програмування здійснюється з використанням макрокоманд і механізмів виклику підпрограм. Ці ж механізми підходять і для реалізації модульного програмування, яке можна розглядати як частину структурного підходу.

Необхідно розрізняти використання слова модуль,коли мається на увазі одиниця дроблення великої програми на окремі блоки (які можуть бути реалізовані у вигляді процедур і функцій) і коли мається на увазі синтаксична конструкція мов програмування (unitв Object Pascal).

Модульне програмування -це організація програми як сукупності незалежних блоків, званих модулями, структура і поведінка яких підкоряються певним правилам.

Концепцію модульного програмування можна сформулювати у вигляді декількох понять і положень:

1) великі завдання розбиваються на ряд більш дрібних, функціонально самостійних підзадач - модулів, які пов'язані між собою тільки по вхідних і вихідних даних;

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

3) в кожному модулі повинні здійснюватися ясні завдання. Якщо призначення модуля незрозуміло, то це означає, що декомпозиція на модулі була проведена недостатньо якісно. Процес декомпозиції потрібно продовжувати до тих пір, поки не буде чіткого розуміння призначення всіх модулів і їх оптимального поєднання;

4) вихідний текст модуля повинен мати заголовок і інтерфейсну частину, де відображаються призначення модуля і всі його зовнішні зв'язку;

5) в ході розробки модулів програми слід передбачати спеціальні блоки операцій, що враховують реакцію на можливі помилки в даних або в діях користувача.

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

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

3.7. СТРУКТУРА МОДУЛЯ В OBJECT PASCAL

Object Pascalмає різні засоби для структурування програм. На нижньому рівні поділу (для елементарних підзадач) найчастіше використовуються процедури і функції, а на верхньому рівні (для великих завдань) використовуються модулі.

У середовищі Delphiкожній формі обов'язково відповідає свій модуль, що дозволяє локалізувати всі властивості вікна в окремій програмній одиниці. Крім цього, невізуальні алгоритмічні дії також оформляються у вигляді окремих модулів. Перший рядок модуля починається з ключового слова:

unit<идентификатор_модуля>;

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

(Інтерфейсний розділ)interface

де описується взаємодія даного модуля з іншими призначеними для користувача і стандартними модулями, а також з головною програмою.

Зв'язок модуля з іншими модулями встановлюється спеціальною пропозицією:

(Список імпорту интерфейсного розділу)uses<список_модулей>

У цьому списку через коми перераховуються ідентифікатори модулів, інформація інтерфейсних частин яких повинна бути доступна в даному модулі.

(Список експорту интерфейсного розділу)const type var

procedure function

Список експорту складається з підрозділів опису констант, типів, змінних, заголовків процедур і функцій, які визначені в даному модулі, але використовувати які дозволено в усіх інших модулях і програмах, що включають ім'я даного модуля в своєму рядку uses. Для процедур і функцій тут описуються тільки заголовки, але з обов'язковим повним описом формальних параметрів.

(Розділ реалізації)implementation

У цьому розділі вказується реалізаційна (особиста) частина описів даного модуля, яка недоступна для інших модулів і програм.

(Список імпорту розділу реалізації)uses

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

(Підрозділи внутрішніх для модуля описів)label const type var

procedure function

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

Частина, що містить опису підпрограм, оголошених в інтерфейсній частини. Опису підпрограми повинен передувати заголовок, в якому можна опускати список формальних параметрів і тип результату для функції. Якщо заголовки вказані з параметрами, то їх список повинен бути ідентичний такому ж списку для відповідної процедури або функції в розділі interface.

(Розділ ініціалізації)initialization

В цьому розділі між ключовими словами initialization і finalization розташовуються оператори початкових установок, необхідних для запуску коректної роботи модуля. Ці оператори виконуються до передачі управління основній програмі і звичайно використовуються для підготовки її роботи. Оператори розділів ініціалізації модулів, які у програмі, виконуються при початковому запуску програми в тому ж порядку, в якому ідентифікатори модулів описані в пропозиціях uses файлу проекту. Якщо оператори ініціалізації не потрібні, то зарезервоване слово initialization може бути опущено.

(Розділ завершення)finalization

Розділ завершення finalization є необов'язковим і може бути присутнім тільки разом з розділом ініціалізації initialization. У розділі завершення розташовується список операторів, які будуть виконуватися при завершенні модуля, що зазвичай відбувається при закінченні роботи програми. Розділи finalization модулів програми виконуються в порядку, протилежному виконання розділів initialization цих модулів.

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

У цьому методі розбиття складної системи на кілька підсистем отримало назву « розділяй і володарюй»(Divide et impera), ієрархічна або функціональна декомпозиція та ін. При цьому базовими принципами є:

a) «розділяй і володарюй»;

b) Проектування «зверху вниз» - від загальної постановки завдання до окремих підзадач і т.д .;

c) принцип ієрархічного упорядкування, який передбачає об'єднання складових частин системи в ієрархічні деревоподібні структури з додаванням нових деталей на кожному рівні.

Процес проектування складного програмного забезпечення починають з уточнення його структури, т. Е. Визначення структурних компонентів і зв'язків між ними. Результат уточнення структури може бути представлений у вигляді структурної та / або функціональної схем і опису (специфікацій) компонентів.

Структурна схема розроблюваного програмного забезпечення

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

Найпростіший вид програмного забезпечення - програма, яка в якості структурних компонентів може включати тільки підпрограми і бібліотеки ресурсів. Розробку структурної схеми програми зазвичай виконують методом покрокової деталізації.

Структурними компонентами програмної системи або комплексу можуть служити програми, підсистеми, бази даних, бібліотеки ресурсів і т. П.

Так схема програмного комплексу демонструє передачу управління від програми-диспетчера відповідною програмою, як показано на рис. 4.1. Програми комплексу, як правило, слабо пов'язані. Тому для організації їх спільної роботи використовується диспетчер.

Мал. 4.1. Приклад структурної схеми програмного комплексу.

Структурна схема програмної системи, Як правило, показує наявність підсистем або інших структурних компонентів. На відміну від комплексу окремі частини (підсистеми) програмної системи інтенсивно обмінюються даними між собою і, можливо, з основною програмою. Структурна ж схема програмної системи цього, як правило, не показує, як це видно з рис. 4.2.


Зазвичай вона являє собою багаторівневу ієрархічну схему взаємодії підпрограм з управління. На початковому етапі схема відображає два рівня ієрархії, т. Е. Показує загальну структуру програми. Однак той же метод дозволяє отримати структурні схеми з великою кількістю рівнів.


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

При цьому необхідно, в першу чергу, деталізувати керуючі процеси, залишаючи уточнення операцій з даними наостанок. Це пов'язано з тим, що пріоритетна деталізація керуючих процесів істотно спрощує структуру компонентів всіх рівнів ієрархії і дозволяє не відокремлювати процес прийняття рішення від його виконання. Визначивши умова вибору деякої альтернативи, відразу ж викликають модуль, її реалізує.

функціональна схема або схема даних (ГОСТ 19. 701-90) - схема взаємодії компонентів програмного забезпечення з описом інформаційних потоків, складу даних в потоках і зазначенням використовуваних файлів і пристроїв. Для зображення цих схем використовують спеціальні позначення, встановлені стандартом.

Функціональні схеми більш інформативні, ніж структурні. На рис. 4.4 для порівняння наведені функціональні схеми програмних комплексів і систем.



б)

Мал. 4.4. Приклади функціональних схем: а - комплекс програм, б - програмна система.

Всі компоненти структурних і функціональних схем повинні бути описані. При структурному підході особливо ретельно необхідно опрацьовувати специфікації міжпрограмних інтерфейсів, так як від них залежать найдорожчі помилки.

Структурний проектування використовує три основних види моделей (діаграм):

1) SADT (Structured Analysis and Design Technique - метод структурного аналізу і проектування) - моделі і відповідні функціональні діаграми;

2) DFD (Data Flow Diagrams) - діаграми потоків даних;

3) ERD (Entity-Relationship Diagrams) - діаграми «сутність-зв'язок».

Функціональна модель SADT відображає функціональну структуру об'єкта, тобто вироблені їм дії і зв'язку між цими діями.

Головним компонентом моделі є діаграма . На ній всі функції і інтерфейси представлені у вигляді блоків і дуг відповідно. Місце з'єднання дуги з блоком визначає тип інтерфейсу. керуюча інформація входить в блок зверху. вхідні інформація, яка піддається обробці, показана з лівої боку блоку, а результат (Вихід) - з правою. механізм (Людина або автоматизована система), який здійснює операцію, представляється дугою, що входить в блок знизу (Рис. 4.5).

Побудова SADT-моделі починається з представлення всієї системи у вигляді найпростішого компонента - одного блоку і дуг, що зображують інтерфейс з функціями поза системою. Потім цей блок деталізується на іншій діаграмі за допомогою декількох блоків, з'єднаних інтерфейсним дугами. Нові блоки визначають основні підфункції вихідної функції, які, в свою чергу, можуть бути деталізованості і т.д. (Див. Рис. 4.6).


Мал. 4.6

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

Основними компонентами діаграм потоків даних є:

a) зовнішні сутності;

b) системи та підсистеми;

c) процеси;

d) накопичувачі даних;

e) потік даних.

зовнішня сутність є матеріальний об'єкт або фізична особа, що є джерелом або приймачем інформації. Вона зображується об'ємним прямокутником з написом, як показано на малюнку 4.7.

підсистема (Див. Рис. 4.8) або процес (Рис. 4.9) представляються прямокутником із закругленими краями. Він містить три поля:

a) Номери;

c) Фізичної реалізації.

Підсистема і процес відрізняються ім'ям. У першій записується назва підсистеми, а в другому - дієслово, що визначає, що робить процес.

Мал. 4.8. ДПІ - Державна податкова інспекція

накопичувач даних - це абстрактне пристрій для зберігання інформації. Він зображується, як показано на рис. 4.10. Його позначення починається з букви D.

потік даних на діаграмі зображується лінією, що закінчується стрілкою, яка показує напрямок потоку. Кожен потік даних має ім'я, що відбиває його зміст.

Приклад діаграми потоків даних наведено на рис. 4.11.

Складніша діаграма потоків даних приведена на рис. 4.12.

ER-діаграми будуть розглянуті пізніше.

У курсовому проекті, крім функціональної діаграми, необхідно представити схеми алгоритмів найбільш складних функцій (наприклад, сортування і пошуку).

Поділитися: