Tackling Complexity in the Heart of Software. Domain-Driven Design 카페서비스개발팀 조영호
|
|
- Eugene Lewis
- 5 years ago
- Views:
Transcription
1 Tackling Complexity in the Heart of Software Domain-Driven Design 카페서비스개발팀 조영호
2 목차 1. Domain & Software 2. What is Domain-Driven Design? 3. Patterns of Domain-Driven Design 4. Conclusion
3 1. Domain & Software
4 Domain-Driven Design - Book By Eric Evans Addison-Wesley, / 문서의제목
5 Domain & Software The subject area to which the user applies a program is the domain of the software. The critical complexity of most software projects is in understanding the domain itself. 5 / 문서의제목
6 Domain & Software Software has to Model the Domain 6 / 문서의제목
7 But... AOP Database Grails RoR Naked Object Ajax ActiveMQ Mockito ORM Coarse Grained Lock Continuous Integration Spring Hibernate J2EE Hadoop Dependency Injection Strategy 7 / 문서의제목
8 Conversation Based on Technology Cargo cargoid originid destination customers clearance(opt) weight Haz Mat Code origin destination customers clearance (opt) Routing Service populate cargo_bookings table Database table : cargo_bookings Cargo_id Transport Load Unload "If we give the Routing Service an origin, destination, and arrival time, it can look up the stops the cargo will have to make and, well... stick them in the database." 8 / 문서의제목
9 2. What is Domain-Driven Design?
10 Representation[Semantic] Gap The gap between our mental model of the domain and its representation in software Name from domain vocabulary Responsibility derived from domain concept Cat Lion Low Representation Gap 10 / 문서의제목
11 Ice Age of EJB <<interface>> EJBHome <<interface>> CatHome <<interface>> EntityBean Cat Domain Concept High Representation Gap <<interface>> EJBObject CatEJB <<interface>> Cat Design 11 / 문서의제목
12 Technology Exodus OO design is more important than any particular implementation technology (such as J2EE, or even Java). And now important than even Spring or Hibernate 12 / 문서의제목
13 DOMAIN MODEL Pattern An object model of the domain that incorporates both behavior and data. Back to the Origin of the OO TRANSACTION SCRIPT & ANEMIC DOMAIN MODEL Sale gettotalprice() : long settotalprice(long) getlineitems() : Collection setlineimtes(collection) LineItem getprice() : long setprice(long) getprioduct() : Product setproduct(product) RICH DOMAIN MODEL Sale calclulateprice() : Money addlineitem(lineitem) * LineItem calculateprice() : long 13 / 문서의제목
14 Continuous Design in Agile Specification Refactoring Test Big Up-front Design Incremental Design Code Design 14 / 문서의제목
15 Analysis = Design = Implementation Showing time seatid Showing time : TimeOfDay seatid 1 ReservationSeat Analysis Model ReservationSeat Design Model Showing showing = showingrepository.getshowingwithlock(showingid); Reservation reservation = showing.reserveseats(seatids, adultseatcount, teenagerseatcount); reservationrepository.savereservation(reservation); Implementation Model 15 / 문서의제목
16 And Finally Focus on Domain Complexity, not Technology Complexity Everything is Driven By Domain 16 / 문서의제목
17 And Finally Tackling Complexity in the Heart of Software 17 / 문서의제목
18 And Finally MODEL-DRIVEN DESIGN UBIQUITOUS LANGUAGE 18 / 문서의제목
19 Model 19 / 문서의제목
20 Model A system of abstractions that describes selected aspects of a domain and can be used to solve problems related to that domain A model is not right or wrong, only more or less useful 20 / 문서의제목
21 Domain Modeling Documentary Film A domain modeler chooses particular model for usability 21 / 문서의제목
22 Model & Diagram A Domain Model is not a particular diagram. It is the knowledge that the diagram is intended to convey. The Diagram is a representation of Model Not a Model 22 / 문서의제목
23 Model-Driven Design 23 / 문서의제목
24 Model-Driven Design The MODEL and the heart of the DESIGN shape each other Showing time seatid Showing time : TimeOfDay seatid 1 ReservationSeat DOMAIN MODEL ReservationSeat DESIGN Showing showing = showingrepository.getshowingwithlock(showingid); Reservation reservation = showing.reserveseats(seatids, adultseatcount, teenagerseatcount); reservationrepository.savereservation(reservation); CODE 24 / 문서의제목
25 Model-Driven Design Find the Model that works for Analysis, Design and Implementation Lower Representation Gap Object-Oriented Paradigm is the most Powerful The Code is an expression of Model 25 / 문서의제목
26 Hands-On Modelers A Programmer is a Modeler. 26 / 문서의제목
27 UBIQUITOUS LANGUAGE 27 / 문서의제목
28 UBIQUITOUS LANGUAGE Discussion between Developers and Domain Experts Conversations among Developers Discussions among Domain Experts Expressions in the Code All based on the same language, derived from a shared Domain Model 28 / 문서의제목
29 UBIQUITOUS LANGUAGE technical terms technical aspects of design technical design patterns domain model terms names of BOUNDED CONTEXT terminology of large-scale structure many patterns from Domain-Driven Design book business terms developers don t understand business terms everyone uses that don t appear in design 29 / 문서의제목
30 UBIQUITOUS LANGUAGE Use the Domain Model as the backbone of a Language Use the UBIQUITOUS LANGES in all communication within team and in the code Use the same language in diagrams, writing, and especially speech One Team, One Language 30 / 문서의제목
31 And Domain-Driven Design Showing Reservation Reservation Seat UBIQUITOUS LANGUAGE Showing time seatid ReservationSeat DOMAIN MODEL Showing showing = showingrepository.getshowingwithlock(showingid); Reservation reservation = showing.reserveseats(seatids, adultseatcount, teenagerseatcount); reservationrepository.savereservation(reservation); CODE 31 / 문서의제목
32 And Domain-Driven Design Showing Reservation Reservation Seat UBIQUITOUS LANGUAGE Showing time seatid ReservationSeat DOMAIN MODEL Showing showing = showingrepository.getshowingwithlock(showingid); Reservation reservation = showing.reserveseats(seatids, adultseatcount, teenagerseatcount); reservationrepository.savereservation(reservation); CODE 32 / 문서의제목
33 And Domain-Driven Design Performance Reservation Reservation Seat UBIQUITOUS LANGUAGE Showing time seatid ReservationSeat DOMAIN MODEL Showing showing = showingrepository.getshowingwithlock(showingid); Reservation reservation = showing.reserveseats(seatids, adultseatcount, teenagerseatcount); reservationrepository.savereservation(reservation); CODE 33 / 문서의제목
34 And Domain-Driven Design Performance Reservation Reservation Seat UBIQUITOUS LANGUAGE Performance time seatid ReservationSeat DOMAIN MODEL Showing showing = showingrepository.getshowingwithlock(showingid); Reservation reservation = showing.reserveseats(seatids, adultseatcount, teenagerseatcount); reservationrepository.savereservation(reservation); CODE 34 / 문서의제목
35 And Domain-Driven Design Performance Reservation Reservation Seat UBIQUITOUS LANGUAGE Performance time seatid ReservationSeat DOMAIN MODEL Performance performance = performancerepository.getperformancewithlock( performanceid); Reservation reservation = showing.reserveseats(seatids, adultseatcount, teenagerseatcount); reservationrepository.savereservation(reservation); CODE 35 / 문서의제목
36 And Domain-Driven Design A Showing is / 문서의제목
37 And Domain-Driven Design A Performance is / 문서의제목
38 Conversation Based on Technology Cargo cargoid originid destination customers clearance(opt) weight Haz Mat Code origin destination customers clearance (opt) Routing Service populate cargo_bookings table Database table : cargo_bookings Cargo_id Transport Load Unload "If we give the Routing Service an origin, destination, and arrival time, it can look up the stops the cargo will have to make and, well... stick them in the database." 38 / 문서의제목
39 Conversation Based on Model Cargo Route Specification cargoid weight Haz Mat Code origin destination customers clearance (opt) a Route Specification Routing Service {Itinerary must satisfy specification} an Itinerary satisfying the Route Specification 0..1 Itinerary Leg "A Routing Service finds an Itinerary that satisfies a Route Specification. 39 / 문서의제목
40 3. Patterns of Domain-Driven Design
41 Domain-Driven Design & Patterns DDD is not about patterns such as ENTITY, VALUE OBJECT, AGGREGATE, REPOSITORY, SERVICE, FACTORY DDD is a better way of thinking about software design Patterns may take your software more stable or more maintainable, but it is the methodology that guides you to deliver something fit for purpose 41 / 문서의제목
42 DOMAIN MODEL is a King 42 / 문서의제목
43 A King, DOMAN MODEL is RICH, Not ANEMIC <<interface>> ScheduleService reserve(showingid, seats,adultseatcount, teenagerseatcount) : Reservation <<interface>> ShowingRepository -showingrepository ScheduleServiceImpl -reservationrepository <<interface>> ReservationRepository getshowingwithlock(showingid) :Showing savereservation(reservation) ShowingFactory Showing create(dayofyear, showingspecification) : Showing time:timeofyear 1 seatid <<interface>> SeatState 1 1 ReservationSeat 0..1 leftseat 0..1 rightseat 0..* 0..1 Reservation amount:money AbstractSeatState 0..1 nextseatstate 0..1 previousseatstate Occupied Reserved Sold 43 / 문서의제목
44 A King, DOMAN MODEL is RICH, Not ANEMIC SERVICE <<interface>> ScheduleService reserve(showingid, seats,adultseatcount, teenagerseatcount) : Reservation REPOSITORY <<interface>> ShowingRepository -showingrepository ScheduleServiceImpl -reservationrepository <<interface>> ReservationRepository getshowingwithlock(showingid) :Showing FACTORY savereservation(reservation) ENTITY Showing ShowingFactory create(dayofyear, showingspecification) : Showing AGGREGATE time:timeofyear seatid 1 <<interface>> SeatState AbstractSeatState 1 1 ReservationSeat 0..1 leftseat 0..1 rightseat 0..* 0..1 Reservation amount:money VALUE OBJECT 0..1 nextseatstate 0..1 previousseatstate Occupied Reserved Sold 44 / 문서의제목
45 A King should be Protected 45 / 문서의제목
46 Layered Architecture User Interface Application Domain Infrastructure 46 / 문서의제목
47 CONTEXT is a King s Domain 47 / 문서의제목
48 BOUNDED CONTEXT 48 / 문서의제목
49 BOUNDED CONTEXT CONTEXT CONTEXT Model Model 49 / 문서의제목
50 Translate two UBIQUATIOUS LABUAGES 50 / 문서의제목
51 CONTEXT MAP CONTEXT CONTEXT Model Model TRNSLATION MAP 51 / 문서의제목
52 CONTINUOUS INTEGRATION CONTEXT CONTEXT Model Model CONTINUOUS INTEGRATION per each CONTEXT 52 / 문서의제목
53 A king should learn continuously 53 / 문서의제목
54 DISTILLATION User Interface Application ABSTRACT CORE Refactoring Domain CORE DOMAIN GENERIC SUBDOMAIIN COHESIVE MECHANISM SEGREGATED CORE Infrastructure 54 / 문서의제목
55 CONTEXT & MODEL Single, Unified Model within Any One Context CONTEXT CONTEXT Model Model No duplication...within a context! Duplication between...aok! 55 / 문서의제목
56 4. Conclusion
57 No Silver Bullet 57 / 문서의제목
58 Essence of Software Complexity Conformity Changeability Invisibility 58 / 문서의제목
59 Essence of Software Complexity Conformity Changeability Invisibility Related to Domain & Domain Model 59 / 문서의제목
60 Domain-Drive Design Back to the Basics Software should model the Domain Software & Project should be based on the Domain Model Software that provides rich functionality based on a fundamental understanding of the core domain Tackling Essence in the Heart of Software 60 / 문서의제목
61 But Remember... No Silver Bullet 61 / 문서의제목
62 Resources - Domain-Driven Design, Eric Evans, Addison-Wesley, Patterns of Enterprise Application Architecture, Martin Fowler, Addison-Wesley, Applying Domain-Driven Design and Patterns, Jimmy Nilson, Addison-Wesley, Domain Driven Design Quickly, - Domain-Driven Design Step-By-Step, filesystemfile.ashx/ key/communityserver.components.sitefiles/domain-driven- Design-_2D00_-Step-by-Step.pdf - Domain-Driven Design Community, - Eternity s Chit-Chat, 62 / 문서의제목
63 Thank you.
64 Question.
Lecture 23: Domain-Driven Design (Part 1)
1 Lecture 23: Domain-Driven Design (Part 1) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2005 2 Goals for this lecture Introduce the main concepts of Domain-Driven
More informationEnterprise Java Development using JPA, Hibernate and Spring. Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009
Enterprise Java Development using JPA, Hibernate and Spring Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009 About the Speaker Enterprise Architect Writer, Speaker, Editor (InfoQ)
More informationArchitecting and Implementing Domain-driven Design Patterns in.net
Architecting and Implementing Domain-driven Design Patterns in.net Dino Esposito JetBrains dino.esposito@jetbrains.com @despos facebook.com/naa4e WARNING This is NOT simply a shameless plug but a truly
More informationPatterns Of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler)) PDF
Patterns Of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler)) PDF The practice of enterprise application development has benefited from the emergence of many new enabling technologies.
More informationDesigning the M in MVC
Designing the M in MVC Rob Allen @akrabat ~ May 2017 ~ http://akrabat.com (slides at http://akrabat.com/talks) The business logic is the hard part MVC MVC DDD is an approach to help you manage the model
More information. METHODOLOGY. MVC Based E-commerce Design. Literature Review based On Model View Controller MVC with J2EE. Public Cloud Implementation for E-commerce
. METHODOLOGY MVC Based E-commerce Design Literature Review based On Model View Controller MVC with J2EE Public Cloud Implementation for E-commerce Cloud Computing Literature Review with E-commerce. Registered
More informationTHE DUAL MODEL ARCHITECTURE
Xalt DATA SHEET THE DUAL MODEL ARCHITECTURE 1. INTRODUCTION Xalt is a revolutionary technology platform for key business operations across all industries. It enables the convergence of the physical world
More informationApplication Architectures, Design Patterns
Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term
More informationJ2EE AntiPatterns. Bill Dudney. Object Systems Group Copyright 2003, Object Systems Group
J2EE AntiPatterns Bill Dudney Object Systems Group bill@dudney.net Bill Dudney J2EE AntiPatterns Page 1 Agenda What is an AntiPattern? What is a Refactoring? AntiPatterns & Refactorings Persistence Service
More informationLecture 2: Software Engineering (a review)
Lecture 2: Software Engineering (a review) Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Credit where Credit is Due Some material presented in this lecture is
More informationDomain Driven Design IS. An architectural methodology for evolving a software system that closely aligns to business requirements
Domain Driven Design IS An architectural methodology for evolving a software system that closely aligns to business requirements Domain Driven Design IS Domain First Focus on the Object Model Focus on
More informationWant Better Software? TEST it! (and thenwrite it) Tame defects before they appear You Rise/Bugs Fall
Want Better Software? TEST it! (and thenwrite it) Tame defects before they appear You Rise/Bugs Fall Introduction TDD had its origins as an integral part of Extreme Programming TDD, BDD, DDD and the coming
More information1 Software Architecture
Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to
More informationExtreme programming XP 6
Extreme programming XP 6 Planning Game 3 Planning Game Independent: Stories should be as independent as possible. When thinking of independence it is often easier to think of order independent. In other
More informationDDD Where s the value and what s in it for me?
DDD Where s the value and what s in it for me? Dino Esposito JetBrains dino.esposito@jetbrains.com @despos facebook.com/naa4e What does a software architect do? Design software driven by the requirements
More informationDeveloping Web-Based Applications Using Model Driven Architecture and Domain Specific Languages
Proceedings of the 8 th International Conference on Applied Informatics Eger, Hungary, January 27 30, 2010. Vol. 2. pp. 287 293. Developing Web-Based Applications Using Model Driven Architecture and Domain
More informationDDD and BDD. Dan North ThoughtWorks
DDD and BDD Dan North ThoughtWorks BDD and DDD Dan North ThoughtWorks What is Domain Driven Design? It s about focusing on the domain and letting it affect the software very much - Jimmy Nilsson (ADDDP)
More informationUnderstading Refactorings
Understading Refactorings Ricardo Terra terra@dcc.ufmg.br Marco Túlio Valente mtov@dcc.ufmg.br UFMG, 2010 UFMG, 2010 Understanding Refactorings 1 / 36 Agenda 1 Overview 2 Refactoring 3 Final Considerations
More informationSystems software design
Systems software design Methods of system analysis and design Who are we? Krzysztof Kąkol Software Developer PGS Software S.A. Jarosław Świniarski Software Developer PGS Software S.A. Presentation based
More informationUnderstanding. Domain-Driven Design
Understanding Domain-Driven Design 1 Domain-Driven Design Is about developers and domain experts working together to create software that is both understandable and maintainable. a way to capture and spread
More informationAgile Architecture. The Why, the What and the How
Agile Architecture The Why, the What and the How Copyright Net Objectives, Inc. All Rights Reserved 2 Product Portfolio Management Product Management Lean for Executives SAFe for Executives Scaled Agile
More information(p t y) lt d. 1995/04149/07. Course List 2018
JAVA Java Programming Java is one of the most popular programming languages in the world, and is used by thousands of companies. This course will teach you the fundamentals of the Java language, so that
More informationCQRS and Event Sourcing for Java Developers Markus Eisele
CQRS and Event Sourcing for Java Developers Markus Eisele @myfear Agenda Classical architectures and modernization CRUD vs. CQRS A little example Wrapping it up Classical Architectures Application Server
More informationOBJECT-ORIENTED DOMAIN DRIVEN DESIGN. Robert Bräutigam MATHEMA So ware GmbH.
" OBJECT-ORIENTED DOMAIN DRIVEN DESIGN Robert Bräutigam MATHEMA So ware GmbH. GOAL TO INTRODUCE A NEW** DESIGN PARADIGM WHICH INCREASES MAINTAINABILITY* OF SOFTWARE. OO AND DDD? ISN'T THAT REDUNTANT?
More informationAvancier Methods. Very basic design patterns. It is illegal to copy, share or show this document
Methods Very basic design patterns It is illegal to copy, share or show this document (or other document published at http://avancier.co.uk) without the written permission of the copyright holder Copyright
More informationSOFTWARE ENGINEERING. Lecture 6. By: Latifa ALrashed. Networks and Communication Department
1 SOFTWARE ENGINEERING Networks and Communication Department Lecture 6 By: Latifa ALrashed Outline q q q q q q q q Define the concept of the software life cycle in software engineering. Identify the system
More information.NET Three Examples of Applied Patterns Jimmy Nilsson
.NET Three Examples of Applied Patterns Jimmy Nilsson About Jimmy Nilsson Primarily a developer, but also a trainer and author Blogs at www.jnsk.se/weblog/ Author of Applying Domain-Driven Design and Patterns
More informationPOJOs in Action DEVELOPING ENTERPRISE APPLICATIONS WITH LIGHTWEIGHT FRAMEWORKS CHRIS RICHARDSON MANNING. Greenwich (74 w. long.)
POJOs in Action DEVELOPING ENTERPRISE APPLICATIONS WITH LIGHTWEIGHT FRAMEWORKS CHRIS RICHARDSON MANNING Greenwich (74 w. long.) contents PART 1 1 preface xix acknowledgments xxi about this book xxiii about
More informationSocket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.
Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise
More informationOverview of Sentence Order Reference Document Development Process
Overview of Sentence Order Reference Document Development Process Scott Came Justice Integration Solutions, Inc. September 14, 2004 Purpose The purpose of this document is to outline the process/methodology
More informationBUILDING MICROSERVICES ON AZURE. ~ Vaibhav
BUILDING MICROSERVICES ON AZURE ~ Vaibhav Gujral @vabgujral About Me Over 11 years of experience Working with Assurant Inc. Microsoft Certified Azure Architect MCSD, MCP, Microsoft Specialist Aspiring
More information02291: System Integration
02291: System Integration Hubert Baumeister hub@imm.dtu.dk Spring 2011 Contents 1 Recap 1 2 More UML Diagrams 2 2.1 Object Diagrams........................................... 2 2.2 Communication Diagrams......................................
More informationResponsibilities. Using several specific design principles to guide OO design decisions.
Designing Objects with Responsibilities Using several specific design principles to guide OO design decisions. Challenge Old-school advice on OOD After identifying i your requirements and creating a domain
More informationDesign Patterns Thinking and Architecture at Scale
Design Patterns Thinking and Architecture at Scale This talk is based on Net Objectives design patterns training and Al Shalloway and Jim Trott s book Design Patterns Explained. Please contact Al at alshall@netobjectives.com
More informationIntroduction to Software Engineering
Introduction to Software Engineering Gérald Monard Ecole GDR CORREL - April 16, 2013 www.monard.info Bibliography Software Engineering, 9th ed. (I. Sommerville, 2010, Pearson) Conduite de projets informatiques,
More informationThe Unified Modelling Language. Example Diagrams. Notation vs. Methodology. UML and Meta Modelling
UML and Meta ling Topics: UML as an example visual notation The UML meta model and the concept of meta modelling Driven Architecture and model engineering The AndroMDA open source project Applying cognitive
More informationObject- Oriented Design with UML and Java Part I: Fundamentals
Object- Oriented Design with UML and Java Part I: Fundamentals University of Colorado 1999-2002 CSCI-4448 - Object-Oriented Programming and Design These notes as free PDF files: http://www.softwarefederation.com/cs4448.html
More informationDomain Engineering And Variability In The Reuse-Driven Software Engineering Business.
OBM 7 -draft 09/02/00 1 Domain Engineering And Variability In The Reuse-Driven Software Engineering Business. Martin L. Griss, Laboratory Scientist, Hewlett-Packard Laboratories, Palo Alto, CA. Effective
More informationCORE JAVA. Saying Hello to Java: A primer on Java Programming language
CORE JAVA Saying Hello to Java: A primer on Java Programming language Intro to Java & its features Why Java very famous? Types of applications that can be developed using Java Writing my first Java program
More informationTable of Index Hadoop for Developers Hibernate: Using Hibernate For Java Database Access HP FlexNetwork Fundamentals, Rev. 14.21 HP Navigating the Journey to Cloud, Rev. 15.11 HP OneView 1.20 Rev.15.21
More informationCONFIGURING A SPRING DEVELOPMENT ENVIRONMENT
Module 5 CONFIGURING A SPRING DEVELOPMENT ENVIRONMENT The Spring Framework > The Spring framework (spring.io) is a comprehensive Java SE/Java EE application framework > Spring addresses many aspects of
More informationAgile Engineering. and other stuff I m working on
Agile Engineering and other stuff I m working on 2008 Gilb conference on Risk Ryan Shriver > Managing Consultant > rshriver@dominiondigital.com Leader in IT Performance Improvement > www.dominiondigital.com
More informationIntroduction to Testing and Maintainable code
Introduction to Testing and Maintainable code Reasons not to write unit tests 1. I don't know how to write tests. 2. Writing tests is too hard. 3. I don't have enough time to write tests. 4. Testing is
More informationCreating Models. Rob Allen, July 2014
Creating Models Rob Allen, July 2014 I make business websites 19ft.com The business logic is the hard part MVC MVC The model is the solution to a problem A problem A customer wants to plan a journey
More informationEJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java
EJB Enterprise Java EJB Beans ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY Peter R. Egli 1/23 Contents 1. What is a bean? 2. Why EJB? 3. Evolution
More informationThe Value of Values. Rich Hickey Datomic, Clojure
The Value of Values Rich Hickey Datomic, Clojure I.T. Information Inform to convey knowledge via facts give shape to (the mind) Information the facts What is a Fact? Place where specific information is
More informationData Modeling with Neo4j. Stefan Armbruster, Neo Technology (slides from Michael Hunger)
Data Modeling with Neo4j Stefan Armbruster, Neo Technology (slides from Michael Hunger) 1 1 33 is a 44 NOSQL 55 Graph Database 66 A graph database... NO: not for charts & diagrams, or vector artwork YES:
More informationIntroduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014
Introduction to User Stories CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014 1 Goals Present an introduction to the topic of user stories concepts and terminology benefits and limitations
More informationCOURSE 11 DESIGN PATTERNS
COURSE 11 DESIGN PATTERNS PREVIOUS COURSE J2EE Design Patterns CURRENT COURSE Refactoring Way refactoring Some refactoring examples SOFTWARE EVOLUTION Problem: You need to modify existing code extend/adapt/correct/
More information10 - Integrated Development Environments
10 - Integrated Development Environments Motivation Writing a toy application with a text editor is comparatively easy. Developing a large software system with just a text editor is much more difficult
More informationSybase. Strategic Developer. Karl Reti & John Graham February 28, 2005
Sybase Strategic Developer Karl Reti & John Graham February 28, 2005 Sybase Sybase enables the unwired enterprise by delivering enterprise and mobile infrastructure, development, and integration software
More informationTHIS IS ONLY SAMPLE RESUME - DO NOT COPY AND PASTE INTO YOUR RESUME. WE ARE NOT RESPONSIBLE Name: xxxxxx
Name: xxxxxx Email ID: xxxxxx Ph: xxxxxx Summary: Over 7 years of experience in object oriented programming, design and development of Multi-Tier distributed, Enterprise applications using Java and J2EE
More informationA Quick Chat about two of many Service-Oriented Modeling Framework (SOMF) Capabilities: Simplicity and Traceability
SERVICE-ORIENTED MODELING FRAMEWORK (SOMF) - SIMPLICITY AND TRACEABILITY www.modelingconcepts.com Do not be afraid to ask! A Quick Chat about two of many Service-Oriented Modeling Framework (SOMF) Capabilities:
More informationTest-Driven Development
Test-Driven Development Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/5448 Lecture 28 04/21/11 University of Colorado, 2011 Credit where Credit is Due Some of the material for this lecture
More informationSoftware Engineering I (02161)
Software Engineering I (02161) Week 11 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2017 Recap I Software Development Processes (cont.) I Project Planning I Design
More informationA Data Modeling Process. Determining System Requirements. Planning the Project. Specifying Relationships. Specifying Entities
Chapter 3 Entity-Relationship Data Modeling: Process and Examples Fundamentals, Design, and Implementation, 9/e A Data Modeling Process Steps in the data modeling process Plan project Determine requirements
More informationADVANCED SOFTWARE DESIGN LECTURE 7 GRASP
ADVANCED SOFTWARE DESIGN LECTURE 7 GRASP Dave Clarke 1 TODAY S LECTURE We will discuss 7 of the GRASP design patterns cohesion and coupling were covered earlier. These provide principles for evaluating
More informationCOPYRIGHTED MATERIAL CONTENTS PART I: THE PRINCIPLES AND PRACTICES OF DOMAIN DRIVEN DESIGN
INTRODUCTION xxxv PART I: THE PRINCIPLES AND PRACTICES OF DOMAIN DRIVEN DESIGN CHAPTER 1: WHAT IS DOMAIN DRIVEN DESIGN? 3 The Challenges of Creating Software for Complex Problem Domains 4 Code Created
More informationJ2EE - Version: 25. Developing Enterprise Applications with J2EE Enterprise Technologies
J2EE - Version: 25 Developing Enterprise Applications with J2EE Enterprise Technologies Developing Enterprise Applications with J2EE Enterprise Technologies J2EE - Version: 25 5 days Course Description:
More informationBuilding in Quality: The Beauty of Behavior Driven Development (BDD) Larry Apke - Agile Coach
Building in Quality: The Beauty of Behavior Driven Development (BDD) Larry Apke - Agile Coach Deming on Quality Quality comes not from inspection, but from improvement of the production process. We cannot
More informationSoftware Development
Software Development and Professional Practice Object-Oriented Design Part the Third: (in which we revisit several parts of the OOA&D process, culminating in some general design principles) Object Oriented
More informationCS 2340 Objects and Design
CS 2340 Objects and Design Software Design Christopher Simpkins chris.simpkins@gatech.edu Chris Simpkins (Georgia Tech) CS 2340 Objects and Design Software Design 1 / 6 Design Design (noun) A plan or protocol
More informationNot your Grandfather s Architecture
Not your Grandfather s Architecture Taking Architecture into the Agile World James O. Coplien Gertrud&Cope, Mørdup, Denmark What is architecture? Architecture is the essence of structure: form Structure
More informationSoftware Architecture
Software Architecture Architectural Design and Patterns. Standard Architectures. Dr. Philipp Leitner @xleitix University of Zurich, Switzerland software evolution & architecture lab Architecting, the planning
More informationClean Architecture Patterns, Practices, and #sddconf
Clean Architecture Patterns, Practices, and Principles @matthewrenze #sddconf About Me Independent consultant Education B.S. in Computer Science (ISU) B.A. in Philosophy (ISU) Community Public Speaker
More informationSpring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics
Spring & Hibernate Overview: The spring framework is an application framework that provides a lightweight container that supports the creation of simple-to-complex components in a non-invasive fashion.
More informationDomain Modeling. CSSE 574: Week 1, Part 3. Steve Chenoweth Phone: Office (812) Cell (937)
Domain Modeling CSSE 574: Week 1, Part 3 Steve Chenoweth Phone: Office (812) 877-8974 Cell (937) 657-3885 Email: chenowet@rose-hulman.edu s g Where we re going Sample UP Artifact Relationships date...
More informationClean Architecture Patterns, Practices, and #DevSum17
Clean Architecture Patterns, Practices, and Principles @matthewrenze #DevSum17 About Me Independent consultant Education B.S. in Computer Science (ISU) B.A. in Philosophy (ISU) Community Public Speaker
More informationCOMP 6471 Software Design Methodologies
COMP 647 Software Design Methodologies Fall 20 Dr Greg Butler http://www.cs.concordia.ca/~gregb/home/comp647-fall20.html Course Introduction Course People Course Components What the course is What the
More informationUML Views of a System
UML Views of a System The architecture of a system is the fundamental organization of the system as a whole. The five UML Views: Use Case View: focuses on scenarios Design View: focuses on the vocabulary
More informationWeb Presentation Patterns (controller) SWEN-343 From Fowler, Patterns of Enterprise Application Architecture
Web Presentation Patterns (controller) SWEN-343 From Fowler, Patterns of Enterprise Application Architecture Objectives Look at common patterns for designing Web-based presentation layer behavior Model-View-Control
More informationSitesbay.com. A Perfect Place for All Tutorials Resources. Java Projects C C++ DS Interview Questions JavaScript
Sitesbay.com A Perfect Place for All Tutorials Resources Java Projects C C++ DS Interview Questions JavaScript Core Java Servlet JSP JDBC Struts Hibernate Spring Java Projects C C++ DS Interview Questions
More information5. Application Layer. Introduction
Book Preview This is a sample chapter of Professional PHP - Building maintainable and secure applications. The book starts with a few theory chapters and after that it is structured as a tutorial. The
More informationIntroduction. Chapter 1. What Is Visual Modeling? The Triangle for Success. The Role of Notation. History of the UML. The Role of Process
Quatrani_Ch.01.fm Page 1 Friday, October 27, 2000 9:02 AM Chapter 1 Introduction What Is Visual Modeling? The Triangle for Success The Role of Notation History of the UML The Role of Process What Is Iterative
More informationTop of Minds Report series Data Warehouse The six levels of integration
Top of Minds Report series Data Warehouse The six levels of integration Recommended reading Before reading this report it is recommended to read ToM Report Series on Data Warehouse Definitions for Integration
More informationSoftware Engineering I (02161)
Software Engineering I (02161) Week 10 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2016 Last Time Project Planning Non-agile Agile Refactoring Contents Basic Principles
More informationAgile Model-Driven Development with UML 2.0 SCOTT W. AM BLER. Foreword by Randy Miller UNIFIED 1420 MODELING LANGUAGE. gile 1.
THE OBJECT PRIMER THIRD EDITION Agile Model-Driven Development with UML 2.0 SCOTT W. AM BLER Foreword by Randy Miller UNIFIED 1420 MODELING LANGUAGE gile 1 odeling Contents Acknowledgments Foreword Preface
More informationPractical Aspects of Enterprise Application Development
Practical Aspects of Enterprise Application Development EAR Winter Term 2017 EAR Practical Aspects of Enterprise Application Development Winter Term 2017 1 / 21 Contents 1 Speakers 2 Topics EAR Practical
More informationCredit where Credit is Due. Lecture 25: Refactoring. Goals for this lecture. Last Lecture
Credit where Credit is Due Lecture 25: Refactoring Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2002 Some of the material for this lecture and lecture 26 is taken
More informationLESSON PLAN SUB NAME : OBJECT ORIENTED ANALYSIS AND DESIGN UNIT SYLLABUS
LP Rev. : 00 Page 1 of 6 UNIT: I FUNDAMENTALS SEMESTER : 5 FUNDAMENTALS 8 An overview of object oriented systems development Object basics Object oriented systems development life cycle. OBJECTIVE: To
More informationIntroduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of
Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Computer Science Technische Universität Darmstadt Dr.
More informationBehaviour Driven Development with Java. Nikolay Vasilev 15 July 2011
Behaviour Driven Development with Java Nikolay Vasilev 15 July 2011 Content What BDD is? Jbehave JBehave and Selenium Jbehave Pros and Cons Questions and Answers References 2 BDD 3 Test-Driven Development
More informationDomain Events & Event Storming. Michael
Domain Events & Event Storming Michael Plöd @bitboss Credits to Eric Evans Vaughn Vernon Alberto Brandolini Sources: Books by Eric Evans, Alberto Brandolini and Vaughn Vernon If that happens After the
More informationDomain Model and Domain Modeling
Dr. Michael Eichberg Software Engineering Department of Computer Science Technische Universität Darmstadt Software Engineering Domain Model and Domain Modeling Resources: Craig Larman; Applying UML and
More informationEnabling Team Collaboration
Enabling Team Collaboration Jonathan Stern Perry Rosenboom Senior Technical Specialist 2007 IBM Corporation Enterprises need to adapt to a globally connected world Organizations rely on small, agile, multi-disciplinary
More informationSoftware Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.
Software Design Patterns Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University J. Maletic 1 Background 1 Search for recurring successful designs emergent designs from practice
More informationDomain Driven Design Kevin van der Vlist
Domain Driven Design Kevin van der Vlist kvdvlist@sogyo.nl Objectives 1. Show the usefullnes of DDD 2/27 Objectives 1. Show the usefullnes of DDD 2. Warn you about a two headed monster 2/27 Objectives
More informationCOMP9321 Web Application Engineering
COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 6 http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid=2411 1 We
More informationNonprogrammers Can Build Important Parts of Prototypes
Nonprogrammers Can Build Important Parts of Prototypes Abstract: Here is a two-part whole-application model that enables nonprogrammers who understand the client business to participate importantly in
More informationTesting with easyb. Venkat Subramaniam
Testing with easyb Venkat Subramaniam venkats@agiledeveloper.com @venkat_s Testing with easyb Agile Development Sustainability Circle of Expectations and Circle of Relevance Types of Tests Behavior Driven
More informationAchieving Right Automation Balance in Agile Projects
Achieving Right Automation Balance in Agile Projects Vijayagopal Narayanan Vijayagopal.n@cognizant.com Abstract When is testing complete and How much testing is sufficient is a fundamental questions that
More informationCOURSE DESCRIPTION. Time distribution
COURSE DESCRIPTION 1. Information about the programme 1.1 Institution of higher education Alexandru Ioan Cuza University of Iasi 1.2 Faculty Faculty of Economics and Business Administration 1.3 Department
More informationSpecialized - Mastering Spring 4.2
Specialized - Mastering Spring 4.2 Code: Lengt h: URL: TT3330-S4 5 days View Online The Spring framework is an application framework that provides a lightweight container that supports the creation of
More informationMicroservice Splitting the Monolith. Software Engineering II Sharif University of Technology MohammadAmin Fazli
Microservice Software Engineering II Sharif University of Technology MohammadAmin Fazli Topics Seams Why to split the monolith Tangled Dependencies Splitting and Refactoring Databases Transactional Boundaries
More informationTest Driven Development (TDD)
Test Driven Development (TDD) Test Driven Development Introduction Good programmers write code, great programmers write tests Never, in the field of programming, have so many owed so much to so few - Martin
More informationCS 575: Software Design
CS 575: Software Design Introduction 1 Software Design A software design is a precise description of a system, using a variety of different perspectives Structural Behavioral Packaging Requirements, Test/Validation
More informationThe 1st Java professional open source Convention Israel 2006
The 1st Java professional open source Convention Israel 2006 The Next Generation of EJB Development Frederic Simon AlphaCSP Agenda Standards, Open Source & EJB 3.0 Tiger (Java 5) & JEE What is EJB 3.0
More informationSpring and OSGi. Martin Lippert akquinet agile GmbH Bernd Kolb Gerd Wütherich
Spring and OSGi Martin Lippert akquinet agile GmbH lippert@acm.org Bernd Kolb b.kolb@kolbware.de Gerd Wütherich gerd@gerd-wuetherich.de 2006 by Martin Lippert, Bernd Kolb & Gerd Wütherich, made available
More informationEvaluation of Visual Fabrique (VF)
Evaluation of Visual Fabrique (VF) Dr Peter Lappo www.smr.co.uk Scope and Method This is a review of Visual Fabrique (VF) V1.0.371 EAP Release. In order to conduct this evaluation I followed the tutorial
More informationJava EE Architecture, Part Two. Java EE architecture, part two 1
Java EE Architecture, Part Two Java EE architecture, part two 1 Content Requirements on the Business layer Framework Independent Patterns Transactions Frameworks for the Business layer Java EE architecture,
More information