SlideShare a Scribd company logo
1 of 87
Download to read offline
Sander Hoogendoorn
Principal Technology Officer
Capgemini
HOW SMART USE CASES DRIVE WEB DEVELOPMENT
2HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
Capgemini
Principal technology officer
Global agile thought leader
Chief architect Accelerated Delivery Platform (ADP)
Other
Author books and +200 articles in international magazines
Appreciated speaker at +80 international conferences
Microsoft Partner Advisory Council .NET
Capping IT Off Blog
Columns in Software Release Magazine, SDN Magazine
Editorial boards Software Release Magazine, TiTM
Advisory board @Portunity
Web
www.sanderhoogendoorn.com
www.smartusecase.com
Twitter / LinkedIn : aahoogendoorn
SANDER HOOGENDOORN
3HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
AGENDA
Comparing requirements
techniques
Modeling
smart use cases
Smart use case driven
software architecture
Introducing
the task pattern
Generating code
from smart use cases
Unit testing
smart use cases
4HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
AGENDA
Comparing requirements
techniques
Modeling
smart use cases
Smart use case driven
software architecture
Introducing
the task pattern
Generating code
from smart use cases
Unit testing
smart use cases
User stories, huge cases and smart use cases
REQUIREMENT TECHNIQUES COMPARED
6HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
USER STORIES – APPLES AND PEARS
Often too unstructured
Unsuitable in complex
environments
7HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
COMPLEX IT LANDSCAPES
8HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
HUGE CASES Hard to build,
impossible to test
9HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
DIFFERENT LEVELS OF USE CASES
Cloud level
Kite level
Sea level
Fish level
Clam level
High summary
Summary
User goal
Sub-function
Too low
Products
Selling products
Search
book
Insert
orderline
Sell book
10HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
DIFFERENT LEVELS OF USE CASES
11HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
Traditional
use cases
Smart
use cases
Format Textual Visual
Granularity Different Unified
Estimate Hard Easy
Unit of work Lousy Good
Reuse Incidental Normal
Traceability Possible Normal
Testability Poor Good
Traditional use cases
Only user goal level use cases
Use cases ‘as they are intended’
A single use case describes
a single elementary business process
Differ in granularity too much
Law of Large Numbers does not apply
Smart use cases
User goal and sub function level use cases
Good unit of work and estimation
A single elementary business process is modeled
in a single use case diagram
A single user goal level use case
+ auxiliary use cases at sub-function level
Very similar granularity
DIFFERENT LEVELS OF USE CASES
12HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
AGENDA
Comparing requirements
techniques
Modeling
smart use cases
Smart use case driven
software architecture
Introducing
the task pattern
Generating code
from smart use cases
Unit testing
smart use cases
A YAGNI approach to requirements
SMART USE CASES
14HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
In traditional software development
Analysis and design is done upfront
Development only starts after all design is
complete and perfect
Consequences
No room for new or changing insights
Possibly unnecessary work
Therefore
Eliminate waste
Maximize the amount of work not done
Postpone work until you really need it
Benefits
No unnecessary analysis and design work
Allows for new and changing insights
No handover, immediate feedback
YAGNI. YOU AIN’T GONNA NEED IT
15HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
AGILE REQUIREMENTS - APPROACH
D
E
F
Smart
Use Cases
A
Project
Scope
D
Use Cases
A
B C
Hierarchical
Processes
B
D
D
Hierarchical
Processes
Chronological
Processes
Cloud Level Kite Level Sea Level Fish Level
C
16HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
CLOUD LEVEL
17HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
KITE LEVEL
18HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
Guidelines
Identify re-use
Model one form per use case
Model one use case per web part
Isolate unknown or complex functionality
Model complex calculations
Identify reports and analysis
Isolate interaction with others
Model services in service orientation
Avoid low level interaction
(database, technical services)
IDENTIFYING SUB-FUNCTION LEVEL USE CASES
19HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
MODELING SMART USE CASES
20HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
MODELING SMART USE CASES – SEA AND FISH LEVEL
21HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
DESCRIBING USE CASES – SEA AND FISH LEVEL
Stereotypes
SMART USE CASES
23HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
Stereotypes in UML
Marking model items gives explicit meaning to
the model
Predefined stereotypes
Custom definable stereotypes
Smart use case stereotypes
Standardize analysis and design
“This is a master-detail on product and order”
“This service on customer is an aggregate”
“We need a file import for handling the XMI”
Facilitate easy estimation
Commoditize realization of smart use case
Facilitate easier (and automated) testing
SMART USE CASE STEREOTYPES
24HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
AGENDA
Comparing requirements
techniques
Modeling
smart use cases
Smart use case driven
software architecture
Introducing
the task pattern
Generating code
from smart use cases
Unit testing
smart use cases
An overview
SMART USE CASE DRIVEN ARCHITECTURE
26HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
Database consumer
Domain oriented
Data provided by database(s)
But often database independent
Service consumer
Domain oriented
Data provided by service or middleware
But protocol independent (SOAP or REST?)
Service provider
Service oriented
Data provided by contacts
But domain oriented using data contracts
USING REFERENCE ARCHITECTURES
27HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
Presentation
Process
Domain
Data / Services
Outside world
Pages
UserControls
Panels
Use cases
Workflow
Domain objects / Entities
Factories / Repositories
Enums / Value objects / Smart references
[Mapping]
Table Gateways
Queries
[Mapping]
Database
28HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
Exact SAP BizTalk Java
Presentation
Process
Domain
Data / Services
Outside world
Pages
UserControls
Panels
Use cases
Workflow
Domain objects / Entities
Factories / Repositories
Enums / Value objects / Smart references
[Mapping]
Service gateways
Service locators
[Mapping]
Services / ESB
29HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
Presentation
Process
Domain
Data / Services
Outside world
Service contracts
Operation contracts
Data contracts
Use cases
Services
Domain objects / Entities
Factories / Repositories
Enums / Value objects / Smart references
[Mapping]
Table Gateways / Service Gateways
Queries / Service Locators
[Mapping]
Database
Services / ESB
Exact SAP BizTalk Java
30HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
ARCHITECTURE IN CODE
Web
Pages, controls
Process
Use cases / Tasks / Flow
Domain
Factories / Repositories
Domain Objects / Business rules
Enums / Value Objects / References
Search Objects
Data / Services
Gateways
Mappings / Describers
Database
31HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
AGENDA
Comparing requirements
techniques
Modeling
smart use cases
Smart use case driven
software architecture
Introducing
the task pattern
Generating code
from smart use cases
Unit testing
smart use cases
Introducing the Task Pattern
SMART USE CASE DRIVEN ARCHITECTURE
33HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
Presentation
Process
Domain
Data / Services
Outside world
Pages
UserControls
Panels
Use cases
Workflow
Domain objects / Entities
Factories / Repositories
Enums / Value objects / Smart references
[Mapping]
Table Gateways
Queries
[Mapping]
Database
34HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
Smart use cases
Act as primary unit of work
Model process and work flow
Make traceable in code
Interact with presentation and domain layers
Create layer supertype (task)
Create classes for individual smart use cases
Why?
Create traceability
Facilitate reuse
Implement model view controller
Facilitate easier functional testing
Cheapen application maintenance
SMART USE CASES IN CODE
35HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
SMART USE CASES IN CODE
36HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
Command pattern – Definition
Encapsulate a request as an object, thereby letting
you parameterize clients with different requests,
queue or log requests, and support undoable
operations
Task pattern – Definition
Encapsulate a smart use case as an object, thereby
letting you parameterize it from different requests.
In practice
Implement smart use cases independently
Define a navigation mechanism
Use smart use cases independently
Allows for reuse of your smart use cases!
Useful when
Always ☺
Create a task manager!
TASK PATTERN
37HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
TASK PATTERN
38HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
TASK PATTERN IN PRACTICE
39HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
TASK PATTERN IN PRACTICE – RUNNING A USE CASE
40HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
TASK PATTERN
41HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
TASK PATTERN – START FIRST USE CASE
42HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
TASK PATTERN – START SECOND USE CASE
43HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
TASK PATTERN – WEB PAGE WITH SECOND USE CASE
44HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
TASK PATTERN – POST CONDITIONS SECOND USE CASE
45HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
TASK PATTERN – CONTINUE FIRST USE CASE
46HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
TASK PATTERN – WEB PAGE WITH FIRST USE CASE
47HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
TASK PATTERN – POST CONDITIONS FIRST USE CASE
Task management with the Manager-Provider Pattern
SMART USE CASE DRIVEN ARCHITECTURE
49HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
Definition
Create a simple static facade (manager) for a
(set of) interfaced implementations (providers)
In practice
Manager holds one or a collection of providers
Provider implement a particular interface
Manager has methods to call methods from
interface
At run-time, using dependency injection, actual
providers are injected
MANAGER-PROVIDER PATTERN
50HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
MANAGER – VALIDATIONMANAGER
51HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
INTERFACE
52HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
MANAGER – INITIALIZATION (USING DEPENDENCY INJECTION)
53HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
CONFIGURATION OF IMPLEMENTATION
54HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
MANAGER - EXECUTING METHODS
55HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
CLIENT – CALLING METHODS
56HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
Useful when
Generic services need to be called, which may have
different implementations
Manager prevents having to loop through each of a
list of providers
Flexibility to add or remove providers without
changing application code
Providers differ e.g. in development code, test code
or deployed code
Use for
Task Management
View Management
Binding and Persisting
Resource Management
State Management
Logging
Datasource interaction
Testing!
MANAGER-PROVIDER PATTERN
57HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
AGENDA
Comparing requirements
techniques
Modeling
smart use cases
Smart use case driven
software architecture
Introducing
the task pattern
Generating code
from smart use cases
Unit testing
smart use cases
An introduction to pragmatic model driven development
GENERATING CODE FROM SMART USE CASES
59HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
Forms
Use cases
Domain
objects
Data / Service
classes
Databases
Software Architecture
Tobago
MDA
Test
scenario’s
Frameworks
Specifications
Existing
Applications
Business
models
Domain
Model
Smart
use cases
User interface
specification
1. Map your
business processes
to smart use cases
1. Map your
business processes
to smart use cases
2. Set up your
domain model
2. Set up your
domain model
3. Establish
your software
architecture(s)
3. Establish
your software
architecture(s)
4. Generate
your code using
a text template
engine
4. Generate
your code using
a text template
engine
5. Finalize your
application
5. Finalize your
application
60HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
Characteristics
Load UML model (expressed in XMI)
Load templates (from flat files)
Combine elements from UML model with
templates to generate deliverables
Templates
Templates contains code that runs in template
engine
Templates might use a folder model
Generation process
Ability to generate all or individual UML model
elements
Which UML model elements are supported?
Generated deliverables can be code but also
any other document type
MODEL DRIVEN DEVELOPMENT – TEMPLATE ENGINES
61HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
MODEL DRIVEN DEVELOPMENT - TEMPLATE ENGINES
Template engine
knows (part of)
the UML meta
model
Template engine
knows (part of)
the UML meta
model
Properties can
be used in
templates
Properties can
be used in
templates
62HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
MODEL DRIVEN DEVELOPMENT - TEMPLATES
63HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
GENERATE MANY THINGS E.G. TABLE CREATE SCRIPTS
A quick example
GENERATING CODE
65HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
A SIMPLE SMART USE CASE MODEL
uc Manage Customer
Site Administrator
(from Actors)
«master detail»
Manage Customer
«search»
Select Customer
«define»
Define Contact
«extend»
«include»
66HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
A SIMPLE DOMAIN MODEL
class Budapest.Business
«business class»
Customer
+ Name: string
+ Address: string
+ Postcode: Postcode
+ City: string
+ Country: SmartRef
+ Website: Url [0..1]
«business class»
Contact
+ Name: string
+ Email: Email [0..1]
+ Phone: PhoneNumber [0..1]
+ Department: Departments
«enumeration»
Departments
Sales
Purchasing
Helpdesk
Management
*
67HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
USING TOBAGO MDA
68HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
GENERATED CODE IN ASP.NET
69HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
GENERATED CODE IN SILVERLIGHT
70HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
AGENDA
Comparing requirements
techniques
Modeling
smart use cases
Smart use case driven
software architecture
Introducing
the task pattern
Generating code
from smart use cases
Unit testing
smart use cases
Unit testing at the right level
UNIT TESTING SMART USE CASES
72HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
Presentation
Process
Domain
Data / Services
Outside world
Pages
UserControls
Panels
Use cases
Workflow
Domain objects / Entities
Factories / Repositories
Enums / Value objects / Smart references
[Mapping]
Table Gateways
Queries
[Mapping]
Database
73HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
UNIT TESTING SMART USE CASES
Unit test what?
Methods from the task pattern
Methods that are called from presentation
Methods that collaborate with other use cases
Methods that interact with domain
How?
Create unit test for each smart use case
Run methods from smart use case
Validate outcome (using asserts)
Why?
Great code coverage
Regressions testing on smart use cases
Code generation makes light work
74HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
UNIT TESTING SMART USE CASES
Test methods from Task Pattern
Run method
Validate outcome
75HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
UNIT TESTING SMART USE CASES
Test methods that interact with domain
Set up (in)valid domain object
Run method from use case
Validate outcome
Introducing a light weight smart use case unit testing framework
UNIT TESTING SMART USE CASES
77HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
Test environment
Create test manager (using manager-provider)
Mock actual use case environment
Log events from environment to test manager
Asserts by querying test manager
Task management
(Possibly) avoid other task getting started
View management
Don’t request actual web pages or forms
Method calls from web pages are tested
Domain
Handle actual validation, saves, removes
Make sure business rules validate
Validation
Validate, but handle by logging
A LIGHTWEIGHT SMART USE CASE UNIT TESTING FRAMEWORK
78HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
CONFIGURING TEST ENVIRONMENT
79HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
TEST MANAGER – LOGGING EVENTS
80HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
MOCKING ENVIRONMENT – LOGGING EVENTS
81HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
TEST MANAGER – QUERYING EVENTS
82HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
TEST MANAGER – RUNNING TESTS
Test methods that interact with domain
Set up (in)valid domain object
Run method from use case
Validate outcome
TAKEAWAYS
84HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
Smart use cases
Solid unit of work in agile projects
Easy estimation
Identifying functional re-use early in projects
Guarantee front-to-back traceability
Great unit for (automated) testing
Apply stereotypes for even more
standardization
Use a REAL modeling tool
Software architecture
Provide separate smart use cases layer
Handles process, interaction and work flow
Controller ++
TAKEAWAYS
85HOW SMART USE CASES DRIVE WEB DEVELOPMENT
©2010 Capgemini. All Rights Reserved
Coding
Implement task pattern
Implement task management
Modeling provides for model driven
development
Testing
Smart use cases allow for automated testing
Great code coverage on all layers
Mock actual task environment
Run tests automated in nightly builds
TAKEAWAYS
www.accelerateddeliveryplatform.com
WWW.SMARTUSECASE.COM
sander.hoogendoorn@capgemini.com
www.sanderhoogendoorn.com
www.smartusecase.com
@aahoogendoorn
REFERENCES AND QUESTIONS

More Related Content

What's hot

V6 Introduction Link
V6 Introduction LinkV6 Introduction Link
V6 Introduction Linkyerencao
 
Usability awareness brown bag
Usability awareness brown bagUsability awareness brown bag
Usability awareness brown bagLawrenceNajjar
 
Deep Learning-based Recommendations for Germany's Biggest Vehicle Marketplace
Deep Learning-based Recommendations for Germany's Biggest Vehicle MarketplaceDeep Learning-based Recommendations for Germany's Biggest Vehicle Marketplace
Deep Learning-based Recommendations for Germany's Biggest Vehicle MarketplaceFlorian Wilhelm
 

What's hot (6)

Charles harper Resume
Charles harper ResumeCharles harper Resume
Charles harper Resume
 
V6 Introduction Link
V6 Introduction LinkV6 Introduction Link
V6 Introduction Link
 
JimmyEdward
JimmyEdwardJimmyEdward
JimmyEdward
 
Usability awareness brown bag
Usability awareness brown bagUsability awareness brown bag
Usability awareness brown bag
 
SrinivasThattai
SrinivasThattaiSrinivasThattai
SrinivasThattai
 
Deep Learning-based Recommendations for Germany's Biggest Vehicle Marketplace
Deep Learning-based Recommendations for Germany's Biggest Vehicle MarketplaceDeep Learning-based Recommendations for Germany's Biggest Vehicle Marketplace
Deep Learning-based Recommendations for Germany's Biggest Vehicle Marketplace
 

Similar to 20101007 how smart use cases drive web development

Tool overview – how to capture – how to create basic workflow .pptx
Tool overview – how to capture – how to create basic workflow .pptxTool overview – how to capture – how to create basic workflow .pptx
Tool overview – how to capture – how to create basic workflow .pptxRUPAK BHATTACHARJEE
 
Mho Web Dynpro Abap
Mho Web Dynpro AbapMho Web Dynpro Abap
Mho Web Dynpro Abapthomas_jung
 
SAP Cloud Infrastructure Strategy @ Virtualization Week
SAP Cloud Infrastructure Strategy @ Virtualization WeekSAP Cloud Infrastructure Strategy @ Virtualization Week
SAP Cloud Infrastructure Strategy @ Virtualization WeekFrank Stienhans
 
Perficient PepsiCo Rich Internet Apps Seminar
Perficient PepsiCo Rich Internet Apps SeminarPerficient PepsiCo Rich Internet Apps Seminar
Perficient PepsiCo Rich Internet Apps SeminarPerficient, Inc.
 
SAP NetWeaver Portal 7.3 - top 5 Reasons to upgrade your portal
SAP NetWeaver Portal 7.3 - top 5 Reasons to upgrade your portalSAP NetWeaver Portal 7.3 - top 5 Reasons to upgrade your portal
SAP NetWeaver Portal 7.3 - top 5 Reasons to upgrade your portaltasmc
 
Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...
Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...
Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...mfrancis
 
SAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDE
SAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDESAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDE
SAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDEMarkus Van Kempen
 
SAP HANA Cloud Portal
SAP HANA Cloud PortalSAP HANA Cloud Portal
SAP HANA Cloud PortalAmir Blich
 
SAP HANA Cloud Portal - Overview Presentation
SAP HANA Cloud Portal - Overview PresentationSAP HANA Cloud Portal - Overview Presentation
SAP HANA Cloud Portal - Overview PresentationSAP Portal
 
Introduction to 42windmills
Introduction to 42windmillsIntroduction to 42windmills
Introduction to 42windmills42windmills
 
Extending open source and hybrid cloud to drive OT transformation - Future Oi...
Extending open source and hybrid cloud to drive OT transformation - Future Oi...Extending open source and hybrid cloud to drive OT transformation - Future Oi...
Extending open source and hybrid cloud to drive OT transformation - Future Oi...John Archer
 
Platform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzurePlatform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzureWSO2
 
MDA Vs Web Ratio for Non It
MDA Vs Web Ratio for Non ItMDA Vs Web Ratio for Non It
MDA Vs Web Ratio for Non Itanicolay
 
Resume Partha Roy
Resume Partha RoyResume Partha Roy
Resume Partha RoyPartha Roy
 
Creating Mobile Enterprise Applications with Red Hat / JBoss
Creating Mobile Enterprise Applications with Red Hat / JBossCreating Mobile Enterprise Applications with Red Hat / JBoss
Creating Mobile Enterprise Applications with Red Hat / JBosshwilming
 
Andon Applications with InduSoft Web Studio
Andon Applications with InduSoft Web StudioAndon Applications with InduSoft Web Studio
Andon Applications with InduSoft Web StudioAVEVA
 
Dom introduction-website-v1.0
Dom introduction-website-v1.0Dom introduction-website-v1.0
Dom introduction-website-v1.0Cogility
 

Similar to 20101007 how smart use cases drive web development (20)

Tool overview – how to capture – how to create basic workflow .pptx
Tool overview – how to capture – how to create basic workflow .pptxTool overview – how to capture – how to create basic workflow .pptx
Tool overview – how to capture – how to create basic workflow .pptx
 
Mho Web Dynpro Abap
Mho Web Dynpro AbapMho Web Dynpro Abap
Mho Web Dynpro Abap
 
SAP Cloud Infrastructure Strategy @ Virtualization Week
SAP Cloud Infrastructure Strategy @ Virtualization WeekSAP Cloud Infrastructure Strategy @ Virtualization Week
SAP Cloud Infrastructure Strategy @ Virtualization Week
 
Perficient PepsiCo Rich Internet Apps Seminar
Perficient PepsiCo Rich Internet Apps SeminarPerficient PepsiCo Rich Internet Apps Seminar
Perficient PepsiCo Rich Internet Apps Seminar
 
SAP NetWeaver Portal 7.3 - top 5 Reasons to upgrade your portal
SAP NetWeaver Portal 7.3 - top 5 Reasons to upgrade your portalSAP NetWeaver Portal 7.3 - top 5 Reasons to upgrade your portal
SAP NetWeaver Portal 7.3 - top 5 Reasons to upgrade your portal
 
Being Smart at enterprise agile
Being Smart at enterprise agileBeing Smart at enterprise agile
Being Smart at enterprise agile
 
Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...
Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...
Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...
 
SAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDE
SAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDESAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDE
SAPTechED 2015 UX114 -Building custom SAP Fiori Apps Using SAP Web IDE
 
Sap Technology Outlook
Sap Technology OutlookSap Technology Outlook
Sap Technology Outlook
 
Ad507
Ad507Ad507
Ad507
 
SAP HANA Cloud Portal
SAP HANA Cloud PortalSAP HANA Cloud Portal
SAP HANA Cloud Portal
 
SAP HANA Cloud Portal - Overview Presentation
SAP HANA Cloud Portal - Overview PresentationSAP HANA Cloud Portal - Overview Presentation
SAP HANA Cloud Portal - Overview Presentation
 
Introduction to 42windmills
Introduction to 42windmillsIntroduction to 42windmills
Introduction to 42windmills
 
Extending open source and hybrid cloud to drive OT transformation - Future Oi...
Extending open source and hybrid cloud to drive OT transformation - Future Oi...Extending open source and hybrid cloud to drive OT transformation - Future Oi...
Extending open source and hybrid cloud to drive OT transformation - Future Oi...
 
Platform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzurePlatform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on Azure
 
MDA Vs Web Ratio for Non It
MDA Vs Web Ratio for Non ItMDA Vs Web Ratio for Non It
MDA Vs Web Ratio for Non It
 
Resume Partha Roy
Resume Partha RoyResume Partha Roy
Resume Partha Roy
 
Creating Mobile Enterprise Applications with Red Hat / JBoss
Creating Mobile Enterprise Applications with Red Hat / JBossCreating Mobile Enterprise Applications with Red Hat / JBoss
Creating Mobile Enterprise Applications with Red Hat / JBoss
 
Andon Applications with InduSoft Web Studio
Andon Applications with InduSoft Web StudioAndon Applications with InduSoft Web Studio
Andon Applications with InduSoft Web Studio
 
Dom introduction-website-v1.0
Dom introduction-website-v1.0Dom introduction-website-v1.0
Dom introduction-website-v1.0
 

More from Sander Hoogendoorn

Flow. The official worst software development approach in history
Flow. The official worst software development approach in historyFlow. The official worst software development approach in history
Flow. The official worst software development approach in historySander Hoogendoorn
 
It's a small world after all. How thinking small changes software big time
It's a small world after all. How thinking small changes software big timeIt's a small world after all. How thinking small changes software big time
It's a small world after all. How thinking small changes software big timeSander Hoogendoorn
 
Welcome to the world of micro-apps
Welcome to the world of micro-appsWelcome to the world of micro-apps
Welcome to the world of micro-appsSander Hoogendoorn
 
Welcome to the world of micro-applications
Welcome to the world of micro-applicationsWelcome to the world of micro-applications
Welcome to the world of micro-applicationsSander Hoogendoorn
 
Wat is agile en wat betekent het voor mij?
Wat is agile en wat betekent het voor mij?Wat is agile en wat betekent het voor mij?
Wat is agile en wat betekent het voor mij?Sander Hoogendoorn
 
20180509 - It's a small world after all. How thinking small is changing softw...
20180509 - It's a small world after all. How thinking small is changing softw...20180509 - It's a small world after all. How thinking small is changing softw...
20180509 - It's a small world after all. How thinking small is changing softw...Sander Hoogendoorn
 
W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...
W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...
W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...Sander Hoogendoorn
 
Swanseacon 2017 Keynote - It's a small world after all.
Swanseacon 2017 Keynote - It's a small world after all.Swanseacon 2017 Keynote - It's a small world after all.
Swanseacon 2017 Keynote - It's a small world after all.Sander Hoogendoorn
 
Geecon Prague 2016 - Thirty months of microservices
Geecon Prague 2016 - Thirty months of microservicesGeecon Prague 2016 - Thirty months of microservices
Geecon Prague 2016 - Thirty months of microservicesSander Hoogendoorn
 
Thirty months of microservices. Stairway to heaven or highway to hell
Thirty months of microservices. Stairway to heaven or highway to hellThirty months of microservices. Stairway to heaven or highway to hell
Thirty months of microservices. Stairway to heaven or highway to hellSander Hoogendoorn
 
Beyond breaking bad. The current state of agile in ten easy lessons
Beyond breaking bad. The current state of agile in ten easy lessonsBeyond breaking bad. The current state of agile in ten easy lessons
Beyond breaking bad. The current state of agile in ten easy lessonsSander Hoogendoorn
 
Beyond breaking bad. The current state of agile in ten easy lessons
Beyond breaking bad. The current state of agile in ten easy lessonsBeyond breaking bad. The current state of agile in ten easy lessons
Beyond breaking bad. The current state of agile in ten easy lessonsSander Hoogendoorn
 
Microservices. Stairway to heaven or highway to hell
Microservices. Stairway to heaven or highway to hellMicroservices. Stairway to heaven or highway to hell
Microservices. Stairway to heaven or highway to hellSander Hoogendoorn
 
Microservices. The good, the bad and the ugly.
Microservices. The good, the bad and the ugly.Microservices. The good, the bad and the ugly.
Microservices. The good, the bad and the ugly.Sander Hoogendoorn
 
Designing and building a micro-services architecture. Stairway to heaven or a...
Designing and building a micro-services architecture. Stairway to heaven or a...Designing and building a micro-services architecture. Stairway to heaven or a...
Designing and building a micro-services architecture. Stairway to heaven or a...Sander Hoogendoorn
 
Microservices. The good the bad and the ugly
Microservices. The good the bad and the uglyMicroservices. The good the bad and the ugly
Microservices. The good the bad and the uglySander Hoogendoorn
 
Scaling agile from the ground up
Scaling agile from the ground upScaling agile from the ground up
Scaling agile from the ground upSander Hoogendoorn
 
Growing a microservices landscape (with smart use cases)
Growing a microservices landscape (with smart use cases)Growing a microservices landscape (with smart use cases)
Growing a microservices landscape (with smart use cases)Sander Hoogendoorn
 

More from Sander Hoogendoorn (20)

Flow. The official worst software development approach in history
Flow. The official worst software development approach in historyFlow. The official worst software development approach in history
Flow. The official worst software development approach in history
 
It's a small world after all. How thinking small changes software big time
It's a small world after all. How thinking small changes software big timeIt's a small world after all. How thinking small changes software big time
It's a small world after all. How thinking small changes software big time
 
Welcome to the world of micro-apps
Welcome to the world of micro-appsWelcome to the world of micro-apps
Welcome to the world of micro-apps
 
Welcome to the world of micro-applications
Welcome to the world of micro-applicationsWelcome to the world of micro-applications
Welcome to the world of micro-applications
 
Wat is agile en wat betekent het voor mij?
Wat is agile en wat betekent het voor mij?Wat is agile en wat betekent het voor mij?
Wat is agile en wat betekent het voor mij?
 
20180509 - It's a small world after all. How thinking small is changing softw...
20180509 - It's a small world after all. How thinking small is changing softw...20180509 - It's a small world after all. How thinking small is changing softw...
20180509 - It's a small world after all. How thinking small is changing softw...
 
W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...
W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...
W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...
 
Swanseacon 2017 Keynote - It's a small world after all.
Swanseacon 2017 Keynote - It's a small world after all.Swanseacon 2017 Keynote - It's a small world after all.
Swanseacon 2017 Keynote - It's a small world after all.
 
Building Better Software Faster
Building Better Software FasterBuilding Better Software Faster
Building Better Software Faster
 
Geecon Prague 2016 - Thirty months of microservices
Geecon Prague 2016 - Thirty months of microservicesGeecon Prague 2016 - Thirty months of microservices
Geecon Prague 2016 - Thirty months of microservices
 
Thirty months of microservices. Stairway to heaven or highway to hell
Thirty months of microservices. Stairway to heaven or highway to hellThirty months of microservices. Stairway to heaven or highway to hell
Thirty months of microservices. Stairway to heaven or highway to hell
 
Beyond breaking bad. The current state of agile in ten easy lessons
Beyond breaking bad. The current state of agile in ten easy lessonsBeyond breaking bad. The current state of agile in ten easy lessons
Beyond breaking bad. The current state of agile in ten easy lessons
 
Beyond breaking bad. The current state of agile in ten easy lessons
Beyond breaking bad. The current state of agile in ten easy lessonsBeyond breaking bad. The current state of agile in ten easy lessons
Beyond breaking bad. The current state of agile in ten easy lessons
 
Microservices. Stairway to heaven or highway to hell
Microservices. Stairway to heaven or highway to hellMicroservices. Stairway to heaven or highway to hell
Microservices. Stairway to heaven or highway to hell
 
Microservices. The good, the bad and the ugly.
Microservices. The good, the bad and the ugly.Microservices. The good, the bad and the ugly.
Microservices. The good, the bad and the ugly.
 
Modeling Microservices
Modeling MicroservicesModeling Microservices
Modeling Microservices
 
Designing and building a micro-services architecture. Stairway to heaven or a...
Designing and building a micro-services architecture. Stairway to heaven or a...Designing and building a micro-services architecture. Stairway to heaven or a...
Designing and building a micro-services architecture. Stairway to heaven or a...
 
Microservices. The good the bad and the ugly
Microservices. The good the bad and the uglyMicroservices. The good the bad and the ugly
Microservices. The good the bad and the ugly
 
Scaling agile from the ground up
Scaling agile from the ground upScaling agile from the ground up
Scaling agile from the ground up
 
Growing a microservices landscape (with smart use cases)
Growing a microservices landscape (with smart use cases)Growing a microservices landscape (with smart use cases)
Growing a microservices landscape (with smart use cases)
 

Recently uploaded

Patch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updatePatch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updateadam112203
 
IT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingIT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingMAGNIntelligence
 
UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4DianaGray10
 
EMEA What is ThousandEyes? Webinar
EMEA What is ThousandEyes? WebinarEMEA What is ThousandEyes? Webinar
EMEA What is ThousandEyes? WebinarThousandEyes
 
LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0DanBrown980551
 
Introduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationIntroduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationKnoldus Inc.
 
The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)codyslingerland1
 
Graphene Quantum Dots-Based Composites for Biomedical Applications
Graphene Quantum Dots-Based Composites for  Biomedical ApplicationsGraphene Quantum Dots-Based Composites for  Biomedical Applications
Graphene Quantum Dots-Based Composites for Biomedical Applicationsnooralam814309
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxNeo4j
 
CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024Brian Pichman
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2DianaGray10
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
 
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInOutage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInThousandEyes
 
From the origin to the future of Open Source model and business
From the origin to the future of  Open Source model and businessFrom the origin to the future of  Open Source model and business
From the origin to the future of Open Source model and businessFrancesco Corti
 
Automation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsAutomation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsDianaGray10
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kitJamie (Taka) Wang
 
How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxHow to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxKaustubhBhavsar6
 
Trailblazer Community - Flows Workshop (Session 2)
Trailblazer Community - Flows Workshop (Session 2)Trailblazer Community - Flows Workshop (Session 2)
Trailblazer Community - Flows Workshop (Session 2)Muhammad Tiham Siddiqui
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
Flow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameFlow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameKapil Thakar
 

Recently uploaded (20)

Patch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 updatePatch notes explaining DISARM Version 1.4 update
Patch notes explaining DISARM Version 1.4 update
 
IT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced ComputingIT Service Management (ITSM) Best Practices for Advanced Computing
IT Service Management (ITSM) Best Practices for Advanced Computing
 
UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4UiPath Studio Web workshop series - Day 4
UiPath Studio Web workshop series - Day 4
 
EMEA What is ThousandEyes? Webinar
EMEA What is ThousandEyes? WebinarEMEA What is ThousandEyes? Webinar
EMEA What is ThousandEyes? Webinar
 
LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0
 
Introduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationIntroduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its application
 
The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)
 
Graphene Quantum Dots-Based Composites for Biomedical Applications
Graphene Quantum Dots-Based Composites for  Biomedical ApplicationsGraphene Quantum Dots-Based Composites for  Biomedical Applications
Graphene Quantum Dots-Based Composites for Biomedical Applications
 
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptxGraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
 
CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInOutage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
 
From the origin to the future of Open Source model and business
From the origin to the future of  Open Source model and businessFrom the origin to the future of  Open Source model and business
From the origin to the future of Open Source model and business
 
Automation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projectsAutomation Ops Series: Session 2 - Governance for UiPath projects
Automation Ops Series: Session 2 - Governance for UiPath projects
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kit
 
How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptxHow to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptx
 
Trailblazer Community - Flows Workshop (Session 2)
Trailblazer Community - Flows Workshop (Session 2)Trailblazer Community - Flows Workshop (Session 2)
Trailblazer Community - Flows Workshop (Session 2)
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Flow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First FrameFlow Control | Block Size | ST Min | First Frame
Flow Control | Block Size | ST Min | First Frame
 

20101007 how smart use cases drive web development

  • 1. Sander Hoogendoorn Principal Technology Officer Capgemini HOW SMART USE CASES DRIVE WEB DEVELOPMENT
  • 2. 2HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved Capgemini Principal technology officer Global agile thought leader Chief architect Accelerated Delivery Platform (ADP) Other Author books and +200 articles in international magazines Appreciated speaker at +80 international conferences Microsoft Partner Advisory Council .NET Capping IT Off Blog Columns in Software Release Magazine, SDN Magazine Editorial boards Software Release Magazine, TiTM Advisory board @Portunity Web www.sanderhoogendoorn.com www.smartusecase.com Twitter / LinkedIn : aahoogendoorn SANDER HOOGENDOORN
  • 3. 3HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved AGENDA Comparing requirements techniques Modeling smart use cases Smart use case driven software architecture Introducing the task pattern Generating code from smart use cases Unit testing smart use cases
  • 4. 4HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved AGENDA Comparing requirements techniques Modeling smart use cases Smart use case driven software architecture Introducing the task pattern Generating code from smart use cases Unit testing smart use cases
  • 5. User stories, huge cases and smart use cases REQUIREMENT TECHNIQUES COMPARED
  • 6. 6HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved USER STORIES – APPLES AND PEARS Often too unstructured Unsuitable in complex environments
  • 7. 7HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved COMPLEX IT LANDSCAPES
  • 8. 8HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved HUGE CASES Hard to build, impossible to test
  • 9. 9HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved DIFFERENT LEVELS OF USE CASES Cloud level Kite level Sea level Fish level Clam level High summary Summary User goal Sub-function Too low Products Selling products Search book Insert orderline Sell book
  • 10. 10HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved DIFFERENT LEVELS OF USE CASES
  • 11. 11HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved Traditional use cases Smart use cases Format Textual Visual Granularity Different Unified Estimate Hard Easy Unit of work Lousy Good Reuse Incidental Normal Traceability Possible Normal Testability Poor Good Traditional use cases Only user goal level use cases Use cases ‘as they are intended’ A single use case describes a single elementary business process Differ in granularity too much Law of Large Numbers does not apply Smart use cases User goal and sub function level use cases Good unit of work and estimation A single elementary business process is modeled in a single use case diagram A single user goal level use case + auxiliary use cases at sub-function level Very similar granularity DIFFERENT LEVELS OF USE CASES
  • 12. 12HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved AGENDA Comparing requirements techniques Modeling smart use cases Smart use case driven software architecture Introducing the task pattern Generating code from smart use cases Unit testing smart use cases
  • 13. A YAGNI approach to requirements SMART USE CASES
  • 14. 14HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved In traditional software development Analysis and design is done upfront Development only starts after all design is complete and perfect Consequences No room for new or changing insights Possibly unnecessary work Therefore Eliminate waste Maximize the amount of work not done Postpone work until you really need it Benefits No unnecessary analysis and design work Allows for new and changing insights No handover, immediate feedback YAGNI. YOU AIN’T GONNA NEED IT
  • 15. 15HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved AGILE REQUIREMENTS - APPROACH D E F Smart Use Cases A Project Scope D Use Cases A B C Hierarchical Processes B D D Hierarchical Processes Chronological Processes Cloud Level Kite Level Sea Level Fish Level C
  • 16. 16HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved CLOUD LEVEL
  • 17. 17HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved KITE LEVEL
  • 18. 18HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved Guidelines Identify re-use Model one form per use case Model one use case per web part Isolate unknown or complex functionality Model complex calculations Identify reports and analysis Isolate interaction with others Model services in service orientation Avoid low level interaction (database, technical services) IDENTIFYING SUB-FUNCTION LEVEL USE CASES
  • 19. 19HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved MODELING SMART USE CASES
  • 20. 20HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved MODELING SMART USE CASES – SEA AND FISH LEVEL
  • 21. 21HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved DESCRIBING USE CASES – SEA AND FISH LEVEL
  • 23. 23HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved Stereotypes in UML Marking model items gives explicit meaning to the model Predefined stereotypes Custom definable stereotypes Smart use case stereotypes Standardize analysis and design “This is a master-detail on product and order” “This service on customer is an aggregate” “We need a file import for handling the XMI” Facilitate easy estimation Commoditize realization of smart use case Facilitate easier (and automated) testing SMART USE CASE STEREOTYPES
  • 24. 24HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved AGENDA Comparing requirements techniques Modeling smart use cases Smart use case driven software architecture Introducing the task pattern Generating code from smart use cases Unit testing smart use cases
  • 25. An overview SMART USE CASE DRIVEN ARCHITECTURE
  • 26. 26HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved Database consumer Domain oriented Data provided by database(s) But often database independent Service consumer Domain oriented Data provided by service or middleware But protocol independent (SOAP or REST?) Service provider Service oriented Data provided by contacts But domain oriented using data contracts USING REFERENCE ARCHITECTURES
  • 27. 27HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved Presentation Process Domain Data / Services Outside world Pages UserControls Panels Use cases Workflow Domain objects / Entities Factories / Repositories Enums / Value objects / Smart references [Mapping] Table Gateways Queries [Mapping] Database
  • 28. 28HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved Exact SAP BizTalk Java Presentation Process Domain Data / Services Outside world Pages UserControls Panels Use cases Workflow Domain objects / Entities Factories / Repositories Enums / Value objects / Smart references [Mapping] Service gateways Service locators [Mapping] Services / ESB
  • 29. 29HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved Presentation Process Domain Data / Services Outside world Service contracts Operation contracts Data contracts Use cases Services Domain objects / Entities Factories / Repositories Enums / Value objects / Smart references [Mapping] Table Gateways / Service Gateways Queries / Service Locators [Mapping] Database Services / ESB Exact SAP BizTalk Java
  • 30. 30HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved ARCHITECTURE IN CODE Web Pages, controls Process Use cases / Tasks / Flow Domain Factories / Repositories Domain Objects / Business rules Enums / Value Objects / References Search Objects Data / Services Gateways Mappings / Describers Database
  • 31. 31HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved AGENDA Comparing requirements techniques Modeling smart use cases Smart use case driven software architecture Introducing the task pattern Generating code from smart use cases Unit testing smart use cases
  • 32. Introducing the Task Pattern SMART USE CASE DRIVEN ARCHITECTURE
  • 33. 33HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved Presentation Process Domain Data / Services Outside world Pages UserControls Panels Use cases Workflow Domain objects / Entities Factories / Repositories Enums / Value objects / Smart references [Mapping] Table Gateways Queries [Mapping] Database
  • 34. 34HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved Smart use cases Act as primary unit of work Model process and work flow Make traceable in code Interact with presentation and domain layers Create layer supertype (task) Create classes for individual smart use cases Why? Create traceability Facilitate reuse Implement model view controller Facilitate easier functional testing Cheapen application maintenance SMART USE CASES IN CODE
  • 35. 35HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved SMART USE CASES IN CODE
  • 36. 36HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved Command pattern – Definition Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations Task pattern – Definition Encapsulate a smart use case as an object, thereby letting you parameterize it from different requests. In practice Implement smart use cases independently Define a navigation mechanism Use smart use cases independently Allows for reuse of your smart use cases! Useful when Always ☺ Create a task manager! TASK PATTERN
  • 37. 37HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved TASK PATTERN
  • 38. 38HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved TASK PATTERN IN PRACTICE
  • 39. 39HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved TASK PATTERN IN PRACTICE – RUNNING A USE CASE
  • 40. 40HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved TASK PATTERN
  • 41. 41HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved TASK PATTERN – START FIRST USE CASE
  • 42. 42HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved TASK PATTERN – START SECOND USE CASE
  • 43. 43HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved TASK PATTERN – WEB PAGE WITH SECOND USE CASE
  • 44. 44HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved TASK PATTERN – POST CONDITIONS SECOND USE CASE
  • 45. 45HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved TASK PATTERN – CONTINUE FIRST USE CASE
  • 46. 46HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved TASK PATTERN – WEB PAGE WITH FIRST USE CASE
  • 47. 47HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved TASK PATTERN – POST CONDITIONS FIRST USE CASE
  • 48. Task management with the Manager-Provider Pattern SMART USE CASE DRIVEN ARCHITECTURE
  • 49. 49HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved Definition Create a simple static facade (manager) for a (set of) interfaced implementations (providers) In practice Manager holds one or a collection of providers Provider implement a particular interface Manager has methods to call methods from interface At run-time, using dependency injection, actual providers are injected MANAGER-PROVIDER PATTERN
  • 50. 50HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved MANAGER – VALIDATIONMANAGER
  • 51. 51HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved INTERFACE
  • 52. 52HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved MANAGER – INITIALIZATION (USING DEPENDENCY INJECTION)
  • 53. 53HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved CONFIGURATION OF IMPLEMENTATION
  • 54. 54HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved MANAGER - EXECUTING METHODS
  • 55. 55HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved CLIENT – CALLING METHODS
  • 56. 56HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved Useful when Generic services need to be called, which may have different implementations Manager prevents having to loop through each of a list of providers Flexibility to add or remove providers without changing application code Providers differ e.g. in development code, test code or deployed code Use for Task Management View Management Binding and Persisting Resource Management State Management Logging Datasource interaction Testing! MANAGER-PROVIDER PATTERN
  • 57. 57HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved AGENDA Comparing requirements techniques Modeling smart use cases Smart use case driven software architecture Introducing the task pattern Generating code from smart use cases Unit testing smart use cases
  • 58. An introduction to pragmatic model driven development GENERATING CODE FROM SMART USE CASES
  • 59. 59HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved Forms Use cases Domain objects Data / Service classes Databases Software Architecture Tobago MDA Test scenario’s Frameworks Specifications Existing Applications Business models Domain Model Smart use cases User interface specification 1. Map your business processes to smart use cases 1. Map your business processes to smart use cases 2. Set up your domain model 2. Set up your domain model 3. Establish your software architecture(s) 3. Establish your software architecture(s) 4. Generate your code using a text template engine 4. Generate your code using a text template engine 5. Finalize your application 5. Finalize your application
  • 60. 60HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved Characteristics Load UML model (expressed in XMI) Load templates (from flat files) Combine elements from UML model with templates to generate deliverables Templates Templates contains code that runs in template engine Templates might use a folder model Generation process Ability to generate all or individual UML model elements Which UML model elements are supported? Generated deliverables can be code but also any other document type MODEL DRIVEN DEVELOPMENT – TEMPLATE ENGINES
  • 61. 61HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved MODEL DRIVEN DEVELOPMENT - TEMPLATE ENGINES Template engine knows (part of) the UML meta model Template engine knows (part of) the UML meta model Properties can be used in templates Properties can be used in templates
  • 62. 62HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved MODEL DRIVEN DEVELOPMENT - TEMPLATES
  • 63. 63HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved GENERATE MANY THINGS E.G. TABLE CREATE SCRIPTS
  • 65. 65HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved A SIMPLE SMART USE CASE MODEL uc Manage Customer Site Administrator (from Actors) «master detail» Manage Customer «search» Select Customer «define» Define Contact «extend» «include»
  • 66. 66HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved A SIMPLE DOMAIN MODEL class Budapest.Business «business class» Customer + Name: string + Address: string + Postcode: Postcode + City: string + Country: SmartRef + Website: Url [0..1] «business class» Contact + Name: string + Email: Email [0..1] + Phone: PhoneNumber [0..1] + Department: Departments «enumeration» Departments Sales Purchasing Helpdesk Management *
  • 67. 67HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved USING TOBAGO MDA
  • 68. 68HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved GENERATED CODE IN ASP.NET
  • 69. 69HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved GENERATED CODE IN SILVERLIGHT
  • 70. 70HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved AGENDA Comparing requirements techniques Modeling smart use cases Smart use case driven software architecture Introducing the task pattern Generating code from smart use cases Unit testing smart use cases
  • 71. Unit testing at the right level UNIT TESTING SMART USE CASES
  • 72. 72HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved Presentation Process Domain Data / Services Outside world Pages UserControls Panels Use cases Workflow Domain objects / Entities Factories / Repositories Enums / Value objects / Smart references [Mapping] Table Gateways Queries [Mapping] Database
  • 73. 73HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved UNIT TESTING SMART USE CASES Unit test what? Methods from the task pattern Methods that are called from presentation Methods that collaborate with other use cases Methods that interact with domain How? Create unit test for each smart use case Run methods from smart use case Validate outcome (using asserts) Why? Great code coverage Regressions testing on smart use cases Code generation makes light work
  • 74. 74HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved UNIT TESTING SMART USE CASES Test methods from Task Pattern Run method Validate outcome
  • 75. 75HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved UNIT TESTING SMART USE CASES Test methods that interact with domain Set up (in)valid domain object Run method from use case Validate outcome
  • 76. Introducing a light weight smart use case unit testing framework UNIT TESTING SMART USE CASES
  • 77. 77HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved Test environment Create test manager (using manager-provider) Mock actual use case environment Log events from environment to test manager Asserts by querying test manager Task management (Possibly) avoid other task getting started View management Don’t request actual web pages or forms Method calls from web pages are tested Domain Handle actual validation, saves, removes Make sure business rules validate Validation Validate, but handle by logging A LIGHTWEIGHT SMART USE CASE UNIT TESTING FRAMEWORK
  • 78. 78HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved CONFIGURING TEST ENVIRONMENT
  • 79. 79HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved TEST MANAGER – LOGGING EVENTS
  • 80. 80HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved MOCKING ENVIRONMENT – LOGGING EVENTS
  • 81. 81HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved TEST MANAGER – QUERYING EVENTS
  • 82. 82HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved TEST MANAGER – RUNNING TESTS Test methods that interact with domain Set up (in)valid domain object Run method from use case Validate outcome
  • 84. 84HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved Smart use cases Solid unit of work in agile projects Easy estimation Identifying functional re-use early in projects Guarantee front-to-back traceability Great unit for (automated) testing Apply stereotypes for even more standardization Use a REAL modeling tool Software architecture Provide separate smart use cases layer Handles process, interaction and work flow Controller ++ TAKEAWAYS
  • 85. 85HOW SMART USE CASES DRIVE WEB DEVELOPMENT ©2010 Capgemini. All Rights Reserved Coding Implement task pattern Implement task management Modeling provides for model driven development Testing Smart use cases allow for automated testing Great code coverage on all layers Mock actual task environment Run tests automated in nightly builds TAKEAWAYS