如何评测软件工程知识技能水平?
您认为一个软件工程师的软件工程知识技能水平高低主要体现在哪些方面
一个软件工程师,首先要具备良好的编程能力,这是一名程序员必要的工具;其次,要有一个良好的沟通能力,在软件设计过程中往往是以团队形式工作的,因此需要有一个良好的团队配合,这是基于沟通能力的;再者,要有一定的学习能力,软件设计往往是跨领域的,如需要你设计一个医疗用的软件,这需要学习能力作为基础,才能够更好的了解该领域的知识,获取需求;最后,需要一个持之以恒的努力,软件设计不是一朝一夕能够完成的,要能够耐得住寂寞,守得住电脑。
一、选择题(2’×10)
1.某企业财务系统的需求中,属于功能需求的是()。
A.每个月特定的时间发放员工工资
B.系统的响应时间不超过3秒
C.系统的计算精度符合财务规则的要求
D.系统可以允许100个用户同事查询自己的工资
答案A
解析:功能需求:系统要做什么,在何时做,在何时以及如何修改升级。
选自中级软件设计师考试2017年试题
2.系统交付用户使用后,为了改进系统的图形输出而对系统进行修改的维护行为属于()维护。
A.改正性 B.适应性 C.改善性 D.预防性
答案C
解析:正确性维护:改正没有发现的错误
适应性维护:技术,需求发生了变化而引起的维护
完善性维护:扩展功能和完善性能
预防性维护:提高可靠性和可维护性
选自中级软件设计师考试2017年试题
3.在面向对象方法中,将逻辑上相关的数据以及行为绑定在一起,使信息对使用者隐蔽称为()。
A.抽象 B.继承 C.封装 D.多态
答案C
解析:封装是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体, 数据被保护在抽象数据类型的内部, 尽可能地隐藏内部的细节, 只保留一些对外接口使之与外部发生联系。
选自中级软件设计师考试2017年试题
4.当类中的属性或方法被设计为private时,()可以对其进行访问。
A.应用程序中所有方法 B.只有此类中定义的方法
C.只有此类中定义的public方法 D.同一个包中的类中定义的方法
答案C
解析:只有此类中定义的方法可以对私有成员进行访问。
选自中级软件设计师考试2017年试题
5.采用继承机制创建子类时,子类中()。
A.只能有父类中的属性 B.只能有父类中的行为
C.只能新增行为 D.可以有新的属性和行为
答案D
解析:子类相对于父类,要更加特殊。所以会有新的成员来描述其特殊。
选自中级软件设计师考试2017年试题
6.面向对象分析过程中,从给定需求描述中选择()来识别对象。
A.动词短语 B.名词短语 C.形容词 D.副词
答案B
解析:名词短语暗示类及其属性动词和动词短语暗示对职责或操作。
选自中级软件设计师考试2017年试题
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使用面向对象设计的的建模工具
选自软件工程导论课本
二、判断题(2‘×5)
1. 划分模块可以降低软件复杂度和工作量,所以应该将模块划分得越小越好。(F )
2. 用CASE环境或程序自动生成工具来自动生成一部分程序。( T)
3. 目前我国还没有颁布软件开发标准。(F)
4. 耦合度是对软件结构中模块间关联程度的一种度量。在设计软件时应追求尽可能紧密的耦合的系统。(F)
5. 在面向对象设计阶段则着重完成“如何做”的问题,也就是着重考虑对象的实现细节。(T)
三、简答题 (5’×8)
1、软件的组成有哪些? 什么是软件工程?
软件=数据+程序+文档
软件工程就是用科学的知识和技术原理来定义,开发,维护软件的一门学科。
2.什么是软件生存周期?它有哪几个活动?
软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。
包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。
3.有哪些常见的软件生存周期模型?
主要有:瀑布模型,增量模型,螺旋模型,喷泉模型,基于知识的模型,变换模型。
4.什么是基线。
基线:是软件生存期中各开发阶段的一个特定点,它的作用是把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果。
5.顾客在自动柜员机中插入银行卡,执行提款的服务项目;银行职员要求自动柜员机打印所有的提款数据。画出自动柜员机的Use Case图。?
6.衡量模块独立性的两个定性标准是什么?好的软件设计模块间的标准是怎样的?
内聚和耦合
高内聚低耦合
四、设计题(10‘×3)
1.复印机。一开始在闲置状态,收到复印命令开始复印,复印完回到闲置状态。缺纸则到缺纸状态并发出警报,放入纸后回到闲置状态。卡纸则到卡纸状态并发出警报,一旦修好回到闲置状态(画出状态转换图)。
2.某厂对部分职工重新分配工作的政策是:年龄在20岁以下者,初中文化程度脱产学习,高中文化程度当电工;年龄在20岁至35岁之间者,中学文化程度男性当钳工,女性当车工,大学文化程度都当技术员;年龄在35岁以上者,中学文化程度当材料员,大学文化程度当技术员。请根据以上材料分别采用伪码和判定树两种方式描述之。
伪码表示:
IF 年龄<20 THEN IF 文化程度=初中 THEN 脱产学习 ELSE 工作为电工 ENDIF ELSE IF 年龄≤35 THEN IF 文化程度=大学 THEN 工作为技术员 ELSE IF 性别=男性 THEN 工作为钳工 ELSE 工作为车工 ENDIF ENDIF ENDIF ELSE IF 文化程度=大学 THEN 工作为技术员 ELSE 工作为材料员 ENDIF ENDIF
判定树表示:
3.比较下列两段语句,从编码风格的角度分析其优、劣。
程序段一:
/ position_x is the position x of object; position_y is the position y of object; / if a>b then a=b else if position_x>position_y then b=position_y else a=position_x end if end if
程序段二:
if a>b then if x>y then b=y else a=x end if else a=b end if
答案:程序段一比程序段二好(1)开头给出了序言性注视(2)使用了缩进使程序结构更清晰(3)变量名定义更清楚