Процес на разработка на софтуер с използване на UML


Реализацията на софтуерни системи с нарастваща сложност, паралелно от множество екипи от специалисти изисква прилагането на общи стандарти и ефективни методологии за разработка. От появата си през 1997г. до сега Унифицираният език за моделиране – UML™ – се превърна фактически в стандартен „графичен език за визуализиране, специфициране, конструиране и документиране на елементите на една софтуерно-интензивна система“ [OMG]. Сред предимствата на един UML-базиран процес за разработка на софтуер са:

  • Плавен преход между отделните етапи при разработката на софтуерния продукт – от формулирането на изискванията до крайната реализация, чрез използване на междинни модели за анализ и проектиране на архитектурата и поведението на системата, които позволяват всяко изискване да бъде адресирано на подходящото ниво на абстракция;
  • Възможност за ефикасно разширяване на съществуващи модели с цел включване на допълнителни функционални изисквания в една бързо променяща се бизнес среда – проектът може да расте запазвайки ефективна и ясна архитектура;
  • Стандартен графичен език за изразяване и дискусия на идеи, изисквания и проектантски решения, който улеснява комуникацията, особено при паралелна разработка от различни екипи (например при outsorcing на разработката);
  • Един UML-базиран процес за разработка позволява да се настрои количеството и качеството на проектната документация според изискванията на конкретния проект (време, обем, бюджет, нужда от бъдещо разширяване).

Съществуват множество методологии за обектно-ориентирана разработка на софтуер – от така наречените „леки“ и „динамични“ методологии (Agile Methodologies – http://agilemanifesto.org/) от типа на Extreme Programming (XP), Dynamic Systems Development Method (DSDM) и др., до така нар. „тежки“ (heavy-weight) методологии от типа на „Унифициран процес за разработка на софтуер“ (Unified Software Development Process – USDP) предложен от Booch, Jacobson и Rumbaugh [1]. Всички те, в различна степен, дават възможност за реализация на вече изброените предимства от използването на UML в процеса на софтуерна разработка.

Особено внимание в курса се отделя на Unified Software Development Process (USDP), като гъвкав, мащабируем и надежден процес за разработка на софтуер, подходящ за различни по големина проекти и организации, който напълно използва предимствата на графичната нотация на езика UML™.

USDP e базиран върху използването на типични случаи на употреба (use-case based), центриран върху архитектурата (architecture centric), итеративен и инкрементален процес за разработка. Той дефинира четири основни фази: Възприемане (Inception), Уточняване (Ellaboration), Конструиране (Construction) и Преход (Transition). По време на всяка от фазите се реализират множество итерации (прототипи), всяка от които включва пет основни работни потока (workflows) – Спецификация на изискванията, Анализ, Проектиране, Реализация и Тестване. Отделните фази, работни потоци, както и участниците, дейностите и документите (artifacts) разработвани през всеки от тях се разглеждат в детайли по време на курса, като се посочват примери от опита на преподавателя в академична и бизнес среда.

Дискутират се особеностите при управлението на проект базиран на USDP.

Практическите занятия включват разработката на индивидуални или групови проекти с използване на USDP.

За повече информация и подробна програма на курса, моля пишете на нашия e-mail адрес: office@iproduct.org