Ganesh Subramanian 22/12/2010

Slides:



Advertisements
Similar presentations
Objectives In this session, you will learn to:
Advertisements

Discovering the value of Domain-Driven Design presented by Herman Lintvelt (c) 2011 Polymorph Systems.
Craig Berntson
Oct 2, Ron McFadyen1 From the Merriam-Webster’s online dictionary ( Main Entry: an·thro·po·mor·phism Pronunciation: -"fi-z&m Function:
Standards & Enterprise Architecture for E-Governance Dr P.Madhav Institute for Electronic Governance.
Interfaces Supporting Knowledge Discovery In Data (ISKDD) BSE(Hons) Name: Mark Hollands Id: Supervisor: Assoc. Prof. Trevor Dix.
Standardization of Data A Pragmatic View for a Complex Process Forum on e-Business Interoperability and Standardization May 14, 2004 C.K. Wong iASPEC Technologies.
Understanding Metamodels. Outline Understanding metamodels Applying reference models Fundamental metamodel for describing software components Content.
Introduction to Database Management
CMPT 370: Information Systems Design Instructor: Curtis Cartmill, Simon Fraser University – Summer 2003 Lecture Topic: Layered Architecture Class Exercise:
Feb 4, Ron McFadyen1 founded on principles of good OO design idea was first put forth by Christopher Alexander (1977) in their work concerning.
Course Instructor: Aisha Azeem
Client/Server Architecture
Course: Introduction to Computers
Presenter: PhuongNQK. Goal Give an overview of currently prominent app architectures in relation to each other.
What is Business Analysis Planning & Monitoring?
Chapter 6 – Architectural Design Lecture 2 1Chapter 6 Architectural design.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
DBS201: DBA/DBMS Lecture 13.
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.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Mobile Agent Technology for the Management of Distributed Systems - a Case Study Claudia Raibulet& Claudio Demartini Politecnico di Torino, Dipartimento.
Domain-Driven Design Tim McCarthy Principal Engineer, InterKnowlogy
Building an Offline Smart Client using Domain-Driven Design Principles Tim McCarthy.
LIS 506 (Fall 2006) LIS 506 Information Technology Week 11: Digital Libraries & Institutional Repositories.
Domain Driven Design Ryan Riley Catapult Systems, Inc.
WP3 Zetabyte –Exascale Storage Virtualization. How does it fit in? Traditional ProvidersCloud ProvidersXXX Providers Providing: Work/Archive Storage,
Software Agents: An Overview by Hyacinth S. Nwana and Designing Behaviors for Information Agents by Keith Decker, Anandeep Pannu, Katia Sycara and Mike.
Systems Analysis and Design in a Changing World, 6th Edition
Chapter 17 GRASP: Designing Objects with Responsibilities. 1CS6359 Fall 2011 John Cole.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Content The system development life cycle
1 4/23/2007 Introduction to Grid computing Sunil Avutu Graduate Student Dept.of Computer Science.
1 Introduction to Software Engineering Lecture 1.
Software Design Patterns (1) Introduction. patterns do … & do not … Patterns do... provide common vocabulary provide “shorthand” for effectively communicating.
1 © 2014 | Prof. Dr. Jan Marco Leimeister Universität Kassel | FG Wirtschaftsinformatik Serious Game Development for Educators – A Serious Game Logic.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Object storage and object interoperability
GRID ANATOMY Advanced Computing Concepts – Dr. Emmanuel Pilli.
Internet 2 and DoDHE: Research Issues From The iSchool Perspective Mike Eisenberg Dean and Professor The Information School University of Washington, Oct.
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.
1 Sobah Abbas Petersen Adjunct Associate Professor, NTNU Researcher, Sintef TDT4252 Modelling of Information Systems Advanced Course TDT4252,
Week 1 Reference (chapter 1 in text book (1)) Dr. Fadi Fayez Jaber Updated By: Ola A.Younis Decision Support System.
Developing an IDM Information Delivery Manual Part 1. Industry Workgroup Training, Creating IDMs Alliance NA 2010 Dianne Davis, NA-IDM Coordinator Jan.
Managing Data Resources File Organization and databases for business information systems.
Leveraging ColdSpring to build a robust Flex applications Chris Scott, Cynergy Systems.
AGENT SERVICES FRAMEWORK FOR HANDHELD DEVICES SUPERVISOR: DR MUHAMMAD ASLAM Domain: Artificial Intelligence(AI) Muhammad Ali (09-MS-CE-11),
Database Principles: Fundamentals of Design, Implementation, and Management Chapter 1 The Database Approach.
Object Oriented Systems Design
Databases and DBMSs Todd S. Bacastow January 2005.
GRASP – Designing Objects with Responsibilities
Distribution and components
Object Oriented Systems Development
Data The lowest level of abstraction from which information and knowledge are derived. Any collection of recorded facts, numbers, or datum of any nature.
Use Cases and Requirements for I2NSF_
Intent Based Orchestration for Applications
Software Configuration Management
Digital Lobby.
OBJECT-ORIENTED APPROACH TO OFFICIAL STATISTICS
Metadata Framework as the basis for Metadata-driven Architecture
Copyright 2007 Oxford Consulting, Ltd
Database System Concepts and Architecture
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Data Access in Your Code Thinking Outside the Framework
Chapter 6: Architectural Design
Problem Solving and Computer Programming
Presentation transcript:

Ganesh Subramanian 22/12/

Problem

 Diverse Characters to solve one problem  Everybody talks in different language  Ultimate Result- Delivered solution is brittle and Fragile Problem

 Everybody who are involved should talk in one Language Step 1 : Agree on language terminology and definitions Step 2: Call on the language expert Step 3 : Use Business model to device the language Solution

What is DDD?  Not a technology or a methodology  A way of thinking and a set of priorities, aimed at accelerating software projects that have to deal with complicated domains  Primary focus on the domain and domain logic  Complex domain designs based on a model. Domain Driven Design

Traditional Architecture Presentation Layer Business Layer Data Access Layer Infrastructure Layer

Layered Architecture

 User Interface Responsible for showing information to the user and interpreting the user's commands  Application Does not contain business rules or knowledge Coordinates tasks and delegates work to domain objects Does not have state reflecting the business situation Interacts with application layer of other systems  Domain Contains business logic and rules Reflects the state of business situation Heart of business software  Infrastructure Provides generic technical capabilities that support the higher layers Persistence, Sending s, libraries, utilities etc… Layered Architecture (contd…)

Building Blocks

Shopping Cart Application DDD in Practice

Shopping Cart Application

Shopping Cart Domain Model

 Entity A noun with an identity Mutable - State can change over time Can be associated with other entities and value objects Can’t be shared  Value Object A noun without an identity Immutable - State can’t change Can be associated with other entities Can be shared  Aggregate  One root entity per aggregate  Associated entities can refer to root but not other entities in the aggregate  All operations are done through root Building Blocks Revisited

 Service Has operations that conceptually doesn’t below to an domain object Stateless Interface is defined in terms of other elements of the domain model A service can be part of any layer (Application, Domain, Infrastructure)  Factory Creates the entities and value objects Use only when the entity creation is complex  Repository Collection of entities Takes care of updating an entity Takes care of retrieving an already persisted entity One repository per aggregate root Building Blocks Revisited (Contd…)

Layers in Shopping cart App

??? Questions