Grundlagen und Prinzipien des Architekturentwurfs

Softwaresysteme konnen enorme Umfange annehmen, weshalb es unabdingbar ist, sie angemessen zu strukturieren. Dies erfolgt durch die Gliederung in Teilsysteme und die Beschreibung des Zusammenwirkens der Teilsysteme. Schnittstellen kapseln die Teilsysteme. Uber die Schnittstellen wird festgelegt, welche Einwirkungsmoglichkeiten es von ausen auf ein Teilsystem gibt und welche Dienste ein Teilsystem nach ausen anbietet. Die Schnittstellenspezifikation entspricht einem Vertrag, der Entwickler und Nutzer verbindet, der Systemstrukturen festlegt und die arbeitsteilige Entwicklung einer Software unterstutzt. Fur eine ganze Reihe von Qualitatsfragen eines Softwaresystems ist die angemessene Strukturierung von entscheidender Bedeutung. Dies gilt auch fur die Realisierung der Software auf eine Hardwareplattform, einer Ausfuhrungsumgebung, bei der in aller Regel die unterschiedlichen Teilsysteme gegebenenfalls auf unterschiedliche Rechner abgebildet und dort zur Ausfuhrung gebracht werden. Dieses Kapitel fuhrt die Grundlagen des Architekturentwurfs ein. Zentral sind hier die Architekturprinzipien sowie die Ansatze zur Strukturierung von softwareintensiven Systemen.

[1]  Glenford J. Myers,et al.  Structured Design , 1974, IBM Syst. J..

[2]  Philippe Kruchten Architectural Blueprints: The 4+1 View Model of Software Architecture , 2020, ArXiv.

[3]  A. Watson,et al.  OMG (Object Management Group) architecture and CORBA (common object request broker architecture) specification , 2002 .

[4]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[5]  William B. Frakes,et al.  Software reuse: metrics and models , 1996, CSUR.

[6]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[7]  Brian Fitzgerald,et al.  Inner Source--Adopting Open Source Development Practices in Organizations: A Tutorial , 2015, IEEE Software.

[8]  Reidar Conradi,et al.  An empirical study of developers views on software reuse in statoil ASA , 2006, ISESE '06.

[9]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[10]  Reidar Conradi,et al.  Quality, productivity and economic benefits of software reuse: a review of industrial studies , 2007, Empirical Software Engineering.

[11]  Klaus Pohl,et al.  Software-Produktlinien: Methoden, Einführung und Praxis , 2005, Künstliche Intell..

[12]  Oliver Sims,et al.  Business Component Factory : A Comprehensive Overview of Component-Based Development for the Enterprise , 1999 .

[13]  Edward Yourdon Managing the structured techniques: Strategies for software development in the 1990's , 1986 .

[14]  Andreas Reuter,et al.  Principles of transaction-oriented database recovery , 1983, CSUR.

[15]  Robert C. Martin Clean Code - a Handbook of Agile Software Craftsmanship , 2008 .

[16]  Christopher J. Fox,et al.  Quality Improvement Using A Software Reuse Failure Modes Model , 1996, IEEE Trans. Software Eng..

[17]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[18]  Mario Gleirscher,et al.  On the Extent and Nature of Software Reuse in Open Source Java Projects , 2011, ICSR.

[19]  Gernot Starke Effektive Softwarearchitekturen: Ein praktischer Leitfaden , 2011 .

[20]  Veronika Bauer Analysing and supporting software reuse in practice , 2016 .

[21]  Renata Pontin de Mattos Fortes,et al.  Software reuse: The Brazilian industry scenario , 2008, J. Syst. Softw..

[22]  Eetu Luoma,et al.  Examining Business Models of Software-as-a-Service Firms , 2013, GECON.

[23]  Michael Montgomery,et al.  Programming WCF Services: Design and Build Maintainable Service-Oriented Systems , 2015 .

[24]  David Garlan,et al.  Introduction to the Special Issue on Software Architecture , 1995, IEEE Trans. Software Eng..

[25]  Oliver Vogel,et al.  Software Architecture - A Comprehensive Framework and Guide for Practitioners , 2011 .

[26]  E. Dijkstra On the Role of Scientific Thought , 1982 .

[27]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[28]  Ernst Denert Software-Engineering - methodische Projektabwicklung , 1991 .

[29]  Marten van Sinderen,et al.  Software reuse in agile development organizations: a conceptual management tool , 2011, SAC '11.

[30]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[31]  Mark W. Maier,et al.  Architecting Principles for Systems‐of‐Systems , 1996 .