33
Copyright © 2012 DAVID Holding Company Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект Александър Далемски [email protected]

Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Embed Size (px)

DESCRIPTION

Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект. Александър Далемски m [email protected]. За какво ще говорим. Софтуерни проекти Извличане и специфициране на изисквания Архитектури на софтуерни системи Планиране на софтуерни проекти. Проект. - PowerPoint PPT Presentation

Citation preview

Page 1: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Софтуерни проектиСофтуерни изискванияСофтуерни архитектури

Планиране на проект

Александър Далемски[email protected]

Page 2: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

За какво ще говорим

• Софтуерни проекти• Извличане и специфициране на изисквания• Архитектури на софтуерни системи• Планиране на софтуерни проекти

Page 3: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Проект

• Има начало и край (ограничен е във времето)• Целта е да се създаде някакъв резултат• Проектен екип• Всеки проект, а следователно и резултатът от него, са

уникални

Page 4: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Софтуерен проект

• Цел – създаване на специфична софтуерна система или приложение

• Бюджет• График• Екип

Page 5: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Софтуерен процес

• Дейностите по разработката на софтуерна система• Всеки софтуерен проект се изпълнява следвайки

софтуерен процес• Определя дейности, роли, резултати

Page 6: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Софтуерен продукт

• Софтуерна система или приложение – краен резултат от изпълнението на софтуерен проект

• Custom software• Commercial software

Page 7: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Заинтересовани лица

• Всички, които са свързани пряко или косвено със софтуерния продукт

• Клиенти/купувачи• Потребители• Есперти в областта• Юристи

Page 8: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Софтуерни изисквания

• Събират се в началото на изпълнението на проекта• Ръководят проектирането, реализацията и тестването

Page 9: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Видове изисквания

• Бизнес изисквания• Изисквания към процеса• Изисквания към продукта

Page 10: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Изисквания към продукта

• Функционални изисквания• Нефункционални изисквания• Изисквания на предметната област

Page 11: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Събиране и специфициранена изискванията• Много начини за събиране – интервюта, анкети, фокус

групи, допитване до експерти в областта, проучване на сходни системи...

• Често си противоречат• Трябва да се постигне компромис• Формулират се в спецификация

Page 12: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Спецификация на изискванията(Software Requirements Specification – SRS)• Описват се всички изисквания• Проверява се за неточности и пропуски• Важно е проблемите да се отстранят максимално рано в

процеса

Page 13: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Формулиране на изискванията

• Ясно и точно• Консистентно (без противоречия)• Без повторения• Без сложни (комбинирани) изисквания• Да позволява проверка за изпълнението на изискването

Page 14: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Софтуерни архитектури

• Често използвани шаблони• Могат да се комбинират• Покриват определен клас проблеми• Предимства и недостатъци

Page 15: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Клиент-сървър архитектура (Client-Server)

• Нееднородна• Обикновено един сървър• Много клиенти• Клиентът инициира връзката със сървъра• Централизиран достъп до данните

Page 16: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Трислойна архитектура (Three-Tier)

• Три слоя – за данни, бизнес и презентационен• Изолира всеки слой от реализацията на останалите• Улеснява тестването и поддръжката• Ограничава обхвата на нужните промени• Много широко разпространена

Page 17: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Многослойна архитектура (n-Tier)

• Подобна на трислойната• Множество слоеве• Разделяне на отговорността (separation of concerns)• Локализиране на промените

Page 18: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Peer-to-Peer архитектура

• Обикновено еднородна• Липса на централизираност• По-висока надеждност• По-ниска сигурност на данните• По-сложна реализация

Page 19: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Event-Driven архитектура

• Събития• Абониране• Компонентите, които предоставят услугите/събитията,

инициират действията

Page 20: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Архитектура с обмяна на съобщения(Message Passing)• Pipes & Filters• Съобщения• Канали/опашки• Обработващи звена

Page 21: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Архитектура с общо хранилище(Shared Repository)• Общо хранилище за данни• Липса на преки взаимодействия между компонентите• Комуникация чрез хранилището

Page 22: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Архитектура с разпределяне на товара(Load Balancing)• Дублиране на еднакви звена• Разпределяне на заявките/натоварването• Load balancer• Допълнителна надеждност – резервни звена

Page 23: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Архитектура, ориентирана към услуги(Service-Oriented Architecture – SOA)• Описан набор от услуги• Съобщения• Клиенти – обикновено външни системи• Обикновено през HTTP• SOAP, WSDL и UDDI

Page 24: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Модел на софтуерен процес

• Шаблон, описващ фазите на процеса, дейностите, ролите и ресултатите от всяка фаза

• Съществуват много модели• Ориентирани към различни видове проекти

Page 25: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Ad-hoc модел

• Липса на специфичен план• Решенията се вземат на място• Сполучлив за малки непрофесионални проекти• Много висок риск от провал при сериозни проекти

Page 26: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Модел на водопада (Waterfall Model)

• Фази: извличане на изисквания, проектиране, разработка, тестване, внедряване

• Не е възможно връщане към предишна фаза• Не се справя добре с промени в изискванията в късен

етап от проекта

Page 27: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Спираловиден модел (Spiral Model)

• Прилагане на модела на водопада множество пъти• Всеки цикъл започва със специфициране на изисквания,

продължава с проектиране, разработка и тестване• Продължава до достигане на завършен вид• Позволява адаптация към промени в изискванията

Page 28: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Прототипен модел (Prototype Model)

• Бърза разработка на прототип в началото на проекта• Proof of concept• Откриване на потенциални проблеми и рискове• Throwaway прототипи• Еволюционни прототипи

Page 29: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Итеративен модел (Iterative Model)

• Комбиниране на спираловидния и прототипния модели• В края на всяка итерация трябва да се получи работеща

версия на крайния продукт• Може да се добавят отделни пълни модули, или да се

започне с непълни модули и те да се доразвиват

Page 30: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Agile разработка

• Традиционните модели на софтуерни процеси изразходват твърде много време и пари за документация и формалности

• Agile подходите минимизират излишните дейности• Множество различни Agile подходи

Page 31: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Сходни черти на Agile подходите

• Постоянна пряка комуникация със заинтересованите лица

• Минимална употреба на сложни инструменти и излишна документация

• Кратки цикли (спринтове)• Бърза реакция при промени в изискванията• Ограничават се страничните дейности

Page 32: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Полезни връзки

• Софтуерно инженерство – Software Engineering by Ian Sommerville, http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/

• Agile разработка - http://www.agilealliance.org/

Page 33: Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект

Copyright © 2012 DAVID Holding Company

Благодаря за вниманието!

• Въпроси?• [email protected]