DYASoftware Architecture for missioncritical applications Robert Deckers Xootic
DYA|Software, Architecture for mission-critical applications Robert Deckers Xootic v 1 20101203
Architecture “approaches/techniques” Zachmann framework 4 + 1 view Aspect oriented Performance budgets Togaf Interface specifications Service oriented Components Model driven What to do? Object oriented Software product family Design by contract RUP UML++ Use case driven 2
Good architecture is… not always Fast systems Cost aware Simple Future proof Homogeneous components Technology independent predictable projects Situation dependent Flexible reusable Modular User firendly systems Maitainable systems Reliable systems Service oriented Enlarge profit 3
Correct, Consistent, Communicated Correct : it fits the environment ROI Art. 4. 11 End user Business manager Government t Good Architecture takes care of: Consistent : its well engineered Project System Architectuur HRM Software engineer Control Application mgt of architecture activitities Assessable architecture Good system Tester functionaliteit Component builder Program manager Network mgt Communicated : everyone knows what he should know 4
Good architecture is correct The architecture is based on validated statements about the environent and the stakeholder concerns in particular. Concerns are prioritized. The architecture forms the right balance between the concerns. Achieved by: • Consciously balanced concenrs • Enough environment analysis • Validated environment information “The system fits environment” 5
Good architecture is consistent The architecture forms a whole. Architecture statements do not conflict with eachother and in relation to the environment. The system can become reality with the architecture. Achieved by: • Consciously managed • Demonstrable realizable • Verification on contradictions “The system is well constructed” 6
Goede architecture is communicated The stakeholders know their relation with the architecture and what is expected from them. The stakeholders understand how their concenrs are covered in the architecture. A communicated architecture starts with a communicatable architecture description Achieved by: • Consciously executed • Embedded in the organization • Translatable into actions “Everyone knows what he should know. “ 7
The way to good architecture • Master and manage architecture Proces Organisatie Infrastructuur Customer need • Balanced decisions Application y ali Re n tio ruc nst log zat ion ali zat org ion an pro iza c tio ess / n Medewerker Re Co no • Do! ch Te • Guarantee commonality and facilitate variation Software T system Applicatie Dataobject Correct App comp 1 App comp 4 App comp 5 Centrale component Bedrijfsfunctie Bedrijfsobject Consistent Comp 1 Comp 2 Comp 3 Comp 4 Communicated 8
Content DYA|Software Vision Organization wide Softwarearchitectuur Architecture Reasoning Model Family architectures Software architecture and software architect Tasks of the architect Good Architecture Manage and master
Software development is a human job Customer Cliënt Consumer Relation Buyer 10
Definition Software Architecture Based on • DYA (architecture guides development) • IEEE-1471 (architecture description serves stakeholders) The software architecture of a system is a set of statements that guide the design, realisation and evolution of the software in its environment The statements are a model of: • the fundamental structure of the software elements or the relationship between the elements and the environment, • principles that guide the creation of the elements 11
DYA – Architecture Process ◦ 12 www. dya. info
Working area of the software architect Information analist, Business architect Requirements engineer, Business needs, Role in the business proces Functionality, Quality Component, Interface Design pattern, hardware resources Software architect Software engineer, designer, Tester, Infrastructure/hardware architect Planning, Development process, Risks, Expertise/knowledge Programmamanager, Project leader, Development manager 13
What architecture does (should do) Main design : functional, technical, approach Offer Architecture principles Solution direction Business goals. For - Unique Right quality the -most Important properties Not standard, What went wrong last time? Multiple departments – disciplines - systems that are Difficult to realize 14
Manage and master 15
Different concerns Green image Fast new procducts Customer need Complies to standard Application n za ali Iterative development Phase out old system Build off-shore Share personnel with other project Re y log no Runs on a mobile ctio tru ch Based on open source Re ns Co Te reusabe tio ali n za org tion an pro iza ce tio ss n / reliable Specific and prioritized • Focus for architecture decisions Software Before the T competition • Components Organization alignment should system Service delivered via phone, mail, counter and web 16
Different representations Adjust communication to target audience • support in the organization • translation into actions by the target audience 17
Different solutions Conscious descisions • Architecture realizable • traceable buy – make – outsource – cloud - open source agile – waterfall - … 18
Architecture Reasoning Model Information analist End user businessarchitect / -manager Customer engineer need requirements Environment Border System Application Border n ali za org tion an pro iza tio cess n Re Re ali za tio ch pro a Ap n y log n no programmer hardware architect (technical) designer tester ctio ch tru Te ns sig De Co Function • consistent architecture System • balanced decisions T • stakeholders aligned Project leader Program manager Development manager 19
Family: applications with the same genes Family members App 2 App 1 App 3 App 4 App 5 • Homogeneous landscape manageable Use • central component Reuse faster and better Component 5 Design/realization patterns App 6 App 7 App 8 App 9 20
Family architecture: set up • Family scope − Criteria: business, technology, process − Possible members • Ownership • Proces from family to member and back − Family requirements/goals − Deploy and learn 21
Family architecture: Commonality • Fix requirements − Part of project requirements − Acceptance criteria • Fix (software)elements − Components − Design patterns − Platform… • Fix process/organization − Deliverables and how to’s − People: Roles and knowledge 22
Family architecture: variation Software mechanisms: • Composition • Inheritance • Extension • Configuration • Type instantiation/parametrization • Generation 23
Tasks of the architect • Analyze environment and system • Define the architecture • Convey the architecture 24
Environment analysis • Other systems − Part of, consists of, chain, family • Developments in the environment • Find aspects • Select stakeholders − Influence and importance − In time • Useful concerns: − goals, tasks, information need • Validation 25
Define the architecture • Balanced decisions • Central concepts − Software components − Services − Software as a service − Guidelines − Functions − COTS − Expertise − Aspect orientation • Analyse the impact of changes 26
Convey the architecture • Select viewpoints • Plan the communication • Embed the architecture in the realization − Publish the top-level concerns • Support mgt decision. Mgt must be aware of: − Architecture Follows business goals − Changing an existing architecture is not easy − Aimed to be a benefit − The architect makes the architecture 27
For architects (that know dutch) 28
- Slides: 29