@phdthesis {phd:2014:marcin.nowak, title = {Collaborative software architecture decisions: structure and dynamics}, year = {2014}, month = {September}, school = {USI}, type = {PhD}, address = {Lugano, Switzerland}, abstract = {The complexity of modern computer systems is often comparable with the one of biological systems. As much as this complexity can be effectively hidden from the end-user, it is inherently absorbed in the design of the system. Software Architecture is an effective design abstraction that allows designers to divide and conquer the complexity. A modern way of looking at the Software Architecture is to see it as a set of principal design decisions. The design of Software Architecture for large and complex systems often requires expertise exceeding what can be delivered by the individual software architect, therefore successful design relies on effective collaborative decision making within the design team of diverse domain experts. We tackle the problem of collaborative decision making in the software architecture design teams by proposing the decision argumentation viewpoint extension to the architecture description standard. Its main purpose is to support fine-granular decision argumentation modeling. Within the viewpoint we devise the architecture decision consensus lifecycle, and design issue choice state machine that enable precise characterization of the decision state. Based on the argumentation viewpoint we define an analytical framework designed to estimate the structural and temporal characteristics of decision models. The framework comprises fifteen metrics and offers a comprehensive introspection into the state and dynamics of the decision making process. Building upon this foundation we designed and implemented the Software Architecture Warehouse (SAW) - the tool to assist software architects in collaborative decision/making during the architecture design workshops. SAW features low-latency, structured architecture decision capturing and decision consensus management. Furthermore, the Software Architecture Warehouse is accompanied by the implementation of the aforementioned decision argumentation metrics framework. Finally, we evaluate the framework by applying it on the decision spaces recorded during the masters course on Software Architecture and Design. We conclude with an interpretation of differences observed between the workshops assisted with the use of the Software Architecture Warehouse and those supported by EtherPad, an alternative unstructured collaborative editor.}, keywords = {SAW}, author = {Marcin Nowak} } @conference {saw:2013:ecsa, title = {Team Situational Awareness and Architectural Decision Making with the Software Architecture Warehouse}, booktitle = {7th European Conference on Software Architecture (ECSA 2013)}, year = {2013}, month = {July}, pages = {146-161}, publisher = {Springer}, organization = {Springer}, address = {Montpellier, France}, abstract = {The core of the design of software architecture is all about architectural decision making. A high-quality design outcome sets high requirements, not only on the skills and knowledge of the design team members, but also on the management of the decision making process. We claim that in order to deliver high quality decisions, the design team needs to obtain a high level of situational awareness. To address this, we present an analysis of the problem of team situational awareness in design workshops and propose a model on how stakeholder positions help to build consensus within the argumentation viewpoint of architectural decisions. We show how the Software Architecture Warehouse tool has been extended to support the argumentation viewpoint within its live design document metaphor to provide support for co-located and distributed design workshops.}, keywords = {architectural decisions, collaborative design, SAW}, doi = {10.1007/978-3-642-39031-9_13}, author = {Marcin Nowak and Cesare Pautasso} } @conference {DBLP:conf/eics/AghaeeNP12, title = {Reusable decision space for mashup tool design}, booktitle = {4th ACM SIGCHI symposium on Engineering interactive computing systems (EICS 2012)}, year = {2012}, month = {June}, pages = {211-220}, address = {Copenhagen, Denmark}, abstract = {Mashup tools are a class of integrated development environments that enable rapid, on-the-fly development of mashups - a type of lightweight Web applications mixing content and services provided through the Web. In the past few years there have been growing number of projects, both from academia and industry, aimed at the development of innovative mashup tools. From the software architecture perspective, the massive effort behind the development of these tools creates a large pool of reusable architectural decisions from which the design of future mashup tools can derive considerable benefits. In this paper, focusing on the design of mashup tools, we explore a design space of decisions comprised of design issues and alternatives. The design space knowledge not only is broad enough to explain the variability of existing tools, but also provides a road-map towards the design of next generation mashup tools.}, keywords = {architectural decisions, design space, survey, Web mashups}, doi = {10.1145/2305484.2305520}, author = {Saeed Aghaee and Marcin Nowak and Cesare Pautasso} } @demo {2012:wicsa:saw, title = {Software Architecture Warehouse: live and collaborative architectural decision making}, year = {2012}, address = {Helsinki, Finland}, author = {Marcin Nowak and Cesare Pautasso} } @inproceedings {saw:2011:shark, title = {Goals, questions and metrics for architectural decision models}, year = {2011}, month = {May}, pages = {21{\textendash}28}, publisher = {ACM}, address = {Waikiki, Hawaii, USA}, abstract = {Architectural decisions are the key element behind the design process leading to a software architecture. Making software architects aware of the implications of their decisions is only the beginning of what can be achieved by capturing the rationale and the constraints influencing the decision making process in a reusable body of architectural knowledge. In this paper we propose a metric-based approach to the analysis of architectural decision models. Using a hierarchically-structured approach we identify a number of useful goals and stakeholders involved in the architectural design process. Next, we sketch a set of metrics to provide data for the evaluation of the aforementioned goals. Our aim is to stimulate a discussion on how to find indicators relevant for software architects by measuring the intrinsic properties of architectural knowledge.}, keywords = {architectural decision modeling, metrics, SAW, software architecture, visualization}, isbn = {978-1-4503-0596-9}, doi = {10.1145/1988676.1988682}, author = {Marcin Nowak and Cesare Pautasso} } @inproceedings {saw:2010:shark, title = {Architectural decision modeling with reuse}, year = {2010}, month = {May}, pages = {13 - 20}, publisher = {ACM}, address = {Cape Town, South Africa}, abstract = {Architectural decision modeling aims at supporting the software architecture design process by capturing a reusable body of architectural knowledge. Whereas significant progress has been made towards this vision, there still remains a number of open problems. This paper outlines selected research challenges and opportunities related to knowledge capturing and sharing, model evolution and verification, and the integration of the architectural design process with existing software development methodologies. Our goal is to start a discussion on a roadmap for future research on reusable modeling of architectural decisions.}, keywords = {architectural decisions, SAW}, isbn = {9781605589671}, doi = {10.1145/1833335.1833338}, author = {Marcin Nowak and Cesare Pautasso and Olaf Zimmermann} }