Domain Modelling Paul Stovell. Architecture: Implicit or Explicit? Architecture exists implicitly But if you don’t define it, it probably sucks.

Slides:



Advertisements
Similar presentations
DuraSpace: Digital Information All Ways, Always Pretoria, South Africa May 14 th, 2009.
Advertisements

From Process to Data through Services Ric Gingell Chief Architect Amarta Thursday September 1 st, 2005 VLDB 2005 Trondheim.
System Modelling System modelling helps the analyst to understand the functionality of the system and models are used to communicate with customers. Different.
Craig Berntson
1 SWE Introduction to Software Engineering Lecture 13 – System Modeling.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Chapter Object-Oriented Practices. Agenda Object-Oriented Concepts Terminology Object-Oriented Modeling Tips Object-Oriented Data Models and DBMSs.
Chapter 14 (Web): Object-Oriented Data Modeling
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models September 29, 2008.
OBJECT ORIENTED ANALYSIS & DESIGN Vassilka Kirova Department of Computer & Information Science NJIT.
©Ian Sommerville 2000Software Engineering, 6/e, Chapter 71 System models l Abstract descriptions of systems whose requirements are being analysed.
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
Requirements Analysis 2 What objects collaborate to achieve the goal of a use case?
7M822 Software Engineering: System Models 14 September 2009.
John Sadd Progress Fellow and OpenEdge Evangelist
2005 Adobe Systems Incorporated. All Rights Reserved. Duane Nickull Adobe ® An Introduction to the OASIS Reference Model for Service Oriented Architecture.
What is Object-Oriented Programming?. Objects – Variables and Logic inside "Objects", not standalone code – Objects contain related variables and functions.
Design Patterns Trends and Case Study John Hurst June 2005.
Entity Framework Code First End to End
Introduction to “Oslo” Jeremy Boyd Director – Mindscape MSDN Regional Director
Object Orientation An Object oriented approach views systems and programs as a collection of interacting objects. An object is a thing in a computer system.
Domain-Driven Design using the ADO.NET Entity Framework Tim McCarthy Principal Engineer, InterKnowlogy
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
Chris Hance. Why “Re-”evolving?  NIH Epidemic  My name is Chris, and I’m a… VB6 Coder  YAGNI.
System models. System modelling System modelling helps the analyst to understand the functionality of the system and models are used to communicate with.
Domain-Driven Design Tim McCarthy Principal Engineer, InterKnowlogy
Building an Offline Smart Client using Domain-Driven Design Principles Tim McCarthy.
Domain Driven Design Ryan Riley Catapult Systems, Inc.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 3, Slide 1 February 20, 2004 Lecture 3: Introduction to Software Analysis and.
Introduction To System Analysis and Design
BTS430 Systems Analysis and Design using UML Design Patterns.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 3: SOA Reference Model OASIS 2006.
Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3.
Slide 1 System models. Slide 2 Objectives l To explain why the context of a system should be modelled as part of the RE process l To describe behavioural.
CS 4310: Software Engineering Lecture 4 System Modeling The Analysis Stage.
CHAPTER 13 (ONLINE): OBJECT-ORIENTED DATA MODELING © 2013 Pearson Education, Inc. Publishing as Prentice Hall 1 Modern Database Management 11 th Edition.
© 2011 Pearson Education, Inc. Publishing as Prentice Hall 1 Chapter 13 (Online): Object-Oriented Data Modeling Modern Database Management 10 th Edition.
The Semantic Object Model Semantic Objects Creating Data Models with Semantic Objects Types of Objects Object-Oriented Programming and Semantic Objects.
Domain and Persistence Patterns. Fundamental Pattern Types Design Patterns Business Logic Patterns.
Applying Domain-Driven Design Jimmy Nilsson Webcast with UML China
1/26 On-demand Learning Series Software Engineering of Web Application - Object-Oriented Development & UML Hunan University, Software School.
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
Enterprise Integration Patterns CS3300 Fall 2015.
CSC 131 Fall 2006 Lecture # 6 Object-Oriented Concepts.
Lecture 10 Concepts of Programming Languages Arne Kutzner Hanyang University / Seoul Korea.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Domain Inheritance Scaling Agility using Domain Inheritance.
 To explain why the context of a system should be modelled as part of the RE process  To describe behavioural modelling, data modelling and object modelling.
Activity & Class Modeling Labs Discussion p3 T120B pavasario sem.
1 SOA Seminar Seminar on Service Oriented Architecture SOA Reference Model OASIS 2006.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
CCL.
BTS530: Major Project Planning and Design
Object-oriented and Structured System Models
CHAPTER 5 GENERAL OOP CONCEPTS.
CMPE 135: Object-Oriented Analysis and Design October 24 Class Meeting
Object Oriented Concepts
CIS 375 Bruce R. Maxim UM-Dearborn
System models October 5, 2005.
Architectural Roadmap
Object Oriented Programming
CMPE 135 Object-Oriented Analysis and Design March 21 Class Meeting
BCA-II Object Oriented Programming using C++
SISAI 2012 – Statistics Sweden
OBJECT STORAGE AND INTEROPERABILITY
Software Design Lecture 5.
SO-Architectural Roadmap
Presentation transcript:

Domain Modelling Paul Stovell

Architecture: Implicit or Explicit? Architecture exists implicitly But if you don’t define it, it probably sucks

Scope of this presentation UI Data Stores (Database, Web Service, etc.)

Domain Modelling Step 1: Understand the problem domain Step 2: Architect around it

Object-Oriented Design Encapsulation Polymorphism Inheritance Abstraction

Design Patterns Gang of Four Concepts Judgement As simple as possible, but no simpler

Object Oriented not Class Oriented

Domain Model What’s in a domain model? Stateful Objects Services Responsibilities: Maintaining their own state Responsibilities: Maintaining their own state Responsibilities: Doing stuff Responsibilities: Doing stuff

Entities : Stateful Objects Have a real-world identity

Value Objects : Stateful Objects Have no real-world identity Value objects with same values are interchangeable

Value Objects : Stateful Objects Value objects are subjective

Domain Services : Stateless Responsibilities: Doing stuff Generally stateless

Relationship Bias Most real-world relationships are one-way

Aggregates Recognise that some things don’t exist without others

Aggregates Timesheet TimesheetEntry Customer Aggregate Timesheet

Locking Timesheet TimesheetEntry Customer Coarse-Grained Lock

Aggregates Timesheet TimesheetEntry Customer Aggregate

Context and Boundaries “Object models don’t scale”

Contexts and Boundaries Sales Application Context Tech Support Application Context Boundary

Gateways Abstract the coordination of services and stateful objects Like your manager: they boss people around but don’t do any work themselves

Domain Models + SOA UI Service Agents Web Services Business Logic Database Service Messages UI Service Agents Web Services Business Logic Database Service Messages

Domain Models + SOA UI Service Agents Web Services Domain Services Database Domain Objects UI Service Agents Web Services Domain Services Database Domain Objects

Recap What’s in a domain model? – Stateful Objects Entities Value Objects – Services Simplified by: – Relationship Bias – Aggregates Scales thanks to: – Contexts and Boundaries – Gateways

I’m still awake! Where can I get more? Head first design patterns Eric & Elizabeth Freeman Domain Driven Design Eric Evans Patterns of Enterprise Application Architecture Martin Fowler

CHEERS! Paul Stovell July 5 th SDNUG (AMP Building) Binding Oriented Programming