Software Engineering Experience Software Engineering Overview

Reprinted from: https://blog.csdn.net/ytomc/article/details/78638657

Because one of my research fields is software architecture, and the other is empirical software engineering (Emprical Software Engineering). I searched CSDN at random today and found that there is no article introducing experience software engineering. So I opened this article.

What is empirical software engineering?

Empirical Study (Empirical Study) was originally a system in the fields of social sciences, psychology, medicine, and philosophy. As the name suggests, empirical research mainly studies empirical data. These data can be obtained through observation or experience.

In the past two decades, empirical research has gradually played an increasingly important role in software engineering research, that is, empirical software engineering. Investigating the reason, I think the important point is that when we encounter a problem, the knowledge we have is often unable to solve the problem well, so we need to obtain more data ("experience") to help us. For example, we want to explain a phenomenon or we want to know whether a method is really effective in real enterprise development. Another aspect I think is that software engineering cannot be fully automated at this stage, that is, it still requires a lot of human participation. If one day, for example, artificial intelligence can take over software engineering in an all-round way (it feels still far away), even with most automation, the importance of empirical software engineering will be greatly reduced. But until today, we have only seen a very small part of software engineering realize automation. In addition to these two possible reasons, there may be other reasons, but no matter what, we can foresee that empirical software engineering will still occupy a very important position in the future.

Why is empirical research important in software engineering?

This can be said from three aspects. First, the methods in empirical research integrate human behavior, and we know that human participation currently occupies a considerable proportion in software engineering. Second, empirical research provides a scientific basis for software engineering. Because empirical research can help verify theories or methods and explain specific phenomena. For example, to what extent is the UML theory used in industry, and why? For another example, we propose a new architecture archiving method. Is this method effective in real enterprise software development? These can all be studied using empirical methods. Third, empirical research helps people acquire knowledge and promotes knowledge sharing.

What are the empirical research methods?

Different people may have different understandings of empirical research methods. For example, Wohlin et al. in the article "Empirical Research Methods in Software Engineering" believe that it includes experiment (Experiment), case study (Case Study), survey (Survey) and retrospective research (Post-mortem Analysis). For example, in the article "Selecting Empirical Methods for Software Engineering Research", Easterbrook et al. think that it includes experiments, case studies, surveys, and population studies (Ethnographies, the dictionary translates as ethnography, ethnography, ethnography, but I think it uses Population seems to be more appropriate) and Action Research. In the book "Experimentation in Software Engineering", the author also included Systematic Literature Review and Systematic Mapping Study into the category of empirical research methods.

I personally think that the methods mentioned above are all empirical research methods. In the future, I will introduce experiments, case studies, surveys, systematic literature reviews and systematic literature analysis one by one. I personally think that retrospective research overlaps with other studies, such as case studies or surveys, so I won’t introduce them. I have very little contact with population research and behavior research, and it seems that few people do research in this area, especially population research, so these two types will not be covered in the following article.

Guess you like

Origin blog.csdn.net/qq_16488989/article/details/108776968