










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
Software engineering is about the development and application of processes and tools for managing the complexities inherent in creating high quality software systems. It introduces the fundamental software engineering concepts and terminology. This lecture includes: System, Architecture, Repository, Model, Characteristics, Client, Server, Distributed, Centralised, Evolution, Library
Typology: Slides
1 / 18
This page cannot be seen from the preview
Don't miss anything!











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.
Distributed system model which shows how data andprocessing 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.
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 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 outwhat servers and services are available.
Used to model the interfacing of sub-systems. Organises the system into a set of layers (or abstractmachines) each of which provide a set of services. Supports the incremental development of sub-systems indifferent layers. When a layer interface changes, only theadjacent layer is affected. However, often artificial to structure systems in this way.
Styles of decomposing sub-systems into modules. No rigid distinction between system organisationand modular decomposition.
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 not normallybe considered as a separate system.
Structure the system into a set of loosely coupledobjects with well-defined interfaces. Object-oriented decomposition is concerned withidentifying object classes, their attributes andoperations. When implemented, objects are created from theseclasses and some control model used to coordinateobject operations.
Functional transformations process their inputs toproduce outputs. May be referred to as a pipe and filter model (asin UNIX shell). Variants of this approach are very common. Whentransformations are sequential, this is a batchsequential model which is extensively used in dataprocessing systems. Not really suitable for interactive systems.
The software architecture is the fundamental framework forstructuring the system. Architectural design decisions include decisions on theapplication architecture, the distribution and the architecturalstyles to be used. Different architectural models such as a structural model, acontrol model and a decomposition model may be developed. System organisational models include repository models, client-server models and abstract machine models.