Контакти

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

Сутність і поняття інструментального програмного забезпечення

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

Застосовується інструментальне забезпечення в фазі розробки. Інструментальне програмне забезпечення - це сукупність програм, використовуваних для допомоги програмістам в їх роботі, для допомоги керівникам розробки програмного забезпечення в їх прагненні проконтролювати процес розробки і отримувану продукцію. Найбільш відомими представниками цієї частини програмного забезпечення є програми трансляторів з мов програмування, які допомагають програмістам писати машинні команди. Інструментальними програмами є транслятори з мов Фортран, Кобол, Джо-Виал, Бейсік, АПЛ і Паскаль. Вони полегшують процес створення нових робочих програм. Однак транслятори з мов це тільки найбільш відома частина інструментальних програм; існує ж їх безліч.

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

У найзагальнішому випадку для створення програми на обраною мовою програмування (мовою системного програмування) потрібно мати наступні компоненти:

1. Текстовий редактор для створення файлу з вихідним текстом програми.

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

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

Виконані код - це закінчена програма, яку можна запустити на будь-якому комп'ютері, де встановлена \u200b\u200bопераційна система, для якої ця програма створювалася. Як правило, підсумковий файл має расшіреніе.ЕХЕ ілі.СОМ.

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

Найбільш популярні редактори (системи програмування програм з використанням візуальних засобів) візуального проектування:

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

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

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

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

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

Завдання і функції інструментального програмного забезпечення

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

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

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

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

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

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

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

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

текстові редактори

Інтегровані середовища розробки

компілятори

інтерпретатори

лінковщік

Парсери і генератори парсеров (див. Javacc)

асемблери

відладчики

профілювальники

Генератори документації

Засоби аналізу покриття коду

Засоби безперервної інтеграції

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

Системи управління версіями і ін.

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

Текстові редактори.

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

склад САПР

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

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

За призначенням підсистеми САПР поділяють на два види: проектують і обслуговують.

До проектують відносяться підсистеми, виконують проектні процедури і операції, наприклад:

· Підсистема компонування машини;

· Підсистема проектування складальних одиниць;

· Підсистема проектування деталей;

· Підсистема проектування схеми управління;

· Підсистема технологічного проектування.

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

· Підсистема графічного відображення об'єктів проектування;

· Підсистема документування;

· Підсистема інформаційного пошуку та ін.

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

· Об'єктно-орієнтовані (об'єктні);

· Об'єктно-незалежні (інваріантні).

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

· Підсистема проектування технологічних систем;

· Підсистема моделювання динаміки, проектованої конструкції та ін.

До інваріантним підсистемам відносять підсистеми, виконують уніфіковані проектні процедури і операції, наприклад:

· Підсистема розрахунків деталей машин;

· Підсистема розрахунків режимів різання;

· Підсистема розрахунку техніко-економічних показників і ін.

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

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

· Методичне забезпечення - документи, в яких відображені склад, правила відбору і експлуатації засобів автоматизації проектування;

· Лінгвістичне забезпечення - мови проектування, термінологія;

· Математичне забезпечення - методи, математичні моделі, алгоритми;

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

· Технічне забезпечення - пристрої обчислювальної та організаційної техніки, засоби передачі даних, вимірювальні та інші пристрої і їх поєднання;

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

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

· 64 CALS-технології.

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

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

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

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

Досвід, накопичений в процесі впровадження різноманітних автономних інформаційних систем, дозволив усвідомити необхідність інтеграції різних інформаційних технологій в єдиний комплекс, який базується на створенні в рамках підприємства або групи підприємств (віртуального підприємства) інтегрованого інформаційного середовища, що підтримує всі етапи життєвого циклу продукції, що випускається. Професійне середовище найбільш повно розкриває можливості для професійного вдосконалення, використовуючи нові інформаційні технології в науці і в сфері управління виробничими процесами. Інноваційні технології в області індустрії переробки інформації з впровадженням CALS- (Continuous Acquisition and Life cycle Support) технології - безперервної інформаційної підтримки життєвого циклу об'єкта, що проектується, переводить автоматизацію управління виробничими процесами на новий рівень.

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

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

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

При використанні CALS-технології підвищується якість виробів за рахунок більш повного врахування наявної інформації при проектуванні та прийнятті управлінських рішень, а також скорочуються матеріальні і тимчасові витрати на проектування і виготовлення продукції. В процесі впровадження даної технології обґрунтованість рішень, прийнятих в автоматизованій системі управління підприємством (АСУП), буде вище, якщо особа, яка приймає рішення і відповідні програми управління, має оперативний доступ не тільки до бази даних АСУП, але і до баз даних інших автоматизованих систем і , отже, може оптимізувати плани робіт, зміст заявок, розподіл виконавців, виділення фінансів і т.п. При цьому під оперативним доступом слід розуміти не просто можливість зчитування даних з бази даних, а й легкість їх правильної інтерпретації, тобто узгодженість з синтаксису і семантиці з протоколами, прийнятими в АСУП. Технологічні підсистеми повинні з високою точністю сприймати і правильно інтерпретувати дані, що надходять від підсистем автоматизованого конструювання. Цього не так легко добитися, якщо основне підприємство та організації-суміжники працюють з різними автоматизованими системами. Крім того, стає актуальною проблема захисту інформації по всьому периметру дії технологічних підсистем.

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

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

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

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

Уніфікація форми досягається використанням стандартних форматів і мов подання інформації в міжпрограмних обмінах і при документуванні.

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

САПР - що це?

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

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

Сукупність технічних і кадрових систем (в тому числі і тих, що передбачають використання САПР у вигляді програмного забезпечення), що застосовуються на підприємстві з метою автоматизації процесу розробки проектів;

Таким чином, можна виділити широку і більш вузьку трактування терміна, про який йде мова. Важко сказати, яка з цих трактувань частіше застосовується в бізнесі. Все залежить від конкретної сфери використання систем автоматизованого проектування, а також від тих завдань, для вирішення яких передбачається застосовувати дані системи. Так, наприклад, в контексті окремо взятого цеху на виробництві, під САПР передбачається конкретна програма для автоматизованого проектування. Якщо мова йде про стратегічне планування розвитку організації, то таке поняття як САПР швидше за все буде відповідати масштабної інфраструктурі, яка задіюється з метою підвищення ефективності розробки різних проектів. Необхідно відзначити, що сам термін САПР є абревіатурою, яка може розшифровуватися по-різному. У загальному випадку дана абревіатура відповідає поєднанню слів «система автоматизованого проектування». Також існують і інші варіанти розшифровки даної абревіатури. Наприклад, досить поширений варіант «система автоматизації проектних робіт». За змістом англійським аналогом терміна САПР є абревіатура CAD, в деяких випадках також використовується CAX.Давайте більш детально розглянемо наступне питання: з якою метою можуть створюватися системи автоматизованого проектування в машинобудуванні та інших сферах?

САПР: цілі створення

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

Зниження трудомісткості процесу проектування;

Скорочення термінів реалізації проектів;

Зниження собівартості проектних робіт, і витрат, пов'язаних з експлуатацією;

Забезпечення підвищення якості інфраструктури проектування.

Зниження витрат на проведення випробувань і моделювання.

САПР - це інструмент, який дозволяє домогтися зазначених переваг за рахунок наступних чинників:

Ефективна інформаційна підтримка фахівців, що беруть участь в розробці проектів;

Автоматизація документації;

Застосування концепцій паралельного проектування;

Уніфікація різних рішень;

Застосування математичного моделювання, як альтернативи дорогим випробувань;

Оптимізація методів проектування;

Підвищення якості процесів управління бізнесом.

Тепер давайте розглянемо, в якій структурі може бути представлена \u200b\u200bсистема автоматичного проектування.

САПР: класифікації

До найбільш поширених критеріїв класифікації САПР відноситься галузеве призначення. Виділяють такі типи:

  1. Автоматизоване проектування інфраструктури машинобудування;
  2. САПР для електронного обладнання;
  3. САПР в сфері будівництва.

Перший тип систем САПР може бути використаний в широкому спектрі галузей: авіабудуванні, автомобілебудуванні, суднобудуванні, виробництві товарів народного споживання. Також відповідна інфраструктура може бути використана з метою розробки як окремих деталей, так і різних механізмів при використанні всіляких підходів в рамках моделювання та проектування.

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

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

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

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

Системи, які використовуються з метою розробки різних креслень;

Системи, розроблені для геометричного моделювання;

Системи, призначені для автоматизації розрахунків в рамках інженерних проектів і динамічного моделювання;

Засоби автоматизації, що застосовуються з метою технологічної оптимізації проектів;

Системи, призначені для комп'ютерного аналізу різних параметрів по проектам.

Дана класифікація вважається умовною.

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

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

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

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

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

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

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

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

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

3. Інструментальні середовища програмування містять перш за все текстовий редактор, що дозволяє конструювати програми на заданому мовою програмування, інструменти, що дозволяють компілювати або інтерпретувати програми на цій мові, а також тестувати і налагоджувати отримані програми. Крім того, можуть бути і інші інструменти, наприклад, для статичного або динамічного аналізу програм. Взаємодіють ці інструменти між собою через звичайні файли за допомогою стандартних можливостей файлової системи. Розрізняють такі класи інструментальних середовищ програмування: · середовища загального призначення, · мовно-орієнтовані середовища.

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

4. Поняття комп'ютерної технології розробки програмних засобів і її робочі місця. Є деякі труднощі у виробленні суворого визначення CASE-технології (комп'ютерної технології розробки ПС). CASE - це абревіатура від англійського Computer-Aided Software Engineering (Комп'ютерно. Допомагає Інженерія Програмування). Але без допомоги (підтримки) комп'ютера ПС вже давно не розробляються (використовується хоча б компілятор). Насправді, в це поняття вкладається більш вузький (спеціальний) сенс, який поступово розмивається (як це завжди буває, коли будь-яке поняття не має строгого визначення). Спочатку під CASE розумілася інженерія ранніх етапів розробки ПС (визначення вимог, розробка зовнішнього опису та архітектури ПС) з використанням програмної підтримки (програмних інструментів). Тепер під CASE може розумітися і інженерія всього життєвого циклу ПС (включаючи і його супровід), але тільки в тому випадку, коли програми частково або повністю генеруються по документам, отриманим на зазначених ранніх етапах розробки. В цьому випадку CASE-технологія стала принципово відрізнятися від ручної (традиційної) технології розробки ПС: змінилося не тільки зміст технологічних процесів, а й сама їх сукупність.

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

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

З урахуванням обговорених властивостей інструментальних систем технології програмування можна виділити три їх основні компоненти: · база даних розробки (репозиторій), · інструментарій, · інтерфейси.

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

Розрізняють два класи інструментальних систем технології програмування: 1) інструментальні системи підтримки проекту і 2) мовно-залежні інструментальні системи. Інструментальна система підтримки проекту - це відкрита система, здатна підтримувати розробку ПС на різних мовах програмування після відповідного її розширення програмними інструментами, орієнтованими на вибрану мову. Така система містить ядро \u200b\u200b(що забезпечує, зокрема, доступ до сховища), набір інструментів, що підтримують управління (management) розробкою ПС, незалежні від мови програмування інструменти, які підтримують розробку ПС (текстові та графічні редактори, генератори звітів і т. П.), а також інструменти розширення системи. Мовно-залежна інструментальна система - це система підтримки розробки ПС на якомусь одному мовою програмування, істотно використовує в організації своєї роботи специфіку цієї мови. Ця специфіка може позначатися і на можливостях ядра (в тому числі і на структурі сховища), і на вимогах до оболонки і інструментам.

Уніфікована мова моделювання UML Більшість існуючих методів об'єктно-орієнтованого аналізу і проектування (ООАП) включають як мова моделювання, так і опис процесу моделювання. Мова моделювання - це нотація (в основному графічна), яка використовується методом для опису проектів. Нотація є сукупність графічних об'єктів, які використовуються в моделях; вона є синтаксисом мови моделювання. Наприклад, нотація діаграми класів визначає, яким чином подаються такі елементи і поняття, як клас, асоціація і множинність. Процес - це опис кроків, які необхідно виконати при розробці проекту. Уніфікована мова моделювання UML (Unified Modeling Language) - це наступник того покоління методів ООАП, які з'явилися в кінці 80-х і початку 90-х рр.

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

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

UML виділяють наступні типи діаграм: - діаграми варіантів використання (usecase diagrams) - для моделювання бізнес-процесів організації (вимог до системи); - діаграми класів (class diagrams) - для моделювання статичної структури класів системи і зв'язків між ними. На таких діаграмах показують класи, інтерфейси, об'єкти і кооперації, а також їх відносини. При моделюванні об'єктно-орієнтованих систем цей тип діаграм використовують найчастіше. Діаграма класів відповідають статичному увазі системи з точки зору проектування; - діаграми поведінки системи (behavior diagrams); діаграми взаємодії (interaction diagrams) - для моделювання процесу обміну повідомленнями між об'єктами. - діаграми станів (statechart diagrams) - для моделювання поведінки об'єктів системи при переході з одного стану в інший.

- діаграми діяльностей (activity diagrams) - для моделювання поведінки системи в рамках різних варіантів використання або моделювання діяльностей. - діаграми реалізації (implementation diagrams): діаграми компонентів (component diagrams) - для моделювання ієрархії компонентів (підсистем) системи; діаграми розміщення (deployment diagrams) - для моделювання фізичної архітектури системи.

реферат

ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ - сукупність програм системи обробки інформації і програмних документів, необхідних для експлуатації цих програм (ГОСТ 19781-90). Також - сукупність програм, процедур і правил, а також документації, що відносяться до функціонування системи обробки даних (СТ ІСО 2382 / 1-84).

ІНСТРУМЕНТАЛЬНЕ ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ - програмне забезпечення, призначене для використання в ході проектування, розробки і супроводу програм. Зазвичай цей термін застосовується для акцентування відмінності даного класу ПО від прикладного та системного програмного забезпечення.

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

Інтерпретатор - програма (іноді апаратний засіб), що аналізує команди або оператори програми і тут же виконує їх.

ОПЕРАЦІЙНА СИСТЕМА - комплекс керуючих і обробних програм, які, з одного боку, виступають як інтерфейс між пристроями обчислювальної системи і прикладними програмами, а з іншого - призначені для управління пристроями, управління обчислювальними процесами, ефективного розподілу обчислювальних ресурсів між обчислювальними процесами і організації надійних обчислень .

ПРИКЛАДНА ПРОГРАМА - програма, призначена для виконання певних користувальницьких завдань і розрахована на безпосередню взаємодію з користувачем.

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

VISUALBASICFORAPPLICATION - трохи спрощена реалізація мови програмування Visual Basic, вбудована в лінійку продуктів Microsoft Office (включаючи версії для Mac OS), а також в багато інших програмних пакети, такі як AutoCAD, SolidWorks, CorelDRAW, WordPerfect і ESRI ArcGIS.

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

Класифікація програмного забезпечення:

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

1) Текстові редактори

4) Компілятори

5) Інтерпретатори

6) лінковщік

8) Асемблери

9) Відладчики

10) Профілювальники

11) Генератори документації

Для створення програми на обраною мовою програмування потрібно мати наступні компоненти:

2. Компілятор або інтерпретатор. Оригінальний текст за допомогою програми-компілятора переводиться в проміжний об'єктний код.

Результат роботи: Розглянуто програмне забезпечення, його функції та види, зокрема інструментальне програмне забезпечення, його сутність, завдання. У третьому розділі розглянуто Microsoft Visual Basic як засіб розробки програмного забезпечення та його діалект - Microsoft Visual Basic forApplication. У курсової роботі реалізований алгоритм вирішення фінансово-економічної задачі з використанням мови програмування Pascal.

Вступ

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

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

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

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

Для наочності ми розглянемо інструментальне програмне забезпечення (об'єкт дослідження) на прикладі програмного комплексу VisualBasicforApplication (предмет дослідження), що застосовується для програмування в середовищі MicrosoftOffice - найпоширенішого і популярного офісного пакету.

1. Програмне забезпечення

1.1 Поняття і сутність програмного забезпечення

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

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

До програмного забезпечення (ПО) відноситься також вся область діяльності з проектування та розробки ПЗ:

1) технологія проектування програм (наприклад, спадний проектування, структурне і об'єктно-орієнтоване проектування);

2) методи тестування програм;

3) методи доведення правильності програм;

4) аналіз якості роботи програм;

5) документування програм;

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

Існує безліч різних визначень ПО. Взагалі, програмне забезпечення - сукупність програм системи обробки інформації і програмних документів, необхідних для експлуатації цих програм (ГОСТ 19781-90). Також - сукупність програм, процедур і правил, а також документації, що відносяться до функціонування системи обробки даних (СТ ІСО 2382 / 1-84).

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

У комп'ютерному сленгу часто використовується слово софт від англійського слова software, яке в цьому сенсі вперше застосував в статті в American Mathematical Monthly математик з Прінстонського університету Джон Тьюки (англ. JohnW. Tukey) в 1958 році.

Інші визначення:

1) ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ - це сукупність програм, що дозволяють здійснити на комп'ютері автоматизовану обробку інформації.

2) ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ (математичне забезпечення електронної обчислювальної машини), сукупність програм системи обробки даних і програмних документів, необхідних для реалізації програм на електронній обчислювальній машині.

3) ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ - сукупність програм для управління процесом роботи комп'ютера, автоматизації програмування.

4) ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ - комплекс комп'ютерних програм, що забезпечує обробку або передачу даних.

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

1.2 Функції програмного забезпечення

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

1. Апаратно-механічні. Поєднують політику різних компонентів комп'ютера, забезпечують передачу апаратного сигналу від одного компонента до іншого.

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

3. Інформаційно-командні. Здійснюють перевірку відповідності програмного коду принципам системи і створення логічної структури інформації та здійснюють його виконання.

4. Інтерфейсні. Забезпечують обробку і інтерпретацію програмного коду в формат відображення доступний для сприйняття користувачем. Створює сприятливе середовище для взаємодії «Комп'ютер-Людина, Людина-Комп'ютер».

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

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

1.3 Види програмного забезпечення

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

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

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

1) управління ресурсами комп'ютера;

2) створення копій використовуваної інформації;

3) перевірка працездатності пристроїв комп'ютера;

4) видача довідкової інформації про комп'ютер і ін .;

c) інструментальні програмні системи, що полегшують процес створення нових програм для комп'ютера.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2. Інструментальне програмне забезпечення

2.1 Сутність і поняття інструментального програмного забезпечення

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

Застосовується інструментальне забезпечення в фазі розробки. Інструментальне програмне забезпечення - це сукупність програм, використовуваних для допомоги програмістам в їх роботі, для допомоги керівникам розробки програмного забезпечення в їх прагненні проконтролювати процес розробки і отримувану продукцію. Найбільш відомими представниками цієї частини програмного забезпечення є програми трансляторів з мов програмування, які допомагають програмістам писати машинні команди. Інструментальними програмами є транслятори з мов Фортран, Кобол, Джо-Виал, Бейсік, АПЛ і Паскаль. Вони полегшують процес створення нових робочих програм. Однак транслятори з мов це тільки найбільш відома частина інструментальних програм; існує ж їх безліч.

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

У найзагальнішому випадку для створення програми на обраною мовою програмування (мовою системного програмування) потрібно мати наступні компоненти:

1. Текстовий редактор для створення файлу з вихідним текстом програми.

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

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

Виконані код - це закінчена програма, яку можна запустити на будь-якому комп'ютері, де встановлена \u200b\u200bопераційна система, для якої ця програма створювалася. Як правило, підсумковий файл має расшіреніе.ЕХЕ ілі.СОМ.

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

Найбільш популярні редактори (системи програмування програм з використанням візуальних засобів) візуального проектування:

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

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

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

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

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

2.2 Завдання і функції інструментального програмного забезпечення

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

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

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

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

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

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

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

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

1) Текстові редактори

2) Інтегровані середовища розробки

4) Компілятори

5) Інтерпретатори

6) лінковщік

7) Парсери і генератори парсеров (див. Javacc)

8) Асемблери

9) Відладчики

10) Профілювальники

11) Генератори документації

12) Засоби аналізу покриття коду

13) Засоби безперервної інтеграції

14) Засоби автоматизованого тестування

15) Системи управління версіями і ін.

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

Текстові редактори.

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

Типи текстових редакторів.

Умовно виділяють два типи редакторів: потокові текстові редактори і інтерактивні.

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

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

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

Текстові редактори призначені для створення і редагування текстових документів. Найбільш поширеними є MS WORD, Лексикон. Основними функціями текстових редакторів є:

1) робота з фрагментами документа,

2) вставка об'єктів створених в інших програмах

3) розбивка тексту документа на сторінки

4) введення і редагування таблиць

5) введення і редагування формул

6) форматування абзацу

7) автоматичне створення списків

8) автоматичне створення змісту.

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

Інтегроване середовище розробки

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

1) текстовий редактор

2) компілятор і / або інтерпретатор

3) засоби автоматизації збірки

4) відладчик.

Іноді містить також засоби для інтеграції з системами управління версіями і різноманітні інструменти для спрощення конструювання графічного інтерфейсу користувача. Багато сучасні середовища розробки також включають браузер класів, інспектор об'єктів і діаграму ієрархії класів - для використання при об'єктно-орієнтованої розробки ПЗ. Хоча, і існують середовища розробки, призначені для декількох мов програмування - такі, як Eclipse, NetBeans, Embarcadero RAD Studio, Qt Creator або Microsoft Visual Studio, зазвичай середовище розробки призначається для одного певного мови програмування - як, наприклад, Visual Basic, Delphi, Dev-C ++.

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

SDK.

SDK (від англ. SoftwareDevelopmentKit) або «devkit» - комплект засобів розробки, який дозволяє фахівцям з програмного забезпечення створювати додатки для певного пакету програм, програмного забезпечення базових засобів розробки, апаратної платформи, комп'ютерної системи, відеоігрових консолей, операційних систем і інших платформ.

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

Постачальники SDK іноді підміняють термін Software в словосполученні Software Development Kit на більш точне слово. Наприклад, «Microsoft» і «Apple» надають Driver Development Kits (DDK) для розробки драйверів пристроїв, а «PalmSource» називає свій інструментарій для розробки «PalmOS Development Kit (PDK)».

приклади SDK :

5) Java Development Kit

6) Opera Devices SDK

Компілятори.

компілятор -

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

2) Машинна програма, яка використовується для компіляції.

3) в камері, що виконує перетворення програми, складеної мовою оригіналу, в об'єктний модуль.

4) Програма, яка переводить текст програми на мові високого рівня в еквівалентну програму на машинній мові.

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

компіляція -

1) Трансляція програми на мову, близьку до машинного.

2) Трансляція програми, складеної мовою оригіналу, в об'єктний модуль. Здійснюється компілятором.

Компілювати - проводити трансляцію машинної програми з проблемно-орієнтованої мови на машинно-орієнтована мова.

види компіляторів :

1) векторизуется. Транслює вихідний код в машинний код комп'ютерів, оснащених векторних процесором.

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

3) Діалоговий.

4) Інкрементальний. Повторно транслює фрагменти програми і доповнення до неї без перекомпіляції всієї програми.

5) Інтерпретує (покроковий). Послідовно виконує незалежну компіляцію кожного окремого оператора (команди) вихідної програми.

6) Компілятор компіляторів. Транслятор, що сприймає формальний опис мови програмування і генерує компілятор для цієї мови.

7) Налагоджувальний. Усуває окремі види синтаксичних помилок.

8) Резидентний. Постійно перебуває в основний пам'яті і доступний для повторного використання багатьма завданнями.

9) Самокомпіліруемий. Написаний на тій же мові, з якого здійснюється трансляція.

10) Універсальний. Заснований на формальному описі синтаксису і семантики вхідної мови. Складовими частинами такого компілятора є: ядро, синтаксичний і семантичний завантажувачі.

види компіляції :

1) Пакетна. Компіляція декількох вихідних модулів в одному пункті завдання.

2) Построчная.

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

структура компілятора.

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

1) Лексичний аналіз. На цьому етапі послідовність символів вихідного файлу перетвориться в послідовність лексем.

2) Синтаксичний (граматичний) аналіз. Послідовність лексем перетворюється в дерево розбору.

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

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

5) Генерація коду. З проміжного представлення породжується код на цільовому мовою.

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

Трансляція і компоновка.

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

Інтерпретатори.

Інтерпретатор (мови програмування) -

1) Програма або технічний засіб, що виконує інтерпретацію.

2) Вид транслятора, який здійснює пооператорную (покомандного) обробку і виконання вихідної програми або запиту (на відміну від компілятора, який транслює всю програму без її виконання).

3) Програма (іноді апаратний засіб), що аналізує команди або оператори програми і тут же виконує їх.

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

типи інтерпретаторів.

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

Інтерпретатор компілює типу - це система з компілятора, який переводить вихідний код програми в проміжне представлення, наприклад, в байт-код або p-код, і власне інтерпретатора, який виконує отриманий проміжний код (так звана віртуальна машина). Перевагою таких систем є більшу швидкодію виконання програм (за рахунок виносу аналізу вихідного коду в окремий, разовий прохід, і мінімізації цього аналізу в інтерпретаторі). Недоліки - більше вимога до ресурсів і вимога на коректність вихідного коду. Застосовується в таких мовах, як Java, PHP, Python, Perl (використовується байт-код), REXX (зберігається результат парсинга вихідного коду), а також в різних СУБД (використовується p-код).

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

Деякі інтерпретатори (наприклад, для мов Лисп, Scheme, Python, Бейсік і інших) можуть працювати в режимі діалогу або так званого циклу читання-обчислення-друку (англ. Read-eval-printloop, REPL). У такому режимі інтерпретатор зчитує закінчену конструкцію мови (наприклад, s-expression в мові Лісп), виконує її, друкує результати, після чого переходить до очікування введення користувачем наступної конструкції.

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

Слід також зазначити, що режими інтерпретації можна знайти не тільки в програмному, а й апаратне забезпечення. Так, багато мікропроцесори інтерпретують машинний код за допомогою вбудованих мікропрограм, а процесори сімейства x86, починаючи з Pentium (наприклад, на архітектурі Intel P6), під час виконання машинного коду попередньо транслюють його у внутрішній формат (в послідовність мікрооперацій).

Алгоритм роботи простого інтерпретатора :

2. проаналізувати інструкцію і визначити відповідні дії;

3. виконати відповідні дії;

4. якщо не досягнуто умова завершення програми, прочитати наступну інструкцію і перейти до пункту 2.

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

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

2) Як правило, більш досконалі і наочні засоби діагностики помилок у вихідних кодах.

3) Спрощення налагодження вихідних кодів програм.

4) Менші розміри коду в порівнянні з машинним кодом, отриманим після звичайних компіляторів.

1) Скриптової програма не може виконуватися окремо без програми-інтерпретатора. Сам інтерпретатор при цьому може бути дуже компактним.

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

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

компоновщик.

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

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

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

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

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

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

Асемблер.

Асемблер (від англ. Assembler - складальник) - комп'ютерна програма, компілятор початкового тексту програми, написаної на мові асемблера, в програму на машинній мові.

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

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

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

список отладчиков.

1) AQtime - комерційний відладчик для додатків, створених для.NET Framework версії 1.0, 1.1, 2.0, 3.0, 3.5 (включаючи ASP.NET додатки), а також для Windows 32 і 64-бітних додатків.

2) DTrace - фреймворк динамічного трасування для Solaris, OpenSolaris, FreeBSD, Mac OS X і QNX.

3) Electric Fence - відладчик пам'яті.

4) GNU Debugger (GDB) - відладчик програм від проекту GNU.

5) IDA - потужний дизассемблер і низькорівневий відладчик для операційних систем сімейства Windows і Linux.

6) Microsoft Visual Studio - середовище розробки програмного забезпечення, що включає засоби налагодження від корпорації Microsoft.

7) OllyDbg - безкоштовний низькорівневий відладчик для операційних систем сімейства Windows.

8) SoftICE - низькорівневий відладчик для операційних систем сімейства Windows.

9) Sun Studio - середовище розробки програмного забезпечення, що включає відладчик dbx для ОС Solaris і Linux, від корпорації Sun Microsystems.

10) Dr. Watson - стандартний відладчик Windows, дозволяє створювати дампи пам'яті.

11) TotalView - один з комерційних отладчиков для UNIX.

12) WinDbg - безкоштовний відладчик від корпорації Microsoft.

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

Зазвичай генератор аналізує вихідний код програми, виділяючи синтаксичні конструкції, що відповідають значимих об'єктів програми (типам, класам і їх членам / властивостям / методам, процедурам / функціям і т. П.). В ході аналізу також використовується мета-інформація про об'єкти програми, представлена \u200b\u200bу вигляді документують коментарів. На основі всієї зібраної інформації формується готова документація, як правило, в одному із загальноприйнятих форматів - HTML, HTMLHelp, PDF, RTF та інших.

документують коментарі.

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

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

Документують коментарі, як правило, оформляються як багаторядкові коментарі в стилі мови Сі. У кожному разі коментар повинен знаходитися перед документованим елементом. Першим символом в коментарі (і спочатку рядків коментаря) повинен бути *. Блоки поділяються порожніми рядками.

3. Visual Basic for Applications

програмний забезпечення операційний системний

3.1 Сутність VisualBasic і його коротка історія

Microsoft Visual Basic (VB) - засіб розробки програмного забезпечення, що розробляється корпорацією Microsoft і включає мову програмування і середовище розробки. Мова Visual Basic успадкував дух, стиль і частково синтаксис свого предка - мови Бейсік, у якого є чимало діалектів. У той же час Visual Basic поєднує в собі процедури та елементи об'єктно-орієнтованих і компонентно-орієнтованих мов програмування. Середовище розробки VB містить інструменти для візуального конструювання користувальницького інтерфейсу. (Див. Табл.).

Visual Basic (основні характеристики)

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

В процесі еволюції Visual Basic пройшов ряд послідовних етапів, що дозволили йому стати одним з найпопулярніших мов програмування на сьогоднішній день. Отже, еволюція VisualBasic йшла таким шляхом:

1. май1991 - випущений Visual Basic 1.0 дляMicrosoft Windows. За основу мови був узятий синтаксис QBasic, а нововведенням, котрі принесли потім мови величезну популярність, з'явився принцип зв'язку мови і графічного інтерфейсу.

2. вересень 1992 - випущений Visual Basic 1.0 під DOS. Він не був повністю сумісний з Windows-версією VB, оскільки був наступною версією QuickBASIC і працював в текстовому режимі екрана.

3. листопад 1992 - випущений Visual Basic 2.0. Середовище розробки стала простіше у використанні і працювала швидше.

4. влітку 1993 - вийшов у світ Visual Basic 3.0 в версіях Standard і Professional. До всього іншого, до складу поставки додався движок для роботи з базами даних Access.

5. серпень 1995 - Visual Basic 4.0 - версія, яка могла створювати як 32-х, так і 16-розрядні Windows-програми.

6. лютий 1997 - Visual Basic 5.0 - починаючи з цієї версії, стало можливо, поряд зі звичайними додатками, розробляти COM-компоненти.

7. В середині 1998 - вийшла Visual Basic 6.0. Після цього Microsoft різко змінила політику щодо мов сімейства Basic. Замість розвитку Visual Basic, був створений абсолютно нову мову Visual Basic .NET.

8. У 2005 році вийшла нова версія Visual Basic, в комплекті Visual Studio. Порадувала вона новим інтерфейсом і можливостями. Мова заснований на Visual Basic.NET.

9. В кінці 2007 Microsoft випустила нову версію Visual Basic - Visual Basic 2008, яка також була заснована на Visual Basic.NET.

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

1. Класичний Visual Basic (версії 5-6) Ця мова дуже сильно прив'язаний до свого середовища розробки і до операційної системи Windows, будучи виключно інструментом написання Windows-додатків

2. VisualBasicforApplications (VBA) Це засіб програмування, практично нічим не відрізняється від класичного Visual Basic, яке призначене для написання макросів та інших прикладних програм для конкретних додатків. Найбільшу популярність здобув завдяки своєму використання в пакеті Microsoft Office. Широке поширення Visual Basic for Applications в поєднанні з самого початку недостатньою увагою до питань безпеки призвело до широкого поширення макровірусів.

3. VisualBasicScriptingEdition (VBScript) Скриптова мова, що є кілька усіченої версією звичайного Visual Basic. Використовується в основному для автоматизації адміністрування систем Windows, а також для створення сторінок ASP і сценаріїв для Internet Explorer.

3.2 VisualBasicforApplication інтерфейс, основні функції та можливості

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

Інтерфейс програми VisualBasicforApplicationсостоіт з комплексу різних вікон і вкладок, використовуваних при проектуванні створюваного додатка, основними з яких є:

1) вікно Проекту (рис.2), що відображає структуру створюваного проекту.

2) вікно Програмного коду (рис. 3), що відображає програмний код створюваного проекту і дає можливість писати програму класичним способом за допомогою вбудованого редактора кодових слів, яких в VBA понад 16 тисяч. Також дане вікно дозволяє редагувати код і перевіряти його на наявність помилок.

3) закладка Властивостей (рис. 4), що відображає встановлені до зазначеного об'єкту параметри і дає можливість змінити зазначені настройки.

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

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

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

Нестандартне діалогове вікно створюється в VBA за допомогою додавання об'єкта UserForm в проект. Цей об'єкт є пусте діалогове вікно; воно має рядок заголовка і кнопку закриття, але в ньому відсутні будь-які інші елементи управління. Нестандартне діалогове вікно створюється шляхом додавання елементів управління в об'єкт UserForm і зазвичай званий просто формою (Рис. 5).

Кожен об'єкт UserForm має властивості, методи і події, успадковані їм від класу об'єктів UserForm.

Кожен об'єкт UserForm також містить модуль класу, в який користувач додає власні методи і властивості або вписує процедури обробки подій для цієї форми.

Можливість створювати створити власний інтерфейс, незалежний від середовища програми-додатки, наприклад Excel, за допомогою екранних форм є однією з найбільш цінних можливостей в VBA.

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

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

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

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

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

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

VBA дозволяє програмувати табличні функції. Щоб створити окремий робочий лист для програмного модуля, передбачена закладка Insert Module з меню Visual, команда Module з меню Insert Macro. Після цього з'явиться новий робочий лист "Modele1". У програмному модулі потрібно описати функцію на мові VBA. У вікні програмного модуля можна працювати, як у вікні невеликого текстового редактора.

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

Visual Basic дозволяє резервувати змінні, із зазначенням розміру і без нього, працювати з різними типами даних, використовувати константи, працювати з математичними операторами і функціями, використовувати додаткові оператори. Передбачено використання операторів циклів For Next, Do, об'єктів типу "таймер" (невидимий секундомір в програмі). Точність встановлення часу в програмі складає 1 мілісекунду, або 1/1000 сек. Запущений таймер постійно працює - тобто виконується відповідна процедура обробки переривання через заданий інтервал часу - до тих пір, поки користувач не зупинить таймер або не відключить програму.

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

Якщо узагальнити всі функції програми, то Visual Basic forApplication дозволяє:

1) працювати із засобами управління

переваги :

1. Висока швидкість створення додатків з графічним інтерфейсом для MS Windows.

2. Простий синтаксис, що дозволяє дуже швидко освоїти мову.

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

4. Захист від помилок, пов'язаних із застосуванням покажчиків і доступом до пам'яті. Цей аспект робить Visual Basic додатки більш стабільними, але також є об'єктом критики.

5. Можливість використання більшості WinAPI функцій для розширення функціональних можливостей програми. Дане питання найбільш повно досліджений Деном Епплманом, який написав книгу «Visual Basic Programmer" s Guide to the Win32 API ».

критика :

1. Часто критиці піддаються такі аспекти Visual Basic, як можливість відключити засоби стеження за оголошеними змінними, можливість неявного перетворення змінних, наявність типу даних «Variant». На думку критиків, це дає можливість писати вкрай поганий код. З іншого боку, це можна розглядати як плюс, так як VB не нав'язує «хороший стиль», а дає більше свободи програмісту.

2. Відсутність вказівників, низкоуровневого доступу до пам'яті, ASM-вставок. Незважаючи на те, що парадигма Visual Basic дозволяє середньому VB-програмісту обходитися без усього цього, перераховані речі також нерідко стають об'єктами критики. І хоча, використовуючи недокументовані можливості і певні хитрощі, все це можна реалізувати і на VB (наприклад, за допомогою функцій для отримання покажчиків VarPtr (), StrPtr () і ObjPtr ()); користуватися цими трюками набагато складніше, ніж, наприклад, на С ++.

Однак варто зазначити, що всі недоліки мови випливають з його основного гідності - простоти розробки графічного інтерфейсу. Тому багато програмістів використовують Visual Basic для розробки інтерфейсу користувача, а функціональність програми реалізують в вигляді динамічно підключаються бібліотек (DLL), написаних іншою мовою (найчастіше C ++).

4. Практична частина

4.1 Постановка завдання

Скласти блок-схему і написати програму на мові Pascal. Розрахувати внутрішню вартість цінних паперів. Внутрішня вартість активу визначається майбутнім потоком доходів від цього активу

pv - поточна внутрішня вартість акції

c - очікуване надходження від розглянутого активу

r - норма прибутковості, очікувана інвестором для доходу з відповідним рівнем ризику

n - фактор часу (в місяцях).

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

4.2 Текст програми на мові Pascal

pv: array of real;

writeLn ( 'Введіть очікуване надходження від', i, '- го активу c:');

writeLn ( 'Введіть норму прибутковості, очікувану інвестором r:');

pv: \u003d c / exp (ln (1 + r) * i);

writeLn ( 'поточна внутрішня вартість активу дорівнює', pv [i]: 1: 3);

writeLn ( 'Внутрішня вартість активу дорівнює', s);

for j: \u003d 1 to 4 do

if pv [j]\u003e pv then

writeLn ( 'Вартість активів, відсортована за зростанням');

for i: \u003d 1 to 5 do

writeLn (pv [i]: 1: 3);

4.3 Контрольний приклад

4.4Результат виконання програми на контрольному прикладі

висновок

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

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

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

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

Саме з цією метою Microsoft був розроблений програмний комплекс VisualBasicforApplication, що дозволяє полегшити процес програмування і дав можливість займатися прикладним програмуванням користувачам, а не програмістам. Дана можливість була реалізована в першу чергу шляхом створення розділу програми - «Редактор сценаріїв» і можливості записувати і виконувати «Макрос», як окремий різновид графічно програмованих модулів. Реалізована можливість створення додатків з графічним інтерфейсом для MS Windows. Також перевагою даного виду інструментального програмного забезпечення є простий синтаксис, що дозволяє дуже швидко освоїти мову, і застосовувати його для програмування у всіх стандартних додатках MicrosoftOffice.

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

1. Алгоритмічні мови реального часу / Под ред. Янга С. / 2004 р

2. Журнал PC Magazine Russian Edition №2 2008р. Комп'ютер сьогодні.

3. Інформатика. / Под ред. Могильов А.В., Пак Н.І., Хеннер Є.К / - М .: ACADEMIA, 2000..

4. Інформатика і інформаційні технології: Підручник / За ред. Романова Д.Ю. / ТОВ «видавництво« Ексмо », 2007.

5. Новітня енциклопедія персонального комп'ютера / Под ред. Леонтьєва В. / Москва, 1999 рік. - 271 с.

6. Нові мови програмування та тенденції їх розвитку / Под ред. Ушков В. / 2001 р

7. Педагогіка / Под ред. Пидкасистого П.І. / - М .: Педагогічне товариство Росія, 2000..

8. Програмування для Microsoft Excel 2000 за 21 день. / Под ред. Харіса М. / - М .: Вільямс, 2000..

9. Симонович С. Інформатика: базовий курс. Учеб. для ВНЗ. СПб, Пітер, 2002 г.

10. З Excel 2000 без проблем. / Под ред. Ковальські / - М .: Біном, 2000..

11. «Ефективна робота в Windows 98» / Под ред. Стінсона К. / 2000 рік. - 247 с.

12. Мови програмування. кн.5 / Под ред. Вауліна А.С. / 2003 р

13. Мови програмування: розробка та реалізація / Под ред. Терренса П. / 2001 р

14. Електронний підручник з інформатики. Алексєєв О.Г. http: //www.stf.mrsu.ru/economic/lib/Informatics/text/Progr.html \\

технологічний розділ

Технологія розробки програмного забезпечення

3.1.1 Визначення процесів предметної області

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

3.1.2 Процеси управління проектами

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

Малюнок 3.1 - Накладення груп процесів в фазі

Малюнок 3.2 - Взаємозв'язки груп процесів управління проектом у фазі

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

3.1.3 Технологія швидкої розробки додатків

Обрана для створення дипломного проекту середовище розробки Delphi використовує технологіюRAD (Rapid Application Development - швидка розробка додатків). Це означає розробку програмного забезпечення в спеціальній інструментальної середовищі і ґрунтується на візуалізації процесу створення програмного коду. Засоби швидкої розробки додатків грунтуються на компонентної архітектури. При цьому компонентиявляются об'єктами, що об'єднують дані, властивості і методи. Компоненти можуть бути як візуальними, так і невізуальними; атомарними і контейнерними (що містять інші компоненти); низькорівневими (системними) і високорівневими.

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

Розміщення компонентів інтерфейсу в потрібному місці;

Завдання моментів часу їх появи на екрані;

Налаштування пов'язаних з ними атрибутів і подій.

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

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

3.1.4 Життєвий цикл програми формування пакету документів

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

Розробка програми здійснювалася в кілька етапів:

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

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

Розробка програмного забезпечення: здійснено розробку програмного забезпечення відповідно до проектних рішень попереднього етапу. На цьому етапі створені необхідні модулі програми. Деякі з розроблених модулів представлені на малюнку 3.3. Результатом виконання даного етапу є готовий програмний продукт;

Тестування і дослідна експлуатація: проведена перевірка отриманого програмного забезпечення на відповідність вимогам, заявленим в технічному завданні;

Здача готового продукту.

Малюнок 3.3 - Модулі програми, що розробляється

Ознаки модульности програм: 1) програма складається з модулів. Даний ознака для модульної про- грами є очевидним; 2) модулі є незалежними. Це означає, що модуль можна ви- няти або модифікувати без наслідків в інших модулях; 3) умова «один вхід - один вихід». Модульна програма складається з модулів, що мають одну точку входу і одну точку виходу. У загальному випадку може бути більш одного входу, але важливо, щоб точки входів були определе- ни та інші модулі не могли входити в даний модуль в довільній точці. Переваги модульного проектування: 1) спрощення розробки ПС; 2) виключення надмірної деталізації обробки даних; 3) спрощення супроводу ПС; 4) полегшення читання і розуміння програм; 5) полегшення роботи з даними, що мають складну структуру. Недоліки модульности: 1) модульний підхід вимагає більшого часу роботи центрального процесора (в середньому на 5 - 10%) за рахунок часу звернення до модулів; 2) модульність програми призводить до збільшення її обсягу (в середньому на 5 - 10%); 97 3) модульність вимагає додаткової роботи програміста і визна -лених навичок проектування ПС. Класичні методи структурного проектування модульних ПС діляться на три основні групи: 1) методи низхідного проектування; 2) методи розширення ядра; 3) методи висхідного проектування. На практиці зазвичай застосовуються різні поєднання цих методів. Резюме В ідеальній модульній програмі будь-яку частину логічної структури можна змінити, не викликаючи змін в її інших частинах. Ідеальна модуль- ная програма складається з незалежних модулів, що мають один вхід і один вихід. Модульні програми мають переваги і недоліки. Існує три групи класичних методів проектування модульних ПС.

3.1.5 Методологія, технологія та інструментальні засоби розробки прикладного програмного забезпечення

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

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

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

Інструментальні засоби автоматизованої розробки прикладних програм прийнято називати CASE-засобами (Computer Aided Software / SystemEngineering). В даний час значення цього терміна розширилося і набуло нового змісту, що охоплює процес розробки складних інформаційних систем в цілому. Тепер під терміном CASE-засобу розуміються програмні засоби, що підтримують процеси створення і супроводу інформаційних систем, включаючи аналіз і формулювання вимог, проектування прикладного програмного забезпечення та баз даних, генерацію коду, тестування, документування, забезпечення якості, конфігураційне управління і управління проектом, а також інші процеси.

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

Основні принципи методології RAD можна звести до наступного:

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

В процесі розробки необхідна тісна взаємодія з замовником і майбутніми користувачами;

Необхідно застосування CASE-засобів і засобів швидкої розробки додатків;

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

Тестування і розвиток проекту здійснюються одночасно з розробкою;

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

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

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

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

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

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

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

3.2 Технологіятестірованія програмного забезпечення

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

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

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

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

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

Отже, якість ПС - сукупність найбільш істотних якісних показників (факторів) в достатній мірі характеризують ПС. До загальних факторів відносять:

Функціональність - як набір функцій, що реалізують встановлені або передбачувані потреби користувачів;

Коректність - відповідність реалізації системи її специфікації і несуперечності;

Інтерфейс - як засіб спілкування з користувачами системи;

Відкритість - характеризує модифицируемость системи;

Комфортність - характеризує зручність використання ПС;

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

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

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

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

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

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

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

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

Пропонується дві методики тестування об'єктно-орієнтованих систем:

Тестування, засноване на потоках;

Тестування, засноване на використанні.

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

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


Схожа інформація.


Етап 1: до середини 50-х.

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

Реалізуються можливості роздільної компіляції і переміщуваності програм. З'являються завантажувачі і компоновщики програм.

Етап 2: середина 50-х - середина 60-х рр.

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

Fortran (1954-1957);

Algol-60 (1958-1960);

Cobol (1959-1961);

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

Етап 3: середина 60-х - початок 70-х рр.

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

Змінюється співвідношення витрат на розробку ПЗ (40% і більше витрачається на налагодження, проектування та документування), кодування - один з найпростіших видів робіт. Використовуються і створюються "великі" мови програмування - ПЛ / 1, АЛГОЛ-68, СИМУЛА-67, узагальнюючі і інтегрують раніше знайдені рішення.

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

Етап 4 ( "етап кризи в розвитку ПО"): початок 70-х-середина 70-х рр.

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

Отримують визнання методології структурного програмування (Дейкстра, 1968р.), Формуються основи технології програмування (мова Паскаль (Н.Вірт), 1971р.).

Етап 5: 1976г.- наш час. Етап посткризового розвитку інструментальних засобів.

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

Мови програмування:

C (початок 1970-х, вперше досить повно описаний в 1978 р);

Modula-2 (1978 р розвиток - мова Oberon (1988));

Prolog (1972 р, поширення набув з 1980 р);

Smalltalk (1970-ті роки, в 1980 був представлений як Smalltalk-80);

C ++ (початок 1980-х рр., Назва - 1983, в звичному сьогодні вигляді існує з 1990 р);

Java (версія Java 1.0 - 1996 р Java 2.0 - 1998 Java 5 - 2004 ...);

C # (1998-2001, версія 1.0 - 2000-2002, версія 2.0 - 2003-2005, версія 3.0 - 2004-2008, версія 4.0 - 2008-2010).

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

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

1. Які дії включає в себе розробка програмного продукту?

2. Які етапи в розробці програм виділяються в рамках Rational Unified Process (RUP)?

3. Що забезпечує використання інструментальних засобів?

4. Які складові частини входять в програму? Призначення кожної з частин.

5. Визначення програми і програмного забезпечення.

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

7. Які мови програмування застосовують при розробці програм?

8. Визначення інструментального програмного забезпечення.

9. На які чотири группиможно розбити інструментальне ПО? Приклади ПО для кожної групи.

10. За якими критеріями можна порівнювати програми з одного класу?

11. Які етапи виділяють в розвитку інструментальних засобів розробки ПЗ?

12. Призначення і основні характеристики компіляторів (ассемблеров) і редакторів зв'язків.

13. Призначення і основні характерістікіредакторов текстів.

14. Призначення і основні характерістікіотладчіков.

15. Призначення і основні характерістікіпрограмм створення інсталяторів.

16. Призначення і основні характерістікіредакторов ресурсів.

17. Призначення і основні характерістікіпрофіліровщіков.

18. Призначення і основні характерістікіпрограмм підтримки версій.

19. Призначення і основні характерістікіпрограмм створення файлів допомоги (документації).

20. Призначення і основні характерістікігенераторов документації.

21. Призначення і основні характерістікідізассемблеров і декомпілятори.

22. Призначення і основні характерістікіпрограмм відстеження активності системи і змін, що відбуваються в системі.

23. Призначення і основні характерістікіпрограмм-веріферов і контейнерів.

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

25. Призначення і основні характерістікіSDK.

26. Призначення і основні характеристики парсеров.

27. Призначення технологічних стандартів.


ТЕМА:Методології розробки ПО.

література: 1. Зелковіц М., Шоу А., Геннон Дж. Принципи розробки програмного забезпечення.

2. Гецці К., Джазайері М., Мандріолі Д. Основи інженерії програмного забезпечення.

3. Камаєв В. А., Костерін В. В. Технології програмування.

Розглянемо поняття методології, методу і засобу.

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

метод включає засоби- за допомогою чого здійснюється дія і способи- яким чином здійснюється дію.

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

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

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

Методології є ядро \u200b\u200bтеорії управління розробкою програмного забезпечення.

Залежно від моделі життєвого циклу методології діляться на:

Водоспадні (каскадні);

Ітераційні (спіральні).

Також існує і більш загальна класифікація на:

прогнозовані;

Адаптивні.

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

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

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

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

Мал. 1. Каскадна модель життєвого циклу.

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

Переваги застосування каскадного способу:

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

Їх в логічній послідовності стадії робіт дозволяють планувати терміни завершення всіх робіт і відповідні витрати.

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

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

Основним недоліком каскадної моделі є суттєве запізнення з отриманням результатів і, як наслідок, високий ризик створення системи, що не задовольняє умов, що змінилися потребам користувачів. Це пояснюється двома причинами:

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

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

Мал. 2. Каскадна модель ЖЦ на практиці.

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

Для подолання перелічених проблем в середині 80-х років була запропонована спіральна модель життєвого циклу (рис.3).

Мал. 3. Спіральна (итерационная) модель ЖЦ.

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

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

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

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

Спіральна модель визначає чотири дії, що подаються окремими секторами спіралі:

1. Планування - визначення цілей, варіантів і обмежень.

2. Аналіз ризику - аналіз варіантів і розпізнавання / вибір ризику.

3. Конструювання - розробка продукту наступного рівня.

4. Оцінювання - оцінка замовником поточних результатів конструювання.

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

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

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

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

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

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

Переваги спіральної моделі:

Найбільш реально (у вигляді еволюції) відображає розробку програмного забезпечення;

Дозволяє явно враховувати ризик на кожному витку еволюції розробки;

Включає крок системного підходу в итерационную структуру розробки;

Використовує моделювання для зменшення ризику і вдосконалення програмного виробу.

Недоліки спіральної моделі:

Новизна (відсутня достатня статистика ефективності моделі);

Підвищені вимоги до замовника;

Труднощі контролю і управління часом розробки.

На сьогоднішній день можна виділити наступні ітеративні методології розробки програмного забезпечення:

Rational Unified Process (RUP)

Гнучкі методології розробки (SCRUM, KANBAN, DSDM, MSF, ALM, XP)

Гнучка методологія розробки (Англ. Agile software development).

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

Agile-методи роблять упор на безпосереднє спілкування віч-на-віч. Більшість agile-команд розташовані в одному офісі. Як мінімум вона включає і «замовників» (замовники які визначають продукт, також це можуть бути менеджери продукту, бізнес-аналітики або клієнти). Офіс може також включати тестувальників, дизайнерів інтерфейсу, технічних письменників і менеджерів.

Однією з найбільш відомих і передових гнучких методик є методологія SCRUM.

SCRUM- методологія, призначена для невеликих команд (до 10 осіб). Весь проект поділяється на ітерації (спринти) тривалістю 30 днів кожна. Вибирається список функцій системи, які планується реалізувати протягом наступного спринту. Найважливіші умови - незмінність певних функцій під час виконання однієї ітерації і суворе дотримання термінів випуску чергового релізу, навіть якщо до його випуску не вдасться реалізувати весь запланований функціонал. Керівник розробки проводить щоденні 20 хвилинні наради, які так і називають - scrum, результатом яких є визначення функції системи, реалізованих за попередній день, що виникли складності і план на наступний день. Такі наради дозволяють постійно відстежувати хід проекту, швидко виявляти виниклі проблеми і оперативно на них реагувати.

KANBAN - гнучка методологія розробки програмного забезпечення, орієнтована на завдання.

Основні правила:

Візуалізація розробки:

o поділ роботи на завдання;

o використання позначок про стан завдання в розробці;

Обмеження робіт, що виконуються одночасно, на кожному етапі розробки;

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

Переваги KANBAN:

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

Швидке виявлення проблемних завдань;

Обчислення часу на виконання усередненої задачі.

DYNAMIC SYSTEM DEVELOPMENT METHOD (DSDM) з'явився в результаті роботи консорціуму з 17 англійських компаній. Ціла організація займається розробкою посібників за цією методологією, організацією навчальних курсів, програм акредитації тощо Крім того, цінність DSDM має грошовий еквівалент.

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

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

Базові принципи, на яких будується DSDM:

Активна взаємодія з користувачами;

Часті випуски версій;

Самостійність розробників в прийнятті рішень;

Тестування протягом усього циклу робіт.

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

MICROSOFT SOLUTIONS FRAMEWORK (MSF) - методологія розробки програмного забезпечення, запропонована корпорацією Microsoft. MSF спирається на практичний досвід Microsoft і описує управління людьми і робочими процесами в процесі розробки рішення.

Базові концепції та принципи моделі процесів MSF:

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

Управління компромісами - пошук компромісів між ресурсами проекту, календарним графіком і реалізованими можливостями;

Гнучкість - готовність до постійно змінюваних проектним умовам;

Концентрація на бізнес-пріоритети - зосередженість на тій віддачі і вигоді, яку очікує отримати споживач рішення;

Заохочення вільного спілкування всередині проекту;

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

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

Application Lifecycle Management (ALM) - розроблена і підтримувана компанією Borland.

Extreme Programming (XP) -екстремальное програмування, підтримуване відкритим співтовариством незалежних розробників.



Сподобалася стаття? поділіться їй