SEG3101 (Fall 2010) Structural Modeling

Slides:



Advertisements
Similar presentations
Methods for Requirements Engineering
Advertisements

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Karolina Muszyńska Based on:
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Chapter 1 Object-Oriented System Development
Introduction To System Analysis and Design
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
CS 425/625 Software Engineering System Models
Lecture 4 Class Responsibility Collaboration Cards
©Ian Sommerville 2006Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
© Copyright Eliyahu Brutman Programming Techniques Course.
UML Sequence Diagrams Eileen Kraemer CSE 335 Michigan State University.
UML Notations Activity diagrams State diagrams Class diagrams Use-case diagrams.
Sharif University of Technology Session # 7.  Contents  Systems Analysis and Design  Planning the approach  Asking questions and collecting data 
The chapter will address the following questions:
UML Sequence Diagrams Michael L. Collard, Ph.D. Department of Computer Science Kent State University.
Introduction To System Analysis and design
CMIS 470 Structured Systems Design
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec16 1 Lecture 16: Object Oriented Modeling Methods Basics of Object.
Systems Analysis and Design in a Changing World, Fifth Edition
These slides are designed to accompany Web Engineering: A Practitioner’s Approach (The McGraw-Hill Companies, Inc.) by Roger Pressman and David Lowe, copyright.
CSCI-383 Object-Oriented Programming & Design Lecture 9.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Intro to UML - OO Class Diagrams Week 5 CMIS570. Plan for Tonight Object terms Unified Modeling Language history Class Diagrams Intro to Oracle Oracle.
Gregor v. Bochmann, University of Ottawa Based on Powerpoint slides by Gunter Mussbacher with material from: K.E. Wiegers, D. Leffingwell & D. Widrig,
Unified Modeling Language, Version 2.0
5 Systems Analysis and Design in a Changing World, Fourth Edition.
Functional Modeling – Requirement Patterns (Problem Frames)
1 Object orientation. 2 What benefits does OO give? Primarily –Encapsulation (Associates data & operations) –Types & specialisation –Software re-use.
Introduction To System Analysis and Design
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.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 8: Analysis Modeling Software Engineering: A Practitioner’s Approach, 6/e Chapter.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
UML Use Case Diagramming Guidelines. What is UML? The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing,
Chapter 8 Analysis & Modeling. Data Modeling examines data objects independently of processing focuses attention on the data domain creates a model at.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
Requirements Engineering Methods for Requirements Engineering Lecture-30.
7 Systems Analysis and Design in a Changing World, Fifth Edition.
5 Systems Analysis and Design in a Changing World, Fifth Edition.
Systems Analysis and Design in a Changing World, 6th Edition
Object-Oriented Paradigm and UML1 Introduction to the Object- Oriented Paradigm.
The Unified Modeling Language Part II Omar Meqdadi SE 2730 Lecture 9 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 The Unified Modeling Language. 2 The Unified Modeling Language (UML) is a standard language for writing software blueprints. The UML may be used to.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
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
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
Basic Characteristics of Object-Oriented Systems
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
1 An Overview of UML. 2 The Unified Modeling Language UML is a graphical language used by software engineers to model software systems during development.
Elements Of Modeling. 1.Data Modeling  Data modeling answers a set of specific questions that are relevant to any data processing application. e.g. ◦
5 Systems Analysis and Design in a Changing World, Fourth Edition.
Cmpe 589 Spring 2006.
The Movement To Objects
Main issues: • What do we want to build • How do we write this down
Object-Oriented Analysis and Design
Unified Modeling Language
Week 10: Object Modeling (1)Use Case Model
The Unified Modeling Language
Copyright 2007 Oxford Consulting, Ltd
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Presentation transcript:

SEG3101 (Fall 2010) Structural Modeling Based on Powerpoint slides by Gunter Mussbacher, Gregor v. Bochmann, with material from: K.E. Wiegers, D. Leffingwell & D. Widrig, M. Jackson, I.K. Bray, B. Selic, Volere, Telelogic, D. Damian, S. Somé 2008, and D. Amyot 2008-2009

Outline Entity-Relationship modeling (concepts and notations) Object-oriented modeling (concepts and notations) Methodology for Object-Oriented Analysis (OOA) A case study: A library system

Entity-relationship modeling (ERM) Entity-Relationship modeling (originally proposed by Peter Chen in 1976) Concepts: Entity: represents a type of entity instances, defines the properties that hold for all such instances. Relationship: represents relationship instances that hold between certain pairs of entity instances. The related entity types are also called roles. Multiplicity information indicate how many instances of the “other” side may be related to a given instance of “this” side. Attribute: An entity or a relationship may have one or several attributes. Each attribute is identified by a name and its type, where such a type is usually some simple data type such as integer or character string. Note: An entity type is normally not used as the type of an attribute, because such a situation is rather represented by a relationship between the given entity and the attribute type.

Entity Relationship Diagrams

What Does An ERD Mean?

Cardinalities

ER vs Relational

Object Oriented Analysis  Background  Model the requirements in terms of objects and the services they provide  Grew out of object oriented design  But applied to modeling the application domain rather than the program  Motivation  OO is (claimed to be) more ‘natural’  As a system evolves, the functions (processes) it performs tend to change, but the objects tend to remain unchanged  Hence a model based on functions/processes will get out of date, but an object oriented model will not…  …hence the claim that object-oriented designs are more maintainable  OO emphasizes importance of well-defined interfaces between objects  compared to ambiguities of dataflow relationships NOTE: OO applies to requirements engineering because it is a modeling tool. But we are modeling domain objects, not the design of the new system 10

Nearly anything can be an object…  External Entities  Organizational Units  …that interact with the system being modeled  that are relevant to the application E.g. division, group, team, etc. E.g. people, devices, other systems  Places  Things  …that establish the context of the problem being modeled  …that are part of the domain being modeled E.g. manufacturing floor, loading dock, etc. E.g. reports, displays, signals, etc.  Occurrences or Events  Structures  …that occur in the context of the system  that define a class or assembly of objects E.g. transfer of resources, a control action, etc. E.g. sensors, four-wheeled vehicles, computers, etc.  Roles Some things cannot be objects:  played by people who interact with the system  procedures (e.g. print, invert, etc)  attributes (e.g. blue, 50Mb, etc) 11

Class Diagrams

Unified Modeling Language (UML)  de facto OO method  Booch, Rumbaugh & Jacobson are principal authors  Still in development  Attempt to standardize the proliferation of OO variants  Is purely a notation  No modeling method associated with it (RUP)  Is primarily owned by Rational Corp./IBM (who sell lots of UML tools and services)  Has a standardized meta-model (designed by committee; standard is managed by OMG)  Use case diagrams  Class diagrams  Message sequence charts  Activity diagrams  State Diagrams (uses Harel’s statecharts)  Module Diagrams  Platform diagrams … 14

Evaluation of OOA (serve as Summary)  Advantages of OO analysis for RE  Fits well with the use of OO for design and implementation  Transition from OOA to OOD ‘smoother’ (but is it?)  Removes emphasis on functions as a way of structuring the analysis  Avoids the fragmentary nature of structured analysis  object-orientation is a coherent way of understanding the world  Disadvantages  Emphasis on objects brings an emphasis on static modeling  although later variants have introduced dynamic models  Not clear that the modeling primitives are appropriate  are objects, services and relationships really the things we need to model in RE?  Strong temptation to do design rather than problem analysis  Fragmentation of the analysis  e.g. reliance on use-cases means there is no “big picture” of the user’s needs  Too much marketing hype!  and false claims - e.g. no evidence that objects are a more natural way to think 15

Object-oriented modeling (OOM) – (1) Object-oriented modeling is essentially ERM with certain additional concepts. An Entity is called a Class Additional Concepts: Inheritance: This is the idea that some entity B inherits all properties that are defined for another entity A. This means that B is a specialization of A. One also says that B is a refinement of A or B extends A. Important note: Inheritance is not a relationship as defined above, since it does not define relationship instances between the instances of the two entities. Internal state of entity instances and methods for interacting with it: An important issue of object-orientation is information hiding. In particular, certain internal attributes are not directly accessible from outside the entity instance. An entity is characterized by its interface which includes the list of accessible attributes and the list of methods that can be called for manipulating the internal state of the instance. Note: The methods have behavior – the rest is structure.

Object-oriented modeling (OOM) – (2) Refinement of ERM Concepts: Composite structure: A subtype of Relationship (with special notation) is used to show that one entity is part of another (composed) entity. Calling relationship: Another subtype of Relationship has the meaning that an entity instance playing one role can access attributes and call methods on an instance playing the other role to which it is related. Disadvantages of OOM Difficulties of modeling two-way communication : an interface defines only one direction of communication. For event-based systems, one often needs two-way communication relationships. Note: one can use two one-way relationships. The encapsulation of the behavior inside the objects (the information hiding approach) is often not suitable for modeling the problem domain during requirements engineering (see examples below).

Methodology for Object-Oriented Analysis (OOA) Five main steps Identify core classes within problem domain Model relationships between classes Class diagram Define the attributes associated with each class Determine relevant operations for each class Define the messages that may be passed between objects Interaction diagram, state machine diagram

OOA Methodology – Library Example (1) A library system is intended to provide its users with the ability to automate the process of: Acquiring library items Cataloguing library items Browsing library items Loaning library items Library items comprise published and recorded material The system will be administered by a member of the library staff Users must register with the system administrator before they can borrow library items Source: Sommerville & Kotonya

OOA Methodology – Library Example (2) Library users are drawn from three primary groups Students, Members of staff, and External users All library users have as part of their registration Name, Library number, Address, Account In addition the following information is also required for registration Students – Degree programme and admission number Staff – Staff number External users – Employer details Source: Sommerville & Kotonya

OOA Methodology – Library Example – Step 1 Identify initial classes

OOA Methodology – Library Example – Step 2 Identify relationships between classes from the partial requirements (i) A library user borrows a library item (ii) A library item is recorded or published (iii) The system administrator registers the library user (iv) Library users are students, staff, and external users (v) The system administrator catalogues the library items (vi) The library assistant issues the library items

OOA Methodology – Library Example – Step 2 (2) Show attributes and relationships in basic model

OOA Methodology – Library Example – Step 2 (3) Identify inheritance relationships for library user

OOA Methodology – Library Example – Step 2 (4) Identify inheritance relationships for library item

OOA Methodology – Library Example – Step 3 Identify attributes and populate model with them Attributes can be revealed by the analysis of the system requirements For example, it is a requirement that all library users must be registered before they can use the library This means that we need to keep registration data about library users Library users are also provided with an account to keep track of the items loaned to them Library items may have the attributes title, description, and classmark Library users may have the attributes name, address, and library id

OOA Methodology – Library Example – Step 4 Identify object operations This step is intended to describe operations to be performed on the objects Certain operations are implicit from the object structure CRUD operations (create – read – update – delete) Operations for accessing and modifying the attribute values (getters and setters) These operations are assumed and we need not show them explicitly in the model One way of identifying operations is by modeling the messages that may be passed between the objects

OOA Methodology – Library Example – Step 4 (2) Identify messages between objects Find required messages for each scenario (play out the scenario), then take union of all messages

OOA Methodology – Library Example – Step 4 (3) Populate model of library user with discovered operations

OOA Methodology – Library Example – Step 4 (4) Populate model of library item with discovered operations Note: This makes no sense as a model of the problem domain. How can a book (library item) perform the method acquire or return ? It may, however, make sense as the internal design of the system-to-be. In this case the objects are instances within the computer system that should reflect the objects in the real world.

OOA Methodology – Library Example – Step 5 Define the messages that may be passed between objects

OO Analysis – Problems (1) Caution: Not really analysis Most OOA approaches actually address high-level design Assume a pre-existing requirements document Class diagrams can however be used for analysis, especially for the description of domain concepts Use case analysis supplements OOA, filling in some gaps Further composition and decomposition problems Related requirements cannot all be assigned to a single component or a single class One scenario may affect several classes at once OO modularization is not perfect either...  Scattering and tangling effects - Motivation for aspect-oriented analysis and design

OO Analysis – Problems (2) Scattering: design elements to support R1 in many components Requirement1 (R1) Requirement2 (R2) Requirement3 (R3) RequirementN (RN) … ComponentA R1 elements ComponentF R2 elements R3 elements RN elements ComponentE ComponentD ComponentB ComponentC Tangling: single component has elements for many requirements

A partial solution – Aspects intertype declaration Aspect ClassA R1 elements F.R1 R1 elements ClassG R1 elements Triggered behavior (code) R1 elements advice ClassC R1 elements Predicate R1 elements ClassB R1 elements pointcut R1 elements ClassF R1 elements R2 elements R3 elements RN elements R1 elements (identifies joinpoints where advice is executed) Terminology based on AspectJ: www.eclipse.org/aspectj