SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
Concordia University                            SAD                               SOEN 344
CS & SE                                                                         Winter 2009



Software Architecture
Document
in fulfillment of Soen 344 Winter 2009 – Ver. 1.0
Date: 3/23/2009

Team X



         Date          Rev.   Description                 Author(s)   Contributor(s)




                               Concordia University Montreal

                                            Winter 2009



                                                                                  1|Page
Concordia University                                                          SAD                                                                 SOEN 344
CS & SE                                                                                                                                         Winter 2009

Table of Contents
1.     Introduction ........................................................................................................................................... 3
     1.1.      Purpose of the Document .............................................................................................................. 3
     1.2.      Scope ............................................................................................................................................. 3
     1.3.      Definitions, Acronyms, and Abbreviations ................................................................................... 3
     1.4.      References ..................................................................................................................................... 3
2.     Architectural Representation................................................................................................................. 4
3.     Architectural Goals and Constraints ..................................................................................................... 5
4.     Use-Case View...................................................................................................................................... 5
     4.1.      Architecturally significant use cases ............................................................................................. 5
     4.2.      Brief Description of Use Cases ..................................................................................................... 6
5.     Logical View ......................................................................................................................................... 7
     5.1.      Application Layer ......................................................................................................................... 8
     5.2.      Domain Layer ............................................................................................................................... 8
     5.3.      Data Source Layer......................................................................................................................... 9
6.     Process View ....................................................................................................................................... 10
7.     Deployment View ............................................................................................................................... 11
     7.1.      Client Application Web Browser ................................................................................................ 11
     7.2.      Web server .................................................................................................................................. 11
     7.3.      Database ...................................................................................................................................... 12
8.     Implementation View.......................................................................................................................... 13
     8.1.      Structural Organization of the files ............................................................................................. 13
     8.2.      Source Directory Structure.......................................................................................................... 13
     8.3.      Test File Organization................................................................................................................. 13
     8.4.      SQL files ..................................................................................................................................... 13
     8.5.      Detailed Overview ...................................................................................................................... 14
9.     Concurrency Issues ............................................................................................................................. 15
     9.1.      Optimistic Concurrency management ......................................................................................... 15
10.         WEAA Patterns ............................................................................................................................... 17
     10.1.         Unit of Work ........................................................................................................................... 17
     10.2.         Identity Map ............................................................................................................................ 17
     10.3.         Virtual Proxy ........................................................................................................................... 18

                                                                                                                                                  2|Page
Concordia University                             SAD                                         SOEN 344
CS & SE                                                                                    Winter 2009



   1. Introduction
        1.1. Purpose of the Document


          This document provides the architectural outline of the IEEE Montreal Web Portal system.
       Different architectural views are used to illustrate different aspects of the system. This
       document also presents the significant architectural decisions that are made on the system.

        1.2. Scope

          The scope of the document is to describe the architectural goals and constraints, the Use
       Case View, the Logical View, the Process View, the Deployment View and, the Implementation
       View, based on the “4+1 View Model” and the provided template.

        1.3. Definitions, Acronyms, and Abbreviations

                I3EM – IEEE Montreal
                Architecture View - "A view of the system architecture from a given perspective; it
                 focuses primarily on structure, modularity, essential components, and the main control
                 flows." (Larman, pg. 656)
                UML - Unified Modeling Language
                WEAA – Web Enterprise Software Architecture Patterns
                SOEN 343 - Software Design course
                SOEN 344 - Software Architecture course
                AJAX - Asynchronous JavaScript and XML
                JSON - JavaScript Object Notation
                GWT – Google Web Toolkit


        1.4. References

            1. Fowler, Martin. Patterns of Enterprise Application Architecture. Boston: Addison-
               Wesley, 2003.
            2. Larman, Craig. Applying UML and Patterns: an Introduction to Object-Oriented Analysis
               and Design and Iterative Development. 3rd ed. Upper Saddle River: Prentice Hall PTR,
               2005.
            3. SOEN 343, 344, and 390 websites
            4. Kruchten, Philippe (1995, November). Architectural Blueprints — The “4+1” View
               Model of Software Architecture. IEEE Software 12 (6), pp. 42-50




                                                                                            3|Page
Concordia University                              SAD                                         SOEN 344
CS & SE                                                                                     Winter 2009

   2. Architectural Representation

       The architecture of I3EM is illustrated using the views defined in the “4+1” model [4], but using
       the RUP naming convention. The views used to document the I3EM application are:

       Use Case view
              Audience: all stakeholders
              Area: describes the set of scenarios and/or use cases that are critical to the architecture
              Related Artifacts: Use Case Document

       Logical view
               Audience: I3EM designers
               Area: Functional Requirements, to assess functionality
               Related Artifacts: Package Diagram

       Process view
               Audience: Integrators.
               Area: Non-functional requirements: describes the design's concurrency and
               synchronization aspects. How logical view components are associated to processes.
               Related Artifacts: Process View Diagram

       Implementation view
             Audience: Programmers.
             Area: Software components: describes the structural organization of object files,
             libraries, test codes, etc.
             Related Artifacts: Directory hierarchy structure layout

       Deployment view
             Audience: Deployment managers.
             Area: Topology: describes the mapping of the software onto the hardware and shows
             the system's distributed aspects.
             Related Artifacts: UML Deployment Diagram




                                                                                              4|Page
Concordia University                              SAD                                          SOEN 344
CS & SE                                                                                      Winter 2009

   3. Architectural Goals and Constraints

       The architectural choices where made considering the following goals and constraints.
      The focus of SOEN 343 and SOEN 344 are on Web Enterprise Application patterns (i.e., Front
       Controller, Front Command, Data Mapper, TDG, Identity Map) and Architectural Views (i.e. 4+1
       View). The I3EM is designed based on what is learned in the SOEN courses.
      User authentication will always take place before any data access in I3EM. Complete security of
       data from unauthorized access will be enforced.
      All functional and non-functional requirements will be maintained as the architecture is being
       developed as specified in the Use Case Model .




   4. Use-Case View

       “The use case view describes a view of the system’s architecture that covers the general
       system behavior from the point of view of the involved stakeholders.” This view exposes the
       set of use cases that defines the core functionality of the I3EM Portal.

        4.1. Architecturally significant use cases


       The following are the set of use cases that are architecturally significant to the I3EM system:

      Create User

      Create Event

      Edit Content

      View News




                                                                                               5|Page
Concordia University                             SAD                                          SOEN 344
CS & SE                                                                                     Winter 2009




                                                                    «uses»
                                                  Manage IEEE
                                                                             Create User
                                                  Montreal Users




                                                                    «uses»
                                                   Manage IEEE
                                                                             Create Event
                                                  Montreal Events

                IEEE Montreal Chair



                                                                    «uses»
                                                  Manage IEEE
                                                                             Edit Content
                                                 Montreal Content




                                                                    «uses»
                                                  Manage IEEE
                                                                             View News
                                                  Montreal News




        4.2. Brief Description of Use Cases


             Create User: UC 4.1
               The logged in user can create new users for the system by logging in and selecting the
               “Add New User” link. Then s/he enters the requested information for the user;
               username, password, email address, first name, last name, and role. If any of the
               required information is not entered properly, system will display a warning and does
               not create the account.

             Create Event: UC 4.15
               A privileged user can Login and choose “Events Management” section and input field
               values and choose presented options then click on “New Event” to create a new event
               entry . Attachment and Invitation can also be attached.

             Edit Content: UC 4.33
               A privileged user can Login and choose “Edit Content” section and edit field values s/he
               would like to change, then click on “Save Content” to update the new content.

             View News: UC 4.19
               Any user can view an existing event in the system by simple navigating to the “News
               Section” on the main menu bar.



                                                                                             6|Page
Concordia University                             SAD                                         SOEN 344
CS & SE                                                                                    Winter 2009

   5. Logical View

       “The conceptual organization of the system is presented in the Logical view in terms of layers,
       packages, subsystems, and classes.”

       The logical view of the I3EM system is separated into 3 main Layers: the application layer, the
       domain layer and the data source layer. These 3 main Layers are structured following a 3-layer
       architecture convention: the presentation layer, the domain layer and the data source layer.




                                                                                             7|Page
Concordia University                             SAD                                         SOEN 344
CS & SE                                                                                    Winter 2009

        5.1. Application Layer


                The application Layer in this implementation modifies the traditional Front Controller
                with the template view organization with Ajax components, developed with the Google
                Web Toolkit. The front Controller now handles request by referencing domain objects
                to and from the client to the server. The benefits of this approach allow a more robust
                and richer GUI implementation as the application can behave with characteristics of a
                native desktop application, additionally as most of the data gets cached locally on the
                first access subsequent access result in less stress to the server and more lively
                experience for the end user.




        5.2. Domain Layer


                        The domain package encloses sub-packages used to describe the I3EM system’s
                business logic rules that control and govern the way information is processed. The sub-
                packages are the domain model, the data mapper, the unit of work, the identity map,
                the virtual proxy layer.

                        The domain model sub-package contains a class for each of the major business
                entities: users, roles, events, news and content. It also contains a Layer Supertype
                which is DomainObject to make use of the generic Unit of work and Identity map.



                                                                                            8|Page
Concordia University                             SAD                                          SOEN 344
CS & SE                                                                                     Winter 2009

                       These class objects are used by manager transactions and data mapper objects
                as data containers. Information about an entity is stored as attributes of the
                corresponding class. The information about an entity is passed through methods by
                passing the corresponding domain object as a parameter.

                       The data mapper sub-package contains a data mapper class for each domain
                object class located in the domain object package. This layer also contains a Layer
                Supertype which is AbstractMapper to make use of the advantage of reflection pattern
                used by the unit of work. These data mappers create a layer of indirection between the
                domain logic and the data source. The transactions do not know about the structure of
                the datasource as well as the different queries to access the information.

                        The unit of work is used in the application of the unit of work pattern as
                described in section 10.1.The identity map is used in the application of the identity map
                pattern as described in section 10.2.The virtual proxy layer contains a set of proxy
                classes and loader classes which are used in the application of the lazy load pattern as
                described in section 10.3.

        5.3. Data Source Layer
                  The data source package contains the classes that define the technical services
                infrastructure used to store persistent data. This package is used by the I3EM
                application to interface with the database located on the Stu03 server. The package
                includes a class source file for each class present in the data mapper sub-package.
                These data source objects (Table Data Gateways) are used by data mapper objects to
                access the database directly to store or retrieve information.




                                                                                              9|Page
Concordia University                                          SAD                                                     SOEN 344
CS & SE                                                                                                             Winter 2009

   6. Process View

        “The Process view displays the responsibilities and collaborations among processes and
        threads of the system”, as well as the allocation of logical elements to them.

        In this section, we will describe the tasks, which include processes and threads that are involved
        in the execution and interactions of the system. The following process model expresses the View
        User request organized as executable processes and threads.




        The diagram illustrates a request that is initialized by the authorized user to gain details of specific user account in the
   I3EM system. The user launches a web browser located on a remote computer which creates the web client process. Once
   the user has authenticated his or herself, the user’s main page appears. By selecting the view user option, the web client
   process creates and sends a request to the tomcat server process which was and remains online and available. This
   request thread remains in memory until a result is received from the tomcat server. The request thread is then passed on
   to the appropriate service module for further processing. The retrieve User method in User Manager takes the userID as
   the input and interacts with the UserMapper which in turns interacts with the datasource layer. Subsequently, it returns
   the User objects to the client controller in turns produces the updated view.




                                                                                                                    10 | P a g e
Concordia University                               SAD                                              SOEN 344
CS & SE                                                                                           Winter 2009

   7. Deployment View

       “The Deployment view shows the allocation of the Logical view elements to physical
       processing nodes, and the physical network configuration between nodes.”

       The I3EM system is designed as a web application and is meant to be used as a client/server.
       The I3EM web application is to be deployed on Stu03 Concordia web server located at the
       following address: http://group0i.stu03.encs.concordia.ca/servlet/HomePage.html. The
       application is to be migrated to a similar setup on the IEEE servers.

       In the following UML deployment diagram, the physical network elements involved in the
       deployment of the I3EM system is presented. In the next following section, a description of each
       network element is described.

        7.1. Client Application Web Browser


                 Typical users utilize a client web browser, such as Internet Explorer running on to
               access the IEEE Montreal Web Portal. Communication between the client and the server
               is ensured by the HTTP network protocol. The user will use a graphical interface
               presented as a web page through which he/she can select the desired commands.

        7.2. Web server


                The I3EM web application is currently installed and operates from the Stu03 server.
               This server remains under the control of Concordia University’s Software Engineering
               department and is integrated to the ENCS computer lab network.

                 The web server is maintained by the Software Engineering department and its
               availability may be subject to scheduled (or unscheduled) ENCS network maintenance
               work. Deployment of the web application must be performed by SSH tunneling in order
               to respect Concordia University security restrictions. A client application, such as putty,
               can be used to connect to the Stu03 server and perform the necessary deployment
               actions (I&C documentation).

                 Other security restrictions, such as the following, may apply during the deployment
               phase:

              Database connections are restricted locally (i.e. must connect to localhost)

              Servlets files reads/writes are restricted to the Stu03 file permission policies

              Database tables creation are restricted to the SQL script files deployed

                                                                                                  11 | P a g e
Concordia University                              SAD                                          SOEN 344
CS & SE                                                                                      Winter 2009



        7.3. Database
                 The database utilized by the I3EM web application is MySQL 5. The database server is
               located in the Stu03 server over a Linux based operating system. Any database table’s
               creation is restricted by the SQL script files available in the SQL. No user can create new
               tables through the I3EM system. However, anyone with access rights to the Stu03 server
               may edit the current SQL script files to add new tables, create new SQL script files or
               simply access the MySQL database through a command prompt.




                                                                                             12 | P a g e
Concordia University                                SAD                                             SOEN 344
CS & SE                                                                                           Winter 2009

   8. Implementation View
        8.1. Structural Organization of the files


                  The I3EM system files are divided into four main folders located under the same root
                folder. The root folder is named I3EM. All java source files are located under the src
                folder. All SQL scripts files are located under the SQL folder. Finally, all java test files are
                located under the test folder.

        8.2. Source Directory Structure


                The I3EM application source files are divided into a folder scheme that at the root
                separates the server and client files. After this components are further segregated in
                appropriate folders. A detailed listing is available in 8.5.



        8.3. Test File Organization


                Three main types of testing are scheduled to be performed: system-level testing,
                functional testing and unit testing.

                The tests files are grouped together by component from independent from each other.
                The tests can be run by executing the corresponding test file, for example
                EventsManagerJUNIT.java for all tests related to events management.



        8.4. SQL files
                The SQL folders contain one SQL script files “init.sql” it is used to create the set of
                database tables used by the I3EM system. The table is not empty and filled with some
                meaningful information use for testing.




                                                                                                  13 | P a g e
Concordia University                              SAD                                          SOEN 344
CS & SE                                                                                      Winter 2009

        8.5. Detailed Overview


                The following files directory structure describes the details of the hierarchy used to
                organize the java source files, class files, web pages.




                 Main Package                                       Comments
Soen390_IEEE_M6                                  Root
Soen390_IEEE_M6SQL                              SQL files for databases are here
Soen390_IEEE_M6serverdatasource                Table data gateway to interact with the
                                                 database
Soen390_IEEE_M6serverdomainObject              Package for domain logic classes
Soen390_IEEE_M6serverdomainObjectdataMapper   Data Mapper which maps the domain model
                                                 classes with the corresponding table data
                                                 gateway
Soen390_IEEE_M6serverdomainObjectdomainModel Domain Model represents the major business
                                                 entities
Soen390_IEEE_M6serverdomainObjectexception    Represent special cases
Soen390_IEEE_M6serverdomainObjecthelper       An envelope to store the message and pass it
                                                 along the application
Soen390_IEEE_M6serverdomainObjectidentityMap  Apply the identity map pattern
Soen390_IEEE_M6serverdomainObjectunitOfWork   Apply the unit of work pattern
Soen390_IEEE_M6serverdomainObjectvirtualProxy Apply the lazy load pattern using virtual proxy
Soen390_IEEE_M6clientpages                     GWT source page placeholders with links to
                                                 reference modules
Soen390_IEEE_M6clientcomponentPages            Fully formed page views that correspond to
                                                 what the client browser renders
Soen390_IEEE_M6clientwidgets                   Components developed to enhance
                                                 functionality of the application




                                                                                              14 | P a g e
Concordia University                             SAD                                        SOEN 344
CS & SE                                                                                   Winter 2009


   9. Concurrency Issues
        This section describes how concurrency is handled in the I3EM web portal application.

        9.1. Optimistic Concurrency management


        This “approach prevents conflicts in data accesses by detecting a conflict and rolling back a
       transaction”. In the current version of the I3EM, this approach is implemented using a version
       attribute for the domain objects. An example below illustrates management of a conflict.

         This example follows such that two users logged in Administrator privileges “Admin_A” and
       “Admin_B”, two administrators trying to update a filed related to the same user account. Both
       administrators were previously authenticated and have suitable access to the system. Admin1
       selects Manage User Accounts and selects a user account to update. The session of Admin1 now
       contains the user account record with an associated version number read from the database
       through the I3EM system application. The next administrator, Admin_B, also selects to update
       the same record a second session now contains the same user account record and associated
       version number.

         As Admin_A completes the update, the I3EM web application increments the version number
       and stores the modified user account record back into the database. As Admin_B completes
       his/her update, the system will detect a mismatch in the record’s referenced version number.
       Consequently, the system will return an error message declaring aversion mismatch. Following
       that is this case it will initiate a view refresh.




                                                                                          15 | P a g e
Concordia University   SAD     SOEN 344
CS & SE                      Winter 2009




                             16 | P a g e
Concordia University                                  SAD                                              SOEN 344
CS & SE                                                                                              Winter 2009



   10.          WEAA Patterns

       In the project’s last milestone (Milestone 6), a set of Enterprise application architecture patterns
       were implemented. The following describes these EA patterns.

         10.1. Unit of Work


         The unit of work pattern describes an object that is used to maintain a list of objects affected
       by a business transaction. It is used to coordinate writing of any changes. In this web
       application, the unit of work can help reduce the number of database calls by recording and
       keeping track of modification made to records in the database. No actual modification to the
       database is done until a call to update it (commit) is explicitly made. When a controller object
       needs to execute an insert, update or delete command on a database record, it registers with
       the unit of work the status of objects that needs to be tracked At the end of the transaction, the
       controller sends a final update command (commit) to the unit of work which, in turn, will
       execute all pending changes.

         The unit of work class offers the advantage of avoiding multiple database calls which can
       become expensive operations. It also offers the advantage of avoiding inconsistent reads, a
       known concurrency problem. It also helps avoid lost updates by rolling back the changes at the
       commit phase if a concurrency exception is detected.

         The unit of work class uses reflection to automatically find the corresponding data mapper to
       the domain object. This gives us the advantage of having only one generic unit of work for all
       objects instead of having to code new unit of work classes for each new domain object class.

         10.2. Identity Map


           The identity Map pattern ensures each object is loaded only once by keeping a map of every
         loaded object. In this web application system, the identity map can reduce loading from the
         database by reducing the number of method calls used to access the database. When a data
         mapper object, such as UserMapper, makes a method call to access a User object it will first
         check in the identity map object for it. If the object is there, it will be returned. If it is not there,
         the data mapper object will retrieve it from the database and register it as a clean object with
         the unit of work which adds the object to its identity map.




                                                                                                     17 | P a g e
Concordia University                              SAD                                         SOEN 344
CS & SE                                                                                     Winter 2009

         The identity map class offers the advantage of reducing the number of method calls made to
        the database. Since calls to the database can be an expensive operation, this pattern will help
        reduce costs and enhance system performance. The current developing team therefore
        decided on implementing identity maps for the advantage offered.




        10.3. Virtual Proxy


          The virtual proxy pattern describes an object that doesn’t contain all of the data you need but
        knows how to get it. In this web-based enterprise application system, the virtual proxy pattern
        can reduce memory usage by delaying the loading of an object. An instance of the virtual proxy
        is placed instead of the real object. When this object is actually needed, for example, when the
        methods of this object is called, the same methods of the virtual proxy will load the real object
        from the database and delegate to the corresponding methods of the real object.

         The virtual proxy class offers the advantage of reducing the unnecessary occupation of
        memory resources. This can also further improve system performance since the weight of the
        objects is lighter.




                                                                                            18 | P a g e
Concordia University                 SAD                              SOEN 344
CS & SE                                                             Winter 2009




                       Illustration of Virtual proxy create phase




                        Illustration of Virtual proxy load phase



                                                                    19 | P a g e
Software Architecture Document Final

Weitere ähnliche Inhalte

Was ist angesagt?

SRS Attendance ERP
SRS Attendance ERPSRS Attendance ERP
SRS Attendance ERPAkshun kc
 
Software Design Description (SDD) sample
Software Design Description (SDD) sampleSoftware Design Description (SDD) sample
Software Design Description (SDD) samplePeny Gama
 
Software architecture model
Software architecture modelSoftware architecture model
Software architecture modelEmmanuel Fuchs
 
L2 l3 l4 software process models
L2 l3 l4  software process modelsL2 l3 l4  software process models
L2 l3 l4 software process modelsRushdi Shams
 
Essential Software Architecture - Chapter 1 Understanding Software Architectu...
Essential Software Architecture - Chapter 1 Understanding Software Architectu...Essential Software Architecture - Chapter 1 Understanding Software Architectu...
Essential Software Architecture - Chapter 1 Understanding Software Architectu...John Ortiz
 
Software Requirement Specification For Smart Internet Cafe
Software Requirement Specification For Smart Internet CafeSoftware Requirement Specification For Smart Internet Cafe
Software Requirement Specification For Smart Internet CafeHari
 
Example Software Requirements Specification Document for ReqView
Example Software Requirements Specification Document for ReqViewExample Software Requirements Specification Document for ReqView
Example Software Requirements Specification Document for ReqViewEccam
 
Software Architecture vs design
Software Architecture vs design Software Architecture vs design
Software Architecture vs design Arslan Anwar
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented ArchitectureSandeep Ganji
 
Software architecture document
Software architecture documentSoftware architecture document
Software architecture documentHaidar Arya
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specificationAman Adhikari
 
Requirements management and IBM Rational Jazz solutions
Requirements management and IBM Rational Jazz solutionsRequirements management and IBM Rational Jazz solutions
Requirements management and IBM Rational Jazz solutionsIBM Rational software
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and DesignRa'Fat Al-Msie'deen
 

Was ist angesagt? (20)

SRS Attendance ERP
SRS Attendance ERPSRS Attendance ERP
SRS Attendance ERP
 
Software Design Description (SDD) sample
Software Design Description (SDD) sampleSoftware Design Description (SDD) sample
Software Design Description (SDD) sample
 
Architecture Document Template
Architecture Document TemplateArchitecture Document Template
Architecture Document Template
 
Software architecture model
Software architecture modelSoftware architecture model
Software architecture model
 
L2 l3 l4 software process models
L2 l3 l4  software process modelsL2 l3 l4  software process models
L2 l3 l4 software process models
 
Essential Software Architecture - Chapter 1 Understanding Software Architectu...
Essential Software Architecture - Chapter 1 Understanding Software Architectu...Essential Software Architecture - Chapter 1 Understanding Software Architectu...
Essential Software Architecture - Chapter 1 Understanding Software Architectu...
 
Software Requirement Specification For Smart Internet Cafe
Software Requirement Specification For Smart Internet CafeSoftware Requirement Specification For Smart Internet Cafe
Software Requirement Specification For Smart Internet Cafe
 
Example Software Requirements Specification Document for ReqView
Example Software Requirements Specification Document for ReqViewExample Software Requirements Specification Document for ReqView
Example Software Requirements Specification Document for ReqView
 
Swebok final
Swebok finalSwebok final
Swebok final
 
Ch4 req eng
Ch4 req engCh4 req eng
Ch4 req eng
 
Srs template
Srs templateSrs template
Srs template
 
Software Architecture vs design
Software Architecture vs design Software Architecture vs design
Software Architecture vs design
 
Chap4 RE validation
Chap4 RE validationChap4 RE validation
Chap4 RE validation
 
Prototipado del software
Prototipado del softwarePrototipado del software
Prototipado del software
 
Service Oriented Architecture
Service Oriented ArchitectureService Oriented Architecture
Service Oriented Architecture
 
Software architecture document
Software architecture documentSoftware architecture document
Software architecture document
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
 
Srs
SrsSrs
Srs
 
Requirements management and IBM Rational Jazz solutions
Requirements management and IBM Rational Jazz solutionsRequirements management and IBM Rational Jazz solutions
Requirements management and IBM Rational Jazz solutions
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and Design
 

Ähnlich wie Software Architecture Document Final

Cw comp1640 211453_mo233_20131120_214054_1314
Cw comp1640 211453_mo233_20131120_214054_1314Cw comp1640 211453_mo233_20131120_214054_1314
Cw comp1640 211453_mo233_20131120_214054_1314Owen Muzi
 
University of Gujrat Lahore sub Campus Documentation FYP
University of Gujrat Lahore sub Campus Documentation FYPUniversity of Gujrat Lahore sub Campus Documentation FYP
University of Gujrat Lahore sub Campus Documentation FYPrashidalyasuog
 
Arch06 1
Arch06 1Arch06 1
Arch06 1nazn
 
OOAD-Unit1.ppt
OOAD-Unit1.pptOOAD-Unit1.ppt
OOAD-Unit1.pptrituah
 
Urd dioscuri kbna_v1_1_en_2
Urd dioscuri kbna_v1_1_en_2Urd dioscuri kbna_v1_1_en_2
Urd dioscuri kbna_v1_1_en_2seakquechchhan
 
Reference Model for ISEB Certificates in Enterprise and Solution Architecture
Reference Model for ISEB  Certificates in Enterprise  and Solution ArchitectureReference Model for ISEB  Certificates in Enterprise  and Solution Architecture
Reference Model for ISEB Certificates in Enterprise and Solution ArchitectureAryashree Pritikrishna
 
Software requirements specifications wp2
Software requirements specifications wp2Software requirements specifications wp2
Software requirements specifications wp2ambitlick
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfB.T.L.I.T
 
Viewcontent_jignesh
Viewcontent_jigneshViewcontent_jignesh
Viewcontent_jigneshjignesh197
 
Mohan_Dissertation (1)
Mohan_Dissertation (1)Mohan_Dissertation (1)
Mohan_Dissertation (1)Mohan Bhargav
 
Software Architecture
Software ArchitectureSoftware Architecture
Software ArchitectureVikas Dhyani
 
phd_thesis_PierreCHATEL_en
phd_thesis_PierreCHATEL_enphd_thesis_PierreCHATEL_en
phd_thesis_PierreCHATEL_enPierre CHATEL
 
Software design
Software designSoftware design
Software designambitlick
 

Ähnlich wie Software Architecture Document Final (20)

Cw comp1640 211453_mo233_20131120_214054_1314
Cw comp1640 211453_mo233_20131120_214054_1314Cw comp1640 211453_mo233_20131120_214054_1314
Cw comp1640 211453_mo233_20131120_214054_1314
 
Gomadam Dissertation
Gomadam DissertationGomadam Dissertation
Gomadam Dissertation
 
University of Gujrat Lahore sub Campus Documentation FYP
University of Gujrat Lahore sub Campus Documentation FYPUniversity of Gujrat Lahore sub Campus Documentation FYP
University of Gujrat Lahore sub Campus Documentation FYP
 
Arch06 1
Arch06 1Arch06 1
Arch06 1
 
OOAD-Unit1.ppt
OOAD-Unit1.pptOOAD-Unit1.ppt
OOAD-Unit1.ppt
 
Urd dioscuri kbna_v1_1_en_2
Urd dioscuri kbna_v1_1_en_2Urd dioscuri kbna_v1_1_en_2
Urd dioscuri kbna_v1_1_en_2
 
Reference Model for ISEB Certificates in Enterprise and Solution Architecture
Reference Model for ISEB  Certificates in Enterprise  and Solution ArchitectureReference Model for ISEB  Certificates in Enterprise  and Solution Architecture
Reference Model for ISEB Certificates in Enterprise and Solution Architecture
 
Software requirements specifications wp2
Software requirements specifications wp2Software requirements specifications wp2
Software requirements specifications wp2
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdf
 
Viewcontent_jignesh
Viewcontent_jigneshViewcontent_jignesh
Viewcontent_jignesh
 
Mohan_Dissertation (1)
Mohan_Dissertation (1)Mohan_Dissertation (1)
Mohan_Dissertation (1)
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Software Task Estimation
Software Task EstimationSoftware Task Estimation
Software Task Estimation
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
 
phd_thesis_PierreCHATEL_en
phd_thesis_PierreCHATEL_enphd_thesis_PierreCHATEL_en
phd_thesis_PierreCHATEL_en
 
Software design
Software designSoftware design
Software design
 
SDD-FinalYearProject
SDD-FinalYearProjectSDD-FinalYearProject
SDD-FinalYearProject
 
Open Source adobe lightroom like
Open Source adobe lightroom likeOpen Source adobe lightroom like
Open Source adobe lightroom like
 
Ch10
Ch10Ch10
Ch10
 
Ch10
Ch10Ch10
Ch10
 

Kürzlich hochgeladen

Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfmaor17
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdfAndrey Devyatkin
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 

Kürzlich hochgeladen (20)

Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 

Software Architecture Document Final

  • 1. Concordia University SAD SOEN 344 CS & SE Winter 2009 Software Architecture Document in fulfillment of Soen 344 Winter 2009 – Ver. 1.0 Date: 3/23/2009 Team X Date Rev. Description Author(s) Contributor(s) Concordia University Montreal Winter 2009 1|Page
  • 2. Concordia University SAD SOEN 344 CS & SE Winter 2009 Table of Contents 1. Introduction ........................................................................................................................................... 3 1.1. Purpose of the Document .............................................................................................................. 3 1.2. Scope ............................................................................................................................................. 3 1.3. Definitions, Acronyms, and Abbreviations ................................................................................... 3 1.4. References ..................................................................................................................................... 3 2. Architectural Representation................................................................................................................. 4 3. Architectural Goals and Constraints ..................................................................................................... 5 4. Use-Case View...................................................................................................................................... 5 4.1. Architecturally significant use cases ............................................................................................. 5 4.2. Brief Description of Use Cases ..................................................................................................... 6 5. Logical View ......................................................................................................................................... 7 5.1. Application Layer ......................................................................................................................... 8 5.2. Domain Layer ............................................................................................................................... 8 5.3. Data Source Layer......................................................................................................................... 9 6. Process View ....................................................................................................................................... 10 7. Deployment View ............................................................................................................................... 11 7.1. Client Application Web Browser ................................................................................................ 11 7.2. Web server .................................................................................................................................. 11 7.3. Database ...................................................................................................................................... 12 8. Implementation View.......................................................................................................................... 13 8.1. Structural Organization of the files ............................................................................................. 13 8.2. Source Directory Structure.......................................................................................................... 13 8.3. Test File Organization................................................................................................................. 13 8.4. SQL files ..................................................................................................................................... 13 8.5. Detailed Overview ...................................................................................................................... 14 9. Concurrency Issues ............................................................................................................................. 15 9.1. Optimistic Concurrency management ......................................................................................... 15 10. WEAA Patterns ............................................................................................................................... 17 10.1. Unit of Work ........................................................................................................................... 17 10.2. Identity Map ............................................................................................................................ 17 10.3. Virtual Proxy ........................................................................................................................... 18 2|Page
  • 3. Concordia University SAD SOEN 344 CS & SE Winter 2009 1. Introduction 1.1. Purpose of the Document This document provides the architectural outline of the IEEE Montreal Web Portal system. Different architectural views are used to illustrate different aspects of the system. This document also presents the significant architectural decisions that are made on the system. 1.2. Scope The scope of the document is to describe the architectural goals and constraints, the Use Case View, the Logical View, the Process View, the Deployment View and, the Implementation View, based on the “4+1 View Model” and the provided template. 1.3. Definitions, Acronyms, and Abbreviations  I3EM – IEEE Montreal  Architecture View - "A view of the system architecture from a given perspective; it focuses primarily on structure, modularity, essential components, and the main control flows." (Larman, pg. 656)  UML - Unified Modeling Language  WEAA – Web Enterprise Software Architecture Patterns  SOEN 343 - Software Design course  SOEN 344 - Software Architecture course  AJAX - Asynchronous JavaScript and XML  JSON - JavaScript Object Notation  GWT – Google Web Toolkit 1.4. References 1. Fowler, Martin. Patterns of Enterprise Application Architecture. Boston: Addison- Wesley, 2003. 2. Larman, Craig. Applying UML and Patterns: an Introduction to Object-Oriented Analysis and Design and Iterative Development. 3rd ed. Upper Saddle River: Prentice Hall PTR, 2005. 3. SOEN 343, 344, and 390 websites 4. Kruchten, Philippe (1995, November). Architectural Blueprints — The “4+1” View Model of Software Architecture. IEEE Software 12 (6), pp. 42-50 3|Page
  • 4. Concordia University SAD SOEN 344 CS & SE Winter 2009 2. Architectural Representation The architecture of I3EM is illustrated using the views defined in the “4+1” model [4], but using the RUP naming convention. The views used to document the I3EM application are: Use Case view Audience: all stakeholders Area: describes the set of scenarios and/or use cases that are critical to the architecture Related Artifacts: Use Case Document Logical view Audience: I3EM designers Area: Functional Requirements, to assess functionality Related Artifacts: Package Diagram Process view Audience: Integrators. Area: Non-functional requirements: describes the design's concurrency and synchronization aspects. How logical view components are associated to processes. Related Artifacts: Process View Diagram Implementation view Audience: Programmers. Area: Software components: describes the structural organization of object files, libraries, test codes, etc. Related Artifacts: Directory hierarchy structure layout Deployment view Audience: Deployment managers. Area: Topology: describes the mapping of the software onto the hardware and shows the system's distributed aspects. Related Artifacts: UML Deployment Diagram 4|Page
  • 5. Concordia University SAD SOEN 344 CS & SE Winter 2009 3. Architectural Goals and Constraints The architectural choices where made considering the following goals and constraints.  The focus of SOEN 343 and SOEN 344 are on Web Enterprise Application patterns (i.e., Front Controller, Front Command, Data Mapper, TDG, Identity Map) and Architectural Views (i.e. 4+1 View). The I3EM is designed based on what is learned in the SOEN courses.  User authentication will always take place before any data access in I3EM. Complete security of data from unauthorized access will be enforced.  All functional and non-functional requirements will be maintained as the architecture is being developed as specified in the Use Case Model . 4. Use-Case View “The use case view describes a view of the system’s architecture that covers the general system behavior from the point of view of the involved stakeholders.” This view exposes the set of use cases that defines the core functionality of the I3EM Portal. 4.1. Architecturally significant use cases The following are the set of use cases that are architecturally significant to the I3EM system:  Create User  Create Event  Edit Content  View News 5|Page
  • 6. Concordia University SAD SOEN 344 CS & SE Winter 2009 «uses» Manage IEEE Create User Montreal Users «uses» Manage IEEE Create Event Montreal Events IEEE Montreal Chair «uses» Manage IEEE Edit Content Montreal Content «uses» Manage IEEE View News Montreal News 4.2. Brief Description of Use Cases  Create User: UC 4.1 The logged in user can create new users for the system by logging in and selecting the “Add New User” link. Then s/he enters the requested information for the user; username, password, email address, first name, last name, and role. If any of the required information is not entered properly, system will display a warning and does not create the account.  Create Event: UC 4.15 A privileged user can Login and choose “Events Management” section and input field values and choose presented options then click on “New Event” to create a new event entry . Attachment and Invitation can also be attached.  Edit Content: UC 4.33 A privileged user can Login and choose “Edit Content” section and edit field values s/he would like to change, then click on “Save Content” to update the new content.  View News: UC 4.19 Any user can view an existing event in the system by simple navigating to the “News Section” on the main menu bar. 6|Page
  • 7. Concordia University SAD SOEN 344 CS & SE Winter 2009 5. Logical View “The conceptual organization of the system is presented in the Logical view in terms of layers, packages, subsystems, and classes.” The logical view of the I3EM system is separated into 3 main Layers: the application layer, the domain layer and the data source layer. These 3 main Layers are structured following a 3-layer architecture convention: the presentation layer, the domain layer and the data source layer. 7|Page
  • 8. Concordia University SAD SOEN 344 CS & SE Winter 2009 5.1. Application Layer The application Layer in this implementation modifies the traditional Front Controller with the template view organization with Ajax components, developed with the Google Web Toolkit. The front Controller now handles request by referencing domain objects to and from the client to the server. The benefits of this approach allow a more robust and richer GUI implementation as the application can behave with characteristics of a native desktop application, additionally as most of the data gets cached locally on the first access subsequent access result in less stress to the server and more lively experience for the end user. 5.2. Domain Layer The domain package encloses sub-packages used to describe the I3EM system’s business logic rules that control and govern the way information is processed. The sub- packages are the domain model, the data mapper, the unit of work, the identity map, the virtual proxy layer. The domain model sub-package contains a class for each of the major business entities: users, roles, events, news and content. It also contains a Layer Supertype which is DomainObject to make use of the generic Unit of work and Identity map. 8|Page
  • 9. Concordia University SAD SOEN 344 CS & SE Winter 2009 These class objects are used by manager transactions and data mapper objects as data containers. Information about an entity is stored as attributes of the corresponding class. The information about an entity is passed through methods by passing the corresponding domain object as a parameter. The data mapper sub-package contains a data mapper class for each domain object class located in the domain object package. This layer also contains a Layer Supertype which is AbstractMapper to make use of the advantage of reflection pattern used by the unit of work. These data mappers create a layer of indirection between the domain logic and the data source. The transactions do not know about the structure of the datasource as well as the different queries to access the information. The unit of work is used in the application of the unit of work pattern as described in section 10.1.The identity map is used in the application of the identity map pattern as described in section 10.2.The virtual proxy layer contains a set of proxy classes and loader classes which are used in the application of the lazy load pattern as described in section 10.3. 5.3. Data Source Layer The data source package contains the classes that define the technical services infrastructure used to store persistent data. This package is used by the I3EM application to interface with the database located on the Stu03 server. The package includes a class source file for each class present in the data mapper sub-package. These data source objects (Table Data Gateways) are used by data mapper objects to access the database directly to store or retrieve information. 9|Page
  • 10. Concordia University SAD SOEN 344 CS & SE Winter 2009 6. Process View “The Process view displays the responsibilities and collaborations among processes and threads of the system”, as well as the allocation of logical elements to them. In this section, we will describe the tasks, which include processes and threads that are involved in the execution and interactions of the system. The following process model expresses the View User request organized as executable processes and threads. The diagram illustrates a request that is initialized by the authorized user to gain details of specific user account in the I3EM system. The user launches a web browser located on a remote computer which creates the web client process. Once the user has authenticated his or herself, the user’s main page appears. By selecting the view user option, the web client process creates and sends a request to the tomcat server process which was and remains online and available. This request thread remains in memory until a result is received from the tomcat server. The request thread is then passed on to the appropriate service module for further processing. The retrieve User method in User Manager takes the userID as the input and interacts with the UserMapper which in turns interacts with the datasource layer. Subsequently, it returns the User objects to the client controller in turns produces the updated view. 10 | P a g e
  • 11. Concordia University SAD SOEN 344 CS & SE Winter 2009 7. Deployment View “The Deployment view shows the allocation of the Logical view elements to physical processing nodes, and the physical network configuration between nodes.” The I3EM system is designed as a web application and is meant to be used as a client/server. The I3EM web application is to be deployed on Stu03 Concordia web server located at the following address: http://group0i.stu03.encs.concordia.ca/servlet/HomePage.html. The application is to be migrated to a similar setup on the IEEE servers. In the following UML deployment diagram, the physical network elements involved in the deployment of the I3EM system is presented. In the next following section, a description of each network element is described. 7.1. Client Application Web Browser Typical users utilize a client web browser, such as Internet Explorer running on to access the IEEE Montreal Web Portal. Communication between the client and the server is ensured by the HTTP network protocol. The user will use a graphical interface presented as a web page through which he/she can select the desired commands. 7.2. Web server The I3EM web application is currently installed and operates from the Stu03 server. This server remains under the control of Concordia University’s Software Engineering department and is integrated to the ENCS computer lab network. The web server is maintained by the Software Engineering department and its availability may be subject to scheduled (or unscheduled) ENCS network maintenance work. Deployment of the web application must be performed by SSH tunneling in order to respect Concordia University security restrictions. A client application, such as putty, can be used to connect to the Stu03 server and perform the necessary deployment actions (I&C documentation). Other security restrictions, such as the following, may apply during the deployment phase:  Database connections are restricted locally (i.e. must connect to localhost)  Servlets files reads/writes are restricted to the Stu03 file permission policies  Database tables creation are restricted to the SQL script files deployed 11 | P a g e
  • 12. Concordia University SAD SOEN 344 CS & SE Winter 2009 7.3. Database The database utilized by the I3EM web application is MySQL 5. The database server is located in the Stu03 server over a Linux based operating system. Any database table’s creation is restricted by the SQL script files available in the SQL. No user can create new tables through the I3EM system. However, anyone with access rights to the Stu03 server may edit the current SQL script files to add new tables, create new SQL script files or simply access the MySQL database through a command prompt. 12 | P a g e
  • 13. Concordia University SAD SOEN 344 CS & SE Winter 2009 8. Implementation View 8.1. Structural Organization of the files The I3EM system files are divided into four main folders located under the same root folder. The root folder is named I3EM. All java source files are located under the src folder. All SQL scripts files are located under the SQL folder. Finally, all java test files are located under the test folder. 8.2. Source Directory Structure The I3EM application source files are divided into a folder scheme that at the root separates the server and client files. After this components are further segregated in appropriate folders. A detailed listing is available in 8.5. 8.3. Test File Organization Three main types of testing are scheduled to be performed: system-level testing, functional testing and unit testing. The tests files are grouped together by component from independent from each other. The tests can be run by executing the corresponding test file, for example EventsManagerJUNIT.java for all tests related to events management. 8.4. SQL files The SQL folders contain one SQL script files “init.sql” it is used to create the set of database tables used by the I3EM system. The table is not empty and filled with some meaningful information use for testing. 13 | P a g e
  • 14. Concordia University SAD SOEN 344 CS & SE Winter 2009 8.5. Detailed Overview The following files directory structure describes the details of the hierarchy used to organize the java source files, class files, web pages. Main Package Comments Soen390_IEEE_M6 Root Soen390_IEEE_M6SQL SQL files for databases are here Soen390_IEEE_M6serverdatasource Table data gateway to interact with the database Soen390_IEEE_M6serverdomainObject Package for domain logic classes Soen390_IEEE_M6serverdomainObjectdataMapper Data Mapper which maps the domain model classes with the corresponding table data gateway Soen390_IEEE_M6serverdomainObjectdomainModel Domain Model represents the major business entities Soen390_IEEE_M6serverdomainObjectexception Represent special cases Soen390_IEEE_M6serverdomainObjecthelper An envelope to store the message and pass it along the application Soen390_IEEE_M6serverdomainObjectidentityMap Apply the identity map pattern Soen390_IEEE_M6serverdomainObjectunitOfWork Apply the unit of work pattern Soen390_IEEE_M6serverdomainObjectvirtualProxy Apply the lazy load pattern using virtual proxy Soen390_IEEE_M6clientpages GWT source page placeholders with links to reference modules Soen390_IEEE_M6clientcomponentPages Fully formed page views that correspond to what the client browser renders Soen390_IEEE_M6clientwidgets Components developed to enhance functionality of the application 14 | P a g e
  • 15. Concordia University SAD SOEN 344 CS & SE Winter 2009 9. Concurrency Issues This section describes how concurrency is handled in the I3EM web portal application. 9.1. Optimistic Concurrency management This “approach prevents conflicts in data accesses by detecting a conflict and rolling back a transaction”. In the current version of the I3EM, this approach is implemented using a version attribute for the domain objects. An example below illustrates management of a conflict. This example follows such that two users logged in Administrator privileges “Admin_A” and “Admin_B”, two administrators trying to update a filed related to the same user account. Both administrators were previously authenticated and have suitable access to the system. Admin1 selects Manage User Accounts and selects a user account to update. The session of Admin1 now contains the user account record with an associated version number read from the database through the I3EM system application. The next administrator, Admin_B, also selects to update the same record a second session now contains the same user account record and associated version number. As Admin_A completes the update, the I3EM web application increments the version number and stores the modified user account record back into the database. As Admin_B completes his/her update, the system will detect a mismatch in the record’s referenced version number. Consequently, the system will return an error message declaring aversion mismatch. Following that is this case it will initiate a view refresh. 15 | P a g e
  • 16. Concordia University SAD SOEN 344 CS & SE Winter 2009 16 | P a g e
  • 17. Concordia University SAD SOEN 344 CS & SE Winter 2009 10. WEAA Patterns In the project’s last milestone (Milestone 6), a set of Enterprise application architecture patterns were implemented. The following describes these EA patterns. 10.1. Unit of Work The unit of work pattern describes an object that is used to maintain a list of objects affected by a business transaction. It is used to coordinate writing of any changes. In this web application, the unit of work can help reduce the number of database calls by recording and keeping track of modification made to records in the database. No actual modification to the database is done until a call to update it (commit) is explicitly made. When a controller object needs to execute an insert, update or delete command on a database record, it registers with the unit of work the status of objects that needs to be tracked At the end of the transaction, the controller sends a final update command (commit) to the unit of work which, in turn, will execute all pending changes. The unit of work class offers the advantage of avoiding multiple database calls which can become expensive operations. It also offers the advantage of avoiding inconsistent reads, a known concurrency problem. It also helps avoid lost updates by rolling back the changes at the commit phase if a concurrency exception is detected. The unit of work class uses reflection to automatically find the corresponding data mapper to the domain object. This gives us the advantage of having only one generic unit of work for all objects instead of having to code new unit of work classes for each new domain object class. 10.2. Identity Map The identity Map pattern ensures each object is loaded only once by keeping a map of every loaded object. In this web application system, the identity map can reduce loading from the database by reducing the number of method calls used to access the database. When a data mapper object, such as UserMapper, makes a method call to access a User object it will first check in the identity map object for it. If the object is there, it will be returned. If it is not there, the data mapper object will retrieve it from the database and register it as a clean object with the unit of work which adds the object to its identity map. 17 | P a g e
  • 18. Concordia University SAD SOEN 344 CS & SE Winter 2009 The identity map class offers the advantage of reducing the number of method calls made to the database. Since calls to the database can be an expensive operation, this pattern will help reduce costs and enhance system performance. The current developing team therefore decided on implementing identity maps for the advantage offered. 10.3. Virtual Proxy The virtual proxy pattern describes an object that doesn’t contain all of the data you need but knows how to get it. In this web-based enterprise application system, the virtual proxy pattern can reduce memory usage by delaying the loading of an object. An instance of the virtual proxy is placed instead of the real object. When this object is actually needed, for example, when the methods of this object is called, the same methods of the virtual proxy will load the real object from the database and delegate to the corresponding methods of the real object. The virtual proxy class offers the advantage of reducing the unnecessary occupation of memory resources. This can also further improve system performance since the weight of the objects is lighter. 18 | P a g e
  • 19. Concordia University SAD SOEN 344 CS & SE Winter 2009 Illustration of Virtual proxy create phase Illustration of Virtual proxy load phase 19 | P a g e