ICS 52: Introduction to Software Engineering

Slides:



Advertisements
Similar presentations
Chapter 10 Architectural Design.
Advertisements

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Introduction to Software Engineering Lecture 6 André van der Hoek.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
SWE Introduction to Software Engineering
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Establishing the overall structure of a software system
SWE Introduction to Software Engineering
Architectural Design, Distributed Systems Architectures
Course Instructor: Aisha Azeem
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Chapter 6: Architectural Design
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Software Engineering Architectural Design
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
CS451 Lecture 13: Architectural Design Chapter 10
Chap 8. Architectural Design
Architectural Design. Recap Introduction to design Design models Characteristics of good design Design Concepts.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
Architectural Design, Distributed Systems Architectures
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Architectural Design To explain the advantages and disadvantages of different distributed systems architectures To discuss client-server and distributed.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design 10/24/2015ICS 413 – Software Engineering1.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Software Engineering CSC 342/Dr. Ghazy Assassa Chapter 10, Architectural Design “Sommerville +.. “ Slide 1 CSC 342 Semester II: H ( G)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
CS.436 Software Engineering By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 8 Architectural Design Slide 1 1 Chapter 8 Architectural Design.
 Repository Model  Client-Server Model  Layered Model  Modular decomposition styles  Object Models  Function Oriented Pipelining  Control Styles.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Architectural Design.
Chapter 7: Architectural Design Chapter 11 in textbook 1.
CSC480 Software Engineering Lecture 10 September 25, 2002.
©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 1 Architectural Design.
Lecture VIII: Software Architecture
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
BZUPAGES.COMSoftware Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Dr D. Greer, Queens University Belfast ) Software Engineering Chapter 7 Software Architectural Design Learning Outcomes Understand.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Software architecture
Architecture Brief Pepper
CompSci 280 S Introduction to Software Development
IS301 – Software Engineering Dept of Computer Information Systems
SOFTWARE DESIGN AND ARCHITECTURE
Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami
Part 3 Design What does design mean in different fields?
Software Engineering Architectural Design Chapter 6 Dr.Doaa Samy
Software Engineering Architectural Design Chapter 6 Dr.Doaa Samy
CS 425/625 Software Engineering Architectural Design
Princess Nourah bint Abdulrahman University
Software Architecture
Architectural Design.
Chapter 6 – Architectural Design
Chapter 5 Architectural Design.
Chapter 6 – Architectural Design
Presentation transcript:

ICS 52: Introduction to Software Engineering Lecture Notes for Summer Quarter, 2003 Michele Rousseau Topic 6 Partially based on lecture notes written by Sommerville & Doris Tonne. Duplication of course material for any commercial purpose without the written permission of the lecturers is prohibited

Todays Lecture Introduction to Architecture

ICS 52 Life Cycle Requirements phase Verify Design phase Verify Implementation phase Test Testing phase Verify

Design Architectural design Module design High-level partitioning of a software system into separate modules (components) Focus on the interactions among parts (connections) Focus on structural properties (architecture) “How does it all fit together?” Module design Detailed design of a component Focus on the internals of a component Focus on computational properties “How does it work?”

Magician Coder View Requirements (Insert Miracle here) Code

Professional View Requirements Code

Architectural Design Establishing the overall structure of a software system

Topics covered System structuring Control models Modular decomposition Domain-specific architectures

Software architecture The design process => architectural design The output of this design process => software architecture The organization of a system into component subsystems or modules Driven by non-functional requirements Divide and conquer

Architectural Design Buildings Software Elements Elements Types Types Components Interfaces Connections Types Office automation Games Space shuttle control Styles Pipe and filter Layered Implicit invocation Rules and regulations Use of interfaces Methods of change Elements Floors Walls Rooms Types Office building Villa Aircraft hanger Styles Colonial Victorian Southwestern Rules and regulations Electrical Structural

Architectural design When? – At the early stage of the design process Represents the link between specification and design processes Often carried out in parallel with some specification activities It involves identifying major system components and their communications

Advantages of explicit architecture Stakeholder communication Architecture may be used as a focus of discussion by system stakeholders System analysis Means that analysis of whether the system can meet its non-functional requirements is possible Large-scale reuse The architecture may be reusable across a range of systems

Architectural design process System structuring Decompose the system into principal sub-systems identify communications between them Control modelling A model of the control relationships between the different parts of the system Modular decomposition The identified sub-systems are decomposed into modules

Sub-systems and modules A sub-system is a system in its own right operations are independent of the services provided by other sub-systems. A module is a simply system component provides services to other components not a separate system (not independent)

System structuring Decompose system into interacting sub-systems Block diagram presents an overview of the system structure More specific models show… How sub-systems share data How they are distributed How they interface with each other may also be developed

Architectural models One shoe does not fit all! Different architectural models may be produced during the design process One system – Many views Each model presents different perspectives on the architecture

Architectural models Static structural model Dynamic process model major system components Dynamic process model process structure of the system Interface model Defines services through sub-system interfaces Relationships model relationships between subsystems e,.g.data-flow model

Models consist of… Defines a class of architectures determined by: Components (boxes) A specific system is a collection of computational components perform some function at runtime Can correspond to services Connectors Communication between components May have associated semantics Constraints Eg topoligical – no cycles

Architectural styles The architectural model of a system may conform to a generic architectural model or style An awareness of these styles can simplify the problem of defining system architectures Most systems are heterogeneous do not follow a single architectural style

Packing robot control system

Style Has Proven to Help Architectural styles restrict the way in which components can be connected Prescribe patterns of interaction Promote fundamental principles Rigor, separation of concerns, anticipation of change, generality, incrementality Low coupling High cohesion Architectural styles are based on success stories Almost all compilers are build as “pipe-and-filter” Almost all network protocols are build as “layers”

Architecture attributes Performance Localise operations to minimise sub-system communication Security Use a layered architecture with critical assets in inner layers Safety Isolate safety-critical components Availability Include redundant components in the architecture Maintainability Use fine-grain, self-contained components

The Repository Model Sub-systems must exchange data. This may be done in two ways: a central database or repository and may be accessed by all sub-systems Each sub-system maintains its own database and passes data explicitly When large amounts of data are to be shared, the repository model of sharing is most commonly used

Repository Components Connectors Central data Structure Collection of independent Components working on this central repository Connectors Define the interaction between the repository and the independent components

CASE toolset architecture

Repository model characteristics Advantages Efficient way to share large amounts of data Sub-systems need not be concerned with how data is produced Centralised management e.g. backup, security, etc. Sharing model is published as the repository schema Disadvantages Sub-systems must agree on a repository data model. Inevitably a compromise Data evolution is difficult and expensive Different Subsystems may have different policy requirements (backup, recovery, security) Becomes a bottleneck

Client-server architecture Distributed system model which shows how data and processing is distributed across a range of components Set of stand-alone servers which provide specific services such as printing, data management, etc. Set of clients which call on these services Network which allows clients to access servers

Client-Server Components – Client: A client will originate the call to the server Server: serves data to one or more clients Connectors – control flow is independet except for synchronization to manage requests or receive results

Film and picture library

Client-server characteristics Advantages Distribution of data is straightforward Makes effective use of networked systems. Easy to add new servers or upgrade existing servers Disadvantages No shared data model so sub-systems use different data organisation. data interchange may be inefficient Redundant management in each server No central register of names and services - it may be hard to find out what servers and services are available Objects must know the identity of the server

Abstract machine model (layered Model) Used to model the interfacing of sub-systems Organises the system into a set of layers (or abstract machines) each of which provide a set of services Supports the incremental development of sub-systems in different layers. When a layer interface changes, only the adjacent layer is affected However, often difficult to structure systems in this way

Abstract Machine Model(Layered Model) Components Defined by their function within the architecture Each component is a serves as a client and a server. Connectors Each layer communicates with the layer below or above it

Abstract Machine /Layering - structure is client to Cryptography File interface Key management Authentication provides services to Users

Abstract Machine model hierarchical organisation: each layer provides a service to the layer above acts as a client to the layer below layers may either be partially opaque (some interaction allowed between non-adjacent layers) opaque: inner layers are hidden from all except the adjacent outer layer

Abstract Machine Pros/Cons Advantages Design based on increasing levels of abstraction complex problem becomes sequence of incremental steps Supports enhancement changes to one layer affect at most two other layers Supports reuse different interpretations of the same layer can be used interchangeably provided they support the same interfaces Disadvantages Not all systems are easily structured in layers Performance considerations may need close coupling between logically high-level functions and their low-level impls Can be difficult to find right level of abstraction eg. protocols which bridge several OSI layers

Control models Are concerned with the control flow between sub-systems. Distinct from the system decomposition model Centralised control One sub-system has overall responsibility for control and starts and stops other sub-systems Event-based control Each sub-system can respond to externally generated events from other sub-systems or the system’s environment

Centralised control A control sub-system takes responsibility for managing the execution of other sub-systems Call-return model Top-down subroutine model where control starts at the top of a subroutine hierarchy and moves downwards. Applicable to sequential systems Manager model Applicable to concurrent systems. One system component controls the stopping, starting and coordination of other system processes. Can be implemented in sequential systems as a case statement

Call-return model

Real-time system control

Your Tasks Continue working on Requirements Ready chapters 10 & 11