David H. Lorenz

2papers

2 Papers

SEDec 31, 2020Code
Managed Information: A New Abstraction Mechanism for Handling Information in Software-as-a-Service

David H. Lorenz, Boaz Rosenan

Management of information is an important aspect of every application. This includes, for example, protecting user data against breaches (like the one reported in the news about 50 million Facebook profiles being harvested for Cambridge Analytica), complying with data protection laws and regulations (like EU's new General Data Protection Regulation), coping with large databases, and retaining user data across software versions. Today, every application needs to cope with such concerns by itself and on its own. In this paper we introduce Managed Information (MI), an abstraction mechanism for managing extra-functional data related concerns, similar to how managed memory today abstracts away many memory related concerns. MI limits the access applications have to user data, which, in return, relieves them from responsibility over it. This is achieved by hosting them on a Managed Information Platform (MIP), and implementing their logic in a language that supports MI. As evidence for the feasibility of MI we describe the design and implementation of such a platform. For demonstration of MI, we describe a simple social network application built with it. The implementation is open source.

SEDec 31, 2020
Optimal Software Architecture From Initial Requirements: An End-to-End Approach

Ofir T. Erlich, David H. Lorenz

A software architect turns system requirements into a suitable software architecture through an architecture optimization process. However, how should the architect decide which quality improvement to prioritize, e.g., security or reliability? In software product line, should a small improvement in multiple products be preferred over a large improvement in a single product? Existing architecture optimization methods handle various steps in the process, but none of them systematically guides the architect in generating an optimal architecture from the initial requirements. In this work we present an end-to-end approach for generating an optimal software architecture for a single software product and an optimal family of architectures for a family of products. We report on a case-study of applying our approach to optimize five industry-grade products in a real-life product line architecture, where 359 possible combinations of ten different quality efforts were prioritized.