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

Slides:



Advertisements
Similar presentations
Keeping Secrets Within a Family: Rediscovering Parnas H. Conrad Cunningham Computer & Information Science, University of Mississippi Cuihua Zhang Computer.
Advertisements

Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall A.1.
Introduction To System Analysis and Design
Fall 2007CS 225 Introduction to Software Design Chapter 1.
Uml and Use Cases CS 414, Software Engineering I Mark Ardis Rose-Hulman Institute January 9, 2003.
NJIT Use Case Model Operation Contracts Prepared By: Sumit Sharma.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
1 SWE Introduction to Software Engineering Lecture 5.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
Lecture 11 Lecture 1 Course Introduction DT249 Software Engineering 2 Pat Browne
CMPT 370: Information Systems Design Instructor: Curtis Cartmill, Simon Fraser University – Summer 2003 Lecture Topic: Layered Architecture Class Exercise:
Page 1 R Copyright © 1997 by Rational Software Corporation Analysis and Design with UML.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
UML Diagrams: Sequence Diagrams The Requirements Model, and The Dynamic Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Introduction To System Analysis and design
UML - Development Process 1 Software Development Process Using UML (2)
Component Software: A New Software Engineering Course H. Conrad Cunningham, Yi Liu, Pallavi Tadepalli, and Mingxian Fu Software Architecture Research Group.
Object-oriented methodology object models use case modeling unified modeling language the data dictionary the cornucopia case portfolio project Systems.
Mapping Component Specifications to Enterprise JavaBeans Implementations Yi Liu and H. Conrad Cunningham Software Architecture Research Group Department.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Unified Modeling Language, Version 2.0
1 SYS366 Lecture Visual Modeling and Business Use Case Diagrams.
Lecture 3: Visual Modeling & UML 1. 2 Copyright © 1997 by Rational Software Corporation Computer System Business Process Order Item Ship via “ Modeling.
Introduction to Software Design Chapter 1. Chapter Objectives  To become familiar with the software challenge and the software life cycle  To understand.
Introduction To System Analysis and Design
Object-Oriented Analysis and Design An Introduction.
UML Diagrams: Sequence Diagrams The Requirements Model, and The Dynamic Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical.
Requirements Analysis Visual Modeling] Lab 02 Visual Modeling (from Visual Modeling with Rational Rose and UML) A way of thinking about problems using.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
111 Protocols CS 4311 Wirfs Brock et al., Designing Object-Oriented Software, Prentice Hall, (Chapter 8) Meyer, B., Applying design by contract,
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 4: Restaurant.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Engineering Lab Use Cases Faculty of Information system Technology.
Conceptual Model or Domain Models Chapter10 Applying UML and pattern.
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
CS 772: Global Knowledge Networks V. “Juggy” Jagannathan CSEE, West Virginia University.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Introduction to OOAD and the UML
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
DESIGN OF SOFTWARE ARCHITECTURE
1 Unified Modeling Language, Version 2.0 Chapter 2.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
1 ECCF Training Computationally Independent Model (CIM) ECCF Training Working Group January 2011.
UML - Development Process 1 Software Development Process Using UML.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Coming up: Unified Modeling Language Introduction.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
1 BTS330 Visual Modeling. What is Visual Modeling? 2 Copyright © 1997 by Rational Software Corporation Computer System Business Process Order Item Ship.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
1 SYS366 Week 2 - Lecture 2 Visual Modeling & UML.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Introduction to the Unified Modeling Language.
V7 Foundation Series Vignette Education Services.
Unit 1 - Introducing Abstract Data Type (ADT) Part 1.
COMP9321 Web Application Engineering Semester 2, 2016
UML Diagrams: Class Diagrams The Static Analysis Model
Systems Analysis and Design With UML 2
Introduction to the Unified Modeling Language
Chapter 20 Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
Copyright 2007 Oxford Consulting, Ltd
Appendix A Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
Software Architecture & Design
Introduction to OOAD and the UML
Presentation transcript:

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

9-Nov 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

9-Nov 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

9-Nov 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

9-Nov 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

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

9-Nov Architectural Layers

9-Nov Development Workflow

9-Nov 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

9-Nov 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

9-Nov Domain Model * 1 * * * * * * 1 1 * * 1 * * * Course Section Term Student Instructor Schedule Instructor Person Student Schedule Bill 1 *

9-Nov Use Cases

9-Nov Scenarios

9-Nov Specification Phase (1)

9-Nov 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

9-Nov System Interfaces

9-Nov Business Type Model Instructor name : String id : String dept : String String > Person name : String id : String dept : String username : String password : String role[3] : String > Student name : String id : String dept : String 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 * * *

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

9-Nov Business Type Model with Core Types 1 * * 1 * * 1 * * * * * 1 * IPersonMgt > Person name : String id : String dept : String username : String password : String role[3] : String > Student name : String ID : String dept : String String major[4] : String > Instructor name : String ID : String dept : String 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 > * *

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

9-Nov Specification Phase ( 2)

9-Nov 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

9-Nov System Interface Operation Signatures

9-Nov Business Operation Signatures

9-Nov Constraints on Component Objects

9-Nov Specification Phase (3)

9-Nov 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

9-Nov Interface Information Model 1 * * 1 * * 1 * * * * 1 * Person name : String id : String dept : String username : String password : String role[3] : String > Student name : String id : String dept : String String major[4] : String > Instructor name : String id : String dept : String 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 > *

9-Nov OCL Operation Specification

9-Nov Component Specification Diagram

9-Nov Component Specification Constraints

9-Nov Development Workflow Revisited

9-Nov 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