Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
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
1 / 89
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11
©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