Essentials of Software Architecture and Design

Essentials of Software Architecture and Design
Slide Note
Embed
Share

Software architecture is paramount in ensuring the success of a project. This discipline involves designing the fundamental structure of a software system, encompassing elements such as main components, middleware decisions, and distribution structure. Effective architectural designs contribute to project management, team coordination, and the consideration of non-functional properties. Neglecting architecture can lead to disaster, as hacked-up structures are challenging to maintain and scale. Software architects play a crucial role in steering projects toward success by employing a structured approach to system design.

  • Software Architecture
  • Design Principles
  • Project Management
  • UML

Uploaded on Mar 16, 2025 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Software Architecture & Design 6CCS3SAD Dr Kevin Lano

  2. Module Overview 2019-20 Syllabus

  3. What is an architecture? Coarse grained view of a system: Main components and component relations Middleware decisions Distribution structure Heterogeneous links to external systems running on different platforms/middleware are often present Structure considered first class artefact Not a fine-grained view of a system process UML use-case or a statechart or pseudocode 4CCS1ISE/5CCS2OSD dealt with these 21/01/2016 (c) Steffen Zschaler 3

  4. Why is it important? How architectural designs help: Aid to project management top-down development components are assigned to different teams Centralized coordination of how everything should fit together Decisions about middleware, platforms, structure Non-functional properties of systems Performance, reliability, security, ... 21/01/2016 (c) Steffen Zschaler 4

  5. Why is it important? (2) Many systems end in disaster because Architecture is given a limited role Architecture becomes a factor too late in development Hacked up structures are difficult to maintain and scale during and after development Hacked up architectures often lead to functional and non-functional problems 21/01/2016 (c) Steffen Zschaler 5

  6. Therefore... Software architects some of the most important people in software projects versus 21/01/2016 (c) Steffen Zschaler 6

  7. Learning Objectives At the end of this module you should be able to Function as a software architect Explain a broad range of issues, techniques and processes involved in architecture design Design medium to large size software systems Use the UML2 effectively to design architectures 21/01/2016 (c) Steffen Zschaler 7

  8. Pet store example Online pet store sells animals to customers A web site for customers Different classes of other users Admins, external businesses (e.g., suppliers), vets Access to specific categories of functionality Interact with application through specific interfaces 21/01/2016 (c) Steffen Zschaler 8

  9. Pet Store Example Architecture JSP EJB .NET web services Pet Store Web Site (Front End) Credit Card Services Order Fulfilment Customer Supplier Other Suppliers Full architecture expands these components to define their structure For example, order fulfilment involves several components encapsulating business logic 21/01/2016 (c) Steffen Zschaler 9

  10. Bad Architecture Poor Scalability, Maintenance Petshop website (including order fulfilment) Customer Database Architecturally unsound All business logic coded up in the website presentation tier Difficult to maintain concerns are all mixed together 21/01/2016 (c) Steffen Zschaler 10

  11. Bad Architecture Poor Performance Data Management (Server) Hotel Reservation Web Site Air Reservation Credit Card Banking Car Reservation Direct connection of client component to multiple server components (several reasons why this style of architecture is flawed) 21/01/2016 (c) Steffen Zschaler 11

  12. Good architecture Better Performance Business Logic Data Management Hotel Reservation Holiday Reservation Session Air Reservation Web Site Credit Card Banking Car Reservation Server 21/01/2016 (c) Steffen Zschaler 12

  13. Beyond Boxes and Lines Good architectural designs don t solve all architectural issues Role of software architect includes Reuse of good architectural patterns Product lines families of applications with a common architecture Model-driven engineering automated construction of architectures We will look at some of these, too 21/01/2016 (c) Steffen Zschaler 13

  14. Course Details Prerequisites Introductory UML, programming experience Lectures Fridays 10am to 12.00; room K4.U12 From 7th February, with 1 hour of tutorial from 12.00 1pm exercises discussions group work Tasks and details on KEATS 21/01/2016 (c) Steffen Zschaler 14

  15. Assessment Exam worth 100% of final grade Two parts (i) direct; (ii) complex First part (Q1, 40%) tests basic understanding of learning outcomes Second part (Q2-Q5, 60%) assesses deeper level of skills and understanding Level 7 exam (only for level 7 resit students) different from Level 6, also pass-mark is 50% instead of 40%. Q1 is 50%, Q2-Q5 50%. 21/01/2016 (c) Steffen Zschaler 15

  16. Questions All material is on KEATS Email: kevin.lano@kcl.ac.uk Office hours, Tuesdays 12.00 2pm, BH N6.01 21/01/2016 (c) Steffen Zschaler 16

  17. Recommended Reading 1. Mary Shaw and David Garlan: Software Architecture: Perspectives on an Emerging Discipline, Prentice Hall, 1996 Bass, Clements, and Kazman: Software Architecture in Practice, Addison-Wesley, 2003 Designing Software Architectures: A Practical Approach, 2016, Humberto Cervantes and Rick Kazman John Cheesman and John Daniels: UML Components, Addison-Wesley, 2000 Warmer and Kleppe: The Object Constraint Language: Getting Your Models Ready for MDA, Addison-Wesley, 2003 Marco Brambilla, Jordi Cabot, Manuel Wimmer: Model-Driven Software Engineering in Practice, Morgan & Claypool, 2012 Kevin Lano, Agile Model-Based Development Using UML- RSDS , CRC Press, 2016. 2. 3. 4. 5. 6. 7. 21/01/2016 (c) Steffen Zschaler 17

  18. Course Roadmap Week 1: Overview, Basic Architecture Concepts Week 2: A Simple Process for Architecture Design Week 3: Compound Components, Basic Styles Week 4: More Styles, Complex Connectors Week 5/6: .NET Enterprise Services Week 7: Enterprise Styles/Patterns Week 8: Java EE Week 9: Mobile Application Architectures Abstract Architecture Concrete Platforms Week 10: Services/Microservices Physical Architecture Week 11: Revision

More Related Content