![]() КАТЕГОРИИ: Архитектура-(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. Поняття предметної області SE 2. Процесс розробки ПС як наука 1. Програмна Інженерія ( Software Engineer ing) - наука побудови комп'ютерних програмних систем, що містить у собі теоретичні концепції, методи і засоби програмування, технологію програмування, системи та інструменти їхньої підтримки, сучасні стандарти, зокрема, процеси життєвого циклу, вимірювання, оцінювання якості розробки ПС. Головне призначення програмної інженерії - побудова ПС, починаючи з аналізу предметної області і закінчуючи виготовленням вихідного коду для виконання на комп'ютері. Фундаментальну основу побудови ПС становлять: теорія алгоритмів, математична логіка, теорія обчислень, теорія керування й ін. Колективне розроблення великих програмних проектів обумовило розвиток інженерних, технологічних методів і засобів регламентованого проектування програмних систем із урахуванням організаційних процесів життєвого циклу: інженерія вимог, керування ризиком і якістю, планування і регулювання ресурсів, оцінювання процесів життєвого циклу та показників якості, вартості і строків виготовлення програмного продукту. Програмна інженерія (ПІ) містить у собі методи і засоби керування програмними проектами (планування робіт і регулювання ресурсів), експертне оцінювання проміжних результатів розроблення під час процесів ЖЦ, оцінювання ризику побудови програмної системи і досягнутої для неї якості. Ця дисципліна використовує стандарти (наприклад, ISO/IEC 12207, ДСТУ 9126), що регламентують процеси ЖЦ, інженерію вимог, тестування і забезпечення якості шляхом перевірки показників на процесах ЖЦ і кінцевого продукту для їхнього оцінювання. Інакше кажучи, в програмної інженерії подані питання теоретичної і практичної побудови різних програмних систем для виконання задач з оброблення інформації на комп’ютерах з метою отримання корисних даних. Проектування у ПІ – це конструювання комп'ютерних систем методами та засобами програмування за такими загальними кроками: – опис вимог; – опис специфікацій системи; – розроблення системи; – тестування, оцінка надійності і якості системи. Проектування за цими кроками містить у собі експертні методи оцінки прийняття рішень, змінювання програм і систем, валідацію нових гіпотез, теорію абстрагування, методи трансляції та керування ресурсами виготовлення, розподілення обчислень тощо. Інженерія проектування програмних систем починає діяти, починаючи з формулювання вимог до них, розроблення і супроводу до зняття з експлуатації. До інженерії належать методи оцінки продукту, а саме, розрахунки трудовитрат, обсягу, вартості та якості. Інженерна діяльність у програмуванні на теперішній час за своєю сутністю дуже близька до інженерної конвеєрної діяльності в промисловості, тільки тут готовими «деталями» виступають поки ще не достатньо при промисловому використанні багаторазових програм і систем. На сучасному етапі розвитку базисом інженерії проектування програмних систем стали компоненти повторного використання (reuse), яких достатньо створено у різних областях, і вони подібні до готових деталей в промисловості. Це є фундаментальним для становлення конвеєрного виробництва програмних продуктів, як продуктів промислово-технічного призначення. Характерною ознакою виробництва програмних продуктів стала поява нових категорій фахівців, крім програмістів, а саме, менеджерів, керівників команди розробників, інженерів служби ведення бібліотек, технологів, тестувальників і різного роду контролерів проміжних результатів проектування на процесах ЖЦ. Програмна інженерія відрізняється від традиційної промислової інженерії природою свого продукту, який не відчувається і не матеріалізується в наочний фізичний предмет, а постійно змінюється під час супроводження та при стрімких темпах розвитку комп’ютерних платформ і середовищ. І тому залучення нових категорій спеціалістів зробить представлення віртуальної архітектури програмної системи у кібернетичному вимірі більш якісним і продуктивним. Продуктами виробництва можуть бути: системи обробки даних, системи підтримки прийняття рішень, АСУ, інформаційні системи й ін. Значну роль у становленні програмної інженерії відіграла систематизація накопичених знань у програмуванні, виконана комітетом спеціалістів у галузі інформатики під егідою відомих комп’ютерних організацій IEEE Computer Society і ACM (Association for Computer Machinery). Цей комітет створив (1999 р.– перший варіант, 2001 р. – другий) ядро знань SWEBOK, де наведено визначення предмету програмної інженерії і її тематичних областей (knowledge areas). Одночасно були розроблені стандарти з програмної інженерії, головні серед яких ISO/IEC 12207–життєвий цикл ПЗ і ДСТУ 9126 – якість програмного продукту. Перевод слова «computing», обозначающего обобщенную область знаний, в которую входят информатика, программная инженерия, проектирование аппаратных платформ и прочие дисциплины, так или иначе связанные с информационными технологиями. Это слово можно примерно перевести как «вычислительные науки» или «вычислительная техника», но, к сожалению, оба этих термина слишком узки, т.к. computing включает в себя и науку, и технику, и инженерные дисциплины. От варианта «информационные технологии» тоже пришлось отказаться, так как информационные технологии являются лишь одной из самостоятельных дисциплин в рамках более широкой области знаний под названием computing. В связи с этим мы приняли непростое решение об использовании при переводе транслитерации английского слова, т.е. «компьютинг». Этот перевод не идеален, но позволяет избежать двойственного толкования терминов и потому постепенно входит в употребление среди ИТ-специалистов. Процес інженерії - є мета рівнем, що визначає основні поняття, способи реалізації, оцінювання, вимірювання, дії з керування змінами й удосконалення самого процесу.Для оцінювання й удосконалення процесу програмної інженерії застосовується модель зрілості СММ, яку розроблено Інститутом програмної інженерії SEI (Software Engineering Institute) CLLIA. Ця модель встановлює рівні готовності організації-розробника ПЗ створювати задовільно, середньо, добре і дуже добре програмну продукцію. Поняття рівня готовності визначається наявністю в організації необхідних ресурсів (людських, програмних, технічних і фінансових), стандартів і методик, а також здатністю колективу створювати програмні продукти. Модель СММ має п'ять рівнів. Перший і другий рівні фіксують недостатню готовність виконувати розробку продукту. Третій - п'ятий рівні характеризують певний ступінь готовності, зрілості і здатності фахівців (а, значить, і організації) виготовляти, відповідно, середній, гарний і відмінний продукт. Чим вище рівень зрілості, тим більше вимог ставиться до процесу програмної інженерії, придатного для виконання цілей і задач утворення продукту, що задовольняє користувача. Існують різновиди цієї моделі: СММ - SW (Software) для оцінки зрілості ПЗ, СММІ (СММ Integrated) - для обліку потреб великих державних структур в ПЗ (СІЛА), а також інші моделі, наприклад, Bootstrap - для оцінки зрілості малих і середніх комерційних компаній, стандарт ISO 15504 (Software Process Improvement and Capability) - для удосконалення процесу (наприклад, удосконалювати процес на другому рівні, щоб одержати сертифікат на третій рівень зрілості). Область знань «Процес програмної інженерії (Software Engineering Process)» складається з таких розділів: - концепції процесу інженерії ПЗ (Software Engineering Process Concepts), інфраструктура процесу (Process Infrastructure), - визначення процесу (Process Definition), - оцінки процесу (Process Assessments), - якісний аналіз процесу (Qualitative Process Analysis), - виконання і змінювання процесу (Process Implementation and Change). Концепції процесу інженерії ПЗ - задачі і дії, що зв'язані з керуванням, реалізацією, оцінкою, змінами й удосконаленням процесу або ПЗ. Ціль керування процесом - це створення інфраструктури процесу, виділення необхідних ресурсів, планування реалізації і зміни процесу з метою впровадження його у практику і, нарешті, оцінка переваг від його впровадження у практику проектування ПЗ. Інфраструктура процесу містить у собі ресурси (людські, технічні, інформаційні і програмні), стандарти, методики керування якістю, проектом і структуру колективу розробників ПЗ типу: команда, бригада, експериментальна фабрика (Experimental Factory), каркас виробництва на лінії продуктів (Framework for Product Line Practice) і ін. До основних задач інфраструктури належать керування і комунікації в колективі, інженерні методи виробництва програмного продукту й удосконалення процесу з накопиченим досвідом розробки ПЗ. Визначення процесу ґрунтується на: типах процесів і моделей (каскадна, спіральна, ітераційна й ін.); моделях ЖЦ процесів і засобів, стандартах ЖЦ ПЗ ISO/IEC 12207 і ISO/IEC 15504, IEEE std. 1074 і IEEE std. 1219; методах і нотаціях подання процесів і автоматизованих засобів їх підтримки. Основною метою процесу є підвищення якості одержуваного продукту, поліпшення різних аспектів програмної інженерії, автоматизація і удосконалення процесів. Оцінка процесу проводиться з використанням відповідних моделей і методів оцінки. Наприклад, оцінка потенційної здатності фахівця до розроблення і виконання відповідного процесу, а також оцінювання зрілості процесу, згідно за яким проводиться розроблення ПЗ. Оцінки стосуються також технічних робіт у сфері програмної інженерії, керування персоналом і якості ПЗ. Для цього проводяться експериментальні дослідження середовища, збирання інформації, моделювання, класифікація отриманих помилок і дефектів, а також статичний аналіз недоліків процесу порівняно з існуючими стандартами (наприклад, ISO/IEC 12207) і потенційних аспектів необхідності вдосконалювати процес. Якісний аналіз процесу полягає в ідентифікації і пошуку «слабких місць» у процесі створення ПЗ на початку його функціонування і після експлуатації. Розглядаєтьсядві техніки аналізу: огляд даних і порівняння процесу з основними положеннями стандарту ISO/IEC 12207, збирання даних про якість процесів; аналіз головних причин відмов у функціонуванні ПЗ, відкат назад від точки виникнення відхилення до точки правильної роботи системи для з'ясування причин зміни процесу. На якість результатів проекту і процесу впливають застосовувані інструменти і досвід фахівців. Виконання і зміна процесу. Існує ряд фундаментальних аспектів вимірювань в програмній інженерії, що покладені в основу детальних вимірювань процесу. Оцінка вдосконалення процесу проводиться шляхом встановлення кількісних характеристик процесу і продуктів. Після процесу розгортання ПЗ виконуються обчислення функцій і аналіз отриманих результатів, які можуть застосовуватися при оцінюванні якості, продуктивності, трудовитрат та ін. Якщо результати не задовольняють користувача ПЗ, проводять обговорення і приймають рішення щодо необхідності виправлення ситуації шляхом або внесення зміни у процес, або вдосконалення процесу, а також організаційну структуру і деякі інструменти керування змінами.
Дата добавления: 2015-07-02; Просмотров: 731; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |