Please enable JavaScript.
Coggle requires JavaScript to display documents.
Chapter 6 (Architecture design : The design process for identifying the…
Chapter 6
Architecture design : The design process for identifying the sub-system making up a system and the framework for sub-system control & communication
-
-
-
Architectural design decisions is a creative process so the process differs depending on the type of the system being developed
Architecture reuse
:star: System in the same domain often have the similar architecture that reflect domain concepts
:star: Application product line are built around a core architecture with variants that satisfy particular customer requirements
:star: The architecture of system may be designed around one or more architectural pattern.
-
Architecture abstraction
-
Architecture in the large concerned with the architecture of complex enterprise systems that include other systems, programs and program components.
-
-
-
Architectural View
4 + 1 View Model
-
A process view = which shows how, at run-time, the
system is composed of interacting
processes.
-
A physical view = which shows the system hardware and
how software components are distributed
across the processors in the system.
4 + 1 view model of software architecture
Architectural Pattern
- Patterns are a means of representing, sharing and
reusing knowledge.
- An architectural pattern is a stylized description of good
design practice, which has been tried and tested in
different environments.
- Patterns should include information about when they are
and when the are not useful.
- Patterns may be represented using tabular and graphical
descriptions.
MVC
Model-View-Controller (MVC) pattern
- Description Separates presentation and interaction from the system data. The system is structured
into three logical components that interact with each other. The Model component
manages the system data and associated operations on that data. The View
component defines and manages how the data is presented to the user. The Controller
component manages user interaction (e.g., key presses, mouse clicks, etc.) and passes
these interactions to the View and the Model.
- When used Used when there are multiple ways to view and interact with data. Also used when
the future requirements for interaction and presentation of data are unknown.
- Advantages Allows the data to change independently of its representation and vice versa.
Supports presentation of the same data in different ways with changes made in one
representation shown in all of them.
- Disadvantages Can involve additional code and code complexity when the data model and
interactions are simple.
Organization of MVC
Web application architecture using the MVC pattern
Layered architecture
- Used to model the interfacing of sub-systems.
- Organises the system into a set of layers (or abstract
machines) each of which provide a set of services.
- Supports the incremental development of sub-systems in
different layers. When a layer interface changes, only the
adjacent layer is affected.
- However, often artificial to structure systems in this way.
A generic layered architecture
- User Interface
- User Interface Management Authentication and Authorization
- Core business Logic / application functionality system utilities.
- System Support ( OS, database)
The architecture of the LIBSYS system
- Web browser Interface
- LYBSIS login | Form and query manager | Print Manager
- Distributed Search | Document Retrieval | Right Manager | Accounting
- Library Index
- DB1 | DB2 | DB3 | DB4 | DB5
-
Compiler components
- A lexical analyzer, which takes input language tokens
and converts them to an internal form.
- A symbol table, which holds information about the names
of entities used in the text that is being translated.
Entities (variables, class names, object names, etc.)
- A syntax analyzer, which checks the syntax of the
language being translated.
- A syntax tree, which is an internal structure representing
the program being compiled.
- A semantic analyzer that uses information from the
syntax tree and the symbol table to check the semantic
correctness of the input language text.
- A code generator that ‘walks’ the syntax tree and
generates abstract machine code.
-
-
-
-
-
-