Лекція на тему: Стандарти програмної інженерії
Існують певні організації, профілюючими напрямами діяльності яких є розробка і супровід стандартів. Залежно від сфери застосування стандарт може мати статус міжнародного, відомчого або стандарту підприємства. Головним органом встановлення міжнародних стандартів є міжнародна організація по стандартизації (The International Standards Organization або скорочено ISO), яка працює в співпраці з міжнародною електротехнічною комісією (The International Electrotechnical Commission або скорочено ІЕС). Всі затверджені ними спільно стандарти мають ідентифікатор, який складається з префікса 1SO/IEC, серійного номера стандарту і дати випуску, наприклад: ISO/IEC 12207: 1995 - 08- 11.
Кожен стандарт ISO/ІЕС має також назву, яка при посиланнях вказується після ідентифікатора. ISO/ІЕС має десятки технічних профільних комітетів, зокрема технічний комітет "Інформаційні технології", одним з технічних підкомітетів якого є підкомітет з програмної інженерії. Існують також міжнародні об'єднання по окремих проблемних областях, які випускають стандарти для відповідних застосувань. Кожна цивілізована держава має свої національні органи стандартизації.
Більшість національних комітетів із стандартизації визнають стандарти 1SO/IEC, входять до її складу, і проводять для стандартів ISO/ІЕС процедуру гармонізації, тобто їх пристосування до національних умов і особливостей використання ( як наприклад, національні алфавіти, метричні системи, валютні знаки і тому подібне).
Головним джерелом стандартів є професійні об'єднання, зокрема для програмної інженерії - IEEE Computer Society. На даний час існує понад 300 стандартів IEEE для програмної інженерії, значна частина яких береться до уваги широким колом розробників програмних систем. Практично більшість стандартів програмної інженерії історично з'являються як стандарти IEEE, а з часом, після випробування досвідом використання, вносяться як кандидати в стандарти ISO/IEC.
Процедура затвердження стандартів ISO досить складна. Є декілька стадій проходження кандидата в стандарт, для будь-якої з них передбачена розсилка пропозицій на експертизу всім національним комітетам, збір зауважень, їх обробка і голосування для створення нової версії.
Ця процедура для деяких стандартів може тривати роками відносно офіційних стандартів або стандартів де-юре. Бюрократизована процедура приводить до того, що технічно доведені до кондиції стандарти можуть за час втратити свою значущість для індустрії програмного забезпечення і відповідність рівню діючої технології.
Тим часом індустрія створює так звані "стандарти де-факто", які фактично знаходять масове використання незалежно від того, затверджені вони компетентними плановими органами чи ні, оскільки вони є найбільш актуальними в індустрії програмних систем.
Терміном "стандарт де-факто"позначаються специфікації на проект стандарту (або внутрішній стандарт), які публікуються деяким консорціумом (групою установ, які офіційно працюють для загальної мети стандартизації) або фірмою, що дістали загальне схвалення від інших розробників, і цей проект став сприйматися як необхідний сучасний напрям технології.
Наприклад, проектні рішення консорціуму Object Management Group (OMG) гіо управлінню транзакціями стали стандартом де-факто і затверджені комітетом ISO, модель UML фірми Rational Rose визначена як стандарт моделювання артефактів програмної інженерії, мова JAVA - претендент на стандарт, який активно використовується на ринку, і ін.
Стандарти де-факто, завдяки своїй відповідності актуальним потребам ринку, поширюються і упроваджуються досить швидко, тому що їх виробіток і апробація проходить усередині груп, які їх створюють, а публікація цих стандартів позначає, як "зрілі" рішення.
Враховуючи вищесказане, впливові міжнародні організації і, в першу чергу ISO, які є розробниками стандартів де-юре, визнали, що вони не є монопольними і компетентними джерелами всіх стандартів і тому ввели процес перетворення стандартів де-факто на стандарти де-юре. які в цьому випадку отримали назву загальнодоступної специфікації (Public- Available Specifications - скорочено PAS).
Об'єкти стандартизації.
Згідно еталонної моделі програмної інженерії, в ній визначені такі головні елементи :
- процеси розробки ПО;
- продукти розробки;
- ресурси, які використовують процеси для створення програмного продукту.
Важливим елементом моделювання проблем наочної області є клієнт (замовник), який замовляє програмну систему. Вимоги замовника визначають склад і якість вказаних елементів. Об'єктами стандартизації будь-якого стандарту в програмній інженерії є аспекти вказаних вище елементів або їх з'єднань.
Більше всього стандартів існує для різних видів процесів. Так в стандарті ISO/SEC 12207 базових процесів - 42, а всього процесів в ньому більше 200. Треба сказати при цьому, що удосконалення процесів, як правило, веде до удосконалення створюваних продуктів і ефективного використання ресурсів.
Визначений детальний перелік процесів і дій. які складають процеси, для всіх етапів життєвого циклу розробки і більшості аспектів розгляду вказаних етапів. Найбільшого успіху і широкого використання набув стандарт ISO/IEC 12207:1996 для процесів життєвого циклу програмного забезпечення. Цей стандарт став певним каркасом для розгляду всіх проблем програмної інженерії.
Першим виміром класифікації є відношення стандарту до продукту, процесу, ресурсу або взаємодії із замовником. У ІЕЕЕ/ІЕА Std. 12207.1:1997 запропонований другий вимір класифікації стандартів по рівнях узагальнення регламентацій, які подаються в стандарті.
Окремі групи розробників стандарту в програмній інженерії створюють:
- термінологію
- загальні рекомендації
- принципи дій
- стандартизовані елементи
- рекомендації для прикладних застосувань
- рекомендації відносно інструментів і методів розробки (наприклад, класифікація аномалій виконання),
- плани управління якістю
- плани валідації і верифікації.
Відповідно до запропонованої класифікації нижче приведені найбільш значимі і існуючі стандарти програмної інженерії.
ISO/IEC 12207:1996 Information Technology - Software life—cycle processes; 12207/FPDAM 1.2 - Software Engineering - Life Cycle Processes // ISO/IEC JTC1/SC7 N2413, Software & System Engineering Secretariat, Canada. - 2001. - 62p.
DTR 15271 Information Technology - Guide for ISO/IEC 12207 (Software Life Cycle Processes);
IEEE/IEA Std. 12207.1:1997 Software Life Cycle processes - Life Cycle data;
ISO/IEC JTC1/SC7 N2172a (Draft ISO/IEC TR 16326:1999). Software Engineering - Guide for the Application of ISO/IEC 12207 to Project Management;
ISO/IEC TR 15504 Information Technology - Software Process Assessment Part 1 - Part 9:
IEEE Std. 1058:1998 IEEE Standard for Software Project Management Plans
IEEE Std. 1044:1993 IEEE Standard Classification for Software Anomalies
IEEE Std. 1044-1:1995 IEEE Guide to Classification for Software Anomalies
ISO/IEC 15026:1998 Information Technology - System and Software Integrity Levels;
ISO/IEC JTC1/SC7 N2207:1999 IEC 60300: Dependability management - Part 3-13: Application Guide - Project risk management;
ISO/IEC JTC1/SC7 N2198:1999 2nd Working Draft On Risk Management Terminology і ін.