Using UML Software engineering with objects and components

Similar documents
PESIT SOUTH CAMPUS 10CS71-OBJECT-ORIENTED MODELING AND DESIGN. Faculty: Mrs.Sumana Sinha No. Of Hours: 52. Outcomes

PROCESS USE CASES: USE CASES IDENTIFICATION

Principles of Public Speaking

An OO Framework for building Intelligence and Learning properties in Software Agents

Implementing a tool to Support KAOS-Beta Process Model Using EPF

PH.D. IN COMPUTER SCIENCE PROGRAM (POST M.S.)

Specification of the Verity Learning Companion and Self-Assessment Tool

Introduction to Modeling and Simulation. Conceptual Modeling. OSMAN BALCI Professor

Moderator: Gary Weckman Ohio University USA

Objects Identification in Object-Oriented Software Development - A Taxonomy and Survey on Techniques

ECE-492 SENIOR ADVANCED DESIGN PROJECT

BENG Simulation Modeling of Biological Systems. BENG 5613 Syllabus: Page 1 of 9. SPECIAL NOTE No. 1:

A R "! I,,, !~ii ii! A ow ' r.-ii ' i ' JA' V5, 9. MiN, ;

Integrating simulation into the engineering curriculum: a case study

CRC cards to support the development and maintenance of product configuration systems

The IDN Variant Issues Project: A Study of Issues Related to the Delegation of IDN Variant TLDs. 20 April 2011

Deploying Agile Practices in Organizations: A Case Study

A Pipelined Approach for Iterative Software Process Model

Different Requirements Gathering Techniques and Issues. Javaria Mushtaq

Knowledge-Based - Systems

Class Responsibility Assignment (CRA) for Use Case Specification to Sequence Diagrams (UC2SD)

CPS122 Lecture: Identifying Responsibilities; CRC Cards. 1. To show how to use CRC cards to identify objects and find responsibilities

Business Students. AACSB Accredited Business Programs

Strategic Planning for Retaining Women in Undergraduate Computing

P. Belsis, C. Sgouropoulou, K. Sfikas, G. Pantziou, C. Skourlas, J. Varnas

Designing Educational Computer Games to Enhance Teaching and Learning

Beyond the contextual: the importance of theoretical knowledge in vocational qualifications & the implications for work

Using Virtual Manipulatives to Support Teaching and Learning Mathematics

Ontologies vs. classification systems

Pragmatic Use Case Writing

Evaluation of Usage Patterns for Web-based Educational Systems using Web Mining

Evaluation of Usage Patterns for Web-based Educational Systems using Web Mining

CPS122 Lecture: Identifying Responsibilities; CRC Cards. 1. To show how to use CRC cards to identify objects and find responsibilities

Perspectives of Information Systems

Including the Microsoft Solution Framework as an agile method into the V-Modell XT

An NFR Pattern Approach to Dealing with Non-Functional Requirements

Data Modeling and Databases II Entity-Relationship (ER) Model. Gustavo Alonso, Ce Zhang Systems Group Department of Computer Science ETH Zürich

IBM Software Group. Mastering Requirements Management with Use Cases Module 6: Define the System

InTraServ. Dissemination Plan INFORMATION SOCIETY TECHNOLOGIES (IST) PROGRAMME. Intelligent Training Service for Management Training in SMEs

Community-oriented Course Authoring to Support Topic-based Student Modeling

Development of an IT Curriculum. Dr. Jochen Koubek Humboldt-Universität zu Berlin Technische Universität Berlin 2008

Teaching Tornado. From Communication Models to Releases. Stephan Krusche. Department of Computer Science, Technische Universitaet Muenchen

Advanced Grammar in Use

Generating Test Cases From Use Cases

Software Development Plan

CREATING SHARABLE LEARNING OBJECTS FROM EXISTING DIGITAL COURSE CONTENT

ONG KONG OUTLINING YOUR SUCCESS SIDLEY S INTERN AND TRAINEE SOLICITOR PROGRAM

Evaluating the Effectiveness of Mindmapping in Generating Domain Ontologies using OntoREM: The MASCOT Case Study

A Context-Driven Use Case Creation Process for Specifying Automotive Driver Assistance Systems

Software Maintenance

Computer Science (CS)

EuSEC nd European Systems Engineering Conference. Systems Engineering - A Key to Competitive Advantage for All Industries.

Experiences Using Defect Checklists in Software Engineering Education

An Open Framework for Integrated Qualification Management Portals

Problem and Design Spaces during Object-Oriented Design: An Exploratory Study

AUTHORING E-LEARNING CONTENT TRENDS AND SOLUTIONS

International Series in Operations Research & Management Science

Programme Specification. MSc in International Real Estate

Emergency Management Games and Test Case Utility:

Running Head: STUDENT CENTRIC INTEGRATED TECHNOLOGY

Practice Examination IREB

USING SOFT SYSTEMS METHODOLOGY TO ANALYZE QUALITY OF LIFE AND CONTINUOUS URBAN DEVELOPMENT 1

The Moodle and joule 2 Teacher Toolkit

WSU Five-Year Program Review Self-Study Cover Page

Visual CP Representation of Knowledge

PIRLS 2006 ASSESSMENT FRAMEWORK AND SPECIFICATIONS TIMSS & PIRLS. 2nd Edition. Progress in International Reading Literacy Study.

HILDE : A Generic Platform for Building Hypermedia Training Applications 1

Evaluating Usability in Learning Management System Moodle

GALICIAN TEACHERS PERCEPTIONS ON THE USABILITY AND USEFULNESS OF THE ODS PORTAL

A GENERIC SPLIT PROCESS MODEL FOR ASSET MANAGEMENT DECISION-MAKING

New Ways of Connecting Reading and Writing

School Inspection in Hesse/Germany

Evolutive Neural Net Fuzzy Filtering: Basic Description

Web-based Learning Systems From HTML To MOODLE A Case Study

SEDETEP Transformation of the Spanish Operation Research Simulation Working Environment

Marketing Management

Computing Curricula -- Software Engineering Volume. Second Draft of the Software Engineering Education Knowledge (SEEK) December 6, 2002

The Seven Habits of Effective Iterative Development

Rules of Procedure for Approval of Law Schools

DIGITAL GAMING AND SIMULATION Course Syllabus Advanced Game Programming GAME 2374

Identifying Novice Difficulties in Object Oriented Design

Practical Integrated Learning for Machine Element Design

A systems engineering laboratory in the context of the Bologna Process

Certified Six Sigma Professionals International Certification Courses in Six Sigma Green Belt

Interview on Quality Education

Using Task Context to Improve Programmer Productivity

Activities, Exercises, Assignments Copyright 2009 Cem Kaner 1

Process improvement, The Agile Way! By Ben Linders Published in Methods and Tools, winter

THE HUMAN SEMANTIC WEB SHIFTING FROM KNOWLEDGE PUSH TO KNOWLEDGE PULL

Economics 201 Principles of Microeconomics Fall 2010 MWF 10:00 10:50am 160 Bryan Building

Agent-Based Software Engineering

My Program is Correct But it Doesn t Run: A Preliminary Investigation of Novice Programmers Problems

Guide to Teaching Computer Science

Specification and Evaluation of Machine Translation Toy Systems - Criteria for laboratory assignments

Motivation to e-learn within organizational settings: What is it and how could it be measured?

Memorandum. COMPNET memo. Introduction. References.

PRINCE2 Practitioner Certification Exam Training - Brochure

Summer in Madrid, Spain

83 Fellows certified in 2016! Currently 161 Fellows registered Global Online Fellowship In Head & Neck Surgery and Oncology

UML MODELLING OF DIGITAL FORENSIC PROCESS MODELS (DFPMs)

Transcription:

Using UML Software engineering with objects and components Updated Edition Perdita Stevens University of Edinburgh with Rob Pooley Heriot-Watt University f у Addison-Wesley An imprint of PEARSON EDUCATION Harlow, England London New York Reading, Massachusetts San Francisco Toronto Don Mills, Ontario Sydney Tokyo Singapore Hong Kong Seoul Taipei Cape Town Madrid Mexico City Amsterdam Munich Paris Milan

Contents Preface Acknowledgments xvi xx PART I Conceptual background I Chapter I Software engineering with components 2 I. I What is a good system? 2 1.2 Do we have good systems? 3 1.2.1 Problems... 3 1.2.2... even drastic failures 4 1.2.3 Promises, promises 5 1.3 What are good systems like? 6 1.3.1 Encapsulation: low coupling 7 1.3.2 Abstraction: high cohesion 10 1.3.3 Architecture and components II 1.3.4 Component-based design: pluggability 12 1.4 How are good systems built? 13 Chapter 2 Object concepts 14 2.1 What is an object? 14 2.1.1 Example 15 2.1.2 Messages 16 2.1.3 Interfaces 17 2.1.4 Classes 17 2.2 How does this relate to the aims of the previous chapter? 20 2.2.1 What have objects to do with components? 21 2.3 Inheritance 22 2.4 Polymorphism and dynamic binding 24 Chapter 3 Introductory case study 27 3.1 The problem 27 3.1.1 Clarifying the requirements 27 VII

VIII 3.1.2 Use case model 29 3.2 Scope and iterations 3 I 3.3 Identifying classes 32 3.4 Relations between classes 34 3.5 The system in action 36 Panel 3.1 Design by Contract I 39 3.5.1 Changes in the system: state diagrams 41 3.5.2 Further work 41 Panel 3.2 Persistence 42 Chapter 4 The development process 44 4.1 Defining terms 44 4.1.1 Models and modeling languages 45 4.1.2 Process and quality 46 4.2 The development process 47 4.2.1 A unified methodology? 49 4.2.2 Processes to use with UML 50 4.3 System, design, model, diagram 52 PART II The Unified Modeling Language 55 Chapter 5 Essentials of class models 56 5.1 Identifying objects and classes 56 5.1.1 What makes a class model good? 57 5.1.2 How to build a good class model 57 5.1.3 What kinds of things are classes? 59 5.1.4 Real world objects vs their system representation 60 5.2 Associations 60 5.2.1 Multiplicities 63 5.3 Attributes and operations 63 5.3.1 Operations 64 5.3.2 Attributes 64 5.4 Generalization 65 Panel 5.1 Design by Contract 2: substitutivity 66 5.4.1 Using English to check whether a generalization exists 67 5.4.2 Implementing generalization: inheritance 67 5.5 The class model during the development 69 5.6 CRC cards 69 5.6.1 Creating CRC cards 70 5.6.2 Using CRC cards in developing a design 70 5.6.3 CRC card example 71 5.6.4 Refactoring 72

IX Chapter 6 More on class models 74 6.1 More about associations 74 6.1.1 Aggregation and composition 74 6.1.2 Roles 76 6.1.3 Navigability 77 6.1.4 Qualified associations 78 6.1.5 Derived associations 79 6.1.6 Constraints 81 Panel 6.1 OCL, the Object Constraint Language 83 6.1.7 Association classes 84 6.2 More about classes 85 Panel 6.2 Stereotypes 86 6.2.1 Interfaces 86 6.2.2 Abstract classes 88 Panel 6.3 Properties and tagged values 89 6.3 Parameterized classes 90 6.4 Dependency 91 6.5 Components and packages 91 6.6 Visibility, protection 92 Chapter 7 Essentials of use case models 93 7.1 Actors in detail 95 7.2 Use cases in detail 97 7.3 System boundary 98 7.4 Using use cases 99 7.4.1 Use cases for requirements capture 99 7.4.2 Use cases through the development 99 7.5 Possible problems with use cases 101 Panel 7.1 Use case driven development? 102 Chapter 8 More on use case models 104 8.1 Relationships between use cases 104 8.1.1 Use cases for reuse: ^include» 104 8.1.2 Components and use cases 107 8.1.3 Separating variant behavior: <JCextend^> 108 8.2 Generalizations 109 8.3 Actors and classes I 10 8.3.1 Notation: actors as classes I I I Chapter 9 Essentials of interaction diagrams 113 9.1 Collaborations I 14 9.2 Interactions on collaboration diagrams 115 9.3 Sequence diagrams 117 Panel 9.1 Where should messages go? Law of Demeter I 18 9.4 More advanced features 120 9.4.1 Messages from an object to itself 120

X 9.4.2 Suppressing detailed behavior 120 9.4.3 Returned values 122 9.4.4 Creation and deletion of objects 122 9.4.5 Timing 125 9.5 Interaction diagrams for other purposes 126 9.5.1 Show how a class provides an operation 126 9.5.2 Describe how a design pattern works 127 9.5.3 Describe how a component can be used 127 Chapter 10 More on interaction diagrams 128 10.1 Generic interaction diagrams 128 10.1.1 Conditional behavior 129 10.1.2 Iteration 131 10.2 Concurrency 131 10.2.1 Modeling several threads of control 133 Chapter I I Essentials of state and activity diagrams 138 I I. I State diagrams 139 I I.I.I Unexpected messages 140 11.1.2 Level of abstraction 140 I 1.1.3 States, transitions, events 141 I 1.1.4 Actions 142 I 1.1.5 Guards 143 Panel I I.I Designing classes with state diagrams 144 11.2 Activity diagrams 146 Chapter 12 More on state and activity diagrams 150 12.1 Other kinds of events 150 12.2 Other kinds of actions 151 12.3 Looking inside states 152 12.4 Concurrency within states 153 Chapter 13 Implementation diagrams 155 13.1 Component model 156 Panel 13.1 Summary: classifiers and instances 158 13.2 Deployment model 159 13.2.1 The physical layer 159 13.2.2 Deploying the software on the hardware 160 Panel 13.2 The deployment model in the project 160 Chapter 14 Packages, subsystems, models 162 14.1 Packages 162 14.I.I Namespace control 164 14.2 Subsystems 166 14.3 Models 167

XI PART III Case studies 169 Chapter 15 CS4 administration 170 15.1 The case study 170 15.1.1 Class model 174 15.1.2 Dynamics 174 15.1.3 State diagrams 175 15.1.4 Activity diagrams 175 15.2 Discussion 175 Chapter 16 16.1 16.2 16.3 16.4 Board games Scope and preliminary analysis 16.1.1 Noughts and Crosses (Tic-Tac-Toe) 16.1.2 Chess Interaction Back to the framework States 178 179 179 179 183 186 188 Chapter 17 17.1 17.2 17.3 Discrete event simulation Requirements 17.1.1 More detailed description Outline class model Use cases 190 191 191 192 193 17.3.1 Summary of create model 193 17.3.2 Summary of observe behavior 194 17.3.3 Summary of collect statistics 194 17.3.4 Summary of run a model 196 17.4 Standard mechanism for process based simulation 197 17.5 Associations and navigability 198 17.6 Classes in detail 201 17.6.1 Class Scheduler 201 17.6.2 Class ActiveEntity 202 17.6.3 Class PassiveEntity 203 17.6.4 Class Resource 204 17.7 Class Report 206 17.8 Class Statistic 206 17.8.1 Class Average 207 17.9 Building a complete simulation model 207 17.10 The dining philosophers 208 PART IV Towards practice 21 I Chapter 18 Reuse: components, patterns 212 18.1 Practicalities of reuse 212 18.1.1 What can be reused, and how? 212

Xil Panel 18.1 18.2 18.3 Chapter 19 19.1 19.2 19.3 19.4 19.5 19.6 Chapter 20 20.1 20.2 20.3 20.4 Panel 20.1 20.5 What is a component really? Controversial! 18.1.2 Why reuse? 18.1.3 Why is reuse hard? 18.1.4 Which components are genuinely reusable? 18.1.5 What about building your own components? 18.1.6 What difference does object orientation make? Design patterns 18.2.1 Example: Facade 18.2.2 UML and patterns Frameworks Product quality: verification, validation, testing Quality review How can high quality be achieved? 19.2.1 Focus on the product 19.2.2 Focus on the process 19.2.3 Further reading Verification Validation 19.4.1 Usability Testing 19.5.1 Choosing and carrying out tests 19.5.2 Special problems of OO 19.5.3 Why is testing so often done badly? Reviews and inspections 19.6.1 Problems of FTRs Process quality: management, teams, QA Management 20.1.1 Project management 20.1.2 Estimating an iterative project 20.1.3 Managing component based development 20.1.4 People management Teams Leadership 20.3.1 Reform of development process Quality assurance 20.4.1 Quality assurance for iterative projects 20.4.2 Total Quality Management Quality assurance: the case against Further reading Bibliography Index 213 215 215 217 217 218 219 221 222 224 225 225 227 228 228 229 230 232 234 234 235 237 237 238 239 240 241 241 242 244 244 245 246 246 247 249 252