Key takeaway Go beyond Domain Model and move towards CQRS (related session B313)

Slides:



Advertisements
Similar presentations
January 30, 2014 Copyright Jim Farley Beyond JDBC: Java Object- Relational Mappings Jim Farley e-Commerce Program Manager GE Research and Development
Advertisements

Primary Strategy Subject Leader Briefing June/July 2008 Leading on learning – making best use of Assessment for learning.
File Server Organization and Best Practices IT Partners June, 02, 2010.
SYSTEMS ANALYSIS AND DESIGN TOOLS
Copyright Irwin/McGraw-Hill Data Modeling Prepared by Kevin C. Dittman for Systems Analysis & Design Methods 4ed by J. L. Whitten & L. D. Bentley.
Technical Architectures
1 Chapter 2 Database Environment Transparencies © Pearson Education Limited 1995, 2005.
Chapter 2 Database Environment.
PROCESS MODELING Transform Description. A model is a representation of reality. Just as a picture is worth a thousand words, most models are pictorial.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
Design 15 February. Software Engineering: Elaborated Steps Concept (contract, intro on web site) Requirements (use cases, requirements) Architecture Design.
Requirements Analysis 2 What objects collaborate to achieve the goal of a use case?
1 Integration and Extension Hohmann Chapter 8.
Chapter 2 Database Environment Pearson Education © 2014.
Lecture Two Database Environment Based on Chapter Two of this book:
Software Process and Product Metrics
BIS310: Week 7 BIS310: Structured Analysis and Design Data Modeling and Database Design.
WHAT ARE DEVELOPMENTAL ASSETS?  Assets usually signify financial resources. In our context, assets mean valuable resources of another kind.  The Search.
Database Environment 1.  Purpose of three-level database architecture.  Contents of external, conceptual, and internal levels.  Purpose of external/conceptual.
a Service Oriented Architecture
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
Lecture 18 Page 1 CS 111 Online Design Principles for Secure Systems Economy Complete mediation Open design Separation of privileges Least privilege Least.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
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.
STORING ORGANIZATIONAL INFORMATION— DATABASES CIS 429—Chapter 7.
Building an Offline Smart Client using Domain-Driven Design Principles Tim McCarthy.
CSCI 3140 Module 2 – Conceptual Database Design Theodore Chiasson Dalhousie University.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
Completing the Model Common Problems in Database Design.
Structural Modeling. Objectives O Understand the rules and style guidelines for creating CRC cards, class diagrams, and object diagrams. O Understand.
SYSTEMS ANALYSIS AND DESIGN TOOLS DATA FLOW DIAGRAMS.
Lecture 6: Structural Modeling
INFO1408 Database Design Concepts Week 15: Introduction to Database Management Systems.
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
IFS310: Module 6 3/1/2007 Data Modeling and Entity-Relationship Diagrams.
Database Environment Session 2 Course Name: Database System Year : 2013.
Chapter 2 Database Environment Chuan Li 1 © Pearson Education Limited 1995, 2005.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
© 2010 Health Information Management: Concepts, Principles, and Practice Chapter 5: Data and Information Management.
Slide 1 Systems Analysis and Design with UML Version 2.0, Second Edition Alan Dennis, Barbara Wixom, and David Tegarden Chapter 9: Moving on to Design.
26 th Annual MIS Conference – February 13, Why CEDS?
Software Engineering Zhang Shuang
Programme design and student assessment David Baume 1.
Domain Driven Design Using.NET Dave Rael. What’s wrong with this code? Public void CallMethodThatMightThrowScaryException(int carelessInputWithoutValidation)
consultant/mentor Microsoft MVP, INETA Speaker, ASPInsider, MCP, VTdotNET Leadercontact twitter theDataFarm.com/blog.
Database Design Process For many businesses, the database is the most important set of computer files they have. For some, like EBay or Facebook, the database.
Business Rules 12 th Meeting Course Name: Business Intelligence Year: 2009.
Chapter 2 Database Environment.
1 Database Environment. 2 Objectives of Three-Level Architecture u All users should be able to access same data. u A user’s view is immune to changes.
ITEC0724 Modern Related Technology on Mobile Devices Lecture Notes #2 1.
1 Chapter 2 Database Environment Pearson Education © 2009.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Breaking Up Is Hard To Do From Monolith to Microservices.
Lecture 3 Page 1 CS 236 Online Security Mechanisms CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Aggregate In DDD. What makes an ENTITY AGGREGATE root Has global identity. Expected to be directly accessed in typical business scenarios. If it has other.
DOMAIN DRIVEN DESIGN Dave 12 May WHAT IS DDD? Set of principles to aid in building complex systems Enables us to focus on core problem domain NOT.
RISK MANAGEMENT FOR COMMUNITY EVENTS. Today’s Session Risk Management – why is it important? Risk Management and Risk Assessment concepts Steps in the.
© 2012 Cengage Learning. All Rights Reserved. This edition is intended for use outside of the U.S. only, with content that may be different from the U.S.
Logical Architecture and UML Package Diagrams. The logical architecture is the large-scale organization of the software classes into packages, subsystems,
Workforce Repository & Planning Tool
REV 00 Chapter 2 Database Environment DDC DATABASE SYSTEM.
Building Bridges to a Good Life:
REV 00 Chapter 2 Database Environment DDC DATABASE SYSTEM.
CHAPTER 4 Designing Studies
Ben Burbridge, Rebecca Jones, Hilary Newman Product Development
Chapter 2 Database Environment Pearson Education © 2009.
Chapter 2 Database Environment Pearson Education © 2014.
Data Access in Your Code Thinking Outside the Framework
Presentation transcript:

Key takeaway Go beyond Domain Model and move towards CQRS (related session B313)

DDD has two distinct parts. You always need one and can sometimes happily ignore the other.Analytical Strategic Valuable to everybody and every project Just one originally recommended “supporting architecture”

Ubiquitous language Vocabulary shared by all involved parties Used in all forms of spoken/written communication Bounded contexts Areas of the domain treated independently Discovered as you assess requirements and build language

Dev teams Domainexperts Words and verbs reflecting semantics of the business Technical concepts named in a context-sensitive manner You don’t “delete a record” but you rather “cancel an order” Ubiquitous Language

Nouns and verbs Mapping to technical actions (e.g., cache, security, database) Referring to key business concepts

 Really a lot of domain logic tricky to digest Ensures all relevant terms are understood No other term is used to indicate same/similar concepts  Business logic not completely clear Business is young (startups) and grows with the system Domain logic being discovered day after day Excellent tool to make full sense of the “idea”

verb noun Voucher is a business-specific name. Nobody should ever use synonyms like coupon or gift card.

Sometimes Sometimes, the same term has different meanings when used by different people in a large organization. When this happens When this happens, you probably crossed the invisible boundaries of a subdomain. The business domain you assumed indivisible needs be split.

Area of influence Development Team #1 Development Team #2 Area of influence Integrity of the model at risk

ALASKA BRAZIL Is Alaska as large as Brazil? Is the map just wrong? Brazil is 5x larger than Alaska. Just a Mercator projection map.

Angle between courses and all parallels is always constant! To go from A to B just follow the angle—easy to draw with protractors

u = upstream d = downstream u = upstream d = downstream partner = mutual dependency but no shared code customer/supplier = upstream rules, but teams talk partner = mutual dependency but no shared code customer/supplier = upstream rules, but teams talk ACL = additional layer hiding to the downstream context any changes implemented at some point in the upstream context

 Multi-layered (-tiered)  Client/server (2-layer/tier)  Domain Model  CQRSB313 tomorrow  Event SourcingB313 tomorrow

 A way to ensure business consistency Transactional consistency only, within the domain  Work with fewer and coarse-grained objects Aggregate root entity to encapsulate all child entities Less entity-to-entity relationships to care about  An aggregate may simply be logical grouping Sometimes wrapper class helps protecting from outsider access “An aggregate is a cluster of associated objects that we treat as a single unit for the purpose of data changes.” –E. Evans