Software Engineering-1 (CS504)
Assignment # 3
Question No. 1
1) What makes a “GOOD” software architecture” [Marks 8]
The key architectural virtues are
Utility: must deliver either business value or developer productivity
Strength: reliable, secure and resilient to change
Beauty: easy to understand and communicate and clean design.
Emerging and evolutionary architecture is a core for a successful agile software system.
Effective architecture provides stable foundation and integrity for the growing software system, enabling desired system qualities for the business solutions. Ensures seamless and consistent integration well defined interfaces and interaction between subsystems, external systems and operational environment. Supports emerging abstractions, key system elements and frameworks for conceptual integrity, efficiency and reuse.
2) Are architectures influenced by background and experience of software architects? Explain. [Marks 8]
Yes the architectures are influenced by the background and experience of the software architects because of the qualities and the performances of the architects and encourage of work and to gaining the requirements. As architect is a technical leader he/she understands the development process he has also knowledge of business domain and the knowledge of the technology. He has the designing and the programming skills and he/she is a good communicator .the architect has aware of the organizational policies and he is a negotiator. Due to the above mentioned qualities of the architect the architectures are very deeply and truly influenced by the background and the experiences of the software architects.
Architecture has some of the important issues as well like the user experience, negotiation and bargaining, like a technology, form and the communication, artful and agile, a creation of the better world. So it is clear that the architectures are rely influenced by background and experience of the software architects.
Question No. 2
“N-tier application architecture provides a model for developers to create a flexible and reusable application”, Comment (5 to 10 lines). [Marks 4]
N-tier architecture stems from the struggle o find a middle ground between the fat-client and the thin-client architecture .in this case the idea is to enhance the scalability and performances by distributing both the data and the application using multiple server machines. This could involve the different types of the servers such as application server, web server and DB server. Three-tier architecture which is explained below is a specialized form of the architecture.
N-tier architecture generalizes the concepts of 3-tier architectures. In the case the system architecture may have more than 3 layers. That's, in n-tier architecture, in order to increase performance, we may distribute the application over different servers by putting different subsystems on different servers.