From the first appearance of software until the last fifty years, it has been constantly developed so today there are programs, applications, and web systems that can execute almost every task the user sets before them. Poor quality software is considered to be poor quality because users will always be based on finding that software that will ensure ease of use, on which will be easy to handle, and which is above all high quality. It is for this reason that they are evolving the notion of its evaluation. By valuing, through accompanying methods, the manufacturer seeks possible problems and finds solutions to them to improve the quality of your own software. There are a number of different methods by which software can be evaluated and selected.
In the early 1980s, stronger demand for characterization began to emerge for the first time software that could be measured. In this way, it could be evaluated and compared with certain software, quantify its attributes, but also the process of its development and operation – life software cycle. With such a measurement system, it would be possible to influence its development. The development of an appropriate software measurement system and its development is essentially a prerequisite for the development of a cheap and reliable one within precisely defined deadlines.
The quality is determined by the quality of the development process. It follows that a product can be improved by improving the process, including organization, management, and development. Software quality is especially important where it is used to manage and monitor critical systems, i.e. where software errors or software downtime can cause loss of life or great material loss (military, aerospace, space exploration, nuclear power plants).
In our daily work with the computer, we come into contact with various software. Those are word processors, spreadsheet programs, database management programs data, own applications, etc. We can say that a computer program is of good quality if it is error-free.
However, which means to the end-user that the program is error-free if it is impractical for use, difficult to understand, etc. Is it quality software too? So, we come to the evaluation of the software which is very important. Why? Each software has its own specifications, and they serve us as evaluation criteria. These are some of the main criteria that are considered in the assessment: correctness, maintainability, reliability, efficiency, integrity, usability, testability, flexibility, portability, reusability, interoperability, etc. Many think that this is a difficult task that takes a lot of time, but, according to Doakio, it can be done very fast and easily.
The main motivation for evaluating the quality of software products would be to enable the use of products where the user will not come across problems. Therefore, developers should consider all aspects of the life cycle software product or web system and conduct evaluations from the very beginnings of these products so that the end result is usable and thus the user is satisfied.
Given that there is a direct link between quality software and project management in information technologies, it is necessary to look deeper into the problems of the development process itself software, in which low-quality software is created. The notion of quality that appears in the widely accepted classical theory also appears in the works of the International Organization for standardization, which is, perhaps most of all international institutions, contributed to the standardization of this concept and management process quality.
The process of software quality evaluation begins with the definition of quality requirements, ie the stated and implied requirements from the relevant technical documentation and the ISO standards themselves, on the basis of which the requirements specification is created.
Maintenance is based on a modification process through which the software seeks to upgrade and adapts to the needs of users over a longer period of time. When it comes to modern software maintenance, it is almost completely automated since it happens very often regardless of the will of the user. For example, system and application software updates are automatically performed on mobile devices and can be customized to depend on the connection. to the network or only when a Wi-Fi signal is available. The maintenance process itself the software contains activities that include a maintenance plan that includes the preparation of the software, problem identification, and product configuration management knowledge. Hence the process problem analysis includes validation, testing and finding solutions, and ultimately obtaining all necessary support to submit a request for change.
CMM (Capability Maturity Model) or a model for assessing the maturity of the software development process serves to identify problems with parts of the software and activities in the organization that may be to improve. While working on the software developers notice that the quality of the development process strongly and positively affects the quality of software, and it is important to identify all key parts of software for further improvement and quality assurance. Thus, CMM provides software organizations guidelines on how to control software development processes. He was made to assists software organizations in choosing the right strategies to improve the process so it determines the current maturity of the process and identifies the most critical software quality issues.
The program will only “work from the first” by chance. This statement will probably be made agree with all developers. Also, it is likely to state that there is no perfect software – error-free software. For software we can say that it is correct if it does not do what the user does expects, that is, when there is an error in the program that causes inaccurate results on basically correct input data. These errors can vary from seemingly accurate results until the ‘fall’ of the program (abnormal end of execution).
It should be noted that, especially in recent years, a lot of effort has been put into it improving existing metrics that, although they contain much of the objective, require calibration (practical determination) of certain constants, the data on the basis on which the metrics are checked. CASE has a great impact on the productivity of programmers and software designers (Computer-Aided System/Software Engineering) tools and so-called. application generators, which allow easy specification of requirements and obtaining (almost) finished applications.