Topics of Software Engineering Group
Requirements Engineering
If software is developed for the wrong requirements, the project is likely to fail. Many studies have shown that the identification and implementation of the right requirements are crucial for the success of a software project.
At the Software Engineering group, well-known techniques for the elicitation, analysis and validation of requirements are therefore taught and further developed. We also work on new approaches in basic research projects.
Vision videos have been proposed for several years. In this technique, an attempt is made to shape a common understanding among all stakeholders. The stakeholders are involved in the particularly delicate and early uncertain phases of a project. Instead of lengthy, elaborate text specifications, the basic idea and value of new software is presented as a short video. This is not about details, and it is pretended that the intended solution already exists. This helps to find inconsistencies and communicate about requirements between users, stakeholders and developers.
See: DFG Projects ViViReq and ViViUse
Agile and hybrid development methods
Agile development methods have been used since the turn of the millennium to make software projects faster, more flexible and more useful for customers. They require a fundamental rethink and a new perspective. The transformation to agile methods is therefore not easy and requires special attention. Established traditional methods are often mixed with agile approaches. We investigate these hybrid approaches in cooperation with industrial companies.
Techniques such as SCRUM and XP (eXtreme Programming) are being introduced into companies. Often it is necessary to change existing company cultures; in other cases, agile techniques are adapted to maintain qualities such as comprehensibility and provability of quality checks - although this is not intended with pure agile activities.
The Software Engineering group analyses in companies which processes and information flows occur in projects. They are compared with the expected information flows in agile techniques and thus provide indications of possible improvements. In large-scale studies (e.g. Helena, in which the Software Engineering group is involved), it is examined whether the actual implementation of a technique corresponds to the expectations.
Agile methods have many points of contact with the other research topics of the Software Engineering group, because on the one hand they are strongly oriented towards customer benefits (requirements). Good agile projects use feedback and reflection to constantly improve the projects. This points to communication and teamwork.
See: Project GloSE (Global Software Engineering), DFG Projects TeamFLOW and TeamDynamics, Industrial Cooperationen e.g. with Daimler AG, BakerHughes, VWN
Communication and teamwork in the software development
To produce qualitatively high-value software, stakeholders must first be familiar with the requirements. However, they also need to be communicated effectively and transferred into design and development decisions. Through information flow analysis and the combination of technical development data (e.g. from JIRA) with social aspects, we develop an overall picture to ultimately support practitioners in communicating appropriately.
Looking at common process models, only written information is modelled. Informal or verbal transmission of information is not represented. This no longer corresponds to the realities in agile projects, which explicitly and very strongly rely on direct communication. Not everything that can be said quickly needs to be documented in the long term; this is an element that makes projects faster and more agile. Other information, on the other hand, needs to be kept, for maintenance or further development.
Communication as the general term for verbal, informal and formally documented exchange in software projects is seen, modelled and improved in the overall context at the Software Engineering group. One aspect is the question of how existing software is talked.
Who talks to whom? Are there bottlenecks or interruptions? Do distributed projects only communicate via technical platforms like JIRA, or is there also the shortcut via personal contacts? Such questions are interrelated, and whether requirements and development information arrive quickly where they are needed on them depends.
At the Software Engineering group, we investigate information flows in software projects for many years. Corresponding models allow us to quantitatively examine communication with social network analysis. Together with partners from psychology, we investigate technical key figures (e.g. from JIRA) and social aspects (e.g. from psychology). The goal is to identify connections and use this knowledge in a useful way.
See: DFG Projects InfoFLOW, TeamFLOW, TeamDynamics, UVL; Application in companies