You are on page 1of 22

ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Модели на процеси
за развој на софтвер

Софтверско инженерство
Проф. д-р Дејан Ѓорѓевиќ
ФИНКИ, 2017
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Модели на процеси за развој


на софтвер
 Процесот кој ја обезбедува рамката за практикување на
софтверското инженерство
 Што е софтверски процес (процес за развој на софтвер)
 Кои се генеричките рамковни активности присутни во секој
софтверски процес
 Како се моделираат процесите и што се процесни шаблони
(модели)
 Кои се пропишани процесни модели и кои се нивните предности
и недостатоци
 Што значи агилноста за модерното софтверско инженерство
 Што е агилно софтверско инженерство и како се разликува од
традиционалните процесни модели

СОФТВЕРСКО ИНЖЕНЕРСТВО 2
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Генеричка процесна рамка


Паралелни активности:
 Комуницирање •Следење и контрола
•Менаџирање на ризици
 Планирање •Проверка на квалитет
 Моделирање •Формални технички прегледи
•Measurement
 Конструкција •Менаџирање на ефектите на
 Употреба промена
•Менаџирање за повторна
употреба
•Подготовка и продукција на
документи

СОФТВЕРСКО ИНЖЕНЕРСТВО 3
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Process framework
Software process
Process framework
 Секоја акција е
дефинирана со множество
Umbrella activities
framework activity # 1
software engineering action# 1.1
work tasks
work products
на задачи кои ги опишува
работите кои треба да се
Task sets
quality assurance points
project milestones

завршат, продуктот кој ќе


software engineering action# 1.k
work tasks
Task sets work products

биде продуциран,
quality assurance points
project milestones

проверките и граничниците
на основа на кои ќе се
framework activity # n
software engineering action# n.1
work tasks

проценува прогресот
Task sets work products
quality assurance points
project milestones

software engineering action# n.m


work tasks
Task sets work products
quality assurance points
project milestones

СОФТВЕРСКО ИНЖЕНЕРСТВО 5
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Модели на процеси за развој на


софтвер
 За да ги реши актуелните проблеми,
софтверскиот инженер (или тим) мора да
примени стратегија за развој која ги опфаќа
нивоата на процесот, методите и алатките
како и генеричките фази во развојот на
софтвер. Оваа стратегија е наречена модел
на процес (за развој на софтвер) или
парадигма на софтверското инженерство.
 Изборот на моделот зависи од природата на
проектот или апликацијата, методите и
алатките кои ќе се користат како и резултатот
кој се очекува

СОФТВЕРСКО ИНЖЕНЕРСТВО 6
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Тек на процес
 Опишува како се поставени рамковните активности, акции и
задачи и ги моделира нивните меѓусебни релации во рамките
на процесот (како се организирани во од аспект на секвенца и
време)
 Линеарен процесен тек - ги извршува рамковните активности
во редоследен секвенцијален редослед (почнувајќи со
комуницирање и завршувајќи со испорака)
 Итеративен процесен тек ги повторува една или повеќе од
активностите пред да премине на следна
 Еволутивен поцесен тек ги извршува активностите во
повторувачки циркуларен тек, испорачувајќи покомплетна
верзија на софтверот со секое поминување низ циклусот
 Паралелен процесен тек извршува една или повеќе активности
паралелно (симултано) со другите активности

СОФТВЕРСКО ИНЖЕНЕРСТВО 7
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Процесни модели (1)

Communication Planning Modeling Construction Deployment

(a) Linear process flow

Communication Planning Modeling Construction Deployment

(b) Iterative process flow

СОФТВЕРСКО ИНЖЕНЕРСТВО 8
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Процесни модели (2)


Planning
Modeling

Communication

Increment
Deployment Construction
released

(c) Evolutionary process flow


Communication Planning

Modeling Time

Construction Deployment

(d) Parallel process flow

СОФТВЕРСКО ИНЖЕНЕРСТВО 9
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Групи на задачи
 Секоја акција поврзана со некоја од
рамковните активности на софтверското
инженерство може да биде претставенa со
одредена група на задачи
 Малите проекти (со еден инволвиран) не
бараат групи на задачи кои се сложени и
детални како задачите кај комплексните тим-
ориентирании проекти
 Групите на задачи се прилагодуваат кон
специфичните потреби на конкретниот
софтверски проект и карактеристиките на
проектниот тим

СОФТВЕРСКО ИНЖЕНЕРСТВО 10
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

За едноставен проект
 За едноставен проект активноста
комуникација може да се сведе на:
1. Контакт по телефон со засегнатиот
2. Дискусија околу барањата и прибелешки
3. Организација на прибелешките во куса
пишан текст за барањата
4. Испраќање на текстот по електронска
пошта до засегнатата страна на
одобрување

СОФТВЕРСКО ИНЖЕНЕРСТВО 11
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

За сложени проекти
 За посложени проекти со повеќе засегнати
страни активноста комуникација може да
вклучува повеќе конкретни акции како:
 inception - почеток, зачнување
 elicitation - „изнудување“, прибирање на барања
 elaboration - елаборација (обработка)
 negotiation - преговарање
 specification - спецификација, и
 validation - валидација, проверка

СОФТВЕРСКО ИНЖЕНЕРСТВО 12
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Акции и задачи
 Секоја акција може да биде
претставена со повеќе групи на задачи
секоја составена од работни задачи,
работни продукти, проверка на
квалитет, граничници, ..., соодветно
избрани според природата на проектот
и карактеристиките на тимот.
 Пр. Requirements gathering

СОФТВЕРСКО ИНЖЕНЕРСТВО 13
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

За помал не многу сложен проект


Множеството на работни задачи може да биде:
1. Правење листа на засегнати страни во проектот
2. Неформален состанок со засегнатите страни
3. Барање до засегнатите страни да состават листа од
посакувани карактеристики и функционалности
4. Дискусија за барањата и составување на конечна
листа
5. Одредување приоритети на барањата
6. Означување на деловите кои се несигурни

СОФТВЕРСКО ИНЖЕНЕРСТВО 14
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

За голем, сложен проект


Множеството на работни задачи може да биде:
1. Правење листа на засегнати страни во проектот
2. Интервју со секоја од засегнатите страни за да се одредат вкупните потреби и
барања
3. Правење на листа од карактеристики и функционалности на основа на исказите
на засегнатите страни
4. Закажување на серија од состаноци за спецификација на апликацијата
5. Спроведување на состаноците
6. Конструирање на неформални кориснички сценарија како резултат од секој од
состаноците
7. Рафинирање на сценаријата на основа на повратните информации од
засегнатите страни
8. Правење на ревидирана листа од барања на засегнатите страни
9. Одредување на приоритети на функционалностите
10. Пакување на функционалностите за да можат да бидат испорачувани
инкрементално
11. Обележување на ограничувањата кои се поставени на системот
12. Дискусија околу методите за валидација на системот

СОФТВЕРСКО ИНЖЕНЕРСТВО 15
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Шаблони
 Задачите во рамките на акција може да
се изберат соодветно на специфичните
потреби според типот на проектот,
клиентот, тимот, ...
 Шаблони
 Pattern Name, Forces, Type (stage, task,
phase), Initial context, Problem, Solution,
Resulting Context, Related Patterns, Known
Uses and Examples

СОФТВЕРСКО ИНЖЕНЕРСТВО 16
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Process Pattern
Шаблон за процесни шаблони
 Pattern Name – пр. TechnicalReviews
 Forces – околина во која се сретнува
 Type
1. Stage pattern – дефинира проблем поврзан со рамковна
или процесн активност (пр. EstablishingCommunication)
2. Task pattern – дефинира проблем поврзан со акција или
работна задача на софтверското инженерство (пр.
RequirementsGathering)
3. Phase pattern - дефинира секвенца на процесни
активности кои се појавуваат во рамките на процесот (пр.
SpiralModel или Prototyping)

СОФТВЕРСКО ИНЖЕНЕРСТВО 17
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Process Pattern
 Initial context – ги опишува предусловите за примена на
шаблонот
 На пр. за Planning (stage pattern) предуслов е да е воспоставена
комуникација, основните барања и огнаничувања за проектот се
познати
 Solution – Опишува како успешно да се имплементира
шаблонот
 Resulting Context – Ги опишува условите кои ќе важат по
успешната примена на шаблонот
 Related Patterns – листа на други процесни шаблони кои се
поврзани со него
 На пр. Communication ги содржи шаблоните ProjectTeam,
CollaborativeGuidelines, ScopeIsolation, RequirementsGathering,
ConstraintDescription и ScenarioCreation.
 Known Uses and Examples

СОФТВЕРСКО ИНЖЕНЕРСТВО 18
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Пример за шаблон
Pattern name. RequirementsUnclear Solution. A description of the prototyping process
Intent. This pattern describes an approach for building a would be presented here and is described later in
model (a prototype) that can be assessed iteratively by Section 2.3.3.
stakeholders in an effort to identify or solidify software Resulting context. A software prototype that identifies
requirements. basic requirements (e.g., modes of interaction,
Type. Phase pattern. computational features, processing functions) is
Initial context. The following conditions must be met approved
prior to the initiation of this pattern: (1) stakeholders have by stakeholders. Following this, (1) the prototype may
been identified; (2) a mode of communication between evolve through a series of increments to become the
stakeholders and the software team has been production software or (2) the prototype may be
established; (3) the overriding software problem to be discarded
solved has been identified by stakeholders; (4) an initial and the production software built using some other
understanding of project scope, basic business process
requirements, and project constraints has been pattern.
developed. Related patterns. The following patterns are related to
Problem. Requirements are hazy or nonexistent, yet this pattern: CustomerCommunication,
there is clear recognition that there is a problem to be IterativeDesign, IterativeDevelopment,
solved, and the problem must be addressed with a CustomerAssessment, RequirementExtraction.
software solution. Stakeholders are unsure of what they Known uses and examples. Prototyping is
want; that is, they cannot describe software requirements recommended when requirements are uncertain.
in any detail.

СОФТВЕРСКО ИНЖЕНЕРСТВО 19
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Process assessment and improvement


 Постоењето на процес за развој на софтвер не е
гаранција за успешен софтвер.
 Проценка дали процесот задоволува одредени
основни критериуми кои праксата покажала дека
есенцијални за успешно софтверско инженерство
 Различни пристапи:
 Standard CMMI Assessment Method for Process Improvement
(SCAMPI)
 CMM-Based Appraisal for Internal Process Improvement (CBA
IPI)
 SPICE (ISO/IEC15504)
 ISO 9001:2000 for Software

СОФТВЕРСКО ИНЖЕНЕРСТВО 20
Процес на развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Capability Maturity Model


 Software Engineering Institute (SEI) развил модел за
изразување на зрелоста на софтверскиот процес кај
различни организации кои практикуваат развој на
софтвер во 5 нивоа според 18 дефинирани KPAs:
 Level 1: Initial – ad hoc & chaotic
 Level 2: Repeatable – основно менаџирање на проект за
следење на трошоци, рокови и функционалност.
Предвидлив успех за проекти слични на веќе изработените +
сé од Level 1
 Level 3: Defined – Софтверскиот процес и за менаџментот и
за инженерските активности е документиран,
стандардизиран и интегриран на ниво на целата
организација + сé од Level 2
 Level 4: Managed – Се вршат детални мерења на
софтверскиот процес и квалитетот на софтверот + сé од
Level 3
 Level 5: Optimizing – Континуирано подобрување на
процесот е овозможено со помош на квантитативни
повратни информации од процесот и тестирање на
иновативни идеи и технологии + сé од Level 4
СОФТВЕРСКО ИНЖЕНЕРСТВО 21
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

Материјали:
 Roger S. Pressman, Software Engineering: A
Practitioner’s Approach, 7th edition, McGraw-Hill,
2010.
 Chapter 2: Process Models (pg. 30-64)

 Roger S. Pressman, Software Engineering: A


Practitioner’s Approach, 5th edition, McGraw-Hill, 2001.
 Pratap P.J. Mohapatra, Software Engineering A Lifecycle
Approach, New Age Publishers, 2010.
 Gary B. Shelly, Harry J. Rosenblatt, Systems Analysis
and Design, 9th edition, Cengage Learning, 2011.

СОФТВЕРСКО ИНЖЕНЕРСТВО 22
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО

СОФТВЕРСКО ИНЖЕНЕРСТВО 23

You might also like