Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Software Architectures-Introduction to Software Engineering-Lecture 07 Slides-Computer Science, Slides of Introduction to Software Engineering

Software Architectures, Sommerville, Architectural Design, System Structuring, Control Models, Modular Decomposition, Domain-specific Architectures, Explicit Architecture, Architectural Design Process, Sub-systems and Modules, Architectural Models, Repository Model, Client-server Architecture, Control Models, Centralised Control, Manish Parashar, Lecture Slides, Computer Networks, Computer Science, State University of New Jersey, USA.

Typology: Slides

2011/2012

Uploaded on 03/11/2012

steven005
steven005 🇺🇸

4.3

(3)

22 documents

1 / 89

Toggle sidebar

Related documents


Partial preview of the text

Download Software Architectures-Introduction to Software Engineering-Lecture 07 Slides-Computer Science and more Slides Introduction to Software Engineering in PDF only on Docsity!

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11

ECE 452- Introduction to Software

Engineering

Lecture 7: Software

Architectures (I. Sommerville)

Manish Parashar

[email protected]

Department of Electrical & Computer

Engineering

Rutgers University

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Architectural Design ● Establishing the overallstructure of a software system

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Objectives ● To introduce architectural design and to discussits importance ● To explain why multiple models are required todocument a software architecture ● To describe types of architectural model that maybe used ● To discuss how domain-specific reference modelsmay be used as a basis for product-lines and tocompare software architectures

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Topics covered ● System structuring ● Control models ● Modular decomposition ● Domain-specific architectures

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Software architecture ● The design process for identifying the sub-systems making up a system and the frameworkfor sub-system control and communication is architectural design ● The output of this design process is a descriptionof the software architecture

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Architectural design ● An early stage of the system design process ● Represents the link between specification anddesign processes ● Often carried out in parallel with somespecification activities ● It involves identifying major system componentsand their communications

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Advantages of explicit architecture ● Stakeholder communication

Architecture may be used as a focus of discussion by systemstakeholders ● 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

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Architectural design process ● System structuring

The system is decomposed into several principal sub-systemsand communications between these sub-systems are identified ● Control modelling - A model of the control relationships between the different partsof the system is established ● Modular decomposition - The identified sub-systems are decomposed into modules

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Sub-systems and modules ● A sub-system is a system in its own right whoseoperation is independent of the services providedby other sub-systems. ● A module is a system component that providesservices to other components but would notnormally be considered as a separate system

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Architectural models ● Different architectural models may be producedduring the design process ● Each model presents different perspectives on thearchitecture

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Architectural models ● Static structural model that shows the majorsystem components ● Dynamic process model that shows the processstructure of the system ● Interface model that defines sub-system interfaces ● Relationships model such as a data-flow model

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Architectural styles ● The architectural model of a system may conformto a generic architectural model or style ● An awareness of these styles can simplify theproblem of defining system architectures ● However, most large systems are heterogeneousand do not follow a single architectural style

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 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

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 System structuring ● Concerned with decomposing the system intointeracting sub-systems ● The architectural design is normally expressed asa block diagram presenting an overview of thesystem structure ● More specific models showing how sub-systemsshare data, are distributed and interface with eachother may also be developed

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Packing robot control system Visionsystem Object identification system Arm controller Grippercontroller Packagingselection system Packingsystem Conveyorcontroller

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 The repository model ● Sub-systems must exchange data. This may bedone in two ways:

Shared data is held in a central database or repository and maybe accessed by all sub-systems - Each sub-system maintains its own database and passes dataexplicitly to other sub-systems ● When large amounts of data are to be shared, therepository model of sharing is most commonlyused

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 CASE toolset architecture Project repository Design translator Program editor Designeditor Code generator Designanalyser Report generator

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Repository model characteristics ● Advantages

Efficient way to share large amounts of data - Sub-systems need not be concerned with how data is producedCentralised 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 acompromise - Data evolution is difficult and expensive - No scope for specific management policies - Difficult to distribute efficiently

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Client-server architecture ● Distributed system model which shows how dataand processing is distributed across a range ofcomponents ● Set of stand-alone servers which provide specificservices such as printing, data management, etc. ● Set of clients which call on these services ● Network which allows clients to access servers

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Film and picture library Catalogue server Catalogue Videoserver Film clip files Pictureserver Digitized photographs Hypertext server Hypertext web Client 1 Client 2 Client 3 Client 4 Wide-bandwidth network

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Client-server characteristics ● Advantages

Distribution of data is straightforward - Makes effective use of networked systems. May require cheaperhardware - Easy to add new servers or upgrade existing servers ● Disadvantages - No shared data model so sub-systems use different dataorganisation. data interchange may be inefficient - Redundant management in each server - No central register of names and services - it may be hard to findout what servers and services are available

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Abstract machine model ● Used to model the interfacing of sub-systems ● Organises the system into a set of layers (orabstract machines) each of which provide a set ofservices ● Supports the incremental development of sub-systems in different layers. When a layer interfacechanges, only the adjacent layer is affected ● However, often difficult to structure systems inthis way

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Version management system Operating system Database system Version managementObject management

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Control models ● Are concerned with the control flow between sub-systems. Distinct from the system decompositionmodel ● Centralised control

One sub-system has overall responsibility for control and startsand stops other sub-systems ● Event-based control - Each sub-system can respond to externally generated eventsfrom other sub-systems or the system’s environment

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Centralised control ● A control sub-system takes responsibility formanaging the execution of other sub-systems ● Call-return model

Top-down subroutine model where control starts at the top of asubroutine hierarchy and moves downwards. Applicable tosequential systems ● Manager model - Applicable to concurrent systems. One system componentcontrols the stopping, starting and coordination of other systemprocesses. Can be implemented in sequential systems as a casestatement