Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Architecture & Design

Similar presentations


Presentation on theme: "Software Architecture & Design"— Presentation transcript:

1 Software Architecture & Design
6CCS3SAD / 7CCSMDAS Dr Kevin Lano

2 Module Overview

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  5CCS2OSD dealt with these 21/01/2016 (c) Steffen Zschaler

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

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

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

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 Work with and design metamodels and frameworks 21/01/2016 (c) Steffen Zschaler

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

9 Pet Store Example Architecture
JSP EJB .NET web services Pet Store Web Site (Front End) Order Fulfilment Supplier Customer Credit Card Services 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

10 Bad Architecture  Poor Scalability, Maintenance
Customer Petshop website (including order fulfilment) 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

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

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

13 Beyond Boxes and Lines Good architectural designs don’t solve all architectural issues Role of software architect includes Reuse of good architectural patterns Domain-specific meta-modelling Product lines – architectural families Model-driven programming – programming through architectures We will look at some of these, too 21/01/2016 (c) Steffen Zschaler

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

15 Assessment Exam worth 100% of final grade Two parts – easy and hard
First part (40%) tests basic understanding of learning outcomes Second part (60%) assesses deeper level of skills and understanding Level 7 exam different from Level 6, also pass-mark is 50% instead of 40% 21/01/2016 (c) Steffen Zschaler

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

17 Recommended Reading 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. 21/01/2016 (c) Steffen Zschaler

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 + Deployment, Clouds, Containers Week 8: Object-Constraint Language (OCL) Week 9/10: Model-Driven Engineering Week 11: Revision Abstract Architecture Concrete Platforms Physical Architecture Using Architectures


Download ppt "Software Architecture & Design"

Similar presentations


Ads by Google