The thesis involves an overview and comparison between agile and traditional methodologies for developing quality and reliable software, which have deloped and evolved through time. At the end, there is also a review of a chosen method for developing safety-critical systems in autonomous vehicles, according to ISO 26262 standard, that is a concerning and modern topic today.
In the first part of the thesis, there is an overview of different methods for developing and testing software, which are typical for both methodologies and are most commonly used. There is a description of different possible software development life cycles, because they are of crucial value in providing safe and reliable equipment. Of great importance are also the different approaches in testing, which are described for both traditional and agile methods.
Based on the described approaches and their characteristics, the second part includes a detailed comparison of both methodologies. In the focus of the comparison are the differences in planning, cooperating, communicating and types of software testing. Thesis also describes suitability of both methodologies in different types and purposes of software, and the most suitable one according to the size of the project.
Conclusion of the thesis are, that agile methodologies are most widespread today, as they represent the most approprite approach to development of a product on the fast transforming and developing market. They are most suitable for developing small and time limited projects, as they are more flexible to changes in the requirements and needs of the customer, even in the late stages of development. Besides the lower cost of the projects, they make a big improvement on the productivity with integrating the customer in the process of development and testing of the software.
Even though we commonly state, that we are currently in a time period of agile methodologies, the traditional ones are still irreplaceable. For development of longer and bigger projects, agile methodologies are just not suitable enough, because these types of projects demand detailed planning and analysis of customers requirements. The most important use of traditional methods is for developing the systems, that have a lot of safety-critical functions and would cause critical, or even catastrophic consequences in the case of failure (automotive, military, aeronautic and aerospace industry).
As a part of the last chapters there is a case study of traditional methods, commonly used today for development of safe software in the autonomous vehicles. The ISO 26262 standard, about the safety of electrical and electronic systems in automotive industry, demands the use of a V-model life cycle for the delepoment of such systems and the use of scenarious at various stages of the development. The model is most suitable for its detailed planning as well as good error predicting and preventing measures in the early stages of the development and various phases of software testing.