学校云 建设你的专属在线教育平台
中国大学MOOC
SPOC学校专有课程
软件工程概论
分享
spContent=软件工程概论课程是软件工程专业的核心课程。课程将系统的介绍软件工程的基本概念和基本原理,这些内容覆盖整个软件生命周期。通过本课程的学习,使学生能够在软件工程方法论的指导下进行学习和软件开发,提高软件开发的成功率,减少软件开发和维护中的错误,为今后的学习与实践打下良好的基础。
—— 课程团队
课程概述

软件工程概论课程是软件工程专业中的一门综合性和实践性很强的核心课程。课程将系统的介绍软件工程的基本概念和基本原理,这些内容覆盖整个软件生命周期,包括软件工程过程、软件工程方法、软件工程模型、软件需求、软件设计、软件实现、软件测试、软件项目管理等内容。学生通过本课程的学习,了解软件项目生命周期中在不同阶段如何使用不同的软件工程方法进行分析和解决问题,使得学生逐步学会遵循软件工程方法论,以提高软件开发的成功率,显著减少软件开发和维护中的错误,为更深入地学习和今后从事软件工程实践打下良好的基础。

授课目标

1.掌握软件工程基础知识和专业知识,能够对用户需求、软件体系结构等问题进行分析。

2.能够将软件工程基础知识和专业知识应用于软件工程解决方案的评价

3. 能客观评价软件工程领域的发展对社会、安全以及文化的影响。

4. 能判断软件工程领域的软件产品在生命周期内对人类和环境的影响。

5. 理解软件工程活动中的管理原理,掌握软件工程领域复杂工程问题的决策方法。


成绩 要求

学完所有课程,做完所有习题,作业。

课程大纲
预备知识

本课程的先修课程包括:数据结构、Java编程基础。使学生具有一定的基础,为后续学习软件设计打下基础,使学生具备一定的编程基础知识,为软件项目设计做铺垫。


参考资料

(一)课程教材

[1]《软件工程:理论与实践(2).许家珆 编著. 清华大学出版社.2009年版.

[2]《软件工程》(第4版修订版)》.Shari Lawrence Pfleeger .人民邮电出版社.2014年版.

以上教材均可通过京东、淘宝等网络平台自行购买,首推第一本教材,该教材属于国内经典教材。

(二)推荐参考资料

[1]《软件工程概论》.郑人杰等 .机械工业出版社.2010年版.

[2]Software Engineering Software Engineering: A Practitioner's Approach 6th edition. Roger S Pressman.Newyork.2004年版.


常见问题

Q :   选择不同的软件过程模型需要考虑的因素有哪些?

A :   这种选择基于项目和应用的性质、采用的方法、需要的控制,以及要交付的产品的特点。

Q :   软件实现是软件项目中最重要的部分么?

A :  不是。软件开发过程包括:需求分析、系统设计、程序设计、编码、测试、维护,其中最重要的是需求分析。

Q :  实体关系(ER)图是在需求期间完成么?

A :  在形成初步的需求规格说明书之后即可开始完成实体关系的建模了。

Q :  如何区分需求和设计过程?

A :  需求的目标是讲清楚说做什么,设计的目标讲清楚怎么做?

Q :  软件设计中的设计原则在掌握不好的时候能否适当违背?

A :  设计原则是把系统功能和行为分解成模块的指导方针,初学者如果做不到也需要尽量参照在设计中尽量参照其他优秀的设计对自己的设计进行改进或者迭代,及时真的短期内无法达到,也要了解违背的弊端,尽量将弊端带来的风险控制在可以接受的范围内。

Q :  软件体系结构风格可以混搭么?

A :  实际的软件系统中很少有单一风格的设计,在构造系统的时候可以在不同的层次不同级别组合使用不同的体系结构风格。

Q :  集成测试的要点是什么?

A :  集成测试也叫组装测试、联合测试、子系统测试或部件测试。集成测试是在单元测试的基础上,将所有模块按照概要设计要求组装成为子系统或系统。测试的设计者需要考虑从整体性考虑问题,而不是局部,需要考虑模块间的协作、全局数据结构、消息在模块间的传递,累计效应等问题。

Q :  项目的风险能够被消除完么?

A :  不需要,需要通过风险管理主动而系统地对项目风险进行全过程的识别、分析 和监控, 最大限度地降低风险对软件开发的影响。