Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Методи розробки алгоритмів і програм

Життєвий цикл програмного забезпечення

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

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

- аналіз вимог;

- визначення специфікацій;

- проектування;

- кодування;

- тестування;

- супровід.

Розглянемо їх.

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

Визначення специфікацій. Певною мірою цей етап можна розглядати

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

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

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

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

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

 

Найважливішими класифікаційними ознаками методів проектуван­ня алгоритмів і програм є:

- ступінь автоматизації виконання проектних робіт;

- методологія процесу розробки.

За ступенем автоматизації процесу проектування алгоритмів і про­грам можна виділити методи неавтоматизованого проектування і мето­ди автоматизованого проектування (САSE, Соmputer Аіded Sistem Еngsneering).

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

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

Проектування алгоритмів і програм може ґрунтуватися на різних підходах, серед яких найбільш поширені:

- структурне проектування і програмування;

- інформаційне моделювання предметної області і пов'язаних з нею додатків;

- об'єктно-орієнтоване проектування.

Початок розвитку структурного проектування алгоритмів і програм припадає на 60-і роки. У його основу покладені послідовна декомпозиція і структурування цілого, від загального до частки.;

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

Інформаційне моделювання предметної області має вирішальне зна­чення для розробки алгоритмів і програм, що працюють із БД. В ос­нові даного підходу лежить положення про визначальну роль і неза­лежність даних при проектуванні алгоритмів і програм. Підхід склався в умовах появи концепції БД. Один з основоположників інформаційної інженерії – Дж. Мартін виділяє такі складові даного підходу:

- інформаційний аналіз предметних областей;

- побудова взаємозалежних моделей даних;

- системне проектування функцій обробки даних;

- детальне конструювання процедур обробки даних.

 

Традиційні підходи до розробки програмних продуктів завждгґ) підкреслювали розходження між даними і процесами їх обробки (програмні / модулі забезпечують обробку вхідних даних, але не містять цих даних). На відміну від традиційного структурного підходу, об'ектно-орієитова-ний підхід до проектування програмних продуктів ґрунтується на:

- виділенні класів;

- встановленні характерних властивостей класів і методів їх обробки;,

- створенні ієрархії класів;

- спадкуванні властивостей класів та методів їх обробки.

Кожен об'єкт поєднує в собі як дані, так і програму обробки цих] даних. Об'єкт - це конкретний екземпляр класу. За допомогою класу і той самий програмний код можна багаторазово використовувати для різних об'єктів того самого класу.

Для проектування програмних продуктів розроблені об'єктно-орієн­
товані
технології, які містять у собі спеціалізовані мови програмування
й інструментальні засоби розробки інтерфейсу користувача. При вико-
ЮННІ програми об'єкту посилається повідомлення, яке ініціює обробку ,
даних об'єкта.

Методи об'єктно-орієнтованого проектування ґрунтуються на: моделі побудови системи як сукупності об'єктів абстрактного типу даних, мо­дульній структурі програм, спадному проектуванні при виділенні об'єктів. Об'єктно-орієнтований підхід використовує такі базові поняття: клас, об'єкт, подія, властивості об'єкта, метод обробки.

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

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

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

 

Покоління мов програмування

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

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

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

З'явилася необхідність у мовах програмування високого рівня і були сформульовані вимоги до таких мов:

1. Мова має бути близькою до тих фрагментів природних мов, які забезпечують конкретну предметну галузь діяльності людини; (мова, орієнтована на ділові сфери застосування, має містити поняття, викори­стовувані в цьому виді діяльності: документ, база даних тощо).

2. Усі засоби мови мають бути формалізовані настільки, щоб їх мож­на було реалізувати як машинні програми.

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

4. Мова програмування - щось більше, ніж засіб опису алгоритмів: вона несе в собі систему понять, на основі яких людина може обмірко­вувати свої задачі, і нотацію, за допомогою якої вона може виразити свої міркування з приводу розв'язання задачі.

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

Це універсальні мови високого рівня. Найбільш відомими прикладами ранніх мов третього покоління є FORTRAN (FORmula ТRANslation – перекладач формул), розроблений під керівництвом Дж. Бекуса 1960 р., яка була призначена для наукових і інженерних розра­хунків, і СОВОL ( мова загально­го призначення ділової орієнтації), розроблена у 1960 р. фахівцями військово-морського флоту США для розв'язання економічних задач, АLGOL, розроблений міжнародною робочою групою.

З появою мов програмування третього покоління мета забезпечення
машинної незалежності програм була в основному досягнутою. Оскіль­
ки оператори в мовах третього покоління не прив'язані до особливостей
якоїсь конкретної машини, вони легко можуть бути скомпільовані на
будь-якому комп'ютері. Теоретично програма, написана мовою третього
покоління, може бути виконана на будь-якій машині використанням
відповідного компілятора.

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

Проблема переносу програм з однієї машини на іншу полягає у відсутності спільної точки зору на те, що саме вважати стандартом цієї мови програмування. У зв'язку з цим Американський національний інститут стандартів (АNSI) і Міжнародна організація з стандартизації (ІSO) прийняли стандарти для багатьох популярних мов програмуван­ня. В інших випадках застосовуються неформальні стандарти, що є наслідком популярності того чи іншого діалекту мови, а також бажання багатьох розробників компіляторів створювати продукти, сумісні з інши­ми, подібними до них.

Стисла характеристика основних мов програмування

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

До машинно-залежних мов належить асемблер. Мова асемблера ро­бить доступними всі програмно-керовані компоненти ЕОМ. Тому він застосовується для написання програм, що явно використовують специф­іку конкретної апаратури. Асемблер - це найбільш трудомістка мова програмування і через її низький рівень не вдається побудувати засоби налагодження, що істотно знизили б цю трудомісткість. Програмуванні мовою асемблера оперує з термінами команд апаратної частини маши­ни, і тому вимагає від програміста детальних знань технічних компо­нентів комп'ютера. Кожен комп'ютер має таку систему програмування. Як правило, ця система програмування розробляється і поставляється фірмою-виготовлювачем ЕОМ.

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

До машинно-орієнтованшмов можна віднести також мову С ( Сі ). Ця мова є ре­зультатом спроби об'єднати переваги низькорівневих можливостей алгоритмічних мов високого рівня (АМВР). Мову С часто називають мовою асемблера з вбудованими структурами даних. Використання структур даних дозволяє більш систематично підходити до реалізації завдання мовою С і скорочує обсяг текстів розроблювальних програм. Особливістю цієї мови є максимальне використання можливостей кон­кретної обчислювальної архітектури на основі бітових операцій, функцій і призначень. Завдяки цьому програми мовою С компактні і працюють швидко. Однак синтаксис мови досить складний, тому читання текстів програм на ній вимагає певних навичок.

Мова С спочатку була орієнтована насамперед на розробку систем­них програм. Вона, зокрема, послужила головним інструментом для ство­рення операційних систем МS DOS і UNIX. Зараз мова застосовується головним чином для створення системних і прикладних програм, у яких швидкість роботи й обсяг пам'яті є основними параметрами.

Найбільш широко представлений клас процедурних мов програмуван­ня. Серед них можна виділити такі популярні мови високого рівня, як Бейсик, Паскаль,С, Фокал, Фортран, Ада, Кобол, Модула-2, РL/1 і низку інших.

Історично однією з найпоширеніших мов став Бейсик. Це пояс­нюється, насамперед, тим, що Бейсик простий в освоєнні й викорис­танні. Написати на ньому невелику програму в 20-30 рядків й відразу одержати результат її роботи можна буквально за кілька хвилин. У Бей­сик, як правило, вбудовуються зручні функції для роботи з екраном дисплея, клавіатурою, магнітними накопичувачами, принтером, кому­нікаційними каналами. Це дозволяє ставитися до Бейсика як до про­довження апаратури ЕОМ. Щоб освоїти якусь особливість чи режим роботи апаратних засобів, найпростіше написати і виконати відповід­ну програму на Бейсику.

Для різних типів ЕОМ, що істотно відрізняються одна від одної, розроблено відповідні версії мови. Найбільш вдалою вважається версія фірми Місгоsof.

Поява могутніх компіляторів, таких, наприклад, як Quick Basic і Visual Basic фірми Місгоsoft поставила цю мову в ряд з іншими мовами високого рівня і додає їй додаткової популярності.

Мова Visual Basic - об'ктно-орієнтована мова, причому дещо більше, аніж просто мова програмування. Це - могутній інтегрований пакет розробки програмного забезпечення, який дозволяє програмісту створювати графічний інтерфейс користувача з заздалегідь визначених компонентів (таких як кнопки, прапорці опцій, текстові поля, смуги прокручування тощо) і настроювати роботу цих компонентів у додатку, описуючи їхню реакцію на різні події. Наприклад, якщо мова йде про кнопку, програміст повинний описати, що має трапитися, якщо користувач натисне її.Visual Basic зараз став однією з найбільш відомих і широко викори­стовуваних мов програмування.

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

JAVA ( Джава ) – мова, що була створенна на основі мови С++. Вона покликана спростити розробку додатків на основі С++ шляхом виключення з неї низькорівневих можливостей. Але головною особливістю цієї мови є компіляція не в машинний код, а в платформо-незалежний байт-код ( кожна команда займає один байт).Цей байт-код може виконуватись з допомогою інтерпретатора – виртульної машини Java-машини, версії якої зараз створені для будь-яких платформ. Завдяки множени Java-машин програми на Java можна переносити не тільки на рівні первинних текстів, але і на рівні двійкового байт-коду, тому по популярності мова Java сьгодні займає друге місце після Бейсика.

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

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

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

 

Delphi – мова (інтегрована система розробки програм), побудована на основі мови Оbject-Pascal. Особливої уваги заслуговує могутня вбудована підтримка баз даних Delphi. Це дозволяє швидко здійснювати розробку складних прикладних програм.

 

Мова Фортран - перша мова програмування високого рівня, актив­но використовувана і на сучасних персональних комп'ютерах. Близькість її конструкції до традиційної архітектури ЕОМ (йдеться про традицій­ну фон-неймановську архітектуру) зробила Фортран надзвичайно попу­лярним. Застосовується Фортран головним чином при розробці приклад­них систем, орієнтованих на наукові дослідження, інженерні завдання, автоматизацію проектування та інші галузі, де накопичено великі бібліо­теки стандартних програм.

Мова Фортран має недоліки, такі, як відсутність типів, оголошення змінних і типів за замовчуванням, , незручні структури управління та ін. Певний час навіть було розпочато спроби заборонити його використання. Однак серед програмістів Фортран за­лишився популярною й активно застосовуваною мовою. Зараз відомо кілька версій цієї мови для ПЕОМ. Це Fortran Compiler фірми Місгsoft, Фортран IV, Фортран 77, ФортранF2k(2000). .

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

 

Окрім наведенних мов програмування широкого призначення існує велика кількість спеціалізованих мов. Наприклад, мови проектування баз даних SGL, dBase, Visual FoxPro та інш., опису електронних схем VHDL, моделювання графіки UML, мови програмування для Інтернет HTML,Perl та інші. Про ці мови річ буде у подальшому в спеціальних дисциплінах.

 

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

- призначення розроблювальної програми (чи буде вона використо­вуватися тимчасово чи постійно, чи буде вона модернізуватися і розвиватися);

- час виконання програми (йдеться про співвідношення обчислюваль­них процедур і процедур вводу-виводу);

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

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

- чи передбачено можливість перенесення програми на інші типи ЕОМ;

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

- характер і рівень використання апаратних засобів (дисплея, клавіа­тури, НМД тощо);

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

 


Читайте також:

  1. Cisco Packet Tracer - Знайомство з програмою. Інтерфейс
  2. I. Введення в розробку програмного забезпечення
  3. II. Вимоги до складання паспорта бюджетної програми
  4. II. Із програм для 11 класу
  5. II.1 Програмне забезпечення
  6. III. Етапи розробки програмного забезпечення
  7. III. Навчально-програмний етап.
  8. III. Програма
  9. III. Програма
  10. Автоматизація водорозподілу на відкритих зрошувальних системах. Методи керування водорозподілом. Вимірювання рівня води. Вимірювання витрати.
  11. Агрегативна стійкість, коагуляція суспензій. Методи отримання.
  12. Адаптовані й специфічні методи дослідження у журналістикознавстві




Переглядів: 4212

<== попередня сторінка | наступна сторінка ==>
ОС Linux | Виконання програми - реалізація мови програмування

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.015 сек.