Content-intensive, interactive information systems have become an integral component of computer infrastructure. Applications become increasingly complex. Meanwhile, the information system technology has evolved to a very large extent. Methodologies for developing large information systems have not evolved in the same speed. We also observe an impedance mismatch between software engineering and database development methodologies. Along with the development of web-based applications, the significance of information persistence has been growing. Software engineering concepts covering both software behavior and persistent data are sought. The complexity of interaction with the user requires anticipating system behavior on both application and database sides. Each application is different, though. Varying utilization scenarios require providing modified functionality to the user. A generic architecture for such systems has been missing so far. Another challenge is adapting software to changes of the data model underneath. Necessary changes in application code often exceed the capabilities of common software parameterization techniques.
A formal basis for a generic solution has been missing so far. This work focuses on a method for specifying software functionality that has been developed. It is based on computational linguistics and close to real-life specifications based on natural language. It allows to define a generic specification of system functionality and provides it to users in different application contexts, under varying constraints, and on differing data models. A formal notion of genericity is provided for comparing the behavior of information systems.