software engineering general architecture. architectural components: program organisation overview...

14
Software Engineering General architecture

Upload: bryce-allison

Post on 30-Dec-2015

214 views

Category:

Documents


2 download

TRANSCRIPT

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

Software Engineering

General architecture

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

General architecture

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

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

General architecture

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

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

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

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

General architecture

Business rules

Using the terminology of General Systems Theory, environmental rules that affect the behaviour of the system

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

General architecture

User interface design

Interface paradigm(s)

Architecture should be such that interface could be replaced without affecting other parts of the system

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

General architecture

Resource management

Database connections Threads Handles Memory

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

General architecture

Security

Manipulation of buffers Rules for handling untrusted data Encryption Level of detail contained in error messages Protection of data in memory

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

General architecture

Performance issues Performance goals Performance bottlenecks

Scalability

Interoperability

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

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.)

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

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?

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

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?

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

General architecture

“Buy” or build?

Reuse decisions

Architecture recurring revision strategy

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

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!