如何评测软件工程知识技能水平?

一、选择题(10*2)(软件工程题库)

(1)软件工程方法学的目的是使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是(C )。(电气信息类试题)

A.硬件环境  B.开发人员的素质

C.软件开发工具和软件开发的环境     D.软件开发的环境

答案解析:软件工程方法得以实施的主要保证是:软件开发中要有良好的软件开发工具和支撑环境,才能支持好的软件开发方法学得以应用,因此方法与工具的结合以及配套的软件和软件开发环境是软件工程方法学得以实施的重要保证。答案为C。

(2)软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是(  )。

A.分析阶段  B.设计阶段  C.编码阶段  D.测试阶段

答案解析:在结构化的软件开发中,一般情况下,可能需要占用的人数最多的阶段是在软件编程的阶段,但从工作量上来说,在软件的需求分析、定义及软件的测试和维护阶段需要的工作量更多,用软件开发计划中的40-20-40原则,即可说明这一点,在软件需求分析和定义阶段,虽然工作量比软件编程多,但因为软件的需求分析和定义对开发人员的素质要求比较高,所以占用的人员并不需要太多;同时由于软件维护的周期比较长,所以其耗的工作量比软件编程多,但一般来说它占用的人员并不比软件编程阶段占用的人员多,所以答案为C。

(3)当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为()

  A、数据耦合    B、公共耦合

  C、标记耦合    D、内容耦合

答案解析:D

(4)需求分析阶段的任务是确定(  )。

  A.软件开发方法    B.软件开发工具

   C.软件开发费       D.软件系统的功能

答案解析:D

(5)下列的( )不是分析建模的目的。

  A.定义可验证的软件需求

  B.描述客户需求

  C.开发一个简单的问题解决方案

  D.建立软件设计的基础

答案解析:C

(6)软件测试方法中,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试()。

  A、结构合理性

  B、软件外部功能

  C、程序正确性

  D、程序内部逻辑

答案解析:D

(7)下列黑盒测试技术的说法错误的是:()。

  A、划分等价类属于黑盒测试技术

  B、边界值分析属于黑盒测试技术

  C、错误推测法属于黑盒测试技术

  D、逻辑覆盖法属于黑盒测试技术

答案解析:D

(8)对象实现了数据和操作的结合,使数据和操作(  )于对象的统一体中。

  A.结合    B.隐藏

  C.封装    D.抽象

答案解析:C

(9)下列选项中,不属于模块间耦合的是()。

  A)内容耦合  B)异构耦合

  C)控制耦合  D)数据耦合

答案解析:B。耦合可以分为下列几种,它们之间的耦合度由高到低排列:内容耦合——若一个模块直接访问另一模块的内容,则这两个模块称为内容耦合。公共耦合——若一组模块都访问同一全局数据结构,则称为公共耦合。外部耦合——若一组模块都访问同一全局数据项,则称为外部耦合。控制耦合——若一模块明显地把开关量、名字等信息送入另一模块,控制另一模块的功能,则称为控制耦合。标记耦合——若两个以上的模块都需要其余某一数据结构的子结构时,不使用其余全局变量的方式而全使用记录传递的方式,这样的耦合称为标记耦合。数据耦合——若一个模块访问另一个模块,被访问模块的输入和输出都是数据项参数,则这两个模块为数据耦合。非直接耦合——若两个模块没有直接关系,它们之间的联系完全是通过程序的控制和调用来实现的,则称这两个模块为非直接耦合,这样的耦合独立性最强。

(10)数据流图是用于表示软件模型的一种图示方法,在下列可采用的绘制方法中,( )是常采用的。

  ①自顶向下  ②自底向上  ③分层绘制  ④初步求精

    A.全是    B.①③和④    C.②③和④    D.①和③

答案解析:B

二、判断题(5*2分)

(1)详细设计阶段的任务是具体地编写程序,必须关注最终的程序代码的质量。(×)

(2)白盒测试方法又称为功能测试。(×)

(3)按照瀑布模型开发软件的一条指导思想是清楚地区分逻辑设计与物理设计,以便尽早开始程序的物理实现。(×)

(4)按照瀑布模型开发软件的一条指导思想是清楚地区分逻辑设计与物理设计,以便尽早开始程序的物理实现。(√)

(5)按照瀑布模型开发软件的一条指导思想是清楚地区分逻辑设计与物理设计,以便尽早开始程序的物理实现。(×)

三、名词解释题(5*4分)

重构

观察者模式

功能内聚

松散耦合

模块化

四、简答题(6*5分)

1.软件工程的7条原则

答:1.抽象

  2.信息隐藏

  3.模块化

  4.局部化

  5.一致性

  6.完全性

  7.可验证性

2.软件生存周期如何划分

答:可将软件生存周期划分为3个过程共九个阶段

  软件定义过程:可行性研究、需求分析2个阶段组成;

  软件开发过程:由概要设计、详细设计、实现、组装测试、验收测试5个阶段组成;

  软件使用与维护过程:使用与维护、退役2个阶段组成。

3.试从软件的特点出发分析软件危机产生的原因(2018电大期末考试)

答:(1)软件是一种逻辑实体,具有抽象性,无法看到软件本身的形态,必须通过观察,分析,思考和判断才能了解他的功能和性能

  (2)软件对硬件和环境有着不同程度的依赖性,导致了软件升级和移植的问题。计算机硬件和支撑环境不断升级,为了适应运行环境的变化,软件也需要不断维护,并且维护的成本通常比开发成本高很多。

  (3)软件生产至今尚未摆脱手工方式,软件开发的手工行为造就了一个致命的问题,就是为应用量身定做软件,长期以来,软件给人的感觉是修改几条指令很简单,客户总是强调软件要适应自己的业务需求,因此,软件产品大多数为客户订做,通用性差。

  (4)软件设计人类社会的各行各业,常常涉及一些行业知识,对软件工程师提出了很高的要求。

4.活动图与状态图的区别(2018电子科技大学)

答:(1)描述重点不同:活动图描述的是从活动到活动的控制流;状态图描述的是对象的状态及状态之间的转移。

  (2)使用场合不同:在分析用例、理解涉及多个用例的工作流、处理多线程应用等情况下,一般使用活动图;在显示一个对象在其生命周期内的行为时,一般使用状态图。

5.什么是结构化分析方法?该方法使用什么描述工具?

答:结构化的分析方法是面向数据流的方法,因此,此方法研究的核心是数据的组成和数据流向和对数据的加工处理。结构化分析方法用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直至找到满足功能要求的所有可实现的软件元素为止

描述工具:1系统流程图、2 数据流程图、3数据字典、4 IPO图、 5层次方框图、6实体—关系图、7状态—变迁图

6.UML中有哪几类个视图,它们的作用分别是什么?

答:(1)用例视图(Use-Case view)

   用例视图用于描述系统的功能集。它是从系统外部以用户角度,对系统做的抽象表示。用例视图所描述的系统功能依靠于外部用户或另一个系统触发激活,为用户或另一个系统提供服务,实现与用户或另一个系统之间的交互。

用例视图中可以包含若干个用例,用例表示系统能够提供的功能,用例视图是其他视图的核心和基础。其他视图的构造依赖于用例视图中所描述的内容,因为系统的最终目标是实现用例视图中描述的功能,同时附带一些非功能性的特性,因此用例视图影响着所有其他的视图。

  (2)逻辑视图(Logical view)

   如果说用例视图描述系统“做什么”,那么逻辑视图就是描述“怎么做”。系统的静态结构描述类、对象和它们之间的关系,反映的是系统静态特征或结构组成。

  (3)组件视图(Component view)

   组件视图用来描述系统实现的结构和行为特征,反映系统各组成元素之间的关系。组件视图由组件图实现,主要供开发者和管理者使用。

  (4)并发视图(Concurrency View)

   并发视图用来描述系统的动态和行为特征。并发视图将任务划分为进程或线程形式,通过任务划分引入并发机制,可以高效地使用资源、并行执行和处理异步事件。除了划分系统为并发执行的进程或线程外,并发视图还必须处理通信和同步问题。

  (5)配置视图(Deployment View)

   配置视图体现了系统的实现环境,反映系统的物理架构。配置视图还包括一个映射,该映射显示在物理架构中组件是怎样分配的。

五、任选一种设计模式,并设计对应的代码示例

答案解析:(以装饰模式为例)

//增加一个dress方法
public class Man {
    public String name;

    public Man(){

    }

    public Man(String name) {
        this.name = name;
    }

    public void dress() {
        System.out.println("装扮的" + name);
    }
}
//创建一个装饰者类,命名为Finery(服饰):
public class Finery extends Man{
    protected Man man;

    public void decorate(Man man){
        this.man = man;
    }

    public void dress(){
        if (man != null){
            man.dress();
        }
    }
}
//创建一堆具体装饰者类,它们继承自Finery:
public class TShirt extends Finery {

    @Override
    public void dress() {
        System.out.println("T恤衫");
        super.dress();
    }
}

public class SportShoes extends Finery {
    @Override
    public void dress() {
        System.out.println("运动鞋");
        super.dress();
    }
}

//......
//实现
public static void main(String[] args) {
    Man xiaoMing = new Man("小软");

    //场合一:运动
    Finery sportShoes = new SportShoes();
    sportShoes.decorate(xiaoMing);   //穿了运动鞋的小软

    Finery tShirt = new TShirt();
    tShirt.decorate(sportShoes);     //穿了运动鞋的小软再穿一件T恤衫
    tShirt.dress();                  //装扮好了

    //场合二:......
}

原文地址:https://www.cnblogs.com/ahlike/p/12093316.html

时间: 2024-09-28 03:27:03

如何评测软件工程知识技能水平?的相关文章

如何评测软件工程知识技能水平

一.软件工程师的软件工程知识技能水平高低主要体现在哪些方面总结 1.软件工程师 软件工程师英文是Software Engineer,是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格.软件工程师是从事软件开发相关工作的人员的统称.软件工程师包括软件设计人员.软件架构人员.软件工程管理人员.程序员等一系列岗位,工作内容都与软件开发生产相关.软件工程师的技术要求是比较全面的,除了最基础的编程语言(C/C++/JAVA等).数据库(SQL/ORACLE/DB2等)等,还有诸多如AJ

软件工程知识技能水平测试

软件工程知识技能水平测试 通过软件工程课程的学习,学生应掌握软件开发与维护的原则.技术及方法.软件项目的计划.组织及管理.以及如何用工程化的方法开发软件项目,在开发过程中应遵循的流程.准则.标准和规范. 一.软件工程知识技能水平高低的主要体现方面 开发环境的了解.掌握. 这方面包括一些常用开发工具的了解,以及linux系统的了解. 开发语言的掌握程度. 由于每个人偏好的开发语言不同,对这方面的考察应更侧重算法或数据结构的考察. 软件开发的流程 应了解掌握瀑布模型.敏捷开发等软件工程开发的流程.了

线上知识技能水平自测

高校俱乐部现正推出一系列线上自测活动,欢迎同学们进行自我水平测试. 参加"C语言if语句大考察"赢取下载分 想了解自己C语言if语句的掌握程度吗?快来参与大考察赢取CSDN下载分活动吧.10道题目,3次机会,单选和多选题两种题型.多次作答取最高分为排名依据,排名前10名每人赠送20个下载分:11-20名每人赠送15个下载分:21-30名每人赠送10个下载分.活动时间:2014.07.22-2014.08.15 计算机二级考试C语言基础知识测试 本试卷满分100分,为历年国家计算机二级考

计算机网络知识技能水平的测评试题

本张试卷分成三个部分:选择题,简答题以及理解题三个部分,目标再于检测同学们对老师上课内容的理解,既可以考察大家上课听讲情况,也能考察大家融会贯通的能力,最重要的是扩展思维的能力. 一.选择题 1.假设一个采用CSMA/CD协议的100 Mhps局域网,最小帧长是128B,则在一个冲突域内两个站点之间的单向传播延时最多是(2019年408考试题) A.2.56 μs B. 5.12 μs C. 10.24 μs D.20.48 μs 2.对于滑动窗口协议,如果分组序号采用3比特编号,发送窗口大小为

Web前端知识技能大汇总

Web前端知识技能大汇总 来源:github 发布时间:2015-07-08 阅读次数:3432 28 项目起源 还记得@jayli 的这幅前端知识结构图么. 图片的形式具有诸多的不便.缺失源图的我们,无法为此图贡献些什么,随着时间的迁移,或许有些技术点会发生改变,所以有了这个GitHub项目.我们可以通过协作的方式来共同维护这个项目.Git的历史记录也可以见证前端行业的一些变迁. 可视化效果 前端开发知识结构 前端工程师 浏览器 IE6/7/8/9/10/11 (Trident) Firefo

关于《软件工程知识树》项目我自己写的一些文档

立项说明书(未修改之前的初版)我主要负责模型板块,对增量模型进行了分析   一.概述 本项目是名为“软件工程知识树”的网页数据管理系统.旨在采用B/S模型创建一个树形界面的文档管理网页.通过集成前端服务,平台管理,数据库调用搭建一款具有节点.内容管理功能的页面系统. 该项目界面以一颗没有展开的树为主,点击节点,不停展开,有内容的点击跳转到内容页.所有节点和内容可以增删改查,保持动态更新. 二.模型分析 1.      采用模型: 增量模型 2.     模型采用原因分析: I.        

如何评测一个软件工程师的计算机网络知识水平与网络编程技能水平?

本张试卷习题全部来自于2012年考研408计算机网络部分真题,答案解析部分参考了网上的答案并进行了完善. 一.选择题 1. 在 TCP/IP 体系结构中,直接为 ICMP 提供服务的协议是 . A. PPP B. IP C. UDP D. TCP 2.在物理层接口特性中,用于描述完成每种功能的事件发生顺序的是 . A. 机械特性 B. 功能特性 C. 过程特性 D. 电气特性 3. 以太网的 MAC 协议提供的是 . A. 无连接不可靠服务 B. 无连接可靠服务 C. 有连接不可靠服务 D. 有

软件工程师的计算机网络知识水平与网络编程技能水平评测

课程总结 1.Linux socket协议分析 2.TCP协议栈 网络程序设计课程试卷 一.选择题(10题) 1. 在OSI参考模型中,直接为会话层提供服务的是 (C)A.应用层       B.表示层         C.传输层      D.网络层 2.路由选择协议位于(C).  A. 物理层     B. 数据链路层       C. 网络层          D. 应用层   3.三次握手方法用于( A).  A. 传输层连接的建立  B. 数据链路层的流量控制   C. 传输层的重复检

如何评测一个软件工程师的计算机水平网络知识水平与网络编程技能水平?

1.OSI参考模型的第5层(自下而上)完成的主要功能是 A. 差错控制 B. 路由选择 C. 会话管理 D. 数据表示转换 2.100BaseT快速以太网使用的导向传输介质是 A. 双绞线 B. 单模光纤 C. 多模光纤 D. 同轴电缆 3. 对于滑动窗口协议,如果分组序号采用3比特编号,发送窗口大小为5,则接收窗口最大是 A. 2 B. 3 C. 4 D. 5 4. 假设一个采用CSMA/CD协议的100Mbps局域网,最小帧长是128 B,则在一个冲突域内两个站点之间的单向传播延时最多是 A