Software Architecture Fundamentals (eBook)
232 Seiten
Rocky Nook (Verlag)
978-3-96088-645-7 (ISBN)
Mahbouba Gharbi is managing director and Chief Architect at ITech Progress GmbH, and chairman of the board at the International Software Architecture Qualifi cation Board (iSAQB). She is a self-confessed software architecture enthusiast and the author of many expert articles. She is a welcome guest speaker at numerous international conferences. Prof. Dr. Arne Koschel is a lecturer at the University of Applied Sciences and Arts, Hannover, Germany specializing in distributed (information) systems. He has many years of industry experience planning and developing distributed information systems. His lectures include a broad range of IT topics, including cloud computing, integration, middleware, microservices, and SOA. He is an active member of the iSAQB board. Prof. Dr. Andreas Rausch is head of the software systems department at the Technical University of Clausthal. He is a consultant and lead software architect for a number of large-scale distributed software systems.
Mahbouba Gharbi is managing director and Chief Architect at ITech Progress GmbH, and chairman of the board at the International Software Architecture Qualifi cation Board (iSAQB). She is a self-confessed software architecture enthusiast and the author of many expert articles. She is a welcome guest speaker at numerous international conferences. Prof. Dr. Arne Koschel is a lecturer at the University of Applied Sciences and Arts, Hannover, Germany specializing in distributed (information) systems. He has many years of industry experience planning and developing distributed information systems. His lectures include a broad range of IT topics, including cloud computing, integration, middleware, microservices, and SOA. He is an active member of the iSAQB board. Prof. Dr. Andreas Rausch is head of the software systems department at the Technical University of Clausthal. He is a consultant and lead software architect for a number of large-scale distributed software systems.
1Introduction
Nowadays, software is everywhere, from commercial enterprises to virtually all areas of our day-to-day professional, public, and private lives. Air travel, phone calls, bank transfers, or driving would all be next to impossible without software. Software-controlled components can be found in every home and in many everyday devices, from washing machines to cars [BJ+06]. Software is not usually autonomous, but is instead embedded along with hardware and electronics, or as part of the business processes that companies use to generate value [TT+00].
The value and commercial success of companies and products is increasingly determined by software and software quality (see [BM00], [SV99], [TT+00]). Software engineers are thus faced with the challenge of implementing increasingly complex requirements at ever-increasing speed using ever-decreasing budgets while maintaining a high level of software quality.
Continual increase in the size and complexity of software systems has made them some of the most complex human-made systems ever created. The best example is the Internet, which is a truly global software-based system. Internet is now available beyond the bounds of our home planet on the International Space Station (ISS).
A structured and systematic approach to design is essential for the success of software-based systems. Despite the use of established software development methods, the number of unsuccessful software projects remains alarmingly large. To counter this, we need to avoid as many errors as possible, or identify and eliminate them during the early phases of software engineering. Requirements engineering and software architecture are two of these phases. In the words of Ernst Denert, one of the fathers of methodical software development, software architecture is the “Ultimate software engineering discipline” (taken from Denert’s foreword in [Sie04]).
1.1Software architecture as an aspect of software engineering
Problems with software projects were identified as early as the 1960s, and were referred to then as “the software crisis”. From 7–11 October 1968, the NATO Science Committee invited 62 internationally renowned researchers and experts to a conference in Garmisch, Germany, to address the future of software development. This conference is now regarded as the birth of modern software engineering [Dij72].
Figure 1-1Publications on the subject of software architecture since 1973 [Reu12]
Compared to traditional engineering disciplines (such as construction) that can fall back on several thousand years of experience, software engineering is still an extremely young discipline. It is therefore no surprise that the sub-discipline of software architecture is even younger. Figure 1-1 shows an increasing number of publications on the subject of software architecture from the 1990s onward [Reu12]. These figures are taken from The Web of Knowledge—one of the largest and most renowned publication databases.
With a view to the long history of construction architecture, Marcus Vitruvius Pollio (a Roman architect from the first century BC) was an architectural pioneer. In De architecture—nowadays known as Ten Books on Architecture [Vit60]—he argued that good architecture can be achieved using a clever combination of the following elements:
- Utilitas (usefulness):
The building performs its function.
- Firmitas (solidity):
The building is stable and long-lasting.
- Venustas (elegance):
The building is aesthetically pleasing.
Figure 1-2Architecture in ancient Rome
This hypothesis can be directly applied to the discipline of software architecture. The objective of software architecture (and thus a software architect’s primary task) is to construct a system that balances the following three attributes:
- Utilitas (usefulness):
The software fulfills the functional and non-functional requirements of the customer and its users.
- Firmitas (solidity):
The software is stable in terms of the specified quality requirements (for example, the number of simultaneously supported users). It also has to allow future enhancements without having to completely rebuild the system.
- Venustas (elegance):
The software’s structure makes it intuitive to use, but also easy to maintain and develop.
1.2iSAQB: The International Software Architecture Qualification Board
Software architecture is an extremely young discipline and, despite many publications on the subject, various opinions still exist regarding its precise scope and design in the context of computer science and information technology. The tasks and responsibilities of software architects are defined in very different ways and are subject to continual renegotiation during a project.
In contrast, software engineering disciplines such as project management, requirements engineering, and testing have a more mature knowledge base. Various independent organizations offer training curricula that clearly define the knowledge and skills required by these disciplines (for testing, visit www.istqb.org; for requirements engineering, visit www.ireb.org; for project management, visit www.pmi.org).
In 2008, a group of software architecture experts from business, industry, and scientific communities formed the International Software Architecture Qualification Board as a registered association under German law (iSAQB e.V., www.isaqb.org). The goal of the iSAQB is to define product- and manufacturer-independent standards for the training and certification of software architects. Certifications at Foundation, Advanced, and Expert levels allow software architects to certify their knowledge, experience, and skills using a recognized procedure (see figure 1-3).
Because it eliminates the terminological uncertainty referred to earlier, standardized training benefits established and aspiring software architects, companies, and training organizations. Precise training curricula are essential for the examination and certification of aspiring software, and ensure that high-quality training is available on the basis of an accepted canon of knowledge.
Certification as a Certified Professional for Software Architecture (CPSA) is carried out by independent bodies. CPSA Foundation Level certification is based on a subset of a non-public catalogue of demanding questions developed by the iSAQB and matched to the curriculum. Advanced Level certification also requires practical certification and participation in licensed training courses (or acknowledgement of equivalent non-iSAQB qualifications). Expert Level certification is currently in development.
Figure 1-3iSAQB certification levels (www.isaqb.org)
Various licensed training institutions offer multi-day courses designed to refresh and deepen candidates’ existing knowledge in these subject areas. Participation in a course is recommended, but is not a prerequisite for registration for the certification examination.
1.3Certified Professional for Software Architecture – Foundation and Advanced Level
The iSAQB has now defined clear certification guidelines for CPSA Foundation Level and Advanced Level certification.
Advanced Level certification is modular and consists of individual courses dedicated to specific core competences for IT professionals:
- Methodical competence
Technology-independent skills for systematic approaches to IT projects
- Technical competence
Skills in the use of technology for solving design tasks
- Communicative competence
Communication, presentation, rhetorical, and meeting skills that increase efficiency during the software development process
Prerequisites for Advanced Level certification are:
- CPSA-F (Foundation Level) training and certification
- At least 3 years’ professional experience in the IT sector
- Active participation in the design and development of at least two different IT systems
- At least 70 credit points from all three competence areas (with a minimum of 10 credit points for each)
The examination consists of solving a prescribed task and discussion of the solution with two independent examiners.
For Foundation Level certification is based on knowledge and skills defined in the iSAQB curriculum [isaqb-curriculum]. These are as follows:
- The definition and importance of software architecture
- The tasks and responsibilities of software architects
- The role of the software architect within a project
- State-of-the-art methods and techniques for the development of software architectures
The focus is on the acquisition of the following skills:
- Coordinating critical software architecture decisions with other parties involved in requirements management, project management,...
| Erscheint lt. Verlag | 27.2.2019 |
|---|---|
| Verlagsort | Heidelberg |
| Sprache | englisch |
| Maße | 180 x 180 mm |
| Themenwelt | Mathematik / Informatik ► Informatik |
| Schlagworte | Agile • basic guide • Computer Science • Construction • CPSA-F syllabus • DDD • Debugging • Deployment • Design • Development • documentation • domain-driven design • Engineering • Expert • incremental • iSAQB • iSAQB compliant • iSAQB compliant, ISTQB Certification • ISTQB Certification • ISTQB Expert • IT practices • Maintenance • Microservices • Planning Methods • Process • project structures • Prototyping • Quality management • Requirements • Scalable • software architecture • Software Quality • Software System • Stakeholder • systematically designed framework • system components • techniques • Testing • Tools • Waterfall |
| ISBN-10 | 3-96088-645-4 / 3960886454 |
| ISBN-13 | 978-3-96088-645-7 / 9783960886457 |
| Informationen gemäß Produktsicherheitsverordnung (GPSR) | |
| Haben Sie eine Frage zum Produkt? |
Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegeräte ist EPUB daher gut geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine
Geräteliste und zusätzliche Hinweise
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich