根据本课程的学习以及自身的知识和经验,您认为一个软件工程师的软件工程知识技能水平高低主要体现在哪些方面,请您简要总结一下。
1.具有过硬的专业知识储备和专业技能。比如对操作系统,编译原理,数据库,计算机组成原理等有着不错的基本功,清楚地了解这些专业课的核心逻辑和关键理论、算法。
2.熟悉软件工程中一些经典的过程模型并熟练地在生产中使用过。清楚软件开发中的各个关键过程。
3.有着一门以上的擅长的编程语言并且有着较好的编码规范。
4 认识和运用数据库的能力。信息是以数据为中心的,因此与数据库的交互在所有软件中都是必不可少的,了解数据库操作和编程是软件工程师需要必备的素质之一。熟悉数据结构和数据库,有一定的算法基础,具有较强的独立解决问题能力,能设计出问题求解的数据结构或数据库是必不可少的。
5 持续的学习能力,掌握最新的IT实用技术。软件业是一个不断变化和创新的行业,面对层出不穷的新技术,软件工程师应具有较强的学习能力、需求理解能力和对新技术比较敏感,在行业领域要与时俱进,适应软件的开发工具和环境,不断适应客户的需求变化。
6较强的英语阅读和写作能力。程序世界的主导语言是英文,编写程序开发文档和开发工具帮助文件离不开英文,了解业界的最新动向、阅读技术文章离不开英文,与世界各地编程高手交流、发布帮助请求同样离不开英文。作为基础软件工程师,具有一定的英语基础对于自身的学习和工作极有帮助。
1.以下哪个不是统一过程的核心(A)(来源于课上的内容)
A.压低开发成本 B. 以架构为中心
C. 增量且迭代的过程 D. 用例驱动
解析:统一过程的核心是用例驱动(需求驱动)、以架构为中心和增量且迭代的过程,这是老师上课反复强调的内容,记住即可
2.以下哪个不是软件设计的基本原则(A)(来源于课上的内容)
A. 低成本,短时间 B.模块化
C. 信息隐藏 D.通用性
解析:软件开发有6个原则:模块化、接口、信息隐藏、增量开发、抽象、通用性。这是老师上课反复强调的内容,记住即可
3.在软件生命期中,占工作量比例最大的是( ) 。
A.可行性研究
B.建立系统的结构
C.编写程序
D.维护
参考答案:D
4原型化方法是动态确定软件需求的方法之一,该方法适应于()的系统
A、需求不确定性高
B、需求确定
C、结构简单
D、可移植性好
参考答案:A
5.瀑布模型的存在问题是( B )
A.用户容易参与开发 B.缺乏灵活性
C.用户与开发者易沟通 D.适用可变需求
解析:瀑布模型各个阶段的划分完全固定、模型是线性的,用户只有等到整个过程的末期才能见到开发成果,不适应需求的变化,缺乏灵活性。
6.软件工程的出现主要是由于( C )。
A.程序设计方法学的影响 B.其它工程科学的影响 C. 软件危机的出现 D.计算机的发展
7.测试网络连通性通常采用的命令是( ) 。
A. Nestar B. Ping C. Mscinfug D. Cmd
答案B
解析:ping命令还有trace命令是用来测试网络连通性的。
选自计算机网络课本
8.在一台安装好 TCP/IP 协议的计算机上, 当网络连接不可用时, 为了测试编写好的网络程序, 通常使用的目的主机 IP 地址为( ) 。
A. 0.0.0.0 B. 127.0.0.1 C. 10.0.0.1 D. 210.225.21.255/24
答案B
解析:127.0.0.1是主机用来做环回测试的
选自计算机网络课本
9.类( )之间存在着一般和特殊的关系。
A. 汽车与轮船 B. 交通工具与飞机 C. 轮船与飞机 D. 汽车与飞机
答案B
解析:本题考查类的相关知识。飞机属于交通工具的一种。
选自网络
10.UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法( )
A、基于瀑布模型的结构化方法 B、基于需求动态定义的原型化方法
C、基于对象的面向对象的方法 D、基于数据的数据流开发方法
答案C
解析:UML使用面向对象设计的的建模工具
选自软件工程导论课本
三、简答题 (5’×8)
-
软件生命周期主要包括哪些阶段?请简要说明各阶段的主要任务。
软件的生命周期一般包括:分析,设计, 实现,测试,演化(或维护阶段
- 分析阶段:分析,整理和提炼所收集到的用户需求,建立完整的分析模型,将其编写成软件需求规格说明和初步的用户使用手册
- 设计阶段:设计人员依据软件的需求规格说明文档,确定软件的体系结构,进而确定每个模块的实现算法,数据结构和接口等,编写设计说明书,并组织进行设计审核
- 实现阶段:将设计的各个模块编写成计算机可接受的程序代码
- 测试阶段:在设计测试用例的基础上,测试软件各个组成模块,然后将各个模块集成起来,测试整个产品的功能和性能是否满足已有的规格说明
- 演化阶段:为了改正错误,适应环境变化和增强功能,对软件进行一系列修订
2.软件的组成有哪些? 什么是软件工程?
软件=数据+程序+文档
软件工程就是用科学的知识和技术原理来定义,开发,维护软件的一门学科。
3.什么是白盒测试?什么是黑盒测试?
答:白盒测试又称为结构测试,它的前提条件是可以看成将程序放在一个透明的白盒子中,也就是完全了解了软件系统的结构和整个处理过程。
黑盒测试又称为功能测试,它把程序看成是一个不透明的黑盒子,完全不去考虑程序的内部结构和处理过程。
4.面对对象方法学的基本原则是什么?
参考答案:面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。
5.软件测试包括哪些步骤?说明这些步骤的测试对象是什么?
答:(1)单元测试:测试对象对单元模块
(2)集成测试:测试对象为组装后的程序模块
(3)确认测试:测试对象为可运行的目标软件系统
(4)系统测试:测试对象为计算机系统的各组成部分