Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лекція № 1. Закон Шермана – 1890 Антитрестовский закон в США

Закон Шермана – 1890

  • "Антитрестовский закон" в США.
  • Автор законопроекта сенатор Дж. Шерман.
  • Принят под давлением антимонополистического движения рабочих и фермеров. Объявлял незаконным всякое объединение в форме треста или в иной форме, а также всякое соглашение, направленное на ограничение торговли.
  • На практике закон не препятствовал ни деятельности старых, ни образованию новых трестов.
  • Один из пунктов, предусматривавший судебную ответственность за нанесение ущерба имуществу организации или частного лица, был использован для преследования профсоюзов и борьбы с забастовочным движением.

Длинные волны (большие циклы)

· 40-60 лет

· Автор: Н.Д. Кондратьев 1920-ые

· Причина: период функционирования инфраструктур. Каждая новая волна использует новую технологию.

«Промышленные» («деловые») циклы - среднесрочные

· 7-11 лет

· Автор: Жюгляр – французский экономист

· До начала XX в. Других циклом ученые не наблюдали

· Причина: сфера кредита

Список персоналий:

А.Веспуччи – флорентийский ученый, в 1499 г. доказавший, что «Индия» - новый материк

У.Пенн – (1644 - 1718)

· Английский политический деятель.

· В 1681 получил от короля Карла II Стюарта хартию на право феодального владения значительной территории в Северной Америке, на которой он основал колонию, известную затем под названием "Пенсильвания".

· В управлении колонией принимала участие Ассамблея колонистов; была провозглашена веротерпимость.

Р.Фултон – американский инженер и изобретатель, создатель одного из первых пароходов (1807) и проекта одной из первых подводных лодок.

Э.Сименс – (1816-1892) немецкий инженер, изобретатель, учёный, промышленник, основатель телеграфно-строительной фирмы Siemens, общественный и политический деятель.

Т.Эдисон – (1849-1936) – американских инноватор, основатель первой в истории научно-промышленной лаборатории Менло-Парк, получивший 1008 патентов в США и более 3000 в других странах.

Р.Дизель – (1858-1913) немецкий инженер и изобретатель, создатель дизельного двигателя.

Г.Даймлер – (1834-1900) немецкий инженер, конструктор и промышленник. Разработал совместно с Вильгельмом Майбахом один из первых автомобилей и несколько типов бензиновых двигателей внутреннего сгорания.

К.Бенц – немецкий инженер, пионер автомобилестроения.… Из его фирмы позже образовалась Daimler-Benz AG.

Тема: Вступ у програмну інженерію

План

1. Дисципліни програмної інженерії

 

Ключові поняття: Програмна інженерія (ПІ), предметна область(ПрО), життєвий цикл (ЖЦ), програмна система (ПС), SWEBOK, РМВОК.

 

Короткий виклад теоретичного матеріалу

1.1 Програмна інженерія як наукова дисципліна

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

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

- основні поняття і об'єкти;

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

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

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

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

Надамо загальне визначення цільових об'єктів у ПІ.

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

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

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

Визначення 3. Сімейство систем (Systems family) - сукупність програмних систем із загальним (незмінним для всіх членів сімейства) і керованим (змінним) набором характеристик, що задовольняють визначені потреби прикладної області (домену). Спосіб виготовлення - інженерія домену (Domain Engineering) або конвеєрне виробництво однотипних ПП за єдиною схемою на основі спеціально розроблених базових членів сімейства й інших готових програмних ресурсів (assets) за допомогою базового процесу або автоматизованої лінійки продукту (Product line).

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

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

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

 

 

Рис.1.1 – Сукупність методів програмної інженерії

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

- методи перевірки правильності за формальними процедурами (твердження, вивід, доказ);

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

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

 

1.2 Програмна інженерія як інженерна дисципліна

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

 

 

 

Рис.1.2 – Базові складові інженерної дисципліни

 

 

 

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

- базовий процес ПІ, як стрижень процесної діяльності в організації- розробнику програмного продукту;

- стандарти, як набір регламентованих правил конструювання проміжних артефактів у процесах ЖЦ;

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

- менеджмент проекту (РМВОК) - ядро знань з керування промисловими проектами - набір стандартних процесів, а також принципів і методів планування і контролювання роботами у проекті;

- засоби та інструменти розробки програмних продуктів.

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

Програмну інженерію будемо розглядати з двох точок зору:

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

- як систему керування проектом, якістю і ризиками з використанням правил і положень стандартів ЖЦ, якості та менеджменту проекту.

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

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

Ядро знань SWEBOK - стислий опис концептуальних основ програмної інженерії. Структурно ділиться на 10 розділів (knowledge areas), які умовно можна розкласти за двома категоріями: проектування продукту і інженерна діяльність. Перша категорія - це методи і засоби розробки (формування вимог, проектування, конструювання, тестування, супровід), друга категорія - методи керування проектом, конфігурацією і якістю та базовим процесом організації-розробника.

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

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

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

Засоби, проміжні результати розробки за процесами ЖЦ, а також методики керування різними ресурсами, виконання БП і застосування методів програмування, зберігаються у базі знань проекту (рис.1.3).

 

 

Рис.1.3 – Загальна інфраструктура проекту

Після виконання проекту і отримання досвіду побудови конкретного продукту, базовий процес і його окремі елементи, подані на рис. 1.3, можуть удосконалюватися (доопрацюванням або зміною прийомів, доробкою, змінюванням, додаванням нових засобів) відповідно до вимог стандарту ДСТУ ISO/IEC 15504-7 («Оцінювання процесів ЖЦ ПЗ. Настанови з удосконалення процесу») з метою підвищення рівня можливостей і оцінки потужності процесу.

Готовність всіх видів забезпечення організації-розробника, досконалість виконуваних процесів і якість створеного в ній продукту надають підстави для оцінки зрілості організації або сертифікації процесів виробництва ПЗ. Для оцінювання зрілості може застосовуватися модель зрілості CMM (Capability Maturity Models), запропонована Інститутом програмної інженерії SEI США, або інша модель, наприклад, Bootstrap, Trillium тощо. Модель СММ встановлює рівні зрілості організації щодо створення програмних продуктів. Рівень зрілості визначається наявністю в організації базового процесу усіх необхідних видів ресурсів (у тому числі і фінансових), відповідних стандартів і методик, а також професійних здібностей (зрілості) членів колективу організації, здатних виготовляти програмні продукти в заданий строк і встановленої вартості.

Стандарти ПІ встановлюють технологічно відпрацьований набір процесів зі строго визначеним і регламентованим порядком проведення різних видів робіт з програмної інженерії, зв'язаних з розробленням програмного продукту і оцінюванням його якості, ризику тощо. Стандарти у галузі програмної інженерії регламентують різні напрями діяльності щодо проектування програмних продуктів. Вони стандартизують термінологію і поняття, життєвий цикл, якість, вимірювання, оцінювання продуктів і процесів. Найбільш важливими серед них є стандарт ISO/IEC 12207 «Процеси життєвого циклу програмного забезпечення» (та його дещо застарілий вітчизняний еквівалент ДСТУ 3918-99), серія стандартів ДСТУ ISO/IEC 14598 «Оцінювання програмного продукту», стандарт ДСТУ ISO 15939 «Процес вимірювання», серія стандартів ISO/IEC 15504 «Оцінювання процесів ЖЦ ПЗ», базові стандарти з якості - ISO 9001 «Системи керування якістю. Вимоги», ДСТУ 2844-94, ДСТУ 2850-94, що регламентують різні аспекти забезпечення якості ПП. Серед стандартів, що безпосередньо пов'язані з якістю ПЗ, слід також назвати проект нової серії стандартів ISO/IEC TR 9126 «Програмна інженерія. Якість продукту». У цих стандартах узагальнені знання спеціалістів з технології проектування і інженерних методів керування розробкою, починаючи від встановлення вимог і закінчуючи оцінкою якості продукту і можливою його подальшою сертифікацією.

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

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

Менеджмент проекту - це керування виконанням проекту з використанням теорії керування та процесів ядра знань РМВОК (Project Management body of knowledge). У серії настанов до PMBOK, розроблених

американським Інститутом керування проектами (www.pmi.org), подано положення і правила керування часовим виробничим циклом побудови унікального продукту в рамках проекту, спочатку без урахування рівня комп'ютеризації промисловості (1987р.), а потом і з його врахуванням (2000р.). Ядро знань PMBOK містить у собі опис лексики, структури процесів і областей знань, відображаючи сучасну практику керування проектами в різних областях промисловості. У ньому визначені процеси ЖЦ проекту і головні області знань, згруповані за задачами: ініціація, планування, використання, моніторинг і керування, завершення. Крім того, область знань «інтеграція» визначає прийняття рішень про використання ресурсів у кожний момент виконання проекту і керування загальними задачами проекту.

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

На теперішній час настанови до PMBOK та SWEBOK введені в статус стандартів, а саме: ISO/IEC TR 19759 («Guide to the Software Engineering Body of Knowledge (SWEBOK)) та IEEE Std.1490 «IEEE Guide adoption of PMI Standard. A Guide to the Project Management Body of Knowledge).

6. Засоби та інструменти ПІ. Проектування об'єктів виконується за допомогою сучасних візуальних мов, наприклад UML, мов програмування (С++, Java, Object Pasсal тощо) з використанням відповідних інструментальних середовищ, що містять у собі необхідні мовні перетворювачі і інструменти підтримки різних артефактів ПП, що розробляються. Як засоби їх проектування застосовують діаграми використання, потоків даних, класів, поведінки, а також шаблони, каркаси тощо.

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

У середовищі проектування цільових об'єктів застосовуються сучасні технології і відповідні інструментально-технологічні пакети інструментів (наприклад, технології RUP, MSF та інструменти Rational Rose, Microsoft Visual Studio тощо). Вони містять не тільки інструменти проектування різних типів цільових об'єктів проектів, а й засоби і інструменти керування проектом, зокрема персоналом, планами та якістю продуктів.

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

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

 

1.3 Програмна інженерія як виробнича дисципліна

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

Головна особливість практики у майбутньому - це використання розроблених готових програм і інформаційних ресурсів Інтернету. Доступ до них може здійснити будь-який користувач і одержувати безкоштовно або на комерційній основі готовий програмний ресурс як сервіс. Він може бути одноразово використаний для розв'язання відповідної задачі, або як окрема програма постійного і багаторазового застосування в деякому домені. Сьогодні сформувалися три інженерні підходи до застосування таких готових ресурсів: reusing engineering, application engineering, domain engineering. Вони використовують як готові ресурси повторно використовувані компоненти, засоби і системи. Застосування готових ресурсів, як багаторазово використаного готового продукту, дає значну економію при виробництві з них нових програмних систем і сімейств систем. Усі види компонентів, а саме, КПВ зберігаються в сховищах проекту - репозитарії.

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

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

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

Лінійки продуктів. Технологічні прийоми виробництва програмних продуктів з готових компонентів і програмних систем втілені в так звані лінійки продуктів, що відповідають конвеєрному виробництву програмних продуктів на ринковій основі. Практичні інструменти цього виробництва - SWEBOK, PMBOK і

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

Автоматизація виробництва ПП. Прикладом такого середовища і реалізації в ній інженерного і виробничого підходів до виготовлення програмних продуктів є система Visual Studio Teams Systems фірми Microsoft. У ній реалізована технологія проектування, кодування, тестування та впровадження програмних проектів. У середовищі системи підтримується технологія підбору, розподілу і виконання робіт різними групами спеціалістів. Вони природно мають різні рівні знань і поділяються на чотири категорії. Кожний спеціаліст отримує роботу відповідно до своїх здібностей, починаючи з підготовчої категорії. Перехід в іншу, вищу, кваліфікаційну категорію залежить від якості виконання попереднього завдання з програмування і отриманого досвіду. Спеціалісти, що входять до четвертої категорії, несуть відповідальність за правильність розроблення продукту в цілому в даному середовищі.

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

 

1.4 Дисципліна керування

Базисом цієї дисципліни є класична теорія керування складними системами, сучасний менеджмент проекту та відповідний стандарт IEEE Std.1490 - настанова до ядра знань PMBOK (Project Management Body of Knowledge). Теорія керування, а саме теорія організаційного керування, розроблена академіком В.М. Глушковим. Вона перевірена практикою побудови технологічних процесів у металургійній, суднобудівельній і хімічній промисловостях, а також знайшла впровадження у масове виробництво (зокрема, в АСУ «Львів»).

Теорія керування складними системами мала розвиток і за кордоном, особливо у теорії планування виробництвом. Так, на фірмі «Dupon» з метою планування й складання планів-графіків великих комплексів робіт для модернізації її заводів було розроблено метод CRM (Critical Path Method), базисом якого є графічне представлення робіт і різних видів операцій із зазначенням часу їхнього виконання. Інший метод мережного планування PERT (Program Evaluation and Review Technique) було випробувано при реалізації проекту розроблення ракетної системи «Polaris», що поєднувала близько 3800 підрядників із кількістю операцій понад 60 тис. Застосування цього методу було настільки успішним, що проект було завершено на два роки раніше запланованого терміну. Кожний з цих методів виник у надрах промислового виробництва, адаптований до середовища програмування і став базовим в індустрії програмних продуктів.

Теорія керування і планування відображена в стандарті PMBOK. У ньому визначені процеси ЖЦ проекту і головні області знань, згруповані за задачами: ініціація, планування, використання, моніторинг і керування, завершення. Головна область знань цього ядра - «інтеграція», визначає концепцію керування організаційною діяльністю колективу виконавців проекту, груповану на методах прийняття рішень про ресурси, загальні задачі, служби контролю правильності проекту та вкладання в задану замовником вартість.

Ці базові напрацьовані теорії керування та планування, стандартні положення PMBOK, серії стандартів ISO-9001 з якості та відповідне методичне забезпечення повинні стати основою дисципліни керування в ПІ. Розроблений з цих питань курс навчання буде готувати у ВНЗ майбутніх висококваліфікованих менеджерів проектів та інших фахівців з організаційного керування випуском ПП.

 

1.5 Економічна дисципліна

Економіка ПІ є самостійною дисципліною зі своєю теорією і практикою оцінювання вартісних, часових і експертних показників щодо складання контрактів на створення ПП, прийняття проектних рішень, подання вимог, розроблення архітектури тощо, визначення ризиків проектування за заданими ресурсами, проведення розрахунків за роботи виконавців та отриману якість ПП. Ця дисципліна є найбільш розвинутою з точки зору методів економічних розрахунків у ПІ, а саме, наявних методологій прогнозування розміру ПП ^РА- Function Points Analyses, Feature Points, Mark-H Function Points, 3D Function Points тощо), оцінювання витрат на розроблення ПП за допомогою сімейства моделей COCOMO або інших математичних моделей (Angel, Slim, Seer тощо).

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

Таким чином, наукові, інженерні, виробничі напрями ПІ, дисципліни керування і економіки, а також SWEBOK, СТАНДАРТИ, PMBOK є головними складовими програмної інженерії. Вони зв'язані між собою процесами ЖЦ, методами проектування і керування розробленням програмних проектів. Ключеві моменти з питань вироблення програмних продуктів на процесній і інженерній основі відображено змістовним багатогранником фундаменту ПІ (рис.1.4).

 

 

Рис.1.4 – Базові «кити» програмної інженерії

 

Питання для самоконтролю:

 

1. Охарактеризуйте програмну інженерію як наукову дисципліну?

2. Охарактеризуйте програмну інженерію як економічну дисципліну?

3. Охарактеризуйте програмну інженерію як дисципліну керування?

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

5. Охарактеризуйте програмну інженерію як інженерну дисципліну?


 

Література:

 

1. Лавріщева К.М. Програмна інженерія. – К. – 2008. – 319 с.

2. Бабенко Л.П., Лавріщева К.М. Основи програмної інженерії: Навч.посіб. – К.: Т-во "Знання", КОО, 2001. – 269 с.

3. Иан Соммервилл. Инженерия программного обеспечения, 6-е издание.: Пер. с англ. ―М.:Издательский дом “Вильямс”, 2002.―624 с.

4. Орлов С. Технологии разработки программного обеспечения: Учебник — СПб.: Питер, 2002. — 464 с.: ил.

5. Липаев В.В. Программная инженерия. Методологические основы. Учеб.: Гос.ун-т – Высшая школа экономики. – М.:ТЕИС, 2006. – 608 с.

<== предыдущая лекция | следующая лекция ==>
 | Точки зору на СПТУК
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 423; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.087 сек.