Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering General architecture. Architectural components:  Program organisation overview Major building blocks in a system Definition of each.

Similar presentations


Presentation on theme: "Software Engineering General architecture. Architectural components:  Program organisation overview Major building blocks in a system Definition of each."— Presentation transcript:

1 Software Engineering General architecture

2 Architectural components:  Program organisation overview Major building blocks in a system Definition of each building block’s area of responsibility  A building block should know as little as possible about other building blocks’ areas of responsibility  Communication rules for each building block should be well defined

3 General architecture  Major classes Responsibilities of each major class Interaction with other classes Class hierarchies State transitions Object persistence Organisation of classes in subsystems

4 General architecture  Data design Major files and table designs to be used Access policies (sequential, direct, etc.) Storage policies High-level organisation and contents of data and databases Typically, data should be accessed directly by only one class or subsystem

5 General architecture  Business rules Using the terminology of General Systems Theory, environmental rules that affect the behaviour of the system

6 General architecture  User interface design Interface paradigm(s) Architecture should be such that interface could be replaced without affecting other parts of the system

7 General architecture  Resource management Database connections Threads Handles Memory

8 General architecture  Security Manipulation of buffers Rules for handling untrusted data Encryption Level of detail contained in error messages Protection of data in memory

9 General architecture  Performance issues Performance goals Performance bottlenecks  Scalability  Interoperability

10 General architecture  Internationalisation / localisation Obs: issue of growing importance nowadays  Input / Output I/O policy (look ahead, look behind, just in time) I/O error detection level (field, record, stream, file, etc.)

11 General architecture  Error processing Corrective versus detective Active versus passive Error propagation policy Conventions for handling error messages Exception handling policy  At what levels are errors handled?  What is the level of responsibility of each class for validating input data? Tailor made error processing or use development environment pre-fabricated solutions?

12 General architecture  Fault tolerance Expected fault tolerance Fault tolerance strategies  Architectural feasibility Is proposed design viable, considering available resources and proposed requirements?  Overengineering How to ensure system level robustness?

13 General architecture  “Buy” or build?  Reuse decisions  Architecture recurring revision strategy

14 General architecture  General architecture quality How to preserve conceptual integrity Clearly stated architecture’s objectives Motivations for all major decisions Machine- and language-independent architecture Multiple views NO COMPROMISING!


Download ppt "Software Engineering General architecture. Architectural components:  Program organisation overview Major building blocks in a system Definition of each."

Similar presentations


Ads by Google