What Are The Characteristics Of Good Software?


2 Answers

Sarah Devine Profile
Sarah Devine answered
The most basic characteristics of good software are good functional quality and good structural quality. These are essential to good software design and contain sub-contents within them. In order to create such a product you must be sure and clear of the purpose of the software.

  • Firstly, complexity must be minimized as much as possible from the software design. This makes it much easier and quicker to develop as well as maintain and upgrade. To further ensure this, using loose coupling is required. This means that the codes are not dependant on others to run and/or work. By removing any serious complexity also allows the software to be easily tested.
  • Portability will allow your product to be used elsewhere and by other environments. The best way to allow this is to standardize your codes so that other programmers and developers can use it without editing it thus making it more complex. Having and understanding of the programming platforms makes this easier to develop and design the codes to be flexible.
  • Security is a top priority in software design. This ensures safety against malware and unauthorized access. Guaranteeing security will prevent damage in the design process and will make upgrading, editing and maintaining the software easier.
  • Conciseness is a crucial element in software designing. This is highly important when taking into consideration memory capacity to prevent unused and waste information. Extensibility, such as plug-ins, fits into this section as it means you can add or remove elements and parts to the program.
Other important things to remember in software design are:

  • Reliability
  • Efficiency
  • Usability
  • Consistency
  • Completeness
David  Johnson Profile
David Johnson answered

There are some good characteristics of a good software:-

1. Code is Design and Design is code - So, the saying goes. A good code automatically respects and highlights all the decisions regarding its decision. You won't see the symptoms of a "broken window" concept.

2. Separation of Concerns - A good software has the right amount of separation of concerns and modularity. Thus, you might find the code encapsulated in the right logical tiers/modules/layers. This makes it extremely maintainable.

3. Follows right conventions - A good software follows all the right conventions religiously. You wouldn't find much exceptions to the conventions laid out to build the software

4. Unit Test Suite - A good software is the one that is testable. One would find good amount of unit test cases so that it gives the power to the team to evolve the software over a period of time. It would almost have 100% code coverage

5. Good Exception Handling and Logging - A good software wouldn't let it burn itself in flames in exceptional scenarios. It would handle them gracefully and log it so that they can be easily solved later.

Answer Question