12014-06-04 Distributed Software Development 2011/12.

26
1 22-06-26 Distributed Software Development 2011/12

Transcript of 12014-06-04 Distributed Software Development 2011/12.

Page 1: 12014-06-04 Distributed Software Development 2011/12.

123-04-10

Distributed Software Development

2011/12

Page 2: 12014-06-04 Distributed Software Development 2011/12.

223-04-10

Search4Yummy Requirements Definition and

System Architecture

Muhammad SulymanPetar Paar

Yehui WangRonald Wolvers

Jan Čustović

Andrej Garić

Ivan Bandalo

Lovro Maričić

Page 3: 12014-06-04 Distributed Software Development 2011/12.

Outline• Functional Requirements

• Usecase Models

• Nonfunctional Requirements

• External Interfaces

• Components

• System Architecture

• Database Design

323-04-10

Page 4: 12014-06-04 Distributed Software Development 2011/12.

Functional Requirements

423-04-10

Mobile application Web application

RestaurantRestaurant

System administration

System administration

CustomerCustomer

UserGuest

Staff member

Administrator

Page 5: 12014-06-04 Distributed Software Development 2011/12.

Customer Requirements

• Browse restaurants

• Search restaurants– Popularity, location, type, seat availability,

food offer, “I feel lucky”

• Browse dishes

• Search dishes– Price, type, restaurant

523-04-10

Page 6: 12014-06-04 Distributed Software Development 2011/12.

Customer Requirements

• Feedback– Comments, photos, likes, recommendations

• News– Certain restaurant, type of restaurant

• Check-in

623-04-10

Page 7: 12014-06-04 Distributed Software Development 2011/12.

UC Model: Customer

723-04-10

Page 8: 12014-06-04 Distributed Software Development 2011/12.

UC Model: Customer

823-04-10

Page 9: 12014-06-04 Distributed Software Development 2011/12.

923-04-10

UC Model: Customer

Page 10: 12014-06-04 Distributed Software Development 2011/12.

Restaurant Requirements

• Menu update

• Seat availability update

• Restaurant info update

• News update

1023-04-10

Page 11: 12014-06-04 Distributed Software Development 2011/12.

UC Model: Restaurant

1123-04-10

Page 12: 12014-06-04 Distributed Software Development 2011/12.

System Administration Requirements

• User management

• Restaurant management

• Restaurant staff members management

1223-04-10

Page 13: 12014-06-04 Distributed Software Development 2011/12.

UC Model: Administration

1323-04-10

Page 14: 12014-06-04 Distributed Software Development 2011/12.

UC Model: Administration

1423-04-10

Page 15: 12014-06-04 Distributed Software Development 2011/12.

UC Model: Administration

1523-04-10

Page 16: 12014-06-04 Distributed Software Development 2011/12.

Nonfunctional Requirements

1623-04-10

• Usability

• Accessibility

• Performance

• Privacy and safety

• Portability

Page 17: 12014-06-04 Distributed Software Development 2011/12.

Requirement definition

• Requirement Group & definitions ADM RS USM GUM USW GUW NFR

• Must

• Should

• Could

• Would

Page 18: 12014-06-04 Distributed Software Development 2011/12.

External Interfaces

1823-04-10

Page 19: 12014-06-04 Distributed Software Development 2011/12.

Components

1923-04-10

Page 20: 12014-06-04 Distributed Software Development 2011/12.

System Architecture

• 3-tier application– Presentation layer– Bussiness logic– Database layer

• Client/Server communications model• Each tier can be developed concurrently• Tiers communicate thru interfaces

– Easy to change implementation of one tier without changing other tiers

2023-04-10

Page 21: 12014-06-04 Distributed Software Development 2011/12.

Presentation/Bussiness layer

• Struts2 MVC

• Spring, Spring security

• View rendering: Tiles, Freemarker, taglib, JSON, XML

2123-04-10

Page 22: 12014-06-04 Distributed Software Development 2011/12.

Database layer

• JPA/Hibernate ORM framework

• Ehcache

• Spring data

2223-04-10

Page 23: 12014-06-04 Distributed Software Development 2011/12.

Design patterns

• One class must do one thing (decoupled as much as possible)

• Tests for important parts

• Use singletons when possible

• Only object itself can change its state (use getters and setters)

• Respect naming convention

2323-04-10

Page 24: 12014-06-04 Distributed Software Development 2011/12.

2423-04-10

Page 25: 12014-06-04 Distributed Software Development 2011/12.

Stack overview

2523-04-10

Page 26: 12014-06-04 Distributed Software Development 2011/12.

Questions?

2623-04-10