CONFIGURATION-ORIENTED PROGRAMMING Introduction into the new paradigm Radovan Brečka Department of Computer Science, Comenius University, Mlynská dolina, 842 48 Bratislava, Slovakia email: [email protected]
Dec 22, 2015
CONFIGURATION-ORIENTED PROGRAMMING
Introduction into the new paradigm
Radovan BrečkaDepartment of Computer Science, Comenius University,
Mlynská dolina, 842 48 Bratislava, Slovakia
email: [email protected]
Content
History
Illustrative examples
COP definition
How it works
Blox® Framework
Advantages
References
History of programming
Imperative programmingSimple computing definition Pseudo codes
Structured & procedural programmingData types, Control structures, ProceduresPL/1, C, Pascal, …
Object-oriented programmingObject (data + code), Inheritance, Dynamic method bindingC++, Java, .NET, …
Configuration-oriented programmingConfiguration
From OOP to COP
OOP ClassData
Code
OOP Instance
COP ModuleDataSetup (configuration form definition)
Code
COP ConfigurationAtributtes
Submodules
Inheritance + Dynamic method binding
COP definition
COP ModuleData: constants & module configurations (COP configuration)
Setup: definition how this module will be configured
Code: imperative code with direct configuration support
COP ConfigurationAttributes: defined with respect to Setup part of Module
Sub-modules: defined with respect to Setup definition
How it works:Example 1 – CMS
CMS – Content Management SystemModules:
Portal, Page, Section, Text, Image
Configuration:Representation of Content
How it works:Example 2 – Form
Form layerModules:
Data source, Data type, Data attributes
Forms, Form attributes
Configuration:Data table type
Form structure
Prerequisites:Created table example with columns: id, name, desc
Programming with configuration patterns
New programming technique
Result is achieved by executing an altered configuration
1. Module / Data – contains the configuration pattern
2. Pattern is modified by code
3. Execution of pattern achieves desired result
Programming with configuration patterns
Module Person:Method draw alters a configuration stored in Data part according to values of attributes Point X, Point Y and executes it.
Programming with configuration patterns
Section + TextNew module with attributes:
userText: String
userSkin: String
Draws the section with userSkin color with text with userText inside
Blox® Framework
Full framework for project developmentCore implemented in Java
executable on J2EE application servers
Configuration tool implemented in COPImplemented in itself
Modules are defined as configuration of special Setup modules
Configuration refactoring
Over 1000 modules
COP Advantages
Simpler and faster IS building using configurationSplitting development: Code implementation & ConfigurationBetter reusability of COP modules
Setup function directly defines how to use the modulesComplex configuration patterns can be hidden in special modules
New programming techniquesProgramming with configuration patterns (sub-problem abstraction)Power of configuration polymorphism (better level of domain decomposition)
Simpler IS maintenanceTransparent architecture in configurationConfiguration refactoring
New point of view on Rapid Application DevelopmentPrototypes can be build only by configurationDriven through configuration refactoring and module upgrading
Practical results
Orange Slovensko, a.s.Major mobile operator in SlovakiaBack-end of portal: www.orange.sk
Slovak Bar AssociationIndependent professional organization,
currently associating cca 4100 lawyers and 1220 trainee lawyers
Extranet systemIntranet system
Železničná spoločnosť, a.s.Leader in providing services in rail passenger transport in Slovakia Intranet information system
Document management systemWorkflow management system