What is considered quality software? Many people have a set quality attributes that systems must exhibit such as efficiency, reliability, security, maintainability, adaptability, sustainability, modularity, portability. In complex system it is nearly impossible to achieve quality attribute in isolation because meeting one attribute might have negative impact on the others. The importance of each quality attribute depends on the system and the author emphasizes the need of considering quality attributes at the architecture level and throughout the design, development and deployment of the system.
The must important attributes are usability, Modifiability and performance.
Usability refers to the user friendliness of the system. What does user friendly mean? Different users have different taste and different levels of computer and learning skills. So it is difficult to understand usability. We can try to understand how usability is defined for the product and the people who will use it. But there will always be unsatisfied users.
The rest of the qualities in the book are described in details with various scenarios that ease understanding.
From my own practical experience, business qualities are increasingly becoming important. Cost and schedule are the driving forces of many architecture decisions. Companies keep trying to build better products with less cost and aggressive schedule. So Attributes like “time to market” and “cost and benefit” presented as generalities in the book are actually very important attributes in many organizations.
Thursday, August 27, 2009
What is Architecture?
A good architecture is more than just a high level design of a system. It is one that facilitates the job of the low level designers and the developers by providing a set of design rules that aids reduce complexity and guides the development and verification of the system. However, traditional architectures are different from software architecture. The author makes the point that contemporary architects may have a set of characteristics that a system must satisfy, while it is nearly impossible to guaranty all these rules in complex software systems because improving one aspect might impact the other. Software architects constantly play with trade-offs and the characteristics that are important depend on the system that is being built.
Architecture is commonly considered as the structure of a system. The author supports that idea and presents the advantage of looking at a system as a set of interacting components. This approach is intended to deal with the complexity of systems because it allows the architect to understand and satisfy a particular concern before moving to the next one. The author presents beautiful architectures as the ones with well defined use structures to enable iterative and incremental construction, well-defined testable modules and interfaces between them. I found it interesting because iterative and incremental development is an essential part of the agile software development process. Does this imply that beautiful architectures are the ones that facilitate the use of an agile development process?
Architecture is commonly considered as the structure of a system. The author supports that idea and presents the advantage of looking at a system as a set of interacting components. This approach is intended to deal with the complexity of systems because it allows the architect to understand and satisfy a particular concern before moving to the next one. The author presents beautiful architectures as the ones with well defined use structures to enable iterative and incremental construction, well-defined testable modules and interfaces between them. I found it interesting because iterative and incremental development is an essential part of the agile software development process. Does this imply that beautiful architectures are the ones that facilitate the use of an agile development process?
Wednesday, August 26, 2009
PatG Blog for CS527 at UIUC
This blog has been created as a part of Cs527 (Advanced Topics in Software Engineering), at UIUC.
Subscribe to:
Posts (Atom)