Foreword |
|
xiii | |
Chapter 1 Introduction |
|
1 | (8) |
|
|
2 | (1) |
|
1.2 The IFML Design Principles |
|
|
3 | (2) |
|
1.3 How to Read this Book |
|
|
5 | (1) |
|
1.3.1 Structure of the Book |
|
|
6 | (1) |
|
|
6 | (1) |
|
|
7 | (1) |
|
|
8 | (1) |
Chapter 2 IFML in a Nutshell |
|
9 | (16) |
|
2.1 Scope and Perspectives |
|
|
9 | (2) |
|
2.2 Overview of IFML Main Concepts |
|
|
11 | (4) |
|
2.3 Role of IFML in the Development Process |
|
|
15 | (4) |
|
|
19 | (4) |
|
2.5 Summary of the Chapter |
|
|
23 | (1) |
|
|
24 | (1) |
Chapter 3 Domain Modeling |
|
25 | (26) |
|
|
26 | (1) |
|
|
26 | (1) |
|
3.3 Identification and Primary Key |
|
|
27 | (2) |
|
3.4 Attribute Type and Visibility |
|
|
29 | (1) |
|
|
30 | (1) |
|
3.6 Generalization Hierarchies |
|
|
31 | (1) |
|
|
32 | (2) |
|
3.8 Nary Associations and Associations with Attributes |
|
|
34 | (2) |
|
3.9 Derived Information and the Object Constraint Language (OCL) |
|
|
36 | (2) |
|
3.10 Domain Modeling Patterns and Practices |
|
|
38 | (1) |
|
3.11 The Process of Domain Modeling |
|
|
39 | (8) |
|
3.11.1 Designing the Core Subschema |
|
|
40 | (1) |
|
3.11.2 Designing an Interconnection Subschema |
|
|
41 | (1) |
|
3.11.3 Designing an Access Subschema |
|
|
41 | (3) |
|
3.11.4 Designing a Personalization Subschema |
|
|
44 | (3) |
|
|
47 | (2) |
|
3.13 Summary of the Chapter |
|
|
49 | (1) |
|
|
49 | (2) |
Chapter 4 Modeling the Composition of the User Interface |
|
51 | (26) |
|
4.1 Interface Organization |
|
|
51 | (2) |
|
4.2 View Container Nesting |
|
|
53 | (2) |
|
4.3 View Container Navigation |
|
|
55 | (1) |
|
4.4 View Container Relevance and Visibility |
|
|
55 | (2) |
|
|
57 | (2) |
|
4.6 Context and Viewpoint |
|
|
59 | (3) |
|
4.7 User Interaction Patterns |
|
|
62 | (1) |
|
4.8 Interface Organization Patterns and Practices |
|
|
62 | (9) |
|
4.8.1 Desktop Interface Organization Patterns |
|
|
62 | (1) |
|
4.8.2 Web Interface Organization Patterns |
|
|
63 | (7) |
|
4.8.3 Mobile Interface Organization Patterns |
|
|
70 | (1) |
|
|
71 | (5) |
|
4.10 Summary of the Chapter |
|
|
76 | (1) |
|
|
76 | (1) |
Chapter 5 Modeling Interface Content and Navigation |
|
77 | (38) |
|
5.1 What ViewContainers Contain: ViewComponents |
|
|
78 | (1) |
|
5.2 Events and Navigation Flows with ViewComponents |
|
|
79 | (2) |
|
5.3 Content Dependencies: Data Binding |
|
|
81 | (2) |
|
5.4 Input-Output Dependencies: Parameter Binding |
|
|
83 | (2) |
|
5.5 Extending IFML with Specialized ViewComponents and Events |
|
|
85 | (6) |
|
5.5.1 Data Publishing Extensions |
|
|
86 | (3) |
|
5.5.2 Data Entry Extensions |
|
|
89 | (2) |
|
5.6 Content and Navigation Patterns and Practices |
|
|
91 | (2) |
|
5.6.1 Pattern CN-MD: Master Detail and PAFIERN CN-MMD: Master Multidetail |
|
|
92 | (1) |
|
5.6.2 Pattern CN-MLMD: Multilevel Master Detail |
|
|
92 | (1) |
|
5.6.3 Pattern CN-DEF: Default Selection |
|
|
92 | (1) |
|
|
93 | (6) |
|
5.7.1 Pattern DE-FRM: Multifield Forms |
|
|
93 | (1) |
|
5.7.2 Pattern DE-PLDF: Preloaded Field |
|
|
94 | (2) |
|
5.7.3 Pattern DE-PASF: Preassigned Selection Field |
|
|
96 | (1) |
|
5.7.4 Pattern DE-DLKP: Data Lookup |
|
|
97 | (1) |
|
5.7.5 Pattern DE-CSF: Cascade Selection Fields |
|
|
98 | (1) |
|
5.7.6 Pattern DE-WIZ: Wizard |
|
|
99 | (1) |
|
|
99 | (4) |
|
5.8.1 Pattern CS-SRC: Basic Search |
|
|
99 | (2) |
|
5.8.2 Pattern CS-MCS: Multicriteria Search |
|
|
101 | (1) |
|
5.8.3 Pattern CS-FSR: Faceted Search |
|
|
101 | (2) |
|
|
103 | (10) |
|
5.10 Summary of the Chapter |
|
|
113 | (1) |
|
|
113 | (2) |
Chapter 6 Modeling Business Actions |
|
115 | (22) |
|
|
116 | (3) |
|
|
119 | (1) |
|
6.3 Business Action Patterns |
|
|
119 | (12) |
|
6.3.1 Content Management Patterns |
|
|
119 | (1) |
|
6.3.2 Pattern A-OCR: Object Creation |
|
|
120 | (1) |
|
6.3.3 Pattern A-OACR: Object and Association Creation |
|
|
120 | (2) |
|
6.3.4 Pattern A-ODL: Object Deletion |
|
|
122 | (1) |
|
6.3.5 Pattern A-CODL: Cascaded Deletion |
|
|
123 | (2) |
|
6.3.6 Pattern A-OM: Object Modification |
|
|
125 | (3) |
|
6.3.7 Pattern A-AM: Association Management |
|
|
128 | (2) |
|
6.3.8 Pattern A-NOTIF: Notification |
|
|
130 | (1) |
|
|
131 | (5) |
|
6.5 Summary of the Chapter |
|
|
136 | (1) |
|
|
136 | (1) |
Chapter 7 IFML Extensions |
|
137 | (30) |
|
|
138 | (7) |
|
|
138 | (2) |
|
7.1.2 Component Extensions |
|
|
140 | (4) |
|
7.1.3 ComponentPart Extensions |
|
|
144 | (1) |
|
|
145 | (7) |
|
7.2.1 Container Extensions: Pages, Areas, and Site Views |
|
|
145 | (2) |
|
7.2.2 Event and Interaction Flow Extensions |
|
|
147 | (1) |
|
7.2.3 Component Extensions |
|
|
148 | (4) |
|
|
152 | (9) |
|
|
153 | (1) |
|
7.3.2 Containers Extensions |
|
|
154 | (1) |
|
7.3.3 Component and Event Extensions |
|
|
155 | (1) |
|
7.3.4 Cameras and Sensors |
|
|
155 | (1) |
|
|
156 | (1) |
|
|
157 | (3) |
|
|
160 | (1) |
|
|
161 | (1) |
|
7.4 Multiscreen Extensions |
|
|
161 | (3) |
|
7.5 Summary of the Chapter |
|
|
164 | (1) |
|
|
164 | (3) |
Chapter 8 Modeling Patterns |
|
167 | (66) |
|
8.1 Interface Organization |
|
|
167 | (6) |
|
|
167 | (2) |
|
|
169 | (4) |
|
8.2 Navigation and Orientation |
|
|
173 | (17) |
|
|
174 | (12) |
|
8.2.2 Pattern CN-UP AND CN-BACK: Up and Back Navigation |
|
|
186 | (1) |
|
8.2.3 Pattern CN-BREAD: Breadcrumbs |
|
|
187 | (3) |
|
8.3 Content Publishing, Scrolling, and Previewing |
|
|
190 | (7) |
|
8.3.1 Pattern CN-MMD: Master Multidetail |
|
|
190 | (2) |
|
8.3.2 Pattern CN-PG: Paging |
|
|
192 | (1) |
|
8.3.3 Pattern CN-PR: Collection Preview |
|
|
192 | (4) |
|
8.3.4 Pattern CN-Alpha: Alphabetical Filter |
|
|
196 | (1) |
|
|
197 | (7) |
|
8.4.1 Pattern DE-TDFP: Type-Dependent Field Properties |
|
|
197 | (1) |
|
8.4.2 Pattern DE-RTE: Rich Text Editing |
|
|
197 | (1) |
|
8.4.3 Pattern DE-AUTO: Input Auto-Completion |
|
|
198 | (3) |
|
8.4.4 Pattern DE-DYN: Dynamic Selection Fields |
|
|
201 | (1) |
|
8.4.5 Pattern DE-INPL: In-Place Editing |
|
|
201 | (2) |
|
8.4.6 Pattern DE-VAL: Input Data Validation |
|
|
203 | (1) |
|
|
204 | (1) |
|
8.5.1 Pattern CS-RSRC: Restricted Search |
|
|
204 | (1) |
|
8.5.2 Pattern CS-SRCS: Search Suggestions |
|
|
204 | (1) |
|
|
205 | (3) |
|
8.6.1 Pattern CM-CBCM: Class-Based Content Management |
|
|
205 | (3) |
|
8.6.2 Pattern CM-PBCM: Page-Based Content Management |
|
|
208 | (1) |
|
8.7 Personalization, Identification, and Authorization |
|
|
208 | (12) |
|
8.7.1 Pattern IA-LOGIN: Login |
|
|
209 | (1) |
|
8.7.2 Pattern IA-LOGOUT: Logout |
|
|
210 | (1) |
|
8.7.3 Pattern IA-CEX: Context Expiration Notification |
|
|
210 | (3) |
|
8.7.4 Pattern IA-SPLOG: Login to a Specific ViewContainer |
|
|
213 | (1) |
|
8.7.5 Pattern IA-ROLE: User Role Display and Switching |
|
|
213 | (2) |
|
8.7.6 Pattern IA-RBP: Role-Based Permissions for View Elements |
|
|
215 | (1) |
|
8.7.7 Pattern IA-NRBP: Negative Role-Based Permissions for View Elements |
|
|
216 | (1) |
|
8.7.8 Pattern IA-OBP: Object-Based Permissions |
|
|
217 | (1) |
|
8.7.9 Pattern IA-PRO: User Profile Display and Management |
|
|
217 | (3) |
|
8.7.10 Pattern IA-IPSI: In-Place Sign-In |
|
|
220 | (1) |
|
|
220 | (5) |
|
8.8.1 Pattern SES-CR: Creating Session Data from Persistent Data |
|
|
222 | (1) |
|
8.8.2 Pattern SES-PER: Persisting Session Data |
|
|
223 | (1) |
|
8.8.3 Pattern SES-EXC: Session Data Expiration Catching |
|
|
224 | (1) |
|
|
225 | (3) |
|
8.9.1 Pattern SOC-AW: Activity Wall |
|
|
225 | (1) |
|
8.9.2 Pattern SOC-SH: Sharing, Liking, and Commenting |
|
|
226 | (2) |
|
8.9.3 Pattern SOC-FR: Friendship Management |
|
|
228 | (1) |
|
|
228 | (2) |
|
8.10.1 Pattern GEO-LAS: Location-Aware Search |
|
|
228 | (2) |
|
8.11 Summary of the Chapter |
|
|
230 | (1) |
|
|
230 | (3) |
Chapter 9 IFML by Examples |
|
233 | (46) |
|
|
233 | (19) |
|
|
233 | (1) |
|
|
234 | (18) |
|
|
252 | (24) |
|
|
253 | (3) |
|
|
256 | (20) |
|
9.3 Summary of the Chapter |
|
|
276 | (3) |
Chapter 10 Implementation of Applications Specified with IFML |
|
279 | (56) |
|
10.1 Implementation of the Front End for URE-HTML Page Templates |
|
|
282 | (19) |
|
10.1.1 Overview of the ViewContainer Computation Steps |
|
|
282 | (2) |
|
10.1.2 Standalone ViewContainer |
|
|
284 | (3) |
|
10.1.3 Navigation Across ViewContainers |
|
|
287 | (3) |
|
10.1.4 Navigation Within the Same ViewContainer |
|
|
290 | (3) |
|
|
293 | (2) |
|
10.1.6 Landmarks and Nested ViewContainers |
|
|
295 | (3) |
|
|
298 | (1) |
|
|
299 | (2) |
|
10.2 Implementation of the Front End for Presentation Frameworks |
|
|
301 | (15) |
|
10.2.1 Model-View-Controller and its Adaptation to the Web |
|
|
301 | (4) |
|
10.2.2 Mapping IFML to the Spring MVC Framework |
|
|
305 | (1) |
|
10.2.3 Mapping ViewContainers to Spring MVC |
|
|
305 | (5) |
|
10.2.4 Mapping ViewComponents to Spring MVC |
|
|
310 | (2) |
|
10.2.5 Mapping Forms to Spring MVC |
|
|
312 | (3) |
|
10.2.6 Mapping Operations to the MVC Architecture |
|
|
315 | (1) |
|
10.3 Implementation of the Front End for Rich Internet Applications |
|
|
316 | (5) |
|
10.3.1 Mapping IFML to the RIA Architecture |
|
|
317 | (4) |
|
10.4 Implementation of the Front End for Mobile Applications |
|
|
321 | (12) |
|
10.4.1 The Android Development Environment |
|
|
322 | (1) |
|
10.4.2 Mapping IFML to Native Android Code |
|
|
323 | (10) |
|
10.5 Summary of the Chapter |
|
|
333 | (1) |
|
|
333 | (2) |
Chapter 11 Tools for Model-Driven Development of Interactive Applications |
|
335 | (24) |
|
11.1 Introduction to Webratio |
|
|
335 | (2) |
|
|
337 | (1) |
|
11.3 IFML Front-End Design |
|
|
338 | (3) |
|
11.4 Data Mapping and Alignment |
|
|
341 | (1) |
|
|
342 | (2) |
|
|
344 | (2) |
|
|
346 | (4) |
|
11.7.1 Code Generation for Web and Rich Internet Application |
|
|
346 | (4) |
|
11.7.2 Code Generation for Mobile Applications |
|
|
350 | (1) |
|
|
350 | (5) |
|
|
350 | (1) |
|
|
351 | (1) |
|
11.8.3 Cooperative Work and Enterprise Scale Development |
|
|
351 | (2) |
|
11.8.4 Automatic Documentation |
|
|
353 | (1) |
|
11.8.5 IFML Extensibility |
|
|
354 | (1) |
|
11.9 Summary of the Chapter |
|
|
355 | (2) |
|
11.10 Bibliographic Notes |
|
|
357 | (2) |
Chapter 12 IFML Language Design, Execution, and Integration |
|
359 | (22) |
|
12.1 IFML Language Specification Through Metamodeling |
|
|
359 | (3) |
|
|
360 | (1) |
|
|
361 | (1) |
|
12.1.3 Profile, Visual Notation, and Interchange Format |
|
|
362 | (1) |
|
12.2 IFML Model Execution |
|
|
362 | (13) |
|
12.2.1 State Representation |
|
|
363 | (1) |
|
12.2.2 ViewContainer State |
|
|
363 | (1) |
|
12.2.3 State of a ViewComponent |
|
|
364 | (1) |
|
12.2.4 ActivationExpressions |
|
|
364 | (2) |
|
|
366 | (1) |
|
12.2.6 ViewContainer Visibility Update |
|
|
366 | (1) |
|
12.2.7 ViewComponent Status Update |
|
|
367 | (1) |
|
12.2.8 Navigation History Preservation |
|
|
367 | (3) |
|
12.2.9 Parameter Values Conflicts |
|
|
370 | (1) |
|
12.2.10 ViewComponent Computation Process |
|
|
371 | (4) |
|
12.3 IFML Models Integration with Other System Modeling Perspectives |
|
|
375 | (5) |
|
12.3.1 Integration with Business Models and Requirements |
|
|
377 | (1) |
|
12.3.2 Integration with Content Model and Business Logic |
|
|
377 | (1) |
|
12.3.3 Integration with Implementation and Deployment Aspects |
|
|
378 | (2) |
|
12.4 Summary of the Chapter |
|
|
380 | (1) |
|
|
380 | (1) |
Appendix A: IFML Notation Summary |
|
381 | (8) |
Appendix B: List of IFML Design Patterns |
|
389 | (6) |
References |
|
395 | (6) |
Index |
|
401 | |