software development processes & alm

26
Software development processes & ALM Beka Tomashvili - > Co- Founder @ VOBI

Upload: beka-tomashvili

Post on 19-Jul-2015

101 views

Category:

Software


5 download

TRANSCRIPT

Page 1: Software development processes & ALM

Software development processes & ALM

Beka Tomashvili - > Co- Founder @ VOBI

Page 2: Software development processes & ALM

AgileAgile პროგრამული უზრუნველყოფის შექმნისა და შემუშავების მეთოდოლოგიების ერთიანობა.

2001 წელი . ზამთრის კურორტი SnowBird შეიქმნა Agile მანიფესტიKent Beck , James Grenning, Robert C. Martin, Mike Beedle, Jim Highsmith, Steve Mellor,Arie van Bennekum, Andrew

Hunt, Ken Schwaber, Alistair Cockburn, Ron Jeffries, Jeff Sutherland,Ward Cunningham, Jon Kern, Dave Thomas,

Martin Fowler, Brian Marick

● დაგეგამრება.● პროდუქტის ევოლუციური განვითარება.● ადრეული მიწოდება.● უწყვეტი გაუმჯობესება.● სწრაფი და მოქნილი ცვლილებები.

Page 3: Software development processes & ALM

Agile

მომუშავე პროგრამული უზრუნველყოფა. ამომწურავი დოკუმენტაცია.

დამკვეთთან მუდმივი თანამშრომლობა. კონტრაქტის პირობების შეთანხმება .

ცვლილებებზე რეაგირება. გეგმის ზედმიწევნით დაცვა.

მიუხედავად იმისა, რომ ვაფასებთ მარჯვენა მხარეს მდგომღირებულებებს, უპირატესობას ვანიჭებთ მარცხნივ მდგომებს

Page 4: Software development processes & ALM
Page 5: Software development processes & ALM

Agile 12 პრინციპი

Agile მანიფესტი : დავიცვათ შემდეგი პრინციპები.

1. დამკვეთის კმაყოფილება ღირებული პროგრამული უზრუნველყოფის დროული და უწყვეტი მიწოდება.

2. მივესალმებით მოთხოვნების ცვლილებებს პროგრამული უზრუნველყოფის შექმნის გვიან ეტაპზეც კი.

3. პროგრამული პროდუქტის მიწოდება რაც შეიძლება მოკლე ვადებში.

4. ბიზნესის წარმომადგენლები და პროგრამისტები ერთად უნდა მუშაობდნენ ყოველ დღე, მთელი პროექტის განმავლობაში

5. ააგეთ პროექტები მოტივირებული პიროვნებების ირგვლივ.

6. გუნდის შიგნით და გუნდისათვის ინფორმაციის გადაცემის ყველაზე ქმედით და ეფექტურ მეთოდს პირადი საუბარი წარმოადგენს.

7. მუშა პროგრამული უზრუნველყოფა წარმოადგენს წინსვლის უპირველეს საზომს.

8. ინვესტორს, პროგრამისტსა და მომხმარებელს უნდა შესწევდეთ უნარი, განუსაზღვრელი დროის განმავლობაში შეინარჩუნონ აღებული ტემპი.

9. ტექნიკური სრულყოფა და კარგი დიზაინის მიმართ მუდმივი ყურადღება აუმჯობესებს მოქნილობას.

10. სიმარტივე--ზედმეტი სამუშაოს რაოდენობის მინიმიზაციის ხელოვნება

11. საუკეთესო არქიტექტურა, მოთხოვნები და დიზაინი იქმნება თვით-ორგანიზებული გუნდების მიერ.

12 . გუნდი რეგულარულად განიხილავს ეფექტურობის გაზრდის საშუალებებს, და შესაბამისად ცვლის და აკორექტირებს საკუთარ ქცევას.

Page 6: Software development processes & ALM

Development Processes

Waterfall an iterative

Page 7: Software development processes & ALM

Waterfall process

Requirement Analysis

Design ( Solution Design )

Implementation

Test

Page 8: Software development processes & ALM

Iterative process

Analysis

Design

Implementation

Test

Iteration end

Implementationიტერაციული პროცესისრულიად საპირისპიროა. “Waterfall “ პროცესისა .

იტერაციული პროცესისაშუალებას იძლევაგანვახორციელოთცვლილება ნებისმიერეტაპზე , ეს იქნება ანალიზი, დიზაინი თუიმპლემენტაცია

Page 9: Software development processes & ALM

Iterative process

Delivery

Iteration 1

Iteration 2

Iteration 3

Page 10: Software development processes & ALM

The Software Development Process

● OOA - ობიექტზე ორიენტირებული ანალიზი

● OOD ობიექტზე ორიენტირებული დიზაინი

Page 11: Software development processes & ALM

OOA

ობიექტზე ორიენტირებული ანალიზი (OOA) არის პროცესი რომლის მიზანიაკარგად გავაანალიზოთ და გავიაზროთ ჩვენს გუნდთან ერთად ის თემა თუ“პრობლემა” რომლის გადაჭრასაც ვცდილობთ.

ანალიზი გვეხმარება უკეთ გავეცნოთ თემის “პრობლემის” არს . (problem domain).

ჩვენ უნდა გვესმოდეს თუ როგორ იმუშავებს სისტემა , ვინ იქნება მისიმომხამრებელი. რა იქნება სისტემის მოთხოვნები , და რა სახის რეაგირებას უნდაველოდოთ მათგან ვინც მას გამოიყენებს .

Page 12: Software development processes & ALM

OOA

აღწერეთ სისტემა შემთხევები, მონაწილე პირები.

მიზანი : კარგად გავეცნოთ სისტემას .

● ვინ მონაწილეობს. ( Identify actors , human ,mobile, pc, another device)

● წინასწარი ჩამონათვალი შემთხვევების . ( list of use cases )

● შემთხვევბის დასახელება და მოკლე აღწერა. ( Refine naming and definition

the use cases)● შემთხვევათა თანამიმდევრობა. ( Define each use case’s sequence of events)

● მოდელირება ( Model your cases)

Page 13: Software development processes & ALM

OOA - Actors

სხვადასხვა მონაწილე პირები თუ სერვისები, განსხვავებულინტერექციაში შეიძლება იყვენენ სისტემასთან .

Guest users

Registred users

RS ( Revenue Service)

Government services.

Facebook

Twitter

Linkedin

Page 14: Software development processes & ALM

OOA - List use cases , refine and definition

შემთხვევების ჩამონათვლი

მაგ :

● პროდუქციის კატალოგის დათავლიერება.● ძიება პროდუქციის კატალოგში● კონკრეტული ნივთის მოძიება.● ჩემი რჩეული პროდუქტები.

● რაოდენობის ცვლილება კალათაში.

● შეკვეთის განხორციელება.● პროდუქტზე დამატებიტი ინფორმაციის მოძიება.● ფასების შედარება.● შეკვეთა● პროფილის განახლება● შეკვეთების ისტორიის ნახვა

Page 15: Software development processes & ALM

OOA - Case’s sequence

თანამიმდევრობა

შეკვეთა :

● მომხმარებელი გადის რეგისტრაციას. ● მომხარებელი ირჩევს და ამატებს ერთ ან რამოდენიმე პროდუქტს კალათაში

უთითებს რაოდენობებს .

● მომხარბელი ავსებს დამატებით აუცილებელ ველებს პირ: Shipping

information. (თუ უკვე შევსებული არ აქვს)

● სისტემას გამოქვს საბოლოო შეტყობინება შეკვეთის დროს , ჯამური თანხამიწოდების მისამართი დრო და ა.შ ..

● სისტემა ადასტურებს შეკვეთას .

● სისტემა აგზავნის დამადასტურებელ შეტყობინებას ელ-ფოსტაზე.

Page 16: Software development processes & ALM

OOA - use case diagrams

მეტი ვიზუალიზაცია და დიაგრამები

Page 17: Software development processes & ALM

OOA - Sequence Diagrams

Page 18: Software development processes & ALM

OOA - Sequence Diagrams

Page 19: Software development processes & ALM

OOA - Activity Diagrams

Page 20: Software development processes & ALM

OOD - ობიქტზე ორიენტირებული დიზაინი

● გვეხამრება ანალიზის შედეგად მიღებული შედეგების საფუძველზე შევქმნათ მოდელი.

● რომელ ობიექტს დაეკისრება ესა თუ ის პასუხმისგებლობა.

● შევქმნათ რელაციური მოდელი, რა სახის ურთოერთობები იქნება ობიქტებს შორის ,

ობიექტებს შორის ინტერექცია

Page 21: Software development processes & ALM

OOD - ობიქტზე ორიენტირებული დიზაინი

პროგრამისტ არქიტექტორის ჩართულობა , OOP ზედმიწევნით ცოდნა.

ცნებები● ობიქტი/კლასი● ინკაფუსლაცია● მემკვიდრეობითობა● პოლიმორფიზმი

Page 22: Software development processes & ALM

OOD - Model

Page 23: Software development processes & ALM

OOD - Model

პასუხისმგებლობა თანამშრომლობა

Page 24: Software development processes & ALM

OOD - Model

Page 25: Software development processes & ALM

OOD - Model

Page 26: Software development processes & ALM

OOD - Model