what is software architecture and why it is important
play

What is Software Architecture and Why It is important March 2014 - PowerPoint PPT Presentation

1 1 What is Software Architecture and Why It is important March 2014 Ying Shen SSE, Tongji University Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering 2 2


  1. 1 1 What is Software Architecture and Why It is important March 2014 Ying Shen SSE, Tongji University Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering

  2. 2 2 Lecture objectives This lecture will • introduce and define the term “software architecture” • explain the value that a software architecture brings to a development project • describe how software architecture is composed of several different software structures • give examples of several commonly used architectural structures and show their uses Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering

  3. 3 3 Architecting a dog house Can be built by one person Requires Minimal modeling Simple process Simple tools Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering

  4. 4 4 Architecting a house Built most efficiently and timely by a team Requires Modeling Well-defined process Power tools Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering

  5. 5 5 Why we need software architecture Why not just start coding and let things turn out somehow. Software is increasingly complex. Software is evolving, reused in new contexts. The promise of off-the-shelf components with easy reuse is just partial. Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering

  6. 6 6 Why we need software architecture Sometimes we need to adapt, wrap or even modify these off-the-shelf components. Too many components in software products, small and large. Large number of connections/dependencies between these components. How to make sure that SW development reaches the intended goals of a project. Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering

  7. 7 7 Why we need software architecture Software is complex: • >10KLOC (KLOC = 1000 lines of code): internal projects, tools, hobby projects, minimum viable products. • >100KLOC: small products, mobile apps. • >1MLOC: operating systems, native frameworks, typical desktop software applications, server side applications, typical everyday product. Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering

  8. 8 8 Why we need software architecture How to understand software that has >1MLOC? How to reach >1MLOC and still understand software? How to reach >1MLOC without excessive complexity? How a >1MLOC software evolves into the next version? How a >1MLOC software or its components are reused (pivoted)? Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering

  9. 9 9 Dimensions of software complexity Higher technical complexity - Embedded, real-time, distributed, fault-tolerant - Custom, unprecedented, architecture reengineering - High performance An average software project: - 5-10 people Defense - 10-15 month duration Telecom Weapon System - 3-5 external interfaces Switch National Air Traffic - Some unknowns & risks Commercial Control System Embedded Compiler Automotive Large-Scale Software Lower Higher CASE Tool Organization/Entity Simulation management management complexity complexity Small Scientific Simulation - Small scale - Large scale - Informal IS Application - Contractual Defense Enterprise IS Distributed Objects - Single stakeholder - Many stake holders MIS System (Family of IS (Order Entry) - “Products” - “Projects” Applications) IS Application GUI/RDB (Order Entry) Business Spreadsheet Lower technical complexity - Mostly 4GL, or component-based - Application reengineering Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering - Interactive performance

  10. 10 10 Architectural description has a natural position in system design and implementation Elements of a complete software system User Model User view of problem Requirement Software view of problem Modules and connections Architecture Code Algorithms & data structures Executable Data layouts, memory maps Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering

  11. 11 11 Factors influencing architectures Architectures are influenced by • stakeholders of a system • technical and organizational factors • architect’s background Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering

  12. 12 12 Customers Customers are the people who pay for system development. Customer concerns include • cost of the system • usability and lifetime of the system • interoperability with other systems • time to market • platform portability Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering

  13. 13 13 End users End users are the people who use the system. They include • “regular” users • system administrators • members of the development organization End users are concerned with • ease of use • availability of function Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering

  14. 14 14 Other stakeholders Development organization Marketers Maintenance organization Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering

  15. 15 15 Stakeholders of a system Development Maintenance organization’s Marketing End user Customer organization management stakeholder stakeholder stakeholder stakeholder stakeholder Behavior, Low cost, Modifiability! Neat features, Low cost, timely performance, keeping people short time to market, delivery, not changed security, employed, leveraging low cost, parity with very often! reliability! existing corporate competing products! assets! Architect Ohhhhh... Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering

  16. 16 16 Development organization concerns Immediate business issues • amortizing the infrastructure • keeping cost of installation low • utilizing personnel Long-term business issues • investing in an infrastructure to reach strategic goals • investing in personnel Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering

  17. 17 17 Development organization concerns Organizational structure issues • furthering vested interests, e.g., o maintaining an existing database organization o supporting specialized expertise • maintaining the standard method of doing business Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering

  18. 18 18 Technical environment Current trends: today’s information system will likely employ a • database management system • Web browser for delivery and distribution across platforms Available technology: decisions on using a centralized or decentralized system depend on processor cost and communication speed; both are changing quantities. Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering

  19. 19 19 Architect’s background Architects develop their mindset from their past experiences. • Prior good experiences will lead to replication of prior designs. • Prior bad experiences will be avoided in the new design. Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering

  20. 20 20 Summary: influences on the architect Architect’s influences Stakeholders Requirements Architect(s) Development Architecture organization Technical System environment Architect’s experience Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering

  21. 21 21 Factors influenced by architectures Structure of the development organization Enterprise goals of the development organization Customer requirements Architect’s experience Technical environment The architecture itself Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering

  22. 22 22 Architecture influences the development organization structure Short term: Work units are organized around architectural units for a particular system under construction. Long term: When company constructs collection of similar systems, organizational units reflect common components (e.g., operating system unit or database unit). Software Architecture, Spring 2014 Software Architecture, Spring 2014 School of Software Engineering School of Software Engineering

Recommend


More recommend