We are at System Operation Contracts

Similar documents
Operations Contracts and Preliminaries on Design

CSSE 374: Logical Architecture. Shawn Bohner Office: Moench Room F212 Phone: (812)

CSSE 374: GRASP ing at the First Five Patterns Principles. Shawn Bohner Office: Moench Room F212 Phone: (812)

CSSE 374: UML Activity Diagrams. Shawn Bohner Office: Moench Room F212 Phone: (812)

CSSE 374: More Object Design with Gang of Four Design Patterns

2009 Shawn A. Bohner. Shawn Bohner Office: Moench Room F212 Phone: (812)

2009 Shawn A. Bohner. Shawn Bohner Office: Moench Room F212 Phone: (812)

Model-Driven Architecture/ Development

CSSE 374: Design Class Diagrams. Shawn Bohner Office: Moench Room F212 Phone: (812)

2009 Shawn A. Bohner. Shawn Bohner Office: Moench Room F212 Phone: (812)

CSSE 490 Model-Based Software Engineering: Domain Specific Language Introduction

CSSE 490 Model-Based Software Engineering: Software Factories

CSSE 490 Model-Based Software Engineering: More MBSD. Shawn Bohner Office: Moench Room F212 Phone: (812)

CSSE 374: Even More Object Design with Gang of Four Design Patterns

CSSE 490 Model-Based Software Engineering: MDSD and Case Study

CSSE 490 Model-Based Software Engineering: Introduction to MetaModels

CSSE 490 Model-Based Software Engineering: Domain Engineering

Lecture Notes CPSC 491 (Fall 2018) Topics. Peer evals. UI Sketches. Homework. Quiz 4 next Tues. HW5 out. S. Bowers 1 of 11

Software Design and Analysis CSCI 2040

CSSE 490 Model-Based Software Engineering: Cougaar Model-Driven Architecture Example

What is New in MyChart? My Medical Record Health Preferences Settings Appointments and Visits Visits Schedule an Appointment Update Information

CSSE 490 Model-Based Software Engineering: Introduction to Domain Engineering

CSSE 490 Model-Based Software Engineering: Transformational Programming

CSSE 490 Model-Based Software Engineering: Architecture Description Languages (ADL)

CLOVIS WEST DIRECTIVE STUDIES P.E INFORMATION SHEET

Introduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014

Achieve Planner Quick Start

Foundations, Reasoning About Algorithms, and Design By Contract CMPSC 122

CSSE 490 Model-Based Software Engineering: Transformation Systems

QUILLEN ETSU PHYSICIANS

Chapter 8 Software Testing. Chapter 8 Software testing

Introduction to C++ General Rules, Conventions and Styles CS 16: Solving Problems with Computers I Lecture #2

CS3205: Task Analysis and Techniques

Chapter 1: Programming Principles

Relationships Between Real Things CSE 143. Common Relationship Patterns. Employee. Supervisor

A Patient s Guide to the Portal

Personal Information. New Profile Icon

Lecture 8 Requirements Engineering

Relationships Between Real Things CSC 143. Common Relationship Patterns. Composition: "has a" CSC Employee. Supervisor

Text4baby: Launching an App! Harnessing the Power of Mobile for Maternal & Child Health in the U.S.

My Care Plus Your reference guide. MyCarePlusOnline.com

NextMD Patient Portal

Online Ordering Guide

Logical Architecture & Design Preliminaries

Welcome to Parkview MyChart!

QUILLEN ETSU PHYSICIANS

Lecture 10 Notes Linked Lists

INTERNATIONAL MOBILE APP myhenner

: Dimension. Lecturer: Barwick. Wednesday 03 February 2016

Software Testing. Software Testing. in the textbook. Chapter 8. Verification and Validation. Verification and Validation: Goals

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

CS 150 Introduction to Computer Science 1. August 31, 2009

Programming Languages and Techniques (CIS120)

A Comparison of the Booch Method and Shlaer-Mellor OOA/RD

OBJECTIVE: Know the different types of contacts.

CS 370 The Pseudocode Programming Process D R. M I C H A E L J. R E A L E F A L L

IntraVet 4.55 New Features

Get started with the my Sun Life Mobile app

RelayHealth Legal Notices

Test-Driven Development (TDD)

PLANNING. CAEL Networked Worlds WEEK 2

Activation Modules. Table of Contents:

Relationships Between Real Things. CSE 143 Java. Common Relationship Patterns. Composition: "has a" CSE143 Sp Student.

Ch 4: Requirements Engineering. What are requirements?

User Stories Applied, Mike Cohn

Definition of Information Systems

ICTR UW Institute of Clinical and Translational Research. i2b2 User Guide. Version 1.0 Updated 9/11/2017

Chapter 1: Principles of Programming and Software Engineering

Welcome to the latest edition of your PCSE cervical screening bulletin

Domain Modeling. CSSE 574: Week 1, Part 3. Steve Chenoweth Phone: Office (812) Cell (937)

This study is brought to you courtesy of.

Rekayasa Perangkat Lunak 2 (IN043): Pertemuan 6. Moving on to Design

Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD

Lecture 10 Notes Linked Lists

IDEXX Cornerstone* Compliance Assessment Tool* Primer 8.3. Participant Workbook

The COS 333 Project. Robert M. Dondero, Ph.D. Princeton University

QUIZ. Source:

Lecture Notes on Contracts

COMP101: Final Review. With your boy(s), Mason and San

CTIS 359 Principles of Software Engineering SOFTWARE DESIGN OO(A)D

User Stories Applied, Mike Cohn

Lecture 6. COMP1006/1406 (the OOP course) Summer M. Jason Hinek Carleton University

Requirements and Design Overview

Call-by-Type Functions in C++ Command-Line Arguments in C++ CS 16: Solving Problems with Computers I Lecture #5

Cheetah Exam Prep for the PMP Virtual Live Course Syllabus

Administrative Notes January 19, 2017

Whitepaper. From Address

Appointment Plus User s Manual for Students

Pet-Sitter Application Form

The One-on-One Partnering System Tutorial. Instructions for BIO s One-on-One Partnering System

Introduction to Programming

More Flow Control Functions in C++ CS 16: Solving Problems with Computers I Lecture #4

Chapter 5: Structural Modeling

MyChart User Guide. RiverBend Medical group

Formal Foundations of Software Engineering

Breast NSSG Leads Meeting. Effective MDT Work Programme & Going Further On Cancer Waits. 26 April 2010

OLP Connect Forward thinking technology


(10/17) PATIENT GUIDE

Welcome to Computer Organization and Design Logic

Transcription:

Shawn Bohner Office: Moench Room F22 Phone: (82) 877-8685 Email: bohner@rose-hulman.edu 2009 Shawn A. Bohner We are at System Operation Contracts 2

Where are the Operations in the SSD? Operation Contracts (OC) Used to give more details for system operations! Together, all the system operations from all the use cases give the public system interface 2

Parts of the Operation Contract Operation: Name Of operation, and parameters. Cross- References: (optional) Use cases this can occur within. Preconditions: Noteworthy assumptions about the state of the system or objects in the Domain Model before execution of the operation. Postconditions: The state of objects in the Domain Model after completion of the operation. 5 Example OC: 3

Pre & Post-Conditions in Your Minds Eye Envision the system and it s objects on an Extreme Makeover set Before the operation, take a picture of the set The lights go out, and apply the system operation Lights on and take the after picture Compare the before and after pictures, and describe state changes as post-conditions 7 Pre- and Post-Conditions Pre-Conditions are what must be in place to invoke the operation Post-conditions are declarations about the Domain Model objects that are true when the operation has finished 8 4

Postconditions Describe changes in the state of objects in the Domain Model Typical sorts of changes: Created instances Deleted instances Form associations Break associations Change attributes Postconditions (continued) Express post-conditions in the past tense to emphasize they are declarations about a state change in the past Give names to instances Capture information from system operation by noting changes to domain objects Can be informal (somewhat) 5

Why Operation Contract Post-Conditions? Domain model =>objects attributes and associations The OC links a system operation to specific objects in the domain model Indicates which objects are affected by the operation Will help with assignment of responsibilities Contracts Lead to Domain Model Updates New Domain Model classes, attributes, and associations are often discovered while writing contracts 2 6

Use Operation Contracts When Detail and Precision are Important When details would make use cases too verbose When we don t know the domain and want a deeper analysis (while deferring design) Creating Operation Contracts Identify System Operations from SSDs Make contracts for System Operations that are: Complex and perhaps subtle in their own results Not clear in the use case Again, in describing post-conditions use: Instance creation and deletion Attribute modification Associations formed and broken Most frequent mistake in creating contracts: Forgetting to include forming of associations 4 7

Let s do an Example Medical Record Vaccinations Treatments Prescriptions Reflects History Refers to DeDS Associate Dog Examines/Treats Veterinarian..*..* Manages Name Breed Age Allergies Requests Assistance 0..* Attends Appointment Date Time Reason/Symptoms Agrees to 0..* Contains..* Schedule Name Expertise Office-Hours..* Dog Healthcare Information Categories Forums Searches/Browses..* 0..* Dog Owner Name Address Phone# Owns Makes Appointment 0..*..* Manages Employs Veterinary Service Provider FirmName Address Phone# MasterSchedule SEARCH, SERVICE INQUIRY, AND SCHEDULE APPOINTMENT Searches/Browses/Contributes :DogOwner :System requestmatchingproviders(preferences) providers loop [ more providers ] inquireaboutprovider(provider) provider details scheduleappointment(vsp, vet, date, time, dog, symptoms) confirmation Exercise: Complete this OC Operation: scheduleappointment(vsp, vet, date, time, dog, symptoms) Cross references: Use Cases: SEARCH, SERVICE INQUIRY, AND SCHEDULE APPOINTMENT Preconditions: dog owner, dog, veterinarian, and VSP all are registered with the system Postconditions: 6 8

From Requirements to Design 9

Leaving Analysis Behind? Not really We ll learn more about the problem while designing (and implementing) a solution Refine the requirements when that happens Choose high risk activities for early iterations to provoke changes to the requirements Just enough analysis is often useful Logical Architecture A very short introduction 0

Where Are We? Logical Architecture Large-scale organization of the software classes into: Packages (a.k.a., namespaces) Subsystems Layers Logical, since implementation/deployment decisions are deferred Why is an architecture necessary?

Layered Architectures Very common for object-oriented systems Coarse-grained grouping of components based on shared responsibility for major aspects of system Typically higher layers call lower ones, but not vice-versa Three Typical Architectural Layers. User Interface 2. Application Domain Layer 3. Technical Services: Persistence Logging Rules Engine 2

Strict vs. Relaxed Layered Architectures Strict: only calls next layer down Relaxed: can call any layer below Homework and Milestone Reminders Read Chapters 2, 3, and 4 on Early Design Milestone 2 Junior Project Domain Model Due by :59pm on Friday, December th, 2009 Homework 3 Dog-eDoctor SSDs and Operations Contracts Due by 5:00pm on Tuesday, December 5th, 2009 Milestone 3 Junior Project SSDs, OCs, and Logical Architecture Coming! Due by :59pm on Friday, January 8th, 2009 26 3