Design Heuristics Examples
Heuristics are powerful tools in designing software and they provide a more subjective view of software quality. Heuristics may occur as individual pieces of developers’ or as a suite covering multiple aspects of software development. Software development is a complex process. It is very difficult to define or measure software qualities and quantities and to determine a valid measurement metric. Heuristics plays an important role in software development and are widely used to provide a link between design principles and software measurement. They offer insightful information based upon experience that is known to work in practice. Heuristics are not meant to be exact; in fact, they derive their benefits from this imprecision by providing an informal guide to good and bad practices.
Design Heuristics Examples
Software designers aim to satisfy the expectations of stakeholders by meeting functional and non-functional requirements. These are some of the heuristics that software designers find useful, they help to write better code:
- All data should be hidden within its class.
- Users of a class must be dependent on its public interface, but a class should not be dependent on its users
- Minimize the number of messages in the protocol of a class
- Implement a minimal public interface that all classes understand
- Do not put implementation details such as common-code private functions into the public interface of a class
- Do not clutter the public interface of a class with things that users of that class are not able to use or are not interested in using
- A class should only use operations in the public interface of another class or has nothing to do with that class
- A class should capture one and only one key abstraction
- Keep related data and behavior in one place
- Spin off non related information into another class
- Be sure the abstractions that you model are classes and not simply the roles objects play
Heuristics provide a link between sets of abstract design principles and quantitative software metrics. They are an important part of software design and are becoming more widely used. Effective visualization of heuristics includes quantitative, qualitative and ambient aspects.
I hope this short introduction to design heuristics was useful for you, to know more about it, contact us for a personalized course.