Litvek - онлайн библиотека >> М О Сидоров >> Современные издания стран бывшего СССР и др. >> Вступ до інженерії програмного забезпечення >> страница 3
структур;

- застосовує знання з інших дисциплін (на додаток до своїх власних), наприклад, з математики, базових наук і економіки. При цьому; основними дисциплінами є «Комп'ютерні науки», «Дискретна математика» і «Групова динаміка». Дисципліни «Фізика» і «Без­ перервна математика» використовуються в деяких застосуваннях, але вони менш важливі, ніж вказані;

- створює: інструменти;

- працює дисциплінованим і систематичним чином;

- працює в колективах разом з іншими фахівцями, розвиваючи навички взаємин колективної роботи;

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

- постійно поповнює свої знання, освоюючи нові методи, техніку і технології;

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

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

Розділ 2. КУЛЬТУРНИЙ АСПЕКТ ІНЖЕНЕРІЇ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

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

2.1. Культура інженерії програмного забезпечення

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

- чіткими організаційними цілями;

- зобов'язанням менеджменту вести організацію до досягнення встановлених цілей;

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

- вимірюваннями, що дають змогу добирати ефективні процеси. Будь-яка «здорова» культура повинна містити три істотні компоненти:

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

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

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

На рис. 2.1 показано, як культура інженерії програмного забезпечення пов'язана з цілями, пріоритетами і технічною практикою розробки програмного забезпечення [25]. Культура інженерії програмного забезпечення визначає якісний рівень дій, процесів і технічних можливостей організації, задає проектні цілі і можливості організації. Рівень проектних цілей залежить від того технічного досвіду, який нагромоджено в організації. Чим більший цей досвід, тим вищі проектні цілі і тим краще відповідне програмне забезпечення здатна створювати організація. Технічний досвід, очевидно, впливає на загальну культуру організації і чим він більший, тим вища культура (А). Культура організації є, з одного боку, основою для діяльності кожного розробника, а з іншого - культура організацій буде тим вища, чим вища культура кожного розробника (В). Нарешті, культура інженерії програмного забезпечення допомагає встановлювати пріоритети менеджменту. Очевидно, вищі пріоритети менеджменту визначають (підсилюють) загальну культуру організації (С).

Вступ до інженерії програмного забезпечення. Иллюстрация № 4

Рис. 2.1. Зв'язок культури з організацією

Сьогодні відомо декілька моделей культур організацій. Найвідоміші з них: Константіноса та Де Грака. Модель Константіноса розглядає чотири організаційні парадигми:

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

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

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

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

Модель Де Грака розглядає дві організаційні парадигми, які називаються римським і грецьким шляхами розвитку організацій (табл. 2.1), Де Грак вказує, що римський шлях характерний для старих, крупних і консервативних організацій, а грецький - для нових, середніх і малих мобільних організацій (ательє).

Таблиця 2.1

Вступ до інженерії програмного забезпечення. Иллюстрация № 5

Р. Гласс (R.Gluss) додає «варварську» культуру для найменш цивілізованих, малих програмних ательє, порівнюючи її з грецькою і римською культурами таким чином:

- греки організовують речі, римляни - людей, варвари організовують «що-небудь»;

- у греків методології неформальні, у римлян - формальні, у варварів - відсутні;

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

- греки мотивуються «підручною» проблемою, римляни - груповими цілями, варвари - героями;

- греки мінімізують документацію, римляни максимізують її, варвари гордяться її відсутністю;

- греки працюють у маленьких групах, римляни - у великих, варвари - поодинці;

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

- греки - демократи, римляни - імперіалісти, варвари - анархісти;

- греки - емпірично-індуктивні, римляни - аналітично-дедуктивні, варвари - емоційні;

- греки - інтуїтивні, римляни - логіки, варвари - імпульсні;

- греки надають увагу субстанції, римляни - формі, варвари - лініям коду;

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

Нині для оцінювання культури персоналу розроблено кодекс стики інженера програмного забезпечення, а для оцінювання рівня зрілості культури організацій використовується широко відома модель, розроблена в SEI. Capability Maturity Model (СММ) і її подаль­ ший розвиток СММ1 (Integrity).

2.2. Моделі зрілості процесів, що відбуваються на підприємстві

Процес програмного