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

What's hot

JavaClassPresentation
JavaClassPresentationJavaClassPresentation
JavaClassPresentationjuliasceasor
 
Smart Annotation Processing - Marseille JUG
Smart Annotation Processing - Marseille JUGSmart Annotation Processing - Marseille JUG
Smart Annotation Processing - Marseille JUGgdigugli
 
basic core java up to operator
basic core java up to operatorbasic core java up to operator
basic core java up to operator
kamal kotecha
 
Introduction to java
Introduction to java Introduction to java
Introduction to java
Sandeep Rawat
 
Eugenia
EugeniaEugenia
Core java online training
Core java online trainingCore java online training
Core java online training
Glory IT Technologies Pvt. Ltd.
 
Android training in Nagpur
Android training in Nagpur Android training in Nagpur
Android training in Nagpur
letsleadsand
 
Java - OOPS and Java Basics
Java - OOPS and Java BasicsJava - OOPS and Java Basics
Java - OOPS and Java Basics
Victer Paul
 
1.introduction to java
1.introduction to java1.introduction to java
1.introduction to java
Madhura Bhalerao
 
Java Programming for Designers
Java Programming for DesignersJava Programming for Designers
Java Programming for Designers
R. Sosa
 
F# and SignalR for a FastWeb
F# and SignalR for a FastWebF# and SignalR for a FastWeb
F# and SignalR for a FastWeb
Riccardo Terrell
 
Using Stratego/XT for generation of software connectors.
Using Stratego/XT for generation of software connectors.Using Stratego/XT for generation of software connectors.
Using Stratego/XT for generation of software connectors.
Michal Malohlava
 
Domain specific languages and Scala
Domain specific languages and ScalaDomain specific languages and Scala
Domain specific languages and Scala
Filip Krikava
 
Core Java Introduction | Basics
Core Java Introduction  | BasicsCore Java Introduction  | Basics
Core Java Introduction | Basics
Hùng Nguyễn Huy
 
1 java programming- introduction
1  java programming- introduction1  java programming- introduction
1 java programming- introduction
jyoti_lakhani
 
Functional Programming With Lambdas and Streams in JDK8
 Functional Programming With Lambdas and Streams in JDK8 Functional Programming With Lambdas and Streams in JDK8
Functional Programming With Lambdas and Streams in JDK8
IndicThreads
 
Java tutorial PPT
Java tutorial PPTJava tutorial PPT
Java tutorial PPT
Intelligo Technologies
 
A Field Guide to DSL Design in Scala
A Field Guide to DSL Design in ScalaA Field Guide to DSL Design in Scala
A Field Guide to DSL Design in Scala
Tomer Gabel
 

What's hot (18)

JavaClassPresentation
JavaClassPresentationJavaClassPresentation
JavaClassPresentation
 
Smart Annotation Processing - Marseille JUG
Smart Annotation Processing - Marseille JUGSmart Annotation Processing - Marseille JUG
Smart Annotation Processing - Marseille JUG
 
basic core java up to operator
basic core java up to operatorbasic core java up to operator
basic core java up to operator
 
Introduction to java
Introduction to java Introduction to java
Introduction to java
 
Eugenia
EugeniaEugenia
Eugenia
 
Core java online training
Core java online trainingCore java online training
Core java online training
 
Android training in Nagpur
Android training in Nagpur Android training in Nagpur
Android training in Nagpur
 
Java - OOPS and Java Basics
Java - OOPS and Java BasicsJava - OOPS and Java Basics
Java - OOPS and Java Basics
 
1.introduction to java
1.introduction to java1.introduction to java
1.introduction to java
 
Java Programming for Designers
Java Programming for DesignersJava Programming for Designers
Java Programming for Designers
 
F# and SignalR for a FastWeb
F# and SignalR for a FastWebF# and SignalR for a FastWeb
F# and SignalR for a FastWeb
 
Using Stratego/XT for generation of software connectors.
Using Stratego/XT for generation of software connectors.Using Stratego/XT for generation of software connectors.
Using Stratego/XT for generation of software connectors.
 
Domain specific languages and Scala
Domain specific languages and ScalaDomain specific languages and Scala
Domain specific languages and Scala
 
Core Java Introduction | Basics
Core Java Introduction  | BasicsCore Java Introduction  | Basics
Core Java Introduction | Basics
 
1 java programming- introduction
1  java programming- introduction1  java programming- introduction
1 java programming- introduction
 
Functional Programming With Lambdas and Streams in JDK8
 Functional Programming With Lambdas and Streams in JDK8 Functional Programming With Lambdas and Streams in JDK8
Functional Programming With Lambdas and Streams in JDK8
 
Java tutorial PPT
Java tutorial PPTJava tutorial PPT
Java tutorial PPT
 
A Field Guide to DSL Design in Scala
A Field Guide to DSL Design in ScalaA Field Guide to DSL Design in Scala
A Field Guide to DSL Design in Scala
 

Viewers also liked

Interface Design Concepts and Planning: 532 lecture 2
Interface Design Concepts and Planning: 532 lecture 2Interface Design Concepts and Planning: 532 lecture 2
Interface Design Concepts and Planning: 532 lecture 2
Don Stanley
 
LSC332 Creating Your Own Brand
LSC332 Creating Your Own BrandLSC332 Creating Your Own Brand
LSC332 Creating Your Own Brand
Don Stanley
 
Web Design Core Concepts
Web Design Core ConceptsWeb Design Core Concepts
Web Design Core ConceptsDon Stanley
 
Design Concepts & Principles
Design Concepts & PrinciplesDesign Concepts & Principles
Design Concepts & Principles
cyberns_
 
04 design concepts_n_principles
04 design concepts_n_principles04 design concepts_n_principles
04 design concepts_n_principles
University of Computer Science and Technology
 
Web 3.0 - Concepts, Technologies, and Evolving Business Models
Web 3.0 - Concepts, Technologies, and Evolving Business ModelsWeb 3.0 - Concepts, Technologies, and Evolving Business Models
Web 3.0 - Concepts, Technologies, and Evolving Business Models
cghollins
 
Cp7101 design and management of computer networks-design concepts
Cp7101 design and management of computer networks-design conceptsCp7101 design and management of computer networks-design concepts
Cp7101 design and management of computer networks-design concepts
Dr Geetha Mohan
 
Web Application Development Fundamentals
Web Application Development FundamentalsWeb Application Development Fundamentals
Web Application Development Fundamentals
Mohammed Makhlouf
 

Viewers also liked (8)

Interface Design Concepts and Planning: 532 lecture 2
Interface Design Concepts and Planning: 532 lecture 2Interface Design Concepts and Planning: 532 lecture 2
Interface Design Concepts and Planning: 532 lecture 2
 
LSC332 Creating Your Own Brand
LSC332 Creating Your Own BrandLSC332 Creating Your Own Brand
LSC332 Creating Your Own Brand
 
Web Design Core Concepts
Web Design Core ConceptsWeb Design Core Concepts
Web Design Core Concepts
 
Design Concepts & Principles
Design Concepts & PrinciplesDesign Concepts & Principles
Design Concepts & Principles
 
04 design concepts_n_principles
04 design concepts_n_principles04 design concepts_n_principles
04 design concepts_n_principles
 
Web 3.0 - Concepts, Technologies, and Evolving Business Models
Web 3.0 - Concepts, Technologies, and Evolving Business ModelsWeb 3.0 - Concepts, Technologies, and Evolving Business Models
Web 3.0 - Concepts, Technologies, and Evolving Business Models
 
Cp7101 design and management of computer networks-design concepts
Cp7101 design and management of computer networks-design conceptsCp7101 design and management of computer networks-design concepts
Cp7101 design and management of computer networks-design concepts
 
Web Application Development Fundamentals
Web Application Development FundamentalsWeb Application Development Fundamentals
Web Application Development Fundamentals
 

Similar to Itinerary Website (Web Development Document)

Final_D4 recommendation emenu_development
Final_D4 recommendation emenu_developmentFinal_D4 recommendation emenu_development
Final_D4 recommendation emenu_development
Traitet Thepbandansuk
 
DashMash: a Mashup Environment for End User Development
DashMash: a Mashup Environment for End User DevelopmentDashMash: a Mashup Environment for End User Development
DashMash: a Mashup Environment for End User Development
Matteo Picozzi
 
Venus-c: Using open source clouds in eScience
Venus-c: Using open source clouds in eScienceVenus-c: Using open source clouds in eScience
Venus-c: Using open source clouds in eScience
OW2
 
02 Ms Online Identity Session 1
02 Ms Online Identity   Session 102 Ms Online Identity   Session 1
02 Ms Online Identity Session 1
Sivadon Chaisiri
 
Apache Hadoop YARN - Hortonworks Meetup Presentation
Apache Hadoop YARN - Hortonworks Meetup PresentationApache Hadoop YARN - Hortonworks Meetup Presentation
Apache Hadoop YARN - Hortonworks Meetup PresentationHortonworks
 
SPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA
 
OW2 Petals Dragon SOA Linuxtag09
OW2 Petals Dragon SOA Linuxtag09OW2 Petals Dragon SOA Linuxtag09
OW2 Petals Dragon SOA Linuxtag09Catherine Nuel
 
Junos Space SDK - Imagination, Ideas, Innovation
Junos Space SDK - Imagination, Ideas, InnovationJunos Space SDK - Imagination, Ideas, Innovation
Junos Space SDK - Imagination, Ideas, Innovation
Juniper Networks
 
ROLE Vision RWTH Aachen
ROLE Vision RWTH AachenROLE Vision RWTH Aachen
ROLE Vision RWTH Aachen
Ralf Klamma
 
IBM Pulse 2013 session - DevOps for Mobile Apps
IBM Pulse 2013 session - DevOps for Mobile AppsIBM Pulse 2013 session - DevOps for Mobile Apps
IBM Pulse 2013 session - DevOps for Mobile AppsSanjeev Sharma
 
Framework Engineering
Framework EngineeringFramework Engineering
Framework Engineering
YoungSu Son
 
Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Futureelliando dias
 
Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (O...
Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (O...Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (O...
Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (O...
Lucas Jellema
 
Internship
InternshipInternship
Internship
Heesung Lee
 
Ectel nods v2
Ectel nods v2Ectel nods v2
Ectel nods v2nodenot
 
Resource Oriented Architecture in Wireless Sensor Network
Resource Oriented Architecture in Wireless Sensor NetworkResource Oriented Architecture in Wireless Sensor Network
Resource Oriented Architecture in Wireless Sensor NetworkThomas Pham
 

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

D4 recommendation emenu_development
D4 recommendation emenu_developmentD4 recommendation emenu_development
D4 recommendation emenu_development
 
Final_D4 recommendation emenu_development
Final_D4 recommendation emenu_developmentFinal_D4 recommendation emenu_development
Final_D4 recommendation emenu_development
 
DashMash: a Mashup Environment for End User Development
DashMash: a Mashup Environment for End User DevelopmentDashMash: a Mashup Environment for End User Development
DashMash: a Mashup Environment for End User Development
 
Venus-c: Using open source clouds in eScience
Venus-c: Using open source clouds in eScienceVenus-c: Using open source clouds in eScience
Venus-c: Using open source clouds in eScience
 
D4 recommendation emenu_development
D4 recommendation emenu_developmentD4 recommendation emenu_development
D4 recommendation emenu_development
 
Introducing spring
Introducing springIntroducing spring
Introducing spring
 
02 Ms Online Identity Session 1
02 Ms Online Identity   Session 102 Ms Online Identity   Session 1
02 Ms Online Identity Session 1
 
Apache Hadoop YARN - Hortonworks Meetup Presentation
Apache Hadoop YARN - Hortonworks Meetup PresentationApache Hadoop YARN - Hortonworks Meetup Presentation
Apache Hadoop YARN - Hortonworks Meetup Presentation
 
SPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA Java Case Study
SPEC INDIA Java Case Study
 
OW2 Petals Dragon SOA Linuxtag09
OW2 Petals Dragon SOA Linuxtag09OW2 Petals Dragon SOA Linuxtag09
OW2 Petals Dragon SOA Linuxtag09
 
Junos Space SDK - Imagination, Ideas, Innovation
Junos Space SDK - Imagination, Ideas, InnovationJunos Space SDK - Imagination, Ideas, Innovation
Junos Space SDK - Imagination, Ideas, Innovation
 
ROLE Vision RWTH Aachen
ROLE Vision RWTH AachenROLE Vision RWTH Aachen
ROLE Vision RWTH Aachen
 
IBM Pulse 2013 session - DevOps for Mobile Apps
IBM Pulse 2013 session - DevOps for Mobile AppsIBM Pulse 2013 session - DevOps for Mobile Apps
IBM Pulse 2013 session - DevOps for Mobile Apps
 
IT Governance Portals
IT Governance   PortalsIT Governance   Portals
IT Governance Portals
 
Framework Engineering
Framework EngineeringFramework Engineering
Framework Engineering
 
Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Future
 
Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (O...
Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (O...Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (O...
Instant Agility in Oracle Fusion Middleware through Design Time @ Run Time (O...
 
Internship
InternshipInternship
Internship
 
Ectel nods v2
Ectel nods v2Ectel nods v2
Ectel nods v2
 
Resource Oriented Architecture in Wireless Sensor Network
Resource Oriented Architecture in Wireless Sensor NetworkResource Oriented Architecture in Wireless Sensor Network
Resource Oriented Architecture in Wireless Sensor Network
 

More from Traitet Thepbandansuk

IT_FOR_BUSINESS_30NOV15
IT_FOR_BUSINESS_30NOV15IT_FOR_BUSINESS_30NOV15
IT_FOR_BUSINESS_30NOV15
Traitet Thepbandansuk
 
06 1 st_honour_award_certification.pdf
06 1 st_honour_award_certification.pdf06 1 st_honour_award_certification.pdf
06 1 st_honour_award_certification.pdfTraitet Thepbandansuk
 
Change attitude change life scg
Change attitude change life scgChange attitude change life scg
Change attitude change life scg
Traitet Thepbandansuk
 
01 dissertation_Restaurant e-menu on iPad
01 dissertation_Restaurant e-menu on iPad01 dissertation_Restaurant e-menu on iPad
01 dissertation_Restaurant e-menu on iPad
Traitet Thepbandansuk
 
MSc Dissertation: Restaurant e-menu software on iPad
MSc Dissertation: Restaurant e-menu software on iPadMSc Dissertation: Restaurant e-menu software on iPad
MSc Dissertation: Restaurant e-menu software on iPad
Traitet Thepbandansuk
 

More from Traitet Thepbandansuk (20)

IT_FOR_BUSINESS_30NOV15
IT_FOR_BUSINESS_30NOV15IT_FOR_BUSINESS_30NOV15
IT_FOR_BUSINESS_30NOV15
 
06 1 st_honour_award_certification.pdf
06 1 st_honour_award_certification.pdf06 1 st_honour_award_certification.pdf
06 1 st_honour_award_certification.pdf
 
Change attitude change life scg
Change attitude change life scgChange attitude change life scg
Change attitude change life scg
 
01 dissertation_Restaurant e-menu on iPad
01 dissertation_Restaurant e-menu on iPad01 dissertation_Restaurant e-menu on iPad
01 dissertation_Restaurant e-menu on iPad
 
MSc Dissertation: Restaurant e-menu software on iPad
MSc Dissertation: Restaurant e-menu software on iPadMSc Dissertation: Restaurant e-menu software on iPad
MSc Dissertation: Restaurant e-menu software on iPad
 
03 outcome navigator
03 outcome navigator03 outcome navigator
03 outcome navigator
 
O1 research overview
O1 research overviewO1 research overview
O1 research overview
 
D3 users perceptions_emenu
D3 users perceptions_emenuD3 users perceptions_emenu
D3 users perceptions_emenu
 
D2 users perceptions_features
D2 users perceptions_featuresD2 users perceptions_features
D2 users perceptions_features
 
A30 test functional_requirements
A30 test functional_requirementsA30 test functional_requirements
A30 test functional_requirements
 
A22 functions on_web
A22 functions on_webA22 functions on_web
A22 functions on_web
 
A21 functions on_ipad
A21 functions on_ipadA21 functions on_ipad
A21 functions on_ipad
 
A2 annotation approach
A2 annotation approachA2 annotation approach
A2 annotation approach
 
A1 annotation knowledge
A1 annotation knowledgeA1 annotation knowledge
A1 annotation knowledge
 
A1 analysis design
A1 analysis designA1 analysis design
A1 analysis design
 
10 wrap around_conclusion
10 wrap around_conclusion10 wrap around_conclusion
10 wrap around_conclusion
 
02 project plan11_aug12
02 project plan11_aug1202 project plan11_aug12
02 project plan11_aug12
 
00 how to_test_app
00 how to_test_app00 how to_test_app
00 how to_test_app
 
R01 all references
R01 all referencesR01 all references
R01 all references
 
D2 users perceptions_features
D2 users perceptions_featuresD2 users perceptions_features
D2 users perceptions_features
 

Recently uploaded

20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 

Recently uploaded (20)

20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 

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.