SlideShare a Scribd company logo
DEVELOPMENT CONCEPT
                   AND DESIGN PATTERN

                                                          FOR
                     TRAVEL ITINERARY PROJECT

                                                                Created by      Team Members

                                                                Reviewed by     Team Members
Module:       Web Application Design and Modeling (WDAM)
                                                                Created Date    10 Jan 2012

Assignment:   Final Assignment (Itinerary 2012 project)         Revised Date    12 Jan 2012

                                                                Revision No.    1.0
Team Name:    As a Whole
                                                                Document Name   D01-002




                                                           1
2   OBJECTIVE OF THIS DOCUMENT


    1. To propose our design pattern
       based on well-known framework
       and architecture.

    2. To prevent if our application
       cannot run in different
       environment properly.

    3. To explain how we used object-
       oriented and development
       concept applied for this project.
We separated code into three tiers                                                         OUR DEVELOPMENT CONCEPT
                                                                                       FOLLOWING OO & DESIGN PATTERN
 Presentation Layer
                                                                                Web Browser
 Web Application (JSP)


    JSP                        JSP                       JSP                        JSP                      JSP                       JSP                       JSP
  page#1                     page#2                    page#3                     page#4                   page#4                    page#6                    page#n




Business Logic Layer                                                                                  Services
Itineary.Model, utils, mail
                                                  Itinerary         Itin_Item          Privacy          Note           FriendGroup
               Services                                                                                                                                User



     Itinerary.       Itineary.U                                   Transport           Activity
                                                                                                                                            Trip
        mail               til                                                                                                            Manager
                                                                                                                                                               Admin

                                                                     Flight
                                                                                                       Itinerary.Model




Data Model Layer                             Itinerary.Controller
                                                                                                                     Applied abstraction, inheritance and and
ORM (Mapper)                                                                       Abstract
                                                                                                                       polymorphism concept. Therefore,
                                                                                  Controller
                                                                                                                        code can be reused in each layer.



                                                                                                      Trip              Friend
  Itinerary            Flight            Transport             Activity             Note                                                  Privacy            User
                                                                                                    Manager             Group
  Controller         Controller          Controller           Controller          Controller                                             Controller        Controller
                                                                                                    Controller         Controller


                                                                                         JDBC
                                                                     Database (Microsoft Access)


                          Applied from Kuali Application Architecturehttps://wiki.kuali.org/display/KULRICE/Architecture+(Archive+from+Original+KTC+Work), Last accessed 7 Jan 2012
A P P LIED MV C (MO DEL V IEW C O N T R O LLER)
   4
                                                           O N IT IN ER A RY P R O J EC T.



                                                                                                       MS Access database




                                                        Update
             Update Data
                                                     presentation                                     Abstract Controller Class



                                                                                                   Data Model Layer
                                                                                                   Entity Specific Controller Class
                                   Get Data
                                                                                                           Calss1 .. Class n

The Controller Concept

Main functions of our Controller Class

       1. Support CRUD Operation between DBMS(persistent layer) and                               Benefits for this concept.
          Data model layer. ( C=Create, R=retrieval, U=Update, D=
          Delete )
                                                                                        1. Encapsulate DBMS and SQL Language
       2. Map database and tables into Objects. So, a user programmer
          doesn’t need to learn about database backend behind                           2. Flexible to change DBMS
          application. Also, SQL syntax is encapsulated from the
          application layer.


                    Applied from http://www.asp.net/mvc/tutorials/overview/asp-net-mvc-overview, last accessed 11 Jan 2012
EX . SO U R C E C O DE A N D IMP L EMEN TAT IO N
        5
                                                    C O N C EP T IN C O N T R O LLER PA G K A GE



Ex. Abstract Methods in our AbstractController Class              Ex. Superclass Methods in our AbstractController Class

                                                                    // 1) Find And return Single Object by Primary key Value
                                                                    public Object FindObject(String PKValue)
                                                                    // 2) Retrieve Object by specific Field Name and Value
  // Tell controller what is the table's Primary Key Field Name     public Object FindObjectByField(String FieldName,String FieldValue)
   public abstract String getPKFieldName();
                                                                    // 3) Save Your Object to databases
  // Tell controller What is the table Name to Store Object         public void SaveObject(Object obj)
  public abstract String getTableName();                            // 4) Retrieve all objects in table

  //Tell controller How to Load data from Database to object        public ArrayList<Object> getObjectList()
  protected abstract Object CreateFromResultSet()                   // 5) Retrieve objects with conditions
                                                                    public ArrayList<Object> QueryObjects(String Condition)
  // Tell controller How to Store object to databases
  protected abstract void SaveToResultSet(Object obj)               // 6) retrieve Objects with specific query
                                                                    public ArrayList<Object> CustomQueryObjects(String SelQuery)

      Abstraction, Inheritance and Polymorphism concepts are        // 7) delete Object by Primarykey Value
               also applied in this AbstractController.             public boolean DeleteByPKValue(String PKValue) throws SQLException


  Regarding with our abstract class, programmer can                 Benefits:
  implement a subclass as following;
                                                                    1. Separate characteristic of each subclass which has same
  1) Create Class and Inherit from Abstract Controller Class.          concept of the abstract class.
  2) Override the Abstract Methods to Implement the Controller      2. Code is the same pattern. It is easy to maintain and delegate
  class.                                                               work.
EX . C O MP L ET ED DESIG N IN MO DEL PA C K A GE
        6
                                                         (R EDU C E R EC O MP L IN G C O DE)


Ex Method in Itinerary.Model                                          Ex Method in Itinerary.User

  //1) Create Itinerary                                             //1) Create User Profile
  CreateItinerary():boolean                                         CreateProfile():boolean

  //2) Update Itineary                                              //2) Update User Profile
  UpdateItinerary():boolean                                         UpdateProfile():boolean
  //3) Delete Itinerary
                                                                    //3) Delete User
  RemoveItinerary():boolean
                                                                    RemoveUser():boolean
  //==================================
  //4) Search Itinerary by Condition
  //ex. ItinNo = ‘T01’ and UserName = ‘john’                        //==================================
  //Function will return array list following condition             //4) Search User by Condition
  //==================================                              //ex. UserName = ‘abc’ and FirstName = ‘john’
  SearchItinerary(String condition):ArrayList<Itinerary>            //Function will return Array list following condition
                                                                    //==================================
  //5) Search by ItinNo                                             SearchUser(String condition):ArrayList<User>
  //Return Object of Itinerary
  SearchByPk():Itinerary                                            //5) Search by UserName
                                                                    //Return Object of user       JSP is flexible to operate data objects
  //Search Shared Itineraries (Needs to check privacy)              SearchByPk():User                and reduce needs to add more
  SearchSharedViewItinerary(String UserName):ArrayList<Itinerary>                                       methods in model classes.

  As can be seen, model classes have five main methods.
  1. Presentation layer (JSP) can operate inserting, updating,
                                                                    Benefits:
      deleting and retrieving data objects following these main
      methods.                                                      1. Flexible to operate creating, updating, deleting and retrieving data
  2. We add some methods in model classes for specific needs ex.       without recompiling java.
      SearchSharedViewItinerary because this function needs to
      search with privacy. It cannot use general search method.     2. Database is also encapsulated in this layer.

More Related Content

PPT
Linq To The Enterprise
PPTX
Real world DSL - making technical and business people speaking the same language
PPTX
Introduction to JAVA
PDF
Model-Driven Software Development - Language Workbenches & Syntax Definition
ZIP
Introduction to the Java(TM) Advanced Imaging API
PDF
The DEVS-Driven Modeling Language: Syntax and Semantics Definition by Meta-Mo...
PDF
Objective-C
PPTX
JAVA PROGRAMMING
Linq To The Enterprise
Real world DSL - making technical and business people speaking the same language
Introduction to JAVA
Model-Driven Software Development - Language Workbenches & Syntax Definition
Introduction to the Java(TM) Advanced Imaging API
The DEVS-Driven Modeling Language: Syntax and Semantics Definition by Meta-Mo...
Objective-C
JAVA PROGRAMMING

What's hot (18)

PPT
JavaClassPresentation
PDF
Smart Annotation Processing - Marseille JUG
PPTX
basic core java up to operator
PPTX
Introduction to java
PPTX
PPTX
Core java online training
PDF
Android training in Nagpur
PDF
Java - OOPS and Java Basics
PPTX
1.introduction to java
PPT
Java Programming for Designers
PDF
F# and SignalR for a FastWeb
PDF
Using Stratego/XT for generation of software connectors.
PDF
Domain specific languages and Scala
PDF
Core Java Introduction | Basics
PPTX
1 java programming- introduction
PPTX
Functional Programming With Lambdas and Streams in JDK8
PPT
Java tutorial PPT
PDF
A Field Guide to DSL Design in Scala
JavaClassPresentation
Smart Annotation Processing - Marseille JUG
basic core java up to operator
Introduction to java
Core java online training
Android training in Nagpur
Java - OOPS and Java Basics
1.introduction to java
Java Programming for Designers
F# and SignalR for a FastWeb
Using Stratego/XT for generation of software connectors.
Domain specific languages and Scala
Core Java Introduction | Basics
1 java programming- introduction
Functional Programming With Lambdas and Streams in JDK8
Java tutorial PPT
A Field Guide to DSL Design in Scala
Ad

Viewers also liked (8)

PPTX
Interface Design Concepts and Planning: 532 lecture 2
PPT
LSC332 Creating Your Own Brand
PPTX
Web Design Core Concepts
PPT
Design Concepts & Principles
PPTX
04 design concepts_n_principles
PPTX
Web 3.0 - Concepts, Technologies, and Evolving Business Models
PPTX
Cp7101 design and management of computer networks-design concepts
PPT
Web Application Development Fundamentals
Interface Design Concepts and Planning: 532 lecture 2
LSC332 Creating Your Own Brand
Web Design Core Concepts
Design Concepts & Principles
04 design concepts_n_principles
Web 3.0 - Concepts, Technologies, and Evolving Business Models
Cp7101 design and management of computer networks-design concepts
Web Application Development Fundamentals
Ad

Similar to Itinerary Website (Web Development Document) (20)

PPTX
D4 recommendation emenu_development
PPTX
Final_D4 recommendation emenu_development
PDF
DashMash: a Mashup Environment for End User Development
PDF
Venus-c: Using open source clouds in eScience
 
PPTX
D4 recommendation emenu_development
PDF
Introducing spring
PDF
02 Ms Online Identity Session 1
PPTX
Apache Hadoop YARN - Hortonworks Meetup Presentation
PPTX
SPEC INDIA Java Case Study
PDF
OW2 Petals Dragon SOA Linuxtag09
PDF
ROLE Vision RWTH Aachen
PPT
IBM Pulse 2013 session - DevOps for Mobile Apps
PDF
IT Governance Portals
PDF
Framework Engineering
PDF
Model Driven Architecture (MDA): Motivations, Status & Future
PDF
Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (O...
PDF
Internship
PDF
Ectel nods v2
PDF
Resource Oriented Architecture in Wireless Sensor Network
PDF
[DSBW Spring 2009] Unit 01: Introducing Web Engineering
D4 recommendation emenu_development
Final_D4 recommendation emenu_development
DashMash: a Mashup Environment for End User Development
Venus-c: Using open source clouds in eScience
 
D4 recommendation emenu_development
Introducing spring
02 Ms Online Identity Session 1
Apache Hadoop YARN - Hortonworks Meetup Presentation
SPEC INDIA Java Case Study
OW2 Petals Dragon SOA Linuxtag09
ROLE Vision RWTH Aachen
IBM Pulse 2013 session - DevOps for Mobile Apps
IT Governance Portals
Framework Engineering
Model Driven Architecture (MDA): Motivations, Status & Future
Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (O...
Internship
Ectel nods v2
Resource Oriented Architecture in Wireless Sensor Network
[DSBW Spring 2009] Unit 01: Introducing Web Engineering

More from Traitet Thepbandansuk (20)

PDF
IT_FOR_BUSINESS_30NOV15
PDF
06 1 st_honour_award_certification.pdf
PPS
Change attitude change life scg
DOCX
01 dissertation_Restaurant e-menu on iPad
DOCX
MSc Dissertation: Restaurant e-menu software on iPad
PPTX
03 outcome navigator
PPTX
O1 research overview
PPTX
D3 users perceptions_emenu
PPTX
D2 users perceptions_features
PPTX
A30 test functional_requirements
PPTX
A22 functions on_web
PPTX
A21 functions on_ipad
PPTX
A2 annotation approach
PPTX
A1 annotation knowledge
PPTX
A1 analysis design
PPTX
10 wrap around_conclusion
PPTX
02 project plan11_aug12
PPTX
00 how to_test_app
PPTX
R01 all references
PPTX
D2 users perceptions_features
IT_FOR_BUSINESS_30NOV15
06 1 st_honour_award_certification.pdf
Change attitude change life scg
01 dissertation_Restaurant e-menu on iPad
MSc Dissertation: Restaurant e-menu software on iPad
03 outcome navigator
O1 research overview
D3 users perceptions_emenu
D2 users perceptions_features
A30 test functional_requirements
A22 functions on_web
A21 functions on_ipad
A2 annotation approach
A1 annotation knowledge
A1 analysis design
10 wrap around_conclusion
02 project plan11_aug12
00 how to_test_app
R01 all references
D2 users perceptions_features

Recently uploaded (20)

PDF
Machine learning based COVID-19 study performance prediction
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
cuic standard and advanced reporting.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Empathic Computing: Creating Shared Understanding
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Machine learning based COVID-19 study performance prediction
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
cuic standard and advanced reporting.pdf
The AUB Centre for AI in Media Proposal.docx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Encapsulation_ Review paper, used for researhc scholars
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
20250228 LYD VKU AI Blended-Learning.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Empathic Computing: Creating Shared Understanding
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Dropbox Q2 2025 Financial Results & Investor Presentation
Chapter 3 Spatial Domain Image Processing.pdf
Unlocking AI with Model Context Protocol (MCP)
Network Security Unit 5.pdf for BCA BBA.
Understanding_Digital_Forensics_Presentation.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Building Integrated photovoltaic BIPV_UPV.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication

Itinerary Website (Web Development Document)

  • 1. DEVELOPMENT CONCEPT AND DESIGN PATTERN FOR TRAVEL ITINERARY PROJECT Created by Team Members Reviewed by Team Members Module: Web Application Design and Modeling (WDAM) Created Date 10 Jan 2012 Assignment: Final Assignment (Itinerary 2012 project) Revised Date 12 Jan 2012 Revision No. 1.0 Team Name: As a Whole Document Name D01-002 1
  • 2. 2 OBJECTIVE OF THIS DOCUMENT 1. To propose our design pattern based on well-known framework and architecture. 2. To prevent if our application cannot run in different environment properly. 3. To explain how we used object- oriented and development concept applied for this project.
  • 3. We separated code into three tiers OUR DEVELOPMENT CONCEPT FOLLOWING OO & DESIGN PATTERN Presentation Layer Web Browser Web Application (JSP) JSP JSP JSP JSP JSP JSP JSP page#1 page#2 page#3 page#4 page#4 page#6 page#n Business Logic Layer Services Itineary.Model, utils, mail Itinerary Itin_Item Privacy Note FriendGroup Services User Itinerary. Itineary.U Transport Activity Trip mail til Manager Admin Flight Itinerary.Model Data Model Layer Itinerary.Controller Applied abstraction, inheritance and and ORM (Mapper) Abstract polymorphism concept. Therefore, Controller code can be reused in each layer. Trip Friend Itinerary Flight Transport Activity Note Privacy User Manager Group Controller Controller Controller Controller Controller Controller Controller Controller Controller JDBC Database (Microsoft Access) Applied from Kuali Application Architecturehttps://wiki.kuali.org/display/KULRICE/Architecture+(Archive+from+Original+KTC+Work), Last accessed 7 Jan 2012
  • 4. A P P LIED MV C (MO DEL V IEW C O N T R O LLER) 4 O N IT IN ER A RY P R O J EC T. MS Access database Update Update Data presentation Abstract Controller Class Data Model Layer Entity Specific Controller Class Get Data Calss1 .. Class n The Controller Concept Main functions of our Controller Class 1. Support CRUD Operation between DBMS(persistent layer) and Benefits for this concept. Data model layer. ( C=Create, R=retrieval, U=Update, D= Delete ) 1. Encapsulate DBMS and SQL Language 2. Map database and tables into Objects. So, a user programmer doesn’t need to learn about database backend behind 2. Flexible to change DBMS application. Also, SQL syntax is encapsulated from the application layer. Applied from http://www.asp.net/mvc/tutorials/overview/asp-net-mvc-overview, last accessed 11 Jan 2012
  • 5. EX . SO U R C E C O DE A N D IMP L EMEN TAT IO N 5 C O N C EP T IN C O N T R O LLER PA G K A GE Ex. Abstract Methods in our AbstractController Class Ex. Superclass Methods in our AbstractController Class // 1) Find And return Single Object by Primary key Value public Object FindObject(String PKValue) // 2) Retrieve Object by specific Field Name and Value // Tell controller what is the table's Primary Key Field Name public Object FindObjectByField(String FieldName,String FieldValue) public abstract String getPKFieldName(); // 3) Save Your Object to databases // Tell controller What is the table Name to Store Object public void SaveObject(Object obj) public abstract String getTableName(); // 4) Retrieve all objects in table //Tell controller How to Load data from Database to object public ArrayList<Object> getObjectList() protected abstract Object CreateFromResultSet() // 5) Retrieve objects with conditions public ArrayList<Object> QueryObjects(String Condition) // Tell controller How to Store object to databases protected abstract void SaveToResultSet(Object obj) // 6) retrieve Objects with specific query public ArrayList<Object> CustomQueryObjects(String SelQuery) Abstraction, Inheritance and Polymorphism concepts are // 7) delete Object by Primarykey Value also applied in this AbstractController. public boolean DeleteByPKValue(String PKValue) throws SQLException Regarding with our abstract class, programmer can Benefits: implement a subclass as following; 1. Separate characteristic of each subclass which has same 1) Create Class and Inherit from Abstract Controller Class. concept of the abstract class. 2) Override the Abstract Methods to Implement the Controller 2. Code is the same pattern. It is easy to maintain and delegate class. work.
  • 6. EX . C O MP L ET ED DESIG N IN MO DEL PA C K A GE 6 (R EDU C E R EC O MP L IN G C O DE) Ex Method in Itinerary.Model Ex Method in Itinerary.User //1) Create Itinerary //1) Create User Profile CreateItinerary():boolean CreateProfile():boolean //2) Update Itineary //2) Update User Profile UpdateItinerary():boolean UpdateProfile():boolean //3) Delete Itinerary //3) Delete User RemoveItinerary():boolean RemoveUser():boolean //================================== //4) Search Itinerary by Condition //ex. ItinNo = ‘T01’ and UserName = ‘john’ //================================== //Function will return array list following condition //4) Search User by Condition //================================== //ex. UserName = ‘abc’ and FirstName = ‘john’ SearchItinerary(String condition):ArrayList<Itinerary> //Function will return Array list following condition //================================== //5) Search by ItinNo SearchUser(String condition):ArrayList<User> //Return Object of Itinerary SearchByPk():Itinerary //5) Search by UserName //Return Object of user JSP is flexible to operate data objects //Search Shared Itineraries (Needs to check privacy) SearchByPk():User and reduce needs to add more SearchSharedViewItinerary(String UserName):ArrayList<Itinerary> methods in model classes. As can be seen, model classes have five main methods. 1. Presentation layer (JSP) can operate inserting, updating, Benefits: deleting and retrieving data objects following these main methods. 1. Flexible to operate creating, updating, deleting and retrieving data 2. We add some methods in model classes for specific needs ex. without recompiling java. SearchSharedViewItinerary because this function needs to search with privacy. It cannot use general search method. 2. Database is also encapsulated in this layer.