Specifying Software Component Frameworks using UML and OCL - PowerPoint PPT Presentation

1 / 33
About This Presentation
Title:

Specifying Software Component Frameworks using UML and OCL

Description:

Project Title: Acxiom Laboratory for Software Architecture and Component Engineering (ALSACE) ... Development Workflow Requirements Definition Phase Domain ... – PowerPoint PPT presentation

Number of Views:175
Avg rating:3.0/5.0
Slides: 34
Provided by: Haif150
Category:

less

Transcript and Presenter's Notes

Title: Specifying Software Component Frameworks using UML and OCL


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
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
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
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
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
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
Architectural Layers
8
Development Workflow
9
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
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
Domain Model
Person
1
1
0..1
0..1
Term
Instructor
Student
1
1

1
1

Section







Student Schedule


Instructor Schedule
1


Course
Bill
12
Use Cases
13
Scenarios
14
Specification Phase (1)
15
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
System Interfaces
17
Business Type Model
ltlttypegtgt
Person
name String
id String
dept String
username String
password String
role3 String
1
1
ltlttypegtgt
0..1
ltlttypegtgt
Student
0..1
Instructor
ltlttypegtgt
name String
Term
name String
id String
id String
termNo int
dept String
dept String
termString
email String
email String
major4 String
name type initval
1
1

1
1




ltlttypegtgt
ltlttypegtgt
Student Schedule
Instructor Schedule

schudulescheduleDetails
instruSchedulescheduleDetails
ltlttypegtgt
Section


sectionNo int

courseID int

termNo int
classroom String
year int


ltlttypegtgt
Course
courseNo String
courseName String
courseID int
18
Core Type
  • Has business identifier, usually independent of
    other identifiers
  • Exists independently, no mandatory relationships
    except with categorizing types

19
Business Type Model with Core Types
ltltinterfacegtgt
ltltcoregtgt
IPersonMgt
Person
name String
id String
dept String
username String
password String
role3 String
1
1
ltlttypegtgt
ltltinterfacegtgt
0..1
ltlttypegtgt
Instructor
0..1
ITermMgt
ltltcoregtgt
Student
name String
Term
name String
ID String
termNo int
ID String
dept String
termString
dept String
email String
email String
major4 String
1
1

1
1




ltlttypegtgt
Student Schedule

ltlttypegtgt
schedulescheduleDetails
Instructor Schedule
ltlttypegtgt
Section
instruSchedulescheduleDetails


sectionNo int

courseID int
termNo int

classroom String
year int


ltltinterfacegtgt
ltltcoregtgt
ICourseMgt
Course
courseNo String
courseName String
courseID int
20
Initial Component Architecture
21
Specification Phase (2)
22
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
System Interface Operation Signatures
24
Business Operation Signatures
25
Constraints on Component Objects
26
Specification Phase (3)
27
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
Interface Information Model
ltltcoregtgt
ltlttypegtgt
Person
ltlttypegtgt
Student
Instructor
name String
name String
id String
name String
id String
dept String


id String
dept String
1
0..1
username String
1
dept String
0..1
email String
password String
email String
major4 String
role3 String

1
1

ltltcoregtgt


Term
ltlttypegtgt
ltlttypegtgt
1
Instructor Schedule
termNo int

Student Schedule
termString
instruSchedule scheduleDetails

1
schedule scheduleDetails




ltlttypegtgt
ltltdata Typegtgt
Section
ltltdata typegtgt
ltltcoregtgt
ScheduleDetails

sectionNo int
sectionDetails

Course
scheduleRef String
courseID int
sectionNo integer
id String
courseNo String
termNo int

termCode String
section sectionDetails
courseName String
classroom String

courseNo String
courseID int
year int
year integer
classroom String
instructorID String
29
OCL Operation Specification
30
Component Specification Diagram
31
Component Specification Constraints
32
Development Workflow Revisited
33
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
Write a Comment
User Comments (0)
About PowerShow.com