Download presentation
Presentation is loading. Please wait.
Published byVictor Wood Modified over 9 years ago
1
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
2
28 Mar 20032 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
3
28 Mar 20033 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.
4
28 Mar 20034 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.
5
28 Mar 20035 Software Components Component1 provided interfaces required interfaces Component implementation Component2 required interfaces provided interfaces
6
28 Mar 20036 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
7
28 Mar 20037 Layered Architecture Can be used with a variety of user dialogs or batch. Client Part Server Part User Interface Creates what the user sees. Handles presentation logic. User Dialog User session logic. Transient state withinsession. Can sometimes be used with multiple user interfaces. Business Services Components correspond to stable business types. Operations can be combined with others in a transaction. Usually have persistent state (associated database). System Services Operations are new transactions. Components correspond to business systems. No dialog or client-related state. System Application Can be used with a variety of user dialogs or batch.
8
28 Mar 20038 Development Workflow Requirements Specification Provisioning Assembly Test Deployment Business requirements Domain models Use case models Technical constrains Use case models Components Component specs & architectures Applications Tested applications
9
28 Mar 20039 Course Structure 1.Component concepts and requirements definition –4 weeks 2.Component specification –4 weeks 3.Component implementation –5 weeks
10
28 Mar 200310 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
11
28 Mar 200311 Domain Model Administrator 0..1 1 1 1 1 * Person 1 * Student Instructor Course Student Schedule Instructor Schedule Term Section *** 11 1 * * 1 * * 1 *
12
28 Mar 200312 Use Case Model
13
28 Mar 200313 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
14
28 Mar 200314 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
15
28 Mar 200315 Specification Phase Architecture Patterns Develop Business Type Model Identify Business Interfaces Identify System Interfaces & Ops Create Initial Comp Specs & Architecture Discover Business Operations Existing Interfaces Domain ModelUse Case Model Component Identification Existing Assets Business Interfaces Define Interfaces Information Models Refine Interfaces & Ops Specify Operation Pre/Postcondictions Specify Component- Interface Constraints Interfaces Refine Component Specs & Architecture System Interfaces Component Interaction Component Specification Interfaces Component Specs & Architecture Component Specs & Architecture
16
28 Mar 200316 Interface Responsibility Administrator > 0..1 1 1 1 1 * Person > 1 * Student > Instructor > Course > Student Schedule > Instructor Schedule > Term > Section > *** 111 * * 1 * * * > IPersonMgt > ICourseMgt > ITermMgt
17
28 Mar 200317 Initial Component Architecture > Course Registration System > Billing System IBilling IPersonMgt ICourseMgt > PersonMgr > CourseMgr IMakeSchedule IChangeSchedule > TermMgr ITermMgt IUpdatePerson IUpdateCourse IUpdateTerm
18
28 Mar 200318 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
19
28 Mar 200319 J2EE Architecture Browser Web Container HTML HTTP XML EJB Container EIS Resources JSP Pages Servlets XML JavaMail Enterprise Beans JMS JTA JDBC (or connectors)
20
28 Mar 200320 Architecture Mapping to EJB Dialog Software System Components Business Components > MakeSchedule > Course Reg System > PersonMgr > Person > Student
21
28 Mar 200321 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.
22
28 Mar 200322 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)
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.