本考试科目考试时间180分钟,满分150分。包括:软件工程(占60分),C语言程序设计(占45分)和数据结构与算法(占45分)。
软件工程部分(60分)
一、考试要求
要求考生全面系统地掌握软件工程的基本概念、软件工程的常用过程模型、软件的生命周期、面向对象的软件分析、设计、开发和测试方法,并能灵活运用;能够利用软件工程的基本知识,为应用系统构造有效的需求、设计和测试方案;能够初步分析软件方案的合理性。
二、考试内容
1)软件工程的基本概念
a:软件工程的概念、组成部分
b: 软件的生命周期、各阶段的作用、各阶段输入输出之间的关系
c: 软件开发团队的基本角色构成及各自的职责
2)软件生命周期模型与软件项目管理
a:瀑布模型、增量模型、演化模型,各自的特征、过程和应用场景
b: 敏捷方法与过程模型,包括用户故事、测试驱动开发、结对编程、持续集成、快速迭代/快速交付等,以极限编程XP为代表
c: 针对特定软件产品/项目的特征,选择恰当的过程模型
d: 软件项目管理的基本过程;软件项目规划(规模估算、成本估算、进度计划等)
e: 软件风险管理的基本概念与方法
3)软件需求工程
a:需求工程的阶段划分及各自之间的关系
b: 需求的分类、需求好坏的评判标准
c: 面向对象的需求分析模型与方法(用例模型、领域模型、时序模型,三种分析类及其关系)
d: 需求规格说明的基本构成
4)软件设计
a: 软件设计的阶段划分、各自的作用、彼此之间的关系
b: 软件架构的基本概念、常见的软件架构样式(数据流、主程序-子过程、层次化架构、以数据为中心的架构、基于事件的架构、模型-视图-控制器MVC)
c: 面向对象的设计方法(架构设计、类的属性/方法/状态设计、由类模型向关系数据模式的映射;部署模型)
d: 统一建模语言(UML)的常用模型视图(用例图、活动图、类图、时序图、状态图、部署图、包图等)
e: 面向典型非功能需求的软件设计方法(效率、并发度、可靠性、可用性、安全性等)
5)软件测试与质量保证
a:软件测试的阶段划分、软件测试的类型、测试用例
b:常见的黑盒测试方法及应用(等价类划分、边界值方法等)
c: 常见的白盒测试方法及应用(基本路径法、循环测试等)
d: 根据需求规约和程序源代码设计软件测试用例
e: 代码评审与代码优化的基本方法
6) 软件配置管理
a:软件演化的基本思想
b:软件维护的基本类型、基本过程
c: 软件配置管理,版本控制系统(VCS)的基本构成与流程
d: Git的工作原理、数据存储结构、常用指令
三、试卷结构
a) 题型结构
a:选择题(16分)
b:简答题(20分)
c:应用题(24分)
b) 注意事项
选择题和简答题主要考核基本概念和基本思想;应用题考核根据给定的应用场景和指定的软件工程方法进行需求分析、设计、测试的能力。
四、参考书目
1.Rogers S. Pressman. Software Engineering: A Practitioner’s Approach (Eighth Edition). (郑人杰等译,《软件工程:实践者的研究方法》,机械工业出版社,2016年11月)
2. 软件工程概论(第2版).机械工业出版社,2014年11月
C语言程序设计部分(45分)
一、 考试要求
要求考生掌握用计算机处理问题的思维方法,掌握C语言的基本语法、基本控制结构、常用的算法、问题求解方法和程序设计方法,具备综合运用所学知识独立解决与计算相关的工程技术问题的程序设计、实现和调试能力。
二、考试内容
1)问题的抽象、建模和算法描述
a:算法的基本概念
b:算法的流程图描述方法
2)基本控制结构
a: 选择结构的三种控制方式(单分支、双分支、多分支)
b: 循环结构的三种控制方式(计数控制、条件控制和标记控制)
c: 流程转移控制的基本方法
d: 基本控制结构的嵌套