Software Engineering, 7th edition. Chapter 28

Download Report

Transcript Software Engineering, 7th edition. Chapter 28

Усъвършенстване на процеса
Software Engineering, 7th edition. Chapter 28
Slide 1
Цели




Да обясни принципите за
усъвършенстване на софтуерния процес
Да обясни как факторите на софтуерния
процес влияят в/у качеството на софтуера
и продуктивността.
Да обясни как се разработват прости
модели на софтуерния процес
Да обясни понятието способност на
процеса и CMMI модела за
усъвършенстване на процеса
Software Engineering, 7th edition. Chapter 28
Slide 2
Основни теми






Качество на процеса и продукта
Класификация на процесите
Измерване на процесите
Анализ и моделиране на процесите
Промяна на процеса
Модел CMMI за усъвършенстване на
процеса
Software Engineering, 7th edition. Chapter 28
Slide 3
Усъвършенстване на процеса



Разбиране на съществуващите процеси и
правене на промени, ц цел подобряването
на качеството на продукта, намаляване на
разходите и ускоряване на разработката.
Повечето подобрения на процеса досега
се отнасяха до намаляване на дефектите,
което отразява повишеното внимание към
качеството.
Но и другите х-ки на процеса трябва да са
обект на подобрение.
Software Engineering, 7th edition. Chapter 28
Slide 4
Характеристики на процеса
Характеристики
на процеса
Описание
Яснота
До каква степен е процесът е явно дефиниран и колко лесно е да се
разбере тази дефиниция?
Видимост
Дали дейностите на процеса дават ясни резултати и дали
развитието може да се наблюдава?
Възможност за
употреба на
средства
До каква степен може да се използва CASEза поддръжка на
дейностите на процеса?
Приемливост
Дали
процесът е приемлив и се използва от инженерите,
отговорни за разработката на софтуерния продукт?
Надеждност
Дали процесът е замислен по такъв начин, че се избягват грешките
в него или се улавят преди да прераснат в дефекти на продукта.
Робастност
Може ли процесът да
непредвидени проблеми?
Леснота за
поддържане
Може ли процесът да еволюирам за да отрази промяна в
организационните изисквания или одобрени подобрения?
Скорост
Колко бързо може да се разработи продукт, след като са дадени
спецификациите му?
продължи
и
при
възникване
Software Engineering, 7th edition. Chapter 28
на
Slide 5
Цикъл на усъвършенстване на
процеса
Измерване
Промяна
Анализ
Software Engineering, 7th edition. Chapter 28
Slide 6
Етапи на цикъла на
усъвършенстване

Измерване на процеса
•

Анализ на процеса
•

Измерват се х-ките на текущия процес, Те
служат за основа на оценката на
подобренията
Оценява се текущия процес и се
идентифицират тесните места и
слабостите.
Промяна на процеса
•
Правят се промените, нуждата от които е
установена по време на анализа.
Software Engineering, 7th edition. Chapter 28
Slide 7
Процесът и качеството на продукта




Процесът и качеството на продукта са тясно
свързани и по тази причина се оправдава
усъвършенстването на процеса.
За производството на добър продукт се изисква
добър процес.
За промишлените стоки процесът е определящ
за качеството.
При проектирането са нужни и други качества,
особено компетентността на проектантите.
Software Engineering, 7th edition. Chapter 28
Slide 8
Основни фактори за качеството на
продукта
Технология на
проектирането
Качество на
процеса
Качество на
продукта
Качество
на хората
Разходи, време
и разписание
Software Engineering, 7th edition. Chapter 28
Slide 9
Фактори на качеството




За големи проекти с хора със “средни”
възможности, процесът на разработка е
определящ за качеството на продукта
За малки проекти определящи са
възможностите на хората.
Технологията на разработка е от значение
при малки проекти.
Във всички случаи, нереалистичното
разписание влошава качеството.
Software Engineering, 7th edition. Chapter 28
Slide 10
Класификация на процесите

Неформални
•

Управляван процес
•

Определя се модел на процеса, който води
разработката.
Методичен
•

Няма подробен модел на процеса. Екипът сам
определя начина на работа.
Процес поддържан от някой метод за разработка като
RUP (Rational Unified Process)
Поддържан
•
Процес, поддържан от някое CASE средство.
Software Engineering, 7th edition. Chapter 28
Slide 11
Приложимост на процесите
Неформален
процес
Управляван
процес
Управляван
процес
Прототипи
С-ми с къс живот
4GL бизнес с-ми
Малки/средни с-ми
Големи с-ми
Управляван процес
Продукти с дълъг живот
Добре познати области
на приложение
Преработвани с-ми
Software Engineering, 7th edition. Chapter 28
Slide 12
Избор на процес

Използваният процес трябва да се избере в
зависимост от типа на разработвания продукт.
•

Основният проблем за големите с-ми е обикновено
управлението, затова се използва стриктно
управляван процес.
Няма универсален процес, който да се
стандартизира за дадена организация.
•
•
Ако се наложи неподходящ процес на екипа,
разходите могат да се увеличат.
Неподходящите методи може да увеличат разходите и
да влошат качеството.
Software Engineering, 7th edition. Chapter 28
Slide 13
Средства за поддръжка на проекта
Software Engineering, 7th edition. Chapter 28
Slide 14
Измерване на процеса

При всяка възможност трябва да се събират
количествени данни за процеса.
•

Но когато не са дефинирани ясни стандарти за
процеса, не се знае какво да се мери. Процесът може
да се определи преди да е възможно каквото и да е
измерване.
Измерването трябва да се използва за оценка на
подобренията
•
Но това не означава, че измерванията трябва да
предизвикат измененията. Причината за измененията
трябва да са цели на организацията.
Software Engineering, 7th edition. Chapter 28
Slide 15
Класове измервания

Времето за изпълнение на дейностите на
процеса
Напр. Календарното време или усилията за
извършване на дейност или процес

Ресурси нужни за процесите или
дейностите
Напр. Пълното усилие в човеко-дни.

Брой на настъпвания на специфично
събитие
Напр. Брой открити дефекти
Software Engineering, 7th edition. Chapter 28
Slide 16
Парадигма Цели-Въпроси-Метрика

Цели
Какво се опитва да постигне организацията?
Целта на усъвършенстването е постигането
на тези цели.

Въпроси
Въпроси относно областите на несигурност,
свързани с тези цели. Има нужда от познания
за процеса , за да им се отговори.

Метрика
Измерванията, които трябва да се направят, за
да се получат отговорите.
Software Engineering, 7th edition. Chapter 28
Slide 17
Анализ и моделиране на процеса

Анализ на процеса
Изучаване на съществуващите процеси, за да се
разбере връзките м/у частите на процеса и
да се сравнява с други процеси.

Моделиране
•
•
Документира на процеса като записва
задачите, ролите и използваните обекти.
Моделите на процеса могат да бъдат
представени от различни ъгли.
Software Engineering, 7th edition. Chapter 28
Slide 18
Анализ и моделиране на процеса



Изучи един съществуващ процес, за да разбереш
дейностите му.
Изработи абстрактен модел на процеса.
Обикновено той се представя графично. Може да
са нужни различни изгледи (напр. дейности,
компоненти и др.).
Анализирай модела, за да откриеш проблемите в
процеса. Това включва разисквания на
дейностите с поръчителите, определяне на
проблемите и възможните промени в процеса.
Software Engineering, 7th edition. Chapter 28
Slide 19
Техники за анализ на процеса

Публикуване на моделите и стандартите на
процесите
Винаги е добре да се започне от съществуващ модел. Той
може да бъде променен и разширен

Въпросници и интервюта
Трябва добре да се обмислят. Участниците могат да
казват това, което мислят че искате да чуете.

Етнографски анализ
Включва придобиване на знания за процеса чрез
наблюдение. По-добре за обстоен анализ на
фрагменти, отколкото общо разбиране на процеса.
Software Engineering, 7th edition. Chapter 28
Slide 20
Елементи на модела на процеса 1
Дейност
(показва се като заоблен
правоъгълник без сянка)
Една дейност има ясно определена цел, входно и изходно
условие. Примери за дейности е приготвяне на набор от
тестови данни за тест на модул, кодиране на функция или
модул, одобряване на документ и др. Обикновено дейността е
атомарна, т.е е отговорност на една личност или група и не се
декомпозира на поддейности.
Процес
(показва се като заоблен
правоъгълник със сянка)
Процесът е набор от дейности, които са свързани помежду си и
чиито цели са съгласувани в организацията. Примери – анализ
на изискванията, архитектурен проект, планиране на тестовете
и др.
Продукт
(показва се като
правоъгълник със сянка)
Продуктът е осезаем изход от една дейност, предсказан от
плана на проекта.
Условие
(показва се като ромб)
Това е или пред-условие, което трябва да се изпълни преди
стртиранети на дейността или процеса, или пост-условие, което
се изпълнява след завършването на дейността или процеса.
Software Engineering, 7th edition. Chapter 28
Slide 21
Елементи на модела на процеса 2
Роля
(показана като кръг със
сянка)
Ролята е област на отговорност. Примери – мениджър на
конфигурацията, инженер по тестовете, софтуерен проектант и
др. Една личност може да има няколко роли и една роля може
да е асоциирана с няколко личности.
Изключение
(не е показана в
примерите, но се чертае
като двойно рамкиран
правоъгълник)
Изключение е описание, как да се измени процесът, ако
настъпи очаквано или неочаквано събитие. Изключенията са
често неопределени и остава изобретателността на инженерите
и мениджърите да се справя с тях.
Връзка
(показана като стрелка)
Обмен на информация м/у хората или м/хората и компютърната
с-ма. Тези връзки може да са формални и неформални.
Формалните може да са одобрение на даден продукт от
мениджъра. неформалните може да са размяната на имейли, за
да се отстранят двусмислици в документ.
Software Engineering, 7th edition. Chapter 28
Slide 22
Дейност по тестване на модул
Software Engineering, 7th edition. Chapter 28
Slide 23
Дейности в тестването на модули
Software Engineering, 7th edition. Chapter 28
Slide 24
Изпълнение на процеса

Софтуерните процеси са сложни и техните
модели не могат ефективно да представят
обработката на изключенията.
•
•
•
•

Няколко основни фигури се разболяват преди важен
преглед.
Случва се пробив в сигурността, което означава
прекъсване на всички външни връзки за няколко дни.
Реорганизация в организацията.
Нужда да се отговори на искане за ново предложение
При тези обстоятелства, моделът се прекъсва и
мениджърите използват инициативата си, за да
се справят с изключението.
Software Engineering, 7th edition. Chapter 28
Slide 25
Промяна на процеса


Извършват се модификации на
съществуващ процес.
Те могат да бъдат:
•
•
•
•

Въвеждане на нови практики, методи или
процеси;
промяна на реда на дейностите в процеса;
Въвеждане или премахване на продукти;
Въвеждане на нови роли или отговорности.
Промените трябва да са предизвикани от
цели, които могат да се измерват
Software Engineering, 7th edition. Chapter 28
Slide 26
Процес за промяна на процеса
Software Engineering, 7th edition. Chapter 28
Slide 27
Етапи при промяна на процеса





Идентификация на усъвършенстването
Даване на приоритети на промените
Въвеждане на промените
Обучение за промените
Настройка на промените
Software Engineering, 7th edition. Chapter 28
Slide 28
CMMI структура



CMMI структурата е текущото състояние на
работата по оценката и усъвършенстването на
процесите. Тази работа започна в Software
Engineering Institute през 1980 г.
Мисията на SEI да съдейства за трансфера
софтуерни технологии най-вече за контракторите
на US отбраната.
Той има значително влияние за усъвършенстване
на процеса.
•
•
Capability Maturity Model разработен през 90-те години
Revised maturity framework (CMMI) разработена през
2001
Software Engineering, 7th edition. Chapter 28
Slide 29
Оценка на възможностите на
процеса



Замислен да оцени до каква степен
процесите на организацията следват найдобрите практики.
Създаването на методи за оценка дава
възможност да се намерят слабите места
за подобряване на процеса.
Има различни методи за оценка на
процеса и модели за усъвършенстване,
работите на SEI са най-известни.
Software Engineering, 7th edition. Chapter 28
Slide 30
Модел за оценка на възможностите на
SEI (capability maturity model)

Начално ниво
•

Повторяемо
•

Дефинирани и използвани процедури и стратегии за
управление на процеса
Управлявано
•

Дефинирани и използвани процедури за управление
на продукта
Дефинирано
•

Общо взето неконтролиран
Дефинирани и използвани стратегии за управление на
качеството
Оптимизиращо
•
Дефинирани и използвани стратегии за
усъвършенстване на процеса
Software Engineering, 7th edition. Chapter 28
Slide 31
Проблеми на CMM

Практики свързани с нивата на моделите
Компаниите могат да използват едновременно практики от
различни нива, но за да се мине на ново ниво трябва
да се използват всички практики на по-ниското ниво.

Дискретно, а не непрекъснато
Не са прави разлика м/у различните степени на
изпълнение на едно ниво.

Ориентиран към практиките
Занимава се с това, как се извършват нещата (практики), а
не с целите, които се постигат.
Software Engineering, 7th edition. Chapter 28
Slide 32
Моделът CMMI


Интегриран модел за способностите,
който включва както оценка на софтуера,
така и на способностите на системния
инженеринг
Моделът има 2 реализации:
•
•
Дискретен, при който моделът се изразява в
термините на нивата на способностите.
Непрекъснат, при който се изчислява
степента на способността,
Software Engineering, 7th edition. Chapter 28
Slide 33
Компоненти на CMMI модела

Области на процеса
•

Цели
•

Определени са 24 области, релевантни на
способностите на процеса и подобренията. Те са
разделени в 4 групи.
Целите са описания на желани организационни
състояния. Към всеки процес се асоциира цел.
Практики
•
Практиките са начини за постигане на целите – но те
са пожелателни и могат да се използват и други
подходи.
Software Engineering, 7th edition. Chapter 28
Slide 34
CMMI области на процеса 1
Управление на процеса
Дефиниране на процеса в организацията
Фокус на процеса в организацията
Обучение в организацията
Ефективност на организационния процес
Иновация и диплоймънт
Управление на проекта
Планиране на проекта
Мониторинг и контрол на проекта
Управление на преговорите с доставчиците
Интегрирано управление на проекта
Управление на риска
Управление на подбора на екипите
Количествено управление на проекта
Software Engineering, 7th edition. Chapter 28
Slide 35
CMMI области на процеса 2
Разработка
Управление на изискванията
Управление на разработката
Технически решения
Интегриране на продукта
Верификация
Валидация
Поддръжка
Управление на конфигурацията
Управление на качеството на продукта и
процеса
Измерване и анализ
Анализ на решенията и взимане на решения
Организационна среда за интеграция
Анализ на причините и взимане на решения
Software Engineering, 7th edition. Chapter 28
Slide 36
CMMI цели
Цел
Област от процеса
Извършване на коригиращи действия, когато
изпълнението на проекта или резултатите се
отклоняват значително от плана.
Специфична цел от
Мониторинг и контрол на
проекта.
Наблюдава се ефективността и напредъка е се
сравнява с плана
Специфична цел от
Мониторинг и контрол на
проекта.
Анализират се и се валидират изискванията и
се разработва дефиниция на исканата
функционалност
Специфична цел на
разработката на
изискванията
Систематично се определят основните
причини за дефектите и другите проблеми.
Специфична цел в анализа
на причините и
разрешаването им.
Процесът е институционализиран като
дефиниран (стандартизиран) процес
Обща цел
Software Engineering, 7th edition. Chapter 28
Slide 37
CMMI практики
Практика
Асоциирана цел
Анализират се извлечените изисквания и се
вижда дали те са необходими и достатъчни.
Анализират се и се валидират
изискванията и се разработва
дефиниция на исканата
функционалност
Валидират се изискванията, за да се уверим, че
продуктът юе се държи както е замислено в
средата на потербителя, като се използват много
подходящи техники.
Отбелязват се дефектите и други проблеми за
анализ.
Провежда се анализ за причините за тези дефекти
и проблеми и се предлагат дейности за
решаването им.
Установява се и се поддържа организационна
политика на планиране и извършване на процеса
за разработка на изискванията.
Систематично се определят
основните причини за дефектите и
другите проблеми.
Процесът е институционализиран
като дефиниран (стандартизиран)
процес
Определят с еотговорностите и ръководството за
изпълнение на процеса, разработката на
работните продукти и предлагане на услуги за
разработката на изискванията.
Software Engineering, 7th edition. Chapter 28
Slide 38
CMMI оценка


Изследва процесите използвани в
организацията и оценява тяхната зрелост.
Основава се на 6-точкова скала:
•
•
•
•
•
•
Неизпълнена;
Изпълнена;
Управлявана;
Дефинирана;
Количествено управлявана;
Оптимизираща;
Software Engineering, 7th edition. Chapter 28
Slide 39
Дискретен CMMI модел


Сравним със софтуерния CMM.
Всяко ниво на зрелост има области на процеса и
цели. Например областта на процеса свързан с
управляваното ниво включва:
•
•
•
•
•
•
Управление на изискванията;
Планиране на проекта;
Мониторинг и контрол на проекта;
Управление на доставките;
Измерване и анализ;
Осигуряване на качеството на процеса и продукта.
Software Engineering, 7th edition. Chapter 28
Slide 40
Дискретен CMMI модел
Software Engineering, 7th edition. Chapter 28
Slide 41
Институционални практики
Институциите, работещи на управлявано
ниво, трябва да имат
институционализирани практики, които се
подготвят за стандартизация
•
•
•
•
Установява и поддържа политика за
изпълнение на процеса на управление на
проекта.
Осигурява адекватни ресурси за изпълнение
на горния процес.
Наблюдава и контролира процеса на
планиране.
Рецензира дейностите, състоянието и
резултатите от планирането.
Software Engineering, 7th edition. Chapter 28
Slide 42
Непрекъснат CMMI модел




Това е по-фин модел, който разглежда
индивидуалните или групи от практики и оценява
тяхното използване.
Оценката за зрелост не е една стойност, а
последователност от стойности, показвайки
зрелостта на организацията във всяка област.
ЦММИ оценява всяка област на процеса с нива
от 1 до 15.
Предимството на този подход е, че
организацията може да подбере области, които
да усъвършенства съгласно нуждите си.
Software Engineering, 7th edition. Chapter 28
Slide 43
Профил на способностите на
процеса
Project mon ito rin g
an d co ntrol
Sup plier ag reemen t
man ag emen t
Risk
man ag emen t
Con fig uration
man ag emen t
Req uiremen ts
man ag emen t
Verification
Validatio n
1
2
3
4
5
Software Engineering, 7th edition. Chapter 28
Slide 44
Обобщение




Усъвършенстването на процеса включва анализ
на процеса, стандартизация, измерване и
промяна.
Процесите могат да бъдат класирани като
неформални, управлявани, методични и
подобряващи се.
Цикълът на усъвършенстване съдържа
измерване, анализ и промяна на процеса
Измерването на процеса трябва да отговори на
специфични въпроси, основани на целите на
организацията.
Software Engineering, 7th edition. Chapter 28
Slide 45
Обобщение




Трите типа мерки използвани в измерванията са
време, използване на ресурсите и събития.
Моделите на процеса съдържат описание на
задачи, дейности, роли, изключения, комуникации,
резултати и други процеси.
CMMI моделът за зрелост на процеса интегрира
усъвършенстването на софтуерния процес и на
системния инженеринг.
Процесът на усъвършенстване в CMMI модела се
базира на набор от цели свързани с добрите
практики на софтуерното инженерство.
Software Engineering, 7th edition. Chapter 28
Slide 46