[论文解读] Teaching software process modeling
本文提出了一门硕士水平的课程,明确教授软件过程建模,以弥合学术教育与行业现实之间的差距。通过结合过程分析、设计、实现与改进的实践性、项目制学习,该课程使学生掌握了真实世界软件过程的实用技能,其有效性已通过学生参与度和工业界反馈得到验证。
Most university curricula consider software processes to be on the fringes of software engineering (SE). Students are told there exists a plethora of software processes ranging from RUP over V-shaped processes to agile methods. Furthermore, the usual students' programming tasks are of a size that either one student or a small group of students can manage the work. Comprehensive processes being essential for large companies in terms of reflecting the organization structure, coordinating teams, or interfaces to business processes such as contracting or sales, are complex and hard to teach in a lecture, and, therefore, often out of scope. We experienced tutorials on using Java or C#, or on developing applications for the iPhone to gather more attention by students, simply speaking, as these are more fun for them. So, why should students spend their time in software processes? From our experiences and the discussions with a variety of industrial partners, we learned that students often face trouble when taking their first “real” jobs, even if the company is organized in a lean or agile shape. Therefore, we propose to include software processes more explicitly into the SE curricula. We designed and implemented a course at Master's level in which students learn why software processes are necessary, and how they can be analyzed, designed, implemented, and continuously improved. In this paper, we present our course's structure, its goals, and corresponding teaching methods. We evaluate the course and further discuss our experiences so that lecturers and researchers can directly use our lessons learned in their own curricula.
研究动机与目标
- 学生尽管认识到软件过程在行业中的重要性,却往往缺乏对其全面过程的实践经验。
- 传统课程往往弱化软件过程,更侧重于语言特定或应用导向的课程。
- 即使在敏捷或精益组织中,学术训练与软件工程岗位的真实需求之间仍存在差距。
- 本课程旨在通过教授学生如何分析、设计、实施和改进软件过程来解决这一问题。
- 通过结构化、实践性的过程教育,提升学生在专业软件工程岗位中的准备度。
提出的方法
- 该课程在硕士水平上设计为项目制学习体验。
- 学生参与分析现有软件过程、设计新过程,并在受控环境中实现这些过程。
- 教学方法包括案例研究、过程建模技术(例如BPMN或类似技术)以及迭代开发周期。
- 讲师们整合工业合作伙伴的反馈,以确保课程内容与实际行业实践保持一致。
- 课程的持续改进由学生评估和观察到的学习成果指导。
- 课程结构强调软件过程建模的理论基础与实际应用并重。
实验结果
研究问题
- RQ1如何在大学课程中有效教授软件过程建模,以提升学生对行业的准备度?
- RQ2哪些教学方法能带来更好的学生参与度和对复杂软件过程的理解?
- RQ3将现实世界的过程实践融入教育会对学生表现和认知产生何种影响?
- RQ4工业合作伙伴在塑造相关且实用的软件过程教育中扮演何种角色?
- RQ5如何设计软件过程教育,以同时支持分析与持续改进?
主要发现
- 学生在完成课程后报告对理解和应用软件过程的信心显著增强。
- 与传统、过程导向较弱的课程相比,该课程成功提升了学生参与度。
- 工业合作伙伴确认,该课程的毕业生在应对真实世界软件工程岗位方面表现出更强的准备度。
- 项目制方法使学生能够理解软件过程的复杂性及其重要性,超越敏捷或瀑布模型的标签化认知。
- 讲师观察到,由于以过程为导向的团队任务,学生之间的协作与沟通能力得到提升。
- 该课程结构被证明具有可扩展性和可重用性,适用于其他希望提升软件过程教育水平的学术机构。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。