Софтуерни проекти
Софтуерни изисквания
Софтуерни архитектури
Планиране на проект
Александър Далемски
musashi.bg@gmail.com
...
За какво ще говорим
•
•
•
•

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

Има начало и край (ограничен е във времето)
Целта е да се създаде някакъв резултат
Проектен екип
Всеки про...
Софтуерен проект
• Цел – създаване на специфична софтуерна система или
приложение
• Бюджет
• График
• Екип

Copyright © 20...
Софтуерен процес
• Дейностите по разработката на софтуерна система
• Всеки софтуерен проект се изпълнява следвайки
софтуер...
Софтуерен продукт
• Софтуерна система или приложение – краен резултат от
изпълнението на софтуерен проект
• Custom softwar...
Заинтересовани лица
• Всички, които са свързани пряко или косвено със
софтуерния продукт
• Клиенти/купувачи
• Потребители
...
Софтуерни изисквания
• Събират се в началото на изпълнението на проекта
• Ръководят проектирането, реализацията и тестване...
Видове изисквания
• Бизнес изисквания
• Изисквания към процеса
• Изисквания към продукта

Copyright © 2012 DAVID Holding C...
Изисквания към продукта
• Функционални изисквания
• Нефункционални изисквания
• Изисквания на предметната област

Copyrigh...
Събиране и специфициране
на изискванията
• Много начини за събиране – интервюта, анкети, фокус
групи, допитване до експерт...
Спецификация на изискванията
(Software Requirements Specification – SRS)
• Описват се всички изисквания
• Проверява се за ...
Формулиране на изискванията
•
•
•
•
•

Ясно и точно
Консистентно (без противоречия)
Без повторения
Без сложни (комбинирани...
Софтуерни архитектури
•
•
•
•

Често използвани шаблони
Могат да се комбинират
Покриват определен клас проблеми
Предимства...
Клиент-сървър архитектура (Client-Server)
•
•
•
•
•

Нееднородна
Обикновено един сървър
Много клиенти
Клиентът инициира вр...
Трислойна архитектура (Three-Tier)
•
•
•
•
•

Три слоя – за данни, бизнес и презентационен
Изолира всеки слой от реализаци...
Многослойна архитектура (n-Tier)
•
•
•
•

Подобна на трислойната
Множество слоеве
Разделяне на отговорността (separation o...
Peer-to-Peer архитектура
•
•
•
•
•

Обикновено еднородна
Липса на централизираност
По-висока надеждност
По-ниска сигурност...
Event-Driven архитектура
• Събития
• Абониране
• Компонентите, които предоставят услугите/събитията,
инициират действията
...
Архитектура с обмяна на съобщения
(Message Passing)
•
•
•
•

Pipes & Filters
Съобщения
Канали/опашки
Обработващи звена

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

Дублиране на еднакви звена
Разпределяне на заявките/натовар...
Архитектура, ориентирана към услуги
(Service-Oriented Architecture – SOA)
•
•
•
•
•

Описан набор от услуги
Съобщения
Клие...
Модел на софтуерен процес
• Шаблон, описващ фазите на процеса, дейностите,
ролите и ресултатите от всяка фаза
• Съществува...
Ad-hoc модел
•
•
•
•

Липса на специфичен план
Решенията се вземат на място
Сполучлив за малки непрофесионални проекти
Мно...
Модел на водопада (Waterfall Model)
• Фази: извличане на изисквания, проектиране,
разработка, тестване, внедряване
• Не е ...
Спираловиден модел (Spiral Model)
• Прилагане на модела на водопада множество пъти
• Всеки цикъл започва със специфициране...
Прототипен модел (Prototype Model)
•
•
•
•
•

Бърза разработка на прототип в началото на проекта
Proof of concept
Откриван...
Итеративен модел (Iterative Model)
• Комбиниране на спираловидния и прототипния модели
• В края на всяка итерация трябва д...
Agile разработка
• Традиционните модели на софтуерни процеси
изразходват твърде много време и пари за
документация и форма...
Сходни черти на Agile подходите
• Постоянна пряка комуникация със заинтересованите
лица
• Минимална употреба на сложни инс...
Полезни връзки
• Софтуерно инженерство – Software Engineering by Ian
Sommerville, http://www.cs.standrews.ac.uk/~ifs/Books...
Благодаря за вниманието!
• Въпроси?
• musashi.bg@gmail.com

Copyright © 2012 DAVID Holding Company
Upcoming SlideShare
Loading in …5
×

Курс по програмиране за напреднали (2012) - 8. Софтуерни проекти. Софтуерни изисквания. Софтуерни архитектури. Планиране на проект

629 views
496 views

Published on

Занятие №8 на курса по програмиране за напреднали (2012) провеждан от ДАВИД академия в гр.Казанлък. Включва темите:
- Софтуерни проекти
- Софтуерни изисквания
- Софтуерни архитектури
- Планиране на проект

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
629
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Курс по програмиране за напреднали (2012) - 8. Софтуерни проекти. Софтуерни изисквания. Софтуерни архитектури. Планиране на проект

  1. 1. Софтуерни проекти Софтуерни изисквания Софтуерни архитектури Планиране на проект Александър Далемски musashi.bg@gmail.com Copyright © 2012 DAVID Holding Company
  2. 2. За какво ще говорим • • • • Софтуерни проекти Извличане и специфициране на изисквания Архитектури на софтуерни системи Планиране на софтуерни проекти Copyright © 2012 DAVID Holding Company
  3. 3. Проект • • • • Има начало и край (ограничен е във времето) Целта е да се създаде някакъв резултат Проектен екип Всеки проект, а следователно и резултатът от него, са уникални Copyright © 2012 DAVID Holding Company
  4. 4. Софтуерен проект • Цел – създаване на специфична софтуерна система или приложение • Бюджет • График • Екип Copyright © 2012 DAVID Holding Company
  5. 5. Софтуерен процес • Дейностите по разработката на софтуерна система • Всеки софтуерен проект се изпълнява следвайки софтуерен процес • Определя дейности, роли, резултати Copyright © 2012 DAVID Holding Company
  6. 6. Софтуерен продукт • Софтуерна система или приложение – краен резултат от изпълнението на софтуерен проект • Custom software • Commercial software Copyright © 2012 DAVID Holding Company
  7. 7. Заинтересовани лица • Всички, които са свързани пряко или косвено със софтуерния продукт • Клиенти/купувачи • Потребители • Есперти в областта • Юристи Copyright © 2012 DAVID Holding Company
  8. 8. Софтуерни изисквания • Събират се в началото на изпълнението на проекта • Ръководят проектирането, реализацията и тестването Copyright © 2012 DAVID Holding Company
  9. 9. Видове изисквания • Бизнес изисквания • Изисквания към процеса • Изисквания към продукта Copyright © 2012 DAVID Holding Company
  10. 10. Изисквания към продукта • Функционални изисквания • Нефункционални изисквания • Изисквания на предметната област Copyright © 2012 DAVID Holding Company
  11. 11. Събиране и специфициране на изискванията • Много начини за събиране – интервюта, анкети, фокус групи, допитване до експерти в областта, проучване на сходни системи... • Често си противоречат • Трябва да се постигне компромис • Формулират се в спецификация Copyright © 2012 DAVID Holding Company
  12. 12. Спецификация на изискванията (Software Requirements Specification – SRS) • Описват се всички изисквания • Проверява се за неточности и пропуски • Важно е проблемите да се отстранят максимално рано в процеса Copyright © 2012 DAVID Holding Company
  13. 13. Формулиране на изискванията • • • • • Ясно и точно Консистентно (без противоречия) Без повторения Без сложни (комбинирани) изисквания Да позволява проверка за изпълнението на изискването Copyright © 2012 DAVID Holding Company
  14. 14. Софтуерни архитектури • • • • Често използвани шаблони Могат да се комбинират Покриват определен клас проблеми Предимства и недостатъци Copyright © 2012 DAVID Holding Company
  15. 15. Клиент-сървър архитектура (Client-Server) • • • • • Нееднородна Обикновено един сървър Много клиенти Клиентът инициира връзката със сървъра Централизиран достъп до данните Copyright © 2012 DAVID Holding Company
  16. 16. Трислойна архитектура (Three-Tier) • • • • • Три слоя – за данни, бизнес и презентационен Изолира всеки слой от реализацията на останалите Улеснява тестването и поддръжката Ограничава обхвата на нужните промени Много широко разпространена Copyright © 2012 DAVID Holding Company
  17. 17. Многослойна архитектура (n-Tier) • • • • Подобна на трислойната Множество слоеве Разделяне на отговорността (separation of concerns) Локализиране на промените Copyright © 2012 DAVID Holding Company
  18. 18. Peer-to-Peer архитектура • • • • • Обикновено еднородна Липса на централизираност По-висока надеждност По-ниска сигурност на данните По-сложна реализация Copyright © 2012 DAVID Holding Company
  19. 19. Event-Driven архитектура • Събития • Абониране • Компонентите, които предоставят услугите/събитията, инициират действията Copyright © 2012 DAVID Holding Company
  20. 20. Архитектура с обмяна на съобщения (Message Passing) • • • • Pipes & Filters Съобщения Канали/опашки Обработващи звена Copyright © 2012 DAVID Holding Company
  21. 21. Архитектура с общо хранилище (Shared Repository) • Общо хранилище за данни • Липса на преки взаимодействия между компонентите • Комуникация чрез хранилището Copyright © 2012 DAVID Holding Company
  22. 22. Архитектура с разпределяне на товара (Load Balancing) • • • • Дублиране на еднакви звена Разпределяне на заявките/натоварването Load balancer Допълнителна надеждност – резервни звена Copyright © 2012 DAVID Holding Company
  23. 23. Архитектура, ориентирана към услуги (Service-Oriented Architecture – SOA) • • • • • Описан набор от услуги Съобщения Клиенти – обикновено външни системи Обикновено през HTTP SOAP, WSDL и UDDI Copyright © 2012 DAVID Holding Company
  24. 24. Модел на софтуерен процес • Шаблон, описващ фазите на процеса, дейностите, ролите и ресултатите от всяка фаза • Съществуват много модели • Ориентирани към различни видове проекти Copyright © 2012 DAVID Holding Company
  25. 25. Ad-hoc модел • • • • Липса на специфичен план Решенията се вземат на място Сполучлив за малки непрофесионални проекти Много висок риск от провал при сериозни проекти Copyright © 2012 DAVID Holding Company
  26. 26. Модел на водопада (Waterfall Model) • Фази: извличане на изисквания, проектиране, разработка, тестване, внедряване • Не е възможно връщане към предишна фаза • Не се справя добре с промени в изискванията в късен етап от проекта Copyright © 2012 DAVID Holding Company
  27. 27. Спираловиден модел (Spiral Model) • Прилагане на модела на водопада множество пъти • Всеки цикъл започва със специфициране на изисквания, продължава с проектиране, разработка и тестване • Продължава до достигане на завършен вид • Позволява адаптация към промени в изискванията Copyright © 2012 DAVID Holding Company
  28. 28. Прототипен модел (Prototype Model) • • • • • Бърза разработка на прототип в началото на проекта Proof of concept Откриване на потенциални проблеми и рискове Throwaway прототипи Еволюционни прототипи Copyright © 2012 DAVID Holding Company
  29. 29. Итеративен модел (Iterative Model) • Комбиниране на спираловидния и прототипния модели • В края на всяка итерация трябва да се получи работеща версия на крайния продукт • Може да се добавят отделни пълни модули, или да се започне с непълни модули и те да се доразвиват Copyright © 2012 DAVID Holding Company
  30. 30. Agile разработка • Традиционните модели на софтуерни процеси изразходват твърде много време и пари за документация и формалности • Agile подходите минимизират излишните дейности • Множество различни Agile подходи Copyright © 2012 DAVID Holding Company
  31. 31. Сходни черти на Agile подходите • Постоянна пряка комуникация със заинтересованите лица • Минимална употреба на сложни инструменти и излишна документация • Кратки цикли (спринтове) • Бърза реакция при промени в изискванията • Ограничават се страничните дейности Copyright © 2012 DAVID Holding Company
  32. 32. Полезни връзки • Софтуерно инженерство – Software Engineering by Ian Sommerville, http://www.cs.standrews.ac.uk/~ifs/Books/SE9/ • Agile разработка - http://www.agilealliance.org/ Copyright © 2012 DAVID Holding Company
  33. 33. Благодаря за вниманието! • Въпроси? • musashi.bg@gmail.com Copyright © 2012 DAVID Holding Company

×