II. Conceptual Modeling



Similar documents
Use Cases. Use Cases Diagrams

Lecture 9: Requirements Modelling

How To Design Software

Lectures 2 & 3: Introduction to Modeling & UML. Getting started

Information systems modelling UML and service description languages

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

Functional Requirements Document -Use Cases-

Chapter 10 Practical Database Design Methodology and Use of UML Diagrams

Programming Language Constructs as Basis for Software Architectures

A UML Introduction Tutorial

Menouer Boubekeur, Gregory Provan

How To Design An Information System

Lecture 12: Entity Relationship Modelling

Object-oriented design methodologies

UML SUPPORTED SOFTWARE DESIGN

Software Project Management and UML

Universiti Teknologi MARA. Requirement Analysis Using UML Approach for Research Management System (RMS)

Analysis and Design with UML

Software Engineering. System Models. Based on Software Engineering, 7 th Edition by Ian Sommerville

III. Structured Analysis and Design Technique (SADT) SADT: Structured Analysis and Design Technique

Software Development: An Introduction

Mapping from Business Processes to Requirements Specification

Software Project Management using an Iterative Lifecycle Model

Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture

Use-Case Analysis. ! What is it? ! From where did it come? ! Now part of UML

MODERN OBJECT-ORIENTED SOFTWARE DEVELOPMENT

Software Requirements Specification of A University Class Scheduler

Role-based Authorization Constraints Specification Using Object Constraint Language

Designing Real-Time and Embedded Systems with the COMET/UML method

Use Cases. Massimo Felici. Massimo Felici Use Cases c

Artificial Intelligence

UML basics: An introduction to the Unified Modeling Language

Chap 1. Introduction to Software Architecture

III. Class and Object Diagrams

I219 Software Design Methodology

IV. Software Lifecycles

Section C. Requirements Elicitation

Object Interaction. Object Diagrams. Object Diagrams Object

The Unified Software Development Process

Representing XML Schema in UML A Comparison of Approaches

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

The Business Process Model

DEVELOPING REQUIREMENTS FOR DATA WAREHOUSE SYSTEMS WITH USE CASES

Aspect Oriented Strategy to model the Examination Management Systems

Formalization of Functional Requirements and Their Traceability in UML Diagrams A Z Notation Based Approach

PROJECT MANAGEMENT METHODOLOGY OF OBJECT- ORIENTED SOFTWARE DEVELOPMENT

Requirements Management

Product Design Data Analysis by Unified Modeling Language (UML) Diagrams

Rational Unified Process for Systems Engineering RUP SE1.1. A Rational Software White Paper TP 165A, 5/02

Best of Both Worlds - A Mapping from EXPRESS-G to UML

Modeling Web Applications Using Java And XML Related Technologies

Abstract. 1 Introduction

Layered Approach to Development of OO War Game Models Using DEVS Framework

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

A UML 2 Profile for Business Process Modelling *

Scenario-based Requirements Engineering and User-Interface Design

Business Modeling with UML

Information Systems Analysis and Design CSC340. I. Introduction

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions

Object Oriented Analysis and Design and Software Development Process Phases

IV. The (Extended) Entity-Relationship Model

Business Process Modeling and Standardization

Applying Use Cases to Microcontroller Code Development. Chris Gilbert Cypress Semiconductor

Masters of Science in Software & Information Systems

Using UML Part One Structural Modeling Diagrams

Use Case Modeling. Software Development Life Cycle Training. Use Case Modeling. Set A: Requirements Analysis Part 3: Use Case Modeling

Types of UML Diagram. UML Diagrams OOAD. Computer Engineering Sem -IV

SysML Modelling Language explained

Software Engineering. System Modeling

Principles and Software Realization of a Multimedia Course on Theoretical Electrical Engineering Based on Enterprise Technology

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

Title: Topic 3 Software process models (Topic03 Slide 1).

Chapter 8 The Enhanced Entity- Relationship (EER) Model

Object-Oriented Design Guidelines

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Classical Software Life Cycle Models

A Proposal for Constructing Relational Database from Class Diagram

General Problem Solving Model. Software Development Methodology. Chapter 2A

The Dangers of Use Cases Employed as Test Cases

Course 4 27 October Adrian Iftene adiftene@info.uaic.ro

The value of modeling

Handling Spatial Objects in a GIS Database -Relational v Object Oriented Approaches

Software Specification and Architecture 2IW80

FUNDAMENTALS OF ARTIFICIAL INTELLIGENCE KNOWLEDGE REPRESENTATION AND NETWORKED SCHEMES

Software Development Methodologies

UML Tutorial. Table of Contents. 1. Introduction Problem Proposed Solution Assumptions Dependencies

Evaluation of a Use-Case-Driven Requirements Analysis Tool Employing Web UI Prototype Generation

Conclusions and Further Work

Detecting Defects in Object-Oriented Designs: Using Reading Techniques to Increase Software Quality

Object-Oriented Software Development with UML

Rose/Architect: a tool to visualize architecture

Adapted for a textbook by Blaha M. and Rumbaugh J. Object Oriented Modeling and Design Pearson Prentice Hall, 2005.

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design

Transcription:

II. Conceptual Modeling Engineering Software Models in Software Engineering What is Conceptual Modeling? Origins 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 1 Engineering Software All engineering disciplines are founded on models that are analyzable and can predict the properties of the artifact being engineered. Examples: Electric circuits, bridges, car engines. What kinds of models can we build for information systems? And how do we analyze them? We will look at modeling and analysis techniques for requirements and for designs. 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 2

Conceptual Modeling Key problem: Have to give an unambiguous, easy to understand account of our understanding of an organization and how it works, also how the new system will fit in that organization. We can do so with English descriptions; but such descriptions are often cumbersome, incomplete, ambiguous and can lead to misunderstandings ( see next two slides!) As an alternative, we will use conceptual models (also called visual models) to describe proposed requirements and designs for the new system. Conceptual models (try to) capture people s understanding (conceptualization) of what is being modeled. Conceptual models are usually represented in terms of a graph structure. 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 3 Natural Languages can be Ambiguous This is clause 4 from the UN Security Council resolution 1441: [on Iraq] "Decides that false statements or omissions in the declarations submitted by Iraq pursuant to this resolution and failure by Iraq at any time to comply with, and cooperate fully in the implementation of this resolution shall constitute a further material breach of Iraq's obligations and will be reported to the Council for assessment in accordance with paragraphs 11 and or 12 below. The US apparently interprets this as meaning a material breach occurs if the declaration submitted by Iraq contains any false statements. Other security council members interpret it as meaning the breach only occurs if Iraq also does not cooperate with the inspection process. 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 4

What s the Problem? The clause has the following logical structure: (A or B and C and D) entails E where A = false statements [in the declarations submitted by Iraq] B = omissions in the declarations submitted by Iraq C = failure by Iraq at any time to comply with [this resolution] D = [failure by Iraq at any time to] cooperate fully in the implementation of this resolution E = a further material breach of Iraq's obligations So the two proposed readings are as follows: ((A or (B and C and D)) entails E -- US interpretation ((A or B) and (C and D)) entails E -- other security council members' interpretation 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 5 What is Conceptual Modeling? Order Item Ship via Business Process Conceptual Modeling is modeling using a standardized graphical notation Computer System 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 6

Origins There have been literally thousands of proposals for conceptual models, in several different areas within and outside Computer Science. Ross Quillian proposed in his PhD thesis semantic networks in order to model the structure of human memory (1966) Ole-Johan Dahl proposed in 1967 Simula, an extension of the programming language ALGOL 60, for simulation applications which require some world modeling Jean-Robert Abrial proposed a semantic model in 1974, shortly followed by Peter Chen s Entity-relationship model (1975) as advances over logical data models, such as Codd s Relational model proposed only a few years before. Doug Ross proposed in the mid-70s the Structured Analysis and Design Technique (SADT) as a language for communicating ideas. The technique was used by Softech, a Boston-based company, in order to specify requirements for software systems. 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 7 Semantic Networks Animal isa isa has Feather isa - can fly Fish - can swim Bird - can fly isa Mammal isa Penguin - can t t fly eats Shark Human Novel ideas Models are built out of concepts and associations Inheritance of attributes -- strict or default, single or multiple Computation defined in terms of spreading activation -- e.g., discovering the meaning of horse food horse --> animal --> eat --> food horse --> animal --> madeof --> meat --> food 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 8

Simula (1966) customer person haircutperiod height haircutprice weight enterqueue coors paybill newc, delc barbershop person queue height barbers weight servecustomer coors getpayment newbs, delbs barber person haircuttime height salary weight givehaircut coors newb, DelB Ole-Johan Dahl proposed it as an extension of the programming language ALGOL 60, for simulation applications. A (simulation) program consists of classes and instances; instances are partly data structures and partly processes. Instances model the simulated application, classes define common features of instances, are organized into subclass hierarchies. 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 9 The Entity-Relationship Model Customer Places/ PlacedBy 1 M Order Customers place orders; each order contains many books M Contains/ iscontained M Book Novel ideas Assumes that application consists of entities and relationships (ontological assumptions) Shows how a conceptual schema can be mapped onto a logical one. [Abrial s semantic model was more akin to OO data models, but did offer entities and relations too] 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 10

Structured Analysis and Design Technique Money (SADT) Seed & Vegie Prices Plan & Budget Budget Fertilizer Buy Supplies Weather Plan Seeds Cultivate Plants Pick Produce Vegetables Extract Seeds Vegetables Grow Vegetables Novel Ideas Model operating environment of a software system. Application modeled in terms of data and activity. Application models organized in terms of box-inside-box notation. 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 11 III. Use Cases The Unified Modeling Language Actors and Use Cases How to Find Them 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 12

The Unified Modeling Language (UML) Booch and Rumbaugh started working towards a unified modelling language (UML) in 1994 under the auspices of Rational Inc. They were later joined by Jacobson. UML only offers a notation, not a methodology for modeling (as various OOA techniques do). Combines Jacobson s use cases with Booch and Rumbaugh concepts for object modeling, along with statecharts. UML has been adopted by the Object Management Group {OMG) as an (object) modelling standard. OMG UML 1.0 is the first version of this new modelling standard. 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 13 Where Do We Start? Use Cases Use cases are descriptions of the functionality of the new system (or any artifact under design, for that matter!) from a user s perspective. They answer the question: How will the artifact be used, once it is built? Used to show the functions to be provided by the artifact, also which users will use which functions. Developed by Ivar Jacobson and friends [Jacobson92]. 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 14

Actors An actor is anything that needs to exchange information with the artifact An actor could be a person, or another external, system. Actors define roles that users can play while using the artifact. Campaign Manager Staff Contact Accountant 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 15 Use Cases A use case is a pattern of behavior which the new system is required to exhibit. Each use case is a sequence of related transactions performed by an actor and the system through a dialogue. To find use case, examine each actor and her needs, e.g., Campaign Manager -- add a new client Staff Contact -- Change a client contact Accountant -- Record client payment Add new client Record client payment Change a client contact 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 16

Use Case Diagrams Use case diagrams are created to capture the relationships between actors and use cases Campaign Manager Change a client contact Add a new client Staff contact Record client payment Accountant 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 17 Notation for Use Cases Use case Change client contact Staff contact Actor Communication association System/Artifact boundary 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 18

Agate is an Advertising Company which puts together advertising campaigns for client companies. Here is the breakdown of their staff: Direction Admin Campaigns Mgt 1 Campaign 1 Office mgr 2 Campaign managers 1 Creative 3 Direction asst 3 Campaign marketers 1 Admin 4 Manager clerks 1 Editor in Chief 1 Finance 2 Receptionists 1 Creative Manager 2 Clerks/typists Edition 1 Filing clerk Graphics 2 Editors 6 Graphic designers 4 Copy writers 2 Photographers IT Accounts Edition Documentation 1 IT manager 1 Accountant manager 1 Media librarian 1 Network administrator 1 Credit controller 1 Resource libr 1 System admin 2 Accounts clerks 1 Knowledge worker 1 Analyst 2 Purchasing assistants 1 Computer tech 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 19 Add new staff member Agate Case Study Add new staff grade Change rate for staff grade Accountant Change grade for staff member Calculate staff bonuses 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 20

<<extends>> and <<uses>> <<extends>> implies that one use case adds behaviour to a base case; used to model a part of a use case that the user may see as optional system behavior; also models a separate sub-case which is executed conditionally. <<uses>>: adds behavior to a base case (like a procedure call); used to avoid describing the same flow of events several times, by putting the common behavior in a use case of its own. Check Campaign Budget <<extends>> Print Campaign Summary <<uses>> Find Campaign 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 21 Finding Actors Actors can be identified by answering the following questions: Who will be a primary user of the artifact? (primary actor) Who will need support from the artifact to do her daily tasks? Who will maintain, administrate, keep the artifact working? (secondary actor) Which hardware or other devices does the system need? With which other systems does the artifact need to interact with? Who or what has an interest in the results that the artifact produces? Tip: don t consider only the users who directly use the artifact, but also others who need services from the artifact! 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 22

Finding Use Cases For each actor, ask the following questions: Which functions does the actor require from the artifact? What does the actor need to do? Does the actor need to read, create, destroy, modify, or store some kinds of information in the artifact? Does the actor have to be notified about events in the artifact? Or, does the actor need to notify the artifact about something? What do those events require in terms of artifact functionality? Could the actor s daily work be simplified or made more efficient through new functions provided by the artifact? 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 23 Documenting Use Cases For each use case, prepare a flow of events document, written from an actor s point of view. The document details what the system must provide to the actor when the use case is executed. Typical contents How the use case starts and ends; Normal flow of events; Alternate flow of events; Exceptional flow of events; 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 24

Use Cases for a Meeting Scheduling System Initiator ValidateUser Participant <<uses>> Generate Schedule <<uses>> ScheduleMtg Withdraw Edit Constraints <<extends>> Provide Constraints 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 25 Use Cases for a Car Driver GasAttendant Mechanic FixCar Drive <<uses>> FillUp <<uses>> <<uses>> <<extends>> TurnOnEngine CheckOil FixCarOntheRoad 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 26

Additional Readings [Booch99] Booch, G. et al. The Unified Modeling Language User Guide, Chapters 2, 16, 17. Addison-Wesley, 1999. [Jacobson92] Jacobson, I. et all. Object-Oriented Software Engineering: A Use-Case Driven Approach, Addison-Wesley, 1992. [Schneider98] Schneider, G. et al. Applying Use Cases, Addison-Wesley, 1998. 2003 John Mylopoulos and Steve Easterbrook Conceptual Modeling -- 27