Professional Documents
Culture Documents
Модели на процеси
за развој на софтвер
Софтверско инженерство
Проф. д-р Дејан Ѓорѓевиќ
ФИНКИ, 2017
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО
СОФТВЕРСКО ИНЖЕНЕРСТВО 2
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО
СОФТВЕРСКО ИНЖЕНЕРСТВО 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
биде продуциран,
quality assurance points
project milestones
проверките и граничниците
на основа на кои ќе се
framework activity # n
software engineering action# n.1
work tasks
проценува прогресот
Task sets work products
quality assurance points
project milestones
СОФТВЕРСКО ИНЖЕНЕРСТВО 5
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО
СОФТВЕРСКО ИНЖЕНЕРСТВО 6
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО
Тек на процес
Опишува како се поставени рамковните активности, акции и
задачи и ги моделира нивните меѓусебни релации во рамките
на процесот (како се организирани во од аспект на секвенца и
време)
Линеарен процесен тек - ги извршува рамковните активности
во редоследен секвенцијален редослед (почнувајќи со
комуницирање и завршувајќи со испорака)
Итеративен процесен тек ги повторува една или повеќе од
активностите пред да премине на следна
Еволутивен поцесен тек ги извршува активностите во
повторувачки циркуларен тек, испорачувајќи покомплетна
верзија на софтверот со секое поминување низ циклусот
Паралелен процесен тек извршува една или повеќе активности
паралелно (симултано) со другите активности
СОФТВЕРСКО ИНЖЕНЕРСТВО 7
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО
СОФТВЕРСКО ИНЖЕНЕРСТВО 8
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО
Communication
Increment
Deployment Construction
released
Modeling Time
Construction Deployment
СОФТВЕРСКО ИНЖЕНЕРСТВО 9
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО
Групи на задачи
Секоја акција поврзана со некоја од
рамковните активности на софтверското
инженерство може да биде претставенa со
одредена група на задачи
Малите проекти (со еден инволвиран) не
бараат групи на задачи кои се сложени и
детални како задачите кај комплексните тим-
ориентирании проекти
Групите на задачи се прилагодуваат кон
специфичните потреби на конкретниот
софтверски проект и карактеристиките на
проектниот тим
СОФТВЕРСКО ИНЖЕНЕРСТВО 10
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО
За едноставен проект
За едноставен проект активноста
комуникација може да се сведе на:
1. Контакт по телефон со засегнатиот
2. Дискусија околу барањата и прибелешки
3. Организација на прибелешките во куса
пишан текст за барањата
4. Испраќање на текстот по електронска
пошта до засегнатата страна на
одобрување
СОФТВЕРСКО ИНЖЕНЕРСТВО 11
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО
За сложени проекти
За посложени проекти со повеќе засегнати
страни активноста комуникација може да
вклучува повеќе конкретни акции како:
inception - почеток, зачнување
elicitation - „изнудување“, прибирање на барања
elaboration - елаборација (обработка)
negotiation - преговарање
specification - спецификација, и
validation - валидација, проверка
СОФТВЕРСКО ИНЖЕНЕРСТВО 12
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО
Акции и задачи
Секоја акција може да биде
претставена со повеќе групи на задачи
секоја составена од работни задачи,
работни продукти, проверка на
квалитет, граничници, ..., соодветно
избрани според природата на проектот
и карактеристиките на тимот.
Пр. Requirements gathering
СОФТВЕРСКО ИНЖЕНЕРСТВО 13
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО
СОФТВЕРСКО ИНЖЕНЕРСТВО 14
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО
СОФТВЕРСКО ИНЖЕНЕРСТВО 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
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО
СОФТВЕРСКО ИНЖЕНЕРСТВО 20
Процес на развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО
Материјали:
Roger S. Pressman, Software Engineering: A
Practitioner’s Approach, 7th edition, McGraw-Hill,
2010.
Chapter 2: Process Models (pg. 30-64)
СОФТВЕРСКО ИНЖЕНЕРСТВО 22
Модели на процеси за развој на софтвер
ФАКУЛТЕТ ЗА ИНФОРМАТИЧКИ НАУКИ
И КОМПЈУТЕРСКО ИНЖЕНЕРСТВО
СОФТВЕРСКО ИНЖЕНЕРСТВО 23