Acxiom Laboratory for Software Architecture and Component by 4m9sGk8V

VIEWS: 7 PAGES: 22

									      Component Software:
A New Software Engineering Course


       H. Conrad Cunningham, Yi Liu,
      Pallavi Tadepalli, and Mingxian Fu

    Software Architecture Research Group
   Dept. of Computer & Information Science
            University of Mississippi
              Acknowledgements
• Acxiom Corporation grant
    – “Acxiom Laboratory for Software Architecture and
      Component Engineering (ALSACE)”


• University of Mississippi
    – School of Engineering
    – Department of Computer and Information Science




28 Mar 2003                                              2
                  Why Components?
Contemporary context of “enterprise” software
     –   large, complex distributed systems
     –   shared use of preexisting software and data assets
     –   changing requirements
     –   short development schedules
     –   incremental and decentralized development
     –   economic pressures to increase productivity

Creates needs
     – strong encapsulation (information hiding)
     – easy reuse, composition, and replacement of modules
     – persistence, transactions, security, etc.

28 Mar 2003                                                   3
              What is a Component?
Clemens Szyperski:
 A software component is a unit of
 composition with a contractually specified
 interface and explicit context dependencies
 only. A software component can be deployed
 independently and is subject to composition
 by third parties.


28 Mar 2003                                    4
                    Software Components


             required       provided     required     provided
             interfaces     interfaces   interfaces   interfaces
  interfaces


Component
implementation       Component1               Component2


   28 Mar 2003                                                     5
                   Course Principles
  • Separation of concerns
        – product from the process
        – logic into architectural layers


  • Use and adaptation of standard notations and
    methods
        – build on object-oriented analysis and design techniques
        – construct system of components
        – use Unified Modeling Language (UML)

  • Development of software families
28 Mar 2003                                                         6
                                 Layered Architecture
                        User Interface
                        Creates what the user sees.
                        Handles presentation logic.

                        User Dialog
                        User session logic.
                        Transient state within session.
Application




                        Can sometimes be used with multiple user interfaces.       Client Part
                        System Services
                        Operations are new transactions.
                                                                                   Server Part
                        Can be used with a variety of user dialogs or batch.
                        Components correspond to business systems.
              System




                        No dialog or client-related state.
                        Business Services
                        Components correspond to stable business types.
                        Operations can be combined with others in a transaction.
                        Usually have persistent state (associated database).
              28 Mar 2003                                                                        7
                 Development Workflow
                Business
                requirements


              Requirements
                                                                      Use case
              Domain                                                  models
              models            Technical
                                                Components
                               constrains
Use case
models        Specification           Provisioning           Assembly
                         Component specs                              Applications
                         & architectures

                                                               Test
                                                                       Tested
                                                                       applications

                                                             Deployment
28 Mar 2003                                                                           8
                        Course Structure
1. Component concepts and requirements
   definition
     –        4 weeks


2. Component specification
     –        4 weeks


3. Component implementation
     –        5 weeks

28 Mar 2003                                9
    Part 1: Concepts and Requirements
•        Component concepts
•        Domain modeling
     –        grammatical analysis, etc.
     –        domain concept model (UML class diagrams)
•        Use case modeling
     –        analysis of business processes
     –        examination of create/delete/update of entities
     –        documentation of success and failure scenarios



28 Mar 2003                                                     10
                                 Domain Model
                                                               1
                                               Person
                                                                   1
                                           1
                                                       1
                                                           0..1                  0..1
                          0..1

                                                                                     Administrator
              Student                                  Instructor
                      1                                        1
                                                                       *
                  *
  Student Schedule                                             Instructor Schedule
                                     Course
                             *             1               *           *
              *
                                 *     *       *

                                     Section
                                           *
                                 1     1           1

                                      Term
28 Mar 2003                                                                                          11
                              Use Case Model
                                     Make Schedule
                                                         Change Schedule

                                                         Cancel Schedule

      Student                       Display Schedule

                                     Display Classroll

      Instructor                       Assign PIN

                                    Add,modify, delete course

                                         Add, modify, delete section

                                        Add, modify,delete term
                                                                       Add, modify, delete person

                                           Add, modify, delete student

  Administrator                              Add, modify,delete instructor

                                                    Modify status of person


                   Cancel           Change instructor schedule
                   schedule                                          Make instructor schedule
                              Change student schedule
28 Mar 2003                                                                                         12
                                Scenarios
         Name: Make Schedule
         Initiator: Student
         Goal: Make a valid course schedule
         Success Scenarios:
         1.    Student logs in
         2.    Student asks to make schedule for some term
         3.    Student adds/deletes sections
         4.    Student submits schedule
         5.    System checks schedule validity
         6.    System notifies Billing systen
         Extensions
         1. Login failure
               (a) repeat login
         1a. Repeated login failure
               (a) access denied
         5. Invalid schedule submitted
               (a) system notifies student
               (b) repeat beginning at step 3

28 Mar 2003                                                  13
     Part 2: Component Specification
Design methods
     – Identification of components (core type analysis)
     – Discovery of operations (interaction modeling)
     – Refinement of specification and architecture details


Approach
     – Emphasize systematic methods independent from specific
       component technologies
     – Support mapping of designs to different technologies

28 Mar 2003                                                     14
                    Specification Phase
                          Domain Model                            Use Case Model
 Existing     Develop Business                                          Component
 Interfaces   Type Model                                                Identification

                        Identify Business             Identify System
                        Interfaces                    Interfaces & Ops
                                                                                         Architecture
 Existing                            Create Initial Comp                                 Patterns
 Assets                              Specs & Architecture
                     Business
                     Interfaces
                                                                                Component
                        Discover Business                  System
                        Operations                         Interfaces           Interaction

                       Interfaces    Refine Interfaces &           Refine Component Specs
                                     Ops                           & Architecture


              Define Interfaces
                                                       Component                Component
              Information Models                       Specification            Specs &
                                                                                Architecture
                                             Specify Component-
              Specify Operation              Interface Constraints
              Pre/Postcondictions
28 Mar 2003                                                                                      15
                        Interfaces                          Component Specs &
                                                            Architecture
                  Interface Responsibility
                                                                                   <<interface type>>
                                               <<core>>                            IPersonMgt
                                                   Person           1
                                           1
                                                       1
                  0..1
                                                             0..1                        0..1
                                                           <<type>>                             <<type>>
        <<type>>
                         <<interface type>>                Instructor                           Administrator
        Student          ICourseMgt                                 1
         1

              *                                                         *

                                    <<core>>                                <<type>>
       <<type>>
  Student Schedule                   Course                      Instructor Schedule
              *          *                 1                 *          *
                                *      *           *
                                    <<type>>
                                     Section
                                           *
                               1      1        1                    <<interface type>>
                                    <<core>>                        ITermMgt
28 Mar 2003
                                      Term                                                                      16
       Initial Component Architecture
                                                   IMakeSchedule
                       <<comp spec>>
                                                   IChangeSchedule
                     Course Registration           IUpdatePerson
                          System                   IUpdateCourse
                                                   IUpdateTerm

<<comp spec>>
Billing System
                     IBilling
  <<comp spec>>
    PersonMgr
                      IPersonMgt
               <<comp spec>>                 <<comp spec>>
                 CourseMgr                     TermMgr
                                ICourseMgt                   ITermMgt
 28 Mar 2003                                                         17
  Part 3: Component Implementation
• Concepts of the target technology
     – Enterprise JavaBeans (EJB)

• Mapping specifications to target technology

• Design and implementation of component
  internals

• Assembly, testing, and deployment issues

28 Mar 2003                                     18
                   J2EE Architecture

                                                        EIS
Browser
                                                      Resources


              Web Container   EJB Container
HTML
HTTP
XML             JSP Pages      Enterprise Beans
                Servlets       JMS              JTA
                XML            JDBC (or connectors)
                JavaMail




28 Mar 2003                                                 19
         Architecture Mapping to EJB
  Dialog Software         <<SessionEJB>>
                           MakeSchedule



      System
                           <<SessionEJB>>
    Components            Course Reg System



                          <<SessionEJB>>
                            PersonMgr
      Business
     Components
                    <<EntityEJB>>             <<EntityEJB>>
                       Person                    Student


28 Mar 2003                <<Database>>                   20
                              Person
                      Textbooks
• J. Cheesman and J. Daniels. UML Components: A
  Simple Process for Specifying Component-Based
  Software, Addison Wesley, 2001.
• H. M. Deitel, P. J. Deitel, and S. E. Santry. Advanced
  Java 2 Platform: How to Program, Prentice-Hall, 2002.

• G.T. Heineman and W.T. Councill. Component-Based
  Software Engineering: Putting the Pieces Together,
  Addison Wesley, 2001.

• D. Rosenberg and K. Scott. Use Case Driven Object
  Modeling with UML: A Practical Approach, Addison
  Wesley, 1999.
 28 Mar 2003                                          21
                Instructor Experiences
• 25 graduate students in Fall 2002
• Parts 1 and 2 satisfactory, but needs
   – better integration
   – complete and timely feedback on student projects
   – attention to design by contract methods
• Part 3 unsatisfactory and needs
   –   earlier coverage of and more practice with EJBs
   –   expanded attention to mapping of specifications to EJBs
   –   stable software environment for student projects
   –   coverage of user interface technology (e.g., JSP)

 28 Mar 2003                                                     22

								
To top