软件工程概论

开课班次:
开课时间: 2018-10-01 —
选课时间: —
加入课程 13人 收藏
分享到

课程介绍

《软件工程概论》是软件工程专业的一门专业核心课,主要讲述软件工程的基本概念、原理、规范、技术和方法,把经过实践证明正确的管理措施和当前最好的技术方法结合起来,以较少的代价获取高质量的软件产品。它具有较强的综合性和实践性,对软件的开发和维护有着很强的针对性和指导性。
该课程要求学生学习与软件开发和维护有关的内容——过程与模型、方法与技术、工具与环境、标准与规范。通过本课程的学习,使学生掌握软件工程的概念、原理和技术,初步掌握软件开发的基本方法和常用工具,建立软件开发和维护的工程化意识,培养独立思考的能力和团队合作的精神,为后续相关课程的学习以及从事软件开发与维护的实际工作打下良好的基础。

课程大纲

1.课程概况
课程代码    B1102306     课程所属模块/课程性质    专业核心课/必修
课程名称    软件工程概论    总学时/学分    72/4
理论学时/学分    54/3    实践实训学时/学分    18/1
开设学期    4    适用专业    软件工程
先修课程    程序设计基础、数据结构    所属教研室    软件工程
选用教材    实用软件工程  张海藩 人民邮电出版社 ISBN: 9787115374042
大纲执笔人    蔡勇    大纲审核人    曾安平

教学目标(M)
M1: 掌握软件与软件工程基本概念和基本知识    M2: 掌握生存周期与软件开发模式
M3: 掌握结构化程序设计方法    M4: 掌握面向对象程序设计方法
M5: 掌握软件的编码、测试与维护    M6: 掌握软件项目管理
教学方式(J)    □√J1.讲授法教学
 48学时   %    □J2.研讨式学习    学时   %
    □√J3.案例教学
6学时   %    □J4.网络教学      学时   %
    □J5.自主学习      学时   %    □√J6 课堂讨论

考核方式(K)    □K1.课堂测试    %    □K 2.期中考试    %    □√K3.期末考试
50 %
    □√K4.作业撰写
10%    □√K5.实验分析报告
30%    □√K6.课堂表现
5 %
    □K7.课程论文撰述    %    □K8.出勤率    5%        %

2.教学内容及要求
第一章  软件工程概述
教学要求
了解软件的概念及特点,软件的分类;深刻理解软件危机的表现与原因,软件危机的启示;理解软件工程的概念,软件工程研究的内容,软件工程目标和原则;了解软件工程的发展,软件工程知识体系;掌握软件生命周期中各阶段的基本任务。了解软件生存周期各种模型;理解软件开发方法,了解软件工程工具。
教学重点
软件危机的产生、表现、原因;软件工程的定义;软件生命周期概念和软件开发方法。
教学难点
软件的生命周期模型。
第二章  可行性研究及需求分析
教学要求
深刻理解可行性研究的必要性,了解项目立项概述,掌握可行性研究的内容及可行性研究的具体步骤;理解需要分析的概念、任务及步骤,了解需求管理;理解结构化需求分析方法,熟练掌握结构化需求分析建模中的实体关系图、数据流图、状态转换图和数据字典。了解需求规格说明书编写指南,软件开发计划书编写指南;掌握常用图形工具Visio的使用方法。
教学重点
可行性研究的任务及步骤,数据流图和实体关系图的画法,数据字典的编写,图形工具的应用。
教学难点
数据流图和实体关系图的画法。
第三章 软件设计
教学要求
了解软件设计的意义和目标,理解软件设计原则和分类;理解模块独立和启发规则;熟练掌握结构化软件设计方法中的表示软件结构的图形工具、面向数据流的设计方法 和面向数据结构的设计方法(要求能划分数据流的类型,将其能换成软件结构图,并能根据优化准则将其优化);能熟练的使用结构化软件设计的工具 (流程图、盒图、PAD图、判定表、过程设计语言);掌握数据库结构设计;理解人机界面设计和软件设计说明书编写指南。
教学重点
(1)    掌握结构化软件设计方法。
(2)    学会使用Jackson方法设计输入输出数据结构和程序结构
(3) 结构化软件设计的工具的应用。
教学难点
(1) 将变换型数据流图、事务型数据流图转换成合理的软件结构。
(2) 将一个复杂型数据流图转换成软件结构图并优化。
第四章  编码及实现
教学要求
了解编程语言的发展与分类,选择编程语言需考虑的因素;理解编码风格,了解Visual Studio的使用方法,能使用Visual Studio进行开发 和调试;注意培养良好的编程风格。  
教学重点
培养良好的编码风格
教学难点
培养良好的编码风格
第五章 软件测试与维护
教学要求
理解软件测试原则、分类和模型;理解测试用例编写、设计和场景;深刻理解并掌握黑盒测试中的等价类划分法、边界值分析法、错误推测法、因果图法、决策表法和场景法在软件测试中的具体应用;深刻理解并掌握白盒测试中的代码检查法 、静态结构分析法 、程序插桩技术、逻辑覆盖法 、基本路径法的具体应用;深刻理解软件测试的一般步骤:单元测试、集成测试、确认测试、系统测试、验收测试、回归测试和软件调试的任务及使用的方法 ;了解测试分析报告编写指南。深刻理解软件维护的过程、分类,软件的可维护性及软件维护的副作用。
掌握调试程序的方法。
熟练掌握的技能是:能针对某一问题采用白盒法或黑盒法进行测试用例的设计。
教学重点
掌握白盒测试、黑盒测试中的几种典型测试方法和测试用例的设计;掌握软件测试的步骤中的单元测试,集成测试中的非增量式集成测试和增量式集成测试,确认测试,系统测试相关类型,验收测试和回归测试;掌握纠错性维护、适应性维护、完善性维护、预防性维护。理解可维护性的定义,影响可维护性的因素及提高可维护性的措施。
教学难点
白盒测试、黑盒测试的测试用例的设计,集成测试策略,非增量式集成测试和增量式集成测试的区别,软件调试中的归纳法与演绎法调试策略。  
第六章 面向对象方法学与UML
教学要求
了解面向对象方法的要点,面向对象的软件过程;掌握面向对象方法的概念;深刻理解面向对象建模所涉及到的对象模型,动态模型和功能模型;了解UML的产生和发展,UML的系统结构,UML的图;熟练掌握使用用例图、类图、包、对象图、状态图、顺序图、活动图、协作图、构件图、部署图对系统建模。根据软件的实际需要选择几种UML模型,了解UML使用准则,UML扩展机制,UML应用领域。
教学重点
建立对象模型;掌握画用例图、类图、包、对象图、状态图、顺序图、活动图、协作图、构件图和部署图。
教学难点
面向对象方法的概念;对象模型中确定对象类、确定关联、确定属性,识别继承。
第七章 面向对象软件设计与实现
教学要求
理解对象分析的基本过程和原则;深刻理解对象模型、动态模型、功能模型的元素、结构和构造方法;掌握画对象图、画状态图、画数据流程图;确定对象类、确定关联、确定属性,识别继承。掌握面向对象设计的准则;掌握面向对象设计的启发原则;了解设计问题域子系统、人机交互子系统、任务管理子系统和数据管理子系统;了解面向对象的程序设计语言,理解面向对象程序设计风格,了解面向对象测试策略,理解面向对象测试用例设计。
教学重点
建立对象模型、动态模型、功能模型;画对象图、画状态图、画数据流程图;掌握面向对象设计的准则和启发原则;
教学难点
建立对象模型、动态模型、功能模型;画对象图、画状态图、画数据流程图;系统设计;面向对象测试用例设计。
第八章  软件工程管理
教学要求
理解软件工程管理概念,软件开发成本估算方法;了解COCOMO2模型,掌握并能使用Gantt图和工程网络技术表示项目进度计划;了解人员组织中有民主制程序员组、主程序员组、现代程序员组;了解软件开发风险管理,软件质量保证、软件配置管理、软件工程标准与软件文档;了解软件过程能力成熟度模型,软件项目管理概述,用户手册编写指南。
教学重点
理解软件开发成本估算方法,软件项目进度计划。
教学难点
代码行技术,功能点技术,工程网络技术;软件开发风险管理,软件配置管理。
3.建议教学安排
序号    主要教学内容(章)    学时
(理论+实验)    课程
目标    教学
方式    考核
方式
1    第一章  软件工程概述    6+2    M1、M2    J1、J6    K6、K4
2    第二章  可行性研究及需求分析    7+2    M1、M3    J1、J3    K6、K5、K4
3    第三章  软件设计    7+2    M2、M3    J1、J3    K6、K5、K4
4    第四章 编码及实现    3+2    M2、M3    J1、J 3    K6、K5、K4
5    第五章  软件测试与维护    9+2    M2、M3    J1、J3    K6、K5、K4
6    第六章  面向对象方法学与UML    9+4    M1、M4    J1、J3    K6、K5、K4
7    第七章  面向对象软件设计与实现    9+2    M3、M5    J1、J3    K6、K5、K4
8    第八章  软件工程管理    4+2    M1、M6    J1、J3    K6、K5、K4
                    
总学时72    其中理论 54 学时,实验18  学时,上机 18 学时

4.参考书目
教材:
[1] 《实用软件工程》,张海藩编著,人民邮电出版社,2015.5
[2] 《软件工程实验指导书》,自编
参考书:
[1]《软件工程》(第二版),齐治昌等著,高等教育出版社,2004.9
[2]《实用软件工程》(第二版),郑人杰等编著,清华大学出版社,1997.4
[3]《实用面向对象软件工程教程》, Edward Yourdon &Carl Argila 著, 殷人昆等译,  电子工业出版社,1998.6
[4]Software Engineering(6th Edition),Ian Sommerville,机械工业出版社 2003.4.1
[5]Software Engineering: Theory and Practice (Second Edition), Shari Lawrence Pfleeger ,高等教育出版社, 2001.8

课程资源:   http://125.64.220.26:8080/ec/C113/Index.htm

5.专业个性化需求补充说明
1.课程系统性、实践性很强,在教学过程中必须认真贯彻理论联系实际的原则,提倡授课中对典型案例分析,并给学生布置软件项目(一人一题)以培养学生运用理论分析和解决实际问题的能力。
2.面向数据流的分析和设计,面向对象的分析和设计,白盒测试和黑盒测试应布置适量的思考题,供学生进行全面掌握。
3.课程中关键性概念、原理、设计思想方面的问题可辅以课堂讨论。

考核标准

课件浏览20%,客观练习60%,主观练习20%,课内讨论0%,练习允许2次全部重做。。
课程内容不断迭代,成绩以当时的课程内容为准,一旦合格,可以申请证书。申请证书后,以结课处理,成绩不再改动