At times I was involved in discussions where people of top brass where also present. I was having (and still have) little experience compared to them. I used to hear lots of terms which clearly and smoothly surpassed my head. I was at times amazed by listening about friction, surface area and all in software design talks.
I started preparing for architect certification and came across a book which said that there are real terms like these. Each term define a certain property of software design. These are known as architecture terminologies. I’ll explain few of them here.
Abstraction
Abstraction is the process of creating unique entities which can be used in a repetitive way. Generally abstraction is used in discussions where boxes are made with lines connecting them. Each box is a entity which symbolizes something.
The breakdown of a software application in boxes is done from the point of view of the person who creates the architecture. The abstraction depends on the understanding and thinking of the architect about the software application.
Surface Area
Surface area is the way in which different components interact with each other. More the surface area, more will be the way in which changes in one component will affect the changes in other component.
Brittleness
Brittleness is the impact of change of code in one part of application on other part of the application.
Boundaries
Boundaries are the areas where two different components interact.
Friction
Friction is the amount of interaction which occurs between two components. This determines the effect of one component due to changes in another component.
Capabilities
Capabilities are system properties like scalability, manageability, performance, availability , security etc. The capabilities are described below.
Availability
This the total amount of time in which the system is available. If the system is available for 24*7 then its called total availability.
Reliability
This is the measure of the consistency of the application. This is the measure of the ability of the application to perform the required function for the specified amount of time under stated conditions.
Manageability
Manageability is the set of services which say whether a application can be continuously integrated, and remain correct. It also considers server management.
Flexibility
The ability to address architectural and hardware configuration changes without a great deal of impact to the underlying system. Flexibility is the ability of the application to cope with changes.
Performance
The ability to carry out functionality in a time frame that meets specified goals. The response time of the application dictates its performance. The key is to minimize expensive calls. A target response time is set and the application tries to meet that.
Capacity
Capacity is the measure of the number of executions that a application can handle. This measurement helps in scaling up the application in case of increase in usage.
Scalability
The ability to support the required availability and performance as transactional load increases. There are two types of scalabilities:
a) Horizontal scalability : It can be increased by increasing the memory and CPU.
b) Vertical scalability : Its increased by increasing the number of servers.
Extensibility
It is the careful modeling of the system for continued addition of functionality with ease.
Validity
Validity, or testability, is the ability to determine what the expected results should be.
Reusability
The ability to use a component in more than one context without changing its internals.
Security
The ability to ensure that information is not accessed and modified unless done so in accordance with the enterprise policy.





7 Comments
What is the book you are referring to?
Architect Certification by Paul Allen
So, Surface area should be more or less?
The surface area should be less, so that its easy to resuse and manage. Lesser the surface area, less is the coupling.
Horizontal and vertical scalability concepts are mixed, aren’t they?
Not to a large extent, I’ll say they overlap, and the overlapping area is not that big.
Great article submitted here it contains a lot of information that we need i am very pleased to the person who post this article i hav read this article and i am very impressed as i got some knowldge over here which i dont know earlier before reading …….thanx buddy keep helping to people like me ..
One Trackback
[...] Architectural Terminology – An Introduction May 2010 7 comments 4 [...]