Presentation is loading. Please wait.

Presentation is loading. Please wait.

Specifying Software Component Frameworks using UML and OCL H. Conrad Cunningham Yi Liu Software Architecture Research Group Dept. of Computer & Information.

Similar presentations


Presentation on theme: "Specifying Software Component Frameworks using UML and OCL H. Conrad Cunningham Yi Liu Software Architecture Research Group Dept. of Computer & Information."— Presentation transcript:

1 Specifying Software Component Frameworks using UML and OCL H. Conrad Cunningham Yi Liu Software Architecture Research Group Dept. of Computer & Information Science University of Mississippi

2 9-Nov-20012 Project Title: Acxiom Laboratory for Software Architecture and Component Engineering (ALSACE) Sponsor: Acxiom Corporation Type: Curriculum development Begin Date: January 2002 Personnel: –Dr. H. Conrad Cunningham (PI) –Ms. Yi Liu (PhD student) –Student TBD

3 9-Nov-20013 Project Goals Develop software components course –systematic, technology-independent methods –Java 2 Enterprise Edition (J2EE) for practical exercises Design and implement example software systems –simple course registration system? –online voting system? Lay foundation for further software architecture research and course development

4 9-Nov-20014 Course Approach Emphasize abstraction Evolve sequence of system specification models –build on object-oriented analysis and design techniques –construct system of components Employ design patterns and design by contract Use standard notations –Unified Modeling Language (UML) –Object Constraint Language (OCL) Apply J2EE implementation and deployment technologies

5 9-Nov-20015 Software Component A self-contained software construct with conformance to a component standard clearly specified functionality well-defined runtime interfaces that hide implementation details capability for independent deployment support for composition and replacement

6 9-Nov-20016 Reference Books J. Cheesman and J. Daniels. UML Components: A Simple Process for Specifying Component-Based Software, Addison Wesley, 2001. J. Warmer and A. Kleppe. The Object Constraint Language – Precise Modeling with UML, Addison Wesley, 1999. C.T. Arrington. Enterprise Java with UML, Wiley, 2001. D. Alur, J. Crupi, and D. Malks. Core J2EE Patterns: Best Practices and Design Strategies, Prentice Hall, 2001.

7 9-Nov-20017 Architectural Layers

8 9-Nov-20018 Development Workflow

9 9-Nov-20019 Requirements Definition Phase Domain (business concept) model –discover classes for real-world entities and related concepts –show with UML class diagrams Use case model –capture requirements by detailing user interactions –show with UML use case diagrams and scenarios

10 9-Nov-200110 Course Registration System Students registering for classes –select classes initially –modify or display class schedule later Instructors –display teaching schedule and class rosters Billing system –generates tuition bills System administrators –maintain student and instructor lists –manage course information

11 9-Nov-200111 Domain Model * 1 * * * * * * 1 1 * * 1 * * * Course Section Term 1 0..1 Student Instructor Schedule Instructor Person 1 0..1 Student Schedule Bill 1 *

12 9-Nov-200112 Use Cases

13 9-Nov-200113 Scenarios

14 9-Nov-200114 Specification Phase (1)

15 9-Nov-200115 Component Identification Stage Specify system interfaces –give a system interface for each use case Define business type model –remove out-of-scope entities from domain model –specify business rules –identify core business types –create business interface for each core type –allocate responsibilities for other types and associations Identify initial component architecture –assign one component for each business interface

16 9-Nov-200116 System Interfaces

17 9-Nov-200117 Business Type Model Instructor name : String id : String dept : String email : String > Person name : String id : String dept : String username : String password : String role[3] : String > Student name : String id : String dept : String email : String major[4] : String name : type = initval > Term termNo: int term:String > Student Schedule schudule:scheduleDetails > Instructor Schedule instruSchedule:scheduleDetails > Course courseNo : String courseName : String courseID : int > Section sectionNo: int courseID : int termNo : int classroom : String year : int > 1 * * 1 * * 1 * * * * * 1 * 1 0..1 1 * *

18 9-Nov-200118 Core Type Has business identifier, usually independent of other identifiers Exists independently, no mandatory relationships except with categorizing types

19 9-Nov-200119 Business Type Model with Core Types 1 * * 1 * * 1 * * * * * 1 * 1 0..1 1 IPersonMgt > Person name : String id : String dept : String username : String password : String role[3] : String > Student name : String ID : String dept : String email : String major[4] : String > Instructor name : String ID : String dept : String email : String > ITermMgt > Student Schedule schedule:scheduleDetails > Instructor Schedule instruSchedule:scheduleDetails > Term termNo: int term:String > Section sectionNo: int courseID : int termNo : int classroom : String year : int > ICourseMgt > Course courseNo : String courseName : String courseID : int > * *

20 9-Nov-200120 Initial Component Architecture ICourseMgt > Registration System IMakeASchedule IUpdateSchedule IGetInstructorInfo IAdministrator ILogin > Billing System IBilling > PersonMgt IPersonMgt > TermMgt ITermMgt > CourseMgt

21 9-Nov-200121 Specification Phase ( 2)

22 9-Nov-200122 Component Interaction Stage Develop interaction model for each system interface operation by walking thru scenarios Discover business interface operations and their signatures Define any needed component object architecture constraints Refine and factor the interfaces

23 9-Nov-200123 System Interface Operation Signatures

24 9-Nov-200124 Business Operation Signatures

25 9-Nov-200125 Constraints on Component Objects

26 9-Nov-200126 Specification Phase (3)

27 9-Nov-200127 Component Specification Stage Refine each interface specification –define interface information model (subset of business type model) –specify component invariants using OCL –specify operation preconditions and postconditions using OCL Add implementation constraints to components Define component interaction constraints

28 9-Nov-200128 Interface Information Model 1 * * 1 * * 1 * * * * 1 * 1 0..1 1 Person name : String id : String dept : String username : String password : String role[3] : String > Student name : String id : String dept : String email : String major[4] : String > Instructor name : String id : String dept : String email : String > Student Schedule schedule : scheduleDetails > Instructor Schedule instruSchedule : scheduleDetails > Term termNo: int term:String > Course courseNo : String courseName : String courseID : int > Section sectionNo: int courseID : int termNo : int classroom : String year : int > * * sectionDetails sectionNo : integer termCode : String courseNo : String year : integer classroom : String instructorID : String > ScheduleDetails scheduleRef : String id : String section : sectionDetails > *

29 9-Nov-200129 OCL Operation Specification

30 9-Nov-200130 Component Specification Diagram

31 9-Nov-200131 Component Specification Constraints

32 9-Nov-200132 Development Workflow Revisited

33 9-Nov-200133 Summary Develop a software components course –emphasizing rigorous, systematic methods –using standard notations UML and OCL –applying J2EE technologies Reinforce course with example systems –illustrating faithful application of the methods –supporting extension and modification by students –providing means for investigation of development methods


Download ppt "Specifying Software Component Frameworks using UML and OCL H. Conrad Cunningham Yi Liu Software Architecture Research Group Dept. of Computer & Information."

Similar presentations


Ads by Google