Date post: | 21-Dec-2015 |
Category: |
Documents |
View: | 216 times |
Download: | 0 times |
13 September 2007Jeroen Snijders
Functional Design Patterns
Your Partner In eBusiness Solution Delivery
2
Agenda• About us (Company profile)• The applications we build • The problems we encounter• FDPs – our approach• FDPs – examples• Case• FDPs and development• Future
3
Agenda• About us (Company profile)• The applications we build • The problems we encounter• FDPs – our approach• FDPs – examples• Case• FDPs and development• Future
4
Company profile
• Founded March 2000• Profitable since start up• Over 80 employees• Lean organization• Continuous growth
Your partner for development of insurance solutions using a modern
technology, delivering a superior price/performance ratio
0
1
2
3
4
5
6
7
Turnover (in mln euro per year)
0
10
20
30
40
50
60
70
80
number of employees
5
Markets• 90% of our revenues are in the financial
sector :– Insurance– Banking– Intermediaries
(Brokers)
6
Subset of our customers
7
Core competences• Project management• Information analysis & Functional design• Technical design• Programming• Testing (management and execution)• Technical consultancy (J2EE, WebSphere, …)• Infrastructure design and implementation• Training and coaching
8
Technology• J2EE (Java 2 Enterprise Edition)• Databases: Oracle, IBM DB2, MS SQL Server,
PostgreSQL, MySQL• Application Servers: IBM WebSphere, Apache
Tomcat, JBoSS, Borland Enterprise Server, Tomcat
• Framework: Struts, Quinity Framework• Various: XML, XSLT, SOAP, WebServices
9
Controller
Model
Multi Channel Transactions
Transaction Control Transaction ControlSecurity (Access verification and limits)
Screen handling &
Navigation
SOAPServiceProvider
Batch program
Database
Web serviceClient
View
HTTP-requestHTMLXHTML
XML
SOAP-request
Files(XML,CSV,…)
External serverSystem
BatchOnlineDialogues
(intranet, extranet, internet)webservices
Authentication/autorisation Authentication/autorisation
IBM DB2IBM DB2 for z/OSOracleMS SQL Server
BrowserIE, firefox, ...
External System(Business Partner Website,
GIM, etc.)
J2E
E/J
EE
Operating SystemWindowsLinuxIBM z/OSIBM i5/OS
IBM AIXSUN SolarisHP-UX
JSP
10
Agenda• About us (Company profile)• The applications we build • The problems we encounter• FDPs – our approach• FDPs – examples• Case• FDPs and development• Future
11
12
13
14
15
16
17
18
19
20
21
22
CharacteristicsComplex functionality:
– Complex and big data structures– Time dependent data and functionality– Complex (actuarial) calculations– Complex interfaces and output– Non stop functional changes
– Generic solution <-> custom-made – Maintainability <-> flexibility
23
Agenda• About us (Company profile)• The applications we build • The problems we encounter• FDPs – our approach• FDPs – examples• Case• FDPs and development• Future
24
Problems• Lack of standard way to describe functionality• No standard way to translate a functional design to
technical design and/or code• Software is hard to understand and hard to maintain (no
deterministic path from functionality to implementation and vice versa)
• Software is buggy due to big complexity -> high costs for testing and debugging
• Lack of way to describe reusable solutions -> software for one customer / project
25
Consequences
• Many projects fail / are cancelled
• Extreme exceeding of the budget and time
• If an application is delivered, maintenance is often too expensive
• The result is often not what the customers really wanted/expected
26
Agenda• About us (Company profile)• The applications we build • The problems we encounter• FDPs – our approach• FDPs – examples• Case• FDPs and development• Future
27
Our approach: Patterns• Technical Design Patterns
– Reusable patterns in class structures and behaviour– (GOF patterns, J2EE patterns; ie MVC)
• User Interface Patterns– Reusable patterns in user interaction
• Functional Design Patterns– Reusable patterns in functionality
• Performance patterns– Reusable patterns for performance and capacity
28
Functional Design patterns
Functional Design Pattern
Functional Design Section
Realisation Section
Core conceptsInformation
function segments
Data pattern
Technical design details Implementation details
Interaction patterns
• describe recurring functionality of applications in which functionality is defined as: “All behaviour of an information system concerning the storage, manipulation and display of data”
29
Performance patterns• describe a specific performance aspect in such a
way that the solution can be reused in different situations / projects.
30
Agenda• About us (Company profile)• The applications we build • The problems we encounter• FDPs – our approach• FDPs – examples• Case• FDPs and development• Future
31
Manage/maintain functions with search, add, delete, a navigator and sorting per column
32
Same for a different client and project
33
Tabs with general attributes and sub tabs with associated entities
34
35
Implementation: code generation
Datamodel in Visio
DDL(Data DefinitionLanguage)
XML withdata definition
12 XSLT sheetsfor i.e. manage/detailsscreen
Code generation for previous patterns on aspect level, based on data model
Java classes and JSP pageswith basic patterns
Custom Java classes and JSP pages
Database Combined with MVC framework
36
A form consisting of groups and questions
37
38
39
... generic datamodel and
maintenance functions
40
Implementation: components
Client 1
Standard components:1. formcomponent2. Support (user management) 3. Report generator4. content management system
Implementation using components
Implementation per client:1. Parameterizing of components2. Subclassing of component3. Customizing Java classes and
JSP templates4. XSLT-sheets (interfaces and
PDF)5. Additional (custom) functionality
Client 2 Client 3
Client 4
41
FDP workflow – insurance companyInvoerkanaal:
Intranet/Extranet
inbehandeling
geven
afwijzen
accepteren
verwerken
Verwerkt
verzenden
Te verwerkenTer beoordeling[acceptatieniveau]
[gewijzigd]
In behandeling[acceptatieverwerking]
Niet verwerken[reden]
annuleren
aanmakenaanvraag of
mutatieaanmaken offerte
annuleren
Workflow on aspect level:• Statuses and actions• Subject• Dimensions:
• Travel with the subject from status to status
• Determine possible actions• Show how the current status is
reached• Process dimensions
• Partial actions• Diagram
Ter beoordeling[acceptatieniveau]
[gewijzigd]
In behandeling[acceptatieverwerking]
[verzoeksoort]
wijzigen wijzigen
omzettenofferte inaanvraag
Aparte dimensies voor:
- Acceptatieverwerking
- Acceptatieniveau
42
FDP workflow – additionsExtra input channels:• SOAP• Internet
Ter accordering
aanbiedenter
accordering
afwijzendoor
consumentaccorderen
Niet verwerken[reden]
Invoerkanaal:Internet
aanmakenaanvraag
Ter beoordeling[acceptatieniveau]
[gewijzigd]
Te verwerken
afwijzen
annuleren
accepterenInvoerkanaal:
SOAP
Niet verwerken[reden]
Te verwerken
aanmakenaanvraag
Ter beoordeling[acceptatieniveau]
[gewijzigd]
43
Workflow in a project ...
44
45
FDP Time dependent data• Entity
– identification– Start/enddate for linking (use)
• EntityInstance– Time dependent values– Start/enddate for validity
• All end dates are ‘including’• Two reference dates:
– For linking– For retrieving valid instance
EntityentityIdexternalIdentifierdateUseStartdateUseEnd<time-indep. data>
EntityInstentityIdentityInstIddateStartdateEnd<tijdafh. data>
EntityInstentityIdentityInstIddateStartdateEnd<time-dep. data>
46
FDP Authorisation
Functioneleorganisatie-
structuur
Organisatie-functie
Entiteit
OrganisatiefunctieBedrijfsactiviteit
Matrix
InformatiefunctieEntiteitMatrix
Bedrijfsproces-structuur
Informatie-systeem-structuur
Gegevens-infrastructuur
Bedrijfsfunctie Informatiesysteem
Bedrijfs-activiteit
Informatie-functie
BedrijfsactiviteitInformatiefunctie
Matrix
OrganisatiefunctieInformatiefunctie
Matrix
BedrijfsactiviteitEntiteitMatrix
OrganisatiefunctieEntiteitMatrix
Bestaat uit
Bestaat uit
Bestaat uit
Bestaat uit
47
FDP Authorisation
Organisation function Information function Entity
Information functionEntityMatrix
Business activity
Organisation functionBusiness activity
Matrix
Business activityInformation function
Matrix
48
FDP Authorisation
Organisation function Informatino function Entity
Information functionEntityMatrix
Business activity
Organisation functionBusiness activity
Matrix
Business activityInformation function
Matrix
Person
PersonOrganisation function
Matrix
49
FDP Authorisation
Organisation function Information functionBusiness activity
Organisation functionBusiness activity
Matrix
Business activityInformation function
Matrix
Person
PersonOrganisation function
Matrix
50
FDP Authorisation
Role InformationFunctionInformationFunction
Group
RoleInformationFunctionGroup
InformationFunctionGroupInformationFunction
User
51
FDP Authorisation• Compare with J2EE:
Group ResourceRole
RoleGroup ResourceRole
User
UserRole
52
FDP Authorisation - extended
Information function
Entity Attribute 1 Attribute 2 Attribute 3
Fieldrestriction
Rowrestriction
Role InformationFunctionInformationFunction
Group
RoleInformationFunctionGroup
InformationFunctionGroupInformationFunction
User
Contextrestriction Condition
ContextrestrictionCondition
53
Describing FDPs• Default template
• Default (functional) language– drawing techniques
• Marking:– ‘Clever idea’– ‘Needs investigation’
54
Agenda• About us (Company profile)• The applications we build • The problems we encounter• FDPs – our approach• FDPs – examples• FDPs and development• Future
55
Agenda• About us (Company profile)• The applications we build • The problems we encounter• FDPs – our approach• FDPs – examples• Case• FDPs and development• Future
56
Software Development At Quinity
• Combination of:– LAD:
– DSDM:
Requirements RealisationFunctional
Design
iterate iterate
Acceptance Testing
Usage / Maintenance
feedback
request for change
Definition study
Basic designDetailed design
RealisationUsage/
Maintenance
Feasibility study
Business study
Functional model
System design/build
Usage
iterate iterate
feedbackfeedbackfeedback
57
Functional designCreate quotation for design phase
Create requirements document (optional)
Create quotation for realisation phase
CreateInformation functions
(Functional description,Use-cases)
- Use of FDPs and UIPs -
Create data model- Use of FDPs -
Create mock-up
- Use of UIPs -
Tim
e
58
Technical design• We have technical design (patterns) for functionality
described in FDPs.– Technical documentation of standard components– Technical documentation of standard constructs
• We have technical documentation for the framework– technical documentation for the use of superclasses, libraries,
stylesheets et cetera– technical documentation for the generated parts
• We only create a technical design for (non-trivial) project-specific code.
59
Semi structured use of FDPs
Requirements
Functional Design
ImplementationAcceptance Testing
Usage / Maintenance
Pattern combining
Guide technical design
Cost estimation
Pattern recognition
Structured client sessions
Diagram techniques
Pattern documentation
Common vocabulary
Acquisition
Pattern repository growth
Pattern searching
60
Structured use of FDPsacquisition
Acquisition
Estimation details
QuotationSystem
descriptionEF:R3 EF:R4C:R1 Basic
decompositionEF:R2
EF:R5
Rule Person Involved activities
R1 Customer Deliver system description
R2 Experienced functional designer Analyse the system description for recurring functionality
R3 Experienced functional designer Check cost and planning experience in Functional Design Patterns
R4 Experienced functional designer Create cost and planning estimates for quotation
R5 Experienced functional designer Communicate basic analysis to functional designers
61
Structured use of FDPsrequirements
Requirements
Requirements specification
Candidate patterns
Information functions
Conceptual architecture
Core conceptsF:R8 F:R9 F:R10
F:R7
F:R6C:R6
C:R7
Rule Person Involved activities
R6R7
Customer;Functional designer
Gather requirementsAcquaint with patternsEstablish a common vocabulary
R8 Functional designer Derive desired information functions from requirements specification
R9 Functional designer Decompose in conceptual problems to create a conceptual architecture
R10 Functional designer Find solutions for conceptual architectureRecognise patternsSelect candidate patters
62
Structured use of FDPsfunctional design
Functional design R11
Core conceptsInformation
function segmentsData pattern
Interaction pattern
Data modelInformationfunction
descriptionMock-up
Functional design
F:R13 F:R14 F:R15
F:R16
F:R12
Refined concepts
Rule Person Involved activities
R11 Functional designer Decide between candidates and variants
R12 Functional designer Copy core concepts, refine when neededOptionally rename to clients preferred termsUse prescribed diagram style
R13 Functional designer Copy, combine and refine information function segments
R14 Functional designer Develop the data modelCreate basic modelSort patterns in order of importanceApply one data pattern at a timeMerge similar responsibilitiesReturn to information functionsExtend with pattern independent entities
63
Structured use of FDPsrealisation
Realisation
Task
Technical design part
Technical design
T:R18
L:R22
Code part
T:R20
Technical design details
Implementation details
T:R21 L:R23
F:R17
Code
T:R19
Rule Person Involved activities
R17 Team leader Divide functional design in tasks
R18R19
Technical designer Write the Technical Design for a specific partCheck technical design details in patternsAssess advantages of copying versus referencingRefine technical design details in the technical design
R20R21
Technical designer Develop software using implementation details
R22 Team leader Merge technical design parts into technical design
R23 Team leader Merge code parts in code
64
Structured use of FDPsusage and maintenance
Usage and maintenance
Updated pattern(s)
Technical designFunctional design T:R24F:R24
Rule Person Involved activities
R24 Team leader;Functional designer
Update the pattern repository with project experience
65
Agenda• About us (Company profile)• The applications we build • The problems we encounter• FDPs – our approach• FDPs – examples• Case• FDPs and development• Future
66
Future• Theory:
– Functional (meta) languages (diagram techniques)– Exchange information with universities/research centres
• Practice:– Incorporating the structured use of FDPs at Quinity – More (domain) specific FDPs
• based on knowledge in existing projects
– More research about performance patterns
• Trainees /students
67
Any questions?Maliebaan 50
3581 CS Utrecht
+31 (0)30 233 5999
Your Partner In eBusiness Solution Delivery