根据本课程的学习以及自身的知识和经验,您认为一个软件工程师的软件工程知识技能水平高低主要体现在哪些方面,请您简要总结一下:
1.具有优秀的学习能力,IT技术更新很快,软件工程师应具备的技能里很重要的一点就是学习能力。只有具备了学习能力,才能很快适应市场与业务的需要,有时候工作的需求不是你在学校就已经学过的,只能靠着之前积累的经验与快速学习熟悉新的知识,升华自己的能力,为以后成为架构师后者其他职位打下基础。
2.具有扎实的计算机专业知识,吃透高等数学、离散数学、算法等课程。(1)基础编程语言,编程语言是软件工程师必备的技能,不同方向的开发需要使用到不同的编程语言通常来说,软件工程师往往需要掌握多门编程语言。(2)算法。算法是软件工程师的重点知识技能,算法的掌握情况往往能够决定软件工程师的成长高度。(3)数据库。信息是以数据为中心的,因此与数据库的交互在所有软件中都是必不可少的,了解数据库操作和编程是软件工程师需要具备的基本素质之一。目前常用的数据库软件有Oracle数据库和SQL Server等。
3.具有对这个行业的热爱,才有能坚持与继续学习的动力。
4.具有良好的交流与沟通能力,现在的软件开发永远不是一个人的游戏,需要与团队成员协调沟通,分配好工作的任务与进度,才能够开发出高质量的软件。
一、选择题
1、软件工程的出现主要是由于( )
A.程序设计方法学的影响
B.其它工程科学的影响
C.软件危机的出现
D.计算机的发展
解析:C
软件规模越来越大,结构越来越复杂;软件开发管理困难而复杂;软件开发技术落后;生产方式落后,仍采用手工方式;开发工具落后,生产率提高缓慢。
2.软件开发和维护过程中出现的一系列严重问题称为()。
A.软件工程
B.软件开发
C.软件开发
D.软件危机
答案:D。软件危机是指在计算机的开发和维护过程中所遇到的一系列严重问题。这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎所有软件都不同程度地存在这些问题。
考查的知识技能、出题的目的意图:学生了解软件危机的概念,了解到软件危机几乎是所有软件共有的问题。
3、以下说法错误的是()
A.面向对象分析与面向对象设计的定义没有明显区别
B.从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程
C.在实际的软件开发过程中,面向对象分析与面向对象设计的界限是模糊的
D.面向对象分析和面向对象设计活动是一个多次反复迭代的过程
答案:A。本题考查面向对象分析和面向对象设计的区别
面向对象分析的关键是识别问题域内的对象及其关系。分析的任务基本完成后,下一步则是将分析的成果用于设计中。就是根据成本与要求,规划出系统应如何实现的问题。所以A中“分析与设计的定义没有明显区别”的说法是不正确的
4、瀑布模型的存在问题是() (东北大学软件工程期末考试题)
A、缺乏灵活性 B、用户容易参与开发 C、用户与开发者易沟通 D、适用可变需求
答案:A。本题考查了软件开发常见模型的优缺点。
瀑布模型:适用于用户需求明确,完整、无重大变化的软件项目开发,文档驱动。缺点:文档驱动;用户难以清除给出所有需求;用户等待周期长;缺乏灵活性。
V模型:强调测试的重要性,每步都进行测试。
原型模型:在用户不能给出完整明确的需求时,根据用户的基本需求,快速建造原型,然后进行评估,进一步精华、调整原型,使其满足用户的要求,也使开发者对将要做的事情有更好的理解。缺点:没有考虑软件的总体质量和长期的可维护性。不便管理。
增量式模型:迅速向用户提交完成部分工作的产品,分批,逐步的向用户提交产品,需要更精心的设计,但将在维护阶段获得回报。缺点:增量时必须不破坏原来已开发的产品,有无法集成的风险。
喷泉模型:主要用于面向对象软件开发项目。
螺旋模型:基本思想是降低风险,迭代更新产品,有利于软件的重用,减少了过多测试或测试不足,维护和开发没有本质区别。缺点:风险驱动,需要专业知识,否则风险更大。适用于内部开发的大规模软件项目。随着迭代次数增加,工作量加大,软件开发成本增加。
5、软件开发瀑布模型中的软件定义时期各个阶段依次是() (百度文库)
A、可行性研究,问题定义,需求分析 B、 问题定义,可行性研究,需求分析 C、可行性研究,需求分析,问题定义 D、以上顺序都不对
答案:B。本题考查瀑布模型中软件定义时期。
6、软件中所花费用最多的阶段是()(百度文库)
A、详细设计 B、软件编码 C、软件测试 D、软件维护
答案:D。本题考查软件各个阶段
软件设计的各个阶段包括
问题定义:明确要解决的问题是什么。
可行性研究:明确做不做,从经济、技术、社会因素论证解决方案的可行性。
需求分析阶段:明确做什么,提出完整、准确、清晰、具体的要求。
概要设计:明确怎么做,制定最佳方案的详细计划,系统的体系结构设计。
详细设计:明确具体做法,设计出程序的详细规格说明。
编码和单元测试:编写出正确的、易理解的、易维护的程序模块。
综合测试:通过各类的测试使软件达到预定的要求。
软件维护:通过各种必要的维护活动使系统持久的满足用户的要求。
7、
UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法( )。(商汤科技2018秋招嵌入式软件工程师笔试)
A.基于瀑布模型的结构化方法
B.基于需求动态定义的原型化方法
C.基于对象的面向对象的方法
D.基于数据的数据流开发方法
解析:C
UML是统一建模语言(UML是 Unified Modeling Language的缩写)是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。UML是非专利的第三代建模和规约语言。 UML是在开发阶段,说明,可视化,构建和书写一个面向对象软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。UML可以贯穿软件开发周期中的每一个阶段。被OMG采纳作为业界的标准。UML最适于数据建模,业务建模,对象建模,组件建模。UML作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。当模型建立之后,模型可以被UML工具转化成指定的程序语言代码。IBM的Rational Rose和MS的Visio都是UML工具。
8、下列哪个阶段不属于软件生存周期的三大阶段( )
A.计划阶段 B.开发阶段
C.编码阶段 D.维护阶段
答案:C。软件的生存周期包括:计划阶段、开发阶段、维护阶段。编码是开发阶段的一部分
9、软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是( )。
A.分析阶段 B.设计阶段 C.编码阶段 D.测试阶段
答案:C。在结构化的软件开发中,一般情况下,可能需要占用的人数最多的阶段是在软件编程的阶段,但从工作量上来说,在软件的需求分析、定义及软件的测试和维护阶段需要的工作量更多,用软件开发计划中的40-20-40原则,即可说明这一点,在软件需求分析和定义阶段,虽然工作量比软件编程多,但因为软件的需求分析和定义对开发人员的素质要求比较高,所以占用的人员并不需要太多;同时由于软件维护的周期比较长,所以其耗的工作量比软件编程多,但一般来说它占用的人员并不比软件编程阶段占用的人员多。
10、需求分析的主要任务是()
A、确定系统怎样完成工作 B、确定系统必须完成哪些工作 C、研究系统的软件结构 D、确定软件开发费用
答案:B。本题考查需求分析的任务
需求分析:开发人员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。主要任务是确定系统必须完成哪些工作
二、简答题
1. 软件测试要经过哪些步骤 ?这些测试与软件开发各阶段之间有什么关系 ?
答:软件测试要经过的步骤是:单元测试→集成测试→确认测试→系统测试。
单元测试对源程序中每一个程序单元进行测试, 检查各个模块是否正确实现规定的功能, 从而发现模块在编码中或算法中的错误。该阶段涉及编码和详细设计文档。
集成测试是为了检查与设计相关的软件体系结构的有关问题, 也就是检查概要设计是否合理有效。
确认测试主要是检查已实现的软件是否满足需求规格说明书中确定了的各种需求。系统测试是把已确认的软件与其他系统元素 (如硬件、其他支持软件、数据、人工等 )结合在一起进行测试。以确定软件是否可以支付使用。
2. 什么是白盒测试?什么是黑盒测试?
答:白盒测试又称为结构测试,它的前提条件是可以看成将程序放在一个透明的白盒子中,也就是完全了解了软件系统的结构和整个处理过程。黑盒测试又称为功能测试,它把程序看成是一个不透明的黑盒子,完全不去考虑程序的内部结构 和处理过程。
3.软件产品的特点是什么
答:①软件开发与硬件研制相比,更依赖于开发人员的业务素质、智力、人员的组织、合作和管理。
②大型软件仍然存在着潜伏的错误。
③软件产品开发成功后,只需对原版软件进行复制,即可生产出任意多的同样的产品。
④还有,软件在使用过程中的维护工作比硬件要复杂得多。
⑤由于软件不是物理产品,所以它不会磨损和老化。
三、应用题
1. 某一新闻管理系统主要用来发布新闻,管理员只需要一个,登录后可以在后台发布性温。任何人可以浏览新闻,浏览者可以注册成为系统会员,组册后可对新闻进行评论。管理员在后台可以对新闻、评论、注册会员进行管理,如修改、删除等。请画出该新闻管理系统的用例图。
2. 某报社采用面向对象技术实现报刊征订的计算机管理系统,该系统基本需求如下:
(1)报社发行多种刊物,每种刊物通过订单来征订,订单中有代码,名称,订期,单价,份数等项目,订户通过填写订单来订阅报刊。
(2)报社下属多个发行站,每个站负责收集登陆订单、打印收款凭证等事务。
(3)报社负责分类并统计各个发行站送来的报刊订阅信息。
请就此需求建立对象模型。
四、主观题
经过了一个学期的课程学习,谈谈你对软件工程的看法,以及结合自己的项目经历,简述自己距离一个优秀的软件工程师还需要做哪些努力。
来源:https://www.cnblogs.com/H1K777/p/12154522.html