220 likes | 394 Views
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
E N D
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
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.
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.
Software Components required interfaces required interfaces providedinterfaces provided interfaces interfaces Component implementation Component1 Component2
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
User Interface Creates what the user sees. Handles presentation logic. User Dialog User session logic. Transient state within session. Client Part Can sometimes be used with multiple user interfaces. System Services Application Server Part Operations are new transactions. Can be used with a variety of user dialogs or batch. Can be used with a variety of user dialogs or batch. Components correspond to business systems. No dialog or client-related state. System Business Services Components correspond to stable business types. Operations can be combined with others in a transaction. Usually have persistent state (associated database). Layered Architecture
Development Workflow Business requirements Requirements Use case models Domain models Technical constrains Components Use case models Specification Provisioning Assembly Component specs & architectures Applications Test Tested applications Deployment
Course Structure • Component concepts and requirements definition • 4 weeks • Component specification • 4 weeks • Component implementation • 5 weeks
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
1 Person 1 1 1 0..1 0..1 0..1 Administrator Instructor Student 1 1 * * Instructor Schedule Student Schedule Course * * * 1 * * * * Section * 1 1 1 Term Domain 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 Change instructor schedule Cancel schedule Make instructor schedule Change student schedule Use Case Model
Scenarios Name: Make Schedule Initiator:Student Goal: Make a valid course schedule Success Scenarios: • Student logs in • Student asks to make schedule for some term • Student adds/deletes sections • Student submits schedule • System checks schedule validity • 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
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
Domain Model Use Case Model Component Identification Existing Interfaces Develop Business Type Model Identify System Interfaces & Ops Identify Business Interfaces Architecture Patterns Existing Assets Create Initial Comp Specs & Architecture Business Interfaces Component Interaction System Interfaces Discover Business Operations Refine Interfaces & Ops Refine Component Specs & Architecture Interfaces Component Specification Component Specs & Architecture Define Interfaces Information Models Specify Component-Interface Constraints Specify Operation Pre/Postcondictions Component Specs & Architecture Interfaces Specification Phase
<<interface type>>IPersonMgt <<core>> Person 1 1 1 0..1 0..1 0..1 <<type>> <<type>> <<type>> <<interface type>>ICourseMgt Instructor Administrator Student 1 1 * * <<type>> <<core>> <<type>> Instructor Schedule Course Student Schedule * * * 1 * * * * <<type>> Section * <<interface type>>ITermMgt 1 1 1 <<core>> Term Interface Responsibility
<<comp spec>> Course Registration System IMakeSchedule IChangeSchedule IUpdatePerson IUpdateCourse IUpdateTerm <<comp spec>> Billing System IBilling <<comp spec>> PersonMgr IPersonMgt <<comp spec>> CourseMgr <<comp spec>> TermMgr ICourseMgt ITermMgt Initial Component Architecture
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
EIS Resources Browser Web Container EJB Container HTML HTTP XML JSP Pages Servlets XML JavaMail Enterprise Beans JMS JTA JDBC (or connectors) J2EE Architecture
<<SessionEJB>> MakeSchedule Dialog Software System Components <<SessionEJB>> Course Reg System <<SessionEJB>> PersonMgr Business Components <<EntityEJB>> Person <<EntityEJB>> Student <<Database>> Person Architecture Mapping to EJB
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.
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)