Upload
kaela-twichell
View
214
Download
1
Tags:
Embed Size (px)
Citation preview
123-04-10
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ć
Outline• Functional Requirements
• Usecase Models
• Nonfunctional Requirements
• External Interfaces
• Components
• System Architecture
• Database Design
323-04-10
Functional Requirements
423-04-10
Mobile application Web application
RestaurantRestaurant
System administration
System administration
CustomerCustomer
UserGuest
Staff member
Administrator
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
Customer Requirements
• Feedback– Comments, photos, likes, recommendations
• News– Certain restaurant, type of restaurant
• Check-in
623-04-10
UC Model: Customer
723-04-10
UC Model: Customer
823-04-10
923-04-10
UC Model: Customer
Restaurant Requirements
• Menu update
• Seat availability update
• Restaurant info update
• News update
1023-04-10
UC Model: Restaurant
1123-04-10
System Administration Requirements
• User management
• Restaurant management
• Restaurant staff members management
1223-04-10
UC Model: Administration
1323-04-10
UC Model: Administration
1423-04-10
UC Model: Administration
1523-04-10
Nonfunctional Requirements
1623-04-10
• Usability
• Accessibility
• Performance
• Privacy and safety
• Portability
Requirement definition
• Requirement Group & definitions ADM RS USM GUM USW GUW NFR
• Must
• Should
• Could
• Would
External Interfaces
1823-04-10
Components
1923-04-10
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
Presentation/Bussiness layer
• Struts2 MVC
• Spring, Spring security
• View rendering: Tiles, Freemarker, taglib, JSON, XML
2123-04-10
Database layer
• JPA/Hibernate ORM framework
• Ehcache
• Spring data
2223-04-10
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
2423-04-10
Stack overview
2523-04-10
Questions?
2623-04-10