如何评测软件工程知识技能水平?
根据本课程的学习以及自身的知识和经验,您认为一个软件工程师的软件工程知识技能水平高低主要体现在哪些方面,请您简要总结一下。
1.具有过硬的专业知识储备和专业技能。比如对操作系统,编译原理,数据库,计算机组成原理等有着不错的基本功,清楚地了解这些专业课的核心逻辑和关键理论、算法。
2.熟悉软件工程中一些经典的过程模型并熟练地在生产中使用过。清楚软件开发中的各个关键过程。
3.有着一门以上的擅长的编程语言并且有着较好的编码规范。
根据上面的总结,我搜寻到了如下题目:
一、选择题
1.以下哪个不是统一过程的核心(A)(来源于课上的内容)
A.压低开发成本 B. 以架构为中心
C. 增量且迭代的过程 D. 用例驱动
解析:统一过程的核心是用例驱动(需求驱动)、以架构为中心和增量且迭代的过程,这是老师上课反复强调的内容,记住即可
2.以下哪个不是软件设计的基本原则(A)(来源于课上的内容)
A. 低成本,短时间 B.模块化
C. 信息隐藏 D.通用性
解析:软件开发有6个原则:模块化、接口、信息隐藏、增量开发、抽象、通用性。这是老师上课反复强调的内容,记住即可
3.下列选项中,不属于模块间耦合的是(B)。
A.内容耦合 B. 异构耦合
C.控制耦合 D. 数据耦合
解析:耦合可根据耦合程度从高到低分为:内容耦合——若一个模块直接访问另一模块的内容,则这两个模块称为内容耦合。公共耦合——若一组模块都访问同一全局数据结构,
则称为公共耦合。外部耦合——若一组模块都访问同一全局数据项,则称为外部耦合。控制耦合——若一模块明显地把开关量、名字等信息送入另一模块,控制另一模块的功能,则称为控制耦合。标记耦合——
若两个以上的模块都需要其余某一数据结构的子结构时,不使用其余全局变量的方式而全使用记录传递的方式,这样的耦合称为标记耦合。数据耦合——若一个模块访问另一个模块,被访问模块的输入和输出都是数据项参数,
则这两个模块为数据耦合。非直接耦合——若两个模块没有直接关系,它们之间的联系完全是通过程序的控制和调用来实现的,则称这两个模块为非直接耦合,这样的耦合独立性最强。所以答案是B。
4.以下哪一项不是软件危机的表现形式( C )。
A. 开发的软件不满足用户需要 D.开发的软件可维护性差
C.开发的软件价格便宜 D.开发的软件可靠性差
解析:软件危机的表现:①软件需求增长得不到满足②软件生产高成本、价格昂贵 ③软件生产进度无法控制 ④软件需求定义不准确 ⑤软件质量不易保证 ⑥软件可维护性差。C选项与软件危机的表现相反
5.单元测试阶段主要涉及( C )的文档。
A.需求设计 B.编码和详细设计
C.详细设计 D .概要设计
解析:单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。会涉及详细设计的文档。
6.对于瀑布模型,在软件生命周期的8个阶段中,下面的几个选项中哪个出错对软件的影响最大?(C)
A. 详细设计阶段 B.总体设计阶段
C. 需求分析阶段 D. 测试和运行阶段
解析:首先,我们要知道——瀑布模型(Waterfall Model) 是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,
因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段。也就是说出错越早对软件产生的影响越大。上面四个选项中
最早的就是需求分析阶段,如果这一步出现了问题,对后面所有的开发阶段都会产生影响。
二、判断题
1.模块内的高内聚往往意味着模块间的松耦合。 (√)
解析:高内聚低耦合时软件工程中的一个重要概念和设计原则,正确。从模块粒度来看,高内聚:尽可能类的每个成员方法只完成一件事(最大限度的聚合); 低耦合:减少类内部,一个成员方法调用另一个成员方法。从类角度来看,高内聚低耦合:减少类内部,对其他类的调用;从功能块来看 高内聚低耦合:减少模块之间的交互复杂度(接口数量,参数数据)即横向:类与类之间、模块与模块之间;纵向:层次之间;尽可能,内容内聚,数据耦合。
2.面向对象的主要特征除对象抽象、封装、继承外,还有多态性 (√)
解析:抽象、封装、继承、多态是面向对象的四个基本特征,记住即可。
三、简答题和应用题
1.分析软件危机产生的主要原因有哪些?
答:导致软件危机的主要原因有:
(1)软件日益复杂和庞大
(2)软件开发管理困难和复杂
(3)软件开发技术落后
(4)生产方式落后
(5)开发工具落后
(6)软件开发费用不断增加
2. 现有项目需求简述:用户第一次使用前首先要完成注册,然后登录系统。可以通过账号添加好友,可以删除指定的好友,可以查看好友列表和好友信息,只能与已经添加的好友进行聊天通信,可以查询与某个好友的聊天记录。可以
设置个人信息。
请提炼出系统用例,并画出用例图:
答:新用户注册
登录
退出系统
维护个人信息
维护好友列表
个人设置
与好友通信
查看聊天记录
(言之有理即可)