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


    一 、一个软件工程师的软件工程知识技能水平高低主要体现在哪些方面

    1、编程语言和算法能力

    编程语言是软件工程师的必备节能,不同方向的开发需要使用到不同的编程语言,因此软件工程师应该对各种编程语言都有一定的了解,同时要有至少两门能够熟练掌握的语言,并且 能深入理解各种编程思想,从而为以后的软件开发奠定坚实基础。

    2、领域知识

    不同开发领域需要掌握不同的知识架构。比如大数据软件工程师往往需要掌握Hadoop、Spark平台的使用,而Web开发工程师往往还需要掌握前后端开发技术,包括一系列Web开发框架的使用等等。

    3、设计能力

    一个优秀的软件工程师不仅需要专业的技能,还需要有一定的设计能力,这样开发出来的产品才会收到大众的欢迎,从而获得广阔的市场。

    4、团队协作能力

    软件开发往往是一个团队协作。因此,作为软件工程师就要具备一定的团队协作能力,来保证每个人都负责专门的工作。

    二、期末测评卷(来源:百度文库,随堂测试)

    一、选择题

    1、以下哪个不是详细设计中常用的图形描述工具     ( )       
        A、数据流图     B、程序流图    C、盒图(N-S图)   D、问题分析图(PAD)

    解析:

    在软件详细设计阶段,常用的图形描述工具有程序流程图,盒图(NS 图)和问题分析图(PAD) 

    2、软件设计包括 ( D )两个阶段。  
         A、接口设计和结构设计       B、数据设计和概要设计      C、结构设计和过程设计       D、概要设计和详细设计

    解析:

    软件设计包括的两个阶段:

    • 概要设计:主要包括:结构设计、接口设计、全局数据结构设计、过程设计
    • 详细设计

    3、耦合的强弱取决于(A)。

    A. 模块间接口的复杂程度

    B. 调用模块的方式

    C. 通过接口的信息

    D.  模块内部各个元素彼此之间的紧密结合程度

    解析:

    耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决于模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差( 降低耦合性,可以提高其独立性)。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个准则就是高内聚低耦合。

    4、 程序的三种基本控制结构是(     B)。

    A. 过程、子程序和分程序       B. 顺序、选择和循环

    C. 递归、迭代和回溯              D. 调用、返回和转移

    解析:

    程序的三种基本控制结构 :顺序结构、选择结构、循环结构

    5、面向数据流的软件设计方法,一般是把数据流图中数据流划分为(B),再将数据流图映射为软件结构。

    A、数据流和事务流               B、交换流和事务流

    C、信息流和控制流               D、交换流和数据流

    解析:

    面向数据流的设计方法把数据流转换成软件结构,数据流的类型决定了转换的方法。有两种类型的数据流:变换流和事务流。

    二、简答题

    1、什么叫软件设计? 

    软件设计是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案。

    2、计算机软件的开发经过哪三个大阶段? 

    三个阶段:定义、开发、维护

    3、软件需求分析的任务是什么?

    需求分析的任务是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、 具体的要求。

    需求分析的任务包括以下几方面:

    • 确定对系统的综合要求
    • 分析系统的数据要求
    • 导出系统的逻辑模型
    • 修正系统的开发计划

    4、用例图的作用

    用例图是外部参与者所能观察到的系统功能的模型图。由一组用例、参与者及它们之间的关系组成。主要用于对系统、子系统或类的功能行为进行建模。

    5、UML中的关系有哪些

    依赖、类属、关联、实现、组合和聚合

    三、名词解释

    1、重构

    就是通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。

    2、多态

    在面向对象语言中,接口的多种不同的实现方式即为多态。多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。

    3、可修改性

    可修改性描述了程序能够被正确修改的难易程度。一个可修改的程序应当是可理解的、通用的、简单的、灵活的。

    4、模块化

    模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其内部特性。

    5、抽象

    抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。抽象可以屏蔽差异性,对于使用者来说,调用的对象都一样,他并不关心你的具体实现。

    四、分析题

    1、假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。要求:画出系统的数据流图。 

    2、某一新闻管理系统主要用来发布新闻,管理员只需要一个,登录后可以 在后台发布新闻。任何人可以浏览新闻,浏览者可以注册成为系统会员,注册后 可对新闻进行评论。管理员在后台可以对新闻、评论、注册会员进行管理,如修改、删除。请画出该新闻管理系统的用例图:

                

  • 相关阅读:
    拾遗:systemctl --user
    拾遗:~/.zshrc 配置
    拾遗:YouCompleteMe 前传——编译安装 llvm + clang
    洛谷P1546 最短网络 Agri-Net(最小生成树,Kruskal)
    洛谷P1462 通往奥格瑞玛的道路(二分+spfa,二分+Dijkstra)
    HDU6669 Game(思维,贪心)
    HDU6672 Seq(找规律)
    HDU6668 Polynomial(模拟)
    洛谷P1378 油滴扩展(搜索)
    机器学习数学基础(四)
  • 原文地址:https://www.cnblogs.com/pghzl-123/p/12150644.html
Copyright © 2020-2023  润新知