Question

In: Computer Science

What is software architecture? Why do we need it? Distinguish between architecture and design.

What is software architecture? Why do we need it? Distinguish between architecture and design.

Solutions

Expert Solution

Software architecture refers to the fundamental structures of a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations.

We need architecture because -

  1. Communication among stakeholders. Software architecture represents a common abstraction of a system that most if not all of the system's stakeholders can use as a basis for mutual understanding, negotiation, consensus, and communication.

  2. Early design decisions. Software architecture manifests the earliest design decisions about a system, and these early bindings carry weight far out of proportion to their individual gravity with respect to the system's remaining development, its deployment, and its maintenance life. It is also the earliest point at which design decisions governing the system to be built can be analyzed.

  3. Transferable abstraction of a system. Software architecture constitutes a relatively small, intellectually graspable model for how a system is structured and how its elements work together, and this model is transferable across systems. In particular, it can be applied to other systems exhibiting similar quality attribute and functional requirements and can promote large-scale re-use.

The difference between Software architecture and software design is -

Software Architecture focuses more on the interaction between the externally visible components of the system where as the Design is about how the internal components of the system interact with each other. Software Architecture is more about what we want the system to do and Software Design is about how we want to achieve that. Software Architecture is at a higher level of abstraction than the Software Design. Software Architecture is concerned with issues beyond the data structures and algorithms used in the system.


Related Solutions

What is an n-tier architecture? Why do we need to use n-tier architecture? What is a...
What is an n-tier architecture? Why do we need to use n-tier architecture? What is a service-oriented architecture? Provide an example of a service-oriented architecture. Discuss the different architectural models for Database as a Service
Why it can be a better idea to design the system/software architecture during or before the...
Why it can be a better idea to design the system/software architecture during or before the completion of the requirement specification? Explain.
Why it can be a better idea to design the system/software architecture during or before the...
Why it can be a better idea to design the system/software architecture during or before the completion of the requirement specification? Explain.
Describe the three-schema architecture. Why do we need mappings among schema levels?
Describe the three-schema architecture. Why do we need mappings among schema levels?
Distinguish between income statements and cash flow statements. Why do company need both?
Distinguish between income statements and cash flow statements. Why do company need both?
1. What is the differences between physical and logical address, and why do we need logical...
1. What is the differences between physical and logical address, and why do we need logical addresses? 2.Discuss IPv4 and IPv6 according to it capabilities to address a single device on any network in the world and how it correlates to the Internet of Things (IoT).
Differences between Classical and OO Architecture. in software engineering.
Differences between Classical and OO Architecture. in software engineering.
Intuitively, what is the discount rate, why do we need it, and how do we choose...
Intuitively, what is the discount rate, why do we need it, and how do we choose the appropriate number?
What is the difference between positive and negative reinforcement? Is there a need to distinguish between...
What is the difference between positive and negative reinforcement? Is there a need to distinguish between the two? If so, what is the practicality of distinguishing the two forms of reinforcement? If not, what would be saved by eliminating the distinction?
Subject: Software, Architecture Design and Testing You are to determine the user requirements for a web...
Subject: Software, Architecture Design and Testing You are to determine the user requirements for a web phone-mail product. The primary purpose of this product is to give phone-mail users (e.g., faculty and staff) the ability to access the functionality of the phone-mail system from a web page. In general, the product should enable users of the phone-mail system to do their usual phone-mail activities via a web page. Evaluate these requirements. Do your requirements satisfy the eight criteria: Understandable, Verifiable,...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT