Requirements engineering is a key skill in systems and softwareengineering. Educating students in the different forms and concepts of requirements engineering (e.g., traditional versus agile) is essential to prepare ...
详细信息
ISBN:
(纸本)9798400704987
Requirements engineering is a key skill in systems and softwareengineering. Educating students in the different forms and concepts of requirements engineering (e.g., traditional versus agile) is essential to prepare them for any technical job. However, requirements engineering education can be challenging, particularly if it is not structured around a real-world project, and thus taught only conceptually. Unfortunately, when designing lectures, educators face pedagogical, technological, and content-related challenges, such as practice-orientation, student motivation, prior knowledge of students, or even emergency situations like the COVID-19 pandemic. In this paper, we report our experiences of integrating a novel pedagogical idea into a typical requirements-engineering course that builds on the increased use of multimedia communication in all parts of society: we asked students to create videos to document and communicate requirements of diverse products. Overall, we report (i) the general design of the course;(ii) why, how, and in what form we introduced video-creation tasks;as well as (iii) the students' feedback and our experiences. Due to mostly positive feedback and the rising demand for multimedia competences in industry, we perceive the introduction of the video-creation tasks as a success for developing key skills and improving students' motivation to learn about requirements engineering. We provide an overview of our lessons learned and discuss their implications to enable other educators to integrate similar tasks in their courses, while avoiding the pitfalls we faced.
It is expected that in the near future, AI software development assistants will play an important role in the software industry. However, current software development assistants tend to be unreliable, often producing ...
详细信息
ISBN:
(纸本)9798400705007
It is expected that in the near future, AI software development assistants will play an important role in the software industry. However, current software development assistants tend to be unreliable, often producing incorrect, unsafe, or low-quality code. We seek to resolve these issues by introducing a holistic architecture for constructing, training, and using trustworthy AI software development assistants. In the center of the architecture, there is a foundational LLM trained on datasets representative of real-world coding scenarios and complex software architectures, and fine-tuned on code quality criteria beyond correctness. The LLM will make use of graph-based code representations for advanced semantic comprehension. We envision a knowledge graph integrated into the system to provide up-to-date background knowledge and to enable the assistant to provide appropriate explanations. Finally, a modular framework for constrained decoding will ensure that certain guarantees (e.g., for correctness and security) hold for the generated code.
Emerging generative and fine-tuning LLMs services have been widely benchmarked and used for various software development tasks. These LLMs services are powerful but have different output qualities for software develop...
详细信息
ISBN:
(纸本)9798350368529;9798350368512
Emerging generative and fine-tuning LLMs services have been widely benchmarked and used for various software development tasks. These LLMs services are powerful but have different output qualities for software development tasks and may not be able to deal with complex development tasks in edge-cloud software modernization and new developments due to their generative capabilities and lack of up-to-date (domain) knowledge. Many queries and solutions related to target platforms, deployment configurations, policies, data regulation, observability, to name just a few, are not well integrated with these LLMs, but are accessed by the developer through other sources. In this work, we discuss situations where the gaps between the needs and the offerings from LLMs can be compensated by Platform knowledge, which captures knowledge about, e.g., software, service and infrastructure catalogs, architectural decision records and code patterns. We propose COLLMS - a framework for coordinating LLMs services and Platform knowledge. At the starting point of the framework, we will discuss challenges for achieving the coordination centered around Platform knowledge, LLMs management and integration, quality-aware coordination of LLMs, and observability and knowledge updating.
Call graphs facilitate various tasks in softwareengineering. However, for the dynamic language Python, the complex language features and external library dependencies pose enormous challenges for building the call gr...
详细信息
Call graphs facilitate various tasks in softwareengineering. However, for the dynamic language Python, the complex language features and external library dependencies pose enormous challenges for building the call graphs of real projects. Some program analysis techniques used for call graph construction in other languages are impractical for Python. In this paper, we present STAR, a practical technique for the construction of Python static call graphs. We reformulate call graph construction as an entity identification task. STAR leverages inter-module summary and cross-project dependencies to construct a fine-grained entity knowledge base to identify the possible nodes and edges of the call graph in the code, and then construct the call graph. Our evaluation of three benchmarks shows that (1) STAR improves recall in three benchmarks compared to three baseline tools. Especially, STAR improves the recall of reachable nodes and reachable edges compared with the state-of-the-art tool by 11.3% and 9.8%, respectively;(2) STAR achieves comparable performance as three baseline tools in execution time and memory usage and is more efficient in large projects;(3) STAR can be effectively used for the task of detecting vulnerability propagation with real-world cases. We expect our results will attract more exploration of practical methods and improve the application of Python call graphs.
This edition of the "Practitioners' Digest" covers recent papers on novel approaches and tools to assist developers in modeling and architecting software systems from two conferences: the 26th ACM/IEEE I...
详细信息
This edition of the "Practitioners' Digest" covers recent papers on novel approaches and tools to assist developers in modeling and architecting software systems from two conferences: the 26th ACM/IEEE internationalconference on Model Driven engineering Languages and Systems (MODELS) and the 20th IEEE internationalconference on software Architecture (ICSA). Feedback or suggestions are welcome. Also, if you try or adopt any of the practices included in the column, please send us and the authors of the paper(s) a note about your experiences.
Requirements engineering (RE) is an important discipline of softwareengineering. Teaching RE should be based on two pillars: a solid methodological foundation and practical experience in application. This paper descr...
详细信息
ISBN:
(纸本)9798350378986;9798350378979
Requirements engineering (RE) is an important discipline of softwareengineering. Teaching RE should be based on two pillars: a solid methodological foundation and practical experience in application. This paper describes the teaching concept of a master's course on RE for engineers. The main components are Just-in-Time Teaching, exercises and mini-projects in small groups, and a big RE project with larger teams. So far, the course has been taught ten times. Experience is reported that led to the confirmation or to improvements of the teaching concept.
Managing variability in configurable systems remains a challenging endeavor for multiple reasons. First, variability must be properly defined using domain knowledge and reusable software artifacts, often relying on ex...
详细信息
ISBN:
(纸本)9798400705939
Managing variability in configurable systems remains a challenging endeavor for multiple reasons. First, variability must be properly defined using domain knowledge and reusable software artifacts, often relying on extraction and refinement of legacy assets. Second, variability must be maintained during evolution in time (revisions) and space (variants). Recent research activities have focused on enabling the integrated management of evolution and variability. Existing approaches stem from multiple origins, notably software configuration management and product line engineering. The 1st. international Workshop on Reverse Variability engineering and Evolution of software-Intensive Systems joins the motivation originating from REVE and VariVolution. It shall bring together active researchers eliciting software variability and studying its evolution, and practitioners who encounter these phenomena in the real-world. Re:Volution offers a platform to exchange ideas, case studies, and tools, fostering research collaborations and synergies.
By far, the most effective knowledge assessment in college education is to give students exam and grade their answers then assess their level of understanding. However, exam grading can be time-consuming, tedious, cum...
详细信息
ISBN:
(纸本)9798350391961;9798350391954
By far, the most effective knowledge assessment in college education is to give students exam and grade their answers then assess their level of understanding. However, exam grading can be time-consuming, tedious, cumbersome, and sometimes the grading results are not consistent with the rubric. Here, we propose an AI based exam grader that can not only ease educators' burden but also produce accurate, consistent, and precise grading results. We have used GPT-3.5, GPT-4.0, and Gemini-pro, respectively, as our grading engine. To verify the correctness, precision, and accuracy of our proposed grader, the results were compared with the instructor's grading result and also with human grader such as teaching assistants. In our experiment, GPT-4.0 showed the most reliable and consistent results.
Data science is a field of knowledge that exploits various methods of collecting and analyzing data. Nowadays, data-driven software development is getting more common and multiple experts take part of the process, suc...
详细信息
暂无评论