一、一个软件工程师的软件工程知识技能水平高低主要体现在哪些方面?
软件工程师是从事软件开发相关工作的人员的统称。它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位,工作内容都与软件开发生产相关。软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)等,还有诸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。此外,关于网络工程和软件测试的其他技术也要有所涉猎。
综之,我认为一个合格的软件工程师应该有以下素养:
1、代码书写符合规范且风格优良、能够对任务进行合理的分解、具有对代码进行单元测试的习惯。
2、对于业务有独到的理解与分析、熟悉需求工程。
3、学习能力。IT技术可谓是更新换代最快的了,从市面上的电脑和手机就可以看出来。所以,只依靠自己之前学到的知识,很快就会被这个时代所淘汰,软件工程师应具备的技能里很重要的一点就是学习能力。
4、熟悉软件工程的过程和项目管理。包括软件的生命周期、软件的开发过程、计划和管理项目、交付系统、维护系统等。
5、良好的软件测试习惯,软件研发作为一项工程而言,一个很重要的特点就是问题发现的越早,解决的代价就越低,程序员在每段代码,每个子模块完成后进行认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对整体系统建设的效率和可靠性就有了最大的保证。
6、较强的英语阅读和写作能力。程序世界的主导语言是英文,编写程序开发文档和开发工具帮助文件离不开英文,了解业界的最新动向、阅读技术文章离不开英文,与世界各地编程高手交流、发布帮助请求同样离不开英文。作为基础软件工程师,具有一定的英语基础对于自身的学习和工作极有帮助。
最后,软件知识储备也是一个重要因素,我们参考网上的一些试题,来进行一下学习。
二、软件工程知识技能水平的测评试题
一、选择题
1. 通过保证每个模块只完成一个特定的功能,这样可以大大减少模块间的(B)
A、内容耦合 B、控制耦合 C、公共耦合 D、数据耦合
2. 需求分析最终结果是产生( B )
A. 项目开发计划 B. 需求规格说明书
C. 设计说明书 D. 可行性分析报告
3. 软件特性中,一个软件能再次用于其他相关应用的程度称为( B )。
A.可移植性 B.可重用性
C.容错性 D.可适应性
4. 在设计测试用例时,应当包括(C)
A、合理的输入条件 B、不合理的输入条件
C、合理的和不合理的输入条件 D、部分条件
5. 软件工程的出现主要是由于(C )。
A.程序设计方法学的影响 B.其它工程科学的影响
C.软件危机的出现 D.计算机的发展
6. UML 是软件开发中的一个重要工具,它主要应用于哪种软件开发方法 ( C )
A 、基于瀑布模型的结构化方法 B 、基于需求动态定义的原型化方法
C 、基于对象的面向对象的方法 D 、基于数据的数据流开发方法
二、判断题
1. 模块的设计要力求做到高内聚、低耦合。(T )
2. 划分模块可以降低软件复杂度和工作量,所以应该将模块划分得越小越好。(F )
3. 用CASE环境或程序自动生成工具来自动生成一部分程序。( T)
4. 目前我国还没有颁布软件开发标准。(F)
5. 耦合度是对软件结构中模块间关联程度的一种度量。在设计软件时应追求尽可能紧密的耦合的系统。(F)
6. 在面向对象设计阶段则着重完成“如何做”的问题,也就是着重考虑对象的实现细节。(T)
三、简答题
2. 说明结构化程序设计的主要思想是什么?
答:1.自顶向下、逐步求精的程序设计方法
2.使用3种基本控制结构、单入口、单出口来构造程序。
3. 某一新闻管理系统主要用来发布新闻,管理员只需要一个,登录后可以在后台发布性温。任何人可以浏览新闻,浏览者可以注册成为系统会员,组册后可对新闻进行评论。管理员在后台可以对新闻、评论、注 册会员进行管理,如修改、删除等。
请画出该新闻管理系统的用例图。