310 likes | 448 Views
DYA|Software, Architecture for mission-critical applications. Robert Deckers Xootic v1 20101203 . Architecture “approaches/techniques”. Zachmann framework. 4 + 1 view. Aspect oriented. Interface specifications. Components. Performance budgets. What to do?. Model driven.
E N D
DYA|Software,Architecture for mission-critical applications Robert Deckers Xootic v1 20101203
Architecture “approaches/techniques” • Zachmann framework • 4 + 1 view • Aspect oriented • Interface specifications • Components • Performancebudgets What to do? • Model driven • Service oriented • Togaf • Object oriented • Software productfamily • RUP • UML++ • Design by contract • Use case driven
Good architecture is… notalways • Fast systems • Cost aware • Simple • Homogeneouscomponents • Technology independent • Future proof Situation dependent • predictable • projects • Flexible • reusable • Modular • User firendlysystems • Reliable systems • Service oriented • Maitainablesystems • Enlarge profit
ROI Art. 4.11 t Correct, Consistent, Communicated Correct : it fits the environment End user Businessmanager Government Good Architecture takes care of: Control of architecture activitities Assessable architecture Good system System Consistent : its well engineered Architectuur Project Software engineer Tester HRM Application mgt functionaliteit Componentbuilder Program manager Network mgt Communicated : everyone knows what he should know
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 its environment”
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”
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.“
The way to good architecture T Customer need • Master and manage architecture • Balanced decisions • Guarantee commonality and facilitate variation • Do! Proces Organisatie Infrastructuur Application Correct Consistent Communicated App comp 4 App comp 1 App comp 5 Softwaresystem Realization Construction Medewerker Applicatie Dataobject Centrale component Realization process / organization Technology Comp 1 Comp 2 Comp 3 Comp 4 Bedrijfs-functie Bedrijfsobject
ContentDYA|Software Vision Organization wideSoftwarearchitectuur Architecture Reasoning Model Familyarchitectures Good Architecture Software architecture andsoftware architect Manage and master Tasks of the architect
Software development is a human job Customer Cliënt ConsumerRelation Buyer
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
DYA – Architecture Process • www.dya.info
Information analist, Business architect Requirements engineer, Working area of the software architect Business needs,Role in the business proces Functionality,Quality Softwarearchitect Software engineer, designer, Tester, Infrastructure/hardwarearchitect \ Programmamanager, Project leader, Development manager Component, InterfaceDesign pattern, hardware resources Planning, Developmentprocess, Risks, Expertise/knowledge
What architecture does (should do) Main design : functional, technical, approachArchitecture principles Offer Solution direction For the most Important properties that are Difficult to realize Business goals - Unique - Right quality Not standard, What went wrong last time? Multiple departments – disciplines - systems
Different concerns T Green image Fast new procducts Customer need Complies to standard Application • Specific and prioritized • Focus for architecture decisions • Organization alignment reliable Service delivered via phone, mail, counter and web Softwaresystem Before the competition Components should reusabe Realization Construction Realization process /organization Build off-shore Based on open source Technology Iterative development Share personnel with other project Runs on a mobile Phase out old system
Different representations • Adjust communication to target audience • support in the organization • translation into actions by the target audience
Different solutions buy – make – outsource – cloud - open source agile – waterfall - … • Conscious descisions • Architecture realizable • traceable
Architecture Reasoning Model Information analist End userbusinessarchitect / -manager requirements engineer T Environment Border System Customer need Environment Border System Application • consistent architecture • balanced decisions • stakeholders aligned Function Approach Design Realization Construction Realization processorganization Technology programmerhardware architect(technical) designer tester Project leaderProgram manager Development manager
Family: applications with the same genes App 2 App 3 App 2 Family members App 1 App 4 App 5 App 1 • Homogeneous landscape manageable • Reuse faster and better Use central component Component 5 App 7 App 6 App 7 App 8 App 9 App 6 Design/realization patterns
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
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
Family architecture: variation Software mechanisms: • Composition • Inheritance • Extension • Configuration • Type instantiation/parametrization • Generation
Tasks of the architect • Analyze environment and system • Define the architecture • Convey the architecture
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
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
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
For architects (that know dutch)