Object and class structuring

Slides:



Advertisements
Similar presentations
Banking System Case Study Using COMET Alessandro Siena Università di Genova Dipartimento di Informatica e Scienze dellInformazione.
Advertisements

Use Case & Use Case Diagram
Lecture 10 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Introduction to Software Testing Chapter 2.6 Graph Coverage for Use Cases Paul Ammann & Jeff Offutt
Use Case Modeling SJTU. Unified Modeling Language (UML) l Standardized notation for object-oriented development l Needs to be used with an analysis and.
USE CASE – ATM EXAMPLE Actors: ATM Customer ATM Operator Use Cases: The customer can withdraw funds from a checking or savings account query the balance.
SWE 214 (071) Use Case Diagrams Slide 1 Use Case Diagrams Examples.
Ch 12: Object-Oriented Analysis
Introduction to Software Testing Chapter 2.6 Graph Coverage for Use Cases Paul Ammann & Jeff Offutt
Sequence Diagrams. Introduction A Sequence diagram depicts the sequence of actions that occur in a system. The invocation of methods in each object, and.
CS3773 Software Engineering Lecture 03 UML Use Cases.
Interaction Diagrams Activity Diagram State Machine Diagram
Embedded Systems Details. Object Model: Four main system objects or classes Controller object might be made up of several controllers is the brains of.
ECEN5053 SW Eng of Dist Systems, Arch Des Part 2, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems, Part 2 ECEN5053 SW.
Object Oriented Analysis Process
Embedded Systems: Review and OMT modeling Slides by Gretel Coombs and Betty H.C. Cheng.
1 CMPT 275 Software Engineering Requirements Analysis Phase Requirements Analysis Activity (Identifying Objects, Scenarios) Janice Regan,
Requirements Management with Use Cases Module 2: Introduction to RMUC Requirements Management with Use Cases Module 2: Introduction to RMUC.
UML Diagrams: Class Diagrams The Static Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Faculty of Computer & Information Software Engineering Third year
UML basics UML distilled, a brief guide to the standard Modeling language, by Martin Fowler, 2000.
USE CASE Bayu Adhi Tama, MTI Faculty of Computer Science, University of Sriwijaya Slides are adapted from Petrus Mursanto
Faculty of Computer & Information
Black Box Testing Techniques Chapter 7. Black Box Testing Techniques Prepared by: Kris C. Calpotura, CoE, MSME, MIT  Introduction Introduction  Equivalence.
Rational Requirements Management with Use Cases v5.5 Copyright © Rational Software, all rights reserved 1 Requirements Management with Use Cases.
The Static Analysis Model Class Diagrams Prof. Hany H. Ammar, CSEE, WVU, and Dept. of Computer Science, Faculty of Computers and Information, Cairo University.
UML Diagrams: The Static Model Class Diagrams. The Static Model Define the static structure of the logical model Represent classes, class hierarchies.
Use Case Modeling Chapter 7 Part of Requirements Modeling Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
1 System Analysis and Design Using UML INSTRUCTOR: Jesmin Akhter Lecturer, IIT, JU.
UML-1 4. Architecture. UML-2 Artifact: Analysis Class Abstraction of one or several classes or subsystems –Focuses on handling functional requirements.
1 Graph Coverage (6). Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Section
CS212: Object Oriented Analysis and Design Lecture 32: Use case and Class diagrams.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
UML (Unified Modeling Language)
Object and Class Structuring Chapter 9 Part of Analysis Modeling Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
The Dynamic Analysis Model StateCharts Prof. Hany H. Ammar, CSEE, WVU, and Dept. of Computer Science, Faculty of Computers and Information, Cairo University.
Object-Oriented Software Engineering CS288 Paul Krause.
Chapter 3: Software Design –Use case Diagram Nouf Alghanmi.
Requirements Document for the Banking System
1 Object-Oriented Static Modeling of the Banking System - III Lecture # 33.
1 Object-Oriented Static Modeling of the Banking System - II Lecture # 32.
Inf 43: Introduction to Software Engineering May 7, 2016.
1 Case Study and Use Cases for Case Study Lecture # 28.
CompSci 280 S Introduction to Software Development
Using Use Case Diagrams
UML Diagrams: Class Diagrams The Static Analysis Model
DFD(Data Flow Diagram)
Paul Ammann & Jeff Offutt
Use Case Modeling - II Lecture # 27.
Structured Analysis and Design Technique
ATM OO Design and Implementation Case Study
Copyright © 2014 Hassan Gomaa and Robert Pettit
Storyboarding and Game Design SBG, MBG620 Full Sail University
Dynamic Modeling of Banking System Case Study - I
Requirements Analysis
Object-Oriented Static Modeling of the Banking System - I
Dynamic Modeling of Banking System Case Study - II
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
UML Diagrams: The Static Model Class Diagrams
Chapter 14 System Testing
SAD ::: Spring 2018 Sabbir Muhammad Saleh
Paul Ammann & Jeff Offutt
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Design and Implementation
Using Use Case Diagrams
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Software Analysis.
UML Diagrams: StateCharts The Dynamic Analysis Model
Real-Time Structured Analysis and Design Technique (RSTAD)
Presentation transcript:

Object and class structuring COMET software life cycle process model Object and class structuring Corso di Ingegneria del Software II Sonia Fagorzi

Summary Introduction Categorization of Application Classes 18/01/2019 Summary Introduction Context What the seminary tells about Categorization of Application Classes Interface Object Device Interface Object (example) User Interface Object (example) System Interface Object (example) Entity Object (example) Control Object Coordinator Object State dependent Object Timer Object (example) Application Logic Object Business Logic Object Algorithm Object Subsystems: packages (examples) 1/18/2019

Context Requirements Modeling Analysis Modeling Design Modeling Incremental Software Construction Throwaway Prototype Incremental Software Construction Incremental Prototype System Testing 1/18/2019

Context Requirements Modeling Analysis Modeling Design Modeling Use case modeling: Use case model Static modeling: Static physical model of the domain problem System context model Static model of the entity classes in the problem domain Class dictionary Object structuring Dynamic modeling Requirements Modeling Analysis Modeling Design Modeling Incremental Software Construction Throwaway Prototype Incremental Software Construction Incremental Prototype System Testing 1/18/2019

Context Requirements Modeling Analysis Modeling Design Modeling Use case modeling: Use case model Static modeling: Static physical model of the domain problem System context model Static model of the entity classes in the problem domain Class dictionary Object structuring Dynamic modeling Requirements Modeling Analysis Modeling Design Modeling Incremental Software Construction Throwaway Prototype Incremental Software Construction Incremental Prototype System Testing 1/18/2019

What the seminary tells about Goal: to determine the software objects in the system that model real-world objects in the problem domain and to categorize them using object structuring criteria 1/18/2019

Categorization of Application Classes A category is a specifically defined division in a system of classification Categorization of classes into certain groups: because most software systems have this kinds of classes to help understand the system under development 1/18/2019

Categorization of Application Classes 1/18/2019

Categorization of Application Classes «interface» «entity» «control» «application logic» 1/18/2019

Categorization of Application Classes «interface» «entity» «control» «application logic» «user interface» «device interface» «system interface» 1/18/2019

Categorization of Application Classes «interface» «entity» «control» «application logic» «user interface» «device interface» «system interface» «input device interface» «output device interface» «input/output device interface» 1/18/2019

Categorization of Application Classes «interface» «entity» «control» «application logic» «user interface» «device interface» «system interface» «timer» «state dependent control» «coordinator» «input device interface» «output device interface» «input/output device interface» 1/18/2019

Categorization of Application Classes «interface» «entity» «control» «application logic» «user interface» «device interface» «system interface» «timer» «state dependent control» «coordinator» «business logic» «algorithm» «input device interface» «output device interface» «input/output device interface» 1/18/2019

Categorization of External Classes Interface Classes Categorization of External Classes «external» 1/18/2019

Categorization of External Classes Interface Classes Categorization of External Classes «external» «external timer» «external device» «external system» «external user» 1/18/2019

Interface Classes Categorization of External Classes «external» «external timer» «external device» «external system» «external user» «external input device» «external output device» «external input/output device» 1/18/2019

Categorization of External Classes Interface Classes Categorization of External Classes 1/18/2019

Interface Classes Categorization of External Classes «external» «external user» «external device» «external system» «external timer» «external input device» «external output device» «external input/output device» 1/18/2019

Interface Classes Categorization of External Classes «external» «external user» «external device» «external system» «external timer» «external input device» «external output device» «external input/output device» «application» «interface» «entity» «control» «application logic» «user interface» «device interface» «system interface» «timer» «state dependent control» «coordinator» «input device interface» «output device interface» «input/output device interface» «business logic» «algorithm» 1/18/2019

Interface Classes «application» «interface» «entity» «control» «application logic» «user interface» «device interface» «system interface» «timer» «state dependent control» «coordinator» «business logic» «algorithm» «input device interface» «output device interface» «input/output device interface» 1/18/2019

Input Device Interface Object: example 1/18/2019

Input Device Interface Object: example «external input device» : aReal-World Temperature Sensor «input device interface» : aTemperature Sensor Real-world hardware object Software object Hardware/software boundary (*) 1/18/2019

Input Device Interface Object: example Temperature Sensor Input Temperature Sensor Data «external input device» : aReal-World Temperature Sensor «input device interface» : aTemperature Sensor Real-world hardware object Software object Hardware/software boundary (*) 1/18/2019

Output Device Interface Object: example 1/18/2019

Output Device Interface Object: example Light Command «output device interface» : RedLight Interface «external output device» : RedLight Actuator On, Off Software object Real-world hardware object Hardware/software boundary (*) 1/18/2019

Input/Output Device Interface Object: example 1/18/2019

Input/Output Device Interface Object: example Card Reader Data, Card Inserted, Card Ejected, Card Confiscated «input/output device interface» : ATMCard Reader Interface Card Reader Input «external input/output device» : ATMCard Reader Card Reader Output Eject, Confiscate Real-world hardware object Software object Hardware/software boundary (*) 1/18/2019

User Interface Object: example 1/18/2019

User Interface Object: 18/01/2019 User Interface Object: example Operator Commands Sensor Request «user interface» : Operator Interface «entity» : Sensor Data Repository Display Data Sensor Data : Actor Hardware/software boundary (*) 1/18/2019

System Interface Object: example 1/18/2019

System Interface Object: example Pick & Place Robot Command «system interface» : Pick&Place Robot Interface «external system» : External Pick&Place Robot Pick, Place Picked, Placed Pick & Place Robot Response Software object Real-world hardware object Hardware/software boundary (*) 1/18/2019

Categorization of Application Classes «interface» «entity» «control» «application logic» «user interface» «device interface» «system interface» «timer» «state dependent control» «coordinator» «business logic» «algorithm» «input device interface» «output device interface» «input/output device interface» 1/18/2019

Entity Class and Object: example 1/18/2019

Entity Class and Object: example Open, Close, Credit, Debit, Read Balance, Status «entity» Account accountNumber: Integer balance: Real «entity» : anAccount 1/18/2019

Categorization of Application Classes «interface» «entity» «control» «application logic» «user interface» «device interface» «system interface» «timer» «state dependent control» «coordinator» «business logic» «algorithm» «input device interface» «output device interface» «input/output device interface» 1/18/2019

Control Object A Control Object provides the overall coordination (what and when) for execution of a use case 1/18/2019

Coordinator Object A Coordinator Object is a not state-dependent overall decision-making object that determines the overall sequencing (when and in what order) for a collection of related object 1/18/2019

Coordinator and Business Logic Object: example ATM Transaction Bank Response «coordinator» : Bank Coordinator Transfer Transaction Query Transaction PIN Validation Request PIN Validation Response Withdraw, Confirm, Abort Transfer Response Withdraw Response Query Response «business logic» : Transfer Transaction Manager «business logic» : PINValidation Transaction Manager «business logic» : Query Transaction Manager «business logic» : Withdrawal Transaction Manager 1/18/2019

Categorization of Application Classes «interface» «entity» «control» «application logic» «user interface» «device interface» «system interface» «timer» «state dependent control» «coordinator» «business logic» «algorithm» «input device interface» «output device interface» «input/output device interface» 1/18/2019

State-Dependent Control Object A State-dependent control object is a control object whose behavior varies in each of its states. It is defined by a finite state machine 1/18/2019

State-Dependent Control Object: example «output device interface» : ReceiptPrinter Inteface Print Receipt Receipt Printed «state dependent control» : ATM Control Dispense Cash «output device interface» : CashDispenser Interface Cash Dispensed, Insufficient Cash 1/18/2019

Timer Object: example 1/18/2019

Timer Object: example Distance Timer Event «external timer» : Digital Clock «timer» : Distance Timer Calculate «entity» : Distance 1/18/2019

Business Logic Object A Business Logic Object define the business-specific application logic for processing a client request. It encapsulates business rules that could change independently of each other Usually it accesses various entity objects during its execution 1/18/2019 EX

Algorithm Object An Algorithm Object is used to encapsulate a substantial algorithm used in the problem domain that can change independently of other aspects of the domain 1/18/2019

Example of Algorithm Object «entity» : Desire Speed «entity» : Current Speed Current Speed Value Desired Speed Value Read Read «state dependent control» : CruiseControl «output device interface» : Throttle Interface «algorithm» : Cruiser Enable Maintain Speed, Disable Maintain Speed Throttle Value Throttle Position 1/18/2019

Packages - External classes and Interfaces classes The system is shown as a package The interface classes are shown inside the system package The external classes are depicted outside the system package 1/18/2019

Packages - External classes and Interfaces classes: example «system» Banking System «input/output device interface » CardReader Interface «external input/output device» CardReader 1 1 1 «output device interface » ReceiptPrinter Interface «external output device» ReceiptPrinter 1 1 1 «user interface» OperatorInterface «external user » Operator 1 1 1 1 1 1 1 1 «external user» ATMCustomer «user interface» CustomerInterface 1 1 1 1 «output device interface » CashDispenser Interface «external output device» CashDispenser 1 1 1/18/2019

Packages - subsystem and their relationship Structuring the system into subsystems Goal: objects with high coupling among each other to be in the same subsystem objects that are weakly coupled to be in different subsystems 1/18/2019

Packages - subsystem and their relationship: example Banking System «subsystem » ATMClient Subsystem «subsystem » BankServer Subsystem 1/18/2019

Packages - subsystem and their relationship: example «external output device» Receipt Printer «external user» Operator 1 «system» Banking System 1 1 1 «external input/output device» CardReader «subsystem » ATMClient Subsystem 1..* 1 «subsystem » BankServer Subsystem 1 1 1 1 1 «external input device» CashDispenser «external user» ATMCustomer 1 1/18/2019

(*): this notation does not conform to the UML notation 1/18/2019