Your SlideShare is downloading. ×
  • Like
Курс по програмиране за напреднали (2012) - 8. Софтуерни проекти. Софтуерни изисквания. Софтуерни архитектури. Планиране на проект
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

  • 363 views
Published

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

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

Published in Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
363
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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