Reference Type: Conference Paper
Record Number: 8110
Author: Verlage, Martin
Year: 1996
Title: About views for modeling software processes in a role-specific manner
Conference Name: Joint proceedings of the second international software architecture workshop (ISAW-2) and international workshop on multiple perspectives in software development (Viewpoints '96) on SIGSOFT '96 workshops
Conference Location: San Francisco, California, USA
Publisher: ACM
Pages: 280-284
DOI: 10.1145/243327.243681
Place Published: 243681
Reference Type: Conference Paper
Record Number: 7983
Author: Wagner, Stefan and Deissenboeck, Florian
Year: 2008
Title: Abstractness, specificity, and complexity in software design
Conference Name: Proceedings of the 2nd international workshop on The role of abstraction in software engineering
Conference Location: Leipzig, Germany
Publisher: ACM
Pages: 35-42
DOI: 10.1145/1370164.1370173
Place Published: 1370173
Abstract: Abstraction is one of the fundamental concepts of software design. Consequently, the determination of an appropriate abstraction level for the multitude of artefacts that form a software system is an integral part of software engineering. However, the very nature of abstraction in software design and particularly its interrelation with equally important concepts like complexity, specificity or genericity are not fully understood today. As a step towards a better understanding of the trade-offs involved, this paper proposes a distinction of abstraction into two types that have different effects on the specificity and the complexity of artefacts. We discuss the roles of the two types of abstraction in software design and explain the interrelations between abstractness, specificity, and complexity. Furthermore, we illustrate the benefit of the proposed distinction with multiple examples and describe consequences of our findings for software design activities.
Reference Type: Journal Article
Record Number: 8704
Author: Christiaans, Henri and Almendra, Rita Assoreira
Year: 2010
Title: Accessing decision-making in software design
Journal: Design Studies
Volume: 31
Issue: 6
Pages: 641-662
Date: 11//
Short Title: Accessing decision-making in software design
ISSN: 0142-694X
DOI: https://doi.org/10.1016/j.destud.2010.09.005
Keywords: decision-making
design process
design behaviour
design cognition
Abstract: This paper presents an analysis of software design protocols as one of the contributions to the 2010 international workshop ‘Studying Professional Software Design’. The aim of the study described here is to analyse the design process of software designers and to compare the results with that of product designers, an area familiar to the authors. Decision-making is the main focus of this study. A descriptive model of decision-making, developed by the authors, has been used to analyse the protocols of the three software design teams. The results give insight in how software designers process their activities, on the influence of individual or team differences, and what the consequences for their outcomes are.
URL: https://www.sciencedirect.com/science/article/pii/S0142694X10000670
Reference Type: Journal Article
Record Number: 8549
Author: McDonnell, Janet
Year: 2012
Title: Accommodating disagreement: A study of effective design collaboration
Journal: Design Studies
Volume: 33
Issue: 1
Pages: 44-63
Date: 1//
Short Title: Accommodating disagreement: A study of effective design collaboration
ISSN: 0142-694X
DOI: https://doi.org/10.1016/j.destud.2011.05.003
Keywords: collaborative design
conceptual design
design negotiation
design processes
software design
Abstract: This paper reports an investigation into the verbal interaction between two experienced software designers developing initial ideas for a new software application. Paying attention to the conversational strategies that make manifest the ‘web of moves’ (Schön, 1985) that characterises expert design behaviour, the study focuses on how the designers keep the designing moving on productively despite uncertainties and ambiguities over the brief and disagreement over elements of the design itself. The study examines how tentativeness supports constructive collaboration and draws attention to the conversational strategies used to accommodate disagreement, in particular explicit reference to it and the use of technicalising terms to encapsulate, but acknowledge, differences about how design requirements should be realised. The work contributes to understanding the subtle conversational mechanisms that support effective design collaboration and highlights the need to acknowledge phenomena that serve collaboration itself.
URL: https://www.sciencedirect.com/science/article/pii/S0142694X1100038X
'File' Attachments: internal-pdf://0602239054/Accommodating disagreement A study of effectiv.pdf
Reference Type: Journal Article
Record Number: 8702
Author: Parnas, D. L. and Weiss, D. M.
Year: 1987
Title: Active design reviews: Principles and practices
Journal: Journal of Systems and Software
Volume: 7
Issue: 4
Pages: 259-265
Date: 12//
Short Title: Active design reviews: Principles and practices
ISSN: 0164-1212
DOI: https://doi.org/10.1016/0164-1212(87)90025-2
Abstract: Although many new software design techniques have emerged in the past 15 years, there have been few changes to the procedures for reviewing the designs produced using these techniques. This report describes an improved technique, based on the following ideas, for reviewing designs. 1. 1. The efforts of each reviewer should be focused on those aspects of the design that suit his or her experience and expertise. 2. 2. The characteristics of the reviewers needed should be explicitly specified before reviewers are selected. 3. 3. Reviewers should be asked to make positive assertions about the design rather than simply allowed to point out defects. 4. 4. The designers pose questions to the reviewers, rather than vice versa. These questions are posed on a set of questionnaires that requires careful study of some aspect of the design. 5. 5. Interaction between designers and reviewers occurs in small meetings involving two to four people rather than meetings of large groups. Illustrations of these ideas are drawn from the application of active design reviews to the Naval Research Laboratory's Software Cost Reduction project.
URL: https://www.sciencedirect.com/science/article/pii/0164121287900252
Reference Type: Conference Paper
Record Number: 7935
Author: Song, Yuanyuan, Rai, Devendra and Sullivan, Kevin
Year: 2008
Title: Adaptation architectures cross levels
Conference Name: Proceedings of the 2nd international workshop on Ultra-large-scale software-intensive systems
Conference Location: Leipzig, Germany
Publisher: ACM
Pages: 27-28
DOI: 10.1145/1370700.1370708
Place Published: 1370708
Abstract: To design ULS systems with the adaptive capacity they will need to be viable, requires that we broaden our understanding of software architecture. It is not just the software that must adapt, but the human-technical systems that produce and operate it. The traditional notion of an architecture as an abstract description of software artifacts and processes in an ontology of computational components, connections, and behavioral properties will not suffice. An alternative ontology based on decisions, decision-making tasks, agents, dependences among decisions, and the structure of such dependences appears to be worth exploring.
Reference Type: Conference Proceedings
Record Number: 9193
Author: Hadar, I. and Sherman, S.
Year of Conference: 2012
Title: Agile vs. plan-driven perceptions of software architecture
Conference Name: 2012 5th International Workshop on Co-operative and Human Aspects of Software Engineering (CHASE)
Pages: 50-55
Date: 2-2 June 2012
Short Title: Agile vs. plan-driven perceptions of software architecture
DOI: 10.1109/CHASE.2012.6223022
Keywords: software architecture
software prototyping
agile methodologies
agile philosophy
agile projects perceive architecture activities
complex system development projects
human-centric software development process
plan-driven perceptions
Computer architecture
Conferences
Documentation
Programming
Software
Testing
agile methodology
development methodologies
qualitative research
Abstract: The use of agile methodologies in industry has increased significantly over the past decade, promoting the value of human-centric software development process. This growing use derives the need to adjust agile methodologies to bigger, more complex system development projects, where architecture plays a significant role. However, many believe that an essential conflict exists between the requirement of minimalism in agile methods and the need for well-defined and documented architecture in complex systems. This paper presents an exploratory study aimed at understanding the software architecture related activities as perceived by architects with and without experience in agile methodologies. The findings indicate that while architects practicing only plan-driven methodologies perceive architecture activities as being related only to the first phases of the development process, architects involved in agile projects perceive architecture activities to be related to most or all phases of the development lifecycle. The latter perceptions are consistent with suggestions expressed in the literature regarding architecture in general and in agile methodologies in particular. Based on these findings we suggest that agile methods not only lead architects to adjust their behavior to the agile philosophy, but also improve architects' perceptions and practice of architecture in general.
'File' Atttachments: internal-pdf://1958886197/Agile vs. plan-driven perceptions of software.pdf
Reference Type: Journal Article
Record Number: 9371
Author: Abrahamsson, P., Babar, M. A. and Kruchten, P.
Year: 2010
Title: Agility and Architecture: Can They Coexist?
Journal: IEEE Software
Volume: 27
Issue: 2
Pages: 16-22
Short Title: Agility and Architecture: Can They Coexist?
ISSN: 0740-7459
DOI: 10.1109/MS.2010.36
Keywords: software architecture
software development management
agile development
design assumptions
design decisions
industrial software development practices
software intensive systems
Computer architecture
Computer industry
Feedback
Programming
Scalability
agile development methods
software engineering
Abstract: Agile development has significantly impacted industrial software development practices. However, despite its wide popularity, there's an increasing perplexity about software architecture's role and importance in agile approaches. Advocates of architecture's vital role in achieving quality goals for large software-intensive systems doubt the scalability of any development approach that doesn't pay sufficient attention to architecture. This article talks about software architecture being relevant to the basis of aspects such as communication among team members, inputs to subsequent design decisions, documenting design assumptions, and evaluating design alternatives. In a large software organization, implementing agile approaches isn't a straightforward adoption problem. Most likely, it will take several years to shorten the feedback cycles to benefit from the adaptability and earlier value-creation opportunities. Failure is a natural part of process improvement.
Reference Type: Journal Article
Record Number: 8589
Author: Sørby, Inger Dybdahl and Nytrø, Øystein
Year: 2010
Title: Analysis of communicative behaviour: Profiling roles and activities
Journal: International Journal of Medical Informatics
Volume: 79
Issue: 6
Pages: e144-e151
Date: 6//
Short Title: Analysis of communicative behaviour: Profiling roles and activities
ISSN: 1386-5056
DOI: https://doi.org/10.1016/j.ijmedinf.2009.08.003
Keywords: Structured observation
Communicative acts profiling
Requirements elicitation
Software design
Point of care clinical information systems
Abstract: Objectives In this paper we present a method for processing and presentation of data recorded through structured observation of clinicians’ information and communication activities. The activities are encoded as sequences of distinctive speech acts, and resulting profiles of communicative behaviour are visualized in radar graphs. Example profiles resulting from the analysis of three clinicians’ communicative behaviour during pre-rounds meetings and medication activities are given. Methods The communicative acts profiles are based on empirical data from an observational study performed at a Norwegian university hospital. A fifth-year medical student spent 20 days in two different hospital wards, following one physician at a time in daily, patient-centred work. The observer recorded the clinicians’ information and communication activities during several ward situations such as pre-rounds meetings, ward rounds, and patient discharge. The data was recorded by means of an observation form consisting of a mixture of codes and free-text fields. The recorded data was post-processed by associating each event with one predefined communicative act, and resulting profiles for three individual physicians in different situations have been created as radar graphs. Results/conclusion The approach is an efficient and useful means for studying clinicians’ information and communication patterns in hospital wards. The method can be used to illustrate variations among individual clinicians in similar situations and to compare profiles of different roles or hospital wards. Given proper validation, the approach may serve as an important tool to inform the design of new clinical information systems.
URL: https://www.sciencedirect.com/science/article/pii/S1386505609001270
Reference Type: Journal Article
Record Number: 8087
Author: J. Andrés Díaz Pace, Marcelo R. Campo
Year: 2001
Title: Analyzing the role of aspects in software design
Journal: Commun. ACM
Volume: 44
Issue: 10
Pages: 66-73
Short Title: Analyzing the role of aspects in software design
ISSN: 0001-0782
DOI: 10.1145/383845.383859
Legal Note: 383859
Abstract: This article analyzes the role of aspect-oriented programming in software design. There is a growing agreement in the software community about the limitations of object orientation to cope with the problem of building highly reusable, adaptable and extensible software systems. Aspect-oriented programming (AOP) is one of the most promising alternatives to improve object-oriented programming techniques. AOP aims at providing better means of addressing the well-known problem of separation of concerns by using specialized mechanisms to encapsulate concerns whose behavior crosscuts essential application functionality. The article discusses three basic approaches to addressing the process of separation of concerns namely a linguistic view, a pure object-oriented view and an architecture-oriented view. The authors have carried out a simulation case study to empirically compare both object-oriented solutions against aspect-oriented ones, and aspect technologies against each other. According to the authors, the central problem of aspect technologies is not just about crosscutting or separation of concerns, but it involves deeper research about how to understand a number of software parts as separated artifacts and then integrate some of them into a coherent system.
Reference Type: Conference Paper
Record Number: 8237
Author: Sharma, Tushar, Samarthyam, Ganesh and Suryanarayana, Girish
Year: 2015
Title: Applying Design Principles in Practice
Conference Name: Proceedings of the 8th India Software Engineering Conference
Conference Location: Bangalore, India
Publisher: ACM
Pages: 200-201
DOI: 10.1145/2723742.2723764
Place Published: 2723764
Abstract: It is widely recognized that the systematic application of relevant design principles plays a key role in taming the complexity involved in real-world software development. In our experience as consultant architects and trainers on software architecture and design in a corporate setting, we find that software engineers have a theoretical understanding of design principles but sorely lack knowledge about how to properly apply them to in real-world situations to achieve high-quality design. This half-day tutorial is geared towards bridging this gap. It first introduces fundamental design principles (viz. abstraction, encapsulation, modularization, and hierarchy) and describes how these can be applied using a set of corresponding enabling techniques. Next, it discusses how design smells can be viewed as violations of these enabling techniques, and explains how these design smells can be refactored via the application of relevant design principles. Finally, it highlights useful tools, processes, and practical techniques that support the application of design principles in real-world software projects.
Reference Type: Journal Article
Record Number: 8428
Author: Ramírez, Aurora, Romero, José Raúl and Ventura, Sebastián
Year: 2015
Title: An approach for the evolutionary discovery of software architectures
Journal: Information Sciences
Volume: 305
Pages: 234-255
Date: 6/1/
Short Title: An approach for the evolutionary discovery of software architectures
ISSN: 0020-0255
DOI: https://doi.org/10.1016/j.ins.2015.01.017
Keywords: Search based software engineering
Software architecture discovery
Evolutionary algorithms
Ranking aggregation fitness
Abstract: Software architectures constitute important analysis artefacts in software projects, as they reflect the main functional blocks of the software. They provide high-level analysis artefacts that are useful when architects need to analyse the structure of working systems. Normally, they do this process manually, supported by their prior experiences. Even so, the task can be very tedious when the actual design is unclear due to continuous uncontrolled modifications. Since the recent appearance of search based software engineering, multiple tasks in the area of software engineering have been formulated as complex search and optimisation problems, where evolutionary computation has found a new area of application. This paper explores the design of an evolutionary algorithm (EA) for the discovery of the underlying architecture of software systems. Important efforts have been directed towards the creation of a generic and human-oriented process. Hence, the selection of a comprehensible encoding, a fitness function inspired by accurate software design metrics, and a genetic operator simulating architectural transformations all represent important characteristics of the proposed approach. Finally, a complete parameter study and experimentation have been performed using real software systems, looking for a generic evolutionary approach to help software engineers towards their decision making process.
Notes: Development of an algorithm for decision support - no human behavior (just partly)
URL: https://www.sciencedirect.com/science/article/pii/S0020025515000559
Reference Type: Conference Proceedings
Record Number: 9200
Author: Bertolino, A., Inverardi, P., Muccini, H. and Rosetti, A.
Year of Conference: 1997
Title: An approach to integration testing based on architectural descriptions
Conference Name: Proceedings. Third IEEE International Conference on Engineering of Complex Computer Systems (Cat. No.97TB100168)
Pages: 77-84
Date: 8-12 Sep 1997
Short Title: An approach to integration testing based on architectural descriptions
DOI: 10.1109/ICECCS.1997.622299
Keywords: data flow graphs
program testing
software engineering
CHAM formalism
architectural descriptions
coverage strategy
formal architectural descriptions
integration testing
software architectures
unit testing
Computer architecture
Performance evaluation
Phase detection
Programming
Software architecture
Software maintenance
Software systems
Software testing
Synthetic aperture sonar
System testing
Abstract: Software architectures can play a role in improving the testing process of complex systems. In particular descriptions of the software architecture can be useful to drive integration testing, since they supply information about how the software is structured in parts and how those parts (are expected to) interact. We propose to use formal architectural descriptions to model the “interesting” behaviour of the system. This model is at a right level of abstraction to be used as a formal base on which integration test strategies can be devised. Starting from a formal description of the software architecture (given in the CHAM formalism), we first derive a graph of all the possible behaviours of the system in terms of the interactions between its components. This graph contains altogether the information we need for the planning of integration testing. On this comprehensive model, we then identify a suitable set of reduced graphs, each highlighting specific architectural properties of the system. These reduced graphs can be used for the generation of integration tests according to a coverage strategy, analogously to what happens with the control and data flow graphs in unit testing
Notes: Testing procedure - not about behavior
Reference Type: Conference Proceedings
Record Number: 8939
Author: Ameller, D., Collell, O. and Franch, X.
Year of Conference: 2012
Title: ArchiTech: Tool support for NFR-guided architectural decision-making
Conference Name: 2012 20th IEEE International Requirements Engineering Conference (RE)
Pages: 315-316
Date: 24-28 Sept. 2012
Short Title: ArchiTech: Tool support for NFR-guided architectural decision-making
ISBN: 1090-705X
DOI: 10.1109/RE.2012.6345821
Keywords: Computer architecture
Decision making
Information systems
Simulated annealing
Software
Software architecture
Non-functional requirement
architectural decision
computer-aided support system
Abstract: Researchers from requirements engineering and software architecture had emphasized the importance of NonFunctional Requirements and their influence in the architectural design process. To improve this process we have designed a tool, ArchiTech, which aims to support architects during the design process by suggesting alternative architectural decisions that can improve some types of non-functional requirements in a particular project, and facilitate the reuse of architectural knowledge shared between projects of the same architectural domain (e.g., web-based applications).
Notes: Tool
Reference Type: Conference Proceedings
Record Number: 9381
Author: Vickers, B.
Year of Conference: 2004
Title: Architecting a software architect
Conference Name: 2004 IEEE Aerospace Conference Proceedings (IEEE Cat. No.04TH8720)
Volume: 6
Pages: 4155-4161 Vol.6
Date: 6-13 March 2004
Short Title: Architecting a software architect
ISBN: 1095-323X
DOI: 10.1109/AERO.2004.1368238
Keywords: aerospace computing
aerospace engineering
educational courses
industrial training
on-the-job training
software architecture
Jet Propulsion Laboratory
aerospace software development
aerospace systems
educational program
software architect program
software engineering
software engineers
software systems
Educational programs
Programming
Propulsion
Software development management
Software standards
Standards development
Abstract: Software architecture is a relatively new software engineering discipline that has emerged as a response to the growing complexity of software systems and the problems these systems attempt to solve. Software is becoming the dominant component of most aerospace systems and it is necessary for the aerospace software development community to develop new practices, principles, and standards to manage this growing complexity. The Jet Propulsion Laboratory (JPL) has developed and implemented a year-long educational program designed to develop expertise in software architectures and to train future software architects. Now in its third year, the software architect program (SWAP) selects senior software engineers and then apprentices them as software architects. The objective of this paper is to describe the structure of the SWAP, the program's background, how the program has evolved, and the lessons learned from the implementation of this educational program.
Reference Type: Conference Paper
Record Number: 8043
Author: Zdun, Uwe, Avgeriou, Paris, Hentrich, Carsten and Dustdar, Schahram
Year: 2008
Title: Architecting as decision making with patterns and primitives
Conference Name: Proceedings of the 3rd international workshop on Sharing and reusing architectural knowledge
Conference Location: Leipzig, Germany
Publisher: ACM
Pages: 11-18
DOI: 10.1145/1370062.1370066
Place Published: 1370066
Abstract: The application of patterns is used as a foundation for many central design decisions in software architecture, but because of the informal nature of patterns, these design decisions are usually not precisely documented in the models. In our earlier work, we had proposed pattern primitives as a solution to precisely model the patterns in the corresponding architectural views. Building upon that approach, this paper introduces a pattern-based architecting process that aims at inexpensively documenting design decisions in the architectural views alongside the natural flow of design. The decisions that are made explicit, concern the selection of patterns, their variants and the corresponding primitives, as well as the resolution of inconsistencies between the architectural views. The approach is demonstrated in the domain of process-driven SOA for two architectural views: Component-and-Connector and Process Flow.
Notes: just framework, no research on behavior
Reference Type: Conference Paper
Record Number: 7974
Author: Haitzer, Thomas, Navarro, Elena and Zdun, Uwe
Year: 2015
Title: Architecting for decision making about code evolution
Conference Name: Proceedings of the 2015 European Conference on Software Architecture Workshops
Conference Location: Dubrovnik, Cavtat, Croatia
Publisher: ACM
Pages: 1-7
DOI: 10.1145/2797433.2797487
Place Published: 2797487
Abstract: During software evolution, it is important to evolve not only the source code, but also its architecture to prevent architecture drift and architecture erosion. This is a complex activity, especially for large software projects, with multiple development teams that might be located in different countries or on different continents. To ease this kind of evolution, we have developed a domain-specific language for making decisions about the evolution. It supports the definition of architectural changes based on multiple implementation tasks that can have temporal dependencies among each other. Then, by means of a model-to-model transformation, we automatically create a constraint model that we use to generate, by means of the Alloy model analyzer, the possible alternative decisions for executing the implementation tasks. The tight integration with architecture abstractions enables architects to automatically check the changes related to an implementation task in relation to the architecture description. This helps keeping architecture and code in sync, avoiding drift and erosion.
Notes: Tool to document - no behavior
Reference Type: Conference Paper
Record Number: 7975
Author: Shahin, Mojtaba
Year: 2015
Title: Architecting for DevOps and Continuous Deployment
Conference Name: Proceedings of the ASWEC 2015 24th Australasian Software Engineering Conference
Conference Location: Adelaide, SA, Australia
Publisher: ACM
Pages: 147-148
DOI: 10.1145/2811681.2824996
Place Published: 2824996
Abstract: Development and Operations (DevOps) in the context of Continuous Deployment (CD) have emerged as an attractive software development movement, which tries to establish a strong connection between development and operations teams. CD is defined as the ability to quickly put new releases into production. We believe that DevOps/CD brings new challenges for architects, which considerably impacts both on their (architectural) design decisions and their organizational responsibilities. We assert that there is an important and urgent need of sufficient research work to gain a deep understanding of how DevOps/CD adoption can influence architecting, architectural decision-making processes and their outcomes in an organization. This PhD research is aimed at understanding and addressing new challenges for designing architectures for supporting DevOps in the context of CD.
Reference Type: Journal Article
Record Number: 8586
Author: Folmer, Eelke and Bosch, Jan
Year: 2004
Title: Architecting for usability: a survey
Journal: Journal of Systems and Software
Volume: 70
Issue: 1–2
Pages: 61-78
Date: 2//
Short Title: Architecting for usability: a survey
ISSN: 0164-1212
DOI: https://doi.org/10.1016/S0164-1212(02)00159-0
Keywords: Software architecture
Usability
Design for quality attributes
Abstract: Over the years the software engineering community has increasingly realized the important role software architecture plays in fulfilling the quality requirements of a system. The quality attributes of a software system are, to a large extent determined by the system’s software architecture. In recent years, the software engineering community has developed various tools and techniques that allow for design for quality attributes, such as performance or maintainability, at the software architecture level. We believe this design approach can be applied not only to “traditional” quality attributes such as performance or maintainability but also to usability. This survey explores the feasibility of such a design approach. Current practice is surveyed from the perspective of a software architect. Are there any design methods that allow for design for usability at the architectural level? Are there any evaluation tools that allow assessment of architectures for their support of usability? What is usability? A framework is presented which visualizes these three research questions. Usability should drive design at all stages, but current usability engineering practice fails to fully achieve this goal. Our survey shows that there are no design techniques or assessment tools that allow for design for usability at the architectural level.
URL: https://www.sciencedirect.com/science/article/pii/S0164121202001590
Reference Type: Conference Paper
Record Number: 7881
Author: Cataldo, Marcelo and Herbsleb, James D.
Year: 2010
Title: Architecting in software ecosystems: interface translucence as an enabler for scalable collaboration
Conference Name: Proceedings of the Fourth European Conference on Software Architecture: Companion Volume
Conference Location: Copenhagen, Denmark
Publisher: ACM
Pages: 65-72
DOI: 10.1145/1842752.1842772
Place Published: 1842772
Abstract: Software ecosystems are emerging as an alternative approach for the development of complex software systems. The potentially transformational benefits of software ecosystems stems, primarily, from two basic principles that software ecosystems have embraced: transparency, a pillar in open source development, and modular system design. Despite the benefits associated with transparency and modularity, there are also important challenges that deserve attention. In this paper, we introduce the concept of interface translucence as an architectural mechanism that seeks to overcome challenges faced by transparency and modular system design. Interface translucence leverages the important technical role that interfaces play in software architectures to bridge the technical and socio-organizational dimensions of software development in ecosystems. We present an application of the concept of interface translucence in the context of architecting a software system as well as in the context of implementing it. We conclude with a discussion of future research work.
Notes: Not on behavior focused
Reference Type: Journal Article
Record Number: 9064
Author: Woods, E.
Year: 2015
Title: Architecting in the Gaps: A Metaphor for Architecture Work
Journal: IEEE Software
Volume: 32
Issue: 4
Pages: 33-35
Short Title: Architecting in the Gaps: A Metaphor for Architecture Work
ISSN: 0740-7459
DOI: 10.1109/MS.2015.98
Keywords: software architecture
software architect role
software development teams
system overall efficiency
Software development
software design
software engineering
Abstract: The metaphor "architecting in the gaps" can help software development teams clearly understand the software architect's role and how architecture contributes to a system's overall efficiency.
Reference Type: Journal Article
Record Number: 8582
Author: Ferrari, Remo N. and Madhavji, Nazim H.
Year: 2008
Title: Architecting-problems rooted in requirements
Journal: Information and Software Technology
Volume: 50
Issue: 1–2
Pages: 53-66
Date: 1//
Short Title: Architecting-problems rooted in requirements
ISSN: 0950-5849
DOI: https://doi.org/10.1016/j.infsof.2007.10.012
Keywords: Requirements engineering
Software architecture
Software quality
Process improvement
Empirical study
Abstract: Requirements permeate many parts of the software development process outside the requirements engineering (RE) process. It is thus important to determine whether software developers in these other areas of software development face any requirements-oriented (RO) problems in carrying out their tasks. Feedback so obtained can be invaluable for improving both requirements and RE technologies. In this paper, we describe an exploratory case study of requirements-oriented problems experienced by 16 architecting teams designing the same banking application. The study found that there were several different types of RO problems, of varying severity, which the architects faced in using the given requirements; those architects with RE background also faced RO problems; and about a third of all problems were RO problems. There was much concurrence of our findings with software-expert opinion from a large insurance company. There were also areas where there were relatively few RO problems. The paper also describes some implications of the findings for the RE field, particularly in the areas of: expression of quality requirements for different stakeholders; empirical studies on quality scenarios; tighter integration of RE and software architecting processes; and requirements to architecture mapping. There are opportunities for further research based on two emergent hypotheses which are also described in this paper.
Notes: student
URL: https://www.sciencedirect.com/science/article/pii/S095058490700119X
'File' Attachments: internal-pdf://0781279421/Architecting-problems rooted in requirements.pdf
Reference Type: Journal Article
Record Number: 8912
Author: Faber, R.
Year: 2010
Title: Architects as Service Providers
Journal: IEEE Software
Volume: 27
Issue: 2
Pages: 33-40
Short Title: Architects as Service Providers
ISSN: 0740-7459
DOI: 10.1109/MS.2010.37
Keywords: encoding
software architecture
software development management
agile development projects
application developers
architects
coding activities
service providers
system qualities
agile development
development teams
management
software engineering
software engineering process
software process models
Abstract: Architects provide those system qualities as values to their customers, communicating and implementing them in close cooperation with developers. In this way, architects also can and should play an important role in agile development projects. As a service to application developers, architects participate in coding activities and sustain the architecture's effectiveness throughout a project's lifetime.
Reference Type: Journal Article
Record Number: 9351
Author: Tamburri, D. A., Kazman, R. and Fahimi, H.
Year: 2016
Title: The Architect's Role in Community Shepherding
Journal: IEEE Software
Volume: 33
Issue: 6
Pages: 70-79
Short Title: The Architect's Role in Community Shepherding
ISSN: 0740-7459
DOI: 10.1109/MS.2016.144
Keywords: organisational aspects
software architecture
software quality
architecture component design
architecture qualities
community shepherding
organizational rewiring
project stakeholders
software architects
Computer architecture
Cultural differences
Professional aspects
architectural social debt
social debt management
software architecture shepherds
software communities
software community smells
software development
software engineering
software organizational structure
software social debt
Abstract: Software architects don't just design architecture components or champion architecture qualities; they often must guide and harmonize the entire community of project stakeholders. The community-shepherding aspects of the architect's role have been gaining attention, given the increasing importance of complex "organizational rewiring" scenarios such as DevOps, open source strategies, transitions to agile development, and corporate acquisitions. In these scenarios, architects would benefit by having effective models to align communities with architectures. This article discusses the "smells" indicating that a community isn't functioning efficiently, offers a set of mitigations for those smells, and provides an overview of community types.
Reference Type: Journal Article
Record Number: 8793
Author: Weinreich, R. and Groher, I.
Year: 2016
Title: The Architect's Role in Practice: From Decision Maker to Knowledge Manager?
Journal: IEEE Software
Volume: 33
Issue: 6
Pages: 63-69
Short Title: The Architect's Role in Practice: From Decision Maker to Knowledge Manager?
ISSN: 0740-7459
DOI: 10.1109/MS.2016.143
Keywords: personnel
software architecture
software development management
European software architects
US software architects
United States
advisor
coordinator
decision maker
knowledge manager
Computer architecture
Interviews
architectural decision making
industrial interview study
software architecture knowledge management
software development
software engineering
Abstract: Interviews with European and US software architects show not only a diverse practice of architecting but also the architect's transformation from primary decision maker to coordinator, advisor, and knowledge manager.
'File' Attachments: internal-pdf://2001325740/The Architect's Role in Practice From Decision.pdf
Reference Type: Conference Paper
Record Number: 7987
Author: Amorim, Simone da Silva, McGregor, John D., Almeida, Eduardo Santana de and Chavez, Christina von Flach G.
Year: 2017
Title: The Architect's Role in Software Ecosystems Health
Conference Name: Proceedings of the 2nd Workshop on Social, Human, and Economic Aspects of Software
Conference Location: Salvador, Brazil
Publisher: ACM
Pages: 1-4
DOI: 10.1145/3098322.3098324
Place Published: 3098324
Abstract: Software ecosystems have adopted many different strategies to achieve success and good health. The role of software architect is one of the main contributors to that success. Their activities are crucial for realizing the business strategy of their organization. Software ecosystems define multi-sided markets that require different strategies from a traditional two-sided market. The architectural practices in the multi-sided market must support the need for flexibility and rapid reaction. These new demands broaden our understanding of the software architect's role and the impact of their action on ecosystem structure. In particular the need to understand how to operate in a collaborative, cooperative environment to exploit competition. In this position paper, we discuss how software architect's actions influence the ecosystem health through their indicators: productivity, niche creation, and robustness.
Reference Type: Conference Paper
Record Number: 7890
Author: Bernini, Diego
Year: 2010
Title: Architectural abstractions for space and time awareness: the case of responsive environments
Conference Name: Proceedings of the Fourth European Conference on Software Architecture: Companion Volume
Conference Location: Copenhagen, Denmark
Publisher: ACM
Pages: 12-16
DOI: 10.1145/1842752.1842757
Place Published: 1842757
Abstract: Space and time are common high-level concepts in several classes of systems, however they seldom are first class concerns at the software architecture level. In particular they have a crucial role in responsive environments, i.e. technology-augmented ordinary environments which are able to sense and respond to their inhabitants. The paper presents the Ph.D. proposal of the author, which aims to define suitable architectural abstractions to manage space and time in responsive environments. The paper first outlines the problem, then presents the related work and finally describes the proposed solution approach, the expected results and their validation plan.
Notes: Framework instead of behavior
Reference Type: Conference Proceedings
Record Number: 7683
Author: Zimmermann, O., Wegmann, L., Koziolek, H. and Goldschmidt, T.
Year of Conference: 2015
Title: Architectural Decision Guidance Across Projects - Problem Space Modeling, Decision Backlog Management and Cloud Computing Knowledge
Conference Name: 2015 12th Working IEEE/IFIP Conference on Software Architecture
Pages: 85-94
Date: 4-8 May 2015
Short Title: Architectural Decision Guidance Across Projects - Problem Space Modeling, Decision Backlog Management and Cloud Computing Knowledge
DOI: 10.1109/WICSA.2015.29
Keywords: Unified Modeling Language
cloud computing
knowledge management
project management
software architecture
ADMentor
Sparx enterprise architect
UML model linkage
architectural decision guidance
architectural knowledge management
cloud application design decisions
cloud computing knowledge
control system architectures
decision backlog management
knowledge application
knowledge maintenance
meta-information
open AKM problems
problem space modeling
project-specific decision guidance
question-option-criteria diagram support
reusable knowledge
solution space management
workflow management decisions
Communities
Computational modeling
Documentation
Knowledge engineering
Software
UML
agile practices
architectural decisions
architectural synthesis
patterns
Abstract: Architectural Knowledge Management (AKM) has been a major topic in software architecture research since 2004. Open AKM problems include an effective, seamless transition from reusable knowledge found in patterns books and technology blogs to project-specific decision guidance and an efficient, practical approach to knowledge application and maintenance. We extended our previous work with concepts for problem space modeling, focusing on reusable knowledge, as well as solution space management, focusing on project-level decisions. We implemented these concepts in ADMentor, an extension of Sparx Enterprise Architect. AD Mentor features rapid problem space modeling, UML model linkage, question-option-criteria diagram support, meta-information for model tailoring, as well as decision backlog management. We validated ADMentor by modeling and applying 85 cloud application design decisions and 75 workflow management decisions, creating one problem and three sample solution spaces covering control system architectures, and obtaining user feedback on tool and model content.
Notes: Focus on tool development (even behavorial aspects in the introduction are interesting)
Reference Type: Conference Proceedings
Record Number: 9091
Author: Harrison, N. B., Gubler, E. and Skinner, D.
Year of Conference: 2016
Title: Architectural Decision-Making in Open-Source Systems -- Preliminary Observations
Conference Name: 2016 1st International Workshop on Decision Making in Software ARCHitecture (MARCH)
Pages: 16-21
Date: 5-5 April 2016
Short Title: Architectural Decision-Making in Open-Source Systems -- Preliminary Observations
DOI: 10.1109/MARCH.2016.7
Keywords: decision making
public domain software
software architecture
OSS projects
architectural decision-making
architectural decisions
architectural documentation
decision making process
open-source projects
open-source software projects
open-source systems
preliminary observations
unified architectural decisions
Architecture
Chaos
Computer architecture
Documentation
Open source software
Evolution
rchitectural Decisions
Abstract: Participants in open-source software projects are often geographically dispersed, and may work in different companies, and have different visions of the software. These present special challenges to creating unified architectural decisions. Yet open-source projects are often successful. We studied architectural documentation of forty-four open-source (OSS) projects, and found some evidence of how architectural decisions were made. It appears that the decision making process is not significantly different from that in traditional software projects. In particular, it was characterized by careful, intentional software design, with attention to quality attributes. In general, the architectural decisions tended to be controlled by a very small team or a single individual.
'File' Atttachments: internal-pdf://1410670074/Architectural Decision-Making in Open-Source S.pdf
Reference Type: Conference Paper
Record Number: 7945
Author: Prause, Christian R. and Durdik, Zoya
Year: 2012
Title: Architectural design and documentation: waste in agile development?
Conference Name: Proceedings of the International Conference on Software and System Process
Conference Location: Zurich, Switzerland
Publisher: IEEE Press
Pages: 130-134
Place Published: 2664380
Abstract: There is a problem with documentation and architectural design in agile projects. This is the result of interviews we have conducted with 37 software engineering experts from industry and academia. In our paper, we analyze the interview results and the origins of the revealed issues. We propose ways to integrate software design methodologies into agile development, and reputation mechanism to solve documentation problems. The contributions of this paper are (i) an investigation of expert opinions on design and documentation problems, (ii) an analysis of problem origins, and (iii) proposals for future improvements of agile processes.
Reference Type: Conference Proceedings
Record Number: 9556
Author: Prause, C. R. and Durdik, Z.
Year of Conference: 2012
Title: Architectural design and documentation: Waste in agile development?
Conference Name: 2012 International Conference on Software and System Process (ICSSP)
Pages: 130-134
Date: 2-3 June 2012
Short Title: Architectural design and documentation: Waste in agile development?
DOI: 10.1109/ICSSP.2012.6225956
Keywords: integrated software
project management
software architecture
software prototyping
system documentation
agile project development
architectural design
documentation
expert opinion
integrated software design methodology
software engineering
Industries
Interviews
Programming
Software quality
agile development
reputation
software design
Abstract: There is a problem with documentation and architectural design in agile projects. This is the result of interviews we have conducted with 37 software engineering experts from industry and academia. In our paper, we analyze the interview results and the origins of the revealed issues. We propose ways to integrate software design methodologies into agile development, and reputation mechanism to solve documentation problems. The contributions of this paper are (i) an investigation of expert opinions on design and documentation problems, (ii) an analysis of problem origins, and (iii) proposals for future improvements of agile processes.
'File' Atttachments: internal-pdf://3986397288/Architectural design and documentation Waste i.pdf
Reference Type: Conference Proceedings
Record Number: 9449
Author: Che, M. and Perry, D. E.
Year of Conference: 2014
Title: Architectural Design Decisions in Open Software Development: A Transition to Software Ecosystems
Conference Name: 2014 23rd Australian Software Engineering Conference
Pages: 58-61
Date: 7-10 April 2014
Short Title: Architectural Design Decisions in Open Software Development: A Transition to Software Ecosystems
ISBN: 1530-0803
DOI: 10.1109/ASWEC.2014.37
Keywords: knowledge management
public domain software
software architecture
ADD management
architectural design decisions
architectural knowledge management
architecture decision-making process
knowledge evaporation
open ecosystem community
open software development paradigm
software architecture research
software development process
software ecosystems
software engineering processes
Communities
Computer architecture
Ecosystems
Organizations
Software
architectural knowledge
open software development
Abstract: Managing architectural design decisions (ADDs) in software development process is an essential task for architectural knowledge management. As software ecosystems become a new software development paradigm in software engineering processes, it is important and necessary to capture and represent ADDs in open software development, and to evolve architectural knowledge with minimum knowledge evaporation in the open ecosystem community. So far, little work has been done on managing architectural decisions in software ecosystems in current software architecture research and practice. In this research position paper, we discuss the typical characteristics of software ecosystems which may influence architecture decision-making processes in software development, and identify the essential aspects that should be considered for managing ADDs in the context of software ecosystem. In addition, we discuss major challenges of managing ADDs for software ecosystems, and we also propose possible directions in research to solve the problems.
Reference Type: Conference Proceedings
Record Number: 9018
Author: Tyree, J.
Year of Conference: 2005
Title: Architectural Design Decisions Session Report
Conference Name: 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05)
Pages: 285-286
Date: 6-10 Nov. 2005
Short Title: Architectural Design Decisions Session Report
DOI: 10.1109/WICSA.2005.14
Keywords: Best practices
Computer architecture
Decision making
Knowledge management
Message service
Ontologies
Prototypes
Software architecture
Software prototyping
Time factors
Abstract: In the architectural design decisions session, we discussed tools, techniques, and processes with respect to architectural design decision-making. The importance of making good decisions was highlighted through an examination of several software architecture case studies.
Reference Type: Conference Proceedings
Record Number: 8821
Author: Lopes, S. V. F. and Junior, P. T. A.
Year of Conference: 2017
Title: Architectural Design Group Decision-Making in Agile Projects
Conference Name: 2017 IEEE International Conference on Software Architecture Workshops (ICSAW)
Pages: 210-215
Date: 5-7 April 2017
Short Title: Architectural Design Group Decision-Making in Agile Projects
DOI: 10.1109/ICSAW.2017.24
Keywords: decision making
software architecture
software prototyping
software quality
agile projects
architectural design group decision-making
design alternatives
quality attributes
Collaboration
Computer architecture
Conferences
Industries
Stakeholders
Scrum
agile
group decision-making
Abstract: Software architecture has many definitions. One widely accepted definition of software architecture is that it is a composition of a set of architectural design decisions. Hence, designing a software architecture is a decision-making process. Agile methods drastically changed the way of designing a software architecture. In projects using agile methods (e.g. Scrum), making architectural design decisions is not the responsibility of a single person, but rather the whole development team. Despite the popularity of such methods in the industry, little research exists on how to make these decisions from the perspective of a group effectively. Current techniques usually focus on the identification of quality attributes and design alternatives, not addressing the whole decision-making process. The quality of decisions directly reflects the quality of the software architecture. Therefore poor decisions lead to bad software architectures. In this paper, we discuss current research on group decision-making in software architecture and the proposal of a combination of concepts from two architecture definition methods into a single approach that can be used in agile projects and addresses the most critical concerns of group decision-making. This proposal is part of a master's research project.
Reference Type: Conference Proceedings
Record Number: 7630
Author: Soliman, M., Galster, M., Salama, A. R. and Riebisch, M.
Year of Conference: 2016
Title: Architectural Knowledge for Technology Decisions in Developer Communities: An Exploratory Study with StackOverflow
Conference Name: 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA)
Pages: 128-133
Date: 5-8 April 2016
Short Title: Architectural Knowledge for Technology Decisions in Developer Communities: An Exploratory Study with StackOverflow
DOI: 10.1109/WICSA.2016.13
Keywords: decision making
knowledge management
software architecture
technology management
StackOverflow
architecture knowledge management
software development community
software system
technology decision
Computer architecture
Media
Middleware
Programming
Telecommunications
Architecture knowledge
architecture design decisions
empirical study
knowledge capturing
Abstract: Architectural decisions have a big influence on basic properties of a software system, and are difficult to change once implemented. Technology decisions deserve special attention because they are one of the most frequently occurring types of architectural decisions. Architectural knowledge is crucial for good decisions. Current architecture knowledge management approaches try to support architects by offering a rich base of architectural solutions and design decision rules. However, they mostly depend on manually capturing and maintaining the architectural knowledge. In this paper, we utilize the most popular online software development community (StackOverflow) as a source of knowledge for technology decisions to support architecture knowledge management approaches with a more efficient methods for knowledge capturing. We conducted an exploratory study, and followed a qualitative and quantitative content analysis approach. We analysed the posts in this community to identify architecture-relevant and technology-related knowledge, and to classify the posts into different types for the purpose of knowledge structuring. In addition, we evaluated our findings through feedback from practitioners.
'File' Atttachments: internal-pdf://1264029490/Architectural Knowledge for Technology Decisio.pdf
Reference Type: Conference Proceedings
Record Number: 8894
Author: Bardram, J. E., Christensen, H. B. and Hansen, K. M.
Year of Conference: 2004
Title: Architectural prototyping: an approach for grounding architectural design and learning
Conference Name: Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004)
Pages: 15-24
Date: 12-15 June 2004
Short Title: Architectural prototyping: an approach for grounding architectural design and learning
DOI: 10.1109/WICSA.2004.1310686
Keywords: software architecture
software prototyping
architectural qualities
knowledge transfer
software architectural learning
software architectural prototyping
software architecture design
software system development
Buildings
Computer architecture
Grounding
Mars
Planets
Prototypes
Vehicles
Veins
Abstract: A major part of software architecture design is learning how specific architectural designs balance the concerns of stakeholders. We explore the notion of "architectural prototypes", correspondingly architectural prototyping, as a means of using executable prototypes to investigate stakeholders' concerns with respect to a system under development. An architectural prototype is primarily a learning and communication vehicle used to explore and experiment with alternative architectural styles, features, and patterns in order to balance different architectural qualities. The use of architectural prototypes in the development process is discussed, and we argue that such prototypes can play a role throughout the entire process. The use of architectural prototypes is illustrated by three distinct cases of creating software systems. We argue that architectural prototyping can provide key insights that may otherwise be difficult to obtain before a system is built. Furthermore, they define skeleton systems that serve as communication means and knowledge transfer among stakeholders.
Reference Type: Journal Article
Record Number: 8862
Author: Monroe, R. T., Kompanek, A., Melton, R. and Garlan, D.
Year: 1997
Title: Architectural styles, design patterns, and objects
Journal: IEEE Software
Volume: 14
Issue: 1
Pages: 43-52
Short Title: Architectural styles, design patterns, and objects
ISSN: 0740-7459
DOI: 10.1109/52.566427
Keywords: object-oriented methods
software reusability
architectural styles
design patterns
object-oriented design
software design
software reuse
system design knowledge
Design engineering
Knowledge engineering
Power engineering and energy
Process design
Protocols
Software architecture
Software systems
Systems engineering and theory
Terminology
Abstract: Architectural styles, object-oriented design and design patterns all hold promise as approaches that simplify software design and reuse by capturing and exploiting system design knowledge. This article explores the capabilities and roles of the various approaches, their strengths and their limitations
Reference Type: Conference Proceedings
Record Number: 8786
Author: Linden, T., Marsh, J. and Dove, D.
Year of Conference: 1986
Title: Architecture and early experience with planning for the ALV
Conference Name: Proceedings. 1986 IEEE International Conference on Robotics and Automation
Volume: 3
Pages: 2035-2042
Date: Apr 1986
Short Title: Architecture and early experience with planning for the ALV
DOI: 10.1109/ROBOT.1986.1087518
Keywords: Artificial intelligence
Computer architecture
Decision making
Land vehicles
Mobile robots
Real time systems
Remotely operated vehicles
Software algorithms
Software architecture
Technology planning
Abstract: This paper describes the software architecture and the initial algorithms that have proved to be effective for a real time robot planning system. The architecture is designed to incorporate planning technology from research on artificial intelligence while at the same time supporting the high performance decision making needed to control a fast-moving autonomous vehicle. The symbolic representation of the vehicle's plan is a key element in this architecture. Our initial algorithms use an especially efficient version of dynamic programming to find the best routes. The route is then translated into a symbolic plan. Replanning happens at several levels with the cost of replanning proportionate to the scope of the changes. This software is currently running in an environment which simulates the vehicle and perception systems, but it will be transferred to the DARPA Autonomous Land Vehicle built by Martin Marietta Denver Aerospace [Lowrie 86].
Notes: System development for algorithms
Reference Type: Conference Paper
Record Number: 8112
Author: Kruchten, Phillippe
Year: 1995
Title: Architecture blueprints—the “4+1” view model of software architecture
Conference Name: Tutorial proceedings on TRI-Ada '91: Ada's role in global markets: solutions for a changing complex world
Conference Location: Anaheim, California, USA
Publisher: ACM
Pages: 540-555
DOI: 10.1145/216591.216611
Place Published: 216611
Notes: Specific usage of one view - more tool
Reference Type: Conference Paper
Record Number: 8234
Author: LuperFoy, Susann, Loehr, Dan, Duff, David, Miller, Keith, Reeder, Florence and Harper, Lisa
Year: 1998
Title: An architecture for dialogue management, context tracking, and pragmatic adaptation in spoken dialogue systems
Conference Name: Proceedings of the 17th international conference on Computational linguistics - Volume 2
Conference Location: Montreal, Quebec, Canada
Publisher: Association for Computational Linguistics
Pages: 794-801
DOI: 10.3115/980432.980700
Place Published: 980700
Abstract: This paper details a software architecture for discourse processing in spoken dialogue systems, where the three component tasks of discourse processing are (1) Dialogue Management, (2) Context Tracking, and (3) Pragmatic Adaptation. We define these three component tasks and describe their roles in a complex, near-future scenario in which multiple humans interact with each other and with computers in multiple, simultaneous dialogue exchanges. This paper reports on the software modules that accomplish the three component tasks of discourse processing, and an architecture for the interaction among these modules and with other modules of the spoken dialogue system. A motivation of this work is reusable discourse processing software for integration with non-discourse modules in spoken dialogue systems. We document the use of this architecture and its components in several prototypes, and also discuss its potential application to spoken dialogue systems defined in the near-future scenario.
Notes: Example system - not relevant
Reference Type: Conference Paper
Record Number: 8106
Author: Sangwan, Raghvinder S. and Ros, Johannes
Year: 2008
Title: Architecture leadership and management in globally distributed software development
Conference Name: Proceedings of the first international workshop on Leadership and management in software architecture
Conference Location: Leipzig, Germany
Publisher: ACM
Pages: 17-22
DOI: 10.1145/1373307.1373313
Place Published: 1373313
Abstract: Globally distributed software development is inherently difficult. The fundamental problem is that communication, coordination and control mechanisms that operate so naturally and invisibly in co-located projects are not available or not as effective for distributed teams. Maintaining a shared up-to-date understanding of the system under design among distributed teams separated by physical, temporal, and cultural distances, therefore, becomes challenging. Under such circumstances the role of a project architect takes on an added significance. The architect must bridge the gaps that exist among the distributed teams especially those with interrelated tasks. Bridging gaps across teams requires proactive effort to create, among distributed teams, a shared level of understanding of the system context, its problem domain and an overarching vision of the system to be designed. We call this a shared project context. Establishing a shared project context goes a long way in creating architectural artifacts, understanding dependencies across software elements of the architecture and the allocation of their development to the distributed teams. Lack of such a context leads to the creation of multiple realities promoting ignorance, confusion and frustration, which subsequently undermine mutual trust and make inter-team communications less effective. This vicious cycle leads to dysfunctional teams, inefficiencies in the project and ultimately to poorly designed architectures.
Reference Type: Journal Article
Record Number: 9078
Author: Erdogmus, H.
Year: 2009
Title: Architecture Meets Agility
Journal: IEEE Software
Volume: 26
Issue: 5
Pages: 2-4
Short Title: Architecture Meets Agility
ISSN: 0740-7459
DOI: 10.1109/MS.2009.121
Keywords: Communication system control
Computer architecture
Costs
Documentation
Programming
Risk management
Software architecture
Stability
Vehicles
Yarn
agile software development
software engineering
Abstract: The concept of architecture has a major role to play in expanding the traditional scope of agile software development.
Reference Type: Conference Proceedings
Record Number: 9003
Author: Rostami, K., Stammel, J., Heinrich, R. and Reussner, R.
Year of Conference: 2015
Title: Architecture-based assessment and planning of change requests
Conference Name: 2015 11th International ACM SIGSOFT Conference on Quality of Software Architectures (QoSA)
Pages: 21-30
Date: 4-8 May 2015
Short Title: Architecture-based assessment and planning of change requests
DOI: 10.1145/2737182.2737198
Keywords: software architecture
software maintenance
software quality
KAMP
Karlsruhe architectural maintainability prediction
architecture decisions
architecture-based assessment
change propagation
change requests planning
context information
information systems
software development process
software engineering artefacts
software evolution
Analytical models
Computer architecture
Context
Context modeling
Software
Change Request
Impact Analysis
Abstract: Software architecture reflects important decisions on structure, used technology and resources. Architecture decisions influence to a large extent requirements on software quality. During software evolution change requests have to be implemented in a way that the software maintains its quality, as various potential implementations of a specific change request influence the quality properties differently. Software development processes involve various organisational and technical roles. Thus, for sound decision making it is important to understand the consequences of the decisions on the various software engineering artefacts (e.g. architecture, code, test cases, build, or deployments) when analysing the impact of a change request. However, existing approaches do not use sufficient architecture descriptions or are limited to software development without taking management tasks into account. In this paper, we present the tool-supported approach Karlsruhe Architectural Maintainability Prediction (KAMP) to analyse the change propagation caused by a change request in a software system based on the architecture model. Using context information annotated on the architecture KAMP enables project members to assess the effects of a change request on various technical and organisational artefacts and tasks during software life cycle. We evaluate KAMP in an empirical study, which showed that it improves scalability of analysis for information systems due to automatically generated task lists containing more complete and precise context annotations than manually created ones.
Notes: Development of tool (even interesting)
Reference Type: Conference Paper
Record Number: 8076
Author: Winbladh, Kristina, Alspaugh, Thomas A., Ziv, Hadar and Richardson, Debra
Year: 2006
Title: Architecture-based testing using goals and plans
Conference Name: Proceedings of the ISSTA 2006 workshop on Role of software architecture for testing and analysis
Conference Location: Portland, Maine
Publisher: ACM
Pages: 64-68
DOI: 10.1145/1147249.1147258
Place Published: 1147258
Abstract: This paper presents a specification-based testing approach that compares software specifications defined at different levels of abstraction, e.g. architecture and implementation, against specified system goals. We believe that a goal-driven approach that connects several development artifacts through verification of specified goals provides useful traceability links between those artifacts as well as an efficient testing technique. Our approach begins with a system goal graph in which high-level goals are step-wise refined into low-level functional goals that can be realized as code components. Each of the architectural components is associated with a plan that describes the component's functional behavior. Source code is annotated with goals from plans and events that achieve the goals; code is then precompiled to emit those goals and events at run time. Plans are automatically translated into a rule-based recognizer. An oracle is produced from the pre- and post-conditions associated with the plan's goals. When the program executes, the goals and events emitted are automatically tested against the plans and expected results. As components achieve their component-level plans, a higher-level plan recognizer, concerned with the integration of components, can verify correct system behavior over the interaction trace of a collection of lower-level plans. A small example illustrates the concept.
Notes: Not behavior
Reference Type: Conference Proceedings
Record Number: 9531
Author: Bosch, J.
Year of Conference: 2002
Title: Architecture-centric software engineering
Conference Name: Proceedings of the 24th International Conference on Software Engineering. ICSE 2002
Pages: 681-682
Date: 25-25 May 2002
Short Title: Architecture-centric software engineering
Keywords: software architecture
architecture-centric software engineering
bottom-up design
industrial cases
organizational viewpoint
process viewpoint
software architect role
software architecture assessment
software architecture design
software architecture evaluation
software artefact variability management
software components
software infrastructure
software product lines
technical perspective
top-down design
tutorial
Companies
Computer architecture
Computer industry
Permission
Programming
Reflection
Software engineering
Software quality
Software reusability
Abstract: Many software organizations are in the transition from project-centric to architecture-centric engineering of software. This tutorial addresses this development by providing an overview and in-depth treatment of the issues surrounding the architecture-centric engineering of software. Topics include software architecture design in the presence of existing components and infrastructure (top-down versus bottom-up), architecture evaluation and assessment, software artefact variability management, software product lines and the role of the software architect. These topics are, in addition to the technical perspective, discussed from process and organizational viewpoints. The topics are extensively illustrated by examples and experiences from many industrial cases. The tutorial presents our experiences, reflections and research results concerning architecture-centric software engineering.
Reference Type: Conference Proceedings
Record Number: 9321
Author: Miller, J. A. and Madhavji, N. H.
Year of Conference: 2007
Title: The Architecture-Requirements Interaction
Conference Name: 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07)
Pages: 24-24
Date: 6-9 Jan. 2007
Short Title: The Architecture-Requirements Interaction
DOI: 10.1109/WICSA.2007.40
Keywords: decision making
software architecture
systems analysis
architecture-requirements interaction
requirements decision-making
requirements engineering processes
Banking
Computer architecture
Computer science
Councils
Documentation
Sampling methods
Software tools
Abstract: The interaction between software architecture (SA) and requirements engineering (RE) processes is generating interest within the research community. We explored the role of SA documentation in requirements decision-making. This paper describes the findings from this study.
Reference Type: Conference Paper
Record Number: 8318
Author: Nafus, Dawn, Denman, Pete, Durham, Lenitra, Florez, Omar, Nachman, Lama, Sahay, Saurav, Savage, Evan, Sharma, Sangita, Strawn, Devon and Wouhaybi, Rita H.
Year: 2016
Title: As Simple as Possible but No Simpler: Creating Flexibility in Personal Informatics
Conference Name: Proceedings of the 2016 CHI Conference Extended Abstracts on Human Factors in Computing Systems
Conference Location: San Jose, California, USA
Publisher: ACM
Pages: 1445-1452
DOI: 10.1145/2851581.2892541
Place Published: 2892541
Abstract: Personal informatics has become a widespread practice, yet even expert users still face challenges in synthesizing and making sense of data. We suggest that these challenges are related to the complexities introduced once personal context is taken seriously. Through ethnographic research in the Quantified Self community, and an iterative software design process for a project called Data Sense, we offer early indications of what those challenges are, and describe how we approached solving them. We found that users had an easier time of working with data when they could use their own files, when temporal recurrences were surfaced and reminded them of other patterns, and when they could "grab" data directly from visualizations. However, the system did require more user learning than we anticipated.
Notes: System development
Reference Type: Conference Proceedings
Record Number: 9561
Author: Williams, A.
Year of Conference: 2003
Title: Assessing genre as rhetorical performance in software design
Conference Name: IEEE International Professional Communication Conference, 2003. IPCC 2003. Proceedings.
Pages: 6 pp.
Date: 21-24 Sept. 2003
Short Title: Assessing genre as rhetorical performance in software design
DOI: 10.1109/IPCC.2003.1245500
Keywords: outsourcing
software engineering
technical presentation
professional communication
rhetorical genre theory
rhetorical performance
software design
software development
technical communication
Collaborative software
Computer industry
Employment
Environmental management
Knowledge management
Process design
Shape
Abstract: When organizations outsource, seeking expert help from external companies or consultants, often those in consulting roles will introduce new texts in order to help manage workflows and transform known work processes, all with the intention of improving work practices. Such scenarios challenge a key claim in rhetorical genre studies which perceives genres as actions that respond to situations that recur. As much as genre studies' notion of recurrence helps us understand texts' ability to facilitate communication in recurring workplace processes, it offers little insight into theoretical or methodological approaches for professional or technical communicators who may want to address, in theory, research, or practice, how workers use texts that have been imposed upon them with the purpose of creating situations entirely new to them and with the expectation that the new situation will stabilize and recur over time (as what often happens when companies merge or outsource). This kind of abrupt introduction of texts into the workplace marks phenomena called "genre dumping." In this paper, rhetorical genre theory and its application to genre dumping in technical communication has been examined, which have two aims: (a) to discuss how genre studies gives shape to what we know about how texts work in professional settings where technical work happens; and (b) to assess issues that genre dumping presents to rhetorical genre theory.
Notes: not fitting, different topic
Reference Type: Conference Paper
Record Number: 7993
Author: Fresa, A., Nucera, G., Peciola, E. and Santucci, G.
Year: 2002
Title: Assessment of software architectures: a case study
Conference Name: Proceedings of the 14th international conference on Software engineering and knowledge engineering
Conference Location: Ischia, Italy
Publisher: ACM
Pages: 699-706
DOI: 10.1145/568760.568881
Place Published: 568881
Abstract: Producing high quality software is a very hard task. In the last years a big effort has been spent in devising techniques for estimating and/or measuring software properties. This ranges from forecasting, in a very early stage, the cost of software production to measuring several subcharacterics in order to assess the internal and external software quality. The role of predicting vs. measuring is gaining an increas ing relevance. As an example, the recently revised ISO 9126 standard [1] introduces the concept of Estimated (Predicted) Product Quality. It is clear that the sooner estimated figures are available, the better is possible to modify some design choices. Among all the aspects involved in software developing, a central role is played by the chosen software architecture. Estimating the quality characteristics of such architecture is a strategic activity that can drive several following design decision. In this paper we report the experience of an architectural assessment performed in Ericsson Lab Italy. The assessment was performed according to the framework presented by Jan Bosch in [2].
Notes: software architecture, but not the software architect itself
Reference Type: Conference Proceedings
Record Number: 8032
Author: Anvaari, Mohsen, S, Carl-Fredrik, #248, rensen and Zimmermann, Olaf
Year of Conference: 2016
Title: Associating architectural issues with quality attributes: a survey on expert agreement
Conference Name: Proccedings of the 10th European Conference on Software Architecture Workshops
Conference Location: Copenhagen, Denmark
Publisher: ACM
Pages: 1-7
Short Title: Associating architectural issues with quality attributes: a survey on expert agreement
DOI: 10.1145/2993412.3004847
Place Published: 3004847
Abstract: The architectural decision-making process is a complex and crucial endeavor in companies that develop large and distributed software systems. In this process, choosing and evaluating a solution for each architectural issue depends on decision drivers. The drivers are mainly the business factors (e.g., cost, time-to-market, etc.) and software quality attributes (e.g., security, adaptability, etc.). This paper examines whether there is agreement among experts in associating (i.e., relating) architectural issues with relevant quality attributes. We conducted a survey with 37 experts from several industrial domains who, at least once a month, make one or more architectural decisions. The results show there is poor agreement among these experts in identifying and scoring relevant quality attributes for each architectural issue. Poor agreement implies that the associating task is subjective, and that experts inconsistently define and interpret the relevance of various quality attributes for a given architectural issue that may hurt the sustainability of their architectural decisions. This paper suggests that practitioners in their decision-making should employ approaches that are more systematic. The approaches should be supported by methods and tools designed to diminish the biases of intuitive, experience-based approaches of associating architectural issues with quality attributes.
'File' Atttachments: internal-pdf://0397144427/Associating architectural issues with quality.pdf
Reference Type: Journal Article
Record Number: 8424
Author: Yang, Chen, Liang, Peng and Avgeriou, Paris
Year: 2018
Title: Assumptions and their management in software development: A systematic mapping study
Journal: Information and Software Technology
Volume: 94
Pages: 82-110
Date: 2//
Short Title: Assumptions and their management in software development: A systematic mapping study
ISSN: 0950-5849
DOI: https://doi.org/10.1016/j.infsof.2017.10.003
Keywords: Software development
Assumption
Assumptions management
Systematic mapping study
Abstract: AbstractContext Assumptions are constantly made by stakeholders or generated automatically in software development. However, there is a lack of systematic analysis and comprehensive understanding of the research and practice regarding assumptions and their management. Objective This work aims to explore and analyze the state of the art on assumptions and their management in software development. Method A systematic mapping study that covers the literature from January 2001 to December 2015 on assumptions and their management in software development. Results 134 studies were included: (1) The studies were published in 94 venues, which indicates that assumptions and their management has been a broad topic in software engineering. (2) Only 21 studies defined the assumption concept. (3) Most assumptions are made for or related to the artifacts in requirements engineering and software design, which demonstrates that assumptions should be managed from the early phases of software development. (4) Much effort has been put on Assumptions Making, Description, and Evaluation. Assumptions Maintenance received moderate attention. More than half of the tools identified aim to support assume-guarantee reasoning. For the other tools, most of them can be used to support Assumptions Description. (5) All the identified types of stakeholders are involved in Assumptions Making, followed by Evaluation and Description. Stakeholders involved in requirements engineering, software design, and software construction play a central role in assumptions management. (6) The main challenge is the difficulty of performing assumptions management activities in software development. (7) The identified assumptions management approaches, tools, benefits, and lessons learned are limited to their specific contexts (e.g., context of use). (8) Most of the negative consequences are caused by invalid or implicit assumptions. Conclusions This work provides researchers and practitioners with a reflection of the past fifteen years of research and practice on assumptions and their management in software development.
Notes: Literature review - excluded
URL: https://www.sciencedirect.com/science/article/pii/S0950584916304189
Reference Type: Conference Proceedings
Record Number: 9516
Author: Harrison, T. C. and Campbell, A. P.
Year of Conference: 2011
Title: Attempting to Understand the Progress of Software Architecture Decision-Making on Large Australian Defence Projects
Conference Name: 2011 Ninth Working IEEE/IFIP Conference on Software Architecture
Pages: 42-45
Date: 20-24 June 2011
Short Title: Attempting to Understand the Progress of Software Architecture Decision-Making on Large Australian Defence Projects
DOI: 10.1109/WICSA.2011.15
Keywords: computational complexity
decision theory
military computing
software architecture
software development management
Australian defence projects
architecture knowledge management
de facto decision theory
dynamic complexity
model of software system architecture decision making
ubiquitous normative decision theory
Biological system modeling
Computer architecture
Decision making
Humans
Modeling
Presses
USA Councils
agent-based modeling
decision-making
decisions
simulation
Abstract: This short paper details exploratory research into architecture knowledge management (AKM) at the very early stages of architectural design. This is a departure from traditional AKM, instead of a focus on decisions, the focus shifts to decision making. Additional decision theories and decision-making philosophies are needed to supplement the ubiquitous normative decision theory and its associated rational decision-making, which is assumed by AKM to-date as the de facto decision theory. Extensions to the agent model paradigm have been explored to portray the evolution of a set of architecture decisions according to multiple decision theories sourced from the human sciences of neurology, psychology, and sociology. Model Of Software System Architecture Decision-making (MOSSAD) uses agent-based modeling and simulation in an attempt to understand the dynamic complexity of interdependencies & interactions found in decision-to-decision relationships amongst hundreds of decisions and their asynchronous evolutions over time. If understanding is possible, this should lead to knowledge for legitimate progress of architectural decision-making. This in turn should lead to a new theory about the time period necessary for architectural design on a project.
Reference Type: Conference Paper
Record Number: 8005
Author: Cosmo, Roberto Di, Lienhardt, Michael, Treinen, Ralf, Zacchiroli, Stefano, Zwolakowski, Jakub, Eiche, Antoine and Agahi, Alexis
Year: 2014
Title: Automated synthesis and deployment of cloud applications
Conference Name: Proceedings of the 29th ACM/IEEE international conference on Automated software engineering
Conference Location: Vasteras, Sweden
Publisher: ACM
Pages: 211-222
DOI: 10.1145/2642937.2642980
Place Published: 2642980
Abstract: Complex networked applications are assembled by connecting software components distributed across multiple machines. Building and deploying such systems is a challenging problem which requires a significant amount of expertise: the system architect must ensure that all component dependencies are satisfied, avoid conflicting components, and add the right amount of component replicas to account for quality of service and fault-tolerance. In a cloud environment, one also needs to minimize the virtual resources provisioned upfront, to reduce the cost of operation. Once the full architecture is designed, it is necessary to correctly orchestrate the deployment phase, to ensure all components are started and connected in the right order.
We present a toolchain that automates the assembly and deployment of such complex distributed applications. Given as input a high-level specification of the desired system, the set of available components together with their requirements, and the maximal amount of virtual resources to be committed, it synthesizes the full architecture of the system, placing components in an optimal manner using the minimal number of available machines, and automatically deploys the complete system in a cloud environment.
Notes: building system instead of behavior
Reference Type: Conference Paper
Record Number: 7963
Author: Freeman, Peter
Year: 1973
Title: Automating software design
Conference Name: Proceedings of the 10th Design Automation Workshop
Publisher: IEEE Press
Pages: 62-67
Place Published: 804000
Abstract: The author summarizes the Workshop on Automating Software Design, held August 25, 1988, at the annual conference of the America Association for Artificial Intelligence. Sixty researchers from North America, Europe, and Japan met to discuss recent advances in knowledge-based software engineering. The interests of participants ranged from using AI techniques for managing large software projects to automatic programming.
Notes: just summary - exclude quality criteria
Reference Type: Journal Article
Record Number: 8523
Author: Suh, Nam P. and Do, Sung-Hee
Year: 2000
Title: Axiomatic Design of Software Systems
Journal: CIRP Annals
Volume: 49
Issue: 1
Pages: 95-100
Date: //
Short Title: Axiomatic Design of Software Systems
ISSN: 0007-8506
DOI: https://doi.org/10.1016/S0007-8506(07)62904-7
Keywords: software
axiomatic
design
Abstract: Software is playing an increasingly important role in manufacturing. Many manufacturing firms have problems with software development. Software engineering is still labor- intensive and prone to errors. Industrial firms are under pressure to shorten the lead-time required in introducing new software, increase the reliability of their software, and increase their market share. Software must be designed correctly from the beginning to end. With this end in mind, axiomatic design theory has been applied to software design. This paper presents how the combination of axiomatic design has been combined with the object-oriented programming method to create a large software system.
Notes: special implementation
URL: https://www.sciencedirect.com/science/article/pii/S0007850607629047
Reference Type: Journal Article
Record Number: 8450
Author: Martínez-Fernández, Silverio, Ayala, Claudia P., Franch, Xavier and Marques, Helena Martins
Year: 2017
Title: Benefits and drawbacks of software reference architectures: A case study
Journal: Information and Software Technology
Volume: 88
Pages: 37-52
Date: 8//
Short Title: Benefits and drawbacks of software reference architectures: A case study
ISSN: 0950-5849
DOI: https://doi.org/10.1016/j.infsof.2017.03.011
Keywords: Software architecture
Reference architecture
Empirical software engineering
Case study
Benefits
Drawbacks
Abstract: AbstractContext Software Reference Architectures (SRAs) play a fundamental role for organizations whose business greatly depends on the efficient development and maintenance of complex software applications. However, little is known about the real value and risks associated with SRAs in industrial practice. Objective To investigate the current industrial practice of SRAs in a single company from the perspective of different stakeholders. Method An exploratory case study that investigates the benefits and drawbacks perceived by relevant stakeholders in nine SRAs designed by a multinational software consulting company. Results The study shows the perceptions of different stakeholders regarding the benefits and drawbacks of SRAs (e.g., both SRA designers and users agree that they benefit from reduced development costs; on the contrary, only application builders strongly highlighted the extra learning curve as a drawback associated with mastering SRAs). Furthermore, some of the SRA benefits and drawbacks commonly highlighted in the literature were remarkably not mentioned as a benefit of SRAs (e.g., the use of best practices). Likewise, other aspects arose that are not usually discussed in the literature, such as higher time-to-market for applications when their dependencies on the SRA are managed inappropriately. Conclusions This study aims to help practitioners and researchers to better understand real SRAs projects and the contexts where these benefits and drawbacks appeared, as well as some SRA improvement strategies. This would contribute to strengthening the evidence regarding SRAs and support practitioners in making better informed decisions about the expected SRA benefits and drawbacks. Furthermore, we make available the instruments used in this study and the anonymized data gathered to motivate others to provide similar evidence to help mature SRA research and practice.
Notes: specific implementation examined, not the role of architects/designers
URL: https://www.sciencedirect.com/science/article/pii/S0950584916304438
Reference Type: Conference Proceedings
Record Number: 8867
Author: Ven, J. S. v. d. and Bosch, J.
Year of Conference: 2016
Title: Busting Software Architecture Beliefs: A Survey on Success Factors in Architecture Decision Making
Conference Name: 2016 42th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)
Pages: 42-49
Date: Aug. 31 2016-Sept. 2 2016
Short Title: Busting Software Architecture Beliefs: A Survey on Success Factors in Architecture Decision Making
ISBN: 2376-9505
DOI: 10.1109/SEAA.2016.35
Keywords: decision making
software architecture
software development management
statistical analysis
architectural decisions
architecture decision making
architecture documentation
project failure
project success
software architecture beliefs
software development
Companies
Computer architecture
Documentation
Software
Architectural Design Decisions
Software Processes
Survey
Abstract: As software development changes, also the myths and beliefs around it come and go. In different communities, different beliefs are kept, usually strengthened by success or failure stories. In this research, we study the beliefs surrounding software architecture. The beliefs range from the amount of effort needed for architecture documentation, to the size of the team or the persons responsible for making the architectural decisions. Most beliefs are based on the idea that the outcome of the project is highly dependent on the methods used during the design and development of software. We conducted a survey with 39 architects where we evaluated 54 architectural decisions. In this survey, we assessed the way in which decisions were made, the success factors of the decisions, as well as the properties of the projects. We conduct statistical analysis in order to evaluate some of the beliefs that currently exist in software development. We conclude that for most of the beliefs, no statistical evidence can be found, making these beliefs folklore for the tales, instead of useful guidelines for predicting projects success or failure.
'File' Atttachments: internal-pdf://1752083816/Busting Software Architecture Beliefs A Survey.pdf
Reference Type: Conference Paper
Record Number: 7894
Author: Tofan, Dan and Galster, Matthias
Year: 2014
Title: Capturing and Making Architectural Decisions: an Open Source Online Tool
Conference Name: Proceedings of the 2014 European Conference on Software Architecture Workshops
Conference Location: Vienna, Austria
Publisher: ACM
Pages: 1-4
DOI: 10.1145/2642803.2642836
Place Published: 2642836
Abstract: Architectural decisions (such as selecting patterns, technologies, or decomposing systems) and their rationale are a significant aspect of architectural knowledge. In this paper, we present a tool that helps architects capture tacit knowledge about architectural decisions. Furthermore, the tool helps architects and other stakeholders analyze decisions. Finally, the tool supports group decision making. The tool is based on theoretical and conceptual foundations created and evaluated in previous work. We developed the tool as a research tool in an academic environment, and we used the tool with industrial practitioners. The tool is web-based and available as an open source project. In this paper we highlight the underlying research contributions of the tool and show how research approaches and findings have been transferred into a working tool.
Notes: just a tool
Reference Type: Conference Paper
Record Number: 8069
Author: Monroe, Robert T.
Year: 1996
Title: Capturing design expertise in software architecture design environments
Conference Name: Joint proceedings of the second international software architecture workshop (ISAW-2) and international workshop on multiple perspectives in software development (Viewpoints '96) on SIGSOFT '96 workshops
Conference Location: San Francisco, California, USA
Publisher: ACM
Pages: 87-89
DOI: 10.1145/243327.243616
Place Published: 243616
Reference Type: Conference Proceedings
Record Number: 9343
Author: Balland, E., Consel, C., Kaoua, B. N' and Sauzéon, H.
Year of Conference: 2013
Title: A case for human-driven software development
Conference Name: 2013 35th International Conference on Software Engineering (ICSE)
Pages: 1229-1232
Date: 18-26 May 2013
Short Title: A case for human-driven software development
ISBN: 0270-5257
DOI: 10.1109/ICSE.2013.6606685
Keywords: human computer interaction
simulation languages
software engineering
user interfaces
HCI techniques
UI design language
human-computer interaction
human-driven software development methodology
software design
tool suite
user interface
user modeling language
Abstracts
Computational modeling
Context
Electronic mail
Programming
Software
Abstract: Human-Computer Interaction (HCI) plays a critical role in software systems, especially when targeting vulnerable individuals (e.g., assistive technologies). However, there exists a gap between well-tooled software development methodologies and HCI techniques, which are generally isolated from the development toolchain and require specific expertise. In this paper, we propose a human-driven software development methodology making User Interface (UI) a full-fledged dimension of software design. To make this methodology useful in practice, a UI design language and a user modeling language are integrated into a tool suite that guides the stakeholders during the development process, while ensuring the conformance between the UI design and its implementation.
Notes: about tools
Reference Type: Journal Article
Record Number: 8734
Author: Ockerman, Jennifer J. and Mitchell, Christine M.
Year: 1999
Title: Case-based design browser to support software reuse: theoretical structure and empirical evaluation
Journal: International Journal of Human-Computer Studies
Volume: 51
Issue: 5
Pages: 865-893
Date: 11//
Short Title: Case-based design browser to support software reuse: theoretical structure and empirical evaluation
ISSN: 1071-5819
DOI: https://doi.org/10.1006/ijhc.1999.0253
Abstract: With the proliferation of large, complex software systems, reuse of previous software designs and software artifacts, such as operation concepts, requirements, specifications and source code, is an important issue for both industry and government. Reuse has long been expected to result in substantial productivity and quality gains. To date, this expectation has been largely unmet. One reason may be the lack of tools to support software reuse. This research proposes the development of one such tool, the Design Browser. The Design Browser is a software architecture intended to support designers of large software systems in the early stages of software design, specifically conceptual design. The Design Browser is based on principles derived from cognitive engineering (e.g. Woods & Roth, 1988 a); naturalistic decision-making, particularly Klein's (1989) recognition-primed decision making model; and Kolodner's (1993) approach to case-based reasoning. As a proof-of-concept demonstration, the Design Browser was implemented for a NASA satellite control sub-system—the command management system (CMS). An empirical evaluation was conducted. It used the CMS Design Browser and participants who were part of the three user groups often involved in large-scale commercial software development. These groups are the software design team, the users and management. The results of the evaluation show that all three groups found the CMS Design Browser quite useful as demonstrated by actual performance and subjective rating.
Notes: tool development
URL: https://www.sciencedirect.com/science/article/pii/S1071581999902537
Reference Type: Conference Paper
Record Number: 8174
Author: Rugaber, Spencer
Year: 2006
Title: Cataloging design abstractions
Conference Name: Proceedings of the 2006 international workshop on Role of abstraction in software engineering
Conference Location: Shanghai, China
Publisher: ACM
Pages: 11-18
DOI: 10.1145/1137620.1137624
Place Published: 1137624
Abstract: Abstractions are the essence of software design, and various enterprises, such as design patterns, architectural styles, programming clichés and idioms, attempt to capture, organize and present them to software engineers. This position paper explores the possibility of mounting a more comprehensive effort to catalog abstractions. Related efforts such as the design of textual and electronic dictionaries, markup languages for software artifacts and ontologies of computer science topics are surveyed to inform the effort. A set of derivative questions is presented to explore the problem space.
Reference Type: Conference Proceedings
Record Number: 7552
Author: Me, G., Procaccianti, G. and Lago, P.
Year of Conference: 2017
Title: Challenges on the Relationship between Architectural Patterns and Quality Attributes
Conference Name: 2017 IEEE International Conference on Software Architecture (ICSA)
Pages: 141-144
Date: 3-7 April 2017
Short Title: Challenges on the Relationship between Architectural Patterns and Quality Attributes
DOI: 10.1109/ICSA.2017.19
Keywords: object-oriented methods
software architecture
software quality
architectural patterns
architectural tactics
design decisions
quality attributes
relationship patterns-QAs
Computer architecture
Context
Decision making
Fault tolerance
Security
Stakeholders
Architectural Pattern
Quality Attribute
Tactic
Abstract: Among other knowledge, software architecture design decision-making relies on the relation between architectural patterns and quality attributes (QAs). However, this relation is often implicit, or in the best case informally and partially defined. This leads to sub-optimal understanding of the impact of the architecture design on the desired level of quality. In this work, we aim to shed light on the relation patterns-QAs in the context of an important architectural mechanism, architectural tactics. Tactics are design decisions that address a specific quality attribute. In turn, the implementation of a tactic has a different impact according to the used pattern. From a previous systematic literature review, we selected and analyzed 13 primary studies with a clear focus on tactics. From our analysis, we extracted three overarching challenges on the relationship patterns-QAs that are yet unsolved by research. The essence of these challenges suggests that further research is needed to identify a clear and precise link between the functional nature of architectural elements and non-functional quality properties.
Notes: literature review
Reference Type: Conference Proceedings
Record Number: 8796
Author: Díaz, J., Pérez, J., Garbajosa, J. and Yagüe, A.
Year of Conference: 2013
Title: Change-Impact Driven Agile Architecting
Conference Name: 2013 46th Hawaii International Conference on System Sciences
Pages: 4780-4789
Date: 7-10 Jan. 2013
Short Title: Change-Impact Driven Agile Architecting
ISBN: 1530-1605
DOI: 10.1109/HICSS.2013.127
Keywords: Computer architecture
Decision making
Documentation
Planning
Software
Software architecture
Variable speed drives
Agile Architecting
Agile Software Development
Architectural Knowledge
Change Impact Analysis
Abstract: Software architecture is a key factor to scale up Agile Software Development (ASD) in large software-intensive systems. Currently, software architectures are more often approached through mechanisms that enable to incrementally design and evolve software architectures (aka. agile architecting). Agile architecting should be a light-weight decision-making process, which could be achieved by providing knowledge to assist agile architects in reasoning about changes. This paper presents the novel solution of using change-impact knowledge as the main driver for agile architecting. The solution consists of a Change Impact Analysis technique and a set of models to assist agile architects in the change (decision-making) process by retrieving the change-impact architectural knowledge resulting from adding or changing features iteration after iteration. To validate our approach, we have put our solution into practice by running a project of a metering management system in electric power networks in an i-smart software factory.
Reference Type: Journal Article
Record Number: 9111
Author: Spinellis, D.
Year: 2016
Title: The Changing Role of the Software Architect
Journal: IEEE Software
Volume: 33
Issue: 6
Pages: 4-6
Short Title: The Changing Role of the Software Architect
ISSN: 0740-7459
DOI: 10.1109/MS.2016.133
Keywords: software architecture
software quality
software reusability
quality elements
software agility
software architect
software development
software industry
software reuse
software testability
software engineering
Abstract: Being a good software architect has never been easy. Changes in the software industry are making the job even more challenging. The key drivers are the rising role of software in systems and their operation; more emphasis on reuse, agility, and testability during software development; and several quality elements increasingly affected by architectural choices.
Reference Type: Conference Paper
Record Number: 8105
Author: Melleg\, Niklas, \#229, rd and Staron, Miroslaw
Year: 2010
Title: Characterizing model usage in embedded software engineering: a case study
Conference Name: Proceedings of the Fourth European Conference on Software Architecture: Companion Volume
Conference Location: Copenhagen, Denmark
Publisher: ACM
Pages: 245-252
DOI: 10.1145/1842752.1842800
Place Published: 1842800
Abstract: During development of complex products, such as automotive software, models -- formal and informal -- are used throughout the development process by different roles and for different purposes -- as requirement, as implementation or as documentation. This paper reports results from a case-study of the development of embedded software at a Swedish vehicle manufacturer. We investigated use of models from high-level product planning to low-level requirements specifications for software components. Furthermore, we investigated the distribution of effort among the models, requirements and other artefacts. The goal was to explore the spectrum of modelling techniques, methods and languages used and to establish a baseline for comparison with the state-of-the-art and other companies. The results show that there exist at least 8 different modelling notations. Moreover, we found that the majority of effort was spent on behaviour models, while static models -- such as high-level design and requirements -- were considered most important.
Notes: Model usage not in focus
Reference Type: Conference Proceedings
Record Number: 8964
Author: Paulisch, F. and Zimmerer, P.
Year of Conference: 2016
Title: Collaboration of Software Architect and Test Architect Helps to Systematically Bridge Product Lifecycle Gap
Conference Name: 2016 IEEE/ACM 1st International Workshop on Bringing Architectural Design Thinking Into Developers' Daily Activities (BRIDGE)
Pages: 11-13
Date: 17-17 May 2016
Short Title: Collaboration of Software Architect and Test Architect Helps to Systematically Bridge Product Lifecycle Gap
DOI: 10.1109/Bridge.2016.011
Keywords: computer science education
life cycle costing
on-the-job training
program testing
software architecture
software development management
BRIDGE workshop
high-level design
joint venture
low-level implementation
organization-wide qualification and training program
product lifecycle gap
software architect
test architect
Collaboration
Computer architecture
Conferences
Qualifications
Requirements engineering
Software
Testing
Software architecture
software architect
software testing
test architect
software engineering
education
Abstract: In this position paper for the BRIDGE workshop we describe an approach used at Siemens to address the gap between high-level design and low-level implementation. This approach is a key part of our organization-wide qualification and training program for software-related roles. These roles include both a “software architect” and a “test architect” and these roles (as well as other roles) must collaborate closely as a kind of “joint venture”.
Reference Type: Conference Proceedings
Record Number: 9082
Author: DeFranco-Tommarello, J. and Deek, F. P.
Year of Conference: 2002
Title: Collaborative software development: a discussion of problem solving models and groupware technologies
Conference Name: Proceedings of the 35th Annual Hawaii International Conference on System Sciences
Pages: 568-577
Date: 7-10 Jan. 2002
Short Title: Collaborative software development: a discussion of problem solving models and groupware technologies
DOI: 10.1109/HICSS.2002.993937
Keywords: groupware
human factors
human resource management
professional aspects
software development management
software tools
collaboration models
collaborative problem solving
collaborative problem solving techniques
collaborative software development
collaborative structures
decision making
group cognition
groupware technologies
groupware theory
problem solving
problem solving model
problem solving models
psychology
software design
software development domain
software development process
teamwork
Collaborative software
Collaborative tools
Collaborative work
Heart
Paper technology
Problem-solving
Programming
Abstract: Teamwork is always challenging. Adding the complication of problem solving and software design only amplifies this challenge. The challenges of developing software as a team can be reduced by using groupware to coordinate and communicate the intricate details involved in the process. The study sets out to determine if in fact there are tools available to assist in the collaborative problem solving and software development process. It must be understood at the outset that problem solving is at the heart of software development. Without amplifying the collaborative problem solving steps required for developing an effective and efficient solution, a much less then accurate solution will result. The paper provides a review of collaborative problem solving techniques and groupware in the software development domain, covering both methodology and technology. There are three areas of focus in the paper: collaborative problem solving and decision making; groupware theory and tools; and group cognition and psychology. The review is followed by analysis of the collaboration models and tools as well as their potential impact on software development. The paper ends with a discussion of future work that will include developing a tool which incorporates a problem solving model and collaborative structures for the software development domain.
Reference Type: Conference Paper
Record Number: 8098
Author: Maras, Josip, Ljiljana, #352, eri, #263, Maja, #352, tula, Uki, Nenad and #263
Year: 2015
Title: Combining education, industry, and empirical studies in Software Engineering: an experience report
Conference Name: Proceedings of the 2015 European Conference on Software Architecture Workshops
Conference Location: Dubrovnik, Cavtat, Croatia
Publisher: ACM
Pages: 1-5
DOI: 10.1145/2797433.2797472
Place Published: 2797472
Abstract: Software industry is one of the most pervasive industries today and has a great impact on our day-to-day lives. At the same time, the quality of software systems is directly related to the quality of software engineers -- it is the responsibility of software engineering educators to provide students with relevant skills needed for the development of high-quality software systems. Amongst the cornerstones of developing high-quality software systems are industry-relevant experience and the ability to quantify certain aspects of the software development process. In this paper, we describe our experience of performing an empirical study on students, during a software engineering course, on an industry-relevant topic taught by an industry expert -- the understandability of models in model-driven engineering.
Notes: on students - exclusion
Reference Type: Journal Article
Record Number: 8062
Author: Ocker, Rosalie J. and Fjermestad, Jerry
Year: 2008
Title: Communication differences in virtual design teams: findings from a multi-method analysis of high and low performing experimental teams
Journal: SIGMIS Database
Volume: 39
Issue: 1
Pages: 51-67
Short Title: Communication differences in virtual design teams: findings from a multi-method analysis of high and low performing experimental teams
ISSN: 0095-0033
DOI: 10.1145/1341971.1341977
Legal Note: 1341977
Abstract: This multi-method study distinguishes between four high performing and four low performing fully distributed virtual design teams, through an analysis of their asynchronous communication. Results indicate that these teams were similar in terms of the number of messages exchanged, the amount of communication devoted to aspects of design, and the amount and proportion of communication spent on team coordination, supportive commentary, and "other" topics. However, high performing teams were more verbose---they communicated more words. They also spent less time in brainstorming activities. Rather, high performing teams engaged in more critical commentary and active debate, compared to low performing teams. High performing teams conducted more in-depth discussions in the form of argumentation, as ideas were developed through an interactive debate of the pros and cons of issues. This debate resulted in the need for summaries, which served a dual role as they became intermediate steps in the process of writing the report deliverable
Notes: students
'File' Attachments: internal-pdf://2982054805/Communication differences in virtual design te.pdf
Reference Type: Conference Proceedings
Record Number: 9048
Author: Budgen, D. and Pohthong, A.
Year of Conference: 1999
Title: Component reuse in software design: an observational study
Conference Name: Software Technology and Engineering Practice, 1999. STEP '99. Proceedings
Pages: 63-72
Date: 1999
Short Title: Component reuse in software design: an observational study
DOI: 10.1109/STEP.1999.798480
Keywords: Unix
software reusability
subroutines
system documentation
Unix processes
component documentation
component-based software development
goodness of fit
opportunistic strategy
software component reuse
software design
software engineering research
Component architectures
Computer science
Decision making
Design methodology
Documentation
Electrical capacitance tomography
Electronic switching systems
Process design
Programming
Abstract: The adoption of a component-based strategy for software development is likely to require a major paradigm shift in design practices in order to incorporate such factors as reuse and goodness of fit. This paper describes an empirical study that we have performed to investigate how designers' strategies evolve when using Unix processes as components. Our results suggest that, as they gain confidence, designers adopt a more strongly opportunistic strategy, and we particularly identify the importance of having access to component documentation when making design decisions, regardless of a designer's detailed solution strategy. We conclude by identifying some of the attributes that will be needed in any tools and environments that are intended to support component-based software development, and discuss the role that studies of this type can play in software engineering research
Notes: students
'File' Atttachments: internal-pdf://4163133649/Component reuse in software design an observat.pdf
Reference Type: Journal Article
Record Number: 8190
Author: Riehle, Dirk
Year: 1997
Title: Composite design patterns
Journal: SIGPLAN Not.
Volume: 32
Issue: 10
Pages: 218-228
Short Title: Composite design patterns
ISSN: 0362-1340
DOI: 10.1145/263700.263739
Legal Note: 263739
Abstract: Software design patterns are the core abstractions from successful recurring problem solutions in software design. Composite design patterns are the core abstractions from successful recurring frameworks. A composite design pattern is a pattern that is best described as the composition of further patterns the integration of which shows a synergy that makes the composition more than just the sum of its parts. This paper presents examples of composite patterns, discusses a role-based analysis and composition technique, and demonstrates that composite patterns extend the pattern idea from single problem solutions to object-oriented frameworks.
Notes: just example of patterns
Reference Type: Conference Proceedings
Record Number: 9208
Author: Keller, R. K. and Schauer, R.
Year of Conference: 1998
Title: A compositional approach to software design
Conference Name: Proceedings of the Thirty-First Hawaii International Conference on System Sciences
Volume: 5
Pages: 386-395 vol.5
Date: 6-9 Jan 1998
Short Title: A compositional approach to software design
DOI: 10.1109/HICSS.1998.648334
Keywords: object-oriented methods
software quality
software reusability
subroutines
changeable software architectures
component software models
component-based software development
compositional approach
concreteness
design components
design composition
design environment
design process
formal expertise
independently evolving building blocks
informal expertise
object-oriented design
prefabricated configurable building blocks
reified design patterns
reusable software architectures
scope
software design
specificity
systems implementation
Application software
Assembly
Councils
Electronic mail
Object oriented modeling
Process design
Programming profession
Software engineering
Abstract: Component software models promote software development by the assembly of prefabricated, configurable and independently evolving building blocks. Although effective for systems implementation, this approach is inadequate for the creation of reusable and changeable software architectures. Design patterns address these shortcomings of component-based software development by capturing the formal and informal expertise that is necessary for a reusable solution to a recurring problem. However, so far, there is no methodical approach to providing these building blocks in a tangible, flexible and composable form. To address this limitation, we introduce design components, which are reified design patterns fitted for component software. We detail the activities of design composition and illustrate them as a process within a 3D space of concreteness, specificity and scope. To evaluate design components and put them into perspective, we discuss their contribution in respect to important software quality properties
Notes: just example - not skill
Reference Type: Conference Paper
Record Number: 8072
Author: Popovic, Kresimir and Hocenski, Zeljko
Year: 2009
Title: Conflict management
Conference Name: Proceedings of the 2009 ICSE Workshop on Leadership and Management in Software Architecture
Publisher: IEEE Computer Society
Pages: 15-19
DOI: 10.1109/lmsa.2009.5074859
Place Published: 1564683
Abstract: Project managers must learn to recognize the signs and symptoms of disruptive conflict. Such signs would include poor communication among team members, a lack of openness, a lack of respect, unclear requirements, change between managers and employees, broken boundaries of social norms or groups, different backgrounds (educational, economic, cultural, political, etc.). The worst cases can disintegrate into personal stress, burnout, and workplace travesties. Once conflict has reached this stage, it will require a large amount of management time in order to deal with it. This will cause an additional decrease in productivity and efficiency rates, along with the accompanying added costs, risks, and duration delays. If left unmanaged, this type of conflict can even lead to employee sabotage and sometimes workplace violence. This position paper provides insight into qualities and social role that project manager as mediator and leader must possess because sometimes team members can't resolve conflicts collectively.
Notes: focused on project managers to help teams
Reference Type: Conference Proceedings
Record Number: 8904
Author: Levendel, I.
Year of Conference: 2006
Title: The consequences of variability in software
Conference Name: 12th IEEE International On-Line Testing Symposium (IOLTS'06)
Pages: 1 pp.
Date: 10-12 July 2006
Short Title: The consequences of variability in software
ISBN: 1942-9398
DOI: 10.1109/IOLTS.2006.60
Keywords: program testing
software metrics
software reliability
model analysis
software defects
software development
software instability
software model
software production
software variance
Analysis of variance
Application software
Computer industry
Human factors
Production
Programming
Software architecture
Software development management
Software testing
Abstract: Summary form only given. Contrary to many other industrial processes, software production is characterized by an unusually high variance. This directly results from the significant role of the human factor in all the phases of its realization, and this will likely remain the case for a long time to come. In order to set the record straight, this presentation first analyzes various aspects of software metrics that demonstrate the heterogeneous nature of software and the variance in the software production process. We propose a new software model susceptible to acknowledge software variance and take advantage of it for managing the software development process. This model allows the identification of areas of software instability that are caused by the concentration of software defects. Two major applications are derived from the model analysis. First, the model provides a method for evaluating the "goodness" of the software architecture. The model can also be used to balance the budgeting of the testing effort among the various software functionalities and their interactions. We also discuss potential applications of the recognition of software variability for developing reactive real-time methods for improving software dependability
Notes: does not focus on behavior
Reference Type: Conference Proceedings
Record Number: 9376
Author: Nakagawa, E. Y., Guessi, M., Maldonado, J. C., Feitosa, D. and Oquendo, F.
Year of Conference: 2014
Title: Consolidating a Process for the Design, Representation, and Evaluation of Reference Architectures
Conference Name: 2014 IEEE/IFIP Conference on Software Architecture
Pages: 143-152
Date: 7-11 April 2014
Short Title: Consolidating a Process for the Design, Representation, and Evaluation of Reference Architectures
DOI: 10.1109/WICSA.2014.25
Keywords: control engineering computing
robots
software architecture
ProSA-RA process
ad-hoc approach
design expertise
reference architecture design
reference architecture evaluation
reference architecture representation
robotics domain
software system development
software system evolution
software system standardization
specific domain understanding
Architecture
Computer architecture
Ontologies
Software systems
Unified modeling language
Reference architecture
reference architecture model
robotics
Abstract: Reference architectures have emerged as a special type of software architecture that achieves well-recognized understanding of specific domains, promoting reuse of design expertise and facilitating the development, standardization, and evolution of software systems. Because of their advantages, several reference architectures have been proposed and have been also successfully used, including in the industry. However, the most of these architectures are still built using an ad-hoc approach, lacking of a systematization to their construction. If existing, these approaches could motivate and promote the building of new architectures and also support evolution of existing ones. In this scenario, the main contribution of this paper is to present the evolution of ProSA-RA, a process that systematizes the design, representation, and evaluation of reference architectures. ProSA-RA has been already applied in the establishment of reference architectures for different domains and this experience was used to evolve our process. In this paper, we illustrate an application of ProSA-RA in the robotics domain. Results achieved through the use of ProSA-RA have showed us that it is a viable, efficient process and, as a consequence, it could contribute to the reuse of knowledge in several applications domains, by promoting the establishment of new reference architectures.
Notes: focus on reference architecture, not behavior
Reference Type: Conference Proceedings
Record Number: 8825
Author: Berg, M. v. d., Tang, A. and Farenhorst, R.
Year of Conference: 2009
Title: A Constraint-Oriented Approach to Software Architecture Design
Conference Name: 2009 Ninth International Conference on Quality Software
Pages: 396-405
Date: 24-25 Aug. 2009
Short Title: A Constraint-Oriented Approach to Software Architecture Design
ISBN: 1550-6002
DOI: 10.1109/QSIC.2009.59
Keywords: software architecture
constraint-oriented approach
design constraint characteristics
software architecture design
Australia
Computer architecture
Connectors
Decision making
Process design
Software design
Software engineering
Software quality
Space technology
Constraints
Design
Abstract: Software architecture design constraints exist and they bound the solution space in some ways. However,in research and practice little is known about the characteristics of these constraints and how they influence decision making. In this paper we report our findings on design constraint characteristics based on case studies in two countries. We discovered how constraints typically manifest themselves in the architecture design process, and how they impact the architectural decisions taken. Based on these insights we suggest a number of implications and strategies to support architectural design.
Reference Type: Journal Article
Record Number: 8540
Author: Ramiller, Neil C.
Year: 2007
Title: Constructing safety: System designs, system effects, and the play of heterogeneous interests in a behavioral health care setting
Journal: International Journal of Medical Informatics
Volume: 76, Supplement 1
Pages: S196-S204
Date: 6//
Short Title: Constructing safety: System designs, system effects, and the play of heterogeneous interests in a behavioral health care setting
ISSN: 1386-5056
DOI: https://doi.org/10.1016/j.ijmedinf.2006.05.025
Keywords: Information systems
Software design
Safety
Behavioral medicine
Abstract: Objective This paper considers the utility of actor-network theory as a basis for uncovering the mutual interdependencies between system design and system impact in an evolving project, and for exploring the implications that these interdependencies hold for the production of safety in behavioral health care. Methods Drawing on a field study of a systems project in a human-services firm, the paper applies key concepts from actor-network theory in the analysis of a design crisis that emerged during the course of the project. Results Actor-network theory provides a compelling framework in this situation for identifying the diverse interests involved, revealing their complex interactions, and illuminating the importance of the emerging system as an organizational actor in its own right. Conclusion Actor-network theory shows promise for use in other analyses concerned with the role of information technology in the construction of safety in health care settings.
Notes: Framework development
URL: https://www.sciencedirect.com/science/article/pii/S1386505606001468
Reference Type: Conference Proceedings
Record Number: 9060
Author: Kassab, M.
Year of Conference: 2017
Title: A Contemporary View on Software Quality Requirements in Agile and Software Architecture Practices
Conference Name: 2017 IEEE 25th International Requirements Engineering Conference Workshops (REW)
Pages: 260-267
Date: 4-8 Sept. 2017
Short Title: A Contemporary View on Software Quality Requirements in Agile and Software Architecture Practices
DOI: 10.1109/REW.2017.60
Keywords: software architecture
software product lines
software prototyping
software quality
agile architecture
software architectural decisions
software products
software quality requirements
Computer architecture
Industries
Security
Software systems
Agile
Software Industrial Practices
Abstract: Quality can be a very elusive concept that can be approached from a number of perspectives dependent on once take and interest. Evidence that relates software process to quality is often anecdotal or, when data is presented, it is to some extent contradictory or clashes with opposite evidence coming from different samples. Also, the influence of quality on software architecture is mostly described in a qualitative fashion based on architects expertise. Little contemporary data exists to document the actual perception from software experts in industry towards quality requirements for software products. Therefore, a comprehensive survey of software professionals was conducted to attempt to discover these practices. In this paper, we present a view of the captured data from this survey with a focus on investigating the influence of quality requirements on the software architectural decisions in practice.
'File' Atttachments: internal-pdf://0881909128/A Contemporary View on Software Quality Requir.pdf
Reference Type: Conference Proceedings
Record Number: 7551
Author: Bang, J. Y., Brun, Y. and Medvidovic, N.
Year of Conference: 2017
Title: Continuous Analysis of Collaborative Design
Conference Name: 2017 IEEE International Conference on Software Architecture (ICSA)
Pages: 97-106
Date: 3-7 April 2017
Short Title: Continuous Analysis of Collaborative Design
DOI: 10.1109/ICSA.2017.45
Keywords: cloud computing
groupware
programming environments
software architecture
FLAME
Framework for Logging and Analyzing Modeling Events
cloud resources
collaborative design
design conflict detection technique
nonintrusive conflict detection
prioritization algorithm
Adaptation models
Analytical models
Collaboration
Engines
Fires
Synchronization
Tools
conflict detection
proactive conflict detection
speculative analysis
Abstract: In collaborative design, architects' individual design decisions may conflict and, when joined, may violate system consistency rules or non-functional requirements. These design conflicts can hinder collaboration and result in wasted effort. Proactive detection of code-level conflicts has been shown to improve collaborative productivity, however, the computational resource requirements for proactively computing design conflicts have hindered its applicability in practice. Our survey and interviews of 50 architects from six large software companies find that 60% of their projects involve collaborative design, that architects consider integration costly, and that design conflicts are frequent and lead to lost work. To aid collaborative design, we re-engineer FLAME, our prior design conflict detection technique, to use cloud resources and a novel prioritization algorithm that, together, achieve efficient and nonintrusive conflict detection, and guarantee a bound on the time before a conflict is discovered. Two controlled experiments with 90 students trained in software architecture in a professional graduate program, demonstrate that architects using FLAME design more efficiently, produce higher-quality designs, repair conflicts faster, and prefer using FLAME. An empirical performance evaluation demonstrates FLAME's scalability and verifies its time-bound guarantees.
Notes: students involved
Reference Type: Conference Paper
Record Number: 8038
Author: Carriere, Jeromy, Kazman, Rick and Ozkaya, Ipek
Year: 2010
Title: A cost-benefit framework for making architectural decisions in a business context
Conference Name: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Conference Location: Cape Town, South Africa
Publisher: ACM
Pages: 149-157
DOI: 10.1145/1810295.1810317
Place Published: 1810317
Reference Type: Conference Proceedings
Record Number: 9298
Author: Carriere, J., Kazman, R. and Ozkaya, I.
Year of Conference: 2010
Title: A cost-benefit framework for making architectural decisions in a business context
Conference Name: 2010 ACM/IEEE 32nd International Conference on Software Engineering
Volume: 2
Pages: 149-157
Date: 2-8 May 2010
Short Title: A cost-benefit framework for making architectural decisions in a business context
ISBN: 0270-5257
DOI: 10.1145/1810295.1810317
Keywords: commerce
cost-benefit analysis
decision making
software architecture
IT-intensive organization
Vistaprint Corporation
architectural decisions
business context
cost-benefit framework
decision-making
developer productivity
risk reduction
software components
structural transformation
system architecture decisions
Computer architecture
Couplings
Estimation
Measurement
Organizations
Training
architecture
dependency structure matrix
design structure matrix
quality attributes
software metrics
Abstract: In any IT-intensive organization, it is useful to have a model to associate a value with software and system architecture decisions. More generally, any effort-a project undertaken by a team-needs to have an associated value to offset its labor and capital costs. Unfortunately, it is extremely difficult to precisely evaluate the benefit of "architecture projects"-those that aim to improve one or more quality attributes of a system via a structural transformation without (generally) changing its behavior. We often resort to anecdotal and informal "hand-waving" arguments of risk reduction or increased developer productivity. These arguments are typically unsatisfying to the management of organizations accustomed to decision-making based on concrete metrics. This paper will discuss research done to address this long-standing dilemma. Specifically, we will present a model derived from analyzing actual projects undertaken at Vistaprint Corporation. The model presented is derived from an analysis of effort tracked against modifications to specific software components before and after a significant architectural transformation to the subsystem housing those components. In this paper, we will discuss the development, implementation, and iteration of the model and the results that we have obtained.
Notes: not focus on behavior
Reference Type: Conference Paper
Record Number: 7971
Author: Sharp, Helen
Year: 2016
Title: Creativity and Collaboration in Software Design and Development
Conference Name: Proceedings of the European Conference on Cognitive Ergonomics
Conference Location: Nottingham, United Kingdom
Publisher: ACM
Pages: 1-3
DOI: 10.1145/2970930.2970967
Place Published: 2970967
Abstract: This extended abstract summarises some key points regarding the role of representations in software design and development, specifically how physical, virtual and hybrid representations support creativity and collaboration.
Notes: extended abstract, not research
Reference Type: Conference Proceedings
Record Number: 8344
Author: Barcellini, Flore, Fran, #231, D, oise, #233, tienne and Burkhardt, Jean Marie
Year of Conference: 2007
Title: Cross-participants: fostering design-use mediation in an open source software community
Conference Name: Proceedings of the 14th European conference on Cognitive ergonomics: invent! explore!
Conference Location: London, United Kingdom
Publisher: ACM
Pages: 57-64
Short Title: Cross-participants: fostering design-use mediation in an open source software community
DOI: 10.1145/1362550.1362564
Place Published: 1362564
Abstract: Motivation - This research aims at investigating emerging roles and forms of participation fostering design-use mediation during the Open Source Software design process Research approach - We compare online interactions for a successful "pushed-by-users" design process with unsuccessful previous proposals. The methodology developed, articulate structural analyses of the discussions (organization of discussions, participation) to actions to the code and documentation made by participants to the project. We focus on the useroriented and the developer-oriented mailing-lists of the Python project. Findings/Design - We find that key-participants, the cross-participants, foster the design process and act as boundary spanners between the users and the developers' communities. Research limitations/Implications - These findings can be reinforced developing software to automate the structural analysis of discussions and actions to the code and documentation. Further analyses, supported by these tools, will be necessary to generalise our results. Originality/Value - The analysis of participation among the three interaction spaces of OSS design (discussion, documentation and implementation) is the main originality of this work compared to other OSS research that mainly analyse one or two spaces. Take away message - Beside the idealistic picture that users may intervene freely in the process, OSS design is boost and framed by some key-participants and specific rules and there can be barriers to users' participation
'File' Atttachments: internal-pdf://0608179516/Cross-participants fostering design-use mediat.pdf
Reference Type: Conference Proceedings
Record Number: 7730
Author: Braude, E. J.
Year of Conference: 2014
Title: Cumulative Software Architecture Development
Conference Name: 2014 IEEE/IFIP Conference on Software Architecture
Pages: 163-166
Date: 7-11 April 2014
Short Title: Cumulative Software Architecture Development
DOI: 10.1109/WICSA.2014.26
Keywords: software architecture
software prototyping
agile development context
cumulative software architecture development
least-commitment process
software architecture creation
Computer architecture
Conferences
Context
Context modeling
Software
User interfaces
agile development
software design
Abstract: An approach to software architecture creation is described in the context of agile development. It eschews the traditional separation of top-down and bottom-up design. A concrete, cumulative, least-commitment process is demonstrated that establishes an architecture core likely to remain stable as requirements are added.
Notes: not behavior focus
Reference Type: Conference Proceedings
Record Number: 8876
Author: Malavolta, I. and Capilla, R.
Year of Conference: 2017
Title: Current Research Topics and Trends in the Software Architecture Community: ICSA 2017 Workshops Summary
Conference Name: 2017 IEEE International Conference on Software Architecture Workshops (ICSAW)
Pages: 1-4
Date: 5-7 April 2017
Short Title: Current Research Topics and Trends in the Software Architecture Community: ICSA 2017 Workshops Summary
DOI: 10.1109/ICSAW.2017.28
Keywords: Automotive engineering
Computer architecture
Conferences
Decision making
Market research
Software
Software architecture
IoT
architectural knowledge
automotive systems
micro-services
organizational dimensions
Abstract: This summary reports the workshops accepted in the 1st International Conference on Software Architecture (ICSA 2017), held by Chalmers University at Gothenburg (Sweden). We gather the description of current and new research trends in different software architecture topics to provide a wide view to researchers and practitioners about the current status and trends in the field. ICSA is a premier software architecture conference that encompasses WICSA and COMPARCH conferences in one single event.
Notes: just a summary
Reference Type: Conference Proceedings
Record Number: 7674
Author: Martini, A. and Bosch, J.
Year of Conference: 2015
Title: The Danger of Architectural Technical Debt: Contagious Debt and Vicious Circles
Conference Name: 2015 12th Working IEEE/IFIP Conference on Software Architecture
Pages: 1-10
Date: 4-8 May 2015
Short Title: The Danger of Architectural Technical Debt: Contagious Debt and Vicious Circles
DOI: 10.1109/WICSA.2015.31
Keywords: software architecture
software maintenance
software metrics
architectural technical debt
contagious debt
context-specific metrics
quality model
socio-technical phenomenon
software development
technical debt items
vicious circles
Companies
Computer architecture
Concrete
Conferences
Interviews
Software
Taxonomy
agile software development
effort
multiple case-study
qualitative model
socio-technical phenomena
Abstract: A known problem in large software companies is to balance the prioritization of short-term with long-term viability. Specifically, architecture violations (Architecture Technical Debt) taken to deliver fast might hinder future feature development. However, some technical debt requires more interest to be paid than other. We have investigated which Technical Debt items generate more effort and how this effort is manifested during software development. We conducted a multiple-case embedded case study comprehending 7 sites at 5 large international software companies. We found that some Technical Debt items are contagious, causing other parts of the system to be contaminated with the same problem, which may lead to non-linear growth of interest. We also identify another socio-technical phenomenon, for which a combination of weak awareness of debt, time pressure and refactoring creates Vicious Circles of events during the development. Such phenomena need to be identified and stopped before the development is led to a crisis point. Finally, this paper presents a taxonomy of the most dangerous items identified during the qualitative investigation and a model of their effects that can be used for prioritization, for further investigation and as a quality model for extracting more precise and context-specific metrics.
Notes: not my focus
Reference Type: Conference Paper
Record Number: 7877
Author: Esfahani, Naeem, Razavi, Kaveh and Malek, Sam
Year: 2012
Title: Dealing with uncertainty in early software architecture
Conference Name: Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Conference Location: Cary, North Carolina
Publisher: ACM
Pages: 1-4
DOI: 10.1145/2393596.2393621
Place Published: 2393621
Abstract: Changing early architectural decisions of a system is both difficult and costly. It is very important for the architect to get them "right". However, in early design, the architect is often forced to make these decisions under uncertainty, i.e., not knowing the precise impact of those decisions on system's properties (e.g., scalability) as well as stakeholder concerns (e.g., cost). In this paper, we provide an overview of GuideArch, a framework aimed at systematic exploration of the architectural solution space under uncertainty to help with making early architectural decisions.
Notes: tool development
Reference Type: Journal Article
Record Number: 8602
Author: Orlov, Sergey and Vishnyakov, Andrei
Year: 2017
Title: Decision Making for the Software Architecture Structure Based on the Criteria Importance Theory
Journal: Procedia Computer Science
Volume: 104
Pages: 27-34
Date: //
Short Title: Decision Making for the Software Architecture Structure Based on the Criteria Importance Theory
ISSN: 1877-0509
DOI: https://doi.org/10.1016/j.procs.2017.01.050
Keywords: Multicriteria decision analysis
Hierarchical criterion
Criteria importance theory
Software architecture
Architecture metric
Abstract: Software architectural decisions have a significant impact on the software development process as well as on the quality of developed software systems. In this paper, the technique that allows selecting the optimal software architecture among several alternatives is proposed. This selection technique is reduced to the criteria importance theory for decision-making problems with a hierarchical criterion structure. For applying it, we need to pick up a set of metrics that assess the characteristics of the software architecture. Next, we need to determine metrics scale and create the hierarchical criterion structure with all the relations between software metric groups. The results allow us making conclusions about usefulness of the proposed technique during architecture design phase for software systems.
URL: https://www.sciencedirect.com/science/article/pii/S1877050917300510
Reference Type: Journal Article
Record Number: 8521
Author: van Vliet, Hans and Tang, Antony
Year: 2016
Title: Decision making in software architecture
Journal: Journal of Systems and Software
Volume: 117
Pages: 638-644
Date: 7//
Short Title: Decision making in software architecture
ISSN: 0164-1212
DOI: https://doi.org/10.1016/j.jss.2016.01.017
Keywords: Software architecture
Design decisions
Abstract: Traditionally, software architecture is seen as the result of the software architecture design process, the solution, usually represented by a set of components and connectors. Recently, the why of the solution, the set of design decisions made by the software architect, is complementing or even replacing the solution-oriented definition of software architecture. This in turn leads to the study of the process of making these decisions. We outline some research directions that may help us understand and improve the software architecture design process.
URL: https://www.sciencedirect.com/science/article/pii/S0164121216000157
Reference Type: Conference Proceedings
Record Number: 8958
Author: Abdesselam, Redouane
Year of Conference: 2007
Title: A decision making model for software design
Conference Name: 2007 IEEE International Conference on Systems, Man and Cybernetics
Pages: 2687-2692
Date: 7-10 Oct. 2007
Short Title: A decision making model for software design
ISBN: 1062-922X
DOI: 10.1109/ICSMC.2007.4413795
Keywords: decision making
design
formal specification
object-oriented programming
software maintenance
software packages
application requirements
commercial off-the-shelf paradigm
decision making model
formal model specification
ideal component
small-scale systems
software design
software maintainability
structured first order predicate calculus
vendor viability
Application software
Calculus
Costs
Equations
Software engineering
Software performance
Software systems
Time to market
Abstract: Selecting the right components to design a software system involve some deep thoughts and difficult decisions to make. In this paper, we present a model to ease the decision making process. The model is based on commercial off-the-shelf (COTS) paradigm. COTS techniques aim to reduce development time and hence decrease cost compared to a traditional system development. First, an identification of components from the application requirements is made. Then, for each component, we specify a formal model, which is called the ideal-component. A structured first order predicate calculus is used as a tool to formalize application requirements and obtain these formal models. The evaluation of a possible-component, from a vendor, begins with understanding the features and then an acceptance indicator is calculated. The acceptance equation combines three key factors: requirements and features match, vendor-viability and maintainability. Maintainability is a costly phase in any software system and this model caters for this issue during the evaluation process. The model is being investigated in small-scale systems with successful results.
Reference Type: Journal Article
Record Number: 8724
Author: Sabry, Ahmed E.
Year: 2015
Title: Decision Model for Software Architectural Tactics Selection Based on Quality Attributes Requirements
Journal: Procedia Computer Science
Volume: 65
Pages: 422-431
Date: //
Short Title: Decision Model for Software Architectural Tactics Selection Based on Quality Attributes Requirements
ISSN: 1877-0509
DOI: https://doi.org/10.1016/j.procs.2015.09.111
Keywords: Software Architecture
Architecture Styles and Tactics
Quality Attributes (QA)
Mining Techniques
Business Intelligence (BI)
Abstract: Due to increasing industrial demands toward software systems with increasing complexity and challenging quality requirements, software architecture and implementation mechanisms become an important activity. The decisions made during architecture design have significant implications on quality goals. As addressed, there is a lack of available standard models, architectures or frameworks for enabling implementation of quality attributes specially for business intelligence environment and applications in order to rapidly and efficiently supports decision-making. In addition, a lack of researches related to Quality Attributes (QA) requirements, its implementation tactics, and interrelations or correlations between them. The increasing systems complexity mandates software architects to choose from a growing number of design options (decisions) when searching for an optimal architecture design in a specific domain with respect to a defined (set of) quality attributes and constraints. This results in a design space search that is over human capabilities and makes the architectural design task more complicated. In this paper, researcher aimed to reveal most of quality attributes implementation tactics affecting applications architectures, properties. Several quality attributes of software investigated using applied research methods with mixed quantitative (linear) and non-linear analysis techniques. It proposes an initiative for finding an easy and systematic way of addressing quality attributes requirements to a set of implementing architectural tactics. Finally, the findings analyzed and visualized in a way that can support decision stakeholders in addition to a new concept of “safe-tactics” introduced as reduced (pruned) set of tactics that are claimed to be better used in general refactoring cases. In addition, a software tool is developed throughout this research effort as result of gained knowledge and addressing the research findings.
Notes: more a system/framework
URL: https://www.sciencedirect.com/science/article/pii/S1877050915029415
Reference Type: Conference Paper
Record Number: 7903
Author: Papatheocharous, Efi, Petersen, Kai, Cicchetti, Antonio, #233, Sentilles, verine, Shah, Syed Muhammad Ali and Gorschek, Tony
Year: 2015
Title: Decision support for choosing architectural assets in the development of software-intensive systems: The GRADE taxonomy
Conference Name: Proceedings of the 2015 European Conference on Software Architecture Workshops
Conference Location: Dubrovnik, Cavtat, Croatia
Publisher: ACM
Pages: 1-7
DOI: 10.1145/2797433.2797483
Place Published: 2797483
Abstract: Engineering software-intensive systems is a complex process that typically involves making many critical decisions. A continuous challenge during system design, analysis and development is deciding on the reference architecture that could reduce risks and deliver the expected functionality and quality of a product or a service to its users. The lack of evidence in documenting strategies supporting decision-making in the selection of architectural assets in systems and software engineering creates an impediment in learning, improving and also reducing the risks involved. In order to fill this gap, ten experienced researchers in the field of decision support for the selection of architectural assets in engineering software-intensive systems conducted a workshop to reduce traceability of strategies and define a dedicated taxonomy. The result was the GRADE taxonomy, whose key elements can be used to support decision-making as exemplified through a real case instantiation for validation purposes. The overall aim is to support future work of researchers and practitioners in decision-making in the context of architectural assets in the development of software-intensive systems. The taxonomy may be used in three ways: (i) identify new opportunities in structuring decisions; (ii) support the review of alternatives and enable informed decisions; and (iii) evaluate decisions by describing in a retrospective fashion decisions, factors impacting the decision and the outcome.
Notes: System
Reference Type: Conference Proceedings
Record Number: 9106
Author: Moaven, S., Habibi, J., Ahmadi, H. and Kamandi, A.
Year of Conference: 2008
Title: A Decision Support System for Software Architecture-Style Selection
Conference Name: 2008 Sixth International Conference on Software Engineering Research, Management and Applications
Pages: 213-220
Date: 20-22 Aug. 2008
Short Title: A Decision Support System for Software Architecture-Style Selection
DOI: 10.1109/SERA.2008.26
Keywords: decision support systems
fuzzy reasoning
inference mechanisms
software architecture
software maintenance
DSS
decision support system
fuzzy inference
multi criteria decision making problem
software architecture-style selection
software development process
software engineering
software systems
Computer architecture
Conference management
Decision making
Fuzzy logic
Software design
Technology management
Aggregation Tool
Architecture-Styles
Abstract: Due to the enlargement and complexity of software systems and the need for maintenance and update, success of systems depends strongly on their architecture. Software architecture has been a key element in software development process in two past decades. Therefore, choosing the correct architecture is a critical issue in software engineering domain, with respect to the extremely extension of architecture-driven designs. Moreover, software architecture selection is a multi-criteria decision-making problem in which different goals and objectives should be considered. In this paper, a decision support system (DSS) has been designed which provides software architects with more precise and suitable decisions in architecture styles selection. The DSS uses fuzzy inference to support decisions of software architects and exploits properties of styles in the best way while making decisions.
Notes: A system
Reference Type: Journal Article
Record Number: 9235
Author: Kruchten, P., Capilla, R. and Dueñas, J. C.
Year: 2009
Title: The Decision View's Role in Software Architecture Practice
Journal: IEEE Software
Volume: 26
Issue: 2
Pages: 36-42
Short Title: The Decision View's Role in Software Architecture Practice
ISSN: 0740-7459
DOI: 10.1109/MS.2009.52
Keywords: software architecture
software maintenance
software metrics
software quality
distributed production
maintenance operations
software crisis
software development
system complexity
Collaborative software
Computer architecture
Context modeling
Costs
Production systems
Software design
Software systems
Standards development
architectural design decision
architectural knowledge
architecture views
decision view
Abstract: Software development has to deal with many challenges-increasing system complexity, requests for better quality, the burden of maintenance operations, distributed production, and high staff turnover, to name just a few. Increasingly, software companies that strive to reduce their products' maintenance costs demand flexible, easy-to-maintain designs. Software architecture constitutes the cornerstone of software design, key for facing these challenges. Several years after the "software crisis" began in the mid-1970s, software architecture practice emerged as a mature (although still growing) discipline, capable of addressing the increasing complexity of new software systems.
Notes: Tool, not behavior
Reference Type: Journal Article
Record Number: 7856
Author: Falessi, Davide, Cantone, Giovanni, Kazman, Rick and Kruchten, Philippe
Year: 2011
Title: Decision-making techniques for software architecture design: A comparative survey
Journal: ACM Comput. Surv.
Volume: 43
Issue: 4
Pages: 1-28
Short Title: Decision-making techniques for software architecture design: A comparative survey
ISSN: 0360-0300
DOI: 10.1145/1978802.1978812
Legal Note: 1978812
Abstract: The architecture of a software-intensive system can be defined as the set of relevant design decisions that affect the qualities of the overall system functionality; therefore, architectural decisions are eventually crucial to the success of a software project. The software engineering literature describes several techniques to choose among architectural alternatives, but it gives no clear guidance on which technique is more suitable than another, and in which circumstances. As such, there is no systematic way for software engineers to choose among decision-making techniques for resolving tradeoffs in architecture design. In this article, we provide a comparison of existing decision-making techniques, aimed to guide architects in their selection. The results show that there is no “best” decision-making technique; however, some techniques are more susceptible to specific difficulties. Hence architects should choose a decision-making technique based on the difficulties that they wish to avoid. This article represents a first attempt to reason on meta-decision-making, that is, the issue of deciding how to decide.
Reference Type: Conference Paper
Record Number: 7902
Author: Silva, Italo Carlo Lopes, Brito, Patrick H. S., Neto, Baldoino F. dos S., Costa, Evandro and Silva, Andre Almeida
Year: 2015
Title: A decision-making tool to support architectural designs based on quality attributes
Conference Name: Proceedings of the 30th Annual ACM Symposium on Applied Computing
Conference Location: Salamanca, Spain
Publisher: ACM
Pages: 1457-1463
DOI: 10.1145/2695664.2695928
Place Published: 2695928
Abstract: The success of a software project is strongly related with architectural design. However, designing the right Software Architecture is a very subjective task and takes a long time, being much influenced by architect's experience and the quality of requirements engineering. This architectural knowledge, usually, is not documented, since it is considered tacit knowledge of architects or other stakeholders, and eventually dissipates. The objective of this paper is to present a tool that supports young architects by recommending a suitable architectural style, based on the system's requirements, particularly the quality attributes of the system. The tool encompasses both trade-off resolution over quality attributes and recommendation of architectural styles based on quality attributes. The proposed solution has been evaluated in the context of a specific domain of Learning Management System (LMS), in order to illustrate the tool support in the execution of an architectural design process.
Notes: Tool
Reference Type: Journal Article
Record Number: 9387
Author: Willhoft, B. and Willhoft, R.
Year: 2017
Title: Decoding Software Design
Journal: Computing in Science & Engineering
Volume: 19
Issue: 3
Pages: 86-87
Short Title: Decoding Software Design
ISSN: 1521-9615
DOI: 10.1109/MCSE.2017.41
Keywords: Decoding
Design methodology
Software engineering
book review
scientific computing
software design
Abstract: Blaine Willhoft and Rob Willhoft review "Software Design Decoded: 66 Ways Experts Think" by Marian Petre and André van der Hoek, a collection of short, one-paragraph observations on the habits that successful engineers have developed or learned over time.
Reference Type: Conference Proceedings
Record Number: 9454
Author: Chang, H. F. and Lu, S. C. Y.
Year of Conference: 2009
Title: Decomposition and Traceability in Software Design
Conference Name: 2009 33rd Annual IEEE International Computer Software and Applications Conference
Volume: 2
Pages: 13-18
Date: 20-24 July 2009
Short Title: Decomposition and Traceability in Software Design
ISBN: 0730-3157
DOI: 10.1109/COMPSAC.2009.201
Keywords: object-oriented programming
program diagnostics
software maintenance
software quality
AD-based software design traceability
axiomatic design theory
decomposition method
functional dependency
object-oriented software design
shorter delivery time
software maintainability
Application software
Computer applications
Computer science
Design engineering
Engineering management
Process design
Software design
Software development management
Software systems
USA Councils
Axiomatic Design
Complex Software Design
Conceptual Design
Decision Making
Object Oriented Design
Abstract: Decomposition is a common practice in design of technical systems to manage abstractions and to create components that can be developed separately. However, the hierarchical decomposition methods used in current software design are unable to control the dependency and provide the traceability of decisions effectively. As the difficulty of software systems rises along with increasing demands for more function, lower cost, higher quality and shorter delivery time, this shortcoming has become a major challenge in the software design community. One reason for this shortcoming is the failure of clearly differentiating between the functional and physical notions during the design process. To remedy this deficiency, we employ the axiomatic design (AD) theory developed from engineering design to augment object-oriented software design. This paper explains the features of axiomatic design approach and compare it with traditional software design methods. A case study that compares our proposed AD-based software design results with that from traditional object-oriented design approaches is included to demonstrate its applications and benefits in software design. The results show that explicitly managing functional dependencies at early design stages and focusing on decision traceability along the design process can lead to better software systems with higher quality and maintainability.
Reference Type: Conference Proceedings
Record Number: 7628
Author: Valdeón, J. M. C., Cortés, A. R. and Toro, M.
Year of Conference: 2016
Title: Defeasible Argumentation of Software Architectures
Conference Name: 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA)
Pages: 115-121
Date: 5-8 April 2016
Short Title: Defeasible Argumentation of Software Architectures
DOI: 10.1109/WICSA.2016.48
Keywords: reasoning about programs
software architecture
Hastings method
Twitter
defeasible argumentation
dialogical structure
eBay
legal reasoning
scientific reasoning
software architectural evaluation
Cognition
Computer architecture
Context
Pipelines
Servers
Software architectures
architectural evaluation
argumentation schemes
design rationale
Abstract: Defeasible argumentation is typical of legal and scientific reasoning. A defeasible argument is one in which the conclusion can be accepted tentatively in relation with the evidence known so far, but may need to be retracted as new evidence comes in. This paper analyses the role of defeasible argumentation in the explanation and evaluation of architectural decisions. We analyse technical explanations offered by engineers at Twitter and eBay about several architectural decisions adopted in those systems. We generalize these examples in four argumentation schemes. We also study the typical case of reasoning with a formal model of an architecture, and we infer a fifth argumentation scheme. Finally, we apply Hastings' method of attaching a set of critical questions to each scheme. We show that the existence of critical questions reveals that the inferred schemes are defeasible: in argumentation theory, if a respondent asks one of the critical questions matching a scheme and the proponent of an argument fails to offer an adequate answer, the argument defaults and the conclusion is retracted. This dialogical structure is the basis of typical architectural evaluations. We conclude that the provided evidence supports the hypothesis that defeasible argumentation is employed in architectural evaluation. In this context, a rich catalogue of argumentation schemes is a useful tool for the architect to organize his or her reasoning, critical questions assist the architect in identifying the weak points of his or her explanations, and provide the evaluation team with a checklist of issues to be raised.
Reference Type: Journal Article
Record Number: 8678
Author: Shum, Simon Buckingham and Hammond, Nick
Year: 1994
Title: Delivering HCI modelling to designers: A framework and case study of cognitive modelling
Journal: Interacting with Computers
Volume: 6
Issue: 3
Pages: 314-341
Date: 9//
Short Title: Delivering HCI modelling to designers: A framework and case study of cognitive modelling
ISSN: 0953-5438
DOI: https://doi.org/10.1016/0953-5438(94)90019-1
Keywords: Human-computer interaction
cognitive modelling
evaluation
Abstract: The human-computer interaction (HCI) research community is generating a large number of usability-oriented models and design frameworks. However, a critical factor which will determine whether any of these achieve significant penetration into the real world of software design is the effort required by practitioners to understand and apply them. In short, analytic tools for usability design must themselves be usable. In response to this challenge, we present a framework which identifies four different ‘gulfs’ between user-centred modelling and design approaches, and their intended users. These gulfs are potential opportunities to support designers if a given analytic approach can be encapsulated in appropriate forms. We then illustrate the framework's application with a concrete example. An evaluation is reported which investigates gulfs associated with an approach which uses an expert system to automate cognitive modelling for human factors designers. An early prototype was evaluated in order to assess the knowledge required to use it. The study demonstrates that whilst this tool does shield users from the complexities of the underlying modelling, they need to understand the way in which it builds its description of the task and user interface. Implications for bridging the different gulfs are then considered.
Notes: framework
URL: https://www.sciencedirect.com/science/article/pii/0953543894900191
Reference Type: Journal Article
Record Number: 8763
Author: Kim, S. J., Suh, N. P. and Kim, S. G.
Year: 1991
Title: Design of Software System Based on Axiomatic Design
Journal: CIRP Annals
Volume: 40
Issue: 1
Pages: 165-170
Date: //
Short Title: Design of Software System Based on Axiomatic Design
ISSN: 0007-8506
DOI: https://doi.org/10.1016/S0007-8506(07)61959-3
Keywords: Software
Design
Axioms
Abstract: The ability to utilize the fully automated flexible manufacturing systems (FMS) or develop a reliable computer-integrated manufacturing (CIM) system will depend on our ability to develop reliable and reusable softwares for large complex systems on a timely basis. To date, software design has not gone beyond the ad hoc trail-and-error stage. Consequently, the development of software is slow, expensive, unreliable, and unmanageable. The purpose of this paper is to provide a scientific basis for designing software. The approach used here is the axiomatic design, which is based on two design axioms: the Independence Axiom and the Information Axiom. The axiomatic approach is based on the recognition of the following common elements in design: the existence of independent domains (i.e., the consumer domain. the functional domain, the physical domain, and the process domain); the need to map between various domains during the design process: the decomposition of the characteristic vectors (i.e., functional requirements, design parameters, and process variables) in their respective domains: the zigzagging required between the domains for decomposition; and the need to satisfy the design axioms during the design process. The axiomatic approach discussed in this paper provides decision making tools for software design in addition to systematic means of knowledge and data representation, synthesis and analysis of software, and the construction of the module-junction structure diagram.
Notes: framework, not behavior
URL: https://www.sciencedirect.com/science/article/pii/S0007850607619593
Reference Type: Journal Article
Record Number: 8137
Author: Riehle, Dirk
Year: 2009
Title: Design pattern density defined
Journal: SIGPLAN Not.
Volume: 44
Issue: 10
Pages: 469-480
Short Title: Design pattern density defined
ISSN: 0362-1340
DOI: 10.1145/1639949.1640125
Legal Note: 1640125
Abstract: Design pattern density is a metric that measures how much of an object-oriented design can be understood and represented as instances of design patterns. Expert developers have long believed that a high design pattern density implies a high maturity of the design under inspection. This paper presents a quantifiable and observable definition of this metric. The metric is illustrated and qualitatively validated using four real-world case studies. We present several hypotheses of the metric’s meaning and their implications, including the one about design maturity. We propose that the design pattern density of a maturing framework has a fixed point and we show that if software design patterns make learning frameworks easier, a framework’s design pattern density is a measure of how much easier it will become.
Notes: more about understanding design
Reference Type: Conference Proceedings
Record Number: 8061
Author: Zamora, Paula Gomez and Do, Ellen Yi-Luen
Year of Conference: 2009
Title: Design patterns in creative design processes
Conference Name: Proceedings of the seventh ACM conference on Creativity and cognition
Conference Location: Berkeley, California, USA
Publisher: ACM
Pages: 373-374
Short Title: Design patterns in creative design processes
DOI: 10.1145/1640233.1640307
Place Published: 1640307
Abstract: The paper presents the analysis of nine architects design processes with different design experience and expertise levels. The main goal is to visualize and analyze patterns between their design processes, design phases, design iterations, and software used to support creative process in every design phase. This study focused on four major components for analysis: lengths of design processes, naming of design phases, flows of design directions, and the number and types of software used in each phase. The future goal is to investigate whether specific software capabilities would increase or hinder creative behavior patterns during the design process.
Notes: mostly students...
'File' Atttachments: internal-pdf://3415529326/Design patterns in creative design processes.pdf
Reference Type: Conference Paper
Record Number: 8232
Author: Mel, #211, Cinn, #233, ide and Fagan, Paddy
Year: 2006
Title: Design patterns: the devils in the detail
Conference Name: Proceedings of the 2006 conference on Pattern languages of programs
Conference Location: Portland, Oregon, USA
Publisher: ACM
Pages: 1-9
DOI: 10.1145/1415472.1415511
Place Published: 1415511
Abstract: The application of a design pattern in an industrial context is frequently a much more involved task than is described the pattern description itself. In this experience paper we report on a number of problems encountered in the application of several common patterns in commercial software systems. The problems we examine range in nature from details of the runtime environment that hamper pattern implementation (Singleton), to the software upgrade process breaking a pattern’s promise (Abstract Factory), to the consequences of the tight source code coupling produced by pattern application (Facade). Our conclusion is that while design patterns are indeed useful in industrial software development, there are more potential pitfalls in this area than is generally realised. In applying a design pattern, more must be taken into account than just the design context into which the pattern fits; issues to do with the low-level runtime environment as well as the higher-level software architecture, software process and social environment also play a role. 1.
Notes: focus on patterns, not decision and behavior
Reference Type: Journal Article
Record Number: 8550
Author: Ball, Linden J., Onarheim, Balder and Christensen, Bo T.
Year: 2010
Title: Design requirements, epistemic uncertainty and solution development strategies in software design
Journal: Design Studies
Volume: 31
Issue: 6
Pages: 567-589
Date: 11//
Short Title: Design requirements, epistemic uncertainty and solution development strategies in software design
ISSN: 0142-694X
DOI: https://doi.org/10.1016/j.destud.2010.09.003
Keywords: software design
design strategy
uncertainty
mental simulation
design requirements
Abstract: This paper investigates the potential involvement of “epistemic uncertainty” in mediating between complex design requirements and strategic switches in software design strategies. The analysis revealed that the designers produced an initial “first-pass” solution to the given design brief in a breadth-first manner, with this solution addressing several easy-to-handle requirements. The designers then focused on adding relatively complex-to-handle requirements to this initial solution in what appeared to be a depth-first manner, as reflected, for example, by detailed mental simulations that spanned many transcript segments. Furthermore, such depth-first development of complex requirements was linked to increases in epistemic uncertainty, a finding that supports the predicted role of uncertainty in mediating between complex requirements and depth-first design. Overall these findings support a view of software design as involving a mixed breadth-first and depth-first solution development approach, with strategic switching to depth-first design being triggered by requirement complexity and being mediated by associated feelings of uncertainty.
URL: https://www.sciencedirect.com/science/article/pii/S0142694X10000657
'File' Attachments: internal-pdf://3088841241/Design requirements, epistemic uncertainty and.pdf
Reference Type: Conference Paper
Record Number: 8168
Author: Ko, Andrew J. and Chilana, Parmit K.
Year: 2011
Title: Design, discussion, and dissent in open bug reports
Conference Name: Proceedings of the 2011 iConference
Conference Location: Seattle, Washington, USA
Publisher: ACM
Pages: 106-113
DOI: 10.1145/1940761.1940776
Place Published: 1940776
Abstract: While studies have considered computer-mediated decision-making in several domains, few have considered the unique challenges posed in software design. To address this gap, a qualitative study of 100 contentious open source bug reports was performed. The results suggest that the immeasurability of many software qualities and conflicts between achieving original design intent and serving changing user needs led to a high reliance on anecdote, speculation, and generalization. The visual presentation of threaded discussions aggravated these problems making it difficult to view design proposals and comparative critiques. The results raise several new questions about the interaction between authority and evidence in online design discussions.
Reference Type: Conference Paper
Record Number: 7968
Author: Zimmermann, Olaf
Year: 2016
Title: Designed and delivered today, eroded tomorrow?: towards an open and lean architecting framework balancing agility and sustainability
Conference Name: Proccedings of the 10th European Conference on Software Architecture Workshops
Conference Location: Copenhagen, Denmark
Publisher: ACM
Pages: 1-1
DOI: 10.1145/2993412.3014339
Place Published: 3014339
Abstract: Architecting for cost-effectiveness, longevity and endurance has multiple, often conflicting dimensions. For instance, agile practices emphasize the need for speed in software design, development and delivery, but do not necessarily prioritize mid- to long-term qualities such as extensibility and knowledge preservation. Risk- and cost-driven architecture design methods, pragmatic modeling, and technical debt management can help practicing architects to focus their efforts, but have to be tailored to be effective (e.g., according to project context, organizational constraints, and cultural factors). Architectural styles such as service-oriented architectures and its currently trending microservices incarnation promise to improve flexibility and maintainability through their principles and patterns, but still have to prove their cost-benefit efficiency in the long run (e.g., over the multi-decade lifetime of business information systems).
This keynote presentation distills a set of open, lean and sustainable architecture practices and techniques from industrial experiences and existing work in the software architecture literature, and reports on the progress towards blending these practices and techniques into a comprehensive, yet comprehensible architecture framework. The featured assets include quality stories [1], C4 architecture modeling [2], decision sharing with Y-statements [3], architecturally evident coding styles [4], architectural refactoring [1], (micro-)services principles and patterns [5], and architecture roadmapping [6]. Examples drawn from actual case studies in multiple business sectors and industries demonstrate the applicability of these practices and techniques.
The presentation concludes with a discussion of the changes to the role of the software architect in the digital age [7]. These ongoing changes drive the identification of research problems and challenges for the practical adoption and lasting impact of the practices and techniques in the framework (and other contributions to the body of knowledge on sustainable architectures).
Notes: keynote, not research
Reference Type: Conference Proceedings
Record Number: 9147
Author: Taylor, P.
Year of Conference: 2000
Title: Designerly thinking: what software methodology can learn from design theory
Conference Name: Proceedings International Conference on Software Methods and Tools. SMT 2000
Pages: 107-116
Date: 2000
Short Title: Designerly thinking: what software methodology can learn from design theory
DOI: 10.1109/SWMT.2000.890426
Keywords: design engineering
history
social aspects of automation
software engineering
academic design
architecture
design act
design expertise
design languages
design science
design theory
designerly thinking
engineering process
holistic views
industrial design
modern software product development
non-software domains
social context
software creation
software methodology
Computer architecture
Computer science
Construction industry
Design methodology
Process design
Software design
Software quality
Abstract: Design lies at the core of software creation and construction. Software methodology has traditionally conceptualised design as an engineering process, and attempted to express the design act as process steps and model transformations. The paper examines design from the rather different perspective of the non-software domains: architecture, industrial design and the academic design disciplines that have spawned `design science'. This community dealt with design methods in the 1960s and 70s, and has subsequently moved on to more relative and holistic views of design that integrate artefact and context closely. Three themes dominate the comparative exclusion into this territory: the inappropriateness of process to prescribe the act of synthesis, the need to consider the product's wider context including its history and social context, and the need to legitimise and manage internal ways of transferring designs, design expertise and design languages. A case is made for a broader based notion of software design, a kind of `designerly thinking' to help balance the intense demands on modern software product development, quality, and use
Notes: not about software development
Reference Type: Journal Article
Record Number: 8705
Author: Norcio, A. F. and Chmura, L. J.
Year: 1988
Title: Designing complex software
Journal: Journal of Systems and Software
Volume: 8
Issue: 3
Pages: 165-184
Date: 6//
Short Title: Designing complex software
ISSN: 0164-1212
DOI: https://doi.org/10.1016/0164-1212(88)90020-9
Abstract: Since 1978, the goal of the Software Cost Reduction (SCR) project has been to demonstrate the effectiveness of certain software engineering techniques for developing complex software. The application is the redevelopment of the operational flight program for the A-7E aircraft. Also since then, the Software Technology Evaluation (STE) project has been monitoring SCR project activity in order to provide an objective evaluation of the SCR methodology. SCR project activity data are collected from SCR personnel on a weekly basis. Over 55000 hours of SCR design, code, test and other activity data have been captured and recorded in a computer data base. Analyses of SCR module design data show that there are parameters that can be used to characterize and predict design progress. One example is the ratio between cumulative design discussing activities and cumulative design creating activities. This ratio is referred to as the Progress Indicator Ratio (PIR) and seems to be an accurate metric for design completeness. This and other results suggest that discussion activity among software engineers may play a major role in the software design process and may be a leading indicator of design activity progress.
URL: https://www.sciencedirect.com/science/article/pii/0164121288900209
Reference Type: Journal Article
Record Number: 8616
Author: de Souza, M. A. F. and Ferreira, M. A. G. V.
Year: 2002
Title: Designing reusable rule-based architectures with design patterns
Journal: Expert Systems with Applications
Volume: 23
Issue: 4
Pages: 395-403
Date: 11//
Short Title: Designing reusable rule-based architectures with design patterns
ISSN: 0957-4174
DOI: https://doi.org/10.1016/S0957-4174(02)00075-1
Keywords: Rule-based systems
Reuse in rule-based systems
Design patterns
Abstract: Rule-based systems or production systems still have great importance in the construction of knowledge systems. In these systems, the domain expertise to solve a problem is encoded in the form of ‘if–then’ rules, enabling a modular description of the knowledge, thus facilitating its maintenance and updating. Although they have been extensively described in the Artificial Intelligence literature, their design process is at times repeated because of the lack of common software architecture and the restrictions offered by some off-the-shelf libraries and systems. This paper proposes a reusable architecture for rule-based systems described through design patterns. The aim of these patterns is to constitute a design catalog that can be used by designers to understand and create new rule-based systems, thus promoting reuse in these systems. Additionally, the use of the described patterns in the design of an intelligent tutoring system architecture is exemplified.
Notes: Pattern description
URL: https://www.sciencedirect.com/science/article/pii/S0957417402000751
Reference Type: Conference Paper
Record Number: 8269
Author: Chilana, Parmit K., Ko, Andrew J. and Wobbrock, Jacob O.
Year: 2009
Title: Designing software for unfamiliar domains
Conference Name: Proceedings of the 2009 ICSE Workshop on Cooperative and Human Aspects on Software Engineering
Publisher: IEEE Computer Society
Pages: 22
DOI: 10.1109/chase.2009.5071405
Place Published: 1572208
Abstract: In recent years, software has become indispensable in complex domains such as science, engineering, biomedicine, and finance. Unfortunately, software developers and user researchers, who are usually experts in programming and Human-Computer Interaction (HCI) methods, respectively, often find that the insight needed to design for complex domains only comes with years of domain experience. How can everyone on a software design team acquire just enough knowledge to design effective software, especially user interfaces, without having to become domain experts? We are performing a series of studies to investigate this question, with the ultimate goal of designing tools to help software teams better capture, manage and explore domain knowledge.
Notes: just summary, no actual studies
'File' Attachments: internal-pdf://0720343905/Designing software for unfamiliar domains.pdf
Reference Type: Conference Paper
Record Number: 7908
Author: Maur, #237, Aniche, cio, Aur, Marco, #233, Gerosa, lio and Treude, Christoph
Year: 2016
Title: Developers' Perceptions on Object-Oriented Design and Architectural Roles
Conference Name: Proceedings of the 30th Brazilian Symposium on Software Engineering
Conference Location: Maringá, Brazil
Publisher: ACM
Pages: 63-72
DOI: 10.1145/2973839.2973846
Place Published: 2973846
Abstract: Software developers commonly rely on well-known software architecture patterns, such as MVC, to build their applications. In many of these patterns, classes play specific roles in the system, such as Controllers or Entities, which means that each of these classes has specific characteristics in terms of object-oriented class design and implementation. Indeed, as we have shown in a previous study, architectural roles are different from each other in terms of code metrics. In this paper, we present a study in a software development company in which we captured developers' perceptions on object-oriented design aspects of the architectural roles in their system and whether these perceptions match the source code metric analysis. We found that their developers do not have a common perception of how their architectural roles behave in terms of object-oriented design aspects, and that their perceptions also do not match the results of the source code metric analysis. This phenomenon also does not seem to be related to developers' experience. We find these results alarming, and thus, we suggest software development teams to invest in education and knowledge sharing about how their system's architectural roles behave.
Notes: Source code roles
Reference Type: Conference Proceedings
Record Number: 7528
Author: Soliman, M., Galster, M. and Riebisch, M.
Year of Conference: 2017
Title: Developing an Ontology for Architecture Knowledge from Developer Communities
Conference Name: 2017 IEEE International Conference on Software Architecture (ICSA)
Pages: 89-92
Date: 3-7 April 2017
Short Title: Developing an Ontology for Architecture Knowledge from Developer Communities
DOI: 10.1109/ICSA.2017.31
Keywords: ontologies (artificial intelligence)
software architecture
software quality
software reusability
Stack Overflow
architectural knowledge concepts
architecture-relevant information
coding problems
inter-coder reliability tests
online developer communities
ontology
qualitative analyses
reusable knowledge quality
structure architectural knowledge
Computer architecture
Encoding
Ontologies
Reliability
Semantics
Software
architecture design decisions
architecture knowledge
developer communities
Abstract: Software architecting is a knowledge-intensive activity. However, obtaining and evaluating the quality of relevant and reusable knowledge (and ensuring that this knowledge is up-to-date) requires significant effort. In this paper, we explore how online developer communities (e.g., Stack Overflow), traditionally used by developers to solve coding problems, can help solve architectural problems. We develop an ontology that covers architectural knowledge concepts in Stack Overflow. The ontology provides a description of architecture-relevant information to represent and structure architectural knowledge in Stack Overflow. The ontology is empirically grounded through qualitative analyses of different Stack Overflow posts, as well as inter-coder reliability tests. Our results show that the architecture knowledge ontology in Stack Overflow captures architecture-relevant information and supports achieving practitioners' requirements and concerns.
'File' Atttachments: internal-pdf://2075461472/Developing an Ontology for Architecture Knowle.pdf
Reference Type: Conference Paper
Record Number: 7992
Author: Pidgeon, Christopher W. and Freeman, Peter A.
Year: 1985
Title: Development concerns for a software design quality expert system
Conference Name: Proceedings of the 22nd ACM/IEEE Design Automation Conference
Conference Location: Las Vegas, Nevada, USA
Publisher: IEEE Press
Pages: 562-568
Place Published: 317946
Reference Type: Conference Proceedings
Record Number: 9406
Author: Pidgeon, C. W. and Freeman, P. A.
Year of Conference: 1985
Title: Development Concerns for a Software Design Quality Expert System
Conference Name: 22nd ACM/IEEE Design Automation Conference
Pages: 562-568
Date: 23-26 June 1985
Short Title: Development Concerns for a Software Design Quality Expert System
ISBN: 0738-100X
DOI: 10.1109/DAC.1985.1585999
Keywords: Automata
Computer architecture
Costs
Expert systems
Humans
Productivity
Software design
Software engineering
Technology transfer
Visualization
Abstract: This paper presents some developmental concerns for an expert system in the domain of software design. We discuss the context for such a system and explore the synergism between the human designer and automaton. A gross architecture for the automation is given. A scenario of interaction between the designer and automaton is presented.
Notes: Not fitting - tool development
Reference Type: Journal Article
Record Number: 8493
Author: Liebowitz, Jay
Year: 1986
Title: Development of an expert system prototype for determining software functional requirements for command management activities at NASA goddard
Journal: Telematics and Informatics
Volume: 3
Issue: 1
Pages: 47-79
Date: //
Short Title: Development of an expert system prototype for determining software functional requirements for command management activities at NASA goddard
ISSN: 0736-5853
DOI: https://doi.org/10.1016/S0736-5853(86)80037-5
Abstract: At NASA Goddard, the role of the command management system (CMS) is to transform general requests for spacecraft operations into detailed operational plans to be uplinked to the spacecraft. The CMS is part of the NASA Data System which entails the downlink of science and engineering data from NASA near-earth satellites to the user, and the uplink of command and control data to the spacecraft. Presently, it takes one to three years, with meetings once or twice a week, to determine functional requirements for CMS software design. As an alternative approach to the present technique of developing CMS software functional requirements, an expert system prototype was developed to aid in this function. Specifically, the knowledge base was formulated through interactions with domain experts, and was then linked to an existing expert system application generator called “Knowledge Engineering System.” Knowledge base development focused on four major steps: (1) develop the problem-oriented attribute hierarchy; (2) determine the knowledge management approach; (3) encode the knowledge base; and (4) validate, test, certify, and evaluate the knowledge base and the expert system prototype as a whole. Backcasting was accomplished for validating and testing the expert system prototype. Knowledge refinement, evaluation, and implementation procedures of the expert system prototype were then transacted.
Notes: tool development
URL: https://www.sciencedirect.com/science/article/pii/S0736585386800375
Reference Type: Conference Proceedings
Record Number: 8947
Author: Ming, H., Chang, C. K. and Yang, J.
Year of Conference: 2015
Title: Dimensional Situation Analytics: From Data to Wisdom
Conference Name: 2015 IEEE 39th Annual Computer Software and Applications Conference
Volume: 1
Pages: 50-59
Date: 1-5 July 2015
Short Title: Dimensional Situation Analytics: From Data to Wisdom
DOI: 10.1109/COMPSAC.2015.199
Keywords: data handling
knowledge management
parallel processing
(MR)2 paradigm
DIKW hierarchy
cognitive category
decision making
dimensional situation analytics
functional MapReduce computing paradigm
human centric situation studies
knowledge transformation
Computer science
Context
Electronic mail
Ontologies
Software design
Data
Information
Knowledge
MapReduce
Ontology
Situ framework
Situation Analytics
Situation theory
Wisdom (DIKW)
Abstract: In the late 80s, Ackoff first proposed a cognitive category upon the content of human mind, which included Data, Information, Knowledge and Wisdom, or DIKW. Since then, the DIKW hierarchy has attracted a flurry of further research studies. Its applications include ontology composition, decision making theory, domain specific engineering theory, software design thought process automation, etc., to name a few. Partially based on our previous work on human centric situation studies, we propose a dimensional situation analytics towards a new view on the DIKW hierarchy. By incorporating functional MapReduce computing paradigm, we present in this paper a novel (MR)2 paradigm, which refers to two consecutive MapReduce that cut across the boundaries between Data, Information, Knowledge and Wisdom. We argue that our (MR)2 paradigm promotes comprehensive decision making and therefore, offers new insights in knowledge transformation from data to wisdom.
Notes: Some implementation not connected
Reference Type: Conference Proceedings
Record Number: 7622
Author: Sobernig, S. and Zdun, U.
Year of Conference: 2016
Title: Distilling Architectural Design Decisions and Their Relationships Using Frequent Item-Sets
Conference Name: 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA)
Pages: 61-70
Date: 5-8 April 2016
Short Title: Distilling Architectural Design Decisions and Their Relationships Using Frequent Item-Sets
DOI: 10.1109/WICSA.2016.9
Keywords: data mining
software architecture
architectural knowledge artifact
data-mining
distilled decision
frequent item-sets
guidance model
reusable architectural decision model
Computer architecture
Context
Decision making
Documentation
Encoding
Software
Systematics
architectural design decision
design-decision relationship
reusable architectural design-decision model
Abstract: Much attention is paid nowadays to software architecture of a system as a set of design decisions providing the rationale for the system design. To document and share proven architectural design decisions, decisions made in concrete development projects are mined and distilled into reusable architectural decision models (a.k.a. guidance models). The available distillation approaches, however, remain ad hoc and biased towards the personal experience of few expert architects. Relationships between distilled decisions are not systematically explored. We propose an approach for distilling reusable architectural design decisions with emphasis on their relationships. Architectural knowledge artifacts (e.g., architecture documentation, interviews) are systematically coded for the occurrence of architectural design decisions and their details. Co-occurrences of coded design decisions are then processed for different relationship types using an established data-mining technique: frequent item-sets. The distilled relationships enter the construction of a reusable architectural decision model and contribute to organizing the design space based on empirical data (i.e., frequency patterns of co-occurrences). We report on distilling design-decision relationships from decision data collected during a three-year project on language architectures of 80 UML-based domain-specific modeling languages.
Notes: Relation between decisions, however no behavior focus
Reference Type: Conference Paper
Record Number: 8295
Author: Daily, Mike, Howard, Mike, Jerald, Jason, Lee, Craig, Martin, Kevin, McInnes, Doug and Tinker, Pete
Year: 2000
Title: Distributed design review in virtual environments
Conference Name: Proceedings of the third international conference on Collaborative virtual environments
Conference Location: San Francisco, California, USA
Publisher: ACM
Pages: 57-63
DOI: 10.1145/351006.351013
Place Published: 351013
Abstract: In large distributed corporations, distributed design review offers the potential for cost savings, reduced time to market, and improved efficiency. It also has the potential to improve the design process by enabling wider expertise to be incorporated in design reviews. This paper describes the integration of several components to enable distributed virtual design review in mixed multi-party, heterogeneous multi-site 2D and immersive 3D environments. The system provides higher layers of support for collaboration including avatars, high fidelity audio, and shared artifact manipulation. The system functions across several interface environments ranging from CAVEs to Walls to desktop workstations. At the center of the software architecture is the Human Integrating Virtual Environment (HIVE) [6], a collaboration infrastructure and toolset to support research and development of multi-user, geographically distributed, 2D and 3D shared applications. The HIVE functions with VisualEyes software for visualizing 3D data in virtual environments. We also describe in detail the configuration and lessons learned in a two site, heterogeneous multi-user demonstration of the system between HRL Laboratories in Malibu, California and GM R&D in Warren, Michigan.
Notes: Tool description
Reference Type: Conference Proceedings
Record Number: 9499
Author: Oliveira, E. and Allian, A. P.
Year of Conference: 2015
Title: Do reference architectures can contribute to standardizing variability management tools?
Conference Name: 2015 1st International Workshop on Exploring Component-based Techniques for Constructing Reference Architectures (CobRA)
Pages: 1-4
Date: 4-8 May 2015
Short Title: Do reference architectures can contribute to standardizing variability management tools?
Keywords: open systems
software architecture
software product lines
software reusability
software tools
VM tools
interoperability
mass customization
product customization
product derivation
product standardization
reference architectures
software products
variability management tool standardization
Analytical models
Computer architecture
Documentation
Industries
Software
Standardization
Systematics
Variability Management Tools
Abstract: Variability Management (VM) is one of the core activities for the success of software reuse. Several VM tools developed in academia and industry support mass customization of new software products and decrease time to market. Despite of a signi cant number of VM tools, in most cases, industry has adopted different techniques for managing variability, including producing their own tools. Such a heterogeneity provides difficulties in establishing VM, product customization and derivation, and standardization. From another perspective, reference architectures (RA) are a special type of software architecture as it encompasses specific domain knowledge, making it easier the development, standardization and evolution of software systems. Concepts from reference architectures can mitigate the lacking of VM tools standardization. Therefore, this position paper presents a vision towards supporting architectural standardization of VM tools, through reference architectures, for achieving a well-recognized understanding of such a domain and promoting reuse of design expertise. In this context, the main contribution of this paper is providing a discussion with regard to reference architectures and variability management tools towards supporting answering the following research question: Do reference architectures can contribute to standardizing VM tools?". Such standardization is useful as it fosters interoperability and reuse.
Notes: Focusing on tools
Reference Type: Conference Proceedings
Record Number: 9367
Author: Yskout, K., Scandariato, R. and Joosen, W.
Year of Conference: 2015
Title: Do Security Patterns Really Help Designers?
Conference Name: 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering
Volume: 1
Pages: 292-302
Date: 16-24 May 2015
Short Title: Do Security Patterns Really Help Designers?
ISBN: 0270-5257
DOI: 10.1109/ICSE.2015.49
Keywords: security of data
software architecture
realistically-sized banking system
security pattern
software design
Banking
Context
IEEE catalogs
Productivity
Security
Software
Training
Abstract: Security patterns are well-known solutions to security-specific problems. They are often claimed to benefit designers without much security expertise. We have performed an empirical study to investigate whether the usage of security patterns by such an audience leads to a more secure design, or to an increased productivity of the designers. Our study involved 32 teams of master students enrolled in a course on software architecture, working on the design of a realistically-sized banking system. Irrespective of whether the teams were using security patterns, we have not been able to detect a difference between the two treatment groups. However, the teams prefer to work with the support of security patterns.
Notes: students
Reference Type: Conference Proceedings
Record Number: 9101
Author: Stettina, C. J., Heijstek, W. and Fægri, T. E.
Year of Conference: 2012
Title: Documentation Work in Agile Teams: The Role of Documentation Formalism in Achieving a Sustainable Practice
Conference Name: 2012 Agile Conference
Pages: 31-40
Date: 13-17 Aug. 2012
Short Title: Documentation Work in Agile Teams: The Role of Documentation Formalism in Achieving a Sustainable Practice
DOI: 10.1109/Agile.2012.7
Keywords: Unified Modeling Language
software architecture
software prototyping
sustainable development
system documentation
RUP templates
SAD group
UML group
agile software development
agile teams
documentation allocation
documentation formalism role
documentation work
high-level software architecture
iterative documentation practices
low-level software design
sustainable practice
task specialization
textual description
textual documentation
Documentation
Encoding
Software design
Teamwork
knowledge sharing
organizational management and coordination
process improvement
project management
software development
Abstract: As its second guiding principle, agile software development promotes working software over comprehensive documentation. In this paper we investigate alignment between two different documentation practices and agile development. We report upon an experiment conducted to explore the impact of formalism and media type on various dimensions of documentation practice in agile teams. 28 students in 8 teams were divided into two groups: SAD and UML. Group SAD was to update and deliver their high-level software architecture in form of a textual description defined by RUP templates. Group UML was instructed to update and deliver their low-level software design in form of UML models. Our results show that iterative documentation practices led to more extensive and more detailed textual documentation. We found that writing documentation was perceived as a intrusive task leading to task specialization and allocation of documentation to less qualified team members. Consequently, this hampered collaboration within the team. Based in our findings, we suggest that if documentation is to be delivered with the project, producing documentation should be communicated and accepted by the team as a proper product. Furthermore, we argue that codification of internal development knowledge should be a non-intrusive task.
Notes: just about documentation as a product
Reference Type: Journal Article
Record Number: 8403
Author: Jahnke, Isa
Year: 2010
Title: Dynamics of social roles in a knowledge management community
Journal: Computers in Human Behavior
Volume: 26
Issue: 4
Pages: 533-546
Date: 7//
Short Title: Dynamics of social roles in a knowledge management community
ISSN: 0747-5632
DOI: https://doi.org/10.1016/j.chb.2009.08.010
Keywords: Socio-Technical Communities
Roles
Social structures
Community change
Design-based research
Qualitative paradigm
Abstract: With the emergence of community-oriented Information and Communication Technology (ICT) applications, e.g., Wikipedia, the popularity of socio-technical phenomena in society has increased. This development emphasises the need to further our understanding of how computer-supported social group structures change over time and what forms emerge. This contribution presents the results of a qualitative field study of a Socio-Technical Community (STC). The STC is described from its founding (in 2001) to its sustainable development (in 2006) as well as its transformation phase (2007–2008). The design-based research approach revealed changes of social structures by social roles within the STC over time. The central conclusion is that such STC’s – networks of computer-mediated communication and human interaction – evolve a specific kind of social structure, which is formal rather than informal. The results indicate that a group evolves from an informal trust-based community with few formal roles to a STC where the social mechanisms, and not the software architecture, supports knowledge management processes.
URL: https://www.sciencedirect.com/science/article/pii/S0747563209001411
Reference Type: Journal Article
Record Number: 8394
Author: Shneiderman, Ben and Carroll, John M.
Year: 1988
Title: Ecological studies of professional programmers
Journal: Commun. ACM
Volume: 31
Issue: 11
Pages: 1256-1258
Short Title: Ecological studies of professional programmers
ISSN: 0001-0782
DOI: 10.1145/50087.214900
Legal Note: 214900
Abstract: For over two decades, software psychology researchers have been developing insights to software productivity and quality by investigating builders and users of software. This research has been diverse in both its approach and its impacts. It has introduced systematic behavioral measurement into the software development process and into research on new software techniques and technologies, and has also opened up new social and cognitive interpretations of software processes [5, 12]. We now see evidence of a new thrust in software psychology coming to the fore, one in which usability researchers are direct participants in the definition and creation of new software artifacts. We call this paradigm Ecological Design, to emphasize (1) that realistic software situations are being confronted on their own terms, and (2) that the work is directed toward design results, not merely toward evaluation and description in the service of design goals. The reorientation towards studying teamwork was prompted in 1971 by Weinberg and followed by a few researchers at that time, but the movement has accelerated with the recent and intense interest in computer supported collaborative work [15]. This was apparent in the papers presented at the two workshops on Empirical Studies of Programmers [10, 13]. An accompanying shift has also occurred in the software engineering community. The traditional waterfall model of software development with the precise specification of a provable topdown design is giving way to newer exploratory styles of program development that emphasize rapid prototyping and iterative refinement. The shift from product to process also puts greater emphasis on team organization, group processes, management policies, reusability, development tools, design methods, debugging strategies, and maintenance [6]. The three papers in this special section exemplify this new paradigm. Rosson, Maass, and Kellogg and Curtis, Krasner, and Iscoe describe highly qualitative studies of professional designers that produced specific technical proposals for improving software tools and the coordination of project management, an assessment of major bottlenecks, and a new framework for thinking about software design as a learning and communication process. Soloway, Pinto, Letovsky, Littman, and Lampert describe the design and exploration of software documentation that grew out of similarly qualitative studies of program maintenance. We caution that this research paradigm is still in its infancy: setting design requirements and developing prototypes are not traditional activities of psychological researchers. These roles are still emerging, still being reconciled with the earlier paradigms. The particular projects highlighted here are only the beginning; the field continues to evolve, as more researchers are attracted, as more topics are explored, as more methods are developed. Thus, despite the shortcomings of any particular project, the trajectory of this paradigm seems clear to us: it is the development of ideas that directly impact productivity and quality in software. Indeed, part of our intention in presenting this special section is to encourage more and more rapid development of the new paradigm.
Notes: several studies, not a single one...
Reference Type: Conference Proceedings
Record Number: 9448
Author: Clements, P. C.
Year of Conference: 2007
Title: An Economic Model for Software Architecture Decisions
Conference Name: 2007 First International Workshop on the Economics of Software and Computation
Pages: 1-1
Date: 20-26 May 2007
Short Title: An Economic Model for Software Architecture Decisions
DOI: 10.1109/ESC.2007.2
Keywords: decision making
product development
simulation languages
software architecture
software cost estimation
software reusability
economic modeling language
software product line
Application software
Assembly
Computer architecture
Cost function
Documentation
Software design
Software engineering
Software testing
Abstract: Software architecture is touted as essential for system development, but its benefits are almost never quantified. Further, architects are faced with decisions about architecture (such as deciding when an architecture has outlived its usefulness) that should be answered on an economic basis. This paper presents an simple economic modeling language that has been useful in the realm of software product lines, and argues that a similar language would be equally useful in the realm of architecture decision-making.
Notes: economic not interest
Reference Type: Journal Article
Record Number: 8858
Author: Booch, G.
Year: 2007
Title: The Economics of Architecture-First
Journal: IEEE Software
Volume: 24
Issue: 5
Pages: 18-20
Short Title: The Economics of Architecture-First
ISSN: 0740-7459
DOI: 10.1109/MS.2007.146
Keywords: economics
software architecture
agile software development process
architecture-first approach
software life cycle
software-intensive system architecture
Acceleration
Command and control systems
Companies
Computer architecture
Costs
Defense industry
History
Intellectual property
Investments
Resilience
best practices
software economics
Abstract: Architecture is an artifact that's governed throughout the software life cycle - from conception through development to deployment and finally evolution, then to adaptation, assimilation, replacement, or abandonment. Similarly, the architect, either as an individual, a role, or a team, lovingly crafts, grows, and governs that architecture as it emerges from the thousands of individual design decisions of which it's composed. In this sense, an architecture-first approach appears to be a reflection of sound development practices. Now, strict agilists might counter that an architecture-first approach is undesirable because we should allow a system's architecture to emerge over time. More than just a reflection, however, a software development process that swirls around the growth of a software-intensive system's architecture has considerable material value.
Notes: More overall structure and growing of architecture, not focused enough
Reference Type: Conference Paper
Record Number: 8278
Author: Shihab, Emad, Bird, Christian and Zimmermann, Thomas
Year: 2012
Title: The effect of branching strategies on software quality
Conference Name: Proceedings of the ACM-IEEE international symposium on Empirical software engineering and measurement
Conference Location: Lund, Sweden
Publisher: ACM
Pages: 301-310
DOI: 10.1145/2372251.2372305
Place Published: 2372305
Abstract: Branching plays a major role in the development process of large software. Branches provide isolation so that multiple pieces of the software system can be modified in parallel without affecting each other during times of instability. However, branching has its own issues. The need to move code across branches introduces addition-al overhead and branch use can lead to integration failures due to conflicts or unseen dependencies. Although branches are used ex-tensively in commercial and open source development projects, the effects that different branch strategies have on software quality are not yet well understood. In this paper, we present the first empirical study that evaluates and quantifies the relationship between soft-ware quality and various aspects of the branch structure used in a software project. We examine Windows Vista and Windows 7 and compare components that have different branch characteristics to quantify differences in quality. We also examine the effectiveness of two branching strategies -- branching according to the software architecture versus branching according to organizational structure. We find that, indeed, branching does have an effect on software quality and that misalignment of branching structure and organiza-tional structure is associated with higher post-release failure rates.
Notes: focus on branching, not behavior research
Reference Type: Journal Article
Record Number: 9334
Author: Antonino, P. O., Morgenstern, A. and Kuhn, T.
Year: 2016
Title: Embedded-Software Architects: It's Not Only about the Software
Journal: IEEE Software
Volume: 33
Issue: 6
Pages: 56-62
Short Title: Embedded-Software Architects: It's Not Only about the Software
ISSN: 0740-7459
DOI: 10.1109/MS.2016.142
Keywords: embedded systems
personnel
software architecture
software development management
electromechanical devices
embedded software architects
embedded systems development
Computational modeling
Computer architecture
domain-specific architectures
integration and modeling
real-time and embedded systems
software architect
software development
software engineering
system architecture
Abstract: Owing to the increasing amount of computation in electromechanical devices, the role of software architect is often found in embedded-systems development. However, because computer scientists usually have limited knowledge of embedded-systems concepts such as controllers, actuators, and buses, embedded-software architects are often engineers with no education in software architecture basics, which is normally a topic in computer science courses. In these environments, serious architectural problems can occur, such as contradictory architecture decisions and inconsistencies between the architecture design and the architecture drivers. This article discusses the current profile of embedded-software architects, characteristics of embedded architectures designed by architects with no computer science background, and the shortcomings of architects whose knowledge is limited to information systems. The authors also discuss how to overcome these challenges.
Notes: focused on embedded software
Reference Type: Conference Proceedings
Record Number: 9338
Author: Bril, R. J., Postma, A. and Krikhaar, R. L.
Year of Conference: 2003
Title: Embedding architectural support in industry
Conference Name: International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.
Pages: 348-357
Date: 22-26 Sept. 2003
Short Title: Embedding architectural support in industry
ISBN: 1063-6773
DOI: 10.1109/ICSM.2003.1235442
Keywords: industries
program verification
software architecture
software development management
software maintenance
software tools
systems analysis
architectural maintenance
architectural support
commercial-off-the-shelf
industrial computing
professional systems
software development
software recovery
software verification
software visualization
Biomedical imaging
Business communication
Consumer electronics
Context
Humans
Medical control systems
Programming
Visualization
Abstract: Software architecture plays a vital role in the development (and hence maintenance) of large complex systems with a long lifetime. It is therefore required that the software architecture is also maintained, i.e. sufficiently documented, clearly communicated, and explicitly controlled. In our experience, these requirements cannot be met without appropriate support. Commercial-off-the-shelf support for architectural maintenance is still scarcely available, if at all, implying the need to develop appropriate proprietary means. In this paper, we briefly report upon an overall approach taken within three organizations within Philips that develop professional systems. We extensively describe the experience gained with the embedding of architectural support in these three organizations. We focus on architectural support in the area of software architecture recovery, visualization, analysis, and verification. In our experience, the support must be carried by a number of elements of software development, and all of these elements have to go through a change process to ensure sustainable embedding. We distinguish four of these elements, i.e. process, organization, software development environment, and humans, and present our experience in terms of those elements.
'File' Atttachments: internal-pdf://3976104186/Embedding architectural support in industry.pdf
Reference Type: Conference Proceedings
Record Number: 9204
Author: Dilip, Soni, Nord, R. L. and Liang, Hsu
Year of Conference: 1993
Title: An empirical approach to software architectures
Conference Name: Proceedings of 1993 IEEE 7th International Workshop on Software Specification and Design
Pages: 47-51
Date: 6-7 Dec 1993
Short Title: An empirical approach to software architectures
DOI: 10.1109/IWSSD.1993.315515
Keywords: professional aspects
software engineering
architectural properties
description languages
empirical approach
practical results
pragmatic role
productivity
quality
research community
software architectures
software development activities
software engineering research community
verification
Buildings
Computer architecture
Control systems
Instruments
Programming
Quality management
Software architecture
Software safety
Taxonomy
Technology management
Abstract: The research community in the emerging area of software architecture has developed little consensus over the definition of architecture except that architecture is related to the structure of a system and the interaction among its components. Current efforts of building models of architecture have focused on taxonomy, description languages, and verification of architectural properties. What is missing is the focus on the pragmatic role of architecture in software development activities. We describe the state of the practice and the problems faced by architects and engineers. The challenge for the software engineering research community is to address these problems and produce scalable, practical results that will have a real impact on the developers, improving their productivity and the quality of systems they build.
Reference Type: Journal Article
Record Number: 8634
Author: Tofan, Dan, Galster, Matthias, Lytra, Ioanna, Avgeriou, Paris, Zdun, Uwe, Fouche, Mark-Anthony, de Boer, Remco and Solms, Fritz
Year: 2016
Title: Empirical evaluation of a process to increase consensus in group architectural decision making
Journal: Information and Software Technology
Volume: 72
Pages: 31-47
Date: 4//
Short Title: Empirical evaluation of a process to increase consensus in group architectural decision making
ISSN: 0950-5849
DOI: https://doi.org/10.1016/j.infsof.2015.12.002
Keywords: Software architecture
Group architecture decisions
Decision making
Abstract: AbstractContext Many software architectural decisions are group decisions rather than decisions made by individuals. Consensus in a group of decision makers increases the acceptance of a decision among decision makers and their confidence in that decision. Furthermore, going through the process of reaching consensus means that decision makers understand better the decision (including the decision topic, decision options, rationales, and potential outcomes). Little guidance exists on how to increase consensus in group architectural decision making. Objective We evaluate how a newly proposed process (named GADGET) helps architects increase consensus when making group architectural decisions. Specifically, we investigate how well GADGET increases consensus in group architectural decision making, by understanding its practical applicability, and by comparing GADGET against group architectural decision making without using any prescribed approach. Method We conducted two empirical studies. First, we conducted an exploratory case study to understand the practical applicability of GADGET in industry. We investigated whether there is a need to increase consensus, the effort and benefits of GADGET, and potential improvements for GADGET. Second, we conducted an experiment with 113 students from three universities to compare GADGET against group architectural decision making without using any prescribed approach. Results GADGET helps decision makers increase their consensus, captures knowledge on architectural decisions, clarifies the different points of view of different decision makers on the decision, and increases the focus of the group discussions about a decision. From the experiment, we obtained causal evidence that GADGET increases consensus better than group architectural decision making without using any prescribed approach. Conclusions There is a need to increase consensus in group architectural decisions. GADGET helps inexperienced architects increase consensus in group architectural decision making, and provides additional benefits, such as capturing rationale of decisions. Future work is needed to understand and improve other aspects of group architectural decision making.
Notes: students
URL: https://www.sciencedirect.com/science/article/pii/S0950584915002049
Reference Type: Journal Article
Record Number: 8541
Author: Christensen, Henrik Bærbak and Hansen, Klaus Marius
Year: 2010
Title: An empirical investigation of architectural prototyping
Journal: Journal of Systems and Software
Volume: 83
Issue: 1
Pages: 133-142
Date: 1//
Short Title: An empirical investigation of architectural prototyping
ISSN: 0164-1212
DOI: https://doi.org/10.1016/j.jss.2009.07.049
Keywords: Software architecture
Architectural prototyping
Architectural analysis
Architectural evaluation
Empirical software architecture
Abstract: Architectural prototyping is the process of using executable code to investigate stakeholders’ software architecture concerns with respect to a system under development. Previous work has established this as a useful and cost-effective way of exploration and learning of the design space of a system and in addressing issues regarding quality attributes, architectural risks, and the problem of knowledge transfer and conformance. However, the actual industrial use of architectural prototyping has not been thoroughly researched so far. In this article, we report from three studies of architectural prototyping in practice. First, we report findings from an ethnographic study of practicing software architects. Secondly, we report from a focus group on architectural prototyping involving architects from four companies. And, thirdly, we report from a survey study of 20 practicing software architects and software developers. Our findings indicate that architectural prototyping plays an important and frequent role in resolving problems experimentally, but less so in exploring alternative solutions. Furthermore, architectural prototypes include end-user or business related functionality rather than purely architectural functionality. Based on these observations we provide recommendations for effective industrial architectural prototyping.
URL: https://www.sciencedirect.com/science/article/pii/S0164121209001903
'File' Attachments: internal-pdf://2575378885/An empirical investigation of architectural pr.pdf
Reference Type: Conference Proceedings
Record Number: 9046
Author: Astudillo, H., Valdés, G. and Becerra, C.
Year of Conference: 2012
Title: Empirical Measurement of Automated Recovery of Design Decisions and Structure
Conference Name: 2012 VI Andean Region International Conference
Pages: 105-108
Date: 7-9 Nov. 2012
Short Title: Empirical Measurement of Automated Recovery of Design Decisions and Structure
DOI: 10.1109/Andescon.2012.33
Keywords: software architecture
system recovery
Toeska rationale extraction design
anecdotic evidence
architecture structure recovery
automated recovery
design decision
experimental design
manual TREx
tool-supported TREx
Computer architecture
Data mining
Instruments
Measurement
Software
Training
software desig
Abstract: Several notations and techniques have been proposed to capture and represent software architecture decisions and structures. Previous work has suggested that using automated techniques to recover decisions and structures from whichever project artifacts are actually kept may be a reasonable solution, but empirical evaluations of this claim are scarce. This article describes: (1) the TREx design decision and architecture structure recovery technique and tool, (2) precision and recall measures of recovery effectiveness for system structure, and (3) an experimental design to evaluate design decision and structure recovery approaches. An initial experimental evaluation of manual versus tool-supported TREx shows that using the tool increases recall, but yield mixed results on precision: decrease structure recovery precision, but increase decision recovery. Also anecdotic evidence suggest that only Experts were systematically better in recovering decisions without tool-support. A replicable experimental package has been published.
Notes: tool for ADDs
Reference Type: Conference Proceedings
Record Number: 7617
Author: Galster, M. and Weyns, D.
Year of Conference: 2016
Title: Empirical Research in Software Architecture: How Far have We Come?
Conference Name: 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA)
Pages: 11-20
Date: 5-8 April 2016
Short Title: Empirical Research in Software Architecture: How Far have We Come?
DOI: 10.1109/WICSA.2016.10
Keywords: software architecture
empirical research
systematic mapping method
state-of-practice
Abstract: Context: Empirical research helps gain well-founded insights about phenomena. Furthermore, empirical research creates evidence for the validity of research results. Objective: We aim at assessing the state-of-practice of empirical research in software architecture. Method: We conducted a comprehensive survey based on the systematic mapping method. We included all full technical research papers published at major software architecture conferences between 1999 and 2015. Results: 17% of papers report empirical work. The number of empirical studies in software architecture has started to increase in 2005. Looking at the number of papers, empirical studies are about equally frequently used to a) evaluate newly proposed approaches and b) to explore and describe phenomena to better understand software architecture practice. Case studies and experiments are the most frequently used empirical methods. Almost half of empirical studies involve human participants. The majority of these studies involve professionals rather than students. Conclusions: Our findings are meant to stimulate researchers in the community to think about their expectations and standards of empirical research. Our results indicate that software architecture has become a more mature domain with regards to applying empirical research. However, we also found issues in research practices that could be improved (e.g., when describing study objectives and acknowledging limitations).
Notes: Literature review
Reference Type: Conference Paper
Record Number: 7885
Author: Galster, Matthias and Avgeriou, Paris
Year: 2011
Title: Empirically-grounded reference architectures: a proposal
Conference Name: Proceedings of the joint ACM SIGSOFT conference -- QoSA and ACM SIGSOFT symposium -- ISARCS on Quality of software architectures -- QoSA and architecting critical systems -- ISARCS
Conference Location: Boulder, Colorado, USA
Publisher: ACM
Pages: 153-158
DOI: 10.1145/2000259.2000285
Place Published: 2000285
Abstract: A reference architecture describes core elements of the software architecture for systems that stem from the same domain. A reference architecture ensures interoperability of systems through standardization. It also facilitates the instantiation of new concrete architectures. However, we currently lack procedures for systematically designing reference architectures that are empirically-grounded. Being empirically-grounded would increase the validity and reusability of a reference architecture. We therefore present an approach which helps systematically design reference architectures. Our approach consists of six steps performed by the software architect and domain experts. It helps design reference architectures either from scratch, or based on existing architecture artifacts. We also illustrate how our approach could be applied to the design of two existing reference architectures found in literature.
Notes: Reference architecture design
Reference Type: Journal Article
Record Number: 9610
Author: Miller, A.
Year: 1989
Title: Engineering design: its importance for software
Journal: IEEE Potentials
Volume: 8
Issue: 2
Pages: 14-16
Short Title: Engineering design: its importance for software
ISSN: 0278-6648
DOI: 10.1109/45.31589
Keywords: software engineering
maintenance
reliability
software design methodology
software development
software quality
software reuse
structure charts
testing
Costs
Design engineering
Design methodology
Programming
Robotic assembly
Software packages
Text analysis
Writing
Abstract: The importance of having a software design methodology is discussed. Its role in software reuse and in promoting software quality and reliability is examined. The waterfall model of software development, which allows a natural progression of steps to be followed during the course of a project, and the use of structure charts are described. Software testing and maintenance are briefly considered.<>
Notes: bit too old - Waterfall?
Reference Type: Conference Paper
Record Number: 7897
Author: Hess, Steffen, Knodel, Jens, Naab, Matthias and Trapp, Marcus
Year: 2016
Title: Engineering roles for constructing ecosystems
Conference Name: Proccedings of the 10th European Conference on Software Architecture Workshops
Conference Location: Copenhagen, Denmark
Publisher: ACM
Pages: 1-4
DOI: 10.1145/2993412.3003385
Place Published: 3003385
Abstract: The digital transformation of nearly all industrial sectors leads and will lead to a disruptive change. Instead of traditional linear value chains, we will move towards networked, interconnected value creation - digital ecosystems where multiple organizations and their software systems interact with each other. We can observe an increasing number of ecosystems that strongly gain value by contributions added by other organizations. However, what does this mean for engineering skills needed to initiate and grow an ecosystem with software systems being developed, evolved and operated? In this position paper, we introduce new roles and skill profiles required for engineering software ecosystems. We derived the initial role description based on practical experiences in projects we conducted over the past five years and found these roles to be crucial for the overall success of the organization within a digital ecosystem. Key capabilities we found are strength in business and technology at the same time, the ability to think end-to-end in the ecosystem, and interdisciplinarity regarding software engineering disciplines.
Reference Type: Conference Proceedings
Record Number: 7691
Author: Soliman, M., Riebisch, M. and Zdun, U.
Year of Conference: 2015
Title: Enriching Architecture Knowledge with Technology Design Decisions
Conference Name: 2015 12th Working IEEE/IFIP Conference on Software Architecture
Pages: 135-144
Date: 4-8 May 2015
Short Title: Enriching Architecture Knowledge with Technology Design Decisions
DOI: 10.1109/WICSA.2015.14
Keywords: decision making
software architecture
architecture knowledge approach
design process
software architecture design
technology design decision making
Computer architecture
Interviews
Java
Usability
User interfaces
architectural solution
architecture design decisions
architecture knowledge
technologies
technology design decision
Abstract: Decision-making is at the core of software architecture design. However, in order for the architect to take the right design decisions, assistance is required for exploring the architectural knowledge, which encompasses the various architectural solutions, their relationships and distinctions. In the past decades, the number of available technology options has increased significantly, while existing architecture knowledge approaches support technology decisions by representing relations between the different technology solutions, as well as design problems. However, they do not differentiate the candidate technologies according to their offered qualities and drawbacks. Our main goal in this exploratory study is to understand how technology solutions are being considered by the architects during the design process, and how can we enhance existing architecture knowledge concepts to support technology decision making. Our contribution in this paper is differentiating the different technology solutions' features based on a set of architecturally significant aspects, to facilitate considering technologies during the architecture design decisions. In addition, we proposed an extension for existing architecture knowledge models, which characterise the technology design decisions, and their reasoning. We evaluated our results through real examples from practitioners. Moreover, we conducted interviews with experts to validate our proposed concepts.
'File' Atttachments: internal-pdf://3926587751/2015-05-04-soliman-wicsa2015-enriching-archite.pdf
Reference Type: Conference Paper
Record Number: 8145
Author: Yin, B. H. and Winchester, J. W.
Year: 1978
Title: The establishment and use of measures to evaluate the quality of software designs
Conference Name: Proceedings of the software quality assurance workshop on Functional and performance issues
Publisher: ACM
Pages: 45-52
DOI: 10.1145/800283.811099
Place Published: 811099
Abstract: It has been recognized that success in producing designs that realize reliable software, even using Structured Design, is intimately dependent on the experience level of the designer. The gap in this methodology is the absence of easily applied quantitative measures of quality that ease the dependence of reliable systems on the rare availability of expert designers. Several metrics have been devised which, when applied to design structure charts, can pinpoint sections of a design that may cause problems during coding, debugging, integration, and modification. These metrics can help provide an independent, unbiased evaluation of design quality. These metrics have been validated against program error data of two recently completed software projects at Hughes. The results indicate that the metrics can provide a predictive measure of program errors experienced during program development. Guidelines for interpreting the design metric values are summarized and a brief description of an interactive structure chart graphics system to simplify metric value calculation is presented.
Reference Type: Conference Paper
Record Number: 8051
Author: Noppen, Joost and Tamzalit, Dalila
Year: 2010
Title: ETAK: tailoring architectural evolution by (re-)using architectural knowledge
Conference Name: Proceedings of the 2010 ICSE Workshop on Sharing and Reusing Architectural Knowledge
Conference Location: Cape Town, South Africa
Publisher: ACM
Pages: 21-28
DOI: 10.1145/1833335.1833339
Place Published: 1833339
Abstract: When an architect is faced with architectural evolution needs, he can opt to apply an existing evolution pattern. This is useful for well-known evolutions but at times is only partly sufficient. When he faces more specific evolutions, the architect needs to rely on expertise and intuition to extend the evolution beyond the pattern, a risky, error-prone evolution activity. In particular when the architect wants to assess the relevance of potential evolutions, he has no systematic assistance for analysing architectural knowledge. We propose ETAK as a framework for providing such automated assistance. ETAK allows the architect to define architectural traits he has in mind and the specific architectural knowledge he wants to consider. ETAK establishes the relevance of these traits for the new architecture, which can be used to decide whether to include them. We thus propose tailored architectural evolutions, drawing on intuition of the architect and architectural knowledge.
Notes: tool support
Reference Type: Journal Article
Record Number: 8623
Author: Thomson, Alan J. and Schmoldt, Daniel L.
Year: 2001
Title: Ethics in computer software design and development
Journal: Computers and Electronics in Agriculture
Volume: 30
Issue: 1–3
Pages: 85-102
Date: 2//
Short Title: Ethics in computer software design and development
ISSN: 0168-1699
DOI: https://doi.org/10.1016/S0168-1699(00)00158-7
Keywords: Ethics
Software design and development
Traditional ecological knowledge
Indigenous knowledge
Intellectual property
Information ecologies
Abstract: Over the past 20 years, computer software has become integral and commonplace for operational and management tasks throughout agricultural and natural resource disciplines. During this software infusion, however, little thought has been afforded human impacts, both good and bad. This paper examines current ethical issues of software system design and development in relation to privacy, accuracy, property, accessibility, and effects on quality of life. These issues are explored in the context of simulation models, databases, geographic information systems and artificial intelligence programs, especially expert systems. New approaches to system development place a much higher emphasis on the effects of system deployment within a complex human environment. Software design decisions often depend on more than one ethical issue, possibly conflicting, where the appropriate ethical choice is not always clear cut. Professional codes of ethics do little to change peoples’ behavior; rather, incentives for using an ethical approach to software development may lie in significantly increased likelihood of system success.
URL: https://www.sciencedirect.com/science/article/pii/S0168169900001587
Reference Type: Conference Proceedings
Record Number: 9522
Author: Babar, M. A.
Year of Conference: 2007
Title: Evaluating Product Line Architectures: Methods and Techniques
Conference Name: 14th Asia-Pacific Software Engineering Conference (APSEC'07)
Pages: 13-13
Date: 4-7 Dec. 2007
Short Title: Evaluating Product Line Architectures: Methods and Techniques
ISBN: 1530-1362
DOI: 10.1109/ASPEC.2007.10
Keywords: decision making
product development
software architecture
software performance evaluation
software quality
software reusability
design decision making
functional requirements
product line architecture
quality requirements
software architecture evaluation
Australia
Biographies
Collaborative tools
Computer architecture
Computer industry
Knowledge management
Research and development
Software engineering
Abstract: Summary form only given. Good software architecture is one of the key factors in successfully developing and evolving a system or a family of systems. Software architecture provides the key framework for the earliest design decisions taken to achieve functional and quality requirements. In addition, it has a profound influence on project organizations' functioning and structure. Poor architecture usually results in project inefficiencies, poor communication, and poor decision making. Software architecture for a family of systems also helps identify the commonality among different systems and explicitly document variability. Since software architecture plays a significant role in the life of a system, it is important to evaluate a system's architecture as early as possible. Architecture evaluation is considered one of the most important and effective techniques of addressing quality related issues at the software architecture level and mitigating architectural risks. Moreover, architecture evaluation sessions are an effective means of sharing and capturing architecture design rationale, reasoning behind architecture design decisions. This tutorial highlights the benefits and challenges in evaluating software architectures. It discusses theoretical and practical concepts underpinning some of the well-known scenario-based architecture evaluation methods and various approaches to characterize quality attributes using scenarios. The use of the presented methods, techniques, and tools will be demonstrated with a case study based on an industrial project.
Notes: Evaluation of architecture
Reference Type: Conference Proceedings
Record Number: 9543
Author: Zayaraz, G., Vijayalakshmi, S. and Vijayalakshmi, V.
Year of Conference: 2009
Title: Evaluation of software architectures using multicriteria fuzzy decision making technique
Conference Name: 2009 International Conference on Intelligent Agent & Multi-Agent Systems
Pages: 1-5
Date: 22-24 July 2009
Short Title: Evaluation of software architectures using multicriteria fuzzy decision making technique
DOI: 10.1109/IAMA.2009.5228013
Keywords: decision making
fuzzy set theory
matrix algebra
software architecture
architecture selection method
multicriteria fuzzy decision making technique
product development costs
product development cycle
software architecture evaluation
software design
software development
Broadcasting
Computer architecture
Educational institutions
Feeds
Monitoring
Programming
Real time systems
Software systems
Fuzzy Decision Making
Quality attributes
Abstract: Software architectures is a critical aspect in the design and development of software. Architecture of software is a collection of design decisions that are expensive to change. A correct architecture has the largest single impact on cost and quality of the product. Though architecting constitutes 10% of the product development cycle, it determines 90% of the product development costs. Given the impact that software architecture has on a project's success, the need to choose the right architecture assumes significance. Organizations often need to choose software architecture for future development from several competing candidate architectures. In this paper, a new architecture selection method based on multicriteria fuzzy decision making technique has been developed and validated using a suitable case study.
Reference Type: Journal Article
Record Number: 8573
Author: Ince, D. D.
Year: 1984
Title: The evaluation of software design metrics
Journal: Design Studies
Volume: 5
Issue: 4
Pages: 239-247
Date: 10//
Short Title: The evaluation of software design metrics
ISSN: 0142-694X
DOI: https://doi.org/10.1016/0142-694X(84)90059-0
Keywords: design matrices
software life cycle
Abstract: One of the major problems facing software developers is their inability to rely on metric which quantify the quality of their products. One area where quantitative measures of quality is needed is software design. This paper examines the work that has been carried out in the area of program code metrics and how the results of this work can be used in the evaluation of software design metrics. Finally, the role of such metrics is examined with respect to future developments in software engineering in the UK.
URL: https://www.sciencedirect.com/science/article/pii/0142694X84900590
Reference Type: Conference Paper
Record Number: 7875
Author: Qureshi, Nadia, Usman, Muhammad and Ikram, Naveed
Year: 2013
Title: Evidence in software architecture, a systematic literature review
Conference Name: Proceedings of the 17th International Conference on Evaluation and Assessment in Software Engineering
Conference Location: Porto de Galinhas, Brazil
Publisher: ACM
Pages: 97-106
DOI: 10.1145/2460999.2461014
Place Published: 2461014
Abstract: Context: Software architecture (SA) plays pivotal role in development and maintenance of large software systems. Architectural decisions impact all subsequent phases in software development life cycle. Structure of large software systems has been in discussion since early 70s but software architecture started emerging as separate discipline since mid-90s. Objective: Researchers have been publishing empirical studies (i.e. case studies, experiments, experience reports) in SA discipline. Empirical literature has been aggregated in other disciplines of software engineering but no such effort has been made in SA. Objective of this study is to aggregate and synthesize the empirical evidence from literature of software architecture to report the trends, patterns and knowledge gaps. Method: To synthesize the empirical work in SA, we conducted a systematic literature review (SLR). This study reports the results of SLR based on 247 included primary studies. Results: Based on the percentage of 247 primary studies we identified that SA Evaluation (28%), non- functional requirements related work (22%) and SA Design (12%) are relatively mature sub areas of SA. Most of the empirical work (59%) in SA uses case study research method. Experiments (20%) and experience reports (14%) are also employed in empirical SA work. Conclusion: SA discipline is maturing as few sub areas of SA are mature and some areas are new and being developed. We have also identified few emerging trends in SA i.e. service oriented architecture, Product line architecture, Aspect oriented architecture, and model driven architecture.
Notes: Literature review
Reference Type: Conference Proceedings
Record Number: 9514
Author: Goaer, O. Le, Tamzalit, D., Oussalah, M. and Seriai, A. D.
Year of Conference: 2008
Title: Evolution Shelf: Reusing Evolution Expertise within Component-Based Software Architectures
Conference Name: 2008 32nd Annual IEEE International Computer Software and Applications Conference
Pages: 311-318
Date: July 28 2008-Aug. 1 2008
Short Title: Evolution Shelf: Reusing Evolution Expertise within Component-Based Software Architectures
ISBN: 0730-3157
DOI: 10.1109/COMPSAC.2008.104
Keywords: software architecture
software reliability
software reusability
EOTS
evolution style
evolution-of-the-shelf
reuse techniques
reusing evolution expertise
semantic description format
software development
software evolution step
software system
Application software
Books
Computer applications
Computer architecture
Knowledge engineering
Laboratories
Programming
Software libraries
Software systems
Reuse Library
Software Evolution
Abstract: Despite that reuse libraries are now well adopted during software development step, software evolution step is not yet covered by this kind of beneficial approach. In this paper we present the "evolution shelf", a generic infrastructure to achieve for-reuse and by-reuse techniques within the field of software evolution. The basic idea behind that is to propose and encourage the reuse of recurring and reliable evolution expertises to achieve the structural evolution of a software system at the architectural level. For that purpose, the shelf assists architects in classifying, storing and selecting reusable architectural evolution operations. The underlying concept that we propose to capitalize the expertises is called "evolution style" and it mixes a syntactic and a semantic description format. These ideas form a core for a long-term vision in which it is possible to build a business model of evolution-of-the-shelf (EOTS) with the special objective to decrease the efforts and the risks related to the evolution activities.
Notes: System to improve reuse
Reference Type: Conference Paper
Record Number: 8248
Author: Goaer, Olivier Le, Tamzalit, Dalila, Oussalah, Mourad Chabane and Seriai, Abdelhak-Djamel
Year: 2008
Title: Evolution styles to the rescue of architectural evolution knowledge
Conference Name: Proceedings of the 3rd international workshop on Sharing and reusing architectural knowledge
Conference Location: Leipzig, Germany
Publisher: ACM
Pages: 31-36
DOI: 10.1145/1370062.1370071
Place Published: 1370071
Abstract: The core idea is to consider software-architecture evolution tasks as a knowledge that must be clearly modeled and properly managed. The main expected benefit is the reuse of existing and already available evolution expertise rather than reinventing it, sometimes awkwardly and thus avoid time-consuming redundant evolution activities. For this purpose, we propose to use the evolution style concept as a neutral interchange format to capitalize and transfer knowledge about domain-specific evolution tasks. In this paper we put the focus on how it is possible to reason on evolution-styles description libraries through a classification scheme. Specifically, we present the "evolution shelf", an infrastructure to perform (a) incremental acquisition of new evolution descriptions and (b) retrieval of evolution descriptions matching with a given context. Our shelf, dedicated to software architects, relies on well-known repository techniques while updating them to support and exploit the evolution-style concept.
Notes: focus on reuse
Reference Type: Conference Paper
Record Number: 8130
Author: Tamai, Tetsuo
Year: 2002
Title: Evolvable programming based on collaboration-field and role model
Conference Name: Proceedings of the International Workshop on Principles of Software Evolution
Conference Location: Orlando, Florida
Publisher: ACM
Pages: 1-5
DOI: 10.1145/512035.512037
Place Published: 512037
Abstract: This is a brief introduction to our research on a collaboration field and role model aiming to support evolvable software design and programming.
Notes: not research, just introduction
Reference Type: Conference Proceedings
Record Number: 9530
Author: Heijstek, W., Kuhne, T. and Chaudron, M. R. V.
Year of Conference: 2011
Title: Experimental Analysis of Textual and Graphical Representations for Software Architecture Design
Conference Name: 2011 International Symposium on Empirical Software Engineering and Measurement
Pages: 167-176
Date: 22-23 Sept. 2011
Short Title: Experimental Analysis of Textual and Graphical Representations for Software Architecture Design
ISBN: 1949-3770
DOI: 10.1109/ESEM.2011.25
Keywords: computer graphics
document handling
software architecture
English
graphical representations
software architecture design documentation
software developers
textual artifacts
textual representations
visual artifacts
Computer architecture
Data mining
Documentation
Media
Software
Unified modeling language
controlled experiment
global software development
software architecture design
textual notation
visual notation
Abstract: Software architecture design documentation should communicate design decisions effectively. However, little is known about the way recipients respond to the different types of media used in documentation. We therefore conducted a controlled experiment to study whether visual or textual artifacts are more effective in communicating architecture software design decisions to software developers. Our participant group consisted of 47 participants from both industry and academia. Our results show that neither diagrams nor textual descriptions proved to be significantly more efficient in terms of communicating software architecture design decisions. Remarkably, participants who predominantly used text, scored significantly better, overall and with respect to topology related questions. Furthermore, surprisingly, diagrams were not able to alleviate the difficulties participants with a native language other than English had in extracting information from the documentation. In combination, these findings at the very least question the role of diagrams in software architecture documentation.
Notes: students...
'File' Atttachments: internal-pdf://4101295963/Experimental Analysis of Textual and Graphical.pdf
Reference Type: Journal Article
Record Number: 8438
Author: Weinreich, Rainer, Groher, Iris and Miesbauer, Cornelia
Year: 2015
Title: An expert survey on kinds, influence factors and documentation of design decisions in practice
Journal: Future Generation Computer Systems
Volume: 47
Pages: 145-160
Date: 6//
Short Title: An expert survey on kinds, influence factors and documentation of design decisions in practice
ISSN: 0167-739X
DOI: https://doi.org/10.1016/j.future.2014.12.002
Keywords: Software architecture knowledge management
Design decisions
Design decision classification
Design decision influence factors
Design decision documentation
Abstract: Support for capturing architectural knowledge has been identified as an important research challenge. As the basis for an approach to recovering design decisions and capturing their rationale, we performed an expert survey in practice to gain insights into the different kinds, influence factors, and sources for design decisions and also into how they are currently captured in practice. The survey was conducted with 25 software architects, software team leads, and senior developers from 22 different companies in 10 different countries with more than 13 years of experience in software development on average. The survey confirms earlier work by other authors on design decision classification and influence factors, and also identifies additional kinds of decisions and influence factors not mentioned in previous work. In addition, we gained insight into the practice of capturing, the relative importance of different decisions and influence factors, and into potential sources for recovering decisions.
URL: https://www.sciencedirect.com/science/article/pii/S0167739X14002556
'File' Attachments: internal-pdf://2677002452/An expert survey on kinds, influence factors a.pdf
Reference Type: Conference Proceedings
Record Number: 9152
Author: Annaiahshetty, K. and Prasad, N.
Year of Conference: 2013
Title: Expert System for Multiple Domain Experts Knowledge Acquisition in Software Design and Development
Conference Name: 2013 UKSim 15th International Conference on Computer Modelling and Simulation
Pages: 196-201
Date: 10-12 April 2013
Short Title: Expert System for Multiple Domain Experts Knowledge Acquisition in Software Design and Development
DOI: 10.1109/UKSim.2013.124
Keywords: expert systems
knowledge acquisition
software engineering
SDLC
agile development methodology
design artifact
domain expert knowledge acquisition
expert system
iterative methodology
scrum methodology
software analysis
software design
software development
software development life cycle
software organization
software realization
software requirements
v-model methodology
waterfall methodology
Business
Computers
Software
AI
Domain Experts
Knowledge Base
Abstract: In the software development life cycle (SDLC), the highly complex part of developing successful software's largely depends in the initial phases, such as analysis and requirements gathering to produce right design artifacts. Today the software organization adapted many development methodologies, beginning from waterfall, scrum, v-model, iterative to agile development methodologies, different frameworks, design tools, and domain model tools. But the foremost role and deciding factor for success or failure of the software is largely depends on the Domain Experts (Architects, Business Analyst, Design Engineers and Stack Holders), in the current software realization. This paper will attempt to design and develop an expert system to assist the software developer in the complete software development life cycle with multiple domain experts' such as Telecom, Banking, Insurance, Logistics, Healthcare, Satellite and many more knowledge acquisition. The specific goals of this research include knowledge acquisition specific to the problems of using multiple domain experts, design and development of a prototype expert system for software development, and validation of the prototype expert system.
Notes: expert system
'File' Atttachments: internal-pdf://0277972532/Expert System for Multiple Domain Experts.pdf
Reference Type: Journal Article
Record Number: 7810
Author: Sonnentag, Sabine
Year: 1998
Title: Expertise in professional software design: A process study
Journal: Journal of Applied Psychology
Volume: 83
Issue: 5
Pages: 703-715
Short Title: Expertise in professional software design: A process study
ISSN: 1939-1854(Electronic),0021-9010(Print)
DOI: 10.1037/0021-9010.83.5.703
Keywords: *Computer Software
*Employee Characteristics
*Job Knowledge
*Job Performance
*Professional Personnel
Job Experience Level
Abstract: Forty professional software designers participated in a study in which they worked on a software design task and reported strategies for accomplishing that task. High performers were identified by a peer-nomination method and performance on a design. Verbal protocol analysis based on a comparison of 12 high and 12 moderate performers indicated that high performers structured their design process by local planning and showed more feedback processing, whereas moderate performers were more engaged in analyzing requirements and verbalizing task-irrelevant cognitions. High performers more often described problem comprehension and cooperation with colleagues as useful strategies. High and moderate performers did not differ with respect to length of experience. None of the differences between the two performance groups could be explained by length of experience.
'File' Attachments: internal-pdf://1443479783/Expertise in professional software design A pr.pdf
Reference Type: Book Section
Record Number: 7809
Author: Sonnentag, Sabine, Niessen, Cornelia and Volmer, Judith
Year: 2009
Title: Expertise in software design
Editor: Ericsson, K. Anders, Charness, Neil, Feltovich, Paul J. and Hoffman, Robert R.
Book Title: Cambridge handbook of expertise and expert performance
Place Published: Cambridge
Publisher: Cambridge Univesity Press
Short Title: Expertise in software design
ISBN: 9780521600811
Abstract: In this chapter, we review research evidence on expertise in software design, computer programming, and related tasks. Research in this domain is particularly interesting because it refers both to rather general features and processes associated with expertise (e.g., knowledge representation, problem-solving strategies) and to specific characteristics of high performers in an economically relevant real-world setting. Therefore, in this chapter we draw on literature from various £elds, mainly from cognitive psychology, but also from work and organizational psychology and from the software-design literature within computer science. Our chapter is organized as follows: In the first main section we provide a brief description of the domain and give an overview of tasks in software development. Next, we briefly describe the expertise concept and distinguish between a conceptualization of expertise as years of experience and expertise as high performance. The third main se ction is the core part of this chapter. In this section, we review empirical research on expertise in tasks such as software design, programming, program comprehension, testing, and debugging. Moreover, we describe how expert performers differ from non-experts with respect to knowledge as well as communication and cooperation processes. In the final section, we present directions for future research and discuss some practical implications.
URL: https://opus4.kobv.de/opus4-bamberg/frontdoor/index/index/docId/25079
Reference Type: Journal Article
Record Number: 8735
Author: Miller, James A., Ferrari, Remo and Madhavji, Nazim H.
Year: 2010
Title: An exploratory study of architectural effects on requirements decisions
Journal: Journal of Systems and Software
Volume: 83
Issue: 12
Pages: 2441-2455
Date: 12//
Short Title: An exploratory study of architectural effects on requirements decisions
ISSN: 0164-1212
DOI: https://doi.org/10.1016/j.jss.2010.07.006
Keywords: Software architecture
Requirements engineering
Empirical study
Software quality
Process improvement
Quantitative and qualitative research
Architecture and requirements technology
Abstract: The question of the “manner in which an existing software architecture affects requirements decision-making” is considered important in the research community; however, to our knowledge, this issue has not been scientifically explored. We do not know, for example, the characteristics of such architectural effects. This paper describes an exploratory study on this question. Specific types of architectural effects on requirements decisions are identified, as are different aspects of the architecture together with the extent of their effects. This paper gives quantitative measures and qualitative interpretation of the findings. The understanding gained from this study has several implications in the areas of: project planning and risk management, requirements engineering (RE) and software architecture (SA) technology, architecture evolution, tighter integration of RE and SA processes, and middleware in architectures. Furthermore, we describe several new hypotheses that have emerged from this study, that provide grounds for future empirical work. This study involved six RE teams (of university students), whose task was to elicit new requirements for upgrading a pre-existing banking software infrastructure. The data collected was based on a new meta-model for requirements decisions, which is a bi-product of this study.
Notes: university student research
URL: https://www.sciencedirect.com/science/article/pii/S0164121210001779
Reference Type: Conference Proceedings
Record Number: 9317
Author: Babar, M. A.
Year of Conference: 2009
Title: An exploratory study of architectural practices and challenges in using agile software development approaches
Conference Name: 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture
Pages: 81-90
Date: 14-17 Sept. 2009
Short Title: An exploratory study of architectural practices and challenges in using agile software development approaches
DOI: 10.1109/WICSA.2009.5290794
Keywords: software architecture
software development management
agile software development approach
architectural challenges
architectural practices
Bridges
Computer architecture
Computer industry
Costs
Data analysis
Large-scale systems
Programming
Software systems
agile approaches
empirical studies
qualitative research
Abstract: Agile software development approaches have recently gained popularity as a mechanism for reducing cost and increasing ability to handle change in dynamic market conditions. However, there is also a significant concern about the role and importance of the issues related to the software architecture of a system being developed using agile approaches. There is to date little empirical evidence available on what software architecture related practices are followed by teams using agile approaches and the kinds of architectural challenges resulting from using agile approaches. This paper reports a case study aimed to empirically identify and understand the architectural practices and challenges of teams using agile approaches. The findings provide useful information about the researched issues and also highlight the areas that need to be focused on for integrating agile and architecture-centric approaches.
'File' Atttachments: internal-pdf://1470541689/An exploratory study of architectural practice.pdf
Reference Type: Journal Article
Record Number: 8461
Author: de Graaf, K. A., Liang, P., Tang, A., van Hage, W. R. and van Vliet, H.
Year: 2014
Title: An exploratory study on ontology engineering for software architecture documentation
Journal: Computers in Industry
Volume: 65
Issue: 7
Pages: 1053-1064
Date: 9//
Short Title: An exploratory study on ontology engineering for software architecture documentation
ISSN: 0166-3615
DOI: https://doi.org/10.1016/j.compind.2014.04.006
Keywords: Ontology engineering
Software architecture
Software ontology
Ontology-based documentation
Knowledge acquisition
Knowledge management
Abstract: The usefulness of Software Architecture (SA) documentation depends on how well its Architectural Knowledge (AK) can be retrieved by the stakeholders in a software project. Recent findings show that the use of ontology-based SA documentation is promising. However, different roles in software development have different needs for AK, and building an ontology to suit these needs is challenging. In this paper we describe an approach to build an ontology for SA documentation. This approach involves the use of typical questions for eliciting and constructing an ontology. We outline eight contextual factors, which influence the successful construction of an ontology, especially in complex software projects with diverse AK users. We tested our ‘typical question’ approach in a case study and report how it can be used for acquiring and modeling AK needs.
Notes: model data structure
URL: https://www.sciencedirect.com/science/article/pii/S0166361514000840
Reference Type: Journal Article
Record Number: 8987
Author: Díaz-Pace, J. A. and Campo, M. R.
Year: 2008
Title: Exploring Alternative Software Architecture Designs: A Planning Perspective
Journal: IEEE Intelligent Systems
Volume: 23
Issue: 5
Pages: 66-77
Short Title: Exploring Alternative Software Architecture Designs: A Planning Perspective
ISSN: 1541-1672
DOI: 10.1109/MIS.2008.78
Keywords: planning (artificial intelligence)
software architecture
software quality
Al-based tool
DesignBots framework
artificial intelligence
decision making
hierarchical mixed-initiative planning model
software architecture design
software quality-attribute requirement
AI planning
architectural design framework
quality attributes
tool support
Abstract: Software architecture designs give us blueprints to build systems, enabling key early decisions that can help us achieve a system's functional and quality-attribute requirements. Architectural decisions have far-reaching effects on development in terms of quality, time, and cost. Architects apply technical knowledge and experience to guide their decision making, choosing among multiple design solutions to find a reasonable balance of quality attributes such as performance, modifiability, or security. This is complex and time consuming because qualities can conflict and lead to trade-offs. A trade-off means that the improvement of one quality comes at the cost of degrading another for example, modifiability versus performance. The DesignBots framework supports architects in searching for design alternatives by capturing quality-attribute design concepts into a hierarchical, mixed-initiative planning model. Overall, this work reinforces the argument that Al-based tools can facilitate the design of architectures driven by quality-attribute issues.
Notes: tool support for alternatives
Reference Type: Conference Proceedings
Record Number: 7688
Author: Harper, K. E. and Zheng, J.
Year of Conference: 2015
Title: Exploring Software Architecture Context
Conference Name: 2015 12th Working IEEE/IFIP Conference on Software Architecture
Pages: 123-126
Date: 4-8 May 2015
Short Title: Exploring Software Architecture Context
DOI: 10.1109/WICSA.2015.22
Keywords: IEC standards
IEEE standards
ISO standards
software architecture
IEC
IEEE 42010
ISO
architecture description elements
architecture design context
architecture framework metamodel
decision force
industry stakeholders
software architecture context
system environment
Computer architecture
Conferences
Context
Documentation
Force
Software
architecture decisions
architecture descriptions
architecture viewpoints
Abstract: Architecture description can be modeled as a set of alternative choices and decisions, where the rationale and tradeoffs for each decision are documented and understood as needed to inform subsequent decisions. Each decision, based on ISO/IEC/IEEE 42010, pertains to one or more stakeholder concerns. These concerns combined with the system environment and scenarios provide architecture design context that clarifies the motivation for decisions. Subsequent authors have introduced the notion of an influencing decision force, using a many-to-many relationship with concern, to provide further context for decisions. For both concerns and forces it is left to the architect to identify the nature of this context. This paper proposes a systematic process for identifying and documenting design context in support of architectural decisions. For our work decision force is used as a central unifying aspect of the architecture framework metamodel. We extend the decision Forces Viewpoint to capture detailed design context descriptions, and add features for tagging the architecture description elements to facilitate identification of commonality, classification, and specialization. Initial feedback from industry stakeholders indicates this approach should be explored further.
Notes: Extend architecture rationale, not skills
Reference Type: Conference Proceedings
Record Number: 9297
Author: Juric, R.
Year of Conference: 2000
Title: Extreme programming and its development practices
Conference Name: ITI 2000. Proceedings of the 22nd International Conference on Information Technology Interfaces (Cat. No.00EX411)
Pages: 97-104
Date: 16-16 June 2000
Short Title: Extreme programming and its development practices
ISBN: 1330-1012
Keywords: programming
software architecture
automated tests
code generation
collective code-ownership
conceptual modelling
extreme programming
intensive software systems
oral communications
pair programming
rational unified process
software architecture solutions
software engineering practice
storytelling culture
Automatic programming
Automatic testing
Electronic mail
Employment
Object oriented modeling
Oral communication
Software engineering
Software systems
Unified modeling language
Abstract: Extreme programming (XP) has attracted attention because of its fierce denial of many well-accepted software engineering practices considered as a sound approach to the development of intensive software systems. XP has been declared to be a new way of software development: a lightweight methodology, which is efficient, low-risk, flexible, predictable, scientific, and distinguishable from any other methodology. In the core of XP practices are programming activities, with strong emphasis on oral communications, automated tests, pair programming, storytelling culture and collective code-ownership at any time in the XP project. The paper gives an overview of XP practices and raises some serious concerns regarding their role in conceptual modelling and code generation; which directly affects software architecture solutions. The paper also tackles similarities between rational unified process (RUP) and XP, which have often been juxtaposed by software developers.
Notes: just about XP
Reference Type: Conference Proceedings
Record Number: 9074
Author: Werf, J. M. E. M. v. d., Feijter, R. d., Bex, F. and Brinkkemper, S.
Year of Conference: 2017
Title: Facilitating Collaborative Decision Making with the Software Architecture Video Wall
Conference Name: 2017 IEEE International Conference on Software Architecture Workshops (ICSAW)
Pages: 137-140
Date: 5-7 April 2017
Short Title: Facilitating Collaborative Decision Making with the Software Architecture Video Wall
DOI: 10.1109/ICSAW.2017.27
Keywords: audio recording
data mining
decision making
groupware
software architecture
architecture rationale documentation
argumentation mining
audio recordings
collaborative decision making
design decisions
discussion participants
screenplay
software architecture video wall
whiteboard
Collaboration
Computer architecture
Documentation
Software
Stakeholders
architecture design
argument mining
Abstract: Although capturing and documenting the design making process in software architecture is an important task, few tools exist to support the architect in this task. Often, such decisions are made during discussions with other stakeholders, but typically these remain implicit. We envision the Software Architecture Video Wall as a collaborative decision making tool for the software architect. The video wall serves as a whiteboard for discussions that automatically records the screenplay. Combined with the audio recordings of the discussion participants, a rich data set is obtained that may serve as input to track design decisions, and argumentation mining, to generate architecture rationale documentation. The video wall serves different uses as explained in several possible scenarios. However, as shown in the paper, much research is still required to realize this vision.
Notes: tool to document
Reference Type: Conference Paper
Record Number: 7952
Author: Bonfanti, Silvia, Centurelli, Valentina, Riccobene, Elvinia and Scandurra, Patrizia
Year: 2017
Title: The female contribution in architecting a set of tools for a formal method: role of women in software architecture (short paper)
Conference Name: Proceedings of the 11th European Conference on Software Architecture: Companion Proceedings
Conference Location: Canterbury, United Kingdom
Publisher: ACM
Pages: 12-15
DOI: 10.1145/3129790.3129823
Place Published: 3129823
Abstract: This paper presents the female contribution on engineering a reference software architecture for ASMETA, a framework for an integrated use of tools developed around the Abstract State Machine formal method. Based on our experience in such a development project, we discuss how feminine mindset and skills can bring concrete advantages, but some disadvantages too, in the creative process of metamodeling, architecting and maintaining software.
Notes: just about women... not general
Reference Type: Journal Article
Record Number: 8441
Author: Capra, Eugenio, Francalanci, Chiara, Merlo, Francesco and Rossi-Lamastra, Cristina
Year: 2011
Title: Firms’ involvement in Open Source projects: A trade-off between software structural quality and popularity
Journal: Journal of Systems and Software
Volume: 84
Issue: 1
Pages: 144-161
Date: 1//
Short Title: Firms’ involvement in Open Source projects: A trade-off between software structural quality and popularity
ISSN: 0164-1212
DOI: https://doi.org/10.1016/j.jss.2010.09.004
Keywords: Open Source Community Projects
Firm participation
Internal software design quality
Open Source projects popularity
Structural Equation Modeling
Abstract: Open Source (OS) was born as a pragmatic alternative to the ideology of Free Software and it is now increasingly seen by companies as a new approach to developing and making business upon software. Whereas the role of firms is clear for commercial OS projects, it still needs investigation for projects based on communities. This paper analyses the impact of firms’ participation on popularity and internal software design quality for 643 SourceForge.net projects. Results show that firms’ involvement improves the ranking of OS projects, but, on the other hand, puts corporate constraints to OS developing practices, thus leading to lower structural software design quality.
Notes: OSS project...
URL: https://www.sciencedirect.com/science/article/pii/S016412121000244X
Reference Type: Conference Proceedings
Record Number: 9568
Author: Beer, W., Dorninger, B. and Winterer, M.
Year of Conference: 2013
Title: Flexible and reliable software architecture for industrial user interfaces
Conference Name: 2013 IEEE 18th Conference on Emerging Technologies & Factory Automation (ETFA)
Pages: 1-6
Date: 10-13 Sept. 2013
Short Title: Flexible and reliable software architecture for industrial user interfaces
ISBN: 1946-0740
DOI: 10.1109/ETFA.2013.6648064
Keywords: production facilities
program visualisation
software architecture
user interfaces
complex production process
flexible application platform
industrial user interfaces
large scale enterprise integration capabilities
machine control systems
modern industrial software systems
modular runtime framework
production machines
user interaction
visualization software
Engines
Runtime
Software reliability
Software systems
Abstract: Visualization software plays a major role in controlling and monitoring production machines and facilities. In recent years these software systems have undergone major changes in terms of flexibility, user interaction and large scale enterprise integration capabilities. While traditional machine control systems tend to operate in isolation, modern industrial software systems are integrated in complex production processes that demand for flexibility and openness, also in terms of dynamic change of functionality at runtime. Despite this increased demand for flexibility, the most important requirement for industrial software systems remains reliability and stable operation. Within this work we present an architectural approach for abstracting industrial application models on top of a dynamic and modular runtime framework (OSGi) and a flexible application platform (Eclipse). This approach allows to add functionality at runtime as well as to adapt the rendering of the UI to various technologies.
Notes: tool support
Reference Type: Conference Proceedings
Record Number: 7765
Author: Heesch, U. van, Avgeriou, P. and Hilliard, R.
Year of Conference: 2012
Title: Forces on Architecture Decisions - A Viewpoint
Conference Name: 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture
Pages: 101-110
Date: 20-24 Aug. 2012
Short Title: Forces on Architecture Decisions - A Viewpoint
DOI: 10.1109/WICSA-ECSA.212.18
Keywords: software architecture
system documentation
architecture decision
decision force viewpoint
documentation approach
standard ISO/IEC/IEEE 42010
Computer architecture
Documentation
Force
IEC standards
ISO
Software
ISO/IEC/IEEE 42010
architecture decisions
forces
Abstract: In this paper, the notion of forces as influences upon architecture decisions is introduced. To facilitate the documentation of forces as a part of architecture descriptions, we specify a decision forces viewpoint, which extends our existing framework for architecture decisions, following the conventions of the international architecture description standard ISO/IEC/IEEE 42010. The applicability of the viewpoint was validated in three case studies, in which senior software engineering students used it to document decisions in software projects, two of which conducted for industrial customers. The results show that the forces viewpoint is a well-received documentation approach, satisfying stakeholder concerns related to traceability between decision forces and architecture decisions.
Notes: done by students
Reference Type: Conference Paper
Record Number: 7878
Author: Schmid, Klaus
Year: 2013
Title: A formal approach to technical debt decision making
Conference Name: Proceedings of the 9th international ACM Sigsoft conference on Quality of software architectures
Conference Location: Vancouver, British Columbia, Canada
Publisher: ACM
Pages: 153-162
DOI: 10.1145/2465478.2465492
Place Published: 2465492
Abstract: The notion of technical debt attracts significant attention, especially in the context of reconciling architecture and agile development. However, most work on technical debt is still largely informal and if it provides a formalization it is often ad-hoc. In this paper, we provide a detailed, formal analysis of decision making on technical debt in development. Using this formalization, we show that optimal decision making is not effectively computable in real-world situations and provide several well-defined approximations that allow to handle the problem nevertheless in practical situations. Combining these approximations in a single method leads to a light-weight approach that can be effectively applied in iterative software development, including agile approaches.
Reference Type: Conference Paper
Record Number: 8079
Author: Fischbein, Dario, Uchitel, Sebastian and Braberman, Victor
Year: 2006
Title: A foundation for behavioural conformance in software product line architectures
Conference Name: Proceedings of the ISSTA 2006 workshop on Role of software architecture for testing and analysis
Conference Location: Portland, Maine
Publisher: ACM
Pages: 39-48
DOI: 10.1145/1147249.1147254
Place Published: 1147254
Abstract: Software product lines or families represent an emerging paradigm that is enabling companies to engineer applications with similar functionality and user requirements more effectively. Behaviour modelling at the architecture level has the potential for supporting behaviour analysis of entire product lines, as well as defining optional and variable behaviour for different products of a family. However, to do so rigorously, a well defined notion of behavioural conformance of a product to its product line must exist. In this paper we provide a discussion on the shortcomings of traditional behaviour modelling formalisms such as Labelled Transition Systems for characterising conformance and propose Modal Transition Systems as an alternative. We discuss existing semantics for such models, exposing their limitations and finally propose a novel semantics for Modal Transition Systems, branching semantics, that can provide the formal underpinning for a notion of behaviour conformance for software product line architectures.
Notes: specific for software product lines
Reference Type: Journal Article
Record Number: 8035
Author: Kurkovsky, Stan
Year: 2008
Title: Four roles of instructor in software engineering projects
Journal: SIGCSE Bull.
Volume: 40
Issue: 3
Pages: 354-354
Short Title: Four roles of instructor in software engineering projects
ISSN: 0097-8418
DOI: 10.1145/1597849.1384396
Legal Note: 1384396
Abstract: As a practice-oriented discipline, Software Engineering (SE) is most effectively taught by using a variety of hands-on experiences. Team-based projects where students can practice their technical and soft skills are a key feature of many software engineering courses aimed to prepare students for the realities of industrial software development.
Current research indicates that projects offered in SE courses should have a close connection to the real world, be large scale and complex. On the one hand, students should be able to relate to the requirements and understand them without spending much time acquiring domain knowledge. On the other hand, students should be exposed to changing and evolving requirements, which is one of the main challenges of real-world software projects. Software projects should be large enough and have enough features to engage all members of the student team while enabling them to practice some degree of specialization and experience the advantages and challenges of teamwork. Software projects should be rich enough to allow students practice all previously acquired SE concepts, bring together knowledge from other specialized CS disciplines, and apply a number of modern tools and technologies.
One of the most effective ways to learn SE is to expose students to an environment that resembles an industrial setting as much as possible. As a part of an academic program, SE courses can achieve this objective by offering students a balanced combination of three components: teamwork involving up-to-date technology grounded in a solid theoretical foundation. Instructors in SE courses are uniquely positioned to help maintain this balance by simultaneously playing four roles described below.
As a customer who contracts a student team to implement a particular project, the instructor may provide a verbal or written description of the project. It is the students? responsibility to conduct the requirements elicitation interviews and to prepare formal requirements specification for subsequent validation with the customer and possible adjustment. The instructor may act as a customer during the acceptance testing throughout the project to make sure that the team is on the right track at every iteration of the project. The instructor acting as a customer can also act as a proxy if the project has been offered by an industrial partner, or some other department or organization on campus.
As an architect initially specifying the overall structure of the solution, the instructor can help students choose the right software architecture. This is a very important choice that has to be made early because it impacts the overall flow of the project. Later architectural changes can be extremely costly and can significantly jeopardize meeting the deadlines. Most likely, students do not have experience in making such architectural decisions and, therefore, it is crucial for the instructor to provide some guidance in this important process.
As a team manager concerned with risk management, the instructor needs to pay attention that the team efforts are not jeopardized due to a potential lack of students? soft skills and that these skills are built up as the project progresses. Although it is the students? responsibility to create all artifacts emerging from the project, the instructor can help the team adhere to the schedule by providing feedback based on the inspection of all produced artifacts. In this respect, the roles of the team manager and the customer may somewhat overlap because the same person will be providing feedback to the team from the technical point of view (artifact inspection), as well as from the customer point of view (verification of product implementation at each iteration).
In addition to the traditional role of giving lectures, the instructor needs to be a mentor offering guidance to each team and individual students addressing their specific needs and answering questions unique to their projects and the responsibilities in the context of the project. Furthermore, the instructor is uniquely positioned to advise individual students on how to resolve potential conflicts within a team. Such an advice given at the right time could make a difference between completing the project on time and allowing interpersonal tensions completely ruin any chance of collaboration between the team members.
Notes: about students
Reference Type: Conference Paper
Record Number: 7928
Author: Shakiba, Abbas, Green, Robert and Dyer, Robert
Year: 2016
Title: FourD: do developers discuss design? revisited
Conference Name: Proceedings of the 2nd International Workshop on Software Analytics
Conference Location: Seattle, WA, USA
Publisher: ACM
Pages: 43-46
DOI: 10.1145/2989238.2989244
Place Published: 2989244
Abstract: Software repositories contain a variety of information that can be mined and utilized to enhance software engineering processes. Patterns stored in software repository meta-data can provide useful and informative information about different aspects of a project, particularly those that may not be obvious for developers. One such aspect is the role of software design in a project. The messages connected to each commit in the repository note not only what changes have been made to project files, but potentially if those changes have somehow manipulated the design of the software.
In this paper, a sample of commit messages from a random sample of projects on GitHub and SourceForge are manually classified as "design" or "non-design" based on a survey. The resulting data is then used to train multiple machine learning algorithms in order to determine if it is possible to predict whether or not a single commit is discussing software design. Our results show the Random Forest classifier performed best on our combined data set with a G-mean of 75.01.
Notes: not about behavior, instead classification tool
Reference Type: Journal Article
Record Number: 8532
Author: Angelov, Samuil, Grefen, Paul and Greefhorst, Danny
Year: 2012
Title: A framework for analysis and design of software reference architectures
Journal: Information and Software Technology
Volume: 54
Issue: 4
Pages: 417-431
Date: 4//
Short Title: A framework for analysis and design of software reference architectures
ISSN: 0950-5849
DOI: https://doi.org/10.1016/j.infsof.2011.11.009
Keywords: Software reference architecture
Software domain architecture
Software architecture design
Software product line architecture
Abstract: Context A software reference architecture is a generic architecture for a class of systems that is used as a foundation for the design of concrete architectures from this class. The generic nature of reference architectures leads to a less defined architecture design and application contexts, which makes the architecture goal definition and architecture design non-trivial steps, rooted in uncertainty. Objective The paper presents a structured and comprehensive study on the congruence between context, goals, and design of software reference architectures. It proposes a tool for the design of congruent reference architectures and for the analysis of the level of congruence of existing reference architectures. Method We define a framework for congruent reference architectures. The framework is based on state of the art results from literature and practice. We validate our framework and its quality as analytical tool by applying it for the analysis of 24 reference architectures. The conclusions from our analysis are compared to the opinions of experts on these reference architectures documented in literature and dedicated communication. Results Our framework consists of a multi-dimensional classification space and of five types of reference architectures that are formed by combining specific values from the multi-dimensional classification space. Reference architectures that can be classified in one of these types have better chances to become a success. The validation of our framework confirms its quality as a tool for the analysis of the congruence of software reference architectures. Conclusion This paper facilitates software architects and scientists in the inception, design, and application of congruent software reference architectures. The application of the tool improves the chance for success of a reference architecture.
Notes: about reference architecture
URL: https://www.sciencedirect.com/science/article/pii/S0950584911002333
Reference Type: Journal Article
Record Number: 8624
Author: Wijnstra, Jan Gerben
Year: 2003
Title: From problem to solution with quality attributes and design aspects
Journal: Journal of Systems and Software
Volume: 66
Issue: 3
Pages: 199-211
Date: 6/15/
Short Title: From problem to solution with quality attributes and design aspects
ISSN: 0164-1212
DOI: https://doi.org/10.1016/S0164-1212(02)00077-8
Keywords: Quality attributes
Design aspects
Concerns
Views
Software architecture
Product family
Abstract: It is commonly accepted that quality attributes shape the architecture of a system. There are several means via which the architecture can support certain quality attributes. For example, to deal with reliability the system can be decomposed into a number of fault containment units, thus avoiding fault propagation. In addition to structural issues of architecture, qualities also influence architectural rules and guidelines, such as coding standards. In this paper we will focus on design aspects as a means of supporting quality attributes. An example of a design aspect is error handling functionality, which supports reliability. Quality attributes play a role in the problem domain; design aspects are elements in the solution domain. We will use an industrial case to illustrate our ideas. The discussion ranges from how design aspects are defined in the architecture based on quality attributes, to how design aspects can be used to verify the realized system against the prescribed architecture. The industrial case is a product family of medical imaging systems. For this product family, the family members are constructed from a component-based platform. Here, it is especially useful to achieve aspect-completeness of components, allowing system composition without worrying about individual design aspects.
Notes: more about reaching specified design quality criteria, not behavior
URL: https://www.sciencedirect.com/science/article/pii/S0164121202000778
Reference Type: Conference Paper
Record Number: 8033
Author: Bidian, Catalin
Year: 2006
Title: From stakeholder goals to product features: towards a role-based variability framework with decision boundary
Conference Name: Proceedings of the 2006 International Conference on Privacy, Security and Trust: Bridge the Gap Between PST Technologies and Business Services
Conference Location: Markham, Ontario, Canada
Publisher: ACM
Pages: 1-5
DOI: 10.1145/1501434.1501526
Place Published: 1501526
Abstract: Variability in complex software systems arises from the diverse characteristics, views, preferences, and goals of stakeholders. Recent variability research focuses on stakeholders' goals, using models, to analyze the space of alternative solutions for software functionalities. In our study we extend the goals-requirements-features approach by considering variability along multiple product development stages. We depict variability at the early and late requirements definition stage, architecture design, detailed design, and runtime, proposing a role-based framework for variability analysis. Variability design involves the placement of a decision boundary to identify the space of alternative features that can be left 'open' for the next stage of product decisions. We also analyze softgoals variability to allow early identification of variation points in the product architecture.
Notes: focus on quality criteria of architecture
Reference Type: Conference Paper
Record Number: 7998
Author: Daugherty, Paul R.
Year: 2009
Title: The future of software architectures for large-scalebusiness solutions: modularity, scalability, andseparation of concerns
Conference Name: Proceedings of the 8th ACM international conference on Aspect-oriented software development
Conference Location: Charlottesville, Virginia, USA
Publisher: ACM
Pages: 1-2
DOI: 10.1145/1509239.1509241
Place Published: 1509241
Abstract: Modern software projects are of large scale, often involving years of development, tens of thousands of days of work effort, and millions of lines of code. This complexity is aggravated by the fact that development is often distributed over several geographic locations, as dictated by cost considerations, the availability of domain specialists, legal requirements, and other factors. Despite advances in development tools and techniques, software initiatives have lagged behind in utilizing novel software engineering methods and techniques effectively to reduce the complexity of large-scale software. The results can be seen in Corporate and Government IT budgets - based on Accenture and Industry research, IT cost overruns are still commonplace, and the cost to "keep the lights on" for fragile legacy applications typically consumes up to 60% IT budgets.
Increased adoption of advanced software engineering techniques holds great promise for solving these key business challenges. For example, modularization holds a promise in reducing complexity of software design by hiding low-level implementations in well-defined units of deployment. Specifically, vendors build platforms that allow architects to design large-scale systems that can be composed out of services on the fly. For example, JBoss built a platform that allows architects to seamlessly integrate Service-Oriented Architecture (SOA) with application and business-process management (BPM) in enterprise distributions. According to research with Accenture's CIO Council, at least 58% of global organizations are implementing or piloting SOA.
Proper separation of concerns is a key to effective modularization. While separation of concerns is more of art than science in the work of software architects, novel technologies that enable effective separation of concerns are gaining traction. Most recently Accenture used AOP on a government project to do audit tracking. It was very successful and the techniques are currently being incorporated in Accenture Delivery Architecture (ADA), which is a standards-based architecture used for very large scale software development. A large focus of our efforts is in making advanced software engineering techniques more "consumable" by across our network of developers - this is done through standardized architectures, reference applications, and training.
The talk will focus on progress that has been made, and challenges ahead in driving further business value through use of these types of techniques. In addition to the areas mentioned, we will focus on related issues such as: requirements traceability, automated software quality assurance, role of DSLs andMDA, and Agile techniques.
Notes: Talk, not research
Reference Type: Conference Proceedings
Record Number: 8990
Author: Saadatmand, M. and Tahvili, S.
Year of Conference: 2015
Title: A Fuzzy Decision Support Approach for Model-Based Tradeoff Analysis of Non-functional Requirements
Conference Name: 2015 12th International Conference on Information Technology - New Generations
Pages: 112-121
Date: 13-15 April 2015
Short Title: A Fuzzy Decision Support Approach for Model-Based Tradeoff Analysis of Non-functional Requirements
DOI: 10.1109/ITNG.2015.24
Keywords: Unified Modeling Language
decision support systems
fuzzy logic
NFR UML profile
design decisions
fuzzy decision support approach
model transformation techniques
model-based tradeoff analysis
nonfunctional requirements
Analytical models
Decision making
Fuzzy sets
Security
Fuzzy
Multi-Criteria Decision Making
Non-Functional Requirements
Optimization
Software Architecture
TOPSIS
Tradeoff Analysis
Abstract: One of the main challenges in addressing Non-Functional Requirements (NFRs) in designing systems is to take into account their interdependencies and mutual impacts. For this reason, they cannot be considered in isolation and a careful balance and tradeoff among them should be established. This makes it a difficult task to select design decisions and features that lead to the satisfaction of all different NFRs in the system, which becomes even more difficult when the complexity of a system grows. In this paper, we introduce an approach based on fuzzy logic and decision support systems that helps to identify different design alternatives that lead to higher overall satisfaction of NFRs in the system. This is achieved by constructing a model of the NFRs and then performing analysis on the model. To build the model, we use a modified version of the NFR UML profile which we have introduced in our previous works, and using model transformation techniques we automate the analysis of the model.
Notes: building of tool
Reference Type: Conference Proceedings
Record Number: 8890
Author: Moaven, S., Habibi, J., Ahmadi, H. and Kamandi, A.
Year of Conference: 2008
Title: A Fuzzy Model for Solving Architecture Styles Selection Multi-Criteria Problem
Conference Name: 2008 Second UKSIM European Symposium on Computer Modeling and Simulation
Pages: 388-393
Date: 8-10 Sept. 2008
Short Title: A Fuzzy Model for Solving Architecture Styles Selection Multi-Criteria Problem
DOI: 10.1109/EMS.2008.45
Keywords: decision making
fuzzy reasoning
software architecture
architecture styles selection multicriteria problem
continuing process
fuzzy inference
fuzzy model
multicriteria decision-making problem
software development
software evaluation
software production
software systems enlargement
Computational modeling
Computer architecture
Computer simulation
Design engineering
Fuzzy logic
Programming
Software design
Software systems
Architecture Styles
fuzzy modeling
multicriteria problem
Abstract: The continuing process of software systems enlargement in size and complexity becomes system design extremely important for software production. In this way, the role of software architecture is significantly important in software development. It serves as an evaluation and implementation plan for software development and software evaluation. Consequently, choosing the correct architecture is a critical issue in software engineering domain. Moreover, software architecture selection is a multicriteria decision-making problem in which different goals and objectives must be taken into consideration. In this paper, more precise and suitable decisions in selection of architecture styles have been presented by using fuzzy inference to support decisions of software architects in order to exploit properties of styles in the best way.
Reference Type: Journal Article
Record Number: 7990
Author: Huff, Chuck
Year: 2002
Title: Gender, software design, and occupational equity
Journal: SIGCSE Bull.
Volume: 34
Issue: 2
Pages: 112-115
Short Title: Gender, software design, and occupational equity
ISSN: 0097-8418
DOI: 10.1145/543812.543842
Legal Note: 543842
Abstract: After reviewing the work on gender bias in software design, a model of gender-role influenced achievement choice taken from Eccles [7] is presented. The paper concludes that (1) though laudable, reduction of gender bias in software design is not the most straightforward way to reduce gender inequity in the choice of computing as a career, (2) the model itself makes more clear some of the ethical issues involved in attempting to achieve gender equity on computing, and (3) efforts to reduce gender inequity in the choice of computing as a career need to be evaluated in the light of this model.
Notes: Focus on gender
Reference Type: Conference Proceedings
Record Number: 9598
Author: Wojcik, R.
Year of Conference: 2006
Title: Getting in Touch with Your Feelings about Software Architecture
Conference Name: 5th IEEE/ACIS International Conference on Computer and Information Science and 1st IEEE/ACIS International Workshop on Component-Based Software Engineering,Software Architecture and Reuse (ICIS-COMSAR'06)
Pages: 2-4
Date: 10-12 July 2006
Short Title: Getting in Touch with Your Feelings about Software Architecture
DOI: 10.1109/ICIS-COMSAR.2006.42
Abstract: In this keynote address, the presenter will attend to these questions by discussing the nature of software architecture in terms of architectural structures, the role that software architecture plays in an organization, the technical, business, and social influences on software architectures, and the role of quality attribute requirements in architectural design.
Notes: Keynote, no research
Reference Type: Journal Article
Record Number: 8776
Author: Patton, J.
Year: 2008
Title: Getting Software RITE
Journal: IEEE Software
Volume: 25
Issue: 3
Pages: 20-21
Short Title: Getting Software RITE
ISSN: 0740-7459
DOI: 10.1109/MS.2008.62
Keywords: program testing
program verification
user centred design
user interfaces
formal usability testing
rapid iterative testing and evaluation
software design validation
software testing
user centered design
Digital cameras
Programming
Software design
Software measurement
Software prototyping
Usability
Watches
RITE
agile
quality
testing
usability testing
Abstract: In traditional software development environments, many designers don't routinely put their software in front of users. If the ultimate measure of well-designed software is how effectively it serves its intended purpose, then validating that it does so is critical, and the sooner the better. Many user-centered design practitioners do this with usability testing. A formal usability test is a rather sciencey affair. It involves a number of different people in different roles. This paper deals with software design validation. This test-fix-test-fix cycle continues until the software starts to feel pretty tight. This approach is called RITE (Rapid Iterative Testing and Evaluation).
Notes: technique for getting user feedback
Reference Type: Conference Paper
Record Number: 7912
Author: Nowak, Marcin and Pautasso, Cesare
Year: 2011
Title: Goals, questions and metrics for architectural decision models
Conference Name: Proceedings of the 6th International Workshop on SHAring and Reusing Architectural Knowledge
Conference Location: Waikiki, Honolulu, HI, USA
Publisher: ACM
Pages: 21-28
DOI: 10.1145/1988676.1988682
Place Published: 1988682
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.
Reference Type: Conference Paper
Record Number: 7854
Author: Stal, Michael
Year: 2011
Title: Good is not good enough: evaluating and improving software architecture
Conference Name: Proceedings of the joint ACM SIGSOFT conference -- QoSA and ACM SIGSOFT symposium -- ISARCS on Quality of software architectures -- QoSA and architecting critical systems -- ISARCS
Conference Location: Boulder, Colorado, USA
Publisher: ACM
Pages: 73-74
DOI: 10.1145/2000259.2000272
Place Published: 2000272
Abstract: Software engineering has an increasing impact on the diverse products, services, and solutions offered by technology-oriented industries. For example, within SIEMENS AG over 60% of revenues depend on software. Consequently, failures in software development projects lead to significant costs. If software is so important, we need sustainable software architectures designed by well-educated and skilled software architects as backbone of high quality software systems.
However, due to the complexity of problem and solution domains and the increased desiderata of customers, software systems cannot be created in a big bang approach. Instead, software architectures must be systematically designed and then implemented using piecemeal growth which implies that software architects need to incrementally and iteratively refine, assess, and improve a software system. Otherwise, wrong or inefficient design decisions will be hard and costly to detect and eliminate inevitably causing design erosion to creep in.
Thus, Software Architecture Evaluation and Improvement play an important role in the development of sustainable software systems.
But how can we seamlessly integrate Software Architecture and Improvement into the architecture design process?
A systematic process for creating software architecture comprises among many other ingredients
the (stepwise) clarification and prioritization of requirements,
the incremental and iterative evolution of the software architecture driven by requirements and risks,
Continuous quality assessment for assuring that the software system meets its internal and external qualities as well as its functional expectations.
For continuous quality assessment Test-Driven Development and Design for Testability denote approaches that are applicable when the implementation is available. In order to assess the architecture itself, even in absence of a (full) implementation, qualitative and quantitative architecture assessment methods are available. For example, the experience-based industry review method applies a SWOT analysis to identify potential threats and weaknesses as well as potential means to resolve these issues. Architecture Analysis tools support software architects in this endeavor. But how can software architects improve the internal or external quality of the software system after they detected some architecture smells? It is essential to get rid of these issues by continuous software architecture improvement which exactly is the place where architecture refactoring, reengineering, and rewriting come in.
Reference Type: Conference Proceedings
Record Number: 8957
Author: Esfahani, N., Malek, S. and Razavi, K.
Year of Conference: 2013
Title: GuideArch: Guiding the exploration of architectural solution space under uncertainty
Conference Name: 2013 35th International Conference on Software Engineering (ICSE)
Pages: 43-52
Date: 18-26 May 2013
Short Title: GuideArch: Guiding the exploration of architectural solution space under uncertainty
ISBN: 0270-5257
DOI: 10.1109/ICSE.2013.6606550
Keywords: decision making
software architecture
GuideArch
architectural solution space
quantitative exploration
Batteries
Computer architecture
Hardware
Software engineering
Synthetic aperture sonar
Time factors
Uncertainty
Abstract: A system's early architectural decisions impact its properties (e.g., scalability, dependability) as well as stakeholder concerns (e.g., cost, time to delivery). Choices made early on are both difficult and costly to change, and thus it is paramount that the engineer gets them “right”. This leads to a paradox, as in early design, the engineer is often forced to make these decisions under uncertainty, i.e., not knowing the precise impact of those decisions on the various concerns. How could the engineer make the “right” choices in such circumstances? This is precisely the question we have tackled in this paper. We present GuideArch, a framework aimed at quantitative exploration of the architectural solution space under uncertainty. It provides techniques founded on fuzzy math that help the engineer with making informed decisions.
Reference Type: Conference Proceedings
Record Number: 9087
Author: Fernández-Sánchez, C., Díaz, J., Pérez, J. and Garbajosa, J.
Year of Conference: 2014
Title: Guiding Flexibility Investment in Agile Architecting
Conference Name: 2014 47th Hawaii International Conference on System Sciences
Pages: 4807-4816
Date: 6-9 Jan. 2014
Short Title: Guiding Flexibility Investment in Agile Architecting
ISBN: 1530-1605
DOI: 10.1109/HICSS.2014.590
Keywords: decision making
software architecture
software prototyping
storage management
MAKE Flexi
agile architecting
agile software development
data storage technologies
guiding flexibility investment
software product architectures
Computer architecture
Cost accounting
Decision trees
Estimation
Investment
Software
agile
architecture
real options
technical debt
Abstract: Agile software development pursues to deal with continuous change. But software product architectures without enough flexibility can restrict how products cope with change. However, designing for flexibility often entails high costs and risk that comes with the assumption that change will happen. Actually, in software architecture the flexibility investment decision making problem has become challenging. This paper presents a process to assist architects in Making decisions about Flexibility investment in Software Architecture (MAKE Flexi). MAKE Flexi is based on technical debt and real options approaches. Technical debt allows for estimating the additional cost derived from the lack of flexibility in software architectures, whereas the real options valuation allows for estimating the value of the flexibility that a design option could provide. MAKE Flexi has been applied to an industry project for smart grids to assist architects in making decisions about designing for flexibility to vary data storage technologies.
Reference Type: Journal Article
Record Number: 8537
Author: Ainger, A. W. S. and Schmid, F.
Year: 1995
Title: The helical approach to software design
Journal: Computer Integrated Manufacturing Systems
Volume: 8
Issue: 2
Pages: 105-115
Date: 5//
Short Title: The helical approach to software design
ISSN: 0951-5240
DOI: https://doi.org/10.1016/0951-5240(95)00004-D
Keywords: software design
Helical Project LifeCycle
Abstract: This paper is used to outline a relatively recent approach to the development of software products. Practical experience of employing the traditional waterfall lifecycle model, the Spiral Model and concurrent engineering approaches in both small and large (pan-European) software projects provide the foundation on which to present, discuss and propose a new lifecycle model; the Helical LifeCycle Approach. The authors of the paper distinguish between prototypes, and model and postulate the need for the formalization of a new software engineering job role which is focused around the Helical Project LifeCycle.
URL: https://www.sciencedirect.com/science/article/pii/095152409500004D
Reference Type: Conference Paper
Record Number: 7901
Author: Golden, Elspeth
Year: 2009
Title: Helping software architects design for usability
Conference Name: Proceedings of the 1st ACM SIGCHI symposium on Engineering interactive computing systems
Conference Location: Pittsburgh, PA, USA
Publisher: ACM
Pages: 317-320
DOI: 10.1145/1570433.1570493
Place Published: 1570493
Abstract: In spite of the goodwill and best efforts of software engineers and usability professionals, systems continue to be built and released with glaring usability flaws that are costly and difficult to fix after the system has been designed and/or built. Although user interface (UI) designers, be they usability or design experts, communicate usability requirements to software development teams, usability features often fail to be implemented as expected. If, as seems likely, software developers intend to implement what UI designers specify and simply do not know how to interpret the architectural ramifications of usability requirements, then Usability-Supporting Architectural Patterns (USAPs) will help to bridge the gap between UI designers and software engineers to produce software architecture solutions that successfully address usability requirements. USAPs achieve this goal by embedding usability concepts in templates that can be used procedurally to guide software engineers' thinking during the complex task of software architecture design. A tool design supports delivery of USAPs to software architects for use in the early stages of the design process.
Notes: tool development
Reference Type: Journal Article
Record Number: 9202
Author: Smyth, B., Keane, M. T. and Cunningham, P.
Year: 2001
Title: Hierarchical case-based reasoning integrating case-based and decompositional problem-solving techniques for plant-control software design
Journal: IEEE Transactions on Knowledge and Data Engineering
Volume: 13
Issue: 5
Pages: 793-812
Short Title: Hierarchical case-based reasoning integrating case-based and decompositional problem-solving techniques for plant-control software design
ISSN: 1041-4347
DOI: 10.1109/69.956101
Keywords: automatic programming
case-based reasoning
industrial control
problem solving
CBR
Deja Vu
automated software design
case based organization
complex problem solving tasks
decompositional problem-solving techniques
future problem solving
hierarchical case based reasoning
hierarchical problem solving
multiple case reuse
past experience
plant-control software design automation
Artificial intelligence
Computer Society
Concrete
Probes
Problem-solving
Software design
Abstract: Case based reasoning (CBR) is an artificial intelligence technique that emphasises the role of past experience during future problem solving. New problems are solved by retrieving and adapting the solutions to similar problems, solutions that have been stored and indexed for future reuse as cases in a case-base. The power of CBR is severely curtailed if problem solving is limited to the retrieval and adaptation of a single case, so most CBR systems dealing with complex problem solving tasks have to use multiple cases. The paper describes and evaluates the technique of hierarchical case based reasoning, which allows complex problems to be solved by reusing multiple cases at various levels of abstraction. The technique is described in the context of Deja Vu, a CBR system aimed at automating plant-control software design
Notes: tool based on certain technique
Reference Type: Conference Proceedings
Record Number: 9435
Author: Barik, L. B., Chandrakar, O., Patel, B. and Barik, A.
Year of Conference: 2011
Title: HKDA — Design pattern system architecture
Conference Name: 2011 2nd International Conference on Computer and Communication Technology (ICCCT-2011)
Pages: 118-123
Date: 15-17 Sept. 2011
Short Title: HKDA — Design pattern system architecture
DOI: 10.1109/ICCCT.2011.6075124
Keywords: data mining
inference mechanisms
intelligent tutoring systems
object-oriented methods
software architecture
HKDA system
ITS
adaptive learning environment
communication knowledge
design pattern system architecture
domain knowledge
domain model
human knowledge discovery agent system
inference mechanism
knowledge management
pedagogical experts
pedagogical module
presentation planner
software design pattern
software development
student knowledge-base
student modeller
Adaptation models
Data models
Educational institutions
Knowledge based systems
Learning systems
Materials
Design Pattern
Knowledge Component
Multi-agent HKDA System
Abstract: Software Design Patterns (DPs) have been recognized as very important and useful in real software development since they provide an elegant way of getting around problems that often occur. Researcher has built an ITS known as Human Knowledge Discovery Agent System-HKDA, which provides adaptive learning environment for the students by providing personalized instructions. The HKDA System makes inferences about student knowledge and interacts intelligently with students based upon individual representations of their knowledge. The design pattern system architecture of HKDA consists of eight main components. In this research, researchers are going to discuss about Student Modeller and Pedagogical Module. However, to provide a clear idea about design patterns, a small description about other components such as Domain Knowledge/Domain Model, Knowledge Management, Student Knowledge-base, Presentation Planner, Pedagogical Experts and Communication Knowledge are also given.
Notes: students
Reference Type: Conference Proceedings
Record Number: 9182
Author: Bang, J. Y., Krka, I., Medvidovic, N., Kulkarni, N. and Padmanabhuni, S.
Year of Conference: 2013
Title: How software architects collaborate: Insights from collaborative software design in practice
Conference Name: 2013 6th International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE)
Pages: 41-48
Date: 25-25 May 2013
Short Title: How software architects collaborate: Insights from collaborative software design in practice
DOI: 10.1109/CHASE.2013.6614730
Keywords: distributed processing
groupware
software architecture
collaboration cost drivers
collaborative software design
distributed engineering
geographic distribution
global software solutions
software architecture collaboration
software systems
Collaborative software
Computer architecture
Interviews
Organizations
Software
Topology
Abstract: The increasingly complex software systems are developed by globally distributed engineering teams consisting of a number of members who collaborate to gather the requirements, as well as design, implement, and test the system. Unlike other development activities, collaborative software design has not yet been studied extensively, and thus it is not fully understood how it is conducted in practice. We have commenced a series of studies to address this. As the first step, we have interviewed architects at a global software solutions provider to observe how collaborative software design works in practice. In this paper, we report the observations and insights we gained from the interviews related to (1) the various roles of software architects in collaborative software design, (2) the project-specific networks of software architects, (3) the impacts of geographic distribution, and (4) the collaboration cost drivers. We also discuss how we are using these insights to shape up our subsequent research.
'File' Atttachments: internal-pdf://3159035491/How software architects collaborate Insights f.pdf
Reference Type: Journal Article
Record Number: 9201
Author: Mangano, N., LaToza, T. D., Petre, M. and Hoek, A. van der
Year: 2015
Title: How Software Designers Interact with Sketches at the Whiteboard
Journal: IEEE Transactions on Software Engineering
Volume: 41
Issue: 2
Pages: 135-156
Short Title: How Software Designers Interact with Sketches at the Whiteboard
ISSN: 0098-5589
DOI: 10.1109/TSE.2014.2362924
Keywords: software engineering
reasoning activity
software design
software development
visual syntactic elements
whiteboard sketch
Cognition
Encoding
Syntactics
Videos
Visualization
Interaction styles
systems analysis and design
user-centered design
Abstract: Whiteboard sketches play a crucial role in software development, helping to support groups of designers in reasoning about a software design problem at hand. However, little is known about these sketches and how they support design `in the moment', particularly in terms of the relationships among sketches, visual syntactic elements within sketches, and reasoning activities. To address this gap, we analyzed 14 hours of design activity by eight pairs of professional software designers, manually coding over 4000 events capturing the introduction of visual syntactic elements into sketches, focus transitions between sketches, and reasoning activities. Our findings indicate that sketches serve as a rich medium for supporting design conversations. Designers often use general-purpose notations. Designers introduce new syntactic elements to record aspects of the design, or re-purpose sketches as the design develops. Designers constantly shift focus between sketches, using groups of sketches together that contain complementary information. Finally, sketches play an important role in supporting several types of reasoning activities (mental simulation, review of progress, consideration of alternatives). But these activities often leave no trace and rarely lead to sketch creation. We discuss the implications of these and other findings for the practice of software design at the whiteboard and for the creation of new electronic software design sketching tools.
'File' Attachments: internal-pdf://0907774221/How Software Designers Interact with Sketches.pdf
Reference Type: Journal Article
Record Number: 8425
Author: Morschheuser, Benedikt, Hassan, Lobna, Werder, Karl and Hamari, Juho
Title: How to design gamification? A method for engineering gamified software
Journal: Information and Software Technology
Short Title: How to design gamification? A method for engineering gamified software
ISSN: 0950-5849
DOI: https://doi.org/10.1016/j.infsof.2017.10.015
Keywords: Gamification
Software engineering
Design science research
Persuasive technology
Gameful design
Playfulness
Game design
Abstract: AbstractContext Since its inception around 2010, gamification has become one of the top technology and software trends. However, gamification has also been regarded as one of the most challenging areas of software engineering. Beyond traditional software design requirements, designing gamification requires the command of disciplines such as (motivational/behavioral) psychology, game design, and narratology, making the development of gamified software a challenge for traditional software developers. Gamification software inhabits a finely tuned niche of software engineering that seeks for both high functionality and engagement; beyond technical flawlessness, gamification has to motivate and affect users. Consequently, it has also been projected that most gamified software is doomed to fail. Objective This paper seeks to advance the understanding of designing gamification and to provide a comprehensive method for developing gamified software. Method We approach the research problem via a design science research approach; firstly, by synthesizing the current body of literature on gamification design methods and by interviewing 25 gamification experts, producing a comprehensive list of design principles for developing gamified software. Secondly, and more importantly, we develop a detailed method for engineering of gamified software based on the gathered knowledge and design principles. Finally, we conduct an evaluation of the artifacts via interviews of ten gamification experts and implementation of the engineering method in a gamification project. Results As results of the study, we present the method and key design principles for engineering gamified software. Based on the empirical and expert evaluation, the developed method was deemed as comprehensive, implementable, complete, and useful. We deliver a comprehensive overview of gamification guidelines and shed novel insights into the nature of gamification development and design discourse. Conclusion This paper takes first steps towards a comprehensive method for gamified software engineering.
Notes: specific solution
URL: https://www.sciencedirect.com/science/article/pii/S095058491730349X
Reference Type: Conference Proceedings
Record Number: 7534
Author: Tang, A., Razavian, M., Paech, B. and Hesse, T. M.
Year of Conference: 2017
Title: Human Aspects in Software Architecture Decision Making: A Literature Review
Conference Name: 2017 IEEE International Conference on Software Architecture (ICSA)
Pages: 107-116
Date: 3-7 April 2017
Short Title: Human Aspects in Software Architecture Decision Making: A Literature Review
DOI: 10.1109/ICSA.2017.15
Keywords: decision making
human factors
software architecture
architectural design practices
decision making behavior
decision making practice
human aspects
human behaviors
mental activity
software architecture decision making
Bibliographies
Conferences
Economics
Software
Tools
human behavior
methods and tools
Abstract: Despite past efforts, we have little understanding and limited research efforts on how architects make decisions in the real-world settings. It seems that software architecture researchers make implicit assumption that decision making by software architects can be a rational and prescribed process. Such an assumption is disputed in other fields such as economics and decision research. This paper studies the current state of software architecture decision making research in terms of human behaviors and practice. We carried out a literature review on software architecture decision making. We classified papers into decision making behavior and decision making practice and identified the research relationships between them. We found that decision making is a mental activity. Research into the behavioral aspects of software architecture decision making for incorporation into architectural design practices is required. We suggest three research topics on human aspects to improve software architecture practices.
Notes: Literature review
Reference Type: Conference Proceedings
Record Number: 8847
Author: Chepken, C., Blake, E. and Marsden, G.
Year of Conference: 2013
Title: ICTs and survival tactics for the day-labour workers: Implications for design
Conference Name: 2013 IST-Africa Conference & Exhibition
Pages: 1-8
Date: 29-31 May 2013
Short Title: ICTs and survival tactics for the day-labour workers: Implications for design
Keywords: Digital Divide
decision making
human factors
mobile radio
ICTs
Nairobi Kenya
day-labour market
day-labour workers
digital divide gap reduction
mobile phone services
network tariffs
policy formulation
software design decision making
survival tactics
Cities and towns
Interviews
Mobile communication
Mobile handsets
Organizations
Software systems
DLM
Day-labourer
tariffs
Abstract: In this paper, we show how results of data collected on the survival tactics of day-labour workers with regard to the cost of using mobile phone services played a role in software systems design. The paper uses findings from Nairobi Kenya. The results showed that workers, depending on the choice of available network tariffs adopt different survival tactics which range from being personal to involving others. In conclusion, workers as mobile phone users adopt the different survival tactics depending on what the market provides. The competitiveness of the market dictates the options available. Lessons from this research were used in making software design decisions for the day-labour market. They can also be used, among other things, by Information and Communication Technology researchers who wish to intervene for the poor in society. Other uses include for policy formulation, especially those that touch on reducing the digital divide gap.
Reference Type: Conference Proceedings
Record Number: 9139
Author: Thurimella, A. K., Bruegge, B. and Creighton, O.
Year of Conference: 2008
Title: Identifying and Exploiting the Similarities between Rationale Management and Variability Management
Conference Name: 2008 12th International Software Product Line Conference
Pages: 99-108
Date: 8-12 Sept. 2008
Short Title: Identifying and Exploiting the Similarities between Rationale Management and Variability Management
DOI: 10.1109/SPLC.2008.14
Keywords: knowledge management
product development
software development management
software reusability
distributed stakeholders
issue-based variability modeling
product line organization
rationale management
requirements engineering
variability management
Collaboration
Collaborative software
Collaborative work
Conference management
Decision making
Engineering management
Globalization
Investments
Software design
empirical software engineering
Abstract: Modeling variability is a challenging issue in product line requirements engineering. Particular problems include, the instantiation of variations for individual products, the long-term evolution of the product line, and the support of collaboration between stakeholders. These problems are even more complicated when the product line organization is globally distributed. To address theses problems, this paper identifies four higher-level similarities between rationale management (which focus on knowledge management during software design) and variability management. Furthermore, exploiting the similarities, rationale management is combined with variability management to contribute issue-based variability modeling. Issue-based variability modeling was implemented and empirically evaluated based on a series of case studies with multi-case design. The results of the evaluation show that our approach improves the instantiation and evolution of variability, enables better informal collaboration between distributed stakeholders with different levels of modeling expertise and enhances the longevity of product lines.
Notes: about decision management
Reference Type: Conference Proceedings
Record Number: 8976
Author: Sherman, S. and Hadar, I.
Year of Conference: 2012
Title: Identifying the need for a sustainable architecture maintenance process
Conference Name: 2012 5th International Workshop on Co-operative and Human Aspects of Software Engineering (CHASE)
Pages: 132-134
Date: 2-2 June 2012
Short Title: Identifying the need for a sustainable architecture maintenance process
DOI: 10.1109/CHASE.2012.6223010
Keywords: software architecture
software development management
system documentation
architectural documentation
software development
supporting tools
sustainable architecture maintenance process
well-defined process
Architecture
Computer architecture
Documentation
Maintenance engineering
Software
Variable speed drives
maintenanc
qualitative research
Abstract: Documentation plays a significant role in software development in general and in software architecture in particular. In large and complex systems, many changes affecting architecture and architectural documentation occur. This derives the need for constant changes within architecture documents in order to keep them up to date. This research in-progress aims to understand the current state of architecture maintenance towards proposing a solution for improving this practice via a well-defined process and supporting tools.
Notes: just documentation
Reference Type: Conference Proceedings
Record Number: 9476
Author: Stevanetic, S., Javed, M. A. and Zdun, U.
Year of Conference: 2015
Title: The Impact of Hierarchies on the Architecture-Level Software Understandability - A Controlled Experiment
Conference Name: 2015 24th Australasian Software Engineering Conference
Pages: 98-107
Date: Sept. 28 2015-Oct. 1 2015
Short Title: The Impact of Hierarchies on the Architecture-Level Software Understandability - A Controlled Experiment
ISBN: 1530-0803
DOI: 10.1109/ASWEC.2015.21
Keywords: software architecture
software quality
source code (software)
architecture-level software understandability
large-size software system
source code
Business
Computer architecture
Context
Software systems
Unified modeling language
controlled experiment
hierarchies
understandability
Abstract: Architectural component models represent high level designs and are frequently used as a central view of architectural descriptions of software systems. They play a crucial role in the whole development process and in achieving the desired software qualities. This paper presents an empirical study that examines the impact of hierarchies on the architecture-level software understand ability. In particular we have studied three different architectural representations of a large-size software system, one with a hierarchical representation where architectural components at all abstraction levels in the hierarchy are shown, and two that do not contain hierarchical abstractions but concentrate only on the lowest level or on the highest level components in the hierarchy. We conducted a controlled experiment in which participants of three groups received one of the three architecture documentations plus the source code of the system and had to answer understand ability related questions. Our results show that using the hierarchical architecture leads to: 1) higher quantity of correctly retrieved elements, 2) lower quantity of incorrectly retrieved elements, and 3) higher overall quality of retrieved elements. The obtained results provide empirical evidence that hierarchies play an important role in the context of architectural component models from the viewpoint of the architecture-level software understandability.
Notes: architecture structure, not about architects
Reference Type: Conference Proceedings
Record Number: 9303
Author: Heijstek, W. and Chaudron, M. R. V.
Year of Conference: 2010
Title: The Impact of Model Driven Development on the Software Architecture Process
Conference Name: 2010 36th EUROMICRO Conference on Software Engineering and Advanced Applications
Pages: 333-341
Date: 1-3 Sept. 2010
Short Title: The Impact of Model Driven Development on the Software Architecture Process
ISBN: 1089-6503
DOI: 10.1109/SEAA.2010.63
Keywords: software architecture
specification languages
code generator
domain-specific language
large-scale industrial software development project
model driven development
software architecture process
Business
DSL
Interviews
Lead
Programming
Software
Unified modeling language
Industrial Case Study
Model Driven Development (MDD)
Abstract: While Model-Driven Development (MDD) is an increasingly popular software development approach, its impact on the development process in large-scale, industrial practice is not yet clear. For this study the application of MDD in a large-scale industrial software development project is analyzed over a period of two years. Applying a grounded theory approach we identified 14 factors which impact the architectural process. We found that scope creep is more likely to occur, late changes can imply more extensive rework and that business engineers need to be more aware of the technical impact of their decisions. In addition, the introduced Domain-Specific Language (DSL) provides a new common idiom that can be used by more team members and will ease communication among team members and with clients. Also, modelers need to be much more explicit and complete in their descriptions. Parallel development of a code generator and defining a proper meta-model require additional time investments. Lastly, the more central role of software architecture design documentation requires more structured, detailed and complete architectural information and consequently, more frequent reviews.
Notes: development process
Reference Type: Conference Paper
Record Number: 8078
Author: Synder, Charles
Year: 1995
Title: Implementing a software architecture
Conference Name: Proceedings of the conference on TRI-Ada '95: Ada's role in global markets: solutions for a changing complex world
Conference Location: Anaheim, California, USA
Publisher: ACM
Pages: 299-305
DOI: 10.1145/376503.376598
Place Published: 376598
Notes: no abstract available
Reference Type: Journal Article
Record Number: 8475
Author: Gomes, Paulo, Seco, Nuno, Pereira, Francisco C., Paiva, Paulo, Carreiro, Paulo, Ferreira, José L. and Bento, Carlos
Year: 2006
Title: The importance of retrieval in creative design analogies
Journal: Knowledge-Based Systems
Volume: 19
Issue: 7
Pages: 480-488
Date: 11//
Short Title: The importance of retrieval in creative design analogies
ISSN: 0950-7051
DOI: https://doi.org/10.1016/j.knosys.2006.04.006
Keywords: Creative design
Analogy
Case-based reasoning
Software design
Abstract: Analogy is an important reasoning process in creative design. It enables the generation of new design artifacts using ideas from semantically distant domains. Candidate selection is a crucial process in the generation of creative analogies. Without a good set of candidate sources, the success of subsequent phases can be compromised. Two main types of selection have been identified: semantics-based retrieval and structure-based retrieval. This paper presents an empirical study on the importance of the analogy retrieval strategy in the domain of software design. We argue that both types of selection are important, but they play different roles in the process.
Notes: Tool build that is then empirical validated
URL: https://www.sciencedirect.com/science/article/pii/S095070510600061X
'File' Attachments: internal-pdf://1088938409/The importance of retrieval in creative design.pdf
Reference Type: Conference Proceedings
Record Number: 8910
Author: Lindgren, M., Norstrom, C., Wall, A. and Land, R.
Year of Conference: 2008
Title: Importance of Software Architecture during Release Planning
Conference Name: Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008)
Pages: 253-256
Date: 18-21 Feb. 2008
Short Title: Importance of Software Architecture during Release Planning
DOI: 10.1109/WICSA.2008.10
Keywords: software architecture
decision making
release planning
Companies
Computer industry
Computer science
Costs
Force measurement
Process planning
Product development
Proposals
Time to market
role of the software architect
Abstract: Release planning is the process of deciding what to include in future release(s) of a product. In this paper we look at how software architects are involved during release planning in industry today, and how architectural issues are considered during this phase.
'File' Atttachments: internal-pdf://0388462590/Importance of Software Architecture during Rel.pdf
Reference Type: Journal Article
Record Number: 8637
Author: Hertzum, Morten
Year: 2002
Title: The importance of trust in software engineers' assessment and choice of information sources
Journal: Information and Organization
Volume: 12
Issue: 1
Pages: 1-18
Date: 1//
Short Title: The importance of trust in software engineers' assessment and choice of information sources
ISSN: 1471-7727
DOI: https://doi.org/10.1016/S1471-7727(01)00007-0
Keywords: Trust
Information seeking
Communication by engineers
Information sources
Abstract: Engineers such as systems developers get most of their information from colleagues and internal reports. In the literature on engineers' information-seeking practices the generally agreed-upon explanation of this preference for close-by, internal information sources is that engineers follow a principle of least effort by choosing their information sources on the basis of ease of access rather than quality of contents. This study argues that engineers' preference for internal sources such as their colleagues is just as much a preference for sources with a known or easily determinable trustworthiness as it is a preference for information that is easily accessible. Trust is of central importance because quality is a perceived property and, thus, assessing the quality of an information source is essentially a matter of establishing to what extent one is willing to place trust in it. This can be done with greater ease and precision for familiar sources. A field study of the meetings in a software design project shows that in discussing and selecting information sources the software engineers devote significantly more attention to quality-related factors than to cost-related factors. It is also normal conversational practice at the meetings to accompany the mentioning of information sources that may be unknown to some project participants by information that puts them in context. Systems for managing knowledge and sharing expertise must recognise these rich means of forming a perception of the credibility of individual pieces of information.
URL: https://www.sciencedirect.com/science/article/pii/S1471772701000070
Reference Type: Conference Proceedings
Record Number: 8807
Author: McCollum, B., Purnell, V., Corr, P. H. and Milligan, P.
Year of Conference: 1998
Title: The improvement of a software design methodology by encapsulating knowledge from code
Conference Name: Proceedings. 24th EUROMICRO Conference (Cat. No.98EX204)
Volume: 2
Pages: 913-918 vol.2
Date: 25-27 Aug 1998
Short Title: The improvement of a software design methodology by encapsulating knowledge from code
ISBN: 1089-6503
DOI: 10.1109/EURMIC.1998.708121
Keywords: expert systems
knowledge acquisition
neural nets
programming environments
software maintenance
systems re-engineering
KATT
development environment
dusty-deck systems
knowledge encapsulation
legacy codes
neural networks
reengineering
restructuring knowledge
sequential architectures
sequential codes
software design methodology
software engineering methodologies
Costs
Data analysis
Java
Modems
Multiprocessing systems
Software design
Software engineering
Workstations
Abstract: While numerous software engineering methodologies exist, are well documented, and are widely used, e.g. JSD, SSADM, etc., it can be argued that none cater for the specific problems associated with reengineering legacy, or dusty-deck systems. This paper reports on a development environment, KATT, that enshrines a methodology which enables the development of new codes or the reengineering of existing legacy codes. The system is designed to enable sequential codes to be translated for execution on either parallel or sequential architectures, e.g. moving Fortran 77 to a workstation cluster or translating Cobol to Java. The approach involves the encapsulation and application of restructuring knowledge via the use of expert systems and neural networks
Notes: tool
Reference Type: Conference Proceedings
Record Number: 9293
Author: Gopalakrishnan, A.
Year of Conference: 2015
Title: Improving decision making and reuse in software systems using Domain Specific reference Architectures
Conference Name: 2015 IEEE International Conference on Electronics, Computing and Communication Technologies (CONECCT)
Pages: 1-6
Date: 10-11 July 2015
Short Title: Improving decision making and reuse in software systems using Domain Specific reference Architectures
DOI: 10.1109/CONECCT.2015.7383933
Keywords: decision making
decision trees
program diagnostics
software architecture
software reusability
abstraction structures
architecture patterns
domain specific reference architectures
intraorganizational reuse
program code
software architects
software design
software engineering
software system reusability
technical decision making
Business
Computer architecture
Microgrids
Performance evaluation
Software
Design Patterns
Domain Specific Software Architecture
Technical Decisions
Abstract: Software Engineering has evolved over many years but stays human centric as it relies significantly on the technical decisions made by humans. Modeling the problem statement and arriving at the architecture and design revolves in the minds of software architects and designers. Many of the decisions stays in architect's minds and are only present in the models. The abstraction structures in software design are deeper than in other disciplines, since the final design is program code. This distinction leads to software architecture and design a highly interwoven process. The early design decisions are otherwise termed architectural decisions which compose software architecture. The architectural decisions are at an intermediate abstraction level with higher probability of reuse, but still not effectively reused even within the same organization. The most effective cases of reuse in software is with architecture patterns and design patterns. The paper points to the fact that patterns are successfully reused due to the quality of the descriptions which include problem, solution pair and supporting example. The paper focuses on intra-organizational reuse, based on Domain Specific Software Architectures and the descriptions containing domain model, decision trees, architectural schema and rationale. It further tries to analyze three different use cases in the light of these elements and analyze if major hindrance of reuse is `Rationale of decisions not well understood' than the commonly stated `Not Invented here', supported with a survey of software engineers.
Reference Type: Journal Article
Record Number: 8529
Author: McDermid, J. A.
Year: 1991
Title: In praise of architects
Journal: Information and Software Technology
Volume: 33
Issue: 8
Pages: 566-574
Date: 10//
Short Title: In praise of architects
ISSN: 0950-5849
DOI: https://doi.org/10.1016/0950-5849(91)90115-R
Keywords: software crisis
software design
software system architecture
requirements analysis
Abstract: There are many documented cases of unsuccessful software development projects and it is possible to identify a number of key technical and managerial difficulties that underlie the problems of many projects. It is argued that software development could gain by adopting and adapting some principles from the building profession — especially giving more prominence, and a more pivotal role in development, to the software system architecture. The nature of a software architecture (specification) and some of the issues in developing architectures are discussed. A number of conclusions is drawn, including a consideration of the commercial implications of the establishment of ‘software architects’ practices.
URL: https://www.sciencedirect.com/science/article/pii/095058499190115R
Reference Type: Conference Paper
Record Number: 8169
Author: Boer, Remco C. de and Farenhorst, Rik
Year: 2008
Title: In search of `architectural knowledge'
Conference Name: Proceedings of the 3rd international workshop on Sharing and reusing architectural knowledge
Conference Location: Leipzig, Germany
Publisher: ACM
Pages: 71-78
DOI: 10.1145/1370062.1370080
Place Published: 1370080
Abstract: The software architecture community puts more and more emphasis on 'architectural knowledge'. However, there appears to be no commonly accepted definition of what architectural knowledge entails, which makes it a fuzzy concept. In order to obtain a better understanding of how different authors view 'architectural knowledge', we have conducted a systematic review to examine how architectural knowledge is defined and how the different definitions in use are related. From this review it became clear that many authors do not provide a concrete definition of what they think architectural knowledge entails. What is more intriguing, though, is that those who do give a definition seem to agree that architectural knowledge spans from problem domain through decision making to solution; an agreement that is not obvious from the definitions themselves, but which is only brought to light after careful systematic comparison of the different studies.
Notes: literature review
Reference Type: Conference Proceedings
Record Number: 7738
Author: Manteuffel, C., Tofan, D., Koziolek, H., Goldschmidt, T. and Avgeriou, P.
Year of Conference: 2014
Title: Industrial Implementation of a Documentation Framework for Architectural Decisions
Conference Name: 2014 IEEE/IFIP Conference on Software Architecture
Pages: 225-234
Date: 7-11 April 2014
Short Title: Industrial Implementation of a Documentation Framework for Architectural Decisions
DOI: 10.1109/WICSA.2014.32
Keywords: decision making
document handling
software architecture
architectural decisions
architecture capturing
architecture decision documentation
decision documentation tool
decision sharing feature
documentation framework
enterprise architect
exploratory case study
reporting feature
viewpoint-based decision documentation framework
Computer architecture
Concrete
Context
Documentation
Interviews
Software
Unified modeling language
architectural viewpoints
architecture decisions
industrial case study
tool-support
Abstract: Architecture decisions are often not explicitly documented in practice but reside in the architect's mind as tacit knowledge, even though explicit capturing and documentation of architecture decisions has been associated with a multitude of benefits. As part of a research collaboration with ABB, we developed a tool to document architecture decisions. This tool is an add-in for Enterprise Architect and is an implementation of a viewpoint-based decision documentation framework. To validate the add-in, we conducted an exploratory case study with ABB architects. In the study, we assessed the status quo of architecture decision documentation, identified architects' expectations of the ideal decision documentation tool, and evaluated the new add-in. We found that although awareness of decision documentation is increasing at ABB, several barriers exist that limit the use of decisions in practice. Regarding their ideal tool, architects want a descriptive and efficient approach. Supplemental features like reporting or decision sharing are requested. The new add-in, was well-perceived by the architects. As a result of the study, we propose a clearer separation of problem, outcomes, and alternatives for the decision documentation framework.
Notes: implementation of a tool
Reference Type: Journal Article
Record Number: 8598
Author: Svahnberg, Mikael
Year: 2004
Title: An industrial study on building consensus around software architectures and quality attributes
Journal: Information and Software Technology
Volume: 46
Issue: 12
Pages: 805-818
Date: 9/15/
Short Title: An industrial study on building consensus around software architectures and quality attributes
ISSN: 0950-5849
DOI: https://doi.org/10.1016/j.infsof.2004.02.001
Keywords: Architecture candidates
Architecture tradeoff analysis method
Framework for architecture structure
Abstract: When creating an architecture for a software system it is important to consider many aspects and different sides of these aspects at an early stage, lest they are misunderstood and cause problems at later stages during development. In this paper, we report from an industry study to understand and select between different architecture candidates. The company uses a method that focuses discussions of architecture candidates to where there are disagreements between the participating domain experts. The results indicate that the used method pinpoints for the company where further investigations are necessary and that the decision concerning which architecture to use is taken with more confidence as a result of the focused discussions.
URL: https://www.sciencedirect.com/science/article/pii/S0950584904000266
'File' Attachments: internal-pdf://1864746796/An industrial study on building consensus arou.pdf
Reference Type: Conference Paper
Record Number: 7887
Author: Petre, Marian
Year: 2009
Title: Insights from expert software design practice
Conference Name: Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Conference Location: Amsterdam, The Netherlands
Publisher: ACM
Pages: 233-242
DOI: 10.1145/1595696.1595731
Place Published: 1595731
Abstract: Software is a designed artifact. In other design disciplines, such as architecture, there is a well-established tradition of design studies which inform not only the discipline itself but also tool design, processes, and collaborative work. The 'challenge' of this paper is to consider software from such a 'design studies' perspective. This paper will present a series of observations from empirical studies of expert software designers, and will draw on examples from actual professional practice. It will consider what experts' mental imagery, software visualisations, and sketches suggest about software design thinking. It will also discuss some of the deliberate practices experts use to promote innovation. Finally, it will open discussion on the tensions between observed software design practices and received methodology in software engineering.
Notes: Talk - not research
'File' Attachments: internal-pdf://3034364825/Insights from expert software design practice.pdf
Reference Type: Journal Article
Record Number: 8740
Author: Jelassi, M. Tawfik and Beauclair, Renée A.
Year: 1987
Title: An integrated framework for group decision support systems design
Journal: Information & Management
Volume: 13
Issue: 3
Pages: 143-153
Date: 10//
Short Title: An integrated framework for group decision support systems design
ISSN: 0378-7206
DOI: https://doi.org/10.1016/0378-7206(87)90022-X
Keywords: Group decision making
Group decision support systems
Behavioral issues
System development
Software design
Abstract: Proposed approaches for the development of Group Decision Support Systems (gdss) address behavioral and technical aspects of these systems. However, these approaches generally address only one of these aspects at a time. This paper reviews these approaches and suggests a framework for developing gdss based on an integrated perspective. This proposed framework is comprehensive and integrative as it combines the behavioral characteristics of group decision making with the technical specifications that drive gdss. Software design and future research issues are discussed.
Notes: tool development
URL: https://www.sciencedirect.com/science/article/pii/037872068790022X
Reference Type: Conference Proceedings
Record Number: 9326
Author: Chanda, N. and Liu, X. F.
Year of Conference: 2015
Title: Intelligent analysis of software architecture rationale for collaborative software design
Conference Name: 2015 International Conference on Collaboration Technologies and Systems (CTS)
Pages: 287-294
Date: 1-5 June 2015
Short Title: Intelligent analysis of software architecture rationale for collaborative software design
DOI: 10.1109/CTS.2015.7210436
Keywords: decision making
formal specification
groupware
management of change
program diagnostics
program verification
software architecture
address change management
collaborative software design
design decision making process
intelligent software architecture rationale analysis
requirement satisfaction system
requirement traceability
software architecture elements
software requirements
software system maintainability
textual analysis
traceability matrix
Artificial intelligence
Collaboration
Computer architecture
Software
Architecture Knowledge Capture
Collaborative (Global) Software Development
Collaborative Conflict Management
Collaborative Decision Making and Support
Collaborative Knowledge Management
Collaborative Software Architecture Design
Collective Intelligence
Abstract: A set of principle design decisions drives architects to design software architecture for a system satisfying requirements. The design decision making process involves a group of stakeholders exchanging their viewpoints to address various concerns and reach a consensus. Often the architecture rationale behind various design decisions is not fully captured and hence affects the maintainability of software systems. In this paper, we identify three research challenges to analyze the architecture rationale in various perspectives to provide stakeholders with a more detailed view that aids them in decision making. Firstly, we determine collective opinions of a group on different viewpoints and detect viewpoints which have gained a significant attention into the online discussion. Secondly, we propose a method to develop a traceability matrix that links various software architecture elements to its related software requirements. The requirements traceability helps to maintain software systems and address change management. Thirdly, We perform textual analysis of stakeholders' views to determine the topics that are most discussed. In order to capture and maintain the software architecture rationale for analysis, we briefly present the design of an intelligent software architecture rationale capture system that enables stakeholders to participate in an online discussion to resolve a design issue collaboratively. The system captures a structured design rationale which maintains its links to software requirements and architecture elements. Finally, a comprehensive empirical study is presented. The results from the study indicate that our system is effective in capturing and supporting stakeholders in a collaborative decision making.
Notes: tool
Reference Type: Conference Proceedings
Record Number: 9206
Author: Taylor, P.
Year of Conference: 2001
Title: Interpreting Mayall's 'Principles in Design'
Conference Name: Proceedings 2001 Australian Software Engineering Conference
Pages: 297-305
Date: 2001
Short Title: Interpreting Mayall's 'Principles in Design'
ISBN: 1530-0803
DOI: 10.1109/ASWEC.2001.948523
Keywords: professional aspects
software engineering
contemporary software design
current attitudes
perceptions
software design
Computer architecture
Computer science
Design engineering
Engineering management
Fabrics
Production
Productivity
Programming
Abstract: Design-a foundation of software engineering-has its own base of theory originating in architecture and spanning diverse disciplines. The paths of software and design theory separated when software design aligned with the engineering and production metaphors in the interests of manageability and formalism. The two disciplines have continued independent discourses, despite some important similarities. However, economic pressures and technology convergence may be forcing a reconciliation of sorts. As software becomes a pervasive design fabric, designers working in a range of media will converge, and from a systems perspective, lightweight development paradigms appear to be challenging the overheads of incumbent process-intensive engineering models. It is timely to go back to the point of divergence to see just how far modern software design norms have strayed from basic design theory of several decades ago. This paper examines Mayall's 'Principles in Design' (1979) and presents an interpretation of how contemporary software design relates to this unofficial design canon. Mayall's ten principles are treated as an assessment instrument, to provide a mirror on current attitudes and perceptions of the role of design in software engineering
Notes: Review/extension
Reference Type: Conference Proceedings
Record Number: 7914
Author: Shahin, Mojtaba, Babar, Muhammad Ali and Zhu, Liming
Year of Conference: 2016
Title: The Intersection of Continuous Deployment and Architecting Process: Practitioners' Perspectives
Conference Name: Proceedings of the 10th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement
Conference Location: Ciudad Real, Spain
Publisher: ACM
Pages: 1-10
Short Title: The Intersection of Continuous Deployment and Architecting Process: Practitioners' Perspectives
DOI: 10.1145/2961111.2962587
Place Published: 2962587
Abstract: Context: Development and Operations (DevOps) is an emerging software industry movement to bridge the gap between software development and operations teams. DevOps supports frequently and reliably releasing new features and products-- thus subsuming Continuous Deployment (CD) practice. Goal: This research aims at empirically exploring the potential impact of CD practice on architecting process. Method: We carried out a case study involving interviews with 16 software practitioners. Results: We have identified (1) a range of recurring architectural challenges (i.e., highly coupled monolithic architecture, team dependencies, and ever-changing operational environments and tools) and (2) five main architectural principles (i.e., small and independent deployment units, not too much focus on reusability, aggregating logs, isolating changes, and testability inside the architecture) that should be considered when an application is (re-) architected for CD practice. This study also supports that software architecture can better support operations if an operations team is engaged at an early stage of software development for taking operational aspects into considerations. Conclusion: These findings provide evidence that software architecture plays a significant role in successfully and efficiently adopting continuous deployment. The findings contribute to establish an evidential body of knowledge about the state of the art of architecting for CD practice
'File' Atttachments: internal-pdf://1903914556/The Intersection of Continuous Deployment and.pdf
Reference Type: Conference Proceedings
Record Number: 8824
Author: Riebisch, M. and Wohlfarth, S.
Year of Conference: 2007
Title: Introducing Impact Analysis for Architectural Decisions
Conference Name: 14th Annual IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'07)
Pages: 381-392
Date: 26-29 March 2007
Short Title: Introducing Impact Analysis for Architectural Decisions
DOI: 10.1109/ECBS.2007.46
Keywords: decision making
decision theory
software architecture
software quality
task analysis
architectural decisions
architectural quality
contemporary software systems
impact analysis
refactoring
Application software
Delay
Informatics
Process design
Software engineering
Software systems
Uncertainty
Reengineering
Abstract: Architectural quality constitutes a critical factor for contemporary software systems, especially because of their size and the needs for frequent, quick changes. For success-critical business systems, architectural decisions are of high risk for the market share and even for the existence of enterprises. These decisions are important for design processes as well as for refactoring. Because of the complexity of the decisions, e.g., uncertain, contradicting goals, unknown effects and risky conditions, decision-making is a difficult and risky task. Risks can be minimized if the decisions are made systematically. In an earlier paper, we introduced methods of decision theory to perform such decisions in a rational way. This paper introduces a method for evaluating alternatives of architectural decisions, for both architectural design and refactoring. This method adopts elements of the scenario-based evaluation method ALMA (Bengtsson et al., 2004). A practical example illustrates the application of the improved decision process
Notes: framework/process
Reference Type: Journal Article
Record Number: 8804
Author: Booch, G.
Year: 2007
Title: The Irrelevance of Architecture
Journal: IEEE Software
Volume: 24
Issue: 3
Pages: 10-11
Short Title: The Irrelevance of Architecture
ISSN: 0740-7459
DOI: 10.1109/MS.2007.93
Keywords: program testing
software architecture
systems analysis
design decisions
software-intensive system architecture
system behavior
system life cycle
system tests
Buildings
Computer architecture
Economies of scale
Life testing
Programming profession
Project management
Quality management
Risk management
Software testing
System testing
stakeholder roles
Abstract: The architecture of a software-intensive system is largely irrelevant to its end users. Far more important to these stakeholders is the system's behavior, exhibited by raw, naked, running code. Most interesting system tests should be based on the use cases that are identified incrementally over the system's life cycle, the same use cases that the system's architects used to guide their design decisions. Testers can conduct other system tests only after the system's architecture is crisp. Just as analysts use a system's architecture as scaffolding along which to climb and examine the details of every edge, so too can testers use a system's architecture to devise tests that are relevant to the particular texture of that implementation
Notes: focus on end user
Reference Type: Conference Proceedings
Record Number: 9282
Author: Xu, B.
Year of Conference: 2006
Title: Knowledge Based Micro-Estimation in Task Arrangement for Cooperative Global Software Design
Conference Name: 2006 International Conference on Machine Learning and Cybernetics
Pages: 682-686
Date: 13-16 Aug. 2006
Short Title: Knowledge Based Micro-Estimation in Task Arrangement for Cooperative Global Software Design
ISBN: 2160-133X
DOI: 10.1109/ICMLC.2006.258417
Keywords: cost-benefit analysis
groupware
project management
scheduling
software cost estimation
software development management
PERT technique
cooperative global software design
cost estimation
historic project data
knowledge based microestimation
task arrangement
task estimation
task scheduling
Collaborative software
Computer science
Costs
Cybernetics
Delay estimation
Educational institutions
Internet
Machine learning
Programming
Software design
Virtual groups
Communication delay
Global cooperative software design
Knowledge based micro-estimation
Abstract: Communication and coordination are main factors impacting global software design. As a result, task estimation and task scheduling should be well performed so as to reduce the impact of communication delay and promote the coordination. Accurate duration and cost estimation is critical so far, there are many variables for accurate estimate of cost or duration including the type of application and domain, the environment, the team organization, people's expertise, the culture involved, and the relationship between all stakeholders. This paper presents a micro-estimation solution based on historic project data so as to well arrange tasks in cooperative global software design. PERT technique has been adopted, and the veracity of the estimation can be identified and adjusted
Reference Type: Journal Article
Record Number: 8684
Author: Guindon, Raymonde
Year: 1990
Title: Knowledge exploited by experts during software system design
Journal: International Journal of Man-Machine Studies
Volume: 33
Issue: 3
Pages: 279-304
Date: 9//
Short Title: Knowledge exploited by experts during software system design
ISSN: 0020-7373
DOI: https://doi.org/10.1016/S0020-7373(05)80120-8
Abstract: High-level software design is characterized by incompletely specified requirements, no predetermined solution path, and by the integration of multiple domains of knowledge at various levels of abstraction. The application of data-driven knowledge rules characterizes expertise. A verbal protocol study describes these domains of knowledge and how experts exploit their rich knowledge during design. It documents how designers heavily rely on problem domain scenario simulations throughout solution development. These simulations trigger the inferences of new requirements and complete the requirement specification. Designers recognize partial solutions at various levels of abstraction in the design decomposition through the application of data-driven rules. Designers also rely heavily on simulations of their design solutions. but these are shallow, that is, limited to one level of abstraction in the solution. The findings also illustrate how designers capitalize on design methods, notations, and specialized software design schemas. Finally, the study describes how designers exploit powerful heuristics and personalized evaluation criteria to constrain the design process and select a satisfactory solution. Studies, such as this one, help map the road to understanding expertise in complex tasks.
URL: https://www.sciencedirect.com/science/article/pii/S0020737305801208
'File' Attachments: internal-pdf://1528994201/Knowledge exploited by experts during software.pdf
Reference Type: Journal Article
Record Number: 8401
Author: Figueiredo, Mayara Costa, de Souza, Cleidson R. B., Pereira, Marcelo Zílio, Prikladnicki, Rafael and Audy, Jorge Luis Nicolas
Year: 2014
Title: Knowledge transfer, translation and transformation in the work of information technology architects
Journal: Information and Software Technology
Volume: 56
Issue: 10
Pages: 1233-1252
Date: 10//
Short Title: Knowledge transfer, translation and transformation in the work of information technology architects
ISSN: 0950-5849
DOI: https://doi.org/10.1016/j.infsof.2014.04.001
Keywords: IT architecture
Software architecture
Architect roles
Abstract: AbstractContext Information Technology (IT) architects are the professionals responsible for designing the information systems for an organization. In order to do that, they take into account many aspects and stakeholders, including customers, software developers, the organization’s business, and its current IT infrastructure. Therefore, different aspects influence their work. Objective This paper presents results of research into how IT architects perform their work in practice and how different aspects are taken into account when an information system is developed. An understanding of IT architects’ activities allows us to better support their work. This paper extends our own previous work (Figueiredo et al., 2012) [30] by discussing aspects of knowledge management and tool support. Method A qualitative study was conducted using semi-structured interviews for data collection and grounded theory methods (Strauss and Corbin, 1998) [5] for data analysis. Twenty-seven interviews were conducted with twenty-two interviewees from nine different companies through four cycles of data collection and analysis. Results Companies divide IT architecture activities among different roles. Although these roles receive different names in different organizations, all organizations follow a similar pattern based on 3 roles: enterprise, solutions and software architects. These architects perform both the technical activities related to the IT architecture and the social activities regarding the communication and coordination with other stakeholders and among themselves. Furthermore, current tools used by IT architects lack adequate support for all these aspects. Conclusion The activities of the different IT architects are highly interconnected and have a huge influence in the way the requirements are handled in every phase of the development of an information system. The activities of IT architects are also important for knowledge transfer, translation and transformation, since they receive from and spread information to different groups of stakeholders. We also conclude that they lack appropriate tool support, especially regarding support for their collaborative work.
URL: https://www.sciencedirect.com/science/article/pii/S0950584914000810
'File' Attachments: internal-pdf://2014457079/Knowledge transfer, translation and transforma.pdf
Reference Type: Conference Paper
Record Number: 8177
Author: Nakagawa, Elisa Yumi, Becker, Martin, Jos, #233 and Maldonado, Carlos
Year: 2012
Title: A knowledge-based framework for reference architectures
Conference Name: Proceedings of the 27th Annual ACM Symposium on Applied Computing
Conference Location: Trento, Italy
Publisher: ACM
Pages: 1197-1202
DOI: 10.1145/2245276.2231964
Place Published: 2231964
Abstract: Software architectures play a major role in determining system quality, since they form the backbone of any successful software-intensive system. In this context, reference architectures refer to a special type of software architecture that capture the essence of the system architectures of a given domain, encompassing the knowledge about how to develop, standardize, and evolve systems of that domain. However, in spite of the considerable number of reference architectures available, no good understanding exists regarding knowledge contained in reference architectures. The main contribution of this work is to provide a better understanding of such knowledge and to propose a framework which presents a comprehensive panorama of this knowledge. An analysis of this framework is presented based on a relevant, well-known reference architecture widely used in industry. As its main result, this framework could provide a better understanding of the contents of such architectures, enabling the development of more complete, efficient reference architectures.
Notes: just tool
Reference Type: Journal Article
Record Number: 9086
Author: Tsai, J. J. P.
Year: 1988
Title: A knowledge-based system for software design
Journal: IEEE Journal on Selected Areas in Communications
Volume: 6
Issue: 5
Pages: 828-841
Short Title: A knowledge-based system for software design
ISSN: 0733-8716
DOI: 10.1109/49.634
Keywords: PROLOG
expert systems
heuristic programming
software tools
IBM 4341 computer
domain knowledge
encoded
environment information
frame-and-rule oriented requirements language
front-end dialogue system
functional decomposition
inference engine
knowledge-based system
program transformation process
software design heuristic guidelines
software system
stepwise refinement
Artificial intelligence
Documentation
Knowledge based systems
Knowledge engineering
Production systems
Programming
Software design
Software development management
Software prototyping
Software systems
Abstract: A knowledge-based system to support software design is presented. The knowledge-based system consists of a frame-and-rule oriented requirements language (FRORL), a knowledge base, an inference engine, and a front-end dialogue system. The FRORL is developed to facilitate the documentation and analysis of a software system. The software design heuristic guidelines (e.g. stepwise refinement, functional decomposition) and the domain knowledge are encoded using Prolog and are stored in a knowledge base. An inference mechanism is implemented to interpret the FRORL specification, that uses the design expertise in the knowledge base to perform a program transformation process. The front-end dialogue system is used to obtain the environment information from users to facilitate the transformation process. The knowledge-based system is implemented in Prolog on an IBM 4341 computer. Results indicate that the system can incrementally accumulate design experience and facilitate the software design process. Examples are also given to illustrate this system
Notes: just tool
Reference Type: Conference Proceedings
Record Number: 9057
Author: Wu, B. H.
Year of Conference: 2011
Title: Let's enforce a simple visualization rule in Software Architecture
Conference Name: International Conference on Information Science and Technology
Pages: 427-433
Date: 26-28 March 2011
Short Title: Let's enforce a simple visualization rule in Software Architecture
ISBN: 2164-4357
DOI: 10.1109/ICIST.2011.5765283
Keywords: data visualisation
software architecture
software development management
software development life cycle
software-centric system
visualization rule
Computer architecture
Hardware
Microprogramming
Software
Software measurement
Visualization
Abstract: Many software architecture books have been written during the past decade. Taylor et al. have made their latest attempt to settle a standard in their large volume book, Software Architecture: Foundations, Theory, and Practice. As a software development practitioner, the author of this paper, who worked on many software-centric systems in both Aerospace and Telecommunication industries, will provide a unique analysis of software architecture roles in the software development life cycle. Based on the view that the essential purpose of software architecture is to communicate the design of the software to its stakeholders, this paper proposes a simple approach to visualization in software architecture as a rule of thumb to achieve an effective communication in software development.
Notes: technique
Reference Type: Conference Paper
Record Number: 8179
Author: Banerjee, Somo, Mattmann, Chris A., Medvidovic, Nenad and Golubchik, Leana
Year: 2005
Title: Leveraging architectural models to inject trust into software systems
Conference Name: Proceedings of the 2005 workshop on Software engineering for secure systems—building trustworthy applications
Conference Location: St. Louis, Missouri
Publisher: ACM
Pages: 1-7
DOI: 10.1145/1082983.1083213
Place Published: 1083213
Abstract: Existing software systems have become increasingly durable and their lifetimes have significantly lengthened. They are increasingly distributed and decentralized. Our dependence on them has grown tremendously. As such, the issues of trustworthiness and security have become prime concerns in designing, constructing, and evolving software systems. However, the exact meanings of these concepts are not universally agreed upon, nor is their role in the different phases of the software development lifecycle. In this paper, we argue that trustworthiness is a more broadly encompassing term than security, and that the two are often interdependent. We then identify a set of dimensions of trustworthiness. Finally, we analyze how the key elements of a software system's architecture can be leveraged in support of those trustworthiness dimensions. Our ultimate goal is to apply these ideas in the context of a concrete software architecture project. The goal of this paper is more modest: to understand the problem area and its relation to software architecture.
Reference Type: Conference Proceedings
Record Number: 9456
Author: Xu, B., Huang, Z. and Wei, O.
Year of Conference: 2010
Title: Making Architectural Decisions Based on Requirements: Analysis and Combination of Risk-Based and Quality Attribute-Based Methods
Conference Name: 2010 7th International Conference on Ubiquitous Intelligence & Computing and 7th International Conference on Autonomic & Trusted Computing
Pages: 392-397
Date: 26-29 Oct. 2010
Short Title: Making Architectural Decisions Based on Requirements: Analysis and Combination of Risk-Based and Quality Attribute-Based Methods
DOI: 10.1109/UIC-ATC.2010.74
Keywords: decision making
decision support systems
inference mechanisms
software architecture
software quality
architectural decisions
architectural design
linkage
quality attribute-based methods
quality requirement
risk-based reasoning
software systems
system requirements
systematic analysis
Cognition
Computer architecture
Concrete
Couplings
Software
Quality Attribute-Based Method
Requirements
Abstract: Software architecture is critical to the success of large software systems. It has long been recognized that architectural design has profound impact on the achievement of system requirements. Two typical methods have been proposed to help users to make architectural decisions based on requirements. One method uses risk-based reasoning to help choosing good architectural design that can meet both system requirements and resource limitations, the other one, using quality attribute model as the linkage, enables deriving a fragment of architectural design that is focused on achieving certain quality requirement. However, there is little effort on comparing the two methods to discover similarities and differences. In this paper, we conduct a systematic analysis of the two methods, and compare them from the aspects of system requirements, architectural decisions, and mapping approach. We then propose a procedure to combine the two methods that provides better support to architectural design decision making.
Reference Type: Journal Article
Record Number: 9333
Author: Nord, R. L., Ozkaya, I. and Sangwan, R. S.
Year: 2012
Title: Making Architecture Visible to Improve Flow Management in Lean Software Development
Journal: IEEE Software
Volume: 29
Issue: 5
Pages: 33-39
Short Title: Making Architecture Visible to Improve Flow Management in Lean Software Development
ISSN: 0740-7459
DOI: 10.1109/MS.2012.109
Keywords: software architecture
software development management
workflow management software
cycle time
feature-based high priority functionality
flow management
lean software management
release plan
software development
work in process
Agile manufacturing
Computer architecture
Product life cycle management
Productivity
Programming
Software management
release planning
software engineering management
waste
Abstract: Lean practices use the principle of Little's law to improve the flow of value to the end user by eliminating sources of waste from a software development process. Little's law defines throughput as a ratio of work in process and cycle time. Increasing throughput (or productivity) requires continuously improving (that is, decreasing) cycle time while ensuring that the work-in-process limit doesn't exceed the capacity available to process the work. This article shares experiences regarding the role architecture plays in lean software management practices. Release plans that give as much emphasis to architecturally significant tasks as to feature-based high-priority functionality can achieve better outcomes by avoiding conditions that lead to wasted time and effort. The application of lean software development practices can improve with better practical guidance on how to manage architecture flow as well as feature flow.
Notes: development process
Reference Type: Conference Proceedings
Record Number: 9302
Author: Rodrigues, C. S. C. and Werner, C. M. L.
Year of Conference: 2011
Title: Making the comprehension of software architecture attractive
Conference Name: 2011 24th IEEE-CS Conference on Software Engineering Education and Training (CSEE&T)
Pages: 416-420
Date: 22-24 May 2011
Short Title: Making the comprehension of software architecture attractive
ISBN: 1093-0175
DOI: 10.1109/CSEET.2011.5876116
Keywords: Unified Modeling Language
computer aided instruction
computer science education
software architecture
3D visualization
UML models
VisAr3D approach
software architecture attractive
software architecture teaching
Computer architecture
Education
Solid modeling
Three dimensional displays
Visualization
Abstract: Visualization stimulates the cognitive capacity of humans and facilitates the understanding of a subject. It performs a crucial role in teaching software architecture. As systems become more complex, new education proposals have been introduced in the classroom, especially those that make teaching more attractive to students. This paper presents the VisAr3D approach which was designed to provide a 3D visualization of UML models, where the user should intuitively understand architectural elements in this 3D environment. It includes exploration, interaction and simulation resources to establish a practical and pleasant learning activity, focusing in large scale systems.
Notes: tool development
Reference Type: Journal Article
Record Number: 8454
Author: Cortellessa, Vittorio, Mirandola, Raffaela and Potena, Pasqualina
Year: 2015
Title: Managing the evolution of a software architecture at minimal cost under performance and reliability constraints
Journal: Science of Computer Programming
Volume: 98, Part 4
Pages: 439-463
Date: 2/1/
Short Title: Managing the evolution of a software architecture at minimal cost under performance and reliability constraints
ISSN: 0167-6423
DOI: https://doi.org/10.1016/j.scico.2014.06.001
Keywords: Software evolution
Software cost
Software reliability
Software performance
Optimization model
Abstract: Managing a software architecture after the deployment phase is a very complex task due to frequent changes in the software requirements and environment. The software architecture must evolve in order to tackle such changes. The goal of this paper is to provide support for the decisions that software architects make after deployment. This approach is based on an optimization model whose solution suggests the “best” actions to be taken according to a given change scenario (i.e., a set of new requirements that induce changes in the structural and behavioral aspects of the software architecture). The model aims to minimize the costs while keeping the reliability and the performance of the software architecture within certain thresholds. The approach has been implemented as a framework named SHEPhERd, which is composed of a UML case tool, a model builder and a model solver. We show how SHEPhERd works on a smartphone mobile application example, and we highlight its potential to drive architectural decisions through sensitivity analysis. The achieved results are compared with those obtained by two groups of (human) maintainers composed of experts and non-experts with respect to the system and the execution environment, and we show that SHEPhERd outperforms the human judgment-based approaches.
Notes: tool
URL: https://www.sciencedirect.com/science/article/pii/S0167642314002792
Reference Type: Conference Proceedings
Record Number: 9358
Author: Chavarriaga, J., Noguera, C., Casallas, R. and Jonckers, V.
Year of Conference: 2015
Title: Managing trade-offs among architectural tactics using feature models and feature-solution graphs
Conference Name: 2015 10th Computing Colombian Conference (10CCC)
Pages: 124-132
Date: 21-25 Sept. 2015
Short Title: Managing trade-offs among architectural tactics using feature models and feature-solution graphs
DOI: 10.1109/ColumbianCC.2015.7333406
Keywords: Internet
database management systems
formal specification
software architecture
software quality
architectural tactics
conflicting alternative selection
conflicting tactics
database-based Web applications
design alternatives
feature model
feature-solution graphs
nonconflicting tactics
quality attributes
trade-off decision
trade-off point detection
Computer architecture
Concurrent computing
Databases
Feature extraction
Redundancy
Servers
Software
Software Product Lines
Abstract: In Software Architecture, several approaches focus first on selecting architectural tactics to address quality attributes and later use the corresponding design alternatives to create application architectures. Regrettably, sometimes the alternatives used to improve some quality attributes inhibit or reduce the achievement of others. These conflicts, known as trade-off points, lead to trade-off decisions to solve them. Usually, detection of trade-off points and guidance for trade-off decisions rely on the expertise of software architects. The architect has to (1) identify and analyze the conflict on design alternatives, (2) determine which quality attributes and tactics motivated the selection of conflicting alternatives, and (3) decide about which set of non-conflicting tactics to use. This paper presents an approach based on feature models to help manage trade-offs. It is based on the specification of relationships between architectural tactics and design alternatives that describe, for each tactic, which combination of designs can be used or must not be used. When a set of tactics are selected to implement an architecture, these relationships serve to determine the set of alternatives to use. In addition, they aid to detect trade-off points and determine the tactics to consider in a trade-off decision. We present a formalization of our approach and illustrate it using a case study on tactics and patterns for database-based web applications.
Reference Type: Conference Proceedings
Record Number: 8921
Author: Heesch, U. v. and Avgeriou, P.
Year of Conference: 2011
Title: Mature Architecting - A Survey about the Reasoning Process of Professional Architects
Conference Name: 2011 Ninth Working IEEE/IFIP Conference on Software Architecture
Pages: 260-269
Date: 20-24 June 2011
Short Title: Mature Architecting - A Survey about the Reasoning Process of Professional Architects
DOI: 10.1109/WICSA.2011.42
Keywords: decision making
inference mechanisms
software architecture
industrial software architects
mature architecting
professional architects
reasoning process
Cognition
Computer architecture
Concrete
Context
Software
design reasoning
empirical study
survey
Abstract: Architecting is to a large extent a decision-making process. While many approaches and tools exist to support architects during the various activities of architecting, little guidance exists to support the reasoning part of decision-making. This is partly due to our limited understanding of how professional architects make decisions. We report on findings of a survey that we have conducted with 53 industrial software architects to find out how they reason in real projects. The results of the survey are interpreted with respect to the industrial context and the architecture literature. We derive reasoning best practices that can support especially inexperienced architects with optimizing their decision-making process.
'File' Atttachments: internal-pdf://1373501598/Mature Architecting - A Survey about the Reaso.pdf
Reference Type: Conference Proceedings
Record Number: 9640
Author: Braeuer, J.
Year of Conference: 2015
Title: Measuring Object-Oriented Design Principles
Conference Name: 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)
Pages: 882-885
Date: 9-13 Nov. 2015
Short Title: Measuring Object-Oriented Design Principles
DOI: 10.1109/ASE.2015.17
Keywords: knowledge based systems
object-oriented methods
object-oriented programming
software quality
source code (software)
metric-based model
object-oriented design
rule-based quality reference model
software design
software development
source-code quality
Context
Object oriented modeling
Software engineering
Software measurement
design model
design principles
software-design quality
softwaredesign assessment method
Abstract: The idea of automatizing the assessment of object-oriented design is not new. Different approaches define and apply their own quality models, which are composed of single metrics or combinations thereof, to operationalize software design. However, single metrics are too fine-grained to identify core design flaws and they cannot provide hints for making design improvements. In order to deal with these weaknesses of metric-based models, rules-based approaches have proven successful in the realm of source-code quality. Moreover, for developing a well-designed software system, design principles play a key role, as they define fundamental guidelines and help to avoid pitfalls. Therefore, this thesis will enhance and complete a rule-based quality reference model for operationalizing design principles and will provide a measuring tool that implements these rules. The validation of the design quality model and the measurement tool will be based on various industrial projects. Additionally, quantitative and qualitative surveys will be conducted in order to get validated results on the value of object-oriented design principles for software development.
Notes: Tool concept
Reference Type: Journal Article
Record Number: 8566
Author: Petre, Marian
Year: 2010
Title: Mental imagery and software visualization in high-performance software development teams
Journal: Journal of Visual Languages & Computing
Volume: 21
Issue: 3
Pages: 171-183
Date: 6//
Short Title: Mental imagery and software visualization in high-performance software development teams
ISSN: 1045-926X
DOI: https://doi.org/10.1016/j.jvlc.2009.11.001
Keywords: Software visualization
Empirical studies
High-performance programming
Teamwork
Abstract: This paper considers the relationship between mental imagery and software visualization in professional, high-performance software development. It presents overviews of four empirical studies of professional software developers in high-performing teams: (1) expert programmers’ mental imagery, (2) how experts externalize their mental imagery as part of teamwork, (3) experts’ use of commercially available visualization software, and (4) what tools experts build themselves, how they use the tools they build for themselves, and why they build tools for themselves. Through this series of studies, the paper provides insight into a relationship between how experts reason about and imagine solutions, and their use of and requirements for external representations and software visualization. In particular, it provides insight into how experts use visualization in reasoning about software design, and how their requirements for the support of design tasks differ from those for the support of other software development tasks. The paper draws on theory from other disciplines to explicate issues in this area, and it discusses implications for future work in this field.
Notes: literature review (or kind of)
URL: https://www.sciencedirect.com/science/article/pii/S1045926X09000755
Reference Type: Journal Article
Record Number: 8639
Author: Petre, Marian and Blackwell, Alan F.
Year: 1999
Title: Mental imagery in program design and visual programming
Journal: International Journal of Human-Computer Studies
Volume: 51
Issue: 1
Pages: 7-30
Date: 7//
Short Title: Mental imagery in program design and visual programming
ISSN: 1071-5819
DOI: https://doi.org/10.1006/ijhc.1999.0267
Abstract: There is widespread anecdotal evidence that expert programmers make use of visual mental images when they are designing programs. This evidence is used to justify the use of diagrams and visual programming languages during software design. This paper reports the results of two studies. In the first, expert programmers were directly questioned regarding the nature of their mental representations while they were engaged in a design task. This investigative technique was used with the explicit intention of eliciting introspective reports of mental imagery. In the second, users of a visual programming language responded to a questionnaire in which they were asked about cognitive processes. The resulting transcripts displayed a considerable number of common elements. These suggests that software design shares many characteristics of more concrete design disciplines. The reports from participants in the two studies, together with previous research into imagery use, indicate potential techniques for further investigation of software development support tools and design strategies.
Notes: included in other work, use most recent
URL: https://www.sciencedirect.com/science/article/pii/S1071581999902677
Reference Type: Journal Article
Record Number: 8638
Author: Far, Behrouz H., Ohmori, Mari, Baba, Takeshi, Yamasaki, Yasukiyo and Koono, Zenya
Year: 1996
Title: Merging CASE tools with knowledge-based technology for automatic software design
Journal: Decision Support Systems
Volume: 18
Issue: 1
Pages: 73-82
Date: 9//
Short Title: Merging CASE tools with knowledge-based technology for automatic software design
ISSN: 0167-9236
DOI: https://doi.org/10.1016/0167-9236(96)00019-X
Keywords: Software design
Expert system
Specification description language (SDL)
CASE tool
Abstract: An approach towards developing a Knowledge Based Software Engineering (KBSE) tool by merging a conventional CASE tool with the expert system technology is introduced. This is found useful in assisting human designers. Experimental expert systems CREATOR2 and CREATOR3 are introduced and applied to the design of switching software. The CREATOR2 has the following features: representing software design knowledge, composed of design product knowledge and design process knowledge, using frame technology; and integrating knowledge based reasoning techniques with a SDL CASE tool. CREATOR3 is an extension of the CREATOR2 system. It enables one with additional design schemas for splitting a process, adding events, etc., and additional representation power, such as using pictorial elements and designers' comments in the frame representation. This leads to a uniform modeling and advanced reasoning environment for software design. Experiments on designing switching software are reported.
Notes: Tool development
URL: https://www.sciencedirect.com/science/article/pii/016792369600019X
Reference Type: Conference Proceedings
Record Number: 8057
Author: Bhat, Manoj, Shumaiev, Klym, Biesdorf, Andreas, Hohenstein, Uwe, Hassel, Michael and Matthes, Florian
Year of Conference: 2016
Title: Meta-model based framework for architectural knowledge management
Conference Name: Proccedings of the 10th European Conference on Software Architecture Workshops
Conference Location: Copenhagen, Denmark
Publisher: ACM
Pages: 1-7
Short Title: Meta-model based framework for architectural knowledge management
DOI: 10.1145/2993412.3004848
Place Published: 3004848
Abstract: The need to support a software architect’s day-to-day activities through efficient tool support has been highlighted both in research and industry. However, managing enterprises’ Architectural Knowledge (AK) to support scenarios such as decision making, what-if analysis, and collaboration during the execution of large industrial projects is still a challenge. In this paper, we propose the architecture of an AK management framework to support software architects to manage AK. The components of this framework including SyncPipes and rule engine allow software architects to consolidate projects’ data from disparate sources and to define domain-specific rules to address the challenges in inconsistency analysis, context-sensitive recommendations, and tracking of artifacts within projects. The technical details for realizing the components of the framework are also presented. The proposed AK management framework has been successfully implemented as part of an industrial project and is currently being evaluated in different domains.
Notes: not focused on behavior
Reference Type: Conference Paper
Record Number: 7874
Author: Gon, Marcelo Benites, #231, alves, Oquendo, Flavio and Nakagawa, Elisa Yumi
Year: 2015
Title: A meta-process to construct software architectures for system of systems
Conference Name: Proceedings of the 30th Annual ACM Symposium on Applied Computing
Conference Location: Salamanca, Spain
Publisher: ACM
Pages: 1411-1416
DOI: 10.1145/2695664.2695737
Place Published: 2695737
Abstract: Nowadays, complex software systems tend to be the result of operationally independent, constituent systems working together, arising a new class of software systems called Systems of Systems (SoS). In another perspective, software architectures are essential to promote the success and quality of software systems, even more on SoS. However, the construction of SoS software architectures is typically ad-hoc without well-defined and standardized architecting approaches. In this context, the main contribution of this paper is the proposal of a "Meta-process for SoS Software Architectures" (SOAR), which supports the authoring of processes to construct SoS software architectures. SOAR is also independent of application domains and it is based on a broad, deep literature review as well as knowledge of experts. In order to evaluate the feasibility of SOAR, we conducted a survey with experts in SoS software architecture. The results of this survey indicate a good acceptance of SOAR among experts that also provided insights for improving SOAR. Our intention is to use SOAR as a framework to support the authoring of architecting processes for SoS and, further, to provide specialized versions including architectural decisions for specific application domains. Therefore, in some extent, we hope to contribute to the development projects of the new, important class of SoS software systems.
Notes: literature review
Reference Type: Conference Proceedings
Record Number: 8924
Author: Shepperd, M.
Year of Conference: 1989
Title: A metrics based tool for software design
Conference Name: Second International Conference on Software Engineering for Real Time Systems, 1989.
Pages: 45-49
Date: 18-20 Sep 1989
Short Title: A metrics based tool for software design
Keywords: software reliability
software tools
systems analysis
design metrics
design stage
intra-system level
metrics based tool
new architectures
potentially problematic designs
safety critical systems
software design
software engineers
software tool
system architecture
system level
Abstract: Decision making is an essential part of the design process. Unfortunately, software engineers are frequently forced to make important, and for safety critical systems, vital decisions in the absence of feedback. A software tool is presented which addresses this need for input at the design stage by building a model of the system architecture over which a number of metrics may be defined. At a system level these design metrics enable the characterisation and comparison of differing architectures for the same specification. At an intra-system level the metrics can help pinpoint weaknesses and thus facilitate the generation of new architectures. Empirical work suggests that such measures can be very effective at identifying potentially problematic designs and design components. In addition the tool allows the user to tailor the metrics to his or her specific needs and environment
Notes: tool development
Reference Type: Conference Paper
Record Number: 8095
Author: Zimmermann, Olaf
Year: 2015
Title: Metrics for architectural synthesis and evaluation: requirements and compilation by viewpoint: an industrial experience report
Conference Name: Proceedings of the Second International Workshop on Software Architecture and Metrics
Conference Location: Florence, Italy
Publisher: IEEE Press
Pages: 8-14
Place Published: 2821330
Abstract: During architectural analysis and synthesis, architectural metrics are established tacitly or explicitly. In architectural evaluation, these metrics then can be consulted to assess whether architectures are fit for purpose and in line with recommended practices and published architectural knowledge. This experience report presents a personal retrospective of the author's use of architectural metrics during 20 years in IT architect roles in professional services as well as research and development. This reflection drives the identification of use cases, critical success factors and elements of risk for architectural metrics management. An initial catalog of architectural metrics is then compiled, which is organized by viewpoints and domains. The report concludes with a discussion of practical impact of architectural metrics and potential research topics in this area.
Reference Type: Journal Article
Record Number: 8746
Author: Shepperd, M. and Ince, D.
Year: 1989
Title: Metrics, outlier analysis and the software design process
Journal: Information and Software Technology
Volume: 31
Issue: 2
Pages: 91-98
Date: 3//
Short Title: Metrics, outlier analysis and the software design process
ISSN: 0950-5849
DOI: https://doi.org/10.1016/0950-5849(89)90088-8
Keywords: software design
methodologies
metrics
outlier analysis
information flow metric
Abstract: The tutorial paper considers the question of how the software designer is to make use of the many design metrics that have been proposed by researchers over the past few years. The activity of software design is an iterative process of decision making. Design methodologies provide qualitative criteria for this decision-making process. In contrast, design metrics claim to provide objective, quantitative guidance. Three application methods for metrics are identified: prediction, quality control, and outlier analysis. Strong evidence is presented to show that, at present, the field of design metrics is only sufficiently mature to allow outlier analysis to be recommended as a useful aid to the software design process. The paper demonstrates this technique by evaluating an example design using the information flow metric.
URL: https://www.sciencedirect.com/science/article/pii/0950584989900888
Reference Type: Conference Proceedings
Record Number: 9601
Author: Samarthyam, G., Suryanarayana, G., Sharma, T. and Gupta, S.
Year of Conference: 2013
Title: MIDAS: A design quality assessment method for industrial software
Conference Name: 2013 35th International Conference on Software Engineering (ICSE)
Pages: 911-920
Date: 18-26 May 2013
Short Title: MIDAS: A design quality assessment method for industrial software
ISBN: 0270-5257
DOI: 10.1109/ICSE.2013.6606640
Keywords: expert systems
program testing
software architecture
software performance evaluation
software quality
CT DC AA
MIDAS
Siemens Corporate Development Center Asia Australia
design analysis tools
design assessment practices
design quality assessment method
expert-based method
ility-based quality model
industrial software
method for intensive design assessments
project-specific constraints
software applications
software architects
software design quality
software engineering community
Analytical models
Context
Design methodology
Manuals
Quality assessment
Software design
software design assessment method
Abstract: Siemens Corporate Development Center Asia Australia (CT DC AA) develops and maintains software applications for the Industry, Energy, Healthcare, and Infrastructure & Cities sectors of Siemens. The critical nature of these applications necessitates a high level of software design quality. A survey of software architects indicated a low level of satisfaction with existing design assessment practices in CT DC AA and highlighted several shortcomings of existing practices. To address this, we have developed a design assessment method called MIDAS (Method for Intensive Design ASsessments). MIDAS is an expert-based method wherein manual assessment of design quality by experts is directed by the systematic application of design analysis tools through the use of a three view-model consisting of design principles, project-specific constraints, and an “ility”-based quality model. In this paper, we describe the motivation for MIDAS, its design, and its application to three projects in CT DC AA. We believe that the insights from our MIDAS experience not only provide useful pointers to other organizations and practitioners looking to assess and improve software design quality but also suggest research questions for the software engineering community to explore.
Notes: tool development
Reference Type: Conference Paper
Record Number: 7862
Author: Xu, Lihua
Year: 2008
Title: Moda - multiple objective decision analysis: balancing quality attributes in software architectures
Conference Name: Companion of the 30th international conference on Software engineering
Conference Location: Leipzig, Germany
Publisher: ACM
Pages: 1019-1022
DOI: 10.1145/1370175.1370227
Place Published: 1370227
Abstract: A high-quality software architecture facilitates in developing a high quality software-intensive system. To design such architecture, the architect must consider multiple stakeholders' inconsistent, contradictory, and partially understood objectives, and balance the myriad tradeoffs among them. Our approach proposes to balance quality attributes in software architectures by identify the important-yet-to-be-addressed quality attributes during the design process and provide architecture analysis methods to help compare the resulting architecture candidates with respect to required quality attributes.
Reference Type: Conference Proceedings
Record Number: 9092
Author: Zhang, J., Liu, Y., Sun, J., Dong, J. S. and Sun, J.
Year of Conference: 2012
Title: Model Checking Software Architecture Design
Conference Name: 2012 IEEE 14th International Symposium on High-Assurance Systems Engineering
Pages: 193-200
Date: 25-27 Oct. 2012
Short Title: Model Checking Software Architecture Design
ISBN: 1530-2059
DOI: 10.1109/HASE.2012.12
Keywords: formal verification
health care
libraries
software architecture
ADL
LTS
Labeled Transition System
TRMCS
Wright# architecture description language
architecture style library
dedicated model checking module
formal description
formal syntax
high level description
model checking software architecture design
process analysis toolkit
software engineering practice
system design
teleservices and remote medical care system
Computer architecture
Connectors
Semantics
Syntactics
Model Checking
PAT
Wright
Abstract: Software Architecture plays an essential role in the high level description of a system design. Despite its importance in the software engineering practice, the lack of formal description and verification support hinders the development of quality architectural models. In this paper, we present an automated approach to the modeling and verification of software architecture designs using the Process Analysis Toolkit (PAT). We present the formal syntax of the Wright# architecture description language together with its operational semantics in Labeled Transition System (LTS). A dedicated model checking module for Wright# is implemented in the PAT verification framework based on the proposed formalism. The module - ADL supports verification and simulation of software architecture models in PAT. We advance our work via defining an architecture style library that embodies commonly used architecture patterns to facilitate the modeling process. Finally, a case study of the Teleservices and Remote Medical Care System (TRMCS) modeling and verification is presented to evaluate the effectiveness and scalability of our approach.
Notes: tool development
Reference Type: Journal Article
Record Number: 8707
Author: Zannier, Carmen, Chiasson, Mike and Maurer, Frank
Year: 2007
Title: A model of design decision making based on empirical results of interviews with software designers
Journal: Information and Software Technology
Volume: 49
Issue: 6
Pages: 637-653
Date: 6//
Short Title: A model of design decision making based on empirical results of interviews with software designers
ISSN: 0950-5849
DOI: https://doi.org/10.1016/j.infsof.2007.02.010
Keywords: Design decision
Rational decision making
Naturalistic decision making
Interviewing
Abstract: Despite the impact of design decisions on software design, we have little understanding about how design decisions are made. This hinders our ability to provide design metrics, processes and training that support inherent design work. By interviewing 25 software designers and using content analysis and explanation building as our analysis technique, we provide qualitative and quantitative results that highlight aspects of rational and naturalistic decision making in software design. Our qualitative multi-case study results in a model of design decision making to answer the question: how do software designers make design decisions? We find the structure of the design problem determines the aspects of rational and naturalistic decision making used. The more structured the design decision, the less a designer considers options.
URL: https://www.sciencedirect.com/science/article/pii/S0950584907000122
'File' Attachments: internal-pdf://3319608413/A model of design decision making based on emp.pdf
Reference Type: Conference Proceedings
Record Number: 8774
Author: Ahmed, F., Capretz, L. F. and Babar, M. A.
Year of Conference: 2008
Title: A Model of Open Source Software-Based Product Line Development
Conference Name: 2008 32nd Annual IEEE International Computer Software and Applications Conference
Pages: 1215-1220
Date: July 28 2008-Aug. 1 2008
Short Title: A Model of Open Source Software-Based Product Line Development
ISBN: 0730-3157
DOI: 10.1109/COMPSAC.2008.126
Keywords: public domain software
software architecture
OSS
SPL
open source software
product line development
software product line
Application software
Asset management
Computer applications
Computer architecture
Educational institutions
Information technology
Programming
Software development management
component development
process model
Abstract: Software product line (SPL) and open source software (OSS) have emerged as successful modes of developing software. There is an increased interest in developing suitable approaches for combining the promised advantages of SPL and OSS. Researchers and practitioners have been emphasizing the need of exploiting the ever growing repositories of OSS components for developing SPLs. However, there is no conceptual model for guiding the process of developing OSS-based SPLs. In this paper, we propose a model for developing software product line using open source software. This paper identifies and elaborates the essential phases and activities of the proposed model of developing OSS-based SPLs. This model emphasizes the vital role of software architecture and asserts that software architectures of OSS can be exploited to establish a SPL. To demonstrate this, we have evaluated Eclipse's architecture for its potential to support different flavors of a system.
Notes: Inspects some architecture
Reference Type: Conference Proceedings
Record Number: 9572
Author: Chen, L., Babar, M. A. and Liang, H.
Year of Conference: 2010
Title: Model-Centered Customizable Architectural Design Decisions Management
Conference Name: 2010 21st Australian Software Engineering Conference
Pages: 23-32
Date: 6-9 April 2010
Short Title: Model-Centered Customizable Architectural Design Decisions Management
ISBN: 1530-0803
DOI: 10.1109/ASWEC.2010.31
Keywords: computer aided analysis
software architecture
ADD
AK
architectural knowledge
fixed data models
model centered customizable architectural design decisions management
software architecture process
Australia
Conference management
Data models
Engineering management
Knowledge management
Programming
Research and development management
Software development management
Software engineering
Architectural design decisions
customizability
Abstract: Architectural Design Decisions (ADD) form a key element of Architectural Knowledge (AK), which plays a vital role in the software architecture process. To help manage ADDs, several tools have been proposed. However, most of them have prescribed fixed data models to be followed and do not provide sufficient customizability. Mismatches between a tool's data model and users' specific needs make the tool less usable, or even unusable. We propose a highly customizable solution that enables users to define specialized ADD models according to the specific needs of their individual preferences and working situations to achieve perfect fitness between the required model by users and the provided model by the tool. The results of the initial evaluation of the proposed solution are encouraging.
Notes: ADDs, not behavior
Reference Type: Conference Proceedings
Record Number: 9613
Author: Perovich, D., Bastarrica, M. C. and Rojas, C.
Year of Conference: 2009
Title: Model-Driven approach to Software Architecture design
Conference Name: 2009 ICSE Workshop on Sharing and Reusing Architectural Knowledge
Pages: 1-8
Date: 16-16 May 2009
Short Title: Model-Driven approach to Software Architecture design
DOI: 10.1109/SHARK.2009.5069109
Keywords: object-oriented programming
software architecture
software quality
systems analysis
enterprise application
model transformation
model-driven engineering
software architecture design
software development
software system design
software system quality attribute
Application software
Computer architecture
Design for quality
Design methodology
Model driven engineering
Programming
Proposals
Software design
Software systems
Abstract: Software Architecture (SA) allows for early assessment of and design for quality attributes of a software system, and it plays a critical role in current software development. However, there is no consensus on fundamental issues such as design methods and representation organization and languages, and current proposals lack specificity and preciseness. Thus, it is extremely difficult to build a complete and appropriate software architecture, even though it is recognized as a fundamental artifact. In this paper we define an architecture design method that enables the systematic and assisted construction of the SA of enterprise applications, taking into account major quality attributes involved in this family of systems. We apply Model-Driven Engineering techniques to achieve this goal. The architecture is treated as a mega-model (a model composed of related models) and the application of design decisions is encoded in terms of model transformations. The architectural rationale is explicitly registered as the set of transformations that yields the complete SA from scratch. We illustrate the application of the approach by designing the SA of a case study from the literature.
Notes: Framework/Model
Reference Type: Conference Proceedings
Record Number: 9030
Author: Tang, A. and Vliet, H. van
Year of Conference: 2009
Title: Modeling constraints improves software architecture design reasoning
Conference Name: 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture
Pages: 253-256
Date: 14-17 Sept. 2009
Short Title: Modeling constraints improves software architecture design reasoning
DOI: 10.1109/WICSA.2009.5290813
Keywords: formal specification
software architecture
alloy tool
constraint verification
design constraints specification
fundamental mechanisms
software architecture design reasoning
Australia
Coherence
Decision making
Humans
Logic design
Process design
Psychology
Shape memory alloys
Software design
Abstract: Requirements and project-related factors influence architectural design in intricate and multivariate ways. We are only beginning to understand some of the tacit but fundamental mechanisms involved in reasoning about design decisions, and one of them concerns the role of design constraints. This paper examines design constraints and how they shape design solutions. We introduce a design constraint model and an architectural design reasoning process for specifying design constraints and checking for design conflicts. We experiment with using logic for constraint verification with the alloy tool.
Notes: tool development
Reference Type: Conference Proceedings
Record Number: 9176
Author: Pedraza-García, G., Astudillo, H. and Correal, D.
Year of Conference: 2014
Title: Modeling Software Architecture Process with a Decision-Making Approach
Conference Name: 2014 33rd International Conference of the Chilean Computer Science Society (SCCC)
Pages: 1-6
Date: 8-14 Nov. 2014
Short Title: Modeling Software Architecture Process with a Decision-Making Approach
ISBN: 1522-4902
DOI: 10.1109/SCCC.2014.27
Keywords: business data processing
decision making
software architecture
BPMN
architectural decisions
architectural views
as-is process definition
business process management notation
decision making activities
decision making process
modeling software architecture process
software architecture design processes
software system
system stakeholders
to-be process transformation
Computer architecture
Process control
Security
Stakeholders
decision-making approach
software architecture design
Abstract: The architecture of a software system is the result of balancing concerns expressed by system stakeholders using a decision-making process. Several industrial approaches have been proposed that recognize the importance of architectural decisions and their rationale, but most do not provide mechanisms to systematically formalize and manage this decision-making. This article proposes a strategy to enrich the activities of software architecture design, by using Business Process Management Notation (BPMN) in a clear, structured and consistent manner to keep the focus on decisions. This strategy consists of (1) an "as-is" process definition, analysis and improvement of the original process, and (2) a "to-be" process transformation, allowing to derive an enriched process. The approach is illustrated using the security perspective to architectural views in Rozanski and Wood's V&P method. This approach is a step towards the systematic consideration of software architecture design processes as decision-making activities.
Reference Type: Journal Article
Record Number: 8086
Author: Littlewood, Bev, Popov, Peter and Strigini, Lorenzo
Year: 2001
Title: Modeling software design diversity: a review
Journal: ACM Comput. Surv.
Volume: 33
Issue: 2
Pages: 177-208
Short Title: Modeling software design diversity: a review
ISSN: 0360-0300
DOI: 10.1145/384192.384195
Legal Note: 384195
Abstract: Design diversity has been used for many years now as a means of achieving a degree of fault tolerance in software-based systems. While there is clear evidence that the approach can be expected to deliver some increase in reliability compared to a single version, there is no agreement about the extent of this. More importantly, it remains difficult to evaluate exactly how reliable a particular diverse fault-tolerant system is. This difficulty arises because assumptions of independence of failures between different versions have been shown to be untenable: assessment of the actual level of dependence present is therefore needed, and this is difficult. In this tutorial, we survey the modeling issues here, with an emphasis upon the impact these have upon the problem of assessing the reliability of fault-tolerant systems. The intended audience is one of designers, assessors, and project managers with only a basic knowledge of probabilities, as well as reliability experts without detailed knowledge of software, who seek an introduction to the probabilistic issues in decisions about design diversity.
Notes: more introduction than research
Reference Type: Conference Proceedings
Record Number: 8801
Author: Szlenk, M., Zalewski, A. and Kijas, S.
Year of Conference: 2012
Title: Modelling Architectural Decisions under Changing Requirements
Conference Name: 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture
Pages: 211-214
Date: 20-24 Aug. 2012
Short Title: Modelling Architectural Decisions under Changing Requirements
DOI: 10.1109/WICSA-ECSA.212.31
Keywords: decision making
software architecture
software maintenance
system documentation
architectural decision documenting
architectural decision modelling
changing requirement
decision making process
graphical modelling notation
software architecture documention
software architecture evolution
software architecture maintenance
Computer architecture
Context
Context modeling
Lead
Software
architectural decisions
graphical models
requirement changes
Abstract: One of the approaches for documenting software architecture is to treat it as a set of architectural design decisions. Such decisions are always made in the context of requirements that must be fulfilled and in the context of decisions that were made before. Currently, models for representing architectural decisions are mainly concentrated on showing the decision making process of the initial architectural design. However, decisions that have been made in such a process may need to be changed during further evolution and maintenance of the software architecture, typically in response to the new or changed requirements. A graphical modelling notation for documenting architectural decisions (Maps of Architectural Decisions) has been developed by our team. In this paper, it is presented how this notation could be used to model architectural decisions under changing requirements. It is proposed how one decision change could be effectively propagated through the rest of the architectural decision model and how a rigorous and tool-supported process of updating such models could be organized.
Notes: tool for ADDs
Reference Type: Journal Article
Record Number: 8478
Author: Woods, Eoin and Bashroush, Rabih
Year: 2015
Title: Modelling large-scale information systems using ADLs – An industrial experience report
Journal: Journal of Systems and Software
Volume: 99
Pages: 97-108
Date: 1//
Short Title: Modelling large-scale information systems using ADLs – An industrial experience report
ISSN: 0164-1212
DOI: https://doi.org/10.1016/j.jss.2014.09.018
Keywords: Architecture description language
Software architecture discovery
Industrial experience report
Abstract: An organisation that had developed a large information system wanted to embark on a programme that would involve large-scale evolution of it. As a precursor to this, it was decided to create a comprehensive architectural description to capture and understand the system's design. This undertaking faced a number of challenges, including a low general awareness of software modelling and software architecture practices. The approach taken by the software architects tasked with this project included the definition of a simple, very specific, architecture description language. This paper reports our experience of the project and a simple ADL that we created as part of it.
URL: https://www.sciencedirect.com/science/article/pii/S0164121214002052
Reference Type: Conference Proceedings
Record Number: 8974
Author: Alali, A. and Sillito, J.
Year of Conference: 2013
Title: Motivations for collaboration in software design decision making
Conference Name: 2013 6th International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE)
Pages: 129-132
Date: 25-25 May 2013
Short Title: Motivations for collaboration in software design decision making
DOI: 10.1109/CHASE.2013.6614748
Keywords: decision making
groupware
software engineering
collaborative process
development process
organizational work context
social work context
software design decision making
Collaboration
Context
Interviews
Organizations
Software design
Abstract: Software design is a result of software design decisions made at different stages of the development process and these decisions are often made collaboratively. As part of an ongoing research project to understand and improve this collaborative process we have interviewed 13 designers about their design processes. In this paper we report on a preliminary analysis of our interview data focusing on why people collaborate around design decisions. We found that designers collaborate to improve their design decisions, save or share decision making effort, and in response to social or organizational work contexts.
'File' Atttachments: internal-pdf://1143860543/Motivations for collaboration in software desi.pdf
Reference Type: Conference Proceedings
Record Number: 9305
Author: Brothers, K.
Year of Conference: 1994
Title: Moving upstream in the design process: new frontiers for technical communicators
Conference Name: IPCC 94 Proceedings. Scaling New Heights in Technical Communication
Pages: 280-284
Date: 28 Sep-1 Oct 1994
Short Title: Moving upstream in the design process: new frontiers for technical communicators
DOI: 10.1109/IPCC.1994.347517
Keywords: human factors
system documentation
technical presentation
design teams
peripheral user documentation
product design
product design teams
software design
technical communicators
usable products
Documentation
Job design
Process design
Software prototyping
Software testing
System testing
Usability
Abstract: Early involvement with product design teams forces technical communicators to reflect on their roles in the design of usable products and requires a new perspective about peripheral user documentation. The paper addresses the link between software design and documentation and considers these questions: what new roles are available to technical communicators? How can technical communicators be more effective on design teams? How are product design and documentation affected by human factors?
Reference Type: Conference Proceedings
Record Number: 9162
Author: Kharchenko, A., Halay, I. and Bodnarchuk, I.
Year of Conference: 2016
Title: Multicriteria architecture choice of software system under design and reengineering
Conference Name: 2016 XIth International Scientific and Technical Conference Computer Sciences and Information Technologies (CSIT)
Pages: 4-8
Date: 6-10 Sept. 2016
Short Title: Multicriteria architecture choice of software system under design and reengineering
DOI: 10.1109/STC-CSIT.2016.7589855
Keywords: decision making
optimisation
software architecture
systems re-engineering
criteria values limitations
criterial function structure
criterion weight
multicriteria architecture choice
optimization model replacement-compensation
software design
software system architecture
software system reengineering
universal scalar convolution
value proximity
Computer architecture
Convolution
Linear programming
Optimization
Software systems
multicriteria choice
quality of software architecture
trade-off
Abstract: The problems of multi-criteria choice of software system architecture are discussed, connected with definition of criterial function structure and formalization of trade-offs definition procedure for decision making. Universal scalar convolution is offered for taking into account requirements of subject area and criteria values limitations. The criterion weight in this convolution depends on its value proximity to the limitation. Optimization model “replacement-compensation” is used for software system reengineering problems or for directed choice of software architecture.
Reference Type: Conference Proceedings
Record Number: 9487
Author: Martini, A. and Bosch, J.
Year of Conference: 2016
Title: A Multiple Case Study of Continuous Architecting in Large Agile Companies: Current Gaps and the CAFFEA Framework
Conference Name: 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA)
Pages: 1-10
Date: 5-8 April 2016
Short Title: A Multiple Case Study of Continuous Architecting in Large Agile Companies: Current Gaps and the CAFFEA Framework
DOI: 10.1109/WICSA.2016.31
Keywords: software architecture
software management
software process improvement
software prototyping
CAFFEA organizational framework
Scrum setting
agile software development
grounded theory
large agile software companies
software architecture management
structured deductive analysis
structured inductive analysis
Companies
Computer architecture
Conferences
Interviews
Software
Agile Architecture
Architect Roles
Development Teams
Organizational Framework
Software Product Lines
Abstract: In order to continuously support the value delivery both in short-term and long-term, a key goal for large software companies is to continuously develop and manage software architecture. In order to understand how architecture management is employed in large Agile software companies, we have conducted interviews involving several roles at 5 firms. Through a combination of structured inductive and deductive analysis proper of Grounded Theory, we have identified current architect roles and gaps in the architecture practices in the studied organizations. From such investigation, we have developed an organizational framework, CAFFEA, for Agile architecting, including roles, (virtual) teams and practices. The framework has been evaluated through a cross-company workshop including participants from 5 large software companies, discussion groups and a final survey. Finally, we have evaluated the framework in practice after one year of its application at one of the companies. We found that some necessary architectural practices are overlooked in Large Agile Software Development. The evaluation of CAFFEA framework showed that the included roles and teams are needed in order to mitigate the gaps in the architectural practices. The responsibilities and the activities have been mapped to key architect roles compatible with the Scrum setting employed at the companies. The evaluation of CAFFEA shows key benefits.
'File' Atttachments: internal-pdf://0447239119/A Multiple Case Study of Continuous Architecti.pdf
Reference Type: Journal Article
Record Number: 9388
Author: Caric, A. and Toivo, K.
Year: 2000
Title: New generation network architecture and software design
Journal: IEEE Communications Magazine
Volume: 38
Issue: 2
Pages: 108-114
Short Title: New generation network architecture and software design
ISSN: 0163-6804
DOI: 10.1109/35.819903
Keywords: software engineering
telecommunication computing
telecommunication networks
ATM
IP
access telephony applications
circuit switching
legacy telephony applications
network architecture
network evolution
software design
software development
software research
telecommunications networks
Application software
Computer architecture
Intelligent networks
Investments
Microelectronics
Power generation
Research and development
Telecommunication switching
Wireless networks
Abstract: This article deals with new telecommunications networks, the reasons for changes, and the options telecommunications are facing today. The new generation of network architecture is discussed, and two network evolution case studies are presented as well as the new role of powerful applications in the future development of networks. Special emphasis is on software research and development supporting this “new telecom world”
Notes: Telecommunication networks
Reference Type: Journal Article
Record Number: 8850
Author: Fraser, S. and Mancl, D.
Year: 2008
Title: No Silver Bullet: Software Engineering Reloaded
Journal: IEEE Software
Volume: 25
Issue: 1
Pages: 91-94
Short Title: No Silver Bullet: Software Engineering Reloaded
ISSN: 0740-7459
DOI: 10.1109/MS.2008.14
Keywords: decision making
object-oriented programming
software engineering
decision-making tool
silver bullet
Application software
Books
Leg
Object oriented programming
Operating systems
Project management
Silver
Software design
Software tools
Frederick Brooks
complexity
computing
information technology and systems
organizational impact
Abstract: A celebratory panel took place at the 22nd International Conference on object-oriented programming, systems, languages, and applications in Montreal. The occasion was the 20th anniversary of Fred Brooks' paper "no silver bullet: essence and accidents of software engineering." Fred suggested that useful solutions must address inherent complexity observing that object-oriented techniques have come closest to achieving this goal. David described a "silver bullet" as a technique that requires no training or experience to apply a silver bullet should find its mark without aim. Software engineering as a discipline has expanded significantly, both in terms of system complexity and the community's global extent. "no silver bullet" continues to be both an enjoyable must-read and an influential reference. People use languages without the ideas, so the object community still has much to do. It is nice to know that, when all else fails us, we have an innate decision-making tool to fall back on.
Notes: just book review
Reference Type: Conference Paper
Record Number: 8300
Author: Chu, Yaohan, Peters, Larry and Scott, Leighton
Year: 1978
Title: Notations For Software Specification And Design (Panel Discussion)
Conference Name: Proceedings of the 1978 annual conference
Conference Location: Washington, D.C., USA
Publisher: ACM
Pages: 460
DOI: 10.1145/800127.804147
Place Published: 804147
Notes: Chairman - Leonard Tripp
Reference Type: Conference Proceedings
Record Number: 7873
Author: Galster, Matthias and Avgeriou, Paris
Year of Conference: 2011
Title: The notion of variability in software architecture: results from a preliminary exploratory study
Conference Name: Proceedings of the 5th Workshop on Variability Modeling of Software-Intensive Systems
Conference Location: Namur, Belgium
Publisher: ACM
Pages: 59-67
Short Title: The notion of variability in software architecture: results from a preliminary exploratory study
DOI: 10.1145/1944892.1944899
Place Published: 1944899
Abstract: Context: In the software product line domain, the concept of variability is well recognized. However, variability in the context of software architecture still seems to be poorly understood. Objective: In this paper, we aim at contributing to the development of a basic understanding of the notion of variability in the software architecture domain, beyond the idea of product lines. Method: We perform a preliminary exploratory study which consists of two parts: an expert survey among 11 subjects, and a mini focus group with 4 participants. For both parts, we collect and analyze mostly qualitative data. Results: Our observations indicate that there seems to be no common understanding of "variability" in the context of software architecture. On the other hand, some challenges related to variability in software architecture are similar to challenges identified in the product line domain. Conclusions: Variability in software architecture might require more theoretical foundations in order to establish "variability" as an architectural key concept and first-class quality attribute.
'File' Atttachments: internal-pdf://3983383324/The notion of variability in software architec.pdf
Reference Type: Journal Article
Record Number: 8612
Author: Heliades, G. P. and Edmonds, E. A.
Year: 1999
Title: On facilitating knowledge transfer in software design
Journal: Knowledge-Based Systems
Volume: 12
Issue: 7
Pages: 391-395
Date: 11//
Short Title: On facilitating knowledge transfer in software design
ISSN: 0950-7051
DOI: https://doi.org/10.1016/S0950-7051(99)00039-8
Keywords: Software design
Design rationale
Expertise transfer systems
Abstract: This paper presents a discussion of the facilitation of expertise sharing among software design stakeholders. LOUIS, a prototype research tool, helps to capture much of the contextual information and knowledge in early design meetings that are very often lost soon after the meetings are over. Using LOUIS as a basis, we consider knowledge and skill transfer effects in software design tasks. Results from trials indicate that, although not entirely sufficient, process-related knowledge, in the form of argumentation, is useful to software designers who have reason to re-use that knowledge. A list of recommendations on how those knowledge transfer effects can be further facilitated is provided.
URL: https://www.sciencedirect.com/science/article/pii/S0950705199000398
Reference Type: Conference Paper
Record Number: 8104
Author: Downey, Jack and Babar, Muhammad Ali
Year: 2008
Title: On identifying the skills needed for software architects
Conference Name: Proceedings of the first international workshop on Leadership and management in software architecture
Conference Location: Leipzig, Germany
Publisher: ACM
Pages: 1-6
DOI: 10.1145/1373307.1373309
Place Published: 1373309
Abstract: This position paper claims that software architects need a unique set of skills that may be difficult to gain solely from academic qualifications and/or training courses. We believe that socio-cognitive factors and artifacts with which software engineers work have a vital role in identifying the skill-set for software architects. Based on social cognitive theory and an artifact-centric framework, we have designed an instrument to investigate the skills needed by software architects. We believe that such an instrument will enable researchers and practitioners to gather the skill-set information by considering the personal traits of software architects, their behaviors, and the organization they work in together with the artifacts they use. This paper explains how the different concepts of social cognitive theory and an artifact-centric framework can stimulate discussion with software architects in order to gather information about their skills. We also briefly describe our experience of using this instrument in a pilot study.
Reference Type: Conference Paper
Record Number: 8139
Author: Medvidovic, Nenad
Year: 2002
Title: On the role of middleware in architecture-based software development
Conference Name: Proceedings of the 14th international conference on Software engineering and knowledge engineering
Conference Location: Ischia, Italy
Publisher: ACM
Pages: 299-306
DOI: 10.1145/568760.568814
Place Published: 568814
Abstract: Software architectures promote development focused on modular functional building blocks (components), their interconnections (configurations), and their interactions (connectors). Since architecture-level components often contain complex functionality, it is reasonable to expect that their interactions will be complex as well. Middleware technologies such as CORBA, COM, and RMI, provide a set of predefined services for enabling component composition and interaction. However, the potential role of such services in the implementations of software architectures is not well understood. Furthermore, components adhering to one middleware standard cannot readily interact with those adhering to another. In order to understand the role and tradeoffs among middleware technologies in implementing architectures and enable component interoperability across middleware platforms, we have investigated a set of techniques and conducted preliminary case studies involving a particular architectural style, C2, and its implementation infrastructure. In particular, by encapsulating middleware functionality within C2's explicit software connectors, we have been able to couple C2's existing benefits such as component interchangeability, substrate independence, and structural guidance with new capabilities of multi-lingual, multi-process, and distributed application development in a manner that is transparent to architects. Furthermore, we have demonstrated the utility of our connector-based approach in enabling components implemented on top of different middleware platforms to interoperate. Though several details of our approach derive from the characteristics of the C2 style, we believe that a number of lessons learned are more generally applicable. We argue that these lessons can help form a broader research agenda for coupling the modeling power of software architectures with the implementation support provided by middleware.
Notes: architecture and middleware
Reference Type: Conference Paper
Record Number: 8058
Author: Pettersson, Oskar, Svensson, Martin, Gil, Didac, Andersson, Jesper and Milrad, Marcelo
Year: 2010
Title: On the role of software process modeling in software ecosystem design
Conference Name: Proceedings of the Fourth European Conference on Software Architecture: Companion Volume
Conference Location: Copenhagen, Denmark
Publisher: ACM
Pages: 103-110
DOI: 10.1145/1842752.1842778
Place Published: 1842778
Abstract: Software Ecosystems (SECOs) have in recent years emerged as a promising approach for improved inter and intra organizational reuse and for reusability involving end-users in the software development process. Understanding the software's role in a larger perspective and how it interconnects with stakeholders is key for progress in those directions. However, for SECOs, several theoretical and methodological gaps remain to be charted. This paper identifies one such gap, the need for precise process modeling. It elaborates on experiences gained from the analysis of a SECO for mobile learning and brings up several aspects and insights for this particular domain. The main contributions are an initial reference model for the mobile learning domain and an outline for an analysis method for domain specific SECOs.
Notes: specific solution for one problem
Reference Type: Conference Proceedings
Record Number: 7767
Author: Graaf, K. A. de, Tang, A., Liang, P. and Vliet, H. van
Year of Conference: 2012
Title: Ontology-based Software Architecture Documentation
Conference Name: 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture
Pages: 121-130
Date: 20-24 Aug. 2012
Short Title: Ontology-based Software Architecture Documentation
DOI: 10.1109/WICSA-ECSA.212.20
Keywords: document handling
file organisation
information retrieval
ontologies (artificial intelligence)
software architecture
architectural knowledge
file based documents
industry projects
knowledge retrieval
ontology based software architecture documentation
semantic wiki
software ontology
Computer architecture
Documentation
Electronic publishing
Information services
Ontologies
Semantics
Software
architectural knowledge retrieval
software architecture documentation
software architecture knowledge
software ontologies
Abstract: A common approach to software architecture documentation in industry projects is the use of file-based documents. This approach offers a single-dimensional perspective on the architectural knowledge contained. Knowledge retrieval from file-based architecture documentation is efficient if the perspective chosen fits the needs of the readers, it is less so if the perspective does not match the needs of the readers. In this paper we describe an approach aimed at addressing architecture documentation retrieval issues. We have employed a software ontology in a semantic wiki optimized for architecture documentation. We have evaluated this ontology-based approach in a controlled industry experiment involving software professionals. The efficiency and effectiveness of the proposed approach is found to be better than that of the file-based approach.
Notes: documentation of ADDs
Reference Type: Conference Proceedings
Record Number: 9085
Author: Chai, J. and Liu, J. N. K.
Year of Conference: 2010
Title: An ontology-driven framework for supporting complex decision process
Conference Name: 2010 World Automation Congress
Pages: 1-6
Date: 19-23 Sept. 2010
Short Title: An ontology-driven framework for supporting complex decision process
ISBN: 2154-4824
Keywords: computational complexity
decision making
group decision support systems
ontologies (artificial intelligence)
software architecture
Web environment
complex decision process
complex structure
decision analysis
decision path
embedded ontology structure
formal description
group decision making
group decision support system
ontology driven framework
selection method
Decision support systems
Problem-solving
Semantics
GDSS
Ontology
decision process
group decision-making
workshop system
Abstract: The study proposes a framework of ONTOlogy-based Group Decision Support System (ONTOGDSS) for decision process which exhibits the complex structure of decision-problem and decision-group. It is capable of reducing the complexity of problem structure and group relations. The system allows decision makers to participate in group decision-making through the web environment, via the ontology relation. It facilitates the management of decision process as a whole, from criteria generation, alternative evaluation, and opinion interaction to decision aggregation. The embedded ontology structure in ONTOGDSS provides the important formal description features to facilitate decision analysis and verification. It examines the software architecture, the selection methods, the decision path, etc. Finally, the ontology application of this system is illustrated with specific real case to demonstrate its potentials towards decision-making development.
Notes: system development
Reference Type: Conference Paper
Record Number: 7871
Author: Erfanian, Aida and Aliee, Fereidoun Shams
Year: 2008
Title: An ontology-driven software architecture evaluation method
Conference Name: Proceedings of the 3rd international workshop on Sharing and reusing architectural knowledge
Conference Location: Leipzig, Germany
Publisher: ACM
Pages: 79-86
DOI: 10.1145/1370062.1370081
Place Published: 1370081
Abstract: Software architecture evaluation has a crucial role in the life cycle of software intensive systems. In this paper we propose an approach to empower a software architecture evaluation method called the Architecture tradeoff Analysis Method (ATAM). Our approach is highly focused on the effective reusability of software architecture knowledge. We propose two ontologies focusing on the role of Attribute-Based Architectural styles (ABAS) in software architecture development and analysis. We show the effectiveness of our approach by presenting three case studies.
Notes: evaluation method
Reference Type: Conference Paper
Record Number: 8162
Author: Sullivan, Kevin
Year: 2010
Title: Opportunity-centered software development
Conference Name: Proceedings of the FSE/SDP workshop on Future of software engineering research
Conference Location: Santa Fe, New Mexico, USA
Publisher: ACM
Pages: 369-374
DOI: 10.1145/1882362.1882437
Place Published: 1882437
Abstract: The position of this paper is that it is worthwhile to invest now in use-inspired fundamental research and development leading to a new class of software development environments and methods, in which software investment opportunities (in addition to software capabilities) are modeled and analyzed explicitly, in support of a dynamic investment management approach to software development decision making. Theoretical work in this area has progressed far enough, and at the same time the cost of converting theory to practice has been radically reduced by advances in software development environment technology. The potential payoff on such an investment is a significantly improved capability for both engineers and executives to see, value, and exploit flexibility in software products, projects and processes, leading to significant improvements in decision making and thus in software design productivity.
Reference Type: Conference Paper
Record Number: 8008
Author: Berenbach, Brian
Year: 2008
Title: The other skills of the software architect
Conference Name: Proceedings of the first international workshop on Leadership and management in software architecture
Conference Location: Leipzig, Germany
Publisher: ACM
Pages: 7-12
DOI: 10.1145/1373307.1373310
Place Published: 1373310
Abstract: The skills that are taught to the software architect in academic programs often leave him or her completely unprepared to assume the role of solution architect on a project with more than four or five developers. Furthermore, the globalization of software development has created a need for architects that can effectively manage multiple teams at multiple locations. Additionally, the lack of qualified architects has resulted in serious difficulties for industry. This position paper provides insight into the 'real' role of the architect on a large project, and examines the gap between what is taught at the university and what skills are needed for success.
Reference Type: Journal Article
Record Number: 8726
Author: Tofan, Dan, Galster, Matthias, Avgeriou, Paris and Schuitema, Wes
Year: 2014
Title: Past and future of software architectural decisions – A systematic mapping study
Journal: Information and Software Technology
Volume: 56
Issue: 8
Pages: 850-872
Date: 8//
Short Title: Past and future of software architectural decisions – A systematic mapping study
ISSN: 0950-5849
DOI: https://doi.org/10.1016/j.infsof.2014.03.009
Keywords: Software architecture
Architectural decisions
Systematic mapping study
Abstract: AbstractContext The software architecture of a system is the result of a set of architectural decisions. The topic of architectural decisions in software engineering has received significant attention in recent years. However, no systematic overview exists on the state of research on architectural decisions. Objective The goal of this study is to provide a systematic overview of the state of research on architectural decisions. Such an overview helps researchers reflect on previous research and plan future research. Furthermore, such an overview helps practitioners understand the state of research, and how research results can help practitioners in their architectural decision-making. Method We conducted a systematic mapping study, covering studies published between January 2002 and January 2012. We defined six research questions. We queried six reference databases and obtained an initial result set of 28,895 papers. We followed a search and filtering process that resulted in 144 relevant papers. Results After classifying the 144 relevant papers for each research question, we found that current research focuses on documenting architectural decisions. We found that only several studies describe architectural decisions from the industry. We identified potential future research topics: domain-specific architectural decisions (such as mobile), achieving specific quality attributes (such as reliability or scalability), uncertainty in decision-making, and group architectural decisions. Regarding empirical evaluations of the papers, around half of the papers use systematic empirical evaluation approaches (such as surveys, or case studies). Still, few papers on architectural decisions use experiments. Conclusion Our study confirms the increasing interest in the topic of architectural decisions. This study helps the community reflect on the past ten years of research on architectural decisions. Researchers are offered a number of promising future research directions, while practitioners learn what existing papers offer.
Notes: literature review
URL: https://www.sciencedirect.com/science/article/pii/S0950584914000706
Reference Type: Conference Paper
Record Number: 7915
Author: Nadschl, Stefan, #228, ger, K, Josef, #252 and ng
Year: 2016
Title: A pattern collection for knowledge processing system architecture
Conference Name: Proceedings of the 21st European Conference on Pattern Languages of Programs
Conference Location: Kaufbeuren, Germany
Publisher: ACM
Pages: 1-23
DOI: 10.1145/3011784.3011796
Place Published: 3011796
Abstract: Many architecture and design patterns exist for enterprise software development. Nowadays interest of knowledge processing systems has been heightened, as these technologies can provide a valuable benefit for a company (e.g., supporting decision making). Nevertheless, the algorithms and technologies used in this domain can be complex and difficult to implement. Some parts can even outreach standard software development. This paper tries to identify similarities to enterprise systems and present a selection of existing design patterns that can be used to solve knowledge processing difficulties. The aim is to provide a pattern collection to allow also software designers and developers not familiar with knowledge processing principles, to easily design, implement and integrate such systems.
Notes: system development
Reference Type: Conference Proceedings
Record Number: 8851
Author: Gokhale, S. S. and Yacoub, S.
Year of Conference: 2005
Title: Performability analysis of a pipeline software architecture
Conference Name: 29th Annual International Computer Software and Applications Conference (COMPSAC'05)
Volume: 1
Pages: 77-82 Vol. 2
Date: 26-28 July 2005
Short Title: Performability analysis of a pipeline software architecture
ISBN: 0730-3157
DOI: 10.1109/COMPSAC.2005.120
Keywords: document handling
object-oriented programming
pipeline processing
software architecture
software metrics
software performance evaluation
component failure
component structural organization
connector structural organization
document analysis system
nonfunctional attribute
performability analysis
pipeline software architecture
qualitative assessment
software pattern
software performance
unreliable components
Application software
Computer architecture
Computer industry
Connectors
Filters
Performance analysis
Pipelines
Software systems
Text analysis
Abstract: An architecture style defines a commonly occurring pattern of the structural organization of components and connectors such that the impact of the pattern on the different non functional attributes is known. It is possible to make a qualitative assessment of whether a specific style is conducive to the nonfunctional attribute of performance based on the knowledge and experience in the use of the style. It is necessary however, that such a qualitative judgment be substantiated by a quantitative estimate obtained using a systematic performance analysis approach, since architecture styles are likely to be used in domains where application performance will play a critical role in ensuring its widespread use. Recognizing this need, several research efforts have focused on the development of quantitative performance analysis approaches for general purpose software architectures as well as for architecture styles. A notable drawback of the existing approaches is that they do not consider failures of components and connectors and hence provide optimistic performance estimates. In this paper we present a performability analysis approach for a pipeline architecture style which accounts for unreliable components. The performance estimate provided by the proposed approach is more realistic than what can be provided by the prevalent approaches. We illustrate the potential of the approach with an industrial case study of a document analysis system.
Notes: analysis of tool
Reference Type: Conference Paper
Record Number: 8355
Author: Fritz, Jane M.
Year: 1987
Title: A pragmatic approach to systems analysis and design
Conference Name: Proceedings of the eighteenth SIGCSE technical symposium on Computer science education
Conference Location: St. Louis, Missouri, USA
Publisher: ACM
Pages: 127-131
DOI: 10.1145/31820.31746
Place Published: 31746
Abstract: The University of New Brunswick offers a wide selection of upper year Computer Science electives. Systems analysis and design, consisting of the study and use of the system life cycle for developing business information systems together with associated techniques and issues, has been offered for about 14 years. Considered to be a “soft” subject in a sea of hard-core technical courses, for many years this course was elected by a manageable maximum of 15-25 students per year. In recent years, particularly due to reinforcement by an active group of employers in our expanding co-op program, the value of such a course has been more widely recognized by our students. This paper examines methods used to handle substantial enrollment increases (40-60 students) in a subject which is especially sensitive to class size. Efforts made to improve the effectiveness of teaching this non-technical but vital material to technically oriented students are discussed. As well, the differences between software engineering and systems analysis and design are outlined. A case is made for a change in the ACM Curriculum '78 Software Design course CS14 to relect the very important role of the analysis phase in software development.
Notes: students in focus
Reference Type: Journal Article
Record Number: 9646
Author: Wirfs-Brock, R. J.
Year: 2009
Title: Principles in Practice
Journal: IEEE Software
Volume: 26
Issue: 4
Pages: 11-12
Short Title: Principles in Practice
ISSN: 0740-7459
DOI: 10.1109/MS.2009.99
Keywords: object-oriented programming
systems analysis
abstraction-interface definition
design flexibility preservation
implementation detail hiding
object behavior distribution
software design principle
Astronomy
Digital audio broadcasting
Electronics packaging
Physics
Software design
Thumb
Uncertainty
Writing
Robert Martin
design principles
software
Abstract: This paper deals with good software design principle. On what do you base your design decisions-established conventions, past experience, or principles? The author discusses about three principles that seemed to underlie many of those experts decisions: 1) distribute behavior among objects (rather than concentrate it into a single controlling object). 2) preserve design flexibility by hiding implementation details.3) define abstractions and interfaces first (before focusing on data and coding details).
Reference Type: Conference Proceedings
Record Number: 9115
Author: Pareto, L., Sandberg, A., Eriksson, P. and Ehnebom, S.
Year of Conference: 2011
Title: Prioritizing Architectural Concerns
Conference Name: 2011 Ninth Working IEEE/IFIP Conference on Software Architecture
Pages: 22-31
Date: 20-24 June 2011
Short Title: Prioritizing Architectural Concerns
DOI: 10.1109/WICSA.2011.13
Keywords: groupware
software architecture
system documentation
analytical techniques
architectural concern prioritization
architectural documentation
collaborative techniques
heterogeneous stakeholder groups
Conferences
Documentation
Interviews
Organizations
Planning
Reflection
Taxonomy
analytic-deliberative decision making
architectural concern
concern prioritization
software architecture design
Abstract: Efficient architecture work involves balancing the degree of architectural documentation with attention to needs, costs, agility and other factors. This paper presents a method for prioritizing architectural concerns in the presence of heterogeneous stakeholder groups in large organizations that need to evolve existing architecture. The method involves enquiry, analysis, and deliberation using collaborative and analytical techniques. Method outcomes are action principles directed to managers and improvement advice directed to architects along with evidence for recommendations made. The method results from 3 years of action research at Ericsson AB with the purpose of adding missing views to architectural documentation and removing superfluous ones. It is illustrated on a case where 29 senior engineers and managers within Ericsson prioritized 37 architectural concerns areas to arrive at 8 action principles, 5 prioritized improvement areas, and 24 improvement suggestions. Feedback from the organization is that the method has been effective in prioritizing architectural concerns, that data collection and analysis is more extensive compared to traditional prioritization practices, but that extensive analysis seems inevitable in architecture improvement work.
'File' Atttachments: internal-pdf://0815143596/Prioritizing Architectural Concerns.pdf
Reference Type: Conference Paper
Record Number: 7938
Author: Riebisch, Matthias, Bode, Stephan and Brcina, Robert
Year: 2011
Title: Problem-solution mapping for forward and reengineering on architectural level
Conference Name: Proceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution
Conference Location: Szeged, Hungary
Publisher: ACM
Pages: 106-115
DOI: 10.1145/2024445.2024466
Place Published: 2024466
Abstract: Software architectures play a key role for the development and evolution of software systems because they have to enable their quality properties such as scalability, flexibility, and security. Software architectural decisions represent a transition from problem space with quality goals and requirements on one side to solution space with technical solutions on the other side. Technical solutions are reusable elements for the work of the architect as for example patterns, styles, frameworks and building blocks. For long-term evolution of the systems, an explicit mapping between goals and solutions is helpful for expressing design knowledge and fundamental decisions. Such a mapping has to bridge between the fields of requirements engineering, software architectural design, and software quality thus enabling reuse. In this paper the Goal Solution Scheme is discussed, which maps quality goals and goal refinements to architectural principles and solutions. The paper extends the approach from the previously discussed forward engineering to re-engineering activities thus covering evolutionary development processes. The evaluation of the approach has been performed in several case studies and projects including a large industrial one.
Reference Type: Conference Paper
Record Number: 8152
Author: Zannier, Carmen and Maurer, Frank
Year: 2005
Title: A qualitative empirical evaluation of design decisions
Conference Name: Proceedings of the 2005 workshop on Human and social factors of software engineering
Conference Location: St. Louis, Missouri
Publisher: ACM
Pages: 1-7
DOI: 10.1145/1082983.1083124
Place Published: 1083124
Abstract: In this paper, we motivate examining software design decision making and provide the process by which the examination will occur. The objective is to provide qualitative results indicative of rational or naturalistic software design decision making. In a rational decision a decision maker evaluates decision alternatives and potential outcomes for each alternative using a utility function and probabilities of the outcome of each alternative. The utility function assigns a value to each possible alternative based on its outcome. The goal of rational decision making is selecting the optimal alternative. A naturalistic decision manifests itself in dynamic and continually changing conditions, embodies real-time reactions to these changes, embraces ill-defined tasks, and has a goal of selecting a satisfactory alternative. The proposed empirical qualitative study consists of inductive and deductive interviewing and deductive observations.
Reference Type: Conference Proceedings
Record Number: 8949
Author: Golden, E., John, B. E. and Bass, L.
Year of Conference: 2005
Title: Quality vs. quantity: comparing evaluation methods in a usability-focused software architecture modification task
Conference Name: 2005 International Symposium on Empirical Software Engineering, 2005.
Pages: 10 pp.
Date: 17-18 Nov. 2005
Short Title: Quality vs. quantity: comparing evaluation methods in a usability-focused software architecture modification task
DOI: 10.1109/ISESE.2005.1541823
Keywords: software architecture
software quality
software reusability
empirical software engineering
software architecture design
software development
usability-supporting architectural pattern
Computer architecture
Particle measurements
Programming
Software design
Software engineering
Software measurement
Time measurement
Usability
User interfaces
Abstract: A controlled experiment was performed to assess the usefulness of portions of a usability-supporting architectural pattern (USAP) in modifying the design of software architectures to support a specific usability concern. Results showed that participants using a complete USAP produced modified designs of significantly higher quality than participants using only a usability scenario. Comparison of solution quality ratings with a quantitative measure of responsibilities considered in the solution showed positive correlation between the measures. Implications for software development are that usability concerns can be included at architecture design time, and that USAPs can significantly help software architects to produce better designs to address usability concerns. Implications for empirical software engineering are that validated quantitative measures of software architecture quality may potentially be substituted for costly and often elusive expert assessment.
Reference Type: Journal Article
Record Number: 8404
Author: Kim, Suntae, Kim, Dae-Kyoo, Lu, Lunjin and Park, Sooyong
Year: 2009
Title: Quality-driven architecture development using architectural tactics
Journal: Journal of Systems and Software
Volume: 82
Issue: 8
Pages: 1211-1231
Date: 8//
Short Title: Quality-driven architecture development using architectural tactics
ISSN: 0164-1212
DOI: https://doi.org/10.1016/j.jss.2009.03.102
Keywords: Architectural tactics
Feature composition
Feature modeling
Quality-driven
Role-based metamodeling language
Software architecture, UML
Abstract: This paper presents a quality-driven approach to embodying non-functional requirements (NFRs) into software architecture using architectural tactics. Architectural tactics are reusable architectural building blocks, providing general architectural solutions for common issues pertaining to quality attributes. In this approach, architectural tactics are represented as feature models, and their semantics is defined using the Role-Based Metamodeling Language (RBML) which is a UML-based pattern specification notation. Given a set of NFRs, architectural tactics are selected and composed, and the composed tactic is used to instantiate an initial architecture for the application. The proposed approach addresses both the structural and behavioral aspects of architecture. We describe the approach using tactics for performance, availability and security to develop an architecture for a stock trading system. We demonstrate tool support for instantiating a composed tactic to generate an initial architecture of the stock trading system.
URL: https://www.sciencedirect.com/science/article/pii/S0164121209000909
Reference Type: Conference Proceedings
Record Number: 9622
Author: Reza, H. and Grant, E.
Year of Conference: 2005
Title: Quality-oriented software architecture
Conference Name: International Conference on Information Technology: Coding and Computing (ITCC'05) - Volume II
Volume: 1
Pages: 140-145 Vol. 1
Date: 4-6 April 2005
Short Title: Quality-oriented software architecture
DOI: 10.1109/ITCC.2005.237
Keywords: formal specification
software architecture
software quality
optimal architectural style
quality requirements
quality-oriented software architecture
systematic correlation
user requirements
Bridges
Computational modeling
Computer architecture
Concurrent computing
Message passing
Security
Software systems
Spatial databases
Transaction databases
Abstract: This paper proposes a method to select the software architecture for a family of systems that meets user requirements. The method is based on a set of universally accepted design principles and tactics that aims to establish a systematic correlation between the quality requirements of a system and an architectural style that best implements it. The proposed method can also be a valuable assistant to a novice software engineer in selecting an optimal architectural style because the selection of an appropriate architectural style plays an important role in success or failure of a system.
Reference Type: Conference Proceedings
Record Number: 9010
Author: Bouwers, E., Correia, J. P., Deursen, A. v. and Visser, J.
Year of Conference: 2011
Title: Quantifying the Analyzability of Software Architectures
Conference Name: 2011 Ninth Working IEEE/IFIP Conference on Software Architecture
Pages: 83-92
Date: 20-24 June 2011
Short Title: Quantifying the Analyzability of Software Architectures
DOI: 10.1109/WICSA.2011.20
Keywords: public domain software
software architecture
software metrics
software quality
systems analysis
component balance
distributed system
open source software systems
software architecture analyzability
software metric
software quality aspects
software system decomposition
Computer architecture
Electric breakdown
Size measurement
Software systems
Abstract: The decomposition of a software system into components is a major decision in any software architecture, having a strong influence on many of its quality aspects. A system's analyzability, in particular, is influenced by its decomposition into components. But into how many components should a system be decomposed to achieve optimal analyzability? And how should the elements of the system be distributed over those components? In this paper, we set out to find answers to these questions with the support of a large repository of industrial and open source software systems. Based on our findings, we designed a metric which we call Component Balance. In a case study we show that the metric provides pertinent results in various evaluation scenarios. In addition, we report on an empirical study that demonstrates that the metric is strongly correlated with ratings for analyzability as given by experts.
Notes: framework/model
Reference Type: Conference Paper
Record Number: 8128
Author: Kazman, Rick, Asundi, Jai and Klein, Mark
Year: 2001
Title: Quantifying the costs and benefits of architectural decisions
Conference Name: Proceedings of the 23rd International Conference on Software Engineering
Conference Location: Toronto, Ontario, Canada
Publisher: IEEE Computer Society
Pages: 297-306
Place Published: 381504
Abstract: The benefits of a software system are assessable only relative to the business goals the system has been developed to serve. In turn, these benefits result from interactions between the system's functionality and its quality attributes (such as performance, reliabilty and security). Its quality attributes are, in most cases, dictated by its architectural design decisions. Therefore, we argue in this paper that the software architecture is the crucial artifact to study in making design tradeoffs and in performing cost-benefit analyses. A substantial part of such an analysis is in determining the level of uncertainty with which we estimate both costs and benefits. In this paper we offer an architecture-centric approach to the economic modeling of software design decision making called CBAM (Cost Benefit Analysis Method), in which costs and benefits are traded off with system quality attributes. We present the CBAM, the early results from applying this method in a large-scale case study, and discuss the application of more sophisticated economic models to software decision making.
Notes: framework
Reference Type: Conference Proceedings
Record Number: 8016
Author: Zhang, Cheng, Wang, Futian, Xu, Rongbin, Li, Xuejun and Yang, Yun
Year of Conference: 2014
Title: A quantitative analysis of survey data for software design patterns
Conference Name: Proceedings of the 2014 3rd International Workshop on Evidential Assessment of Software Technologies
Conference Location: Nanjing, China
Publisher: ACM
Pages: 48-55
Short Title: A quantitative analysis of survey data for software design patterns
DOI: 10.1145/2627508.2627516
Place Published: 2627516
Abstract: Software design patterns are largely concerned with improving the practices and products of software development. However, there has been no systematic analysis how users' profiles influence the effectiveness of design patterns. The aim of this paper is to investigate the links between the respondents' demographic data from our previous online survey and the design patterns. In this paper we employ a statistical approach to analyse the quantitative data collected from the respondents of our previous online survey. Through analysing the demographic data from the 206 responses of the questionnaire, we find that the positive assessment percentage of using patterns increases with greater experience with design patterns. The results show that the functions of design patterns are influenced by users' experiences rather than users' roles.
'File' Atttachments: internal-pdf://3813218541/A quantitative analysis of survey data for sof.pdf
Reference Type: Conference Paper
Record Number: 8050
Author: Sureka, Ashish, Mirajkar, Pranav Prabhakar and Varma, Kishore Indukuri
Year: 2009
Title: A rapid application development framework for rule-based named-entity extraction
Conference Name: Proceedings of the 2nd Bangalore Annual Compute Conference
Conference Location: Bangalore, India
Publisher: ACM
Pages: 1-4
DOI: 10.1145/1517303.1517330
Place Published: 1517330
Abstract: Named Entity Recognition and Classification (NERC) consist of identifying and labeling specific pieces of information like proper names from free-form textual data. There are primarily three approaches to named-entity extraction: hand-crafted rule based, machine-learning based and hybrid. Rule-based approaches consist of defining heuristics in the form of regular expressions or linguistic pattern and making use of dictionaries and lexicons for extracting named-entities. Rule-based approaches have proven to be quite successful but one of their limitations is that it requires a domain expert to manually define and encode the rules. The process of hand-engineering rules is a time consuming and tedious process. It also requires a domain expert, cannot be easily ported to other domains and languages and becomes hard to maintain. Machine learning based approaches tries to overcome these limitations by automatically learning rules or inducing a model rather than defining the rules by a human expert. In this work, we present our research on overcoming the limitations of rule-based approach by building a rapid application development framework that can expedite the process of rule-building and making it easy to maintain and apply it to other domains. We describe a framework that can enable a business user to easily define and maintain rules and lexicons.
Notes: Approach for NLP
Reference Type: Conference Proceedings
Record Number: 9145
Author: Gaubatz, W. A.
Year of Conference: 1996
Title: Rapid prototyping
Conference Name: 1996 IEEE Aerospace Applications Conference. Proceedings
Volume: 3
Pages: 303-311 vol.3
Date: 3-10 Feb 1996
Short Title: Rapid prototyping
DOI: 10.1109/AERO.1996.496070
Keywords: aerospace industry
economics
management
military systems
missiles
product development
DC-X System
Delta Clipper Programs
Delta Clipper-Experimental system
Integrated Product Development
McDonnell Douglas
competitive strengths
compressed schedule
concurrent release
costs
drawings
explicitly defined budget
first time quality
flight testing
hardware and software design
international marketplace
procurements
rapid decision making authority
rapid prototyping
software design
team-wide communications
total management
Design engineering
Engineering management
Environmental management
Job shop scheduling
Life testing
Manufacturing processes
Prototypes
Software prototyping
Abstract: Competitiveness in today's market will be determined by the ability to be first to market with high-quality products at the lowest price. This product agility will be a key to competitive strengths in the international marketplace. To do this, first time quality with lower costs must be a way of life, not just a slogan. Rapid Prototyping, an Integrated Product Development (IPD) process creates the total management, operations, engineering, manufacturing, test and business environment that enables this to happen, Rapid prototyping has been a way of life on the Delta Clipper Programs since their inception, growing from a heritage of successful, fast paced programs carried out at McDonnell Douglas. The Rapid Prototyping Approach incorporates the basic tenets of Total Quality Management: empower the work force; build teams and commitment; and, build in quality from the beginning. The Delta Clipper Programs involve development efforts with a high degree of technical complexity, multi-discipline interactions, and schedule criticality. This requires managing a large number of activities simultaneously within a compressed schedule and an explicitly defined (and tight) budget. Schedule requirements demand concurrent release of drawings and procurements along with hardware and software design and development. The rapid prototyping environment facilitates these actions through team-wide communications, short management lines, and delegated, rapid decision making authority. This paper discusses the processes and results of rapid prototyping as applied to the development and flight testing of the Delta Clipper-Experimental, DC-X System
Notes: Not research...
Reference Type: Conference Proceedings
Record Number: 8837
Author: Mustapic, G., Wall, A., Norstrom, C., Crnkovic, I., Sandstrom, K., Froberg, J. and Andersson, J.
Year of Conference: 2004
Title: Real world influences on software architecture - interviews with industrial system experts
Conference Name: Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004)
Pages: 101-111
Date: 12-15 June 2004
Short Title: Real world influences on software architecture - interviews with industrial system experts
DOI: 10.1109/WICSA.2004.1310694
Keywords: research and development
software architecture
software development management
architecture-determining decisions
industrial system experts
industrial systems
system architecture evolution
Computer architecture
Computer industry
Control systems
Hardware
Radio control
Robot control
Robotics and automation
Software systems
Telecommunication control
Abstract: Industrial systems are examples of complex and often long-lived systems in which software is playing an increasingly important role. Their architectures play a crucial role in maintaining the properties of such systems during their entire life cycle. In this paper, we present the results of a case study based on a series of interviews and a workshop with key personnel from research and development groups of successful international companies in their Swedish locations. The main goal of the investigation was to find the significant factors which influence system and software architectures and to find similarities and differences between the architecture-determining decisions and the architectures of these systems. The role of the architect was an important subject of the investigation. Our findings result in recommendations relating to the design and evolution of system architectures and suggestions regarding areas in which future research would be beneficial.
'File' Atttachments: internal-pdf://0325623180/Real world influences on software architecture.pdf
Reference Type: Journal Article
Record Number: 8561
Author: Roeller, Ronny, Lago, Patricia and van Vliet, Hans
Year: 2006
Title: Recovering architectural assumptions
Journal: Journal of Systems and Software
Volume: 79
Issue: 4
Pages: 552-573
Date: 4//
Short Title: Recovering architectural assumptions
ISSN: 0164-1212
DOI: https://doi.org/10.1016/j.jss.2005.10.017
Keywords: Software architecture
Architectural knowledge
Assumptions
Architecture recovery
Abstract: During the creation of a software architecture, the architects and stakeholders take a lot of decisions. Many of these decisions can be directly related to functional or quality requirements. Some design decisions, though, are more or less arbitrarily made on the fly because of personal experience, domain knowledge, budget constraints, available expertise, and the like. These decisions, as well as the reasons for those decisions, are often not explicit upfront. They are implicit, and usually remain undocumented. We call them assumptions. There is no accepted way to document assumptions, and the relation between the software architecture and these assumptions easily gets lost, becomes hidden in the girders of the architecture. They are rediscovered at a later stage, when the software evolves and assumptions become invalid or new assumptions contradict earlier ones. In this paper, we develop a method to recover such assumptions from an existing software product. We illustrate the method by applying it to a commercial software product, and show how the results can help assess the evolutionary capabilities of its architecture.
URL: https://www.sciencedirect.com/science/article/pii/S0164121205001615
Reference Type: Journal Article
Record Number: 8713
Author: Ikeya, Nozomi, Luck, Rachael and Randall, Dave
Year: 2012
Title: Recovering the emergent logic in a software design exercise
Journal: Design Studies
Volume: 33
Issue: 6
Pages: 611-629
Date: 11//
Short Title: Recovering the emergent logic in a software design exercise
ISSN: 0142-694X
DOI: https://doi.org/10.1016/j.destud.2012.06.004
Keywords: ethnomethodology
software design
design practice
reasoning
problem solving
Abstract: This paper develops a deeper understanding of professional software design by examining the emergent logic of a software design exercise. Decision-making is evident as a ‘product’ of activity, including coordinated attention to primarily two artefacts, the brief and the whiteboard. Thus, we pay attention to the ‘situatedness’ of decision-making, which is not one person’s accomplishment, but is interactively carried out through treating what is known to the participants such as requirements written in the brief as ‘documentary’ of what is to be understood. The paper examines how each pair resolved the requirements uncertainties, by treating different ‘users’ differently. Our examination reveals how different approaches to the design exercise were actually organised to shed new light on software design practices.
URL: https://www.sciencedirect.com/science/article/pii/S0142694X12000415
'File' Attachments: internal-pdf://4113978989/Recovering the emergent logic in a software de.pdf
Reference Type: Journal Article
Record Number: 9043
Author: Avgeriou, P., Kruchten, P., Nord, R. L., Ozkaya, I. and Seaman, C.
Year: 2016
Title: Reducing Friction in Software Development
Journal: IEEE Software
Volume: 33
Issue: 1
Pages: 66-73
Short Title: Reducing Friction in Software Development
ISSN: 0740-7459
DOI: 10.1109/MS.2016.13
Keywords: data analysis
decision making
software maintenance
software quality
data science
economic theory
innovation curve
internal software quality
investment activity
software development
software engineering life cycle
software engineering progress
software evolution
software reengineering
Economics
Maintenance engineering
Software engineering
Stakeholders
Sustainability
education
maintenance and evolution
software architecture
software economics
software management
technical debt
Abstract: Software is being produced so fast that its growth hinders its sustainability. Technical debt, which encompasses internal software quality, evolution and maintenance, reengineering, and economics, is growing such that its management is becoming the dominant driver of software engineering progress. It spans the software engineering life cycle, and its management capitalizes on recent advances in fields such as source code analysis, quality measurement, and project management. Managing technical debt will become an investment activity applying economic theories. It will effectively address the architecture level and will offer specific processes and tools employing data science and analytics to support decision making. It will also be an essential part of the software engineering curriculum. Getting ahead of the software quality and innovation curve will inevitably involve establishing technical-debt management as a core software engineering practice. This article is part of a special issue on the Future of Software Engineering.
Notes: Not research, instead article
Reference Type: Journal Article
Record Number: 8439
Author: Chauhan, Muhammad Aufeef, Babar, Muhammad Ali and Sheng, Quan Z.
Year: 2017
Title: A Reference Architecture for provisioning of Tools as a Service: Meta-model, Ontologies and Design Elements
Journal: Future Generation Computer Systems
Volume: 69
Pages: 41-65
Date: 4//
Short Title: A Reference Architecture for provisioning of Tools as a Service: Meta-model, Ontologies and Design Elements
ISSN: 0167-739X
DOI: https://doi.org/10.1016/j.future.2016.12.002
Keywords: Cloud computing
Software reference architecture
Tools as a Service (TaaS)
Meta-model
Ontologies
Abstract: Software Architecture (SA) plays a critical role in designing, developing and evolving cloud-based platforms that can be used to provision different types of services for consumers on demand. In this paper, we present a Reference Architecture (RA) for designing cloud-based Tools as a service SPACE (TSPACE), which can provision a bundled suite of tools following the Software as a Service (SaaS) model. The reference architecture has been designed by leveraging information structuring approaches and by using well-known architecture design principles and patterns. The RA has been documented using view-based approach and has been presented in terms of its context, goals, the RA meta-model, information structuring and relationship models using ontologies and components of the RA. We have demonstrated the feasibility and applicability of the RA with the help of a prototype and have used the prototype to provision software architecting tools. We have also evaluated the RA in terms of effectiveness of the design decisions and the RA’s completeness and feasibility using scenario-based architecture evaluation method. The proposed TSPACE RA can provide valuable insights to information structure approaches and guidelines for designing and implementing TSPACE for various domains.
Notes: design of specific software
URL: https://www.sciencedirect.com/science/article/pii/S0167739X16307221
Reference Type: Conference Paper
Record Number: 8239
Author: Nakagawa, Elisa Yumi, Jos, #233 and Maldonado, Carlos
Year: 2008
Title: Reference architecture knowledge representation: an experience
Conference Name: Proceedings of the 3rd international workshop on Sharing and reusing architectural knowledge
Conference Location: Leipzig, Germany
Publisher: ACM
Pages: 51-54
DOI: 10.1145/1370062.1370077
Place Published: 1370077
Abstract: Software architectures have played a significant role in determining the success of software systems. In spite of impact of the architectures to the software development and, as a consequence, to the software quality, there is not yet a consensus about which mechanisms work better to describe these architectures. In addition, despite the relevance of reference architectures as an artifact that comprises knowledge of a given domain and supports development of systems for that domain, issues related to their representation have not also had enough attention. In this perspective, this work intends to contribute with an experience of representing reference architectures aiming at easily sharing and reusing knowledge in order to develop software systems. A case study on software testing is presented illustrating our experience.
Reference Type: Conference Paper
Record Number: 8250
Author: Nakagawa, Elisa Yumi
Year: 2012
Title: Reference architectures and variability: current status and future perspectives
Conference Name: Proceedings of the WICSA/ECSA 2012 Companion Volume
Conference Location: Helsinki, Finland
Publisher: ACM
Pages: 159-162
DOI: 10.1145/2361999.2362032
Place Published: 2362032
Abstract: Reference architectures refer to a special type of software architecture that achieves well-recognized understanding of specific domains, promoting reuse of design expertise and facilitating the development, standardization, and evolution of software systems. Designed for various domains and purpose, they have increasingly impacted important aspects of system development, such as productivity and quality of such systems. In another perspective, variability has been considered in several research topics as a mechanism that facilitates software development and evolution. In this context, the main contribution of this paper is to present the current status regarding variability in the reference architecture engineering. It is also presented future research perspectives that could be conducted, providing new directions to the reference architecture engineering in order to become existing and new reference architectures more effective elements to the development and evolution of software-intensive systems.
Notes: focus on reference architecture
Reference Type: Conference Paper
Record Number: 8028
Author: Hagen, Penny and MacFarlane, John
Year: 2008
Title: Reflections on the role of seeding in social design
Conference Name: Proceedings of the 20th Australasian Conference on Computer-Human Interaction: Designing for Habitus and Habitat
Conference Location: Cairns, Australia
Publisher: ACM
Pages: 279-282
DOI: 10.1145/1517744.1517780
Place Published: 1517780
Abstract: In strategies that make use of social software participation not only defines success but also defines the design. This foregrounds particular considerations during the planning and design process about participation, and how we bridge the gap between the client vision, the project and the potential community of contributors or users. This paper introduces and reflects on the notion of seeding as a construct useful for emphasising and exploring ways to promote or increase the likelihood of successful engagement. In systems that are determined by participation, it is our position that part of our role as designers is to facilitate or seed that participation and that the act of seeding (participation) becomes a core design activity. In this paper we reflect through case studies on the significance and potential for seeding content, connection and community through our design work, and on the way this has affected our approach to and understanding of the design process.
Notes: not empirical
Reference Type: Conference Proceedings
Record Number: 9230
Author: Razavian, M., Tang, A., Capilla, R. and Lago, P.
Year of Conference: 2016
Title: Reflective Approach for Software Design Decision Making
Conference Name: 2016 Qualitative Reasoning about Software Architectures (QRASA)
Pages: 19-26
Date: 5-8 April 2016
Short Title: Reflective Approach for Software Design Decision Making
DOI: 10.1109/QRASA.2016.8
Keywords: decision making
software engineering
problem-generic reflective questions
software design decision making
two-minds model
Cognition
Context
Object oriented modeling
Problem-solving
Software design
Abstract: Good software design practice is difficult to define and teach. Despite the many software design methods and processes that are available, the quality of software design relies on human factors. We notice from literature and our own experiments that some of these factors concern design reasoning and reflection. In this paper, we propose a reflective approach to software design decision making. The approach is built upon Two-Minds model and is enabled by a set of problem-generic reflective questions. We illustrate its usefulness in design sessions with an example taken from preliminary experimentation.
Reference Type: Conference Paper
Record Number: 7959
Author: Inverardi, Paola and Yankelevich, Daniel
Year: 1996
Title: Relating CHAM Descriptions of Software Architectures
Conference Name: Proceedings of the 8th International Workshop on Software Specification and Design
Publisher: IEEE Computer Society
Pages: 66
Place Published: 858268
Abstract: We propose an approach to compare descriptions of software architectures based on the CHAM formalism. The need to compare descriptions of the same system at different level of abstraction often arises typically when the software practice uses a stepwise refinement approach. Differently from other approaches presented in the literature, our framework allows for expressing correct refinement both of the static structure and of the dynamic behaviour of an architecture. Statically we rely on a suitable definition of partial morphism between the signatures of the two architectures. Dynamically we propose a notion of structure preserving simulation which allows the behaviours of the two CHAM descriptions to be (pre orderly) related. In both definitions an important role is played by the membrane construct which allows for expressing non functional constraints on the architecture to be refined. The main idea is to use the membranes to denote basic software components of the architecture that can be further decomposed during a refinement process but that cannot be destroyed even if the behaviour of the overall system is preserved. One point in favour of our approach is that we do not constrain too much the further development since we only require the membrane structure to be preserved.
Notes: compare architectures
Reference Type: Conference Paper
Record Number: 8345
Author: Marasovi, Kristina, #263 and Lutz, Michael
Year: 2015
Title: Remote development and distance delivery of innovative courses: challenges and opportunities
Conference Name: Proceedings of the 37th International Conference on Software Engineering - Volume 2
Conference Location: Florence, Italy
Publisher: IEEE Press
Pages: 299-302
Place Published: 2819055
Abstract: The Rochester Institute of Technology (RIT) offers programs of study at several of RIT's international campuses: Dubrovnik and Zagreb (Croatia), Dubai (United Arab Emirates) and Priatina (Kosovo). At RIT Croatia, some courses are delivered as distance education courses using Polycom, a video conferencing system, supported by other online education tools. Although distance learning methods and tools provide an effective way to offer instructions remotely, delivering a course that emphasizes team-based software development, with laboratory exercises and in-class team activities, creates new challenges that need to be addressed. This paper discusses the authors' experiences with the remote development and delivery of one of those courses - the SWEN-383 Software Design Principles and Patterns course in the Information Technology program at RIT Croatia. The paper first explains the role and need for offering this particular course. It then discusses how the collaborative development of this new course was conducted between the U.S. And the Croatian campuses, including remote delivery from Zagreb to Dubrovnik. The paper concludes with observations and suggestions for those who may engage in such a project in the future.
Notes: students
Reference Type: Conference Proceedings
Record Number: 9577
Author: Lytra, I., Engelbrecht, G., Schall, D. and Zdun, U.
Year of Conference: 2015
Title: Reusable Architectural Decision Models for Quality-Driven Decision Support: A Case Study from a Smart Cities Software Ecosystem
Conference Name: 2015 IEEE/ACM 3rd International Workshop on Software Engineering for Systems-of-Systems
Pages: 37-43
Date: 17-17 May 2015
Short Title: Reusable Architectural Decision Models for Quality-Driven Decision Support: A Case Study from a Smart Cities Software Ecosystem
DOI: 10.1109/SESoS.2015.14
Keywords: decision making
knowledge based systems
smart cities
software architecture
software quality
software reusability
architectural decision making
architectural design
architectural knowledge
document quality
quality attributes
quality-driven decision support
reusable architectural decision models
software ecosystem
software systems
system-of-systems domain
Biological system modeling
Computer architecture
Data mining
Ecosystems
Software
architectural decision support
architectural design decision
quality attribute
smart city
Abstract: Architectural design decisions and architectural knowledge are becoming relevant in the current practice of software architecture. In addition, reusable architectural knowledge has gained much importance in the industrial practice. In the process of architectural decision making, quality attributes constitute key drivers for designing software systems, therefore, it is important to document quality attributes along with the decisions captured. However, most of the current tools for management of architectural decisions focus mainly on capturing or sharing of design decisions. We propose to enrich a reusable architectural decision meta-model with quality attributes and introduce a corresponding tool. Our goal is to support software architects during decision making based on reusable decisions driven by quality attributes. Our approach was motivated by and applied in an industrial case study on a large-scale software ecosystem for smart cities, that constitute a complex and challenging system-of-systems domain. We applied our proposal in a few scenarios in the smart cities domain, in which the consideration of quality attributes is required to model reusable architectural knowledge adequately.
Notes: document decisions
Reference Type: Conference Paper
Record Number: 8335
Author: Shidende, Nima Herman, M, Christina, #246 and rtberg
Year: 2014
Title: Re-visiting design-after-design: reflecting implementation mediators connectedness in distributed participatory design activities
Conference Name: Proceedings of the 13th Participatory Design Conference: Research Papers - Volume 1
Conference Location: Windhoek, Namibia
Publisher: ACM
Pages: 61-70
DOI: 10.1145/2661435.2661437
Place Published: 2661437
Abstract: This paper aims at an extended understanding of the design facilitators' role, here implementation mediators, in participatory design practices. In reflecting connectedness between use and design in a distributed open source software design practice, a particular focus is devoted to the implementation mediator's interaction between local users, global software developers, and local designers who are geographically distributed, possess different technological skills, and different work experiences. The implementation mediators' insights are useful in the design of large information systems that involve distributed actors. A maternal and child health setting in Tanzania was the case in this study. An ethnographic study involving interactions with global developers and participative activities in local health practices were conducted. In addition, mediators connected local and global designers to configure a computer system for a particular context; configured participation, involving health workers in designing practices. We present the role of the implementation mediators and its related participatory activities by using the notion of design-after-design. We also highlight the challenges which could face implementation mediators in distributed participatory design activities.
Notes: Thematically not fitting...
'File' Attachments: internal-pdf://2008152556/Re-visiting design-after-design reflecting imp.pdf
Reference Type: Conference Proceedings
Record Number: 9108
Author: Boasson, M.
Year of Conference: 1996
Title: The role of architecture in the development of software systems
Conference Name: Computer Software and Applications Conference, 1996. COMPSAC '96., Proceedings of 20th International
Pages: 350-351
Date: 21-23 Aug 1996
Short Title: The role of architecture in the development of software systems
ISBN: 0730-3157
DOI: 10.1109/CMPSAC.1996.544589
Keywords: software cost estimation
software metrics
software performance evaluation
fast hardware
software architecture
software complexity
software development cost
software development process
system functionality
systems sophistication
Availability
Chaotic communication
Computer architecture
Cost function
Explosions
Hardware
Safety
Software systems
Virtual machining
Abstract: Systems increasingly rely on software as the main technology for implementing the desired behaviour. There is a clear trend of steadily growing sophistication in the behaviour of these systems. The availability of cheap and fast hardware suggests that successive generations of systems should exhibit greatly enhanced behaviour, but this increase in functionality is not observed to an extent that can be related to the progress made in hardware. To the contrary, systems grow in complexity very rapidly (as exemplified by their cost and the required sophistication of the development process), without providing much in terms of added functionality. This complexity, and resulting cost, limits the achievable level of sophistication in systems, unless techniques are found that allow the software complexity to be reduced very significantly. The imbalance between cost and functionality is discussed and arguments are presented suggesting it to be avoidable through a sound software architecture
Notes: cost focus
Reference Type: Journal Article
Record Number: 9642
Author: Shaw, M.
Year: 2012
Title: The Role of Design Spaces
Journal: IEEE Software
Volume: 29
Issue: 1
Pages: 46-50
Short Title: The Role of Design Spaces
ISSN: 0740-7459
DOI: 10.1109/MS.2011.121
Keywords: software engineering
Studying Professional Software Design workshop
design space
traffic signal simulator
Object oriented modeling
Product development
Software architecture
Software design
design
Abstract: A central task in design is deciding what artifact will best satisfy the client's needs, whether that requires creating an artifact or choosing from existing alternatives. A design space identifies and organizes the decisions that must be made, together with the alternatives for those decisions, thereby providing guidance for creating artifacts or a framework for comparing them. The Studying Professional Software Design workshop studied three pairs of professional software designers sketching designs for a traffic signal simulator. A discussion of the design space for the simulation task shows how this design space enables comparison of the designs. It also illustrates the benefits of explicitly considering the design space during design and the risks of failing to do so.
'File' Attachments: internal-pdf://3790582486/The Role of Design Spaces.pdf
Reference Type: Journal Article
Record Number: 9283
Author: Adelson, B. and Soloway, E.
Year: 1985
Title: The Role of Domain Experience in Software Design
Journal: IEEE Transactions on Software Engineering
Volume: SE-11
Issue: 11
Pages: 1351-1360
Short Title: The Role of Domain Experience in Software Design
ISSN: 0098-5589
DOI: 10.1109/TSE.1985.231883
Keywords: Artificial intelligence
cognitive models
cognitive science
software design
Computer science
Information science
Problem-solving
Protocols
Abstract: A designer's expertise rests on the knowledge and skills which develop with experience in a domain. As a result, when a designer is designing an object in an unfamiliar domain he will not have the same knowledge and skills available to him as when he is designing an object in a familiar domain. In this paper we look at the software designer's underlying constellation of knowledge and skills, and at the way in which this constellation is dependent upon experience in a domain. What skills drop out, what skills, or interactions of skills come forward as experience with the domain changes? To answer the above question, we studied expert designers in experimentally created design contexts with which they were differentially familiar. In this paper we describe the knowledge and skills we found were central to each of the above contexts and discuss the functional utility of each. In addition to discussing the knowledge and skills we observed in expert designers, we will also compare novice and expert behavior.
'File' Attachments: internal-pdf://4088361484/The Role of Domain Experience in Software Desi.pdf
Reference Type: Journal Article
Record Number: 9512
Author: Sharp, H., Dittrich, Y. and Souza, C. R. B. de
Year: 2016
Title: The Role of Ethnographic Studies in Empirical Software Engineering
Journal: IEEE Transactions on Software Engineering
Volume: 42
Issue: 8
Pages: 786-804
Short Title: The Role of Ethnographic Studies in Empirical Software Engineering
ISSN: 0098-5589
DOI: 10.1109/TSE.2016.2519887
Keywords: cultural aspects
human factors
software process improvement
empirical software engineering
ethnography
human aspects
social aspects
sociotechnological realities
software development practice
software engineering tools
software process development
Computer science
Context
Electronic mail
Guidelines
Sociology
Software
Software engineering
Design tools and techniques
computer-supported collaborative work
human factors in software design
software engineering process
Abstract: Ethnography is a qualitative research method used to study people and cultures. It is largely adopted in disciplines outside software engineering, including different areas of computer science. Ethnography can provide an in-depth understanding of the socio-technological realities surrounding everyday software development practice, i.e., it can help to uncover not only what practitioners do, but also why they do it. Despite its potential, ethnography has not been widely adopted by empirical software engineering researchers, and receives little attention in the related literature. The main goal of this paper is to explain how empirical software engineering researchers would benefit from adopting ethnography. This is achieved by explicating four roles that ethnography can play in furthering the goals of empirical software engineering: to strengthen investigations into the social and human aspects of software engineering; to inform the design of software engineering tools; to improve method and process development; and to inform research programmes. This article introduces ethnography, explains its origin, context, strengths and weaknesses, and presents a set of dimensions that position ethnography as a useful and usable approach to empirical software engineering research. Throughout the paper, relevant examples of ethnographic studies of software practice are used to illustrate the points being made.
Notes: interesting but about ethnography as technique to identify possible research
Reference Type: Journal Article
Record Number: 9434
Author: Sen, A.
Year: 1997
Title: The role of opportunism in the software design reuse process
Journal: IEEE Transactions on Software Engineering
Volume: 23
Issue: 7
Pages: 418-436
Short Title: The role of opportunism in the software design reuse process
ISSN: 0098-5589
DOI: 10.1109/32.605760
Keywords: blackboard architecture
software libraries
software reusability
software tools
blackboard technology
cognitive model
collaborative design knowledge
demand-side software reuse
design schema
opportunism
protocol analysis
reuse library management system
software design reuse process
software development life cycle
structured description
task requirements
Collaborative software
Computer aided software engineering
Humans
Investments
Process design
Programming
Software design
Abstract: Software design involves translating a set of task requirements into a structured description of a computer program that will perform the task. A software designer can use design schema, collaborative design knowledge, or can reuse design artifacts. Very little has been done to include reuse of design artifacts in the software development life cycle, despite tremendous promises of reuse. As a result, this technique has not seen widespread use, possibly due to a lack of cognitive understanding of the reuse process. This research explores the role of a specific cognitive aspect, opportunism, in demand-side software reuse. We propose a cognitive model based on opportunism that describes the software design process with reuse. Protocol analysis verifies that the software design with reuse is indeed opportunistic and reveals that some software designers employ certain tasks of the reuse process frequently. Based on these findings, we propose a reuse support system that incorporates blackboard technology and existing reuse library management system
Reference Type: Conference Paper
Record Number: 8184
Author: Passier, Harrie
Year: 2017
Title: The role of Procedural Guidance in Software Engineering Education
Conference Name: Companion to the first International Conference on the Art, Science and Engineering of Programming
Conference Location: Brussels, Belgium
Publisher: ACM
Pages: 1-2
DOI: 10.1145/3079368.3079398
Place Published: 3079398
Abstract: Designing and programming require several types of knowledge. Beside conceptual knowledge, procedural knowledge is of importance. Procedural knowledge, however, is often missed in courses about software design and implementation. As a consequence, students can easily be stuck and do not know how to proceed.
Considering software engineering as a complex task, the didactic approach 4C/ID is applicable. This approach prescribes that besides mental models, cognitive strategies should be learned, consisting of overall steps and rules and procedures per step. As an example, a procedure for designing and programming a concurrent program is briefly described. This procedure will scaffffold studentfis learning of concurrency concepts and their application.
Notes: students
Reference Type: Conference Proceedings
Record Number: 9000
Author: Akhtar, A., Motla, Y. H., Aslam, H. and Jamal, M.
Year of Conference: 2014
Title: Role of requirement change in software architecture using Twin Peaks Model
Conference Name: 2014 IEEE 5th International Conference on Software Engineering and Service Science
Pages: 174-177
Date: 27-29 June 2014
Short Title: Role of requirement change in software architecture using Twin Peaks Model
ISBN: 2327-0586
DOI: 10.1109/ICSESS.2014.6933539
Keywords: formal specification
software architecture
Twin Peaks Model
requirement change management
software development
Analytical models
Computer architecture
Decision making
Object oriented modeling
Software
Unified modeling language
Requirement management
Abstract: Requirement change management is an important activity in software development. When we change our requirements it affects the other requirements of the system as well as the architecture of the system. It needs a proper approach which improves the requirement change management and its impact on architecture in a better way. In this paper a framework has been introduced which integrates the impact of requirement change in the software system by using Twin Peak Model. The expert review method is used to evaluate our research. This framework gives a better approach to measure the impact of a requirement change in the architecture of the system. Our research outcome is, to develop a framework by using Twin Peaks Model to analyze the changing requirement and gives the impact of these changes in requirements on software architecture designing. It will be helpful to manage changes in the software architecture.
Notes: process/framework
Reference Type: Conference Proceedings
Record Number: 9478
Author: Shekaran, C., Garlan, D., Jackson, M., Mead, N. R., Potts, C. and Reubenstein, H. B.
Year of Conference: 1994
Title: The role of software architecture in requirements engineering
Conference Name: Proceedings of IEEE International Conference on Requirements Engineering
Pages: 239-245
Date: 18-22 Apr 1994
Short Title: The role of software architecture in requirements engineering
DOI: 10.1109/ICRE.1994.292379
Keywords: formal specification
professional aspects
systems analysis
application domain specialist
application-specific high-level design
high-level implementation constraints
problem definition
requirements engineer
requirements engineering
software architect
software architecture
software development process
solution structure
Computer architecture
Computer industry
Laboratories
Performance analysis
Programming
Reliability engineering
Shape
Software engineering
Software systems
Abstract: The role of software architecture (which reflects high-level implementation constraints) in requirements engineering is clarified by providing perspectives on relevant issues, including the following: is requirements engineering merely a front end to the software development process that is concerned only with problem definition? Is software architecture an application-specific, high-level design of a system (for example, “an object-oriented system with a specified object hierarchy”)? What is the relationship between the problem definition and the solution structure? What is the relationship between the roles of requirements engineer, software architect, and application domain specialist?
Reference Type: Conference Proceedings
Record Number: 9494
Author: Laine, P. K.
Year of Conference: 2001
Title: The role of SW architecture in solving fundamental problems in object-oriented development of large embedded SW systems
Conference Name: Proceedings Working IEEE/IFIP Conference on Software Architecture
Pages: 14-23
Date: 2001
Short Title: The role of SW architecture in solving fundamental problems in object-oriented development of large embedded SW systems
DOI: 10.1109/WICSA.2001.948400
Keywords: embedded systems
object-oriented programming
software architecture
OO SW development
OO approach
SW architecture
conceptual problems
large embedded SW systems
methodological implications
object oriented SW development
Computer architecture
Embedded software
Embedded system
Failure analysis
Filling
Hardware
Laboratories
Large-scale systems
Performance analysis
Power system modeling
Abstract: The article approaches SW (software) architecture through the needs and problems of object oriented SW development. It is widely perceived that the OO approach, despite its generally acknowledged strengths, has so far failed to fully deliver its promises. Based on experiences from the development of several large embedded SW systems, an analysis of common practical and conceptual problems in OO SW development is performed and a solution is suggested The analysis indicates a need for SW architecture as a separate concept. The discussion of the solution concentrates on the nature of SW architecture in this context, on the methodological implications of combining SW architecture work with OO approach and on the role of the architecture task in the entirety of SW construction
Reference Type: Conference Proceedings
Record Number: 9279
Author: Reece, M. J.
Year of Conference: 1985
Title: The Role of the Software Engineer in the System Design Process
Conference Name: MILCOM 1985 - IEEE Military Communications Conference
Volume: 2
Pages: 346-349
Date: 20-23 Oct. 1985
Short Title: The Role of the Software Engineer in the System Design Process
DOI: 10.1109/MILCOM.1985.4795049
Keywords: Communication system control
Control systems
Design engineering
Embedded computing
Embedded software
Embedded system
Hardware
Microprocessors
Power engineering and energy
Systems engineering and theory
Abstract: There presently exists a large and growing body of embedded computer systems, computers that perform some controlling function in a larger system such as a communications system. These embedded systems are often developed by project teams that do not contain the expertise of the software engineer in the beginning phases. This approach was appropriate when the technical nature of the embedded system development had a relatively small software component. Now, however, the availability of cheap, powerful, general-purpose microprocessors has moved software into a more critical role in the system design process. As a result, the engineering that used to be conducted in a hardware design atmosphere is now being conducted in a software design and programming environment and the skills and experience of the software engineer are needed in the beginning phases of the design process. This paper discusses some of the differences between software engineering and other branches of engineering, presents an approach for integrating software and firmware into the overall system design process and suggests possible risk reduction measures to use during the development process.
Notes: process oriented
Reference Type: Conference Paper
Record Number: 7869
Author: Spichkova, Maria, Schmidt, Heinz and Trubiani, Catia
Year: 2017
Title: Role of women in software architecture: an attempt at a systematic literature review
Conference Name: Proceedings of the 11th European Conference on Software Architecture: Companion Proceedings
Conference Location: Canterbury, United Kingdom
Publisher: ACM
Pages: 31-34
DOI: 10.1145/3129790.3129826
Place Published: 3129826
Notes: literature review
Reference Type: Journal Article
Record Number: 8405
Author: El-Hassan, Osama and Fiadeiro, José Luiz
Year: 2007
Title: Role-based Architectural Modelling of Socio-Technical Systems
Journal: Electronic Notes in Theoretical Computer Science
Volume: 181
Pages: 5-17
Date: 6/27/
Short Title: Role-based Architectural Modelling of Socio-Technical Systems
ISSN: 1571-0661
DOI: https://doi.org/10.1016/j.entcs.2007.01.050
Keywords: Role-based Modelling
Software Architecture
Coordination
Abstract: The focus of this paper is on how a role-based architectural approach can contribute to building normative models for evolvable and adaptable socio-technical systems, i.e. systems in which both software components and people play well-defined roles and need to interact to ensure that required global properties emerge. We propose a method that is associated with a set of new modelling primitives anchored on organisational roles and governed by social laws that handle the situations that may arise when the people involved deviate from prescribed behaviour and fail to play the role that they have been assigned as entities of the system.
URL: https://www.sciencedirect.com/science/article/pii/S1571066107003659
Reference Type: Conference Proceedings
Record Number: 9485
Author: Paulisch, F. and Zimmerer, P.
Year of Conference: 2010
Title: A role-based qualification and certification program for software architects: an experience report from Siemens
Conference Name: 2010 ACM/IEEE 32nd International Conference on Software Engineering
Volume: 2
Pages: 21-27
Date: 2-8 May 2010
Short Title: A role-based qualification and certification program for software architects: an experience report from Siemens
ISBN: 0270-5257
DOI: 10.1145/1810295.1810300
Keywords: certification
computer science education
educational courses
knowledge based systems
software architecture
Siemens report
business unit
international company
knowledge- experience-based certification
role-based certification program
role-based qualification
software architect
software engineering curriculum
Business
Computer architecture
Conferences
Qualifications
Software
Testing
curriculum
education
software engineering
training
Abstract: In this experience report, we describe the motivation, experience, lessons learned, and future directions of a software engineering curriculum used at a large international company. The "Curriculum for Software Engineers" project, which developed the content and a role-based qualification and certification program, was started at Siemens in 2006. This paper includes an overview of various kinds of certification in the software engineering area and why we chose the knowledge- and experience-based type of certification. The experience report part focuses mainly on the "certified senior software architect" role, as this role has the longest history and participants from many different business units and countries.
Reference Type: Conference Proceedings
Record Number: 8809
Author: Gurp, J. van and Bosch, J.
Year of Conference: 2000
Title: SAABNet: Managing qualitative knowledge in software architecture assessment
Conference Name: Proceedings Seventh IEEE International Conference and Workshop on the Engineering of Computer-Based Systems (ECBS 2000)
Pages: 45-53
Date: 2000
Short Title: SAABNet: Managing qualitative knowledge in software architecture assessment
DOI: 10.1109/ECBS.2000.839860
Keywords: belief networks
software architecture
software performance evaluation
Belief Network
SAABNet
qualitative assessments
qualitative knowledge
software architecture assessment
software architectures
Bayesian methods
Computer architecture
Computer languages
Feedback
Feeds
Knowledge management
Probability
Q factor
Quality management
Abstract: Quantitative techniques have traditionally been used to assess software architectures. We have found that early in development process there is often insufficient quantitative information to perform such assessments. So far the only way to make qualitative assessments about an architecture, is to use qualitative assessment techniques such as peer reviews. The problem with this type of assessment is that they depend on the techniques knowledge of the expert designers who use them. In this paper we introduce a technique, SAABNet (Software Architecture Assessment Belief Network), that provides support to make qualitative assessments of software architectures
Notes: assess software architecture
Reference Type: Journal Article
Record Number: 8552
Author: Upadhyay, Nitin
Year: 2016
Title: SDMF: Systematic Decision-making Framework for Evaluation of Software Architecture
Journal: Procedia Computer Science
Volume: 91
Pages: 599-608
Date: //
Short Title: SDMF: Systematic Decision-making Framework for Evaluation of Software Architecture
ISSN: 1877-0509
DOI: https://doi.org/10.1016/j.procs.2016.07.151
Keywords: Decision-making
software architecture
design decisions
pattern
software quality
TOPSIS
Abstract: The software architectural decisions are crucial and critical to the success of a software project life cycle. The set of relevant design decisions affects the quality of the software architecture. In this paper, a systematic decision-making framework is proposed by considering management and organizational factors and design goals/parameters that affect software architecture (SA) and integrating it with the technique for order preference by similarity to ideal solution (TOPSIS) to evaluate and select the quality software architecture. An illustrative case study is also mentioned to show the applicability of the proposed framework. The framework suggested in the paper should enable an architect and other key stakeholders of the software architecture to efficiently identify, evaluate and select the software architecture.
URL: https://www.sciencedirect.com/science/article/pii/S1877050916313448
Reference Type: Conference Proceedings
Record Number: 9266
Author: Telschig, K., Schöffel, N., Schultis, K. B., Elsner, C. and Knapp, A.
Year of Conference: 2016
Title: SECO Patterns: Architectural Decision Support in Software Ecosystems
Conference Name: 2016 1st International Workshop on Decision Making in Software ARCHitecture (MARCH)
Pages: 38-44
Date: 5-5 April 2016
Short Title: SECO Patterns: Architectural Decision Support in Software Ecosystems
DOI: 10.1109/MARCH.2016.10
Keywords: decision making
decision support systems
ecology
environmental science computing
feature selection
software architecture
CoCoADvISE
SECO patterns
architectural decision support
high-level architecture
software design
software ecosystems
two-step decision support system
Biological system modeling
Computer architecture
Ecosystems
Organizations
Software
architectural decision
decision support system
seco pattern
Abstract: A software ecosystem challenges the architect through additional considerations, because multiple partners with different interests are involved. Therefore, the perspectives business, organization and high-level architecture need to be taken into account before deriving a detailed software design. In this paper, we present our vision and first results of SECO patterns, which capture solutions for recurring high-level problems in software ecosystems. They can be used standalone, but our vision also includes a two-step decision support system to aid the architect in two complex decisions: At first, it can propose relevant SECO patterns to support feature selection. The proposals are based on the specific characteristics of the software ecosystem of interest, which have to be provided by the architect. In a second step, the decision support system can aid the architect in applying a selected SECO pattern. For this step, we reuse the method and knowledge base of CoCoADvISE to provide guidance on decision making regarding the detailed software architecture.
Notes: decision support system
Reference Type: Conference Proceedings
Record Number: 9586
Author: Liang, P., Jansen, A. and Avgeriou, P.
Year of Conference: 2008
Title: Selecting a High-Quality Central Model for Sharing Architectural Knowledge
Conference Name: 2008 The Eighth International Conference on Quality Software
Pages: 357-365
Date: 12-13 Aug. 2008
Short Title: Selecting a High-Quality Central Model for Sharing Architectural Knowledge
ISBN: 1550-6002
DOI: 10.1109/QSIC.2008.20
Keywords: software architecture
software quality
system documentation
architectural knowledge documentation
concept mapping relationships
design decisions
high-quality central model
indirect mapping approach
semantic distance
Astronomy
Computer architecture
Context modeling
Employment
Mathematical model
Mathematics
Programming
Quality management
architectural knowledge sharing
ontology matching
Abstract: In the field of software architecture, there has been a paradigm shift from describing the outcome of architecting process to documenting architectural knowledge (AK), such as design decisions and rationale. To this end, a series of domain models have been proposed for defining the concepts and their relationships in the field of AK. To a large extent, the merit of this new paradigm is derived by sharing and reusing AK across organizations, especially in geographically distributed contexts. However, the employment of different AK domain models by different parties makes effective AK sharing challenging, as it needs to be mapped either from one domain model to another directly, or indirectly through a central model for simplicity when the number of AK models increases. The indirect mapping approach has proved to be a cost-effective way by sacrificing acceptable sharing quality compared with direct mapping approach. However, there exist no criteria for the selection of a high quality central model besides the intuitive judgment by domain experts. In this paper, we propose to tackle this issue by using the concept of semantic distance between AK models, which is calculated using rules based on the concept mapping relationships between the models. A high quality central model is therefore the one with the shortest semantic distance to all potential AK models.
Notes: ADD tool
Reference Type: Conference Proceedings
Record Number: 9144
Author: Poirot, P. e., Ren, S., Nogiec, J. and Tsai, J.
Year of Conference: 2006
Title: Separating Functional and Non-functional Concerns through Coordination: An Application to Reliability
Conference Name: 30th Annual International Computer Software and Applications Conference (COMPSAC'06)
Volume: 2
Pages: 63-66
Date: 17-21 Sept. 2006
Short Title: Separating Functional and Non-functional Concerns through Coordination: An Application to Reliability
ISBN: 0730-3157
DOI: 10.1109/COMPSAC.2006.163
Keywords: middleware
object-oriented programming
software architecture
software reliability
Actor Architecture
Actor model
component dynamicity
component-based coordination
computational components
computational coordinators
distributed system
functional concerns
nonfunctional concerns
nonfunctional requirements
reliability constraints
role-based coordination
system dependability
Application software
Computer architecture
Computer science
Control systems
Laboratories
Monitoring
Power system reliability
Software maintenance
System testing
Vehicle detection
Abstract: This paper presents a software architecture that ensures system dependability through external coordination. Under this architecture, a distributed system is decomposed into two types of entities, i.e., computational components and coordinators. The system's computational functionalities are carried out by computational components, whereas coordinators are to coordinate these computational components to respect the system's non-functional requirements, such as reliability constraints. Coordination in the system is done implicitly through intercepting, rerouting and suppressing communications between components. Additionally, roles are introduced into the system to bridge the connection between components and coordinators. Roles abstract the non-functional behaviors shared by computational components. Thus role-based coordination is more scalable than individual component-based coordination. Additionally, the dynamicity of components is concealed from the coordinators by the roles. A proof of concept implementation is built on top of the Actor Architecture, a middleware for distributed systems based on the Actor model by G. Aghal et al. (1997), The results show that not only such separation is feasible, but also that the architecture allows us to better control the dependability of the system. Finally, the application developed based on the proposed model is more modularized and consequently more reusable
Notes: System structure
Reference Type: Conference Proceedings
Record Number: 9362
Author: Crowley, J. L.
Year of Conference: 2005
Title: Situated Observation of Human Activity
Conference Name: Computer Vision for Interactive and Intelligent Environment (CVIIE'05)
Pages: 97-108
Date: 17-18 Nov. 2005
Short Title: Situated Observation of Human Activity
DOI: 10.1109/CVIIE.2005.18
Keywords: Communications technology
Computer vision
Encoding
Humans
Information technology
Production
Real time systems
Software architecture
Streaming media
Video recording
Abstract: Many human activities follow a loosely defined script in which individuals assume roles. Encoding such scripts in a formal representation makes it possible to build systems that observe and understand human activity. In this paper, we first present a conceptual framework in which scripts for human activity are described as scenarios composed of actors and objects within a network of situations. We provide formal definitions for the underlying concepts for situation models, and then propose a layered, component-based, software architecture model for constructings systems to observe human activity. Both the conceptual framework and architectural model are illustrated with a system for real-time composition of a synchronized audio-video streams for recording activity within a meeting or lecture.
Notes: Systems to observe human behavior
Reference Type: Conference Paper
Record Number: 8085
Author: Wirfs-Brock, Rebecca Jordan
Year: 2010
Title: Skills for the agile designer: seeing, shaping and discussing design ideas
Conference Name: Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
Conference Location: Reno/Tahoe, Nevada, USA
Publisher: ACM
Pages: 323-326
DOI: 10.1145/1869542.1869630
Place Published: 1869630
Abstract: Agile teams incrementally develop solutions. So the pace of design work can be more intense and episodic. Agile designers need to be able to quickly see the essence of a problem and shape reasonable solutions. And when ideas don't pan out or require-ments shift, they must be comfortable revising their designs. This SPLASH tutorial introduces several techniques and some vocabu-lary for sharing design ideas, characterizing (and then designing to accommodate) variability, responding to design advice, and track-ing design work and technical debt.
Notes: tutorial
Reference Type: Conference Paper
Record Number: 8161
Author: Zannier, Carmen and Maurer, Frank
Year: 2007
Title: Social Factors Relevant to Capturing Design Decisions
Conference Name: Proceedings of the Second Workshop on SHAring and Reusing architectural Knowledge Architecture, Rationale, and Design Intent
Publisher: IEEE Computer Society
Pages: 1
DOI: 10.1109/shark-adi.2007.12
Place Published: 1269071
Abstract: We present results from a qualitative study of design decision making that used interviews, observations and participatory observations to describe inherent traits of software design decision makers. We find that designers do not always strive for optimal design solutions, that designers do not always consider alternatives when making design decisions, and that alternatives are considered more often in groups of people having a casual conversation. We highlight that tool support for capturing design rationale and intent should first recognize the way decisions are inherently made in software environments and we provide a summary of our results as an indicator of requirements for such tools.
Reference Type: Conference Paper
Record Number: 8084
Author: Bondi, Andre B.
Year: 2009
Title: The software architect as the guardian of system performance and scalability
Conference Name: Proceedings of the 2009 ICSE Workshop on Leadership and Management in Software Architecture
Publisher: IEEE Computer Society
Pages: 28-31
DOI: 10.1109/lmsa.2009.5074861
Place Published: 1564685
Abstract: System performance and scalability issues often have their roots in architectural and design choices that are made early in the software life cycle. Because he must communicate with developers, designers, product managers, business stake holders, application domain experts, testers, and requirements engineers, the software architect is uniquely placed to play a leadership role in linking performance requirements to business and engineering needs. Ideally, the architectural, technology, and design choices that are made should take performance requirements and artifacts into account. This means that the architect should be equipped with at least a rudimentary understanding of performance engineering concepts. Ideally, an architect should be directly involved in performance concerns. Failing that, he should overtly give a mandate to and remain in close contact with a performance engineer to do this instead, because close architectural involvement with performance concerns is key to the success of the project.
Reference Type: Conference Paper
Record Number: 7900
Author: McBride, Matthew R.
Year: 2004
Title: The software architect: essence, intuition, and guiding principles
Conference Name: Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Conference Location: Vancouver, BC, CANADA
Publisher: ACM
Pages: 230-235
DOI: 10.1145/1028664.1028764
Place Published: 1028764
Abstract: Software architecture is a distinct and developing discipline in the software profession. Many practitioners have apparently entered the field with little effort; adding the word "architect" to a title is easy to do. However, beneath the surface appearance, distinct approaches and toolsets are required to succeed. Reports of IT overspending and project failures emphasize the fact that these skills must be leveraged and developed. The practical application of this growing body of knowledge will continue to play an important role in the maturing of our profession, and its ability to deliver effective solutions. The software architect possesses a unique perspective and mental framework that guides the development of software systems. Additionally, strong interpersonal skills are vital to the software architect's success. In this paper, I explore the unique approaches and characteristics of the successful software architect.
Reference Type: Journal Article
Record Number: 9210
Author: Mateosian, R.
Year: 2009
Title: Software Architects [review of 97 Things Every Software Architect Should Know: Collective Wisdom from the Experts (Monson-Haefel, R., Ed.; 2009)]
Journal: IEEE Micro
Volume: 29
Issue: 3
Pages: 62-64
Short Title: Software Architects [review of 97 Things Every Software Architect Should Know: Collective Wisdom from the Experts (Monson-Haefel, R., Ed.; 2009)]
ISSN: 0272-1732
DOI: 10.1109/MM.2009.47
Keywords: Auditory system
Biographies
Books
Documentation
Java
Message service
Project management
Risk management
Rivers
Stress
development tools
software architecture
software design
Abstract: Richard Mateosian reviews this book that offers nuggets of information to anyone who designs software. Nearly 50 people contribute their ideas. Each entry fills two facing pages and includes a contributor photo and brief biography. Most of the ideas fall into the following themes: communication; requirements; pitfalls; design and development approaches; performance and maintenance; tools and techniques; and the necessary quality or skills of software architects.
Notes: Book review...
Reference Type: Journal Article
Record Number: 9391
Author: Hohpe, G., Ozkaya, I., Zdun, U. and Zimmermann, O.
Year: 2016
Title: The Software Architect's Role in the Digital Age
Journal: IEEE Software
Volume: 33
Issue: 6
Pages: 30-39
Short Title: The Software Architect's Role in the Digital Age
ISSN: 0740-7459
DOI: 10.1109/MS.2016.137
Keywords: Ericsson
architecture as a service
connected vehicles
decision making
embedded software
software architect
software architecture
software development
software engineering
software engineering education
Abstract: Internet scale, the increasing rate of technology evolution, and the broad adoption of lean and agile methods have triggered a profound change in not only application and infrastructure architectures but also the software architect's roles and responsibilities. This article reviews the field's state of the art, identifies the skills of the connected architect, and gives an overview of related education programs and knowledge sources.
Reference Type: Conference Proceedings
Record Number: 9416
Author: Wolff, E.
Year of Conference: 2012
Title: Software architecture — What does it mean in industry? (Invited industrial talk)
Conference Name: 2012 34th International Conference on Software Engineering (ICSE)
Pages: 999-999
Date: 2-9 June 2012
Short Title: Software architecture — What does it mean in industry? (Invited industrial talk)
ISBN: 0270-5257
DOI: 10.1109/ICSE.2012.6227250
Abstract: Summary form only given. As communications get embedded in any objects we will see more and more instances of services and information seamlessly coupled to objects. Kindle has been the forerunner and we are going to see many more kind of objects being connected to the Internet. This will create a new slate of opportunities for many companies and Telecom Operators will be able to have a significant and economically relevant role in this space. The talk will address the technologies enabling this transformation and the evolution in value chains that may result emphasizing the role of Telecom Operators in this transformation. A concrete example of a territorial transformation taking place in Trento, Italy, will be given. This example may be discussed to evaluate the extent to which it can be applied in different context.
Notes: talk...
Reference Type: Journal Article
Record Number: 8430
Author: Vishnyakov, Andrei and Orlov, Sergey
Year: 2015
Title: Software Architecture and Detailed Design Evaluation
Journal: Procedia Computer Science
Volume: 43
Pages: 41-52
Date: //
Short Title: Software Architecture and Detailed Design Evaluation
ISSN: 1877-0509
DOI: https://doi.org/10.1016/j.procs.2014.12.007
Keywords: Architectural patterns
Architecture efficiency
Metric suite selection
Functional points
Coupling and cohesion
Abstract: Software design and estimation play the key role for software development process. Different methods are used for architecture design and detailed design evaluation. For architectural design stage a technique that allows selecting and evaluating suite of architectural patterns is proposed. It allows us to consistently evaluate the impact of specific patterns to software characteristics with a given functionality. Also the criterion of efficiency metric is proposed which helps us to evaluate architectural patterns for specified software. During detailed design stage we are interested in the selection of the optimal metric suits which takes into account the characteristics of required system. The proposed technique contains a number a steps where at each step a specific criterion should be used to make a selection from the available metric suites. In the end we can perform the selected metric suite improvement.
URL: https://www.sciencedirect.com/science/article/pii/S1877050914015750
Reference Type: Conference Paper
Record Number: 8080
Author: Kruchten, Phillippe
Year: 1995
Title: Software architecture and iterative development process
Conference Name: Tutorial proceedings on TRI-Ada '91: Ada's role in global markets: solutions for a changing complex world
Conference Location: Anaheim, California, USA
Publisher: ACM
Pages: 491-539
DOI: 10.1145/216591.216609
Place Published: 216609
Abstract: This tutorial has two parts.
Part 1 deals with the "why" and "what". We introduce the concept of software architecture, its boundaries, and its motivation. We propose a model to represent the architecture of software-intensive systems, using multiple views or blueprints. For each view: conceptual, dynamic, static, physical, we detail the elements involved, a view-specific notation, and its relations with other views.
Part 2 deals with the "how" and "who". An iterative process is described to develop and validate a software architecture. We then examine the organizational aspects related to software architecture and in particular the role of an architect or an architecture team.
The tutorial is based on practical experience in the development of large, software intensive systems in the areas of aerospace, defense, command and control, and telecommunications over the last fifteen years, and the examples are derived from telecommunication and air traffic control systems.
Notes: tutorial..
Reference Type: Conference Proceedings
Record Number: 9645
Author: Kang, M. H. and Froscher, J. N.
Year of Conference: 2000
Title: Software architecture and logic for secure applications
Conference Name: DARPA Information Survivability Conference and Exposition, 2000. DISCEX '00. Proceedings
Volume: 1
Pages: 391-405 vol.1
Date: 2000
Short Title: Software architecture and logic for secure applications
DOI: 10.1109/DISCEX.2000.825042
Keywords: military computing
security of data
software architecture
software reliability
workflow management software
classification domains
coalition partners
distributed program monitoring
emergency response organizations
enterprise application
globally distributed user coordination
local law enforcement
military missions
mission critical operations
multilevel mission logic programming
multilevel secure systems
survivability
workflow application
Access control
Application software
Business
Information technology
Laboratories
Logic
Mission critical systems
Monitoring
Multilevel systems
Abstract: Today's military supports many different missions as well as the traditional role of national defense. This diversity means that these systems must be easily configurable to accommodate integration with coalition partners all over the world and with local law enforcement and emergency response organizations, and secure and survivable to ensure the success of the military mission. Commercial workflow and enterprise application integration products provide solutions to similar problems in the commercial world. However these products cannot satisfy the military because they lack security and survivability features. DoD needs multilevel secure (MLS) and survivable systems and tools that allow users to program multilevel mission logic, securely coordinate globally distributed users and existing applications, and monitor the progress of the distributed program across classification domains. This paper summarizes an effort to provide a methodology and tools to support mission critical operations
Notes: mission criticla tools for military
Reference Type: Conference Paper
Record Number: 7936
Author: Medvidovic, Nenad
Year: 2008
Title: Software architecture and mobility: a perfect marriage or an uneasy alliance?
Conference Name: Proceedings of the 1st international workshop on Software architectures and mobility
Conference Location: Leipzig, Germany
Publisher: ACM
Pages: 1-1
DOI: 10.1145/1370888.1370889
Place Published: 1370889
Abstract: Developments in the area of software architecture over the past decade have pushed it to the forefront of a number of critical software engineering activities: modeling, design, analysis, simulation, implementation, deployment, and evolution. Architecture is advocated as an effective conceptual tool for addressing the many challenges of developing large, complex, distributed systems. Largely in parallel to these developments, significant advances have also been made in the domain of mobile computing. Many mobile systems are also large, complex, and distributed, yet a majority of the advances in this domain appear not to have resulted from an explicit software architectural focus. Despite this, architecture appears to offer clear benefits in this domain, as evidenced by some recent approaches. In this talk, I will overview the state-of-the-art in the area of mobile computing, with a specific focus on the role software architecture should and does play in this domain. I will highlight the characteristics of software architectures as well as specific architecture-based approaches that make them particularly suitable to developing mobile systems. I will also highlight several impediments, both real and perceived, to the wholesale adoption of architectural principles in this area.
Notes: specific architecture in mobile
Reference Type: Conference Proceedings
Record Number: 9398
Author: Krishnamurthy, B.
Year of Conference: 1994
Title: Software architecture and reuse-an inherent conflict?
Conference Name: Proceedings of 1994 3rd International Conference on Software Reuse
Pages: 215
Date: 1-4 Nov. 1994
Short Title: Software architecture and reuse-an inherent conflict?
DOI: 10.1109/ICSR.1994.365798
Keywords: software engineering
software reusability
application system
architectural styles
design
documents
experience
reusable assets
scripts
software architecture
software reuse
specification
Assembly
Asset management
Computer architecture
Packaging
Software libraries
Software packages
Stability
Abstract: Summary form only. Software architecture is loosely defined as the packaging of functions and objects, together with their interface, and control to implement applications in a domain. An accepted model of software reuse consists of taking a library of reusable assets, instituting a reuse process that permits augmentation of the assets in a supportive environment and providing deliverables via a streamlined development process. Classification of reusable libraries aids in packaging of objects/functions. Given the proper consideration at an earlier (architectural) level it is possible to attain large scale reuse. Without well understood constraints there is little possibility of a high degree of reuse. Role separation and constraints provide the needed stability for reuse. One way to view architecture is as a collection of architectural styles and services. An architectural style helps in arranging the components. The services support the non-functional requirements of the architectural styles. Thus to increase reuse the key is to identify a set of styles and services and combine them appropriately. Besides code, other reusable entities include scripts, documents, design, experience, specification, and application system. Reusability of specification often leads to reusable software components. Architectural constraints may dictate what components may be reused and availability of reused entities may enhance the stability of the architecture.<>
Notes: architecture focus
Reference Type: Conference Paper
Record Number: 7967
Author: Medvidovi, Nenad and #263
Year: 2012
Title: Software architecture challenges and opportunities for the 21st century: dynamism, mobility, autonomy, services, grids, and clouds
Conference Name: Proceedings of the 5th India Software Engineering Conference
Conference Location: Kanpur, India
Publisher: ACM
Pages: 1-1
DOI: 10.1145/2134254.2134255
Place Published: 2134255
Abstract: Developments in the area of software architecture over the past two decades have pushed architecture to the forefront of a number of critical software engineering activities: modeling, design, analysis, simulation, implementation, deployment, maintenance, and evolution. Architecture is advocated as an effective conceptual tool for addressing the many challenges of developing large, complex, distributed systems. Largely in parallel to these developments, significant advances have also been made in the domains of mobile, autonomic, service-oriented, grid-based, and most recently, cloud-based computing. The systems in these domains are also large, complex, and distributed; they are frequently expected to dynamically adapt to failures as well as changing requirements and execution contexts. At first blush, a number of the advances in these domains appear not to have resulted from an explicit software architectural focus. However, I posit that architecture offers clear, and often critical, benefits in these domains. In support of this argument, I will overview the state-of-the-art in the areas of mobile, autonomic, service-oriented, grid-based, and cloud-based computing; with a specific focus on the role software architecture should and actually does play in these domains. I will highlight the characteristics of software architectures as well as specific architecture-based approaches that make them particularly suitable to developing these systems.
Reference Type: Conference Proceedings
Record Number: 9307
Author: Dasanayake, S., Markkula, J., Aaramaa, S. and Oivo, M.
Year of Conference: 2015
Title: Software Architecture Decision-Making Practices and Challenges: An Industrial Case Study
Conference Name: 2015 24th Australasian Software Engineering Conference
Pages: 88-97
Date: Sept. 28 2015-Oct. 1 2015
Short Title: Software Architecture Decision-Making Practices and Challenges: An Industrial Case Study
ISBN: 1530-0803
DOI: 10.1109/ASWEC.2015.20
Keywords: decision making
knowledge management
software architecture
Europe
software architecture decision-making
software system
system life cycle
systematic software development method
Computer architecture
Context
Software
Systematics
architecture decision making
architecture knowledge management
case study
Abstract: Software architecture decision-making is critical to the success of a software system as software architecture sets the structure of the system, determines its qualities, and has far-reaching consequences throughout the system life cycle. The complex nature of the software development context and the importance of the problem has led the research community to develop several techniques, tools, and processes to assist software architects in making better decisions. Despite these effort, the adoption of such systematic approaches appears to be quite limited in practice. In addition, the practitioners are also facing new challenges as different software development methods suggest different approaches for architecture design. In this paper, we study the current software architecture decision-making practices in the industry using a case study conducted among professional software architects in three different companies in Europe. As a result, we identified different software architecture decision-making practices followed by the software teams as well as their reasons for following them, the challenges associated with them, and the possible improvements from the software architects' point of view. Based on that, we recognized that improving software architecture knowledge management can address most of the identified challenges and would result in better software architecture decision-making.
'File' Atttachments: internal-pdf://3495049590/Software Architecture Decision-Making Practice.pdf
Reference Type: Conference Proceedings
Record Number: 7724
Author: Knodel, J. and Naab, M.
Year of Conference: 2014
Title: Software Architecture Evaluation in Practice: Retrospective on More Than 50 Architecture Evaluations in Industry
Conference Name: 2014 IEEE/IFIP Conference on Software Architecture
Pages: 115-124
Date: 7-11 April 2014
Short Title: Software Architecture Evaluation in Practice: Retrospective on More Than 50 Architecture Evaluations in Industry
DOI: 10.1109/WICSA.2014.37
Keywords: software architecture
architecture work
industrial customers
industrial perspective
practical perspective
scientific community
software architecture evaluation
Companies
Computer architecture
Concrete
Context
Documentation
architecture evaluation
empirical evidences
experience report
Abstract: Architecture evaluation has become a mature sub-discipline in architecting with high-quality practical and scientific literature available. However, publications on industrial applications and concrete experiences are rare. We want to fill this gap and share our experiences - having performed more than 50 architecture evaluations for industrial customers in the last decade. We compiled facts and consolidated our findings about architecture evaluations in industry. In this paper, we provide a critical retrospective on more than 50 projects and share our lessons learned. This industrial and practical perspective allows practitioners to benefit from our experience in their daily architecture work and scientific community to focus their research work on the generalizability of our findings.
Notes: Literature review
Reference Type: Conference Proceedings
Record Number: 9019
Author: Krishna, V. and Basu, A.
Year of Conference: 2012
Title: Software Architecture for large/critical applications
Conference Name: 2012 CSI Sixth International Conference on Software Engineering (CONSEG)
Pages: 1-4
Date: 5-7 Sept. 2012
Short Title: Software Architecture for large/critical applications
DOI: 10.1109/CONSEG.2012.6349514
Keywords: formal specification
project management
software architecture
software management
software quality
business requirement
critical application
large application
project failure rate
quality related aspect
software requirements
software system
system development
technology evolution
Business
Complexity theory
Computer architecture
Noise
Scalability
Software
Agility
Large critical applications
Plan driven
Abstract: Software Architecture provides a blue print for developing a system and plays a vital role in addressing quality related aspects such as performance, security, scalability etc. [1]. Architecture of a software system has to ensure that design is able to support all requirements as well as able to incorporate any changes requested by the customer. This paper discusses the role of architecture and design on project failure rate and also suggests the steps that need to be added in architecture and design in order to cope up with changes in business requirements and evolution of technology to avoid such failures.
Reference Type: Journal Article
Record Number: 8625
Author: Manavazhi, Mohan R.
Year: 2001
Title: A software architecture for the virtual construction of structures
Journal: Advances in Engineering Software
Volume: 32
Issue: 7
Pages: 545-554
Date: 7//
Short Title: A software architecture for the virtual construction of structures
ISSN: 0965-9978
DOI: https://doi.org/10.1016/S0965-9978(01)00005-9
Keywords: Structural construction simulation
Object-oriented simulation
Object-oriented architecture
Automated model generation
Structural construction analysis
Abstract: In addition to being a tedious procedure, the complexity of structural construction makes the task of manually generating simulation models quite complicated. The paucity of simulation expertise in the construction industry exacerbates the problem. This research addresses the issue through the development of a generic system architecture that would facilitate the creation of automated model generators for structural construction. The architecture is based on the object-oriented programming paradigm, which supports the use of modularity and hierarchy in the software development process. The generic system architecture developed in this research was used to create an automated model generator for automatically generating and executing a simulation model for the construction of an earth-filled embankment. The simulation results obtained were compared with those obtained through the execution of a manually generated simulation model. A trace obtained from the execution of the automatically generated simulation model was also studied. Both the comparison and the trace tests conducted demonstrated the satisfactory functioning of the automated model generator.
Notes: automated model generation
URL: https://www.sciencedirect.com/science/article/pii/S0965997801000059
Reference Type: Conference Proceedings
Record Number: 8780
Author: Soni, D., Nord, R. L. and Hofmeister, C.
Year of Conference: 1995
Title: Software Architecture in Industrial Applications
Conference Name: 1995 17th International Conference on Software Engineering
Pages: 196-196
Date: 23-30 April 1995
Short Title: Software Architecture in Industrial Applications
ISBN: 0270-5257
DOI: 10.1145/225014.225033
Keywords: Application software
Computer industry
Software architecture
Software engineering
Abstract: To help us identify and focus on pragmatic and concrete issues related to the role of software architecture in large systems, we conducted a survey of a variety of software systems used in industrial applications. Our premise, which guided the examination of these systems, was that software architecture is concerned with capturing the structures of a system and the relationships among the elements both within and between structures. The structures we found fell into several broad categories: conceptual architecture, module interconnection architecture, code architecture, and execution architecture. These categories address different engineering concerns. The separation of such concerns, combined with specialized implementation techniques, decreased the complexity of implementation, and improved reuse and reconfiguration.
Reference Type: Conference Proceedings
Record Number: 9439
Author: Vliet, H. v.
Year of Conference: 2008
Title: Software Architecture Knowledge Management
Conference Name: 19th Australian Conference on Software Engineering (aswec 2008)
Pages: 24-31
Date: 26-28 March 2008
Short Title: Software Architecture Knowledge Management
ISBN: 1530-0803
DOI: 10.1109/ASWEC.2008.4483186
Keywords: knowledge management
software architecture
architectural knowledge
system development
system evolution
Computer architecture
Computer industry
Computer science
Connectors
Finance
Road transportation
Software engineering
Wiring
Abstract: Software architecture is a recognized and indispensable part of system development. Software architecture is often defined in terms of components and connectors, or the "high-level conception of a system". In recent years, there has been an awareness that not only the design itself is important to capture, but also the knowledge that has led to this design. This so-called architectural knowledge concerns the set of design decisions and their rationale. Capturing architectural knowledge is difficult. Part of it is tacit and difficult to verbalize. Like developers, software architects are not inclined to document their solutions. Establishing ways to effectively manage and organize architectural knowledge is one of the key challenges of the field of software architecture. This architectural knowledge plays a role during development, when architects, developers, and other stakeholders must communicate about the system to be developed, possibly in a global setting. It also plays a role during the evolution of a system, when changes are constrained by decisions made earlier.
Reference Type: Conference Proceedings
Record Number: 9457
Author: Mirakhorli, M.
Year of Conference: 2015
Title: Software architecture reconstruction: Why? What? How?
Conference Name: 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)
Pages: 595-595
Date: 2-6 March 2015
Short Title: Software architecture reconstruction: Why? What? How?
ISBN: 1534-5351
DOI: 10.1109/SANER.2015.7081885
Keywords: software architecture
software maintenance
system recovery
legacy system
software architecture reconstruction
software architecture recovery
software engineering
software system implementation-level artifact
Companies
Computational modeling
Computer architecture
Software
Tutorials
Abstract: Software architecture reconstruction plays an increasingly essential role in software engineering tasks such as architecture renovation, program comprehension, and change impact analysis. Various methods have been developed which use a software system's implementation-level artifacts to recover the architecture of the software. This tutorial will answer three fundamental questions about software architecture recovery: Why? What? and How? Through several examples it articulates and synthesizes technical forces and financial motivations that make software companies to invest in software architecture recovery. It discusses what are the pieces of design knowledge that can be recovered and lastly demonstrates a methodology as well as required tools for answering how to reconstruct architecture from implementation artifacts.
Notes: Tutorial
Reference Type: Journal Article
Record Number: 8712
Author: Tang, Antony and Lau, Man F.
Year: 2014
Title: Software architecture review by association
Journal: Journal of Systems and Software
Volume: 88
Pages: 87-101
Date: 2//
Short Title: Software architecture review by association
ISSN: 0164-1212
DOI: https://doi.org/10.1016/j.jss.2013.09.044
Keywords: Software architecture review
Design reasoning
Verification of software architecture
Abstract: During the process of software design, software architects have their reasons to choose certain software components to address particular software requirements and constraints. However, existing software architecture review techniques often rely on the design reviewers’ knowledge and experience, and perhaps using some checklists, to identify design gaps and issues, without questioning the reasoning behind the decisions made by the architects. In this paper, we approach design reviews from a design reasoning perspective. We propose to use an association-based review procedure to identify design issues by first associating all the relevant design concerns, problems and solutions systematically; and then verifying if the causal relationships between these design elements are valid. Using this procedure, we discovered new design issues in all three industrial cases, despite their internal architecture reviews and one of the three systems being operational. With the newly found design issues, we derive eight general design reasoning failure scenarios.
URL: https://www.sciencedirect.com/science/article/pii/S0164121213002409
Reference Type: Conference Proceedings
Record Number: 9033
Author: Zayaraz, G. and Thambidurai, P.
Year of Conference: 2005
Title: Software Architecture Selection Framework Based on Quality Attributes
Conference Name: 2005 Annual IEEE India Conference - Indicon
Pages: 167-170
Date: 11-13 Dec. 2005
Short Title: Software Architecture Selection Framework Based on Quality Attributes
ISBN: 2325-940X
DOI: 10.1109/INDCON.2005.1590147
Keywords: Decision Making
Quality Attributes
Requirements
Software Architecture
Computer architecture
Decision support systems
Educational institutions
Failure analysis
Security
Software quality
Software systems
Abstract: Software Architectures are generally designed with particular functional and nonfunctional requirements. Organizations often need to choose Software Architecture for future development from several competing candidate architectures. The various Stakeholders' quality requirements need to be considered collectively to describe the quality requirements of the envisioned system and therefore build the basis for the comparison and selection criteria. Choosing Software Architecture for any system still remains a difficult task as many different stake holders are involved in the selection process. Stakeholders view on quality requirements is different and at times they can also be conflicting in nature. Existing software architecture selection methods [1, 2, 3, 4] have been analyzed to identify their limitations. To overcome the limitations and challenges, a selection framework has been proposed and validated based on multiattribute decision making using Hypothetical Equivalents [7]. The proposed framework provides the rationale for an architecture selection process by comparing the fitness of competing candidate architectures for the envisioned system based on the quality requirements of different Stakeholders.
Reference Type: Conference Proceedings
Record Number: 8925
Author: Majidi, E., Alemi, M. and Rashidi, H.
Year of Conference: 2010
Title: Software Architecture: A Survey and Classification
Conference Name: 2010 Second International Conference on Communication Software and Networks
Pages: 454-460
Date: 26-28 Feb. 2010
Short Title: Software Architecture: A Survey and Classification
DOI: 10.1109/ICCSN.2010.94
Keywords: software architecture
software complexity
software management
Communication system software
Computer architecture
Conference management
Connectors
Control systems
Qualifications
Software design
Software quality
Software systems
Quality properties
Styles software
Abstract: As software systems enlarges, software complexity increases and controlling of the software management will be highly important. Systems are decomposed into many components, of which their organization shows new problems in software architecture. Selecting appropriate components for system architecture plays an important role in success or failure of software. This paper reviews the old and present styles of software architecture and presents a survey on classification of the styles. In this survey, advantages and disadvantages of three kinds of classifications are analyzed, and some criterions for choosing a suitable style in different applications are also presented.
Notes: focus on software architecture
Reference Type: Conference Proceedings
Record Number: 9247
Author: Abolhassani, H., Hui, Chen, Far, B. H. and Koono, Z.
Year of Conference: 1999
Title: Software creation: detail of human design knowledge and it's application to automatic software design
Conference Name: Software Engineering Conference, 1999. (APSEC '99) Proceedings. Sixth Asia Pacific
Pages: 412-419
Date: 1999
Short Title: Software creation: detail of human design knowledge and it's application to automatic software design
DOI: 10.1109/APSEC.1999.809631
Keywords: automatic programming
computer aided software engineering
knowledge based systems
learning (artificial intelligence)
user modelling
automatic design learning human designer
automatic software design
design rule
design rules
dictionary type definitions
hierarchical detailing
hierarchical work process
human concept
human design knowledge
human mental operations
knowledge model
lower level structure
micro design rules
software creation
software organization
Application software
Artificial intelligence
Dictionaries
Humans
Intelligent structures
Intelligent systems
Knowledge engineering
Process design
Software design
Software engineering
Abstract: The paper reports on results of a study aiming at establishing a fundamental basis for automating design of any kind of software. Considering the final object, an automatic design learning human designer has been taken. An excellent software organization with high maturity has been taken as the expert, and the hierarchical work process is the knowledge model. For detailing, the major operations are made by hierarchical detailing. Namely, a software design may be reduced hierarchically to various design rules, which are parent and children relationship of a human concept created during expansion of a piece of design to more detailed form. To know the inside of human mental operations generating a design rule, a more detailed study was made and it was found that a design rule may be further reduced hierarchically to some fundamental human mental operations, called micro design rules. They represent basic operations during a design. After reporting them, a discussion on further lower level structure used during them, which are dictionary type definitions is made
Notes: automatic design
Reference Type: Conference Paper
Record Number: 8176
Author: Medvidovic, Nenad and Malek, Sam
Year: 2007
Title: Software deployment architecture and quality-of-service in pervasive environments
Conference Name: International workshop on Engineering of software services for pervasive environments: in conjunction with the 6th ESEC/FSE joint meeting
Conference Location: Dubrovnik, Croatia
Publisher: ACM
Pages: 47-51
DOI: 10.1145/1294904.1294911
Place Published: 1294911
Abstract: Over the past several years we have investigated two problems related to the domain of highly distributed, mobile, resource constrained, embedded, and pervasive environments: software deployment and quality of service (QoS). We have done so with the explicit focus on the role played by software architecture in deployment, and on its relationship to QoS. In the process, we have amassed a body of knowledge and experience, and assembled a suite of solutions for targeting different facets of the interplay among software architecture, deployment, and QoS. At the same time, the area we are addressing has proven to be multi-faceted and very complex, constantly presenting new challenges. In this paper we outline the contours of the problem of QoS in architecture-based deployment, our strategy for addressing it, and the challenges that remain. We view this as an important (and fruitful) area of research.
Notes: Focus on specific architecture
Reference Type: Journal Article
Record Number: 8960
Author: Budgen, D.
Year: 1999
Title: Software design methods: life belt or leg iron?
Journal: IEEE Software
Volume: 16
Issue: 5
Pages: 136, 133-135
Short Title: Software design methods: life belt or leg iron?
ISSN: 0740-7459
DOI: 10.1109/52.795114
Keywords: software engineering
technological forecasting
future
risk
software design methods
software development process
software process deterioration
software process improvement
suboptimum solutions
Belts
Design methodology
Hazards
Humans
Iron
Leg
Problem-solving
Process design
Programming
Software design
Abstract: Do software design methods have a future? The issue I explore in this article is concerned with the problems that the use of design methods can present. It can be expressed as a question: “Will the adoption of a design method help the software development process (the `life belt' role), or is there significant risk that its use will lead to suboptimum solutions (the `leg iron' role)?” (I use “method” to mean “a way of doing something”, rather than using the more pretentious-sounding “methodology”, which more correctly means “study of methods”). To address, but not necessarily answer, this question, I first consider what designing involves in a wider context, and then compare this with what we do, and finally consider what this might imply for the future
Reference Type: Journal Article
Record Number: 9517
Author: Kuhn, S.
Year: 1998
Title: The software design studio: an exploration
Journal: IEEE Software
Volume: 15
Issue: 2
Pages: 65-71
Short Title: The software design studio: an exploration
ISSN: 0740-7459
DOI: 10.1109/52.663788
Keywords: computer science education
continuing education
professional aspects
software engineering
teaching
building design
design media
design patterns
design solutions
development practices
heterogeneous issues
informal critique
nontechnical aspects
open ended problems
project based work
software design studio
software designers
software implications
software practice
software practitioners
software professionals
studio course
usability
user needs
very rapid iteration
work practices
Computer architecture
Control engineering education
Engineering education
Fellows
Proposals
Prototypes
Psychology
Reflection
Software design
Time factors
Abstract: Some software designers have recently turned for inspiration to the process of building design to improve development practices and increase software's usefulness and effectiveness. Architects' education revolves around the studio course, which promotes: project based work on complex and open ended problems; very rapid iteration of design solutions; frequent formal and informal critique; consideration of heterogeneous issues; the use of precedent and thinking about the whole; the creative use of constraints; and the central importance of design media. M. Kapor (1991) suggested that software practitioners needed to “rethink the fundamentals of how software is made” and proposed the architect's role in building design as a fruitful analogy for software professionals seeking to reform software practice. This analogy helps us focus on usefulness, usability, user needs and practices, and other technical and nontechnical aspects of good software design. It highlights concerns about people's lives and work practices and how people “inhabit” systems. Several authors have explored similarities and differences between software design and building design, including some who have pursued the software implications of architect Christopher Alexander's design patterns
Notes: tool
Reference Type: Conference Paper
Record Number: 8017
Author: Shani, Uri and Sela, Aviad
Year: 2008
Title: Software design using UML for empowering end-users with an external domain specific language
Conference Name: Proceedings of the 4th international workshop on End-user software engineering
Conference Location: Leipzig, Germany
Publisher: ACM
Pages: 52-55
DOI: 10.1145/1370847.1370859
Place Published: 1370859
Abstract: Domain Specific Languages (DSL) also known as "small languages" lack the power of a general purpose language (GPL), but are very productive for the purpose they are designed. While "internal" DSLs require and rely on the use of a hosting GPL, "external" DSLs are independent of a GPL and are thus more suitable for the non-programmer - but domain expert - end-user. Empowering this end-user via DSLs is our prime goal as software designers and architects. Our product will be stronger since much of the final tuning of the application can be done by the end-user and will reduce the number of software revisions that require stringent GPL software testing and validations. As software engineers, the design of a DSL as part of our product should fit into the tools of the trade of software development. We adopt UML for this purpose and propose that the design of DSL can be embedded as an extension of the traditional software modeling and design tools. In this paper we present firstly a view of software development process in which DSLs are an integral part, and than how we use UML to design a DSL which, via empowering a domain expert end-user, achieves challenging software delivery requirements with good stability and excellent performance.
Notes: tool development
Reference Type: Conference Paper
Record Number: 7970
Author: Dickover, Melvin E., McGowan, Clement L. and Ross, Douglas T.
Year: 1977
Title: Software design using: SADT
Conference Name: Proceedings of the 1977 annual conference
Conference Location: Seattle, Washington
Publisher: ACM
Pages: 125-133
DOI: 10.1145/800179.810192
Place Published: 810192
Abstract: SADT TM, Structured Analysis and Design Technique, is a graphical language for describing systems. In this paper we indicate the role of SADT in software design. The graphical language provides a powerful design vocabulary in which a designer can concisely and unambiguously express his design. SADT is compatible with widely used contemporary design methodologies including Structured Design and the Jackson method.
Notes: Design technique
Reference Type: Conference Paper
Record Number: 8189
Author: Kashyap, Divya and Misra, A. K.
Year: 2013
Title: Software development cost estimation using similarity difference between software attributes
Conference Name: Proceedings of the 2013 International Conference on Information Systems and Design of Communication
Conference Location: Lisboa, Portugal
Publisher: ACM
Pages: 1-6
DOI: 10.1145/2503859.2503860
Place Published: 2503860
Abstract: Although software industry has seen a tremendous growth and expansion since its birth, it is continuously facing problems in its evolution. The major challenge for this industry is to produce quality software which is timely designed and build with proper cost estimates. Thus the techniques for controlling the quality and predicting cost of software are in the center of attention for many software firms. In this paper, we have tried to propose a cost estimation model based on Multiobjective Particle Swarm Optimization (MPSO) to tune the parameters of the famous COstructive COst MOdel (COCOMO). This cost estimation model is integrated with Quality Function Deployment (QFD) methodology to assist decision making in software designing and development processes for improving the quality. This unique combination will help the project managers to efficiently plan the overall software development life cycle of the software product.
Notes: Cost estimation technique
Reference Type: Journal Article
Record Number: 9222
Author: Faber, D. J.
Year: 1975
Title: Software Development for Distributed Systems
Journal: Computer
Volume: 8
Issue: 6
Pages: 68-69
Short Title: Software Development for Distributed Systems
ISSN: 0018-9162
DOI: 10.1109/C-M.1975.218997
Keywords: Communication industry
Computer industry
Constraint optimization
Distributed control
Programming
Runtime
Software tools
System testing
Systems engineering and theory
Abstract: My prime interest in participating in this session is to project the applicability of SP to the development of software for Distributed Computer Systems (such as the UC Irvine Distributed Computer System and the CMU C.MMP). The difficulties common to all software design and development efforts are made even more acute when writing software for a DCS. Setting up experiments that involve widely separated, loosely coupled computers is not an easy or straightforward task. Error situations may develop fortuitously and then evade most efforts to cause them to occur again. In this predicament, structured modular top-down programming techniques appear likely to play an important role since they offer an opportunity to bring significant software reliability improvements.
Notes: focus on distributed systems
Reference Type: Journal Article
Record Number: 9409
Author: Francioni, J. M. and Kandel, A.
Year: 1988
Title: A software engineering tool for expert system design
Journal: IEEE Expert
Volume: 3
Issue: 1
Pages: 33-41
Short Title: A software engineering tool for expert system design
ISSN: 0885-9000
DOI: 10.1109/64.2093
Keywords: decision tables
expert systems
software tools
design tool
expert system design
production-type knowledge bases
software engineering tool
Control systems
Design methodology
Humans
Phase detection
Production systems
Software design
Software engineering
Springs
Abstract: The properties of design tools for expert systems are identified. A design tool is presented for constructing production-type knowledge bases that provides a straightforward methodology and adheres to these properties. The use of decision tables in software design is discussed, and a modified table that can be used for the present application is presented.<>
Notes: tool
Reference Type: Journal Article
Record Number: 8565
Author: Ahmed, Faheem and Capretz, Luiz Fernando
Year: 2008
Title: The software product line architecture: An empirical investigation of key process activities
Journal: Information and Software Technology
Volume: 50
Issue: 11
Pages: 1098-1113
Date: 10//
Short Title: The software product line architecture: An empirical investigation of key process activities
ISSN: 0950-5849
DOI: https://doi.org/10.1016/j.infsof.2007.10.013
Keywords: Software product line
Software architecture
Empirical study
Software engineering
Domain engineering
Abstract: Software architecture has been a key area of concern in software industry due to its profound impact on the productivity and quality of software products. This is even more crucial in case of software product line, because it deals with the development of a line of products sharing common architecture and having controlled variability. The main contributions of this paper is to increase the understanding of the influence of key software product line architecture process activities on the overall performance of software product line by conducting a comprehensive empirical investigation covering a broad range of organizations currently involved in the business of software product lines. This is the first study to empirically investigate and demonstrate the relationships between some of the software product line architecture process activities and the overall software product line performance of an organization at the best of our knowledge. The results of this investigation provide empirical evidence that software product line architecture process activities play a significant role in successfully developing and managing a software product line.
Notes: Focus on software product line architecture
URL: https://www.sciencedirect.com/science/article/pii/S0950584907001243
'File' Attachments: internal-pdf://4231218876/The software product line architecture An empi.pdf
Reference Type: Conference Paper
Record Number: 7909
Author: Bosch, Jan
Year: 2012
Title: Speed and innovation through architecture
Conference Name: Proceedings of the 15th ACM SIGSOFT symposium on Component Based Software Engineering
Conference Location: Bertinoro, Italy
Publisher: ACM
Pages: 1-2
DOI: 10.1145/2304736.2304738
Place Published: 2304738
Abstract: The nature of software system development is changing. Rather than building systems according to specification, innovation processes and customer intimacy are at the heart of software development, requiring unprecedented levels of agility and speed. In addition, software is increasingly built in the context of a software ecosystem where other companies and independent developers add value as well. As these trends require small teams to work efficiently and rapidly in the context of large complex systems, the role of software architecture (and that of a software architect in particular) is more important in this new world, but there is significant evolution in its implementation. This keynote starts by characterizing the new approach to software engineering and the role of compositionality. It then explores the implications for software architecture and the role of the software architect. The talk will present examples from several industries to illustrate specific focus areas.
Notes: Talk...
Reference Type: Conference Paper
Record Number: 7994
Author: Nakagawa, Elisa Y., Gon, Marcelo, #231, alves, Guessi, Milena, Oliveira, Lucas B. R. and Oquendo, Flavio
Year: 2013
Title: The state of the art and future perspectives in systems of systems software architectures
Conference Name: Proceedings of the First International Workshop on Software Engineering for Systems-of-Systems
Conference Location: Montpellier, France
Publisher: ACM
Pages: 13-20
DOI: 10.1145/2489850.2489853
Place Published: 2489853
Abstract: Currently, software systems have become increasingly large and complex, often resulted by the integration of several operationally independent systems, resulting in a new class of systems: the Systems of Systems (SoS). In another perspective, software architectures play a major role in determining system quality, since they form the backbone of any successful software-intensive system. Attention given to the software architectures of SoS is also certainly fundamental to the success of such systems. However, it is observed that there is a lack of works that present a wide and, at the same time, a detailed panorama about how SoS architectures have been treated. In this scenario, the main contribution of this paper is to present the state of the art on software architectures of SoS, mainly regarding their development, representation, evaluation, and evolution. This work also contributes with future research topics on SoS architectures that should be still investigated. Besides that, we intend this paper opens new perspectives of research in the software architecture area, intending to contribute to the success of SoS.
Notes: System of systems as focus
Reference Type: Conference Paper
Record Number: 8244
Author: Eide, Eric, Reid, Alastair, Regehr, John and Lepreau, Jay
Year: 2002
Title: Static and dynamic structure in design patterns
Conference Name: Proceedings of the 24th International Conference on Software Engineering
Conference Location: Orlando, Florida
Publisher: ACM
Pages: 208-218
DOI: 10.1145/581339.581367
Place Published: 581367
Abstract: Design patterns are a valuable mechanism for emphasizing structure, capturing design expertise, and facilitating restructuring of software systems. Patterns are typically applied in the context of an object-oriented language and are implemented so that the pattern participants correspond to object instances that are created and connected at run-time. The paper describes a complementary realization of design patterns, in which many pattern participants correspond to statically instantiated and connected components. Our approach separates the static parts of the software design from the dynamic parts of the system behavior. This separation makes the software design more amenable to analysis, thus enabling more effective and domain-specific detection of system design errors, prediction of run-time behavior, and more effective optimization. This technique is applicable to imperative, functional, and object-oriented languages: we have extended C, Scheme, and Java with our component model. We illustrate our approach in the context of the OSKit, a collection of operating system components written in C.
Notes: Analysis of patterns
Reference Type: Conference Proceedings
Record Number: 9523
Author: Knodel, J., Lindvall, M., Muthig, D. and Naab, M.
Year of Conference: 2006
Title: Static evaluation of software architectures
Conference Name: Conference on Software Maintenance and Reengineering (CSMR'06)
Pages: 10 pp.-294
Date: 22-24 March 2006
Short Title: Static evaluation of software architectures
ISBN: 1534-5351
DOI: 10.1109/CSMR.2006.53
Keywords: reverse engineering
software architecture
software performance evaluation
software architecture development
software architecture static evaluation
Acoustical engineering
Computer architecture
Computer industry
Educational institutions
Instruments
Programming
Software engineering
Software systems
ADORE
PuLSE-DSSA
architecture
architecture evaluation
product line
reverse engineering.
Abstract: The software architecture is one of the most crucial artifacts within the lifecycle of a software system. Decisions made at the architectural level directly enable, facilitate, hamper, or interfere with the achievement of business goals, functional and quality requirements. Architecture evaluations play an important role in the development and evolution of software systems since they determine how adequate the architecture is for its intended usage. This paper summarizes our practical experience with using architecture evaluations and gives an overview on when and how static architecture evaluations contribute to architecture development. We identify ten distinct purposes and needs for static architecture evaluations and illustrate them using a set of industrial and academic case studies. In particular, we show how subsequent steps in architecture development are influenced by the results from architecture evaluations
Notes: evaluation of architecture
Reference Type: Conference Proceedings
Record Number: 7769
Author: Su, M. T., Tempero, E., Hosking, J. and Grundy, J.
Year of Conference: 2012
Title: A Study of Architectural Information Foraging in Software Architecture Documents
Conference Name: 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture
Pages: 141-150
Date: 20-24 Aug. 2012
Short Title: A Study of Architectural Information Foraging in Software Architecture Documents
DOI: 10.1109/WICSA-ECSA.212.22
Keywords: document handling
software architecture
SA
academic AD users
critical responsibility
forages type
foraging sequences
industry practitioner
physical view
process view
quality requirements
software architecture documents
task-based architectural information foraging
use cases
Computer architecture
Documentation
Electronic mail
Industries
Navigation
Software
exploration
foraging
software architecture document
understanding
Abstract: When using Software Architecture documents (ADs), users typically “forage” for information. However, it is little understood how they do this foraging or how to structure architecture documentation to assist them. We conducted a survey of two different groups of foragers, industry practitioner and academic AD users, to investigate issues - types of forages, foraging sequences and styles - related to task-based architectural information foraging in software architecture documents. Our results show that there were different pre-conceived ideas of what to forage for prior to the search, but during foraging there was commonly foraged information. The different groups of foragers place different emphasis on information related to quality requirements, purpose of the system, use cases, physical view and process view. Foraging sequences starting with certain information were suggested to better support understanding of the described SA. These sequences typically followed the written order of the information as dictated by the AD producers. This reinforces the critical responsibility of AD producers to structure the architectural information for understanding. Diagrams, views and design decisions were most frequently cited as supporting understanding of the SA. The main hindrance was too much text and a lack of diagrams.
'File' Atttachments: internal-pdf://2490619577/A Study of Architectural Information Foraging.pdf
Reference Type: Conference Proceedings
Record Number: 7675
Author: Groher, I. and Weinreich, R.
Year of Conference: 2015
Title: A Study on Architectural Decision-Making in Context
Conference Name: 2015 12th Working IEEE/IFIP Conference on Software Architecture
Pages: 11-20
Date: 4-8 May 2015
Short Title: A Study on Architectural Decision-Making in Context
DOI: 10.1109/WICSA.2015.27
Keywords: decision making
software architecture
architectural decision-making process
business factors
cultural factors
individual factors
organizational contexts
organizational factors
project factors
software system
Companies
Context
Interviews
Standards organizations
architectural design process
decision-making process
expert survey
influence factors
Abstract: Design decisions are made throughout the design process of a new software system or the evolution of an existing system. The context in which a system is developed influences these decisions themselves and the way they are made. There are only a few empirical studies regarding architectural decision-making or concerning how the decision-making process is executed. In this paper, we report an analysis of expert interviews regarding architectural decision-making to gain insight into how decision-making is organized in different organizational contexts. We base our analysis on interviews conducted in a previous study, where we talked to 25 software architects, team leads, and senior developers from 22 different companies in ten different countries about architectural decision-making and documentation. In this paper, we specifically analyze the interview transcripts with regard to the decision-making process. We identified eight different categories of main factors influencing how, when, and by whom decisions are made. We also present decision-making scenarios and relate them to the discovered influence factors. Results show that, apart from organizational factors, individual factors and cultural factors seem to have about the same influence as business and project factors. Company size and domain do not influence the decision-making process as much as one might expect.
'File' Atttachments: internal-pdf://3585303818/A Study on Architectural Decision-Making in Co.pdf
Reference Type: Conference Proceedings
Record Number: 9571
Author: Rekhav, V. S. and Muccini, H.
Year of Conference: 2014
Title: A Study on Group Decision-Making in Software Architecture
Conference Name: 2014 IEEE/IFIP Conference on Software Architecture
Pages: 185-194
Date: 7-11 April 2014
Short Title: A Study on Group Decision-Making in Software Architecture
DOI: 10.1109/WICSA.2014.15
Keywords: decision making
software architecture
software development management
architectural design decisions
architecture-related group decisions
component selection
connectors selection
decision making enhancement
decisions rationale
design alternatives
design decisions
group decision making techniques
stakeholder concerns
Companies
Computer architecture
Industries
Software systems
Group Design Decisions
Study
state of the practice
Abstract: When architecting software systems, architects (with the contribution of other stakeholders) make several design decisions. These decisions could be related to the selection of the right components and connectors, the architectural style to be used, the distribution of various components, the deployment of software components into hardware devices, etc. Many methods have been proposed by the research community to help documenting several aspects of architectural design decisions including design alternatives, stakeholder concerns, decisions and the rationale for making such decisions and enhancing the decision-making process. Still, very little has been done to truly understand how architectural design decisions are made by group of practitioners, what information is documented, the tools used for helping documenting and how conflicts are managed. This study, by looking at principles and techniques for group decision making coming from other disciplines, aims to understand: a) how practitioners make group decisions in architecting software systems, b) how practiced group decision-making techniques relate to state-of-the-art techniques, and c) challenges companies face when making architecture-related group decisions. The study is conducted by using a questionnaire distributed to practitioners and researchers involved in group design decisions in industry. The results are used to drive some recommendations to improve the current group design decision process.
'File' Atttachments: internal-pdf://3165903344/A Study on Group Decision-Making in Software A.pdf
Reference Type: Conference Proceedings
Record Number: 9158
Author: Kouroshfar, E., Mirakhorli, M., Bagheri, H., Xiao, L., Malek, S. and Cai, Y.
Year of Conference: 2015
Title: A Study on the Role of Software Architecture in the Evolution and Quality of Software
Conference Name: 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories
Pages: 246-257
Date: 16-17 May 2015
Short Title: A Study on the Role of Software Architecture in the Evolution and Quality of Software
ISBN: 2160-1852
DOI: 10.1109/MSR.2015.30
Keywords: public domain software
software architecture
software quality
architecture recovery techniques
cross architectural module boundaries
open-source software systems
software evolution
Computer architecture
Couplings
Data mining
History
Measurement
Software systems
Defects
Software Repositories
Abstract: Conventional wisdom suggests that a software system's architecture has a significant impact on its evolution. Prior research has studied the evolution of software using the information of how its files have changed together in their revision history. No prior study, however, has investigated the impact of architecture on the evolution of software from its change history. This is mainly because most open-source software systems do not document their architectures. We have overcome this challenge using several architecture recovery techniques. We used the recovered models to examine if co-changes spanning multiple architecture modules are more likely to introduce bugs than co-changes that are within modules. The results show that the co-changes that cross architectural module boundaries are more correlated with defects than co-changes within modules, implying that, to improve accuracy, bug predictors should also take the software architecture of the system into consideration.
Notes: Connection of changes
Reference Type: Conference Paper
Record Number: 8029
Author: Curtis, Bill, Walz, Diane and Elam, Joyce
Year: 1990
Title: Studying the process of software design teams
Conference Name: Proceedings of the 5th international software process workshop on Experience with software process models
Conference Location: Kennebunkport, Maine, USA
Publisher: IEEE Computer Society Press
Pages: 52-53
Place Published: 317698
Abstract: In the 1990s we will begin to see software development environments that embed models of the software process in the control of their tools. These process models will too often be based on traditional life cycle models, models of individual activity, or idealized models of team processes. If these environments are to benefit software development they must support team activity rather than hinder it. The crucial issue in developing technology to aid teams is how well the model implemented by the software coincides with a team's most effective behaviors in performing a task. In order to get a broad perspective on how software design teams solved problems, Herb Krasner and Jeff Conklin videotaped 37 team meetings over five months of an MCC team designing an object-oriented database. In a doctoral dissertation using these data, Diane Walz (1988) devised a method for scoring the verbal protocols of design teams into categories tailored to the design process. Her analysis emphasized the team's information requirements and their effect on the group process, especially information sharing. She began by assuming that the conflicts within a software design team were not solely the result of incompatible goals and/or opinions, but also represented the natural dialectic through which knowledge was exchanged and terminology was clarified (Walz, Elam, Krasner, & Curtis, 1988). Analyses of the protocols and follow-up questions to team members indicated that design meetings were generally dominated by a few individuals to whom fellow participants attributed the greatest breadth of expertise. These individuals appeared to form a coalition that controlled the direction of the team. A fundamental problem in building large systems is the development of a common understanding of the requirements and design across the project team. Of the few studies of multiple agents performing complex design activities, none have investigated the integration of knowledge across experts in different domains or the communication processes required to develop a common model of the application and the system design across the entire design team. As a result, design in team situations is typically treated as an outgrowth of individual design activities, avoiding the multi-agent problem-solving and communication issues. The transcripts of team meetings reveal the large amounts of time designers spend trying to develop a shared model of the design. For instance, many design meetings may be devoted to filling knowledge gaps, such as lectures about the application (e.g., talks by outside experts on object-oriented programming or the requirements for object repositories). Next, the team must come to a common understanding of the semantics of the symbol or diagrammatic system they are using to represent design information. The longer they go without establishing this consensus, the more communication breakdowns will occur. Next they must try to comprehend the differences in their initial model of the application and the design solution. Without understanding these individualized starting points, the team is unable to detect when a breakdown in establishing consensus is likely to have occurred. Finally, they must come to negotiate a common understanding of the architecture. This common model allows them to work on different components of the system without violating interfaces or architectural constraints. Problems of this nature usually do not show up until integration test, and are much more expensive to remove than they would have been in the design phase. The existing research on team problem-solving led us to expect monotonically increasing consensus among design team members on design issues. A simplistic model assuming that cooperative design activity requires agreement among team members lead us to expect this monotonic increase. However, an interesting pattern in the verbal acts representing agreement within the team was observed across the 17 meetings that constituted the design phase of this project. As the data in Figure 1 demonstrate, Walz observed a surprising inverted U-shaped curve (verified through logistic regression) that characterized verbal acts of agreement. The level of agreement increased until meetings 7-10, when the design team released a document presenting its functional specification in response to customer requirements. In subsequent meetings the level of agreement began to decrease. There are several possible explanations for the observed pattern. First, there may be an inflection point in the middle of a group process where the team is forced to come together and agree on their technical plan and operating procedures. Gersick (1988) observed such a point in a study of project teams. Rather than the standard group process of form-storm-norm-perform, Gersick suggested there came a point halfway through a group project where the team faced its lack of progress during its early stage, and came to a consensus about how it would attack the objective. Often this critical point involved an insight into the problem's structure. Group process was relatively stable and productive until the delivery of the final product. Although this model suggests that significant changes occur in a group's process midway through its history, it does not explain the downturn (the drop in consensus) of the inverted U-shaped curve. Gersick's model may be more descriptive of temporary teams that are asked to perform tasks out of their area of expertise. A second hypothesis is that this curve results from the integration of two processes occurring in teams. There is a intellectual process of integrating technical ideas and resolving inconsistencies. Overlaid on this process is a project process of meeting scheduled milestones. Meeting the milestone forced a contrived consensus that did not resolve underlying technical disagreements, but allowed production of a document. However, the existence of this document disguised the lack of intellectual integration that remained in the design. These disagreements began to dominate design meetings immediately after document delivery. Having completed their obligations the team was free to reopen the conflicts that were temporarily suspended to meet the milestone. Thus, we would expect this inverted-U phenomenon of agreement to recur whenever the team must achieve a shared (rather than individual) milestone. Since we only looked at the design phase, Walz could only observe one such curve. Had we studied behavior across the entire development phase Walz might have uncovered an oscillating curve representing the level of agreement with the upper inflections occurring at deadlines for milestones. However, the magnitude of these oscillations should decrease over time as the team resolved more of their underlying technical disagreements. A third explanation is not unlike the second, but emerges more from modeling the stepwise refinement (decomposition) of the artifact. In this model the team struggles to resolve technical conflicts at the initial level of refinement required of them (e.g., functional specification, system architecture, detailed design, etc.). After the artifact at this level is produced, the next level of refinement presents many new technical issues over which the team must struggle toward consensus. Thus, we would again expect to see an oscillating curve of agreement as succeeding stages of refinement present new sets of problems for the team to resolve. These continuing issues would not be surprising since the development team shifts its attention from the early concern with application structure to a later concern with how to optimize the software on the available hardware architecture. This model might differ from the second by not requiring a decreasing magnitude for the oscillations, since each oscillation represents a new wave of problems, rather than the continuing struggle to resolve disagreements that have existed from the project's start. Of these three explanations we prefer the second because we believe that on many, perhaps most, real projects there are people present who recognize early some of the fundamental problems that must be resolved. Their understanding of these problems cuts across several levels of abstraction or refinement and they are able to articulate the implications of these issues for several levels of refinement early in the design process. The levels of refinement argument may be relevant in that the problems attended to early are those that must be resolved to produce the artifact. Thus, levels of refinement provides a model for selecting among problems in order to make progress toward a milestone. Much research lies ahead before we can feel comfortable selecting among these speculations or other explanations of these data. We have concluded that the team design process should be modeled as a multi-agent cognitive process, on which the social processes of role development, coalition formation, communication, etc. are superimposed. In order to explain the team design process, we model group dynamics by their effect on team cognitive processes.
Notes: More a summary
Reference Type: Conference Paper
Record Number: 7943
Author: Berenbach, Brian and Bass, Len
Year: 2008
Title: Summary for leadership and management in software architecture (lMSA 2008)
Conference Name: Companion of the 30th international conference on Software engineering
Conference Location: Leipzig, Germany
Publisher: ACM
Pages: 1043-1044
DOI: 10.1145/1370175.1370238
Place Published: 1370238
Abstract: Software architecture, in education and practice, is primarily concerned with technical issues associated with the quality of software architecture and design. However, as project size increases, leadership, management skills, and the organizational context of the architect become more important, to the point where the non-technical duties of the project architect can "make or break" a project. This workshop is focused on understanding these non-technical duties.
Notes: workshop
Reference Type: Conference Proceedings
Record Number: 9588
Author: Harandi, M. T. and Hing-Yan, Lee
Year of Conference: 1992
Title: A support environment for knowledge-based software design
Conference Name: Proceedings Fourth International Conference on Software Engineering and Knowledge Engineering
Pages: 71-78
Date: 15-20 Jun 1992
Short Title: A support environment for knowledge-based software design
DOI: 10.1109/SEKE.1992.227945
Keywords: diagrams
entity-relationship modelling
knowledge based systems
software reusability
systems analysis
dataflow diagrams
dataflow-oriented software design
design environment
entity-relationship based data models
interactive system
knowledge-based software design
structured analysis
system design reuse
Data analysis
Data models
Process design
Software design
Abstract: Most of the important aspects of the design process can be effectively supported if such expertise can be identified, acquired, and reused. This paper presents a design environment that supports this knowledge-based approach to software design. The design approach may be viewed as knowledge-driven refinement of abstract/specific design models. The design environment consists of a design subsystem, an acquisition and refinement subsystem, and a retrieval mechanism for the retrieval of abstract/specific design models. This paper also describes the interactive aspects required in such an environment. The design representation used in the environment consists of leveled dataflow diagrams and entity-relationship based data models supporting structured analysis and dataflow-oriented software design
Notes: techniques to describe architecture
Reference Type: Conference Proceedings
Record Number: 7677
Author: Cavalcante, E., Batista, T. and Oquendo, F.
Year of Conference: 2015
Title: Supporting Dynamic Software Architectures: From Architectural Description to Implementation
Conference Name: 2015 12th Working IEEE/IFIP Conference on Software Architecture
Pages: 31-40
Date: 4-8 May 2015
Short Title: Supporting Dynamic Software Architectures: From Architectural Description to Implementation
DOI: 10.1109/WICSA.2015.21
Keywords: programming languages
software architecture
π
-ADL
Go programming language
architectural-level primitives
architecture description languages
dynamic software architectures
programmed dynamic reconfiguration specification
real-world flood monitoring system
source code
Computer architecture
Connectors
Logic gates
Monitoring
Runtime
Sensors
Go
architecture description language
dynamic reconfiguration
p-ADL
software architectures
Abstract: Dynamic software architectures are those that describe how components and connectors can be created, interconnected, and/or removed during system execution. Most existing architecture description languages (ADLs) provide a limited support to expressively describe these architectures and entail architectural mismatches and inconsistencies between architecture and implementation due to their decoupling from implementation. In this paper, we introduce the dynamic reconfiguration support provided by π-ADL, a formal, well-founded theoretically language for describing dynamic software architectures under structural and behavioral viewpoints. π-ADL provides architectural-level primitives for specifying programmed dynamic reconfigurations, i.e., Foreseen changes described at design time and triggered at runtime. In addition, π-ADL allows enacting dynamic reconfiguration by means of: (i) an exogenous approach, in which it is possible to control all elements of the software architectures and to apply the changes on the whole structure, and (ii) an endogenous approach, in which the architectural elements can manage dynamic reconfiguration actions. Furthermore, π-ADL is integrated with the Go programming language, thus enabling to automatically generate implementation code from architectural descriptions, thus tackling the existing gap between them. We hereby use a real-world flood monitoring system as an illustrative example of how to describe dynamic software architectures in π-ADL and automatically generate source code in Go.
Notes: automatic source code generation
Reference Type: Conference Proceedings
Record Number: 8779
Author: Brien, L. O', Smith, D. and Lewis, G.
Year of Conference: 2005
Title: Supporting Migration to Services using Software Architecture Reconstruction
Conference Name: 13th IEEE International Workshop on Software Technology and Engineering Practice (STEP'05)
Pages: 81-91
Date: 0-0 0
Short Title: Supporting Migration to Services using Software Architecture Reconstruction
DOI: 10.1109/STEP.2005.29
Keywords: software architecture
software maintenance
software reusability
systems re-engineering
legacy component identification
legacy component reuse
product streamlining
service-oriented architecture
software architecture reconstruction
system modernization
Computer architecture
Conferences
Decision making
Scalability
Service oriented architecture
Simple object access protocol
Software engineering
Software measurement
Web services
Architecture
Architecture Reconstruction
Migration to Services
Oriented Architecture
Service
System Modernization.
Abstract: There are many good reasons why organizations should perform software architecture reconstructions. However, few organizations are willing to pay for the effort. Software architecture reconstruction must be viewed not as an effort on its own but as a contribution in a broader technical context, such as the streamlining of products into a product line or the modernization of systems that hit their architectural borders, that is require major restructuring. In this paper we propose the use of architecture reconstruction to support system modernization through the identification and reuse of legacy components as services in a service-oriented architecture (SOA). A case study showing how architecture reconstruction was used on a system to support an organization's decision-making process is presented
Notes: tool to reconstruct software architecture
Reference Type: Conference Paper
Record Number: 8059
Author: Stevanetic, Srdjan, Plakidas, Konstantinos, Ionescu, Tudor B., Schall, Daniel and Zdun, Uwe
Year: 2016
Title: Supporting quality-driven architectural design decisions in software ecosystems
Conference Name: Proccedings of the 10th European Conference on Software Architecture Workshops
Conference Location: Copenhagen, Denmark
Publisher: ACM
Pages: 1-4
DOI: 10.1145/2993412.3003383
Place Published: 3003383
Abstract: System quality attributes (QAs) are often considered as the most important decision drivers. In this paper, motivated by the decision making in a smart-city software ecosystem, we extend our previous approach that integrates reusable architectural design decisions (ADDs) with the QAs, by integrating tactics that support quality-driven decision making. In addition, we present an approach that enables system evolution, based on controlled and adaptable decision making and utilizing real data obtained during system monitoring. The approach integrates the previous approach that uses tactics with the existing model-driven development paradigm and the corresponding tools.
Reference Type: Conference Paper
Record Number: 7920
Author: Alebrahim, Azadeh and Heisel, Maritta
Year: 2012
Title: Supporting quality-driven design decisions by modeling variability
Conference Name: Proceedings of the 8th international ACM SIGSOFT conference on Quality of Software Architectures
Conference Location: Bertinoro, Italy
Publisher: ACM
Pages: 43-48
DOI: 10.1145/2304696.2304705
Place Published: 2304705
Abstract: Design decisions should take quality characteristics into account. To support such decisions, we capture various solution artifacts with different levels of satisfying quality requirements as variabilities in the solution space and provide them with rationales for selecting suitable variants. We present a UML-based approach to modeling variability in the problem and the solution space by adopting the notion of feature modeling. It provides a mapping of requirements variability to design solution variability to be used as a part of a general process for generating design alternatives. Our approach supports the software engineer in the process of decision-making for selecting suitable solution variants, reflecting quality concerns, and reasoning about it.
Reference Type: Journal Article
Record Number: 8604
Author: Tang, Antony, Babar, Muhammad Ali, Gorton, Ian and Han, Jun
Year: 2006
Title: A survey of architecture design rationale
Journal: Journal of Systems and Software
Volume: 79
Issue: 12
Pages: 1792-1804
Date: 12//
Short Title: A survey of architecture design rationale
ISSN: 0164-1212
DOI: https://doi.org/10.1016/j.jss.2006.04.029
Keywords: Design rationale
Software architecture
Survey
Abstract: Many claims have been made about the consequences of not documenting design rationale. The general perception is that designers and architects usually do not fully understand the critical role of systematic use and capture of design rationale. However, there is to date little empirical evidence available on what design rationale mean to practitioners, how valuable they consider it, and how they use and document it during the design process. This paper reports a survey of practitioners to probe their perception of the value of design rationale and how they use and document the background knowledge related to their design decisions. Based on 81 valid responses, this study has discovered that practitioners recognize the importance of documenting design rationale and frequently use them to reason about their design choices. However, they have indicated barriers to the use and documentation of design rationale. Based on the findings, we conclude that further research is needed to develop methodology and tool support for design rationale capture and usage. Furthermore, we put forward some specific research questions about design rationale that could be further investigated to benefit industry practice.
URL: https://www.sciencedirect.com/science/article/pii/S0164121206001415
'File' Attachments: internal-pdf://1820063103/A survey of architecture design rationale.pdf
Reference Type: Journal Article
Record Number: 9083
Author: Dobrica, L. and Niemela, E.
Year: 2002
Title: A survey on software architecture analysis methods
Journal: IEEE Transactions on Software Engineering
Volume: 28
Issue: 7
Pages: 638-653
Short Title: A survey on software architecture analysis methods
ISSN: 0098-5589
DOI: 10.1109/TSE.2002.1019479
Keywords: reviews
software architecture
software quality
appropriateness studies
classifications
objective reflections
potential risk identification
scenarios
software architecture analysis methods
software architecture assessment process
software quality attributes
software quality requirements
survey
Computer Society
Computer architecture
Computer industry
Guidelines
Reflection
Risk analysis
Software metrics
Software systems
Abstract: The purpose of the architecture evaluation of a software system is to analyze the architecture to identify potential risks and to verify that the quality requirements have been addressed in the design. This survey shows the state of the research at this moment, in this domain, by presenting and discussing eight of the most representative architecture analysis methods. The selection of the studied methods tries to cover as many particular views of objective reflections as possible to be derived from the general goal. The role of the discussion is to offer guidelines related to the use of the most suitable method for an architecture assessment process. We will concentrate on discovering similarities and differences between these eight available methods by making classifications, comparisons and appropriateness studies.
Reference Type: Conference Paper
Record Number: 7868
Author: Robillard, Martin P.
Year: 2016
Title: Sustainable software design
Conference Name: Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering
Conference Location: Seattle, WA, USA
Publisher: ACM
Pages: 920-923
DOI: 10.1145/2950290.2983983
Place Published: 2983983
Abstract: Although design plays a central role in software development, the information produced in this activity is often left to progressively evaporate as the result of software evolution, loss of artifacts, or the fading of related knowledge held by the development team. This paper introduces the concept of sustainability for software design, and calls for its integration into the existing catalog of design quality attributes. Applied to software design, sustainability conveys the idea that a particular set of design decisions and their rationale can be succinctly reflected in the host technology and/or described in documentation in a way that is checkable for conformance with the code and generally resistant to evaporation. The paper discusses the relation between sustainability and existing research areas in software engineering, and highlights future research challenges related to sustainable software design.
Reference Type: Journal Article
Record Number: 8509
Author: Breivold, Hongyu Pei, Crnkovic, Ivica and Larsson, Magnus
Year: 2012
Title: A systematic review of software architecture evolution research
Journal: Information and Software Technology
Volume: 54
Issue: 1
Pages: 16-40
Date: 1//
Short Title: A systematic review of software architecture evolution research
ISSN: 0950-5849
DOI: https://doi.org/10.1016/j.infsof.2011.06.002
Keywords: Software evolvability
Systematic review
Software architecture
Architecture evolution
Architecture analysis
Evolvability analysis
Abstract: Context Software evolvability describes a software system’s ability to easily accommodate future changes. It is a fundamental characteristic for making strategic decisions, and increasing economic value of software. For long-lived systems, there is a need to address evolvability explicitly during the entire software lifecycle in order to prolong the productive lifetime of software systems. For this reason, many research studies have been proposed in this area both by researchers and industry practitioners. These studies comprise a spectrum of particular techniques and practices, covering various activities in software lifecycle. However, no systematic review has been conducted previously to provide an extensive overview of software architecture evolvability research. Objective In this work, we present such a systematic review of architecting for software evolvability. The objective of this review is to obtain an overview of the existing approaches in analyzing and improving software evolvability at architectural level, and investigate impacts on research and practice. Method The identification of the primary studies in this review was based on a pre-defined search strategy and a multi-step selection process. Results Based on research topics in these studies, we have identified five main categories of themes: (i) techniques supporting quality consideration during software architecture design, (ii) architectural quality evaluation, (iii) economic valuation, (iv) architectural knowledge management, and (v) modeling techniques. A comprehensive overview of these categories and related studies is presented. Conclusion The findings of this review also reveal suggestions for further research and practice, such as (i) it is necessary to establish a theoretical foundation for software evolution research due to the fact that the expertise in this area is still built on the basis of case studies instead of generalized knowledge; (ii) it is necessary to combine appropriate techniques to address the multifaceted perspectives of software evolvability due to the fact that each technique has its specific focus and context for which it is appropriate in the entire software lifecycle.
Notes: literature review
URL: https://www.sciencedirect.com/science/article/pii/S0950584911001376
Reference Type: Conference Proceedings
Record Number: 8926
Author: Dabhade, M., Suryawanshi, S. and Manjula, R.
Year of Conference: 2016
Title: A systematic review of software reuse using domain engineering paradigms
Conference Name: 2016 Online International Conference on Green Engineering and Technologies (IC-GET)
Pages: 1-6
Date: 19-19 Nov. 2016
Short Title: A systematic review of software reuse using domain engineering paradigms
DOI: 10.1109/GET.2016.7916646
Keywords: object-oriented methods
software architecture
software quality
software reusability
software reviews
SDLC
architecture definition languages
domain engineering paradigms
object oriented design
software components
software development life cycle
software reuse research
systematic review
Analytical models
Computer architecture
Libraries
Productivity
Systematics
AOSD
CBSD
COTS
Domain Engineering
Software Reuse
Abstract: Software reuse is the use of already existing concepts, objects or software components to build new software. The goal of software reuse research is to explore systematic procedures for developing new systems from existing ones. The systematic software reuse is the most effective way to improve software development. Domain engineering plays crucial role in Software Reuse research, which makes the use of approaches based on object oriented design, software architecture and architecture definition languages. These approaches can be significantly used at initial stages of Software Development Life Cycle (SDLC). It helps us to reduce the rework by enhancing the productivity and quality of reuse. Thus the goal is to identify barriers of software reusability that must be overcome for successful reuse. This paper presents a detailed literature survey on software reuse processes, current research and challenges which encounters while software reusing.
Research Notes: literature review
Reference Type: Journal Article
Record Number: 9174
Author: Galster, M., Eberlein, A. and Moussavi, M.
Year: 2010
Title: Systematic selection of software architecture styles
Journal: IET Software
Volume: 4
Issue: 5
Pages: 349-360
Short Title: Systematic selection of software architecture styles
ISSN: 1751-8806
DOI: 10.1049/iet-sen.2009.0004
Keywords: software architecture
SYSAS method
software architecture styles
systematic architecture style selection
Abstract: Selecting appropriate styles for software architectures is important as styles impact characteristics of software (e.g. reliability). Moreover, styles influence how software is built as they determine architectural elements (e.g. components, connectors) and rules on how these elements are integrated in the architecture. Therefore this study presents a method, called SYSAS, for the systematic selection of architecture styles. In SYSAS, style selection is based on (a) characteristics of basic architectural elements that are relevant for the developer, and (b) characteristics of the target system that are visible to the end user. The selection procedure requires ratings about the importance of characteristics of architectural elements and results in a ranking of styles. SYSAS can be applied at system level as well as for choosing styles for individual subsystems. A case study is presented to illustrate SYSAS and its applicability and added benefit. Additional case studies are performed to compare results of SYSAS with judgements of experts.
Research Notes: Tool for decisions
Reference Type: Journal Article
Record Number: 9320
Author: Weiss, D. M.
Year: 1987
Title: Teaching a Software Design Methodology
Journal: IEEE Transactions on Software Engineering
Volume: SE-13
Issue: 11
Pages: 1156-1163
Short Title: Teaching a Software Design Methodology
ISSN: 0098-5589
DOI: 10.1109/TSE.1987.232864
Keywords: Software design
software engineering education
teaching software design
Application software
Design methodology
Education
Job design
Laboratories
Monitoring
Productivity
Programming
Software engineering
Abstract: This paper describes an approach to teaching a software design methodology used at The Wang Institute of Graduate Studies. The approach is general enough to be used with any of the currently popular design methodologies. Students are first taught the principles underlying the methodology, and the standards used with it. This phase is done in a series of lectures. In the second phase, students are presented with a real design problem, and asked to solve it using the methodology. They are monitored in this process by an expert in the methodology whose job is to assure that the students adhere to the methodology, but who makes no design decisions.
Research Notes: students
Reference Type: Journal Article
Record Number: 9541
Author: Ergen, S. C., Sangiovanni-Vincentelli, A., Sun, X., Tebano, R., Alalusi, S., Audisio, G. and Sabatini, M.
Year: 2009
Title: The Tire as an Intelligent Sensor
Journal: IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
Volume: 28
Issue: 7
Pages: 941-955
Short Title: The Tire as an Intelligent Sensor
ISSN: 0278-0070
DOI: 10.1109/TCAD.2009.2022879
Keywords: automotive engineering
data acquisition
intelligent sensors
road safety
safety systems
tyres
vehicle dynamics
wireless sensor networks
automotive safety
data-acquisition system
distributed architecture
intelligent sensor
load transfer
safety system
tire-road friction
wireless sensor network
energy efficiency
energy scavenging
heterogeneous systems
intelligent systems
platform-based design
tires
ultrawideband
wireless sensors
Abstract: Active safety systems are based upon the accurate and fast estimation of the value of important dynamical variables such as forces, load transfer, actual tire-road friction (kinetic friction) muk, and maximum tire-road friction available (potential friction) mup. Measuring these parameters directly from tires offers the potential for improving significantly the performance of active safety systems. We present a distributed architecture for a data-acquisition system that is based on a number of complex intelligent sensors inside the tire that form a wireless sensor network with coordination nodes placed on the body of the car. The design of this system has been extremely challenging due to the very limited available energy combined with strict application requirements for data rate, delay, size, weight, and reliability in a highly dynamical environment. Moreover, it required expertise in multiple engineering disciplines, including control-system design, signal processing, integrated-circuit design, communications, real-time software design, antenna design, energy scavenging, and system assembly.
Research Notes: Specific solution
Reference Type: Conference Paper
Record Number: 7933
Author: Stevanetic, Srdjan, Plakidas, Konstantinos, Ionescu, Tudor B., Li, Fei, Schall, Daniel and Zdun, Uwe
Year: 2015
Title: Tool Support for the Architectural Design Decisions in Software Ecosystems
Conference Name: Proceedings of the 2015 European Conference on Software Architecture Workshops
Conference Location: Dubrovnik, Cavtat, Croatia
Publisher: ACM
Pages: 1-6
DOI: 10.1145/2797433.2797480
Place Published: 2797480
Abstract: Software architecture entails the making of architectural decisions based on a set of both functional and quality requirements, as well as trade-offs between them, which have to be considered to achieve design goals. Access to accumulated and documented architectural knowledge facilitates this process. In this paper, we present a set of tools that support creative decision making in the different stages an architecture specification goes through. These tools are structured around a central repository, where acquired knowledge is stored for reuse. The approach is motivated by the challenges arising from the particular needs of the software ecosystem environment, where the software design process is characterized by the participation of multiple and diverse stakeholders and the existence of multiple software applications built on a common platform. Our aim is to provide tool support for making quality-driven design decisions in a flexible and reusable manner, facilitating the system's evolvability, as well as enhancing its understandability to the stakeholders involved.
Notes: tools for ADDs
Reference Type: Conference Proceedings
Record Number: 9413
Author: Sherman, S. and Hadar, I.
Year of Conference: 2015
Title: Toward Defining the Role of the Software Architect
Conference Name: 2015 IEEE/ACM 8th International Workshop on Cooperative and Human Aspects of Software Engineering
Pages: 71-76
Date: 18-18 May 2015
Short Title: Toward Defining the Role of the Software Architect
DOI: 10.1109/CHASE.2015.17
Keywords: software architecture
agile development methods
human-centered activities
software development
Computer architecture
Project management
Software
Software architect
communication
leadership
mentoring
soft skills
Abstract: Software architecture is integral part of the software development; however, its integration in the development process has become more challenging with the transition from traditional to agile development methods, and with the architects becoming much more than technological experts responsible for high-level design. Some attention has been paid in recent years to the role of the architect, seeking a contemporary and comprehensive definition of this role. This paper reports on the results of an online survey, with the participation of 104 software architects, aimed at defining the soft aspects of the software architect's role. The results reveal that architects perform a variety of human-centered activities such as mentoring, leadership, reviewing and management,. Moreover, in the contexts of mentoring and leadership, software architects strive to do more than they currently do.
'File' Atttachments: internal-pdf://0200452626/Toward Defining the Role of the Software Archi.pdf
Reference Type: Conference Paper
Record Number: 8129
Author: Sherman, Sofia and Hadar, Irit
Year: 2015
Title: Toward defining the role of the software architect: an examination of the soft aspects of this role
Conference Name: Proceedings of the Eighth International Workshop on Cooperative and Human Aspects of Software Engineering
Conference Location: Florence, Italy
Publisher: IEEE Press
Pages: 71-76
Place Published: 2819333
Abstract: Software architecture is integral part of the software development; however, its integration in the development process has become more challenging with the transition from traditional to agile development methods, and with the architects becoming much more than technological experts responsible for high-level design. Some attention has been paid in recent years to the role of the architect, seeking a contemporary and comprehensive definition of this role. This paper reports on the results of an online survey, with the participation of 104 software architects, aimed at defining the soft aspects of the software architect's role. The results reveal that architects perform a variety of human-centered activities such as mentoring, leadership, reviewing and management, Moreover, in the contexts of mentoring and leadership, software architects strive to do more than they currently do.
Reference Type: Conference Paper
Record Number: 7872
Author: Bhat, Manoj, Shumaiev, Klym and Matthes, Florian
Year: 2017
Title: Towards a framework for managing architectural design decisions
Conference Name: Proceedings of the 11th European Conference on Software Architecture: Companion Proceedings
Conference Location: Canterbury, United Kingdom
Publisher: ACM
Pages: 48-51
DOI: 10.1145/3129790.3129799
Place Published: 3129799
Abstract: Software architecture is considered as a set of architectural design decisions. The recent trends, both in research and industry, call for improved tool support for software architects and developers to manage architectural design decisions and its associated concepts. As part of our ongoing work, we propose a framework for managing architectural design decisions in large software-intensive projects. Each component within this framework addresses specific use cases including (a) extraction and classification of design decisions from issue management systems, (b) annotation of architectural elements, (c) recommendation of alternative decision options, (d) reasoning about decisions' rationale, and (e) recommendation of experts for addressing design decisions. These components are planned to be iteratively realized and evaluated using the design science research approach. We believe that the realization of such a framework will allow an architectural knowledge management system to integrate with the design, development, and maintenance phases to support stakeholders not only to document design decisions but also to learn from decisions made in the past projects.
Notes: Tool
Reference Type: Conference Proceedings
Record Number: 9368
Author: Rabinia, Z., Moaven, S. and Habibi, J.
Year of Conference: 2016
Title: Towards a knowledge-based approach for creating software architecture patterns ontology
Conference Name: 2016 International Conference on Engineering & MIS (ICEMIS)
Pages: 1-9
Date: 22-24 Sept. 2016
Short Title: Towards a knowledge-based approach for creating software architecture patterns ontology
DOI: 10.1109/ICEMIS.2016.7745299
Keywords: document handling
knowledge acquisition
learning (artificial intelligence)
ontologies (artificial intelligence)
software architecture
storage management
document architectural design decisions
knowledge extraction
knowledge representation
knowledge retrieval
knowledge storage
knowledge-based approach
learning process
ontology engineer
ontology learning resource
pattern complexity
pattern variability
software architecture pattern ontology
software architecture problems
software architecture stakeholders
Complexity theory
Computer architecture
Databases
Documentation
OWL
Ontologies
Knowledge Management
Ontology
Semantic Web Technologies
Software Architecture Patterns
Abstract: Software architecture patterns present solutions for software architecture problems and help to document architectural design decisions. Complexity and variability of patterns, and the required expertise for selecting an appropriate pattern, would cause some difficulties in utilizing architectural patterns. Using an ontology for registering architectural patterns is an efficient step in solving those problems. However, the mentioned difficulties make the process of constructing the architectural patterns ontology even more complicated. This paper proposes an approach that considers the construction of the architectural patterns ontology from four perspectives in order to overcome this complexity. Each of these perspectives has certain functionality. The ontology engineer deals with large volumes of patterns that would complicate registration of them in the ontology. Thus, the using of a relational database as an ontology learning resource is considered in this approach and the learning process is explained in knowledge extraction perspective. Sometimes, all knowledge of patterns (the possible interactions of patterns and the architect decisions) is not explicitly stored. Knowledge storage and representation perspective is placed in this approach in order to describe knowledge of patterns and to infer further knowledge. How retrieving an appropriate pattern is discussed in knowledge retrieval perspective. Knowledge sharing is another perspective that discusses how making the patterns ontology available for software architecture stakeholders.
Reference Type: Conference Paper
Record Number: 8126
Author: Yskout, Koen, Landuyt, Dimitri Van and Joosen, Wouter
Year: 2017
Title: Towards a platform for empirical software design studies
Conference Name: Proceedings of the 1st International Workshop on Establishing the Community-Wide Infrastructure for Architecture-Based Software Engineering
Conference Location: Buenos Aires, Argentina
Publisher: IEEE Press
Pages: 3-7
DOI: 10.1109/ecase.2017..3
Place Published: 3101284
Abstract: The process of empirical research is founded on careful study design, sound instantiation and planning of the study, and the systematic collection and processing of data. These activities require extensive expertise and know-how, are repetitive, laborious and error-prone, and adequate tool support is currently lacking, particularly in support of empirical software engineering research. In this paper, we outline our vision of an integrated end-to-end tool platform that supports these activities and we elaborate on what it would take for such a platform to become a (re)usable platform for the research community.
Notes: platform idea
Reference Type: Conference Proceedings
Record Number: 9009
Author: Yskout, K., Landuyt, D. Van and Joosen, W.
Year of Conference: 2017
Title: Towards a Platform for Empirical Software Design Studies
Conference Name: 2017 IEEE/ACM 1st International Workshop on Establishing the Community-Wide Infrastructure for Architecture-Based Software Engineering (ECASE)
Pages: 3-7
Date: 22-22 May 2017
Short Title: Towards a Platform for Empirical Software Design Studies
DOI: 10.1109/ECASE.2017.3
Keywords: software reusability
software tools
empirical software design
empirical software engineering research
integrated end-to-end tool platform
reusable platform
Atmospheric measurements
Particle measurements
Planning
Software design
Software engineering
Tools
empirical software engineering
experimental research
platform
Abstract: The process of empirical research is founded on careful study design, sound instantiation and planning of the study, and the systematic collection and processing of data. These activities require extensive expertise and know-how, are repetitive, laborious and error-prone, and adequate tool support is currently lacking, particularly in support of empirical software engineering research. In this paper, we outline our vision of an integrated end-to-end tool platform that supports these activities and we elaborate on what it would take for such a platform to become a (re)usable platform for the research community.
Notes: platform idea
Reference Type: Conference Paper
Record Number: 8090
Author: Knodel, Jens and Manikas, Konstantinos
Year: 2016
Title: Towards reference architectures as an enabler for software ecosystems
Conference Name: Proccedings of the 10th European Conference on Software Architecture Workshops
Conference Location: Copenhagen, Denmark
Publisher: ACM
Pages: 1-4
DOI: 10.1145/2993412.3003387
Place Published: 3003387
Abstract: Software ecosystems - a topic with increasingly growing interest in academia and industry in the past decade - arguably revolutionized many aspects of industrial software engineering (business models, architectures, platforms, project executions, collaboration models, distribution of assets, to name a few). Software ecosystems enable the contribution of external actors with distinct center a common technology and the potential distribution of the actor contributions to an existing user set.
Reference architectures have been proven successful and beneficial for software product lines and traditional software development within distinct domains. They arguably come with a set of benefits that severely counterweights the additional effort of design and implementation. But what is the role of reference architectures in an ecosystem setting?
In this position paper, we argue for the use of reference architecture as a means of facilitating the operation of software ecosystems, supporting not only the technical aspects but also business and organizational. Thus, we propose that reference architectures can be used as a tool to facilitate software ecosystem orchestration and promote the ecosystem health. In this work, we identify a set of challenges and propose a research agenda for the further development of the field towards efficiently improving the existing means of ecosystem orchestration.
Notes: Reference architecture
Reference Type: Conference Proceedings
Record Number: 8931
Author: Cicchetti, A., Borg, M., Sentilles, S., Wnuk, K., Carlson, J. and Papatheocharous, E.
Year of Conference: 2016
Title: Towards Software Assets Origin Selection Supported by a Knowledge Repository
Conference Name: 2016 1st International Workshop on Decision Making in Software ARCHitecture (MARCH)
Pages: 22-29
Date: 5-5 April 2016
Short Title: Towards Software Assets Origin Selection Supported by a Knowledge Repository
DOI: 10.1109/MARCH.2016.11
Keywords: Context
Decision making
History
Ontologies
Software
Software architecture
architectural knowledge
decision support
knowledge repository
Abstract: Software architecture is no more a mere system specification as resulting from the design phase, but it includes the process by which its specification was carried out. In this respect, design decisions in component-based software engineering play an important role: they are used to enhance the quality of the system, keep the current market level, keep partnership relationships, reduce costs, and so forth. For non trivial systems, a recurring situation is the selection of an asset origin, that is if going for in-house, outsourcing, open-source, or COTS, when in the need of a certain missing functionality. Usually, the decision making process follows a case-by-case approach, in which historical information is largely neglected: hence, it is avoided the overhead of keeping detailed documentation about past decisions, but it is hampered consistency among multiple, possibly related, decisions.The ORION project aims at developing a decision support framework in which historical decision information plays a pivotal role: it is used to analyse current decision scenarios, take well-founded decisions, and store the collected data for future exploitation. In this paper, we outline the potentials of such a knowledge repository, including the information it is intended to be stored in it, and when and how to retrieve it within a decision case.
Notes: tool framework
Reference Type: Conference Paper
Record Number: 7910
Author: Xu, Lihua, Hendrickson, Scott A., Hettwer, Eric, Ziv, Hadar, Andr, #233, Hoek, van der and Richardson, Debra J.
Year: 2006
Title: Towards supporting the architecture design process through evaluation of design alternatives
Conference Name: Proceedings of the ISSTA 2006 workshop on Role of software architecture for testing and analysis
Conference Location: Portland, Maine
Publisher: ACM
Pages: 81-87
DOI: 10.1145/1147249.1147260
Place Published: 1147260
Abstract: This paper addresses issues involved when an architect explore alternative designs including non-functional requirements; in our approach, non-functional requirements are expressed as state-charts. Non-functional requirements greatly impact the resulting design of a system because they naturally conflict with each other, crosscut the system at multiple points, and may be satisfied in a number of different ways. This makes correctly designing them early in the software lifecycle critical, since correcting them later can be extremely costly. Our approach supports an architect generating and evaluating many different design alternatives. This explorative process is not well supported by current techniques, which focus on documenting the result of this process, but not on assisting the designer during this process. We present an architecture-based approach that supports exploration of non-functional requirements expressed as statecharts. Our approach captures design alternatives of non-functional requirements separately, composes different system designs from these alternatives using a novel weaving technique, and analyzes the resulting design for specific qualities using simulation.
Reference Type: Conference Paper
Record Number: 8173
Author: Alebrahim, Azadeh, Fassbender, Stephan, Filipczyk, Martin, Goedicke, Michael and Heisel, Maritta
Year: 2015
Title: Towards systematic selection of architectural patterns with respect to quality requirements
Conference Name: Proceedings of the 20th European Conference on Pattern Languages of Programs
Conference Location: Kaufbeuren, Germany
Publisher: ACM
Pages: 1-20
DOI: 10.1145/2855321.2855362
Place Published: 2855362
Abstract: The design of software architecture for a system-to-be is a challenge, since required functionality as well as the desired quality requirements have to be considered. Building upon common knowledge and best practices captured in architectural patterns has shown to be valuable in this context. However, existing solutions for deriving architectures from requirements mostly rely on experienced architects. Beside the required experience, it is often a problem that the decision is not properly reasoned and documented. In this paper, we propose a process to select appropriate architectural patterns with regards to given (quality) requirements for the system-to-be. The process uses problem frames for modeling requirements and relates requirements to architectural patterns by means of a question catalog. The answers to the questions indicate suitable architectural pattern candidates. The final decision making about the pattern to be used is supported with several steps and also takes tactics and their applicability for a pattern into account. This way, our proposed process connects requirements and architecture, guides even less experienced software engineers through the pattern selection process, provides support for decision making, and makes the decision rationale transparent. The expected target audience for this paper consists of both experienced and less-experienced software architects.
Reference Type: Conference Proceedings
Record Number: 9164
Author: Ruscio, D. Di, Muccini, H., Pierantonio, A. and Pelliccione, P.
Year of Conference: 2006
Title: Towards weaving software architecture models
Conference Name: Fourth Workshop on Model-Based Development of Computer-Based Systems and Third International Workshop on Model-Based Methodologies for Pervasive and Embedded Software (MBD-MOMPES'06)
Pages: 10 pp.-112
Date: 30-30 March 2006
Short Title: Towards weaving software architecture models
DOI: 10.1109/MBD-MOMPES.2006.24
Keywords: Unified Modeling Language
software architecture
UML metamodels
directed weaving operations
model-driven architecture
software architecture models
software development
Architecture description languages
Computer architecture
Conferences
Connectors
Performance analysis
Programming
System recovery
Weaving
Abstract: Increasingly, UML metamodels and profiles are adopted to specify software architectures from different angles in order to cope with analysis specific modeling needs. In particular, whenever two or more analysis techniques are required over the same architectural model, different modeling tools and notations are required, and feedback from one model to the other is not propagated since integration is not universally established. Model-driven architecture offers a conceptual framework for defining a set of standards in support of model-driven development, where models are first class entities and play a central role in software development. In this paper, the coexistence and integration of different analysis techniques at the architectural level is reduced to the problem of enriching multi-view descriptions with proper UML elements by means of directed weaving operations
Notes: UML as technique
Reference Type: Conference Proceedings
Record Number: 9423
Author: Fraga, A. and Llorens, J.
Year of Conference: 2007
Title: Training Initiative for New Software/Enterprise Architects: An Ontological Approach
Conference Name: 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07)
Pages: 19-19
Date: 6-9 Jan. 2007
Short Title: Training Initiative for New Software/Enterprise Architects: An Ontological Approach
DOI: 10.1109/WICSA.2007.48
Keywords: computer science education
learning (artificial intelligence)
ontologies (artificial intelligence)
software architecture
training
ontological approach
reinforcement learning
software-enterprise architects
training courses
university studies
Certification
Computer architecture
Engineering profession
History
Learning
Ontologies
Seminars
Software engineering
Education
Methodology.
Software/Enterprise Architecture
Abstract: In this paper, we describe the importance of new software/enterprise architects in the discipline of software architecture and enterprise architecture. Both are often idealized as super heroes with a lot of qualities that are very infrequent in contemporary people. The enterprise/software architect role could be assumed by a group of people able to manage the qualities for the role. In any case, even a group or a single person must be educated in the discipline by training courses, new methodologies of learning, or traditional university studies. In order to improve the process of becoming a new architect we propose a methodology based on ontological structures and reinforcement learning.
Notes: learning approach
Reference Type: Conference Proceedings
Record Number: 7646
Author: Kazman, R., Cervantes, H., Haziyev, S. and Hrytsay, O.
Year of Conference: 2016
Title: Tutorial Summary for Designing Software Architectures Using ADD 3.0
Conference Name: 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA)
Pages: 253-253
Date: 5-8 April 2016
Short Title: Tutorial Summary for Designing Software Architectures Using ADD 3.0
DOI: 10.1109/WICSA.2016.20
Keywords: object-oriented methods
software architecture
ADD 3.0
attribute driven design
Big data
Computer architecture
Context
Design methodology
Tutorials
Abstract: Attribute Driven Design (ADD)--a method for designing software architectures--was originally developed by the Software Engineering Institute in 2000.ADD 2.0, was published in 2006. Recently we have made some significant changes to ADD to make it easier to enact, to make it better aligned with the way that software is developed today, and hence to improve its adoption by the software architecture practitioner community.In this tutorial we will introduce ADD 3.0 and explain the key changes that we made to its previous versions. We will also present a detailed real-world case study, in the domain of big data, and walk the participants through a few iterations of the method showing how the steps are performed in practice. Then the participants will have the opportunity to enact several iterations of the method on their own. We will place particular emphasis on the design decisions that are made in the different design iterations: how different concepts are used in different iterations, and how these decisions are made more confidently through the use of a reusable catalog of design concepts, how these are documented, and how these can be analyzed within the design process.
Notes: Reuse of architecture patterns
Reference Type: Conference Proceedings
Record Number: 7647
Author: Bosch, J.
Year of Conference: 2016
Title: Tutorial summary for speed, data and ecosystems: The future of software engineering
Conference Name: 2016 13th Working IEEE/IFIP Conference on Software Architecture (WICSA)
Pages: 254-254
Date: 5-8 April 2016
Short Title: Tutorial summary for speed, data and ecosystems: The future of software engineering
DOI: 10.1109/WICSA.2016.18
Keywords: organisational aspects
software architecture
software prototyping
agile development practices
architecture dimension
architecture technical debt management
business dimension
continuous integration visualization
ecosystems
evidence-based development
organization dimension
process dimension
software engineering
Computer architecture
Tutorials
Abstract: The tutorial first discusses the trends that lead to our conclusion that the aforementioned factors are central for future software engineering. Based on this, we then discuss the implications that organizations will experience. These implications are concerned with the business, architecture, process and organization dimensions. For each dimension, we discuss specific methods and techniques. Examples include architecture technical debt management, visualization of continuous integration, techniques for evidence-based development as well as organizational models for combining architecture with agile development practices.
Notes: tutorial
Reference Type: Journal Article
Record Number: 8699
Author: Lytra, Ioanna, Gaubatz, Patrick and Zdun, Uwe
Year: 2015
Title: Two controlled experiments on model-based architectural decision making
Journal: Information and Software Technology
Volume: 63
Pages: 58-75
Date: 7//
Short Title: Two controlled experiments on model-based architectural decision making
ISSN: 0950-5849
DOI: https://doi.org/10.1016/j.infsof.2015.03.006
Keywords: Architectural design decision
Architectural decision model
Architectural knowledge
Controlled experiment
Abstract: AbstractContext In recent years, architectural design decisions are becoming more and more common for documenting software architectures. Rather than describing the structure of software systems, architectural decisions capture the design rationale and – often reusable – architectural knowledge. Many approaches and tools have been proposed in the literature to support architectural decision making and documentation (for instance, based on models, ontologies, or templates). In this context, the capturing, organization, and effective reuse of architectural knowledge has gained a lot of attention. Objective However, there is little empirical evidence about the supportive effect of reusable architectural knowledge on the effectiveness and efficiency of architectural decision making. Method To investigate these aspects, we conducted two separate controlled experiments with software architecture students in which we tested the supportive effect of reusable decision models in decision making and documentation. Results Our results show that the use of reusable decision models can significantly increase both the efficiency and the effectiveness of novice architects. Conclusion We can report, that our findings are in line with similar studies and support the claims regarding reusable architectural design decisions in principle.
URL: https://www.sciencedirect.com/science/article/pii/S0950584915000634
Reference Type: Conference Paper
Record Number: 7861
Author: Volpato, Tiago, Oliveira, Brauner R. N., Garc, Lina, #233, Capilla, Rafael and Nakagawa, Elisa Yumi
Year: 2017
Title: Two perspectives on reference architecture sustainability
Conference Name: Proceedings of the 11th European Conference on Software Architecture: Companion Proceedings
Conference Location: Canterbury, United Kingdom
Publisher: ACM
Pages: 188-194
DOI: 10.1145/3129790.3129815
Place Published: 3129815
Abstract: In the context of software architectures, sustainability has been investigated as an important quality property to assess how well these architectures support changes over time. Several initiatives to achieve sustainable software architectures/systems can be already found. In parallel, reference architectures have served as an effective support to facilitate and standardize the development and evolution of software systems, including in complex, critical application domains. By encompassing valuable knowledge of specific domains, the reference architectures survival is considered of utmost importance, however, the most of such architectures have not been updated since their first version. Furthermore, there is a lack of works investigating how a reference architectures, by itself, can become sustainable and/or can contribute to develop sustainable systems in a domain. The main contribution of this paper is to provide a first view about sustainability on reference architectures. Resulting from our expertise on reference architectures, we bring out the two perspectives on their sustainability: (i) sustainability IN reference architectures; and (ii) sustainability OF reference architectures. In particular, for the perspective OF, we analyzed 20 existing reference architectures to assess their sustainability, and we found most of them were not updated over time. Hence, we also provide an initial set of aspects that could contribute to address sustainability of those architectures.
Notes: Reference architectures
Reference Type: Conference Proceedings
Record Number: 9574
Author: Krikhaar, R., Postma, A., Sellink, A., Stroucken, M. and Verhoef, C.
Year of Conference: 1999
Title: A two-phase process for software architecture improvement
Conference Name: Software Maintenance, 1999. (ICSM '99) Proceedings. IEEE International Conference on
Pages: 371-380
Date: 1999
Short Title: A two-phase process for software architecture improvement
ISBN: 1063-6773
DOI: 10.1109/ICSM.1999.792635
Keywords: algebra
formal specification
program visualisation
software architecture
software metrics
software process improvement
Relation Partition Algebra
abstract syntax trees
architecture visualisation
changing system requirements
complexity control
fast feedback loop
formal transformation techniques
large systems
normal development process
product lines
quality aspects
renovation factories area
software architecture improvement
software architecture improvement process
software architecture transformation
transformation engines
two-phase process
Computer architecture
Consumer electronics
Control systems
Engines
Feedback loop
Laboratories
Production facilities
Software maintenance
Visualization
Abstract: Software architecture is important for large systems in which it is the main means for among other things, controlling complexity. Current ideas on software architectures were not available more than ten years ago. Software developed at that time has been deteriorating from an architectural point of view over the years, as a result of adaptations made in the software because of changing system requirements. Parts of the old software are nevertheless still being used in new product lines. To make changes in that software, like adding features, it is imperative to first adapt the software to accommodate those changes. Architecture improvement of existing software is therefore becoming more and more important. The paper describes a two-phase process for software architecture improvement, which is the synthesis of two research areas: the architecture visualisation and analysis area of Philips Research, and the transformation engines and renovation factories area of the University of Amsterdam. Software architecture transformation plays an important role, and is to our knowledge a new research topic. Phase one of the process is based on Relation Partition Algebra (RPA). By lifting the information to higher levels of abstraction and calculating metrics over the system, all kinds of quality aspects can be investigated. Phase two is based on formal transformation techniques on abstract syntax trees. The software architecture improvement process allows for a fast feedback loop on results, without the need to deal with the complete software and without any interference with the normal development process
Notes: extract information about architecture
Reference Type: Conference Proceedings
Record Number: 9073
Author: Weitzel, B.
Year of Conference: 2012
Title: Understanding deployment costs of enterprise systems: Towards architecture support in deployment decisions
Conference Name: 2012 28th IEEE International Conference on Software Maintenance (ICSM)
Pages: 677-680
Date: 23-28 Sept. 2012
Short Title: Understanding deployment costs of enterprise systems: Towards architecture support in deployment decisions
ISBN: 1063-6773
DOI: 10.1109/ICSM.2012.6405352
Keywords: decision making
information systems
investment
reverse engineering
software architecture
software cost estimation
architecture support
conceptual deployment model
deployment decisions
deployment descriptors
downtime penalties
enterprise environment
enterprise system deployment costs
hardware infrastructure
large scale information systems
runtime traces
software deployment optimization
software license costs
usage profiles
Computer architecture
Hardware
Runtime
Servers
Software
Unified modeling language
Deployment
Software Maintenance
Abstract: The operation of large scale information systems requires investment into hardware infrastructure and causes running cost for keeping it in a productive state. This especially applies in an enterprise environment where also expenses for software licenses costs or penalties for downtime occur. The deployment of software influences these costs both in their amount and their composition. In order to optimize them a transparent view on these costs and the deployment is mandatory. In this paper, we present an approach for making deployment explicit on an architectural level. A conceptual model of deployment is defined that can be populated by reverse engineering of deployment descriptors, runtime traces and usage profiles. We envision fostering a comprehensive decision making and optimization of software deployment.
Notes: extract information about architecture
Reference Type: Conference Proceedings
Record Number: 7792
Author: Bass, L. and Nord, R. L.
Year of Conference: 2012
Title: Understanding the Context of Architecture Evaluation Methods
Conference Name: 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture
Pages: 277-281
Date: 20-24 Aug. 2012
Short Title: Understanding the Context of Architecture Evaluation Methods
DOI: 10.1109/WICSA-ECSA.212.45
Keywords: software architecture
architecture evaluation methods
contextual elements
industrial software architecture evaluation methods
technical personnel
Computer architecture
Context
Face
Industries
Organizations
comparison of architecture evaluation methods
contextual factors
software architecture evaluation methods
Abstract: This paper analyzes several industrial software architecture evaluation methods from the perspective of their contextual elements. Contextual elements include the time available for the evaluation, the personnel available, the openness of the results, the involvement of stakeholders, and so forth. The goal of this analysis is to inform managers and technical personnel about the possibilities for an architecture evaluation method given their particular context.
Reference Type: Conference Paper
Record Number: 7956
Author: Egorova, Inga and Itsykson, Vladimir
Year: 2015
Title: Usage of design patterns as a kind of components of software architecture
Conference Name: Proceedings of the 11th Central & Eastern European Software Engineering Conference in Russia
Conference Location: Moscow, Russia
Publisher: ACM
Pages: 1-9
DOI: 10.1145/2855667.2855679
Place Published: 2855679
Abstract: This survey is dedicated to the research and comparison of the key technologies, supporting systematic usage of design patterns. The approach to use the design patterns as an exclusive kind of components of software architecture based on the most modern patterns modeling concepts is suggested. The possible CAD program realization is described and the results obtained with it are demonstrated.
Notes: tool support for design patterns
Reference Type: Conference Proceedings
Record Number: 7775
Author: That, M. T. T., Sadou, S. and Oquendo, F.
Year of Conference: 2012
Title: Using Architectural Patterns to Define Architectural Decisions
Conference Name: 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture
Pages: 196-200
Date: 20-24 Aug. 2012
Short Title: Using Architectural Patterns to Define Architectural Decisions
DOI: 10.1109/WICSA-ECSA.212.28
Keywords: conformance testing
program verification
software architecture
architectural decision conformance checking
architectural design decision
architectural model
architectural pattern
architecture development process
document architectural decision
nonfunctional property
pattern formalization technique
Computer architecture
Documentation
Object oriented modeling
Semantics
Semiconductor optical amplifiers
Unified modeling language
MDA
architectural decision
pattern
Abstract: During the architecture development process, architectural design decisions play an important role in maintaining non-functional properties of the system. Instead of supposing that architectural decisions are implicitly recognizable, existing works propose to give them first-class status. However, little focus is paid on the automation of architectural decision checking. This paper proposes to leverage pattern formalization techniques to document architectural decisions. The approach consists of a way to describe architectural patterns that hold the architectural decision definition, show how to integrate architectural decisions (patterns) into an architectural model and finally automate the architectural decision conformance checking.
Notes: tool for ADDs
Reference Type: Conference Proceedings
Record Number: 8794
Author: Morveli-Espinoza, M., Possebom, A. T., Mendes, G. F. and Tacla, C. A.
Year of Conference: 2015
Title: Using argumentation for cooperative decision making process
Conference Name: 2015 IEEE 19th International Conference on Computer Supported Cooperative Work in Design (CSCWD)
Pages: 431-436
Date: 6-8 May 2015
Short Title: Using argumentation for cooperative decision making process
DOI: 10.1109/CSCWD.2015.7230998
Keywords: decision making
groupware
software agents
software architecture
argumentation model
cooperative decision making process
cooperative design work
intelligent agent architecture
software architecture design
Guidelines
Lead
Abstract: Decision making process is an important topic in cooperative design work, but it also can be a complex and long-running task, especially when many aspects must be decided, several parties are involved and there are conflicting points of view. One form of dealing with this complexity is automating all or part of the process. With the aim of giving a partial support, we propose a based-argumentation model for the decision making process. In our model, intelligent agents act on behalf of the human participants and after a decision making process a suggested decision is given. We also propose an agent architecture in which the knowledge is divided into data and beliefs, depending on a credibility value of the information. Finally, we give an example of the performance of our model in a scenario of software architecture design.
Reference Type: Journal Article
Record Number: 8815
Author: Kerth, N. L. and Cunningham, W.
Year: 1997
Title: Using patterns to improve our architectural vision
Journal: IEEE Software
Volume: 14
Issue: 1
Pages: 53-59
Short Title: Using patterns to improve our architectural vision
ISSN: 0740-7459
DOI: 10.1109/52.566428
Keywords: object-oriented methods
object-oriented programming
software engineering
specification languages
objects
pattern languages
software architecture
software design
Art
Assembly
Computer architecture
Concrete
Design methodology
Glass
Programming
Prototypes
Abstract: Pattern languages can play an important role in furthering the use of architecture and objects in software design, but first we must understand what these terms mean. The authors use the work of Christopher Alexander (1975, 1979, 1981, 1985) to illuminate the problems and shed light on future directions in our use of pattern languages in design
Notes: pattern visualization
Reference Type: Conference Paper
Record Number: 8167
Author: Wang, Wei and Burge, Janet E.
Year: 2010
Title: Using rationale to support pattern-based architectural design
Conference Name: Proceedings of the 2010 ICSE Workshop on Sharing and Reusing Architectural Knowledge
Conference Location: Cape Town, South Africa
Publisher: ACM
Pages: 1-8
DOI: 10.1145/1833335.1833336
Place Published: 1833336
Abstract: Architectural design rationale describes the decisions made, alternatives considered, and reasons for and against each alternative considered when defining a software architecture. At least some of these reasons should reference the non-functional requirements (NFRs) for the system. The SEURAT_Architecture system uses a pre-defined pattern library and the NFRs for a software system to guide the selection of architectural patterns. Each pattern recommended by the system serves as an alternative to the architectural decision made and comes with rationale for why this pattern is considered useful. This system serves several purposes---to guide the architect through the decision-making process, to ensure that NFRs are considered when making these critical early decisions, and to capture the rationale for the architecture as a byproduct of the tool-supported selection process.
Reference Type: Conference Proceedings
Record Number: 9218
Author: Nord, R. L. and Cheng, B. C.
Year of Conference: 1994
Title: Using RMA for evaluating design decisions
Conference Name: Proceedings of 2nd IEEE Workshop on Real-Time Applications
Pages: 76-80
Date: 21-22 Jul 1994
Short Title: Using RMA for evaluating design decisions
DOI: 10.1109/RTA.1994.316146
Keywords: formal specification
real-time systems
software engineering
systems analysis
RMA
architectural integrity
communication behavior
dependency analysis
design decision evaluation
large complex software
nonfunctional properties
performance
real-time
safety-critical
schedulability analysis
software architecture
specification
synchronization
system structure
Communication system control
Computer architecture
Control system analysis
Control systems
Design methodology
Feedback
Performance analysis
Real time systems
Software systems
Abstract: Software architecture plays a central role in large, complex software systems with real-time or safety-critical requirements. We are investigating design methods based on software architecture, and techniques to specify, represent, and analyze them. As a practical matter we have decided to focus our architectural research on system structure, communication behavior and specific non-functional properties such as performance, synchronization, architectural integrity, dependency analysis and control. In this paper we show how software architecture can provide support for early performance and schedulability analysis, and how the resulting analysis can also provide feedback to evaluate the design decisions made at the architecture level
Reference Type: Conference Paper
Record Number: 7867
Author: Nakagawa, Elisa Yumi, Feitosa, Daniel and Felizardo, Katia Romero
Year: 2010
Title: Using systematic mapping to explore software architecture knowledge
Conference Name: Proceedings of the 2010 ICSE Workshop on Sharing and Reusing Architectural Knowledge
Conference Location: Cape Town, South Africa
Publisher: ACM
Pages: 29-36
DOI: 10.1145/1833335.1833340
Place Published: 1833340
Abstract: Software architectures have played a significant role in determining the success of software systems. In this perspective, a lot of work have been conducted and considerable knowledge in the software architecture area has been accumulated. In another perspective, systematic mapping is a technique that provides an overview of a research area to assess the quantity of evidence existing on a topic of interest. Thus, the main objective of this paper is to introduce systematic mapping in order to explore, understand, organize and summarize software architecture knowledge, aiming at contributing to software architecture area. A simple example of use of this technique is presented and results point out to its viability also in the software architecture research area.
Notes: Kind of review
Reference Type: Conference Paper
Record Number: 7984
Author: Wang, Shangzhu, Avrunin, George S. and Clarke, Lori A.
Year: 2006
Title: Verification support for plug-and-play architectural design
Conference Name: Proceedings of the ISSTA 2006 workshop on Role of software architecture for testing and analysis
Conference Location: Portland, Maine
Publisher: ACM
Pages: 49-50
DOI: 10.1145/1147249.1147255
Place Published: 1147255
Abstract: In software architecture, connectors are intended to represent the specific semantics of how components interact with each other, capturing some of the most important yet subtle aspects of a system. In practice, choosing the appropriate interaction semantics for the connectors in a system tends to be very difficult. The typical design process often involves not only a choice from commonly used interaction mechanisms, such as remote procedure call, message passing, and publish/subscribe, but also decisions about such details as the particular type and size of a message buffer or whether a communication should be synchronous or asynchronous. Given such a large design space, it is important that designers be able to get feedback about the appropriateness of their design decisions on interaction semantics, based on the correctness of the overall system behavior. In particular, one would like to be able to propose a design, and then use design-time verification to determine whether important properties of the system are satisfied. This practice may repeat until a desired design of the system is achieved.
Notes: tool
Reference Type: Conference Proceedings
Record Number: 9017
Author: Brondum, J. and Zhu, L.
Year of Conference: 2012
Title: Visualising architectural dependencies
Conference Name: 2012 Third International Workshop on Managing Technical Debt (MTD)
Pages: 7-14
Date: 5-5 June 2012
Short Title: Visualising architectural dependencies
DOI: 10.1109/MTD.2012.6226003
Keywords: decision making
industrial property
software architecture
software metrics
COTS
architectural dependency visualization
architectural knowledge
architecture related debt
behavioural dependency
code level violations
complex dependency
dependency analysis
dependency relationship visualization
heterogeneous environments
implicit dependency
intellectual property rights
legal contracts
limiting factors
multidimensional property
programming languages
software dependency complexity
structural dependency
sufficient code visibility
system level decision-making processes
technical debt visibility
Architectural Debt
Architectural Dependency Analysis
Abstract: Visibility of technical debt is critical. A lack thereof can lead to significant problems without adequate visibility as part of the system level decision-making processes [2]. Current approaches for analysing and monitoring architecture related debt are based on dependency analysis to detect code level violations of the software architecture [2,3,6]. However, heterogeneous environments with several systems constructed using OTS, and/or several programming languages may not offer sufficient code visibility. Other limiting factors include legal contracts, Intellectual Property Rights, and just very large systems. Secondly, the complexity of a software dependency is often greater than simple structural dependencies, including; multi-dimensional properties (as argued by [10]); behavioural dependencies [5,9]; and `implicit' dependencies (i.e., dependency inter-relatedness [11]). This paper proposes a simple modelling approach for visualising dependency relationships as an extension of the current approaches, while supporting complex dependencies. The model can be built using existing dependency analysis and general architectural knowledge; thus is better suited for heterogeneous environments. We demonstrate the proposed modelling using an exemplar, and two field case studies.
Reference Type: Journal Article
Record Number: 9552
Author: Zhang, C. and Budgen, D.
Year: 2012
Title: What Do We Know about the Effectiveness of Software Design Patterns?
Journal: IEEE Transactions on Software Engineering
Volume: 38
Issue: 5
Pages: 1213-1231
Short Title: What Do We Know about the Effectiveness of Software Design Patterns?
ISSN: 0098-5589
DOI: 10.1109/TSE.2011.79
Keywords: object-oriented programming
software maintenance
Gang-of-Four
design structures
knowledge transfer
object-oriented design patterns
software design patterns
software development
software engineering
Maintenance engineering
Search engines
Software design
Systematics
Terminology
Design patterns
empirical software engineering
systematic literature review
Abstract: Context. Although research in software engineering largely seeks to improve the practices and products of software development, many practices are based upon codification of expert knowledge, often with little or no underpinning from objective empirical evidence. Software design patterns seek to codify expert knowledge to share experience about successful design structures. Objectives. To investigate how extensively the use of software design patterns has been subjected to empirical study and what evidence is available about how and when their use can provide an effective mechanism for knowledge transfer about design. Method. We conducted a systematic literature review in the form of a mapping study, searching the literature up to the end of 2009 to identify relevant primary studies about the use of the 23 patterns catalogued in the widely referenced book by the “Gang of Four.” These studies were then categorized according to the forms of study employed, the patterns that were studied, as well as the context within which the study took place. Results. Our searches identified 611 candidate papers. Applying our inclusion/exclusion criteria resulted in a final set of 10 papers that described 11 instances of “formal” experimental studies of object-oriented design patterns. We augmented our analysis by including seven “experience” reports that described application of patterns using less rigorous observational forms. We report and review the profiles of the empirical evidence for those patterns for which multiple studies exist. Conclusions. We could not identify firm support for any of the claims made for patterns in general, although there was some support for the usefulness of patterns in providing a framework for maintenance, and some qualitative indication that they do not help novices learn about design. For future studies we recommend that researchers use case studies that focus upon some key patterns, and seek to id- ntify the impact that their use can have upon maintenance.
Notes: Literature review
Reference Type: Conference Proceedings
Record Number: 9120
Author: Breivold, H. P., Sundmark, D., Wallin, P. and Larsson, S.
Year of Conference: 2010
Title: What Does Research Say about Agile and Architecture?
Conference Name: 2010 Fifth International Conference on Software Engineering Advances
Pages: 32-37
Date: 22-27 Aug. 2010
Short Title: What Does Research Say about Agile and Architecture?
DOI: 10.1109/ICSEA.2010.12
Keywords: software architecture
software prototyping
agile development
flexible development
rapid development
software development
Computer architecture
Conferences
Data mining
Programming
Software
Agile
Agile methodology
Architecture
Abstract: Agile has been used to refer to a software development paradigm that emphasizes rapid and flexible development. In the meanwhile, we have through our practical experiences in scaling up agile methods, noticed that architecture plays an important role. Due to the inter-relationship between agile methods and architecture, as well as divergent perceptions on their correlation stated in numerous sources, we are motivated to find out how these perceptions are supported by findings in the research community in general and in empirical studies in particular. To fully benefit from agile practices and architectural disciplines, we need empirical data on the perceived and experienced impacts of introducing agile methods to existing software development process, as well as correlations between agile and architecture. In this paper, we survey the research literature for statements made regarding the relationship between agile development and software architecture. The main findings are that there is a lack of scientific support for many of the claims that are concerned with agile and architecture, and more empirical studies are needed to fully reveal the benefits and drawbacks implied by an agile software development method.
Notes: literature review
Reference Type: Journal Article
Record Number: 8773
Author: Voas, J. and Kuhn, R.
Year: 2017
Title: What Happened to Software Metrics?
Journal: Computer
Volume: 50
Issue: 5
Pages: 88-98
Short Title: What Happened to Software Metrics?
ISSN: 0018-9162
DOI: 10.1109/MC.2017.144
Keywords: Context
Organizations
Software
Software engineering
Software metrics
Tools
Virtual Roundtable
history of computing
software architecture
software quality
software testing
Abstract: A panel of seven experts discuss the past 40 years of software metrics, with a focus on evidence-based methods.
Notes: Panel discussion
Reference Type: Journal Article
Record Number: 8417
Author: Tang, Antony, Aleti, Aldeida, Burge, Janet and van Vliet, Hans
Year: 2010
Title: What makes software design effective?
Journal: Design Studies
Volume: 31
Issue: 6
Pages: 614-640
Date: 11//
Short Title: What makes software design effective?
ISSN: 0142-694X
DOI: https://doi.org/10.1016/j.destud.2010.09.004
Keywords: software design
decision making
design reasoning
design effectiveness
Abstract: Software design is a complex cognitive process in which decision making plays a major role, but our understanding of how decisions are made is limited, especially with regards to reasoning with design problems and formulation of design solutions. In this research, we have observed software designers at work and have analysed how they make decisions during design. We report on how factors such as design planning, design context switching, problem-solution co-evolution and the application of reasoning techniques influence software design effectiveness.
URL: https://www.sciencedirect.com/science/article/pii/S0142694X10000669
'File' Attachments: internal-pdf://0072961136/What makes software design effective.pdf
Reference Type: Journal Article
Record Number: 8863
Author: Erder, M. and Pureur, P.
Year: 2017
Title: What Type of People Are Software Architects?
Journal: IEEE Software
Volume: 34
Issue: 4
Pages: 20-22
Short Title: What Type of People Are Software Architects?
ISSN: 0740-7459
DOI: 10.1109/MS.2017.103
Keywords: psychometric testing
software architecture
software architect
Computer architecture
Monitoring
Pragmatics
Psychology
Sociology
Software engineering
Statistics
Belbin Team Roles
HBDI
Herrmann Brain Dominance Instrument
MBTI
Myers-Briggs Type Indicator
personality testing
psychometrics
software development
Abstract: Psychometrics measures mental traits, abilities, and processes. This article presents popular industry approaches to psychometric testing and how to apply them to the role of the software architect.
Reference Type: Journal Article
Record Number: 9639
Author: Erder, M. and Pureur, P.
Year: 2016
Title: What's the Architect's Role in an Agile, Cloud-Centric World?
Journal: IEEE Software
Volume: 33
Issue: 5
Pages: 30-33
Short Title: What's the Architect's Role in an Agile, Cloud-Centric World?
ISSN: 0740-7459
DOI: 10.1109/MS.2016.119
Keywords: software architecture
software prototyping
agile architecture
agile cloud-centric world
architectural decisions
continuous architecture
Computer architecture
Microarchitecture
Pragmatics
Software engineering
Stakeholders
agile
cloud
software architect
software development
Abstract: The software architecture pendulum is swinging away from traditional practices and toward agile and continuous practices. To be successful in this new world, architects should emphasize products over projects, drive architectural decisions, understand code, and communicate and collaborate effectively with delivery teams.
Reference Type: Conference Paper
Record Number: 8340
Author: Kowalski, Luke, Ashley, Jeremy and Vaughan, Misha W.
Year: 2006
Title: When design is not the problem: better usability through non-design means
Conference Name: CHI '06 Extended Abstracts on Human Factors in Computing Systems
Conference Location: Montréal, Québec, Canada
Publisher: ACM
Pages: 165-170
DOI: 10.1145/1125451.1125488
Place Published: 1125488
Abstract: When it comes to shipping quality software, design is not the hard part. Methods and techniques to study users, best practices for creating iterative designs, and tools to validate them are all very well documented. Unfortunately, in chaotic and complex ecosystems very few of the designs actually end up making it through the user-centered design (UCD) process. Interaction designers' input is either ignored or interpreted through a development/business lens and considerable fidelity is lost. As a result, designers too often throw up their hands and blame the technology or the organizations. These barriers can be overcome if designers broaden their roles and better understand other stakeholders' charters. Successful collaboration with other disciplines that make up the software development lifecycle is the key to success. Practical case studies will be discussed where usability, attractiveness, and good design were achieved through non-design means. Poor information architecture, screen layout, and task flows were not the barriers to usability. Design impact was made instead through overcoming barriers in technology, organizational structure, legal, marketing, documentation / quality assurance (QA), and development tools.
Reference Type: Conference Proceedings
Record Number: 7680
Author: Tamburri, D. A. and Nitto, E. D.
Year of Conference: 2015
Title: When Software Architecture Leads to Social Debt
Conference Name: 2015 12th Working IEEE/IFIP Conference on Software Architecture
Pages: 61-64
Date: 4-8 May 2015
Short Title: When Software Architecture Leads to Social Debt
DOI: 10.1109/WICSA.2015.16
Keywords: social sciences computing
software architecture
DAHLIA
connected debt
debt-aimed architecture-level incommunicability analysis
development artefacts
industrial case-study
social debt
sociotechnical interactions
software development organizations
technical debt
Computer architecture
Interviews
Measurement
Organizational aspects
Osmosis
Software
Abstract: Social and technical debt both represent the state of software development organizations as a result of accumulated decisions. In the case of social debt, decisions (and connected debt) weigh on people and their socio-technical interactions/characteristics. Digging deeper into social debt with an industrial case-study, we found that software architecture, the prince of development artefacts, plays a major role in causing social debt. This paper discusses a key circumstance wherefore social debt is connected to software architectures and what can be done and measured in response, as observed in our case-study. Also, we introduce DAHLIA, that is "Debt-Aimed Architecture-Level Incommunicability Analysis" - a framework to elicit some of the causes behind social debt for further analysis.
Reference Type: Conference Paper
Record Number: 7921
Author: Creighton, Oliver and Singer, Matthias
Year: 2008
Title: Who leads our future leaders?: on the rising relevance of social competence in software development
Conference Name: Proceedings of the first international workshop on Leadership and management in software architecture
Conference Location: Leipzig, Germany
Publisher: ACM
Pages: 23-26
DOI: 10.1145/1373307.1373315
Place Published: 1373315
Abstract: Siemens is currently developing a curriculum for several software engineering roles. Our first step was the role of Senior Software Architect. As social competence becomes increasingly important for all software professionals, we argue that reflection is the key to improve a person's skill profile. We believe that a standard component of software development education should be the ability to realistically self-assess one's own effectiveness.
Reference Type: Conference Proceedings
Record Number: 7682
Author: Naab, M., Braun, S., Lenhart, T., Hess, S., Eitel, A., Magin, D., Carbon, R. and Kiefer, F.
Year of Conference: 2015
Title: Why Data Needs more Attention in Architecture Design - Experiences from Prototyping a Large-Scale Mobile App Ecosystem
Conference Name: 2015 12th Working IEEE/IFIP Conference on Software Architecture
Pages: 75-84
Date: 4-8 May 2015
Short Title: Why Data Needs more Attention in Architecture Design - Experiences from Prototyping a Large-Scale Mobile App Ecosystem
DOI: 10.1109/WICSA.2015.13
Keywords: mobile computing
software architecture
software prototyping
software quality
agricultural domain
architectural drivers
architecture decision management
architecture design
computer science
data modeling
information systems
large-scale mobile app ecosystem prototyping
system quality attributes
Computer architecture
Context
Data models
Databases
Ecosystems
Mobile communication
Synchronization
app ecosystem
data
mobile
practical experiences
Abstract: Data is of great importance in computer science and in particular in information systems and how data is treated has major impact on a system's quality attributes. Nevertheless, software architecture research, literature, and practice often neglect data and focus instead on other architectural topics like components and connectors or the management of architecture decisions in general. This paper contributes experiences from the prototyping of a large-scale mobile app ecosystem for the agricultural domain. Architectural drivers like multi-tenancy, different technical platforms and offline capability led to deep reasoning about data. In this paper, we describe the architectural decisions made around data in the app ecosystem and we present our lessons learned on technical aspects regarding data, but also on data modeling and general methodical aspects how to treat data in architecting. We want to share these experiences with the research community to stimulate more research on data in software architecture and we want to give practitioners usable hints for their daily work around data in constructing large information systems and ecosystems.
Reference Type: Conference Proceedings
Record Number: 9414
Author: Lockhart, S. and Mehrotra, R.
Year of Conference: 2000
Title: Writing as software development: making meaning before, after, and of the code
Conference Name: 18th Annual Conference on Computer Documentation. ipcc sigdoc 2000. Technology and Teamwork. Proceedings. IEEE Professional Communication Society International Professional Communication Conference an
Pages: 205-219
Date: 2000
Short Title: Writing as software development: making meaning before, after, and of the code
DOI: 10.1109/IPCC.2000.887492
Keywords: software architecture
system documentation
technical presentation
user interfaces
human computer interaction
product development
software development
software product life cycle
technical writing
Collaboration
Collaborative software
Computer architecture
Documentation
Programming
Refining
Software tools
Solid modeling
Writing
Abstract: This paper presents some thoughts on redefining a technical writer's role in the software development process. It outlines ways in which writers can use their writing skills to collaborate with and add value to the HCI (human computer interaction) and software architecture functions. It also points to areas that writers need to explore further to discover the ways in which they can contribute meaningfully to information, and therefore product development throughout the life cycle of the software product. It uses real-life examples to illustrate ways in which writers can transform documentation from an item on the laundry list of deliverables into an effective design and development tool