OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
A cookbook for using the model-view controller user interface paradigm in Smalltalk-80
Journal of Object-Oriented Programming
An incremental constraint solver
Communications of the ACM
Survey on user interface programming
CHI '92 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Skyblue: a multi-way local propagation constraint solver for user interface construction
UIST '94 Proceedings of the 7th annual ACM symposium on User interface software and technology
An incremental algorithm for satisfying hierarchies of multiway dataflow constraints
ACM Transactions on Programming Languages and Systems (TOPLAS)
How reuse influences productivity in object-oriented systems
Communications of the ACM
The Amulet Environment: New Models for Effective User Interface Software Development
IEEE Transactions on Software Engineering
An industrial study of reuse, quality, and productivity
Journal of Systems and Software
Create user interfaces with Glade
Linux Journal
R++: Adding Path-Based Rules to C++
IEEE Transactions on Knowledge and Data Engineering
QTk - A Mixed Declarative/Procedural Approach for Designing Executable User Interfaces
EHCI '01 Proceedings of the 8th IFIP International Conference on Engineering for Human-Computer Interaction
Sketch pad a man-machine graphical communication system
DAC '64 Proceedings of the SHARE design automation workshop
Assessing the cost-effectiveness of software reuse: a model for planned reuse
Journal of Systems and Software - Special issue: Applications of statistics in software engineering
LCSD: library-centric software design
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Library composition and adaptation using c++ concepts
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
Computational complexity of multi-way, dataflow constraint problems
IJCAI'97 Proceedings of the 15th international joint conference on Artifical intelligence - Volume 1
Algorithms for user interfaces
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Helping programmers help users
Proceedings of the 10th ACM international conference on Generative programming and component engineering
Integration of data validation and user interface concerns in a DSL for web applications
SLE'09 Proceedings of the Second international conference on Software Language Engineering
Proceedings of the 8th ACM SIGPLAN workshop on Generic programming
HotDrink: a library for web user interfaces
Proceedings of the 11th International Conference on Generative Programming and Component Engineering
Integration of data validation and user interface concerns in a DSL for web applications
Software and Systems Modeling (SoSyM)
A survey on reactive programming
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
A user interface, such as a dialog, assists a user in synthesising a set of values, typically parameters for a command object. Code for "command parameter synthesis" is usually application-specific and non-reusable, consisting of validation logic in event handlers and code that controls how values of user interface elements change in response to a user's actions, etc. These software artifacts are incidental - they are not explicitly designed and their implementation emerges from a composition of locally defined behaviors. This article presents property models to capture explicitly the algorithms, validation, and interaction rules, arising from command parameter synthesis. A user interface's behavior can be derived from a declarative property model specification, with the assistance of a component akin to a constraint solver. This allows multiple interfaces, both human and programmatic, to reuse a single model along with associated validation logic and widget activation logic. The proposed technology is deployed in large commercial software application suites. Where we have applied property models, we have measured significant reductions in source-code size with equivalent or increased functionality; additional levels of reuse are apparent, both within single applications, and across product lines; and applications are able to provide more uniform access to functionality. There is potential for wide adoption: by our measurements command parameter synthesis comprises roughly one third of the code and notably more of the defects in desktop applications.