Showing posts with label Software Development. Show all posts
Showing posts with label Software Development. Show all posts

Thursday, January 26, 2012

USMT - Windows tool at its best

--- In the process of compiling the document. Will Post soon

Monday, February 14, 2011

Web Development guide

To learn about the various Web development and scripting languages, the following links would be really helpful.

http://www.w3schools.com/





I will update them as frequently as i can. Users are also welcome to suggest some good sites.

Sunday, September 19, 2010

Are the terms "Software Architecture" and "Software Design" the same??

According to Bass and Clemens,Software Architecture is “the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them ”

Architectural Styles/patterns/Design:
The description of element and relation types with constraints on how they may be used. Pattern can be set of constraints on the architecture -on the element types- and their pattern of interaction-and these pattern describe a set or family of architectures that satisfy them. Pattern exhibit quality attributes.

Definition Of Architecture by Garlan and Mary Shaw:
“Software architecture goes beyond the algorithms and data structures of the computation; designing and specifying the overall system structure emerges as a new kind of problem. Structural issues include gross organisation and global control structure; protocols for communication,
synchronisation, and data access; assignment of functionality to design elements; physical distribution; composition of design elements; scaling and performance; and selection among design alternatives.”

Definition of Architecture by Stephen Mellor:
“The abstract organisation of software is called the software architecture. It proclaims and enforces system-wide rules for the organisation of data, control, structures and time.”

The Intension/Locality Thesis

To elucidate the relationship between architecture, design, and implementation,we distinguish at least two separate interpretations for abstraction in our context:

  1. Intensional (vs. extensional) design specifications are “abstract” in the sense that they can be formally characterised by the use of logic variables that range over an unbounded domain. For example, a layered architectural pattern does not restrict the architect to a specific number of layers; it applies equally well to 2 layers or 12 layers.

  2. Non-local (vs. local) specifications are “abstract” in the sense that they apply to all parts of the system (as opposed to being limited to some part thereof).
Both of these interpretations contribute to the distinction among architecture, design, and implementation, summarized as the “intension/locality thesis”:

  1. Architectural specifications are intensional and non-local

  2. Design specifications are intensional but local

  3. Implementation specifications are both extensional and local
 The Intension/Locality Thesis
Architecture
intensional
Non-local
Design
intensional
Local
Implementation
Extensional
Local

My notion of the difference between Software Architecture and Software Design:
After reading and analysing the definitions of software Architecture and Design provided by many of the stalwarts in the software Engineering Industry, I was very confused between the Architecture and Design.. There is clearly no clear cut demarcation between the design and architecture. Initially I concluded Architecture and Design are the same . But I never heard any one saying architect a system. I have heard people saying Design a system.

 I was somewhat convinced with the “Intension/Locality Thesis” of Kazman described above Then I realised that there is a very thin line of demarcation between architecture and design. There is no quantitative means by which we can differentiate architecture and design. There is only a qualitative and abstract way of defining the difference between them.

Architecture is at the highest level of abstraction of a system. Design is a lower degree of abstraction compared to the architecture. When a design attains a stage where no longer it can be meaningfully abstracted further, it becomes an Architecture.

The architecture can be broken down into design. While designing a system 'n' designs can be developed. The commonalities in the 'n' designs when put together forms the architecture.