Atjaunināt sīkdatņu piekrišanu

E-grāmata: Agile Software Architecture: Aligning Agile Processes and Software Architectures

2.62/5 (15 ratings by Goodreads)
Edited by (Systems Engineering Researcher/Consultant, Heidelberg, Germany), Edited by (Surrey Business School, University of Surrey, UK), Edited by (The University of Adelaide, Australia)
  • Formāts: PDF+DRM
  • Izdošanas datums: 27-Nov-2013
  • Izdevniecība: Morgan Kaufmann Publishers In
  • Valoda: eng
  • ISBN-13: 9780124078857
  • Formāts - PDF+DRM
  • Cena: 89,22 €*
  • * ši ir gala cena, t.i., netiek piemērotas nekādas papildus atlaides
  • Ielikt grozā
  • Pievienot vēlmju sarakstam
  • Šī e-grāmata paredzēta tikai personīgai lietošanai. E-grāmatas nav iespējams atgriezt un nauda par iegādātajām e-grāmatām netiek atmaksāta.
  • Formāts: PDF+DRM
  • Izdošanas datums: 27-Nov-2013
  • Izdevniecība: Morgan Kaufmann Publishers In
  • Valoda: eng
  • ISBN-13: 9780124078857

DRM restrictions

  • Kopēšana (kopēt/ievietot):

    nav atļauts

  • Drukāšana:

    nav atļauts

  • Lietošana:

    Digitālo tiesību pārvaldība (Digital Rights Management (DRM))
    Izdevējs ir piegādājis šo grāmatu šifrētā veidā, kas nozīmē, ka jums ir jāinstalē bezmaksas programmatūra, lai to atbloķētu un lasītu. Lai lasītu šo e-grāmatu, jums ir jāizveido Adobe ID. Vairāk informācijas šeit. E-grāmatu var lasīt un lejupielādēt līdz 6 ierīcēm (vienam lietotājam ar vienu un to pašu Adobe ID).

    Nepieciešamā programmatūra
    Lai lasītu šo e-grāmatu mobilajā ierīcē (tālrunī vai planšetdatorā), jums būs jāinstalē šī bezmaksas lietotne: PocketBook Reader (iOS / Android)

    Lai lejupielādētu un lasītu šo e-grāmatu datorā vai Mac datorā, jums ir nepieciešamid Adobe Digital Editions (šī ir bezmaksas lietotne, kas īpaši izstrādāta e-grāmatām. Tā nav tas pats, kas Adobe Reader, kas, iespējams, jau ir jūsu datorā.)

    Jūs nevarat lasīt šo e-grāmatu, izmantojot Amazon Kindle.

Agile software development, first introduced in the Agile Manifesto in 2001, promotes small, self-organized teams working on incremental projects and using evolutionary development principles, promoting adaptive planning and delivery. While it increases quality and productivity, applying these principles properly is easier said than done. A lot of specific knowledge is required to apply them in real life, especially in large projects with complex architectures. This collection of papers written by experts in the practice of agile programming addresses many common problems and bottlenecks that may arise during the planning and development process. A large first part describes, in several chapters, the fundamentals of agile programming approach concentrating on software architecture and making optimal development choices. General software management using agile principles is the subject of another group of essays including original approaches to continuous software architecture analysis. Several specific domains are described next: in particular, testing for security and deployment to the cloud. Finally, more general industrial perspectives are discussed, the central theme being, again, various emergent architectures and their interaction with agile developing principles. Annotation ©2014 Ringgold, Inc., Portland, OR (protoview.com)

Agile software development approaches have had significant impact on industrial software development practices. Today, agile software development has penetrated to most IT companies across the globe, with an intention to increase quality, productivity, and profitability. Comprehensive knowledge is needed to understand the architectural challenges involved in adopting and using agile approaches and industrial practices to deal with the development of large, architecturally challenging systems in an agile way.

Agile Software Architecture focuses on gaps in the requirements of applying architecture-centric approaches and principles of agile software development and demystifies the agile architecture paradox. Readers will learn how agile and architectural cultures can co-exist and support each other according to the context. Moreover, this book will also provide useful leads for future research in architecture and agile to bridge such gaps by developing appropriate approaches that incorporate architecturally sound practices in agile methods.

  • Presents a consolidated view of the state-of-art and state-of-practice as well as the newest research findings
  • Identifies gaps in the requirements of applying architecture-centric approaches and principles of agile software development and demystifies the agile architecture paradox
  • Explains whether or not and how agile and architectural cultures can co-exist and support each other depending upon the context
  • Provides useful leads for future research in both architecture and agile to bridge such gaps by developing appropriate approaches, which incorporate architecturally sound practices in agile methods

Recenzijas

"Project managers, product owners, and software architects will benefit from reading this book. They will be able to check what is the state of the art and how to apply specific techniques to their own projects given different dimensions, domains, and scopes. " --ComputingReviews.com, August 6 2014

Papildus informācija

The latest research to bridge the gap between architecture and agile software development
Acknowledgments xv
About the Editors xvii
List of Contributors
xix
Foreword xxi
John Grundy
Foreword xxix
Rick Kazman
Preface xxxi
Chapter 1 Making Software Architecture and Agile Approaches Work Together: Foundations and Approaches
1(24)
1.1 Introduction
1(2)
1.2 Software Architecture
3(8)
1.2.1 Software Architecture Process and Architecture Lifecycle
4(2)
1.2.2 Architecturally Significant Requirements
6(2)
1.2.3 Software Architecture Design Methods
8(1)
1.2.4 Documenting Software Architecture
9(1)
1.2.5 Software Architecture Evaluation
10(1)
1.3 Agile Software Development and Architecture
11(3)
1.3.1 Scrum
12(1)
1.3.2 Extreme Programming
13(1)
1.4 Making Architectural and Agile Approaches Work
14(11)
Acknowledgments
18(1)
References
19(6)
PART 1 FUNDAMENTALS OF AGILE ARCHITECTING
Chapter 2 The DCI Paradigm: Taking Object Orientation into the Architecture World
25(38)
2.1 Introduction
26(2)
2.1.1 Agile Apologia
27(1)
2.1.2 Architecture and DCI
28(1)
2.2 The Vision: What is Architecture?
28(4)
2.2.1 Why do we do Architecture?
29(1)
2.2.2 Into Software
29(1)
2.2.3 Why Software Architecture?
30(1)
2.2.4 Architecture and the Agile Agenda
31(1)
2.2.5 DCI as an Integrative View of the Architecture Metaphor
32(1)
2.3 Form and Function in Architectural History
32(5)
2.3.1 Historic Movements and Ideologies
34(1)
2.3.2 Enter Postmodernism
35(1)
2.3.3 Architecture Finds an Object Foothold
35(1)
2.3.4 Software Engineering and Architecture Today
36(1)
2.3.5 Measures of the Vision
36(1)
2.4 What is Object Orientation? Achieving the Vision
37(5)
2.4.1 The Kay Model
37(1)
2.4.2 Mental System Models
38(1)
2.4.3 Model-View-Controller
38(1)
2.4.4 Patterns
39(1)
2.4.5 Use Cases
39(1)
2.4.6 Many Views of Objects and the Boundaries of MVC
40(2)
2.5 Shortcomings of the Models
42(7)
2.5.1 The Network Paradigm
42(1)
2.5.2 Model-View-Controller
43(1)
2.5.3 Patterns
43(1)
2.5.4 Use Cases
44(1)
2.5.5 The Object Canon
45(4)
2.6 DCI as a New Paradigm
49(5)
2.6.1 A DCI Overview
49(3)
2.6.2 Relating DCI to the Original OO Vision
52(1)
2.6.3 DCI and the Agile Agenda
53(1)
2.7 DCI and Architecture
54(5)
2.7.1 DCI and the Postmodem View
55(1)
2.7.2 Patterns and DCI
56(2)
2.7.3 DCI and the Network Computation View
58(1)
2.7.4 Firmitas, Utilitas, and Venustas
58(1)
2.8 Conclusion
59(4)
References
60(1)
Further Reading
61(2)
Chapter 3 Refactoring Software Architectures
63(20)
3.1 Introduction
63(1)
3.2 Dealing with Design Flaws
64(1)
3.3 Evolution and Styles of Refactoring---Code Refactoring
65(1)
3.4 Evolution and Styles of Refactoring---Refactoring to Patterns
66(1)
3.5 The Motivation for Software Architecture Refactoring
67(1)
3.6 Architectural Smells
67(3)
3.7 A Real-World Example
70(2)
3.8 Quality Improvement
72(1)
3.9 The Process of Continuous Architecture Improvement
73(2)
3.10 Shallow and Deep Refactoring
75(1)
3.11 Additional Examples of Architecture Refactoring Patterns
75(3)
3.11.1 Breaking Dependency Cycles
75(1)
3.11.2 Splitting Subsystems
75(3)
3.12 Known Obstacles to Architecture Refactoring
78(1)
3.13 Comparing Refactoring, Reengineering, and Rewriting
79(2)
3.14 Summary
81(2)
References
82(1)
Chapter 4 Driving Architectural Design and Preservation From a Persona Perspective in Agile Projects
83(30)
4.1 Introduction
83(3)
4.2 Personas in the Design Space
86(1)
4.3 Discovering ASRs
87(6)
4.3.1 From Features to Architectural Concerns
87(3)
4.3.2 Embedding Architectural Concerns Into Personas
90(3)
4.4 Personas for Driving Architectural Design
93(8)
4.4.1 Goal Analysis
94(1)
4.4.2 Generating and Evaluating Architectural Solutions
95(1)
4.4.3 Examples
95(6)
4.5 Personas and Architectural Preservation
101(4)
4.5.1 Trace By Subscription
103(1)
4.5.2 Generating Persona-centric Perspectives
103(1)
4.5.3 Examples
103(2)
4.6 ASPs in Other Project Domains
105(4)
4.6.1 Mechatronics Traceability
106(2)
4.6.2 Online Trading
108(1)
4.6.3 Bond, James Bond
108(1)
4.7 Conclusions
109(4)
Acknowledgments
110(1)
References
110(3)
Chapter 5 Architecture Decisions: Who, How, and When?
113(26)
5.1 Introduction
114(1)
5.2 Research Methodology
115(1)
5.3 The Agile Architecture Axes Framework
116(5)
5.3.1 Who Makes the Architectural Decisions?
117(1)
5.3.2 What Artifacts Are Used to Document the Decision?
118(1)
5.3.3 What Is the Feedback Loop of An Architectural Decision?
119(1)
5.3.4 Summary of the Axes
120(1)
5.4 Industrial Cases
121(7)
5.4.1 Case Alpha
121(1)
5.4.2 Case Beta
122(2)
5.4.3 Case Gamma
124(1)
5.4.4 Case Delta
125(1)
5.4.5 Case Epsilon
126(1)
5.4.6 Overview
127(1)
5.5 Analysis
128(2)
5.5.1 Mapping the Cases to the Triple-A Framework
128(1)
5.5.2 Identified Problems
129(1)
5.5.3 Summary
130(1)
5.6 Reflection
130(2)
5.6.1 Findings
131(1)
5.6.2 Questions of Validity
131(1)
5.7 Related and Future Work
132(1)
5.8 Conclusions
133(6)
Appendix
A Visual Representation of the Case Studies Mapped on the Triple-A Framework
133(2)
References
135(4)
PART 2 MANAGING SOFTWARE ARCHITECTURE IN AGILE PROJECTS
Chapter 6 Supporting Variability Through Agility to Achieve Adaptable Architectures
139(22)
6.1 Introduction
139(2)
6.2 Background
141(2)
6.2.1 Variability
141(1)
6.2.2 Agility
142(1)
6.3 Related Work
143(1)
6.4 Challenges when Combining Variability and Agility
144(1)
6.5 Arguments for Combining Variability and Agility
145(1)
6.6 Agile-Inspired Variability Handling
146(9)
6.6.1 Industrial Context: Dutch e-Government
148(1)
6.6.2 Step 1: Conduct Initial Variability Analysis
149(1)
6.6.3 Step 2: Create Initial Architecture Variability Profile
149(1)
6.6.4 Step 3: Create Architecture
150(1)
6.6.5 Steps 4a and 4b: Evaluate Architecture
151(3)
6.6.6 Step 5: Implement Initial Architecture
154(1)
6.6.7 Step 6: Elicit New Variability Requirements
154(1)
6.6.8 Step 7: Revise Architecture Variability Profile
154(1)
6.6.9 Step 8: Refactor Architecture
155(1)
6.7 Summary and Conclusions
155(6)
Acknowledgments
157(1)
References
157(4)
Chapter 7 Continuous Software Architecture Analysis
161(28)
7.1 Introduction
161(1)
7.2 Software Architecture Analysis
162(2)
7.3 Approaches to Software Architecture Analysis
164(3)
7.3.1 Architecture Reviews
164(1)
7.3.2 Scenario-Based Evaluation Methods
165(1)
7.3.3 Architecture Description Languages
165(1)
7.3.4 Dependency Analysis Approaches and Architecture Metrics
166(1)
7.3.5 Architecture Prototyping
166(1)
7.3.6 Ad Hoc Analysis
167(1)
7.4 Continuous Software Architecture Analysis
167(4)
7.4.1 CSAA and Different Kinds of Architecture Analysis
168(1)
7.4.2 Approaches for Continuous Quality Control (CQC)
169(1)
7.4.3 Characteristics of CQC Approaches
169(1)
7.4.4 CSAA Process
170(1)
7.5 CSAA in Existing Approaches
171(2)
7.6 CSAA and Analysis Goals
173(3)
7.7 Experiences With An Approach to CSAA
176(6)
7.7.1 Validation
179(3)
7.8 Findings and Research Challenges
182(1)
7.9 Conclusion
183(6)
References
184(5)
Chapter 8 Lightweight Architecture Knowledge Management for Agile Software Development
189(26)
8.1 Introduction
189(2)
8.2 Challenges of Agile Architecture Documentation
191(2)
8.3 Supporting Techniques for AKM in Agile Software Development
193(5)
8.3.1 Architecture Evaluation Methods, Agility, and AKM
194(2)
8.3.2 Advanced Techniques for Managing Architectural Repositories
196(2)
8.4 Architecture Practices in Agile Projects
198(3)
8.4.1 Scrum Framework
198(1)
8.4.2 Architecting While Using Scrum
199(2)
8.5 Architectural Information Flow in Industry
201(4)
8.5.1 Interview Setup
201(1)
8.5.2 Results
202(2)
8.5.3 General Comments From Interviewees
204(1)
8.5.4 Limitations
205(1)
8.6 AKM in Scrum
205(3)
8.6.1 Big-up-front-Architecture and Sprint-Zero Architecting Approaches
205(2)
8.6.2 In-sprints Architecting Approach
207(1)
8.6.3 Separated-architecture-team Architecting Approach
207(1)
8.7 Related Work
208(1)
8.8 Conclusions
209(6)
Acknowledgments
210(1)
References
211(4)
Chapter 9 Bridging User Stories and Software Architecture: a Tailored Scrum for Agile Architecting
215(30)
9.1 Introduction
215(2)
9.2 Agile Architecting
217(1)
9.3 Case Study: Metering Management System in Electrical Power Networks
218(3)
9.4 Agile Architecting Mechanisms
221(11)
9.4.1 Feature Pool and Feature Tree of User Stories
221(4)
9.4.2 Flexibility in Software Architecture Design
225(5)
9.4.3 Agile Design Decisions: CIA Support
230(2)
9.5 A Tailored Scrum for Agile Architecting
232(2)
9.6 Agile Architecting in Practice
234(3)
9.7 Findings About Agile Architecting
237(8)
Acknowledgments
238(1)
References
239(6)
PART 3 AGILE ARCHITECTING IN SPECIFIC DOMAINS
Chapter 10 Architecture-Centric Testing for Security: An Agile Perspective
245(24)
10.1 Introduction
245(1)
10.2 Research Motivation
246(2)
10.3 Overview of Limitations in Current Post-implementation Methods
248(3)
10.3.1 Functional Testing of Security Apparatuses
248(1)
10.3.2 Penetration Testing
248(1)
10.3.3 Threat Modeling
249(1)
10.3.4 Discussion
250(1)
10.4 Introducing Implied Scenarios
251(2)
10.4.1 Detecting Implied Scenarios
251(2)
10.5 Approach
253(1)
10.5.1 Stage 1: Implied Scenario Detection
253(1)
10.5.2 Stage 2: Review of Detected Implied Scenarios
253(1)
10.5.3 Stage 3: Performing Live Security Testing
254(1)
10.6 The Agility of the Approach
254(1)
10.7 Identity Management Case Study
255(5)
10.7.1 Case Study Background
256(1)
10.7.2 Approach and Results
256(4)
10.8 Further Discussion
260(3)
10.9 Agile Development, Architecture, and Security Testing
263(1)
10.10 Related Work
264(1)
10.11 Conclusion
265(4)
References
265(4)
Chapter 11 Supporting Agile Software Development and Deployment in the Cloud: a Multitenant, Multitarget Architecture
269(22)
11.1 Introduction
269(2)
11.2 Cloud Computing
271(1)
11.3 Multitenancy Architectures
272(2)
11.4 Agility and Multitenant Architectures
274(1)
11.5 Multitenancy Monotarget: Agility Challenges
275(1)
11.6 Supporting Agility: Multitenancy Multitarget
276(5)
11.6.1 Functional Portfolio Management
278(1)
11.6.2 Multitarget Metadata (MT2 Metadata)
278(1)
11.6.3 Business Process Reutilization
279(2)
11.6.4 Multitarget Security
281(1)
11.7 Globalgest: a Real MT2 System
281(3)
11.8 Related Work
284(1)
11.9 Conclusions and Future Work
285(6)
References
286(5)
PART 4 INDUSTRIAL VIEWPOINTS ON AGILE ARCHITECTING
Chapter 12 Agile Architecting: Enabling the Delivery of Complex Agile Systems Development Projects
291(24)
12.1 Agile and Complex Systems Development Approaches Need to Merge and Adapt
292(3)
12.1.1 Why do Complex System Development Best Practices Need to Incorporate Agile Best Practices?
293(1)
12.1.2 Why do Complex System Development Projects Need Architecture?
294(1)
12.2 Identifying the Right Amount of Architecture
295(2)
12.3 Cost Reduction Through Architecture
297(2)
12.3.1 Reduce Costs By Enabling the Use of Off-shore Development
297(1)
12.3.2 Reduce Costs By Considering Total Cost of Ownership (TCO)
298(1)
12.4 Minimize Rework Through Architecture
299(3)
12.4.1 Minimize Rework Through Reasonable Foresight
299(1)
12.4.2 Minimize Rework Via Prototypes
300(2)
12.5 Accelerate Delivery Through Architecture
302(11)
12.5.1 Accelerate the Delivery Pipeline By Incorporating Multiple Perspectives
302(1)
12.5.2 Accelerate Delivery By Maximizing Capacity
303(3)
12.5.3 Accelerate Delivery Through Early Integration
306(2)
12.5.4 Accelerate Delivery Via Early and Continuous Testing
308(3)
12.5.5 Accelerate Delivery Via An Automated Deployment Pipeline
311(2)
12.6 Conclusion
313(2)
References
314(1)
Chapter 13 Building a Platform for Innovation: Architecture and Agile as Key Enablers
315(20)
13.1 Introduction
315(1)
13.2 Worlds Collide
316(1)
13.3 An Architecture Heritage
317(2)
13.4 Iterative Development
319(2)
13.5 Along Came Agile
321(2)
13.6 Agile With Discipline
323(3)
13.7 Beyond Architecture and Agile
326(6)
13.7.1 Define a Project Lifecycle Selection Framework
326(2)
13.7.2 Tailor the Method
328(1)
13.7.3 Consider All Elements of a Development Environment
329(1)
13.7.4 Adopt Change Incrementally
330(1)
13.7.5 Implement a Center of Excellence
331(1)
13.8 Summary
332(3)
References
333(2)
Chapter 14 Opportunities, Threats, and Limitations of Emergent Architecture
335(22)
14.1 Introduction
335(3)
14.1.1 A Brief Definition of Emergence
336(1)
14.1.2 The Idea of Emergent Architecture
336(2)
14.2 Purpose, Activities, and Objectives of Architecture
338(4)
14.2.1 Purpose---the Why of Architecture
339(1)
14.2.2 Activities---the How of Architecture
340(1)
14.2.3 Objectives---the What of Architecture
341(1)
14.3 Analysis of Emergent Architecture
342(7)
14.3.1 Alignment
343(2)
14.3.2 Structuring
345(1)
14.3.3 Implementation of Nonfunctional Requirements
346(1)
14.3.4 Design for Understandability
346(1)
14.3.5 Design for Change
347(2)
14.4 Discussion
349(5)
14.4.1 Comparison of Explicit and Emergent Architecture
349(3)
14.4.2 A Joint Approach
352(2)
14.5 Conclusion
354(3)
References
355(2)
Chapter 15 Architecture as a Key Driver for Agile Success: Experiences At Aviva UK
357(18)
15.1 Introduction
357(2)
15.2 Challenges to Agile Adoption At Aviva UK
359(1)
15.3 The Key Role of Architecture in Driving Agile Success
360(12)
15.3.1 Sufficient Up-front Architecture and Design
361(6)
15.3.2 Layered Architecture Enabling Independent Change Agility
367(4)
15.3.3 "Change-time" Architecture and "run-time" Architecture
371(1)
15.4 Incremental Agile and Architecture Transformation
372(1)
15.5 Conclusions
373(2)
References
374(1)
Author Index 375(8)
Subject Index 383
Dr. M. Ali Babar is a Professor of Software Engineering (Chair) at the School of Computer Science, the University of Adelaide, Australia. He also holds an Associate Professorship at IT University of Copenhagen, Denmark. Prior to this, he was a Reader in Software Engineering at Lancaster University UK. Previously, he worked as a researcher and project leaders in different research centres in Ireland and Australia. He has authored/co-authored more than 140 peer-reviewed research papers in journals, conferences, and workshops. He has co-edited a book, software architecture knowledge management: theory and practice. Prof. Ali Babar has been a guest editor of several special issues/sections of IEEE Software, JSS, ESEJ, SoSyM, IST, and REJ. Apart from being on the program committees of several international conferences such as WICSA/ECSA, ESEM, SPLC, ICGSE, and ICSSP for several years, Prof. Ali Babar was the founding general chair of Nordic-Baltic Symposium on Cloud Computing and Internet Technologies (NordiCloud) 2012. He has also been co-(chair) of the program committees of several conferences such as NordiCloud 2013, WICSA/ECSA 2012, ECSA2010, PROFES2010, and ICGSE2011. He is a member of steering committees of WICSA, ECSA, NordiCloud and ICGSE. He has presented tutorials in the areas of cloud computing, software architecture and empirical approaches at various international conferences. Prior to joining R&D field, he worked as a software engineer and an IT consultant for several years in Australia. He obtained a PhD in computer science and engineering from University of New South Wales, Australia. Alan W. Brown is Professor of Entrepreneurship and Innovation in the Surrey Business School, University of Surrey, UK. where he leads activities in the area of corporate entrepreneurship and open innovation models. In addition to teaching activities, he focuses on innovation in a number of practical research areas with regard to global enterprise software delivery, agile software supply chains, and the investigation of "open commercial" software delivery models. He has formerly held a wide range of roles in industry, including Distinguished Engineer and CTO at IBM Rational, VP of Research at Sterling Software, Research Manager at Texas Instruments Software, and Head of Business Development in a Silicon Valley startup. In these roles Alan has worked with teams around the world on software engineering strategy, process improvement, and the transition to agile delivery approaches. He has published over 50 papers and written four books. He holds a Ph.D. in Computing Science from the University of Newcastle upon Tyne, UK. Ivan Mistrik is a computer scientist who is interested in system and software engineering (SE/SWE) and in system and software architecture (SA/SWA), in particular: life cycle system/software engineering, requirements engineering, relating software requirements and architectures, knowledge management in software development, rationale-based software development, aligning enterprise/system/software architectures, and collaborative system/software engineering. He has more than forty years experience in the field of computer systems engineering as an information systems developer, R&D leader, SE/SA research analyst, educator in computer sciences, and ICT management consultant.

In the past 40 years, he has been primarily working at various R&D institutions and has done consulting on a variety of large international projects sponsored by ESA, EU, NASA, NATO, and UN. He has also taught university-level computer sciences courses in software engineering, software architecture, distributed information systems, and human-computer interaction. He is the author or co-author of more than 80 articles and papers in international journals, conferences, books and workshops, most recently a chapter Capture of Software Requirements and Rationale through Collaborative Software Development, a paper Knowledge Management in the Global Software Engineering Environment, and a paper Architectural Knowledge Management in Global Software Development.

He has written a number of editorials and prefaces, most recently for the book on Aligning Enterprise, System, and Software Architecture and the book on Agile Software Architecture. He has also written over 120 technical reports and presented over 70 scientific/technical talks. He has served in many program committees and panels of reputable international conferences and organized a number of scientific workshops, most recently two workshops on Knowledge Engineering in Global Software and Development at International Conference on Global Software Engineering 2009 and 2010 and IEEE International Workshop on the Future of Software Engineering for/in the Cloud (FoSEC) held in conjunction with IEEE Cloud 2011.He has been the guest-editor of IEE Proceedings Software: A special Issue on Relating Software Requirements and Architectures published by IEE in 2005 and the lead-editor of the book Rationale Management in Software Engineering published by Springer in 2006. He has been the co-author of the book Rationale-Based Software Engineering published by Springer in May 2008. He has been the lead-editor of the book Collaborative Software Engineering published by Springer in 2010, the book on Relating Software Requirements and Architectures published by Springer in 2011 and the lead-editor of the book on Aligning Enterprise, System, and Software Architectures published by IGI Global in 2012. He was the lead-editor of the Expert Systems Special Issue on Knowledge Engineering in Global Software Development and the co-editor of the JSS Special Issue on the Future of Software Engineering for/in the Cloud, both published in 2013. He was the co-editor for the book on Agile Software Architecture published in 2013. Currently, he is the lead-editor for the book on Economics-driven Software Architecture to be published in 2014.