Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
1
Лекция 2
Софтуерен процес
2
Съдържание
• Софтуерен процес – значение и характеристики
• Цели на процеса
• Рамка на софтуерен процес (Process framework)
• Модели на софтуерни процеси – цели и разлики
• Езици за моделиране на процеси (PML)
• Шаблони за описание на софтуерни процеси
3
Процес
• Последователност от стъпки включващи дейности, ограничения и ресурси, които осигуряват постигането на някакъв вид резултат
• Процесът е повече от процедура
– Процесът е съвкупност от процедури, организирани така, че да се изграждат продукти, задоволяващи определени цели и стандарти
4
Характеристики на процес
• Процесът описва всички важни основни дейности
• Процесът използва ресурси, които най-често са ограничени
• Процесът създава междинни и крайни работни продукти
• Процесът може да бъде съставен от подпроцеси, с йерархии и връзки между тях
• Процесът представлява последователност от дейности
• Съществуват входни и изходни критерии за всяка дейност и по този начин е ясно кога започва и кога свършва отделна дейност
• Съществуват ръководни принципи, включително цели на всяка дейност
• Съществуват ограничения за всяка дейност, били те по отношение на ресурсите или на работния продукт, очакван от дейността.
5
Значение на процеса
• Две крайни становища
– Процесът е нищо (Hero tendency)
– Процесът е всичко
6
Основни цели на процеса
• Ефикасност (Effectiveness)
• Възможност за поддръжка (Maintainability)
• Предсказуемост (Predictability)
• Повторяемост (Repeatability)
• Качество (Quality)
• Усъвършенстване (Improvement)
• Проследяване (Tracking)
7
Жизнен цикъл на софтуера и
софтуерен процес
8
Етапи при разработване на софтуер
• Анализ и дефиниране на изискванията
• Проектиране на системата
• Проектиране на програмата
• Писане на програмата
• Тестване на единици (unit testing)
• Интеграционно тестване (Integration testing)
• Тестване на системата
• Доставяне на системата
• Поддръжка
9
Процес-хора-технология
10
Рамка на процес
• Основни дейности (Framework activities) –
малък брой, които са приложими за всички
софтуерни проекти
– Действия (Software engineering actions) – съвкупност от
свързани задачи, която довежда до значителен/важен
работен продукт
• Работни задачи (Work tasks) – изпълняване на част от
работата, която е дефинирана от действието
• Допълнителни дейности (Umbrella activities) –
приложими по време на целия софтуерен процес
11
Основни дейности
• Комуникация (Communication)
• Планиране (Planning)
• Моделиране (Modeling)
• Конструиране (Construction)
• Внедряване (Deployment)
12
Комуникация
• Основната цел е
– събиране и разбиране както на изискванията за
функционалността на софтуера, така и на
ограниченията върху работата и разработването
му.
13
Планиране
• Създава се план за бъдещата работа по разработка на софтуера
• Описват се
– техническите рискове, които трябва да се имат предвид;
– потенциалните рискове;
– необходимите ресурси;
– работните продукти, които ще се произведат; и
– времеви график на работата
14
Моделиране
• Действие Анализ
– Работни задачи
• Събиране на изисквания (Requirements gathering)
• Уточняване (Elaboration)
• Договаряне (Negotiation)
• Специфициране (Specification)
• Валидиране (Validation)
– Работни продукти
• Модел на анализа (Analyses model)
• Спецификация на изискванията
15
Моделиране - 2
• Действие Проектиране
– Работни задачи
• Дизайн на данните (Data design)
• Дизайн на архитектурата (Architectural design)
• Дизайн на интерфейс (Interface design)
• Дизайн на ниво компоненти (Component level
design)
– Работни продукти
• Модел на дизайна (Design model)
• Спецификация на дизайна
16
Конструиране
• Генериране на код
– ръчно или
– автоматично
• Тестване
– тестване на самостоятелни компоненти,
– тестване на интегрираната система от компоненти (тестване на модули, тестване на подсистема и тестване на система) и
– потребителско тестване (бета-тестване)
17
Внедряване
• Софтуерът се предоставя на клиента
• Клиентът оценява продукта
– Забележки
– Препоръки
18
Допълнителни дейности
• Следене и управление на софтуерния продукт (Software product tracking and control)
• Управление на риска (Risk management)
• Осигуряване на качеството (Software quality assurance)
• Формални технически прегледи (Formal technical reviews)
• Измерване (Measurement)
• Управление на софтуерната конфигурация (Software configuration management)
• Управление на повторното използване (Reusability management)
• Подготовка и генериране на работни продукти (Work product preparation and production)
19
Модел на софтуерен процес
• Опростено описание на начина на
разработване на софтуера, представено от
определена гледна точка
20
Цели на моделите на софтуерен
процес
• Формиране на общо разбиране у участниците в разработването на софтуер за дейностите, ресурсите и ограниченията;
• Намиране на несъответствия, излишества и пропуски в процеса от разработващия екип, което от своя страна му помага да подобри процеса;
• Намиране и оценяване на подходящи дейности за постигане на целите на процеса;
• Адаптиране на общ процес към отделна ситуация, в която ще се приложи.
21
Разлики между моделите на процеси
• Моделите на процеси се различават по:
– Общият поток от дейности и задачи и
зависимостите между тях
– Степента до която са дефинирани работните
задачи в рамките на всяка основна дейност
– Степента до която са дефинирани и изисквани
работни продукти
22
Разлики между моделите на процеси
- 2
– Общата степен на детайлност и строгост, с
които процеса е описан
– Степента до която купувачът и другите
заинтересовани лица са включени в проекта
– Степента на автономност, която се дава на
софтуерния екип в проекта
– Степента до която са описани структурата на
екипа и отделните роли
23
Езици за моделиране на процеси
• Език за моделиране на процеси е език,
адаптиран или създаден с цел
представянето на процеси
24
Езици за моделиране на процеси (2)
• Езиците и формализмите за моделиране на процес
се използват за представяне по прецизен и
изчерпателен начин на следните характеристики
на софтуерния процес:
• Дейностите, които трябва да се извършат, за да се
постигнат целите на процеса;
• Ролите на хората, участващи в процеса;
• Структурата и същността на артефактите, които
се създават и поддържат;
• Средствата, които се използват.
25
Класификация на езиците за
моделиране на процеси
• Дескриптивни (логически) – използват правила
или тригери
– Sentinel/Latin
• Мрежово базирани (езици на базата на мрежи) –
представят процесите на базата на мрежи на
Петри
– SPADE, FUNSOFT nets
• Императивни – базирани са на езиците за
програмиране
– APPL/A, JIL
26
Цели на езиците за моделиране на
процеси
• Подпомагане
– разбирането на процеса
– дизайна на процеса
– обучението
– симулирането и оптимизирането на процеса
– поддръжката на процеса.
27
Класификация спрямо степен на
формалност
• Формални PML
– формален синтаксис и семантика
• Полуформални PML
– обикновено имат графично представяне с формален
синтаксис, но не и формална семантика.
• Неформални PML
– няма строго дефинирани правила, а смисълът на
конструкциите идва от реалния опит и употребата им
28
Избор на език за моделиране
• Желани характеристики
– разбираемост,
– простота,
– формалност,
– изразителност,
– гъвкавост,
– възможност за няколко перспективи и изгледи,
– абстракция,
– модулност.
29
Шаблони за описание на процес
30
Шаблони за описание на процес
• Шаблон е описание на общо решение на общ проблем или въпрос, на базата на което може да се извлече детайлно решение на специфичен проблем.
• Шаблони, свързани с разработката на софтуер – шаблони на анализа,
– шаблони на проектирането,
– организационни шаблони,
– шаблони на процес и много други.
• Шаблон на процес е шаблон, който описва доказан, успешен подход и/или последователност от действия за разработване на софтуер
31
Шаблони за описание на процес 2
• Шаблонът на процес представлява структурирано описание на процес, което на практика е метод за описание на важните характеристики на софтуерния процес.
– Важна характеристика на шаблон на процес е, че той описва какво трябва да се направи, а не точни детайли как трябва да се направи.
• Шаблоните могат да бъдат дефинирани на различни нива на абстракция
32
Example of template
• Pattern name
• Intent – the objective of the pattern is described briefly
• Type – Task patterns define a software engineering
action or work task that is part of the process
– Stage patterns define a framework activity for the process.
– Phase patterns define the sequence of framework activities that occur with the process
33
Example of template - 2
• Initial context – the conditions under which the pattern applies
• Problem – the problem to be solved by the pattern
• Solution – the implementation of the pattern
• Resulting Context – the conditions that will result once the pattern has been successfully implemented
• Related Patterns – a list of all process patterns that are directly related to this one
• Known Uses/Examples
34
Обобщение
Всички модели на процеси дефинират:
– Множество от основни дейности
– Съвкупност от задачи, които водят до
завършване на всяка дейност
– Работни продукти, като следствие от задачите
– Множество от допълнителни дейности, които
обхващат целия процес