软件工程思考题1

1.结合你之前的工程经验以及任正非致员工信,谈谈你对软件工程的看法。

软件工程是开发、运行、维护和修复软件的系统方法。

优秀的软件应该具有安全性,韧性,隐私性,可靠性和可用性,才能被用户信任与认可。可信不仅仅是产品外在表现的高质量结果,更是产品内在实现的高质量过程,是结果和过程的双重可验证的高质量。而只有全面提升软件工程能力和实践,才有可能打造出可信的高质量产品。同时,应该遵守行业规范,对腐化的架构及不符合软件工程规范和质量要求的历史代码要及时重构。重视用户需求,不断提高技术水平,编写简洁、规范、可读性强、健壮安全的代码,真正做到高内聚与低耦合。

2.软件开发就是编码么?谈谈你对软件开发的本质的认识。

编码只是软件开发的一小部分。

软件开发是实现问题域中的概念和处理逻辑到运行平台的概念和处理逻辑的映射。

“问题空间”就是系统要解决的“领域问题”,可以简单理解为一个领域就对应一个问题空间,是一个特定范围边界内的业务需求的总和。软件开发过程包括需求分析,设计,实现,测试和维护,整个过程也需要不断地验证确认。

3.举例说明软件的特点有哪些?

复杂性:大型软件百万行源代码,上万个文件;模块间各种显性和隐形的依赖关系

不可见性:看不见源代码的具体执行;软件出错很难完整重现程序出现的问题

服从性:软件服从硬件;服从用户需求、行业系统要求

易变性:软件升级(新的功能,适应新的硬件);比硬件容易修改,但正确修改难

4.什么是软件危机?软件危机出现的原因及解决手段有哪些?

软件危机:后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。

表现为:
规模大、复杂度增加;供需差增大;价格昂贵;开发速度慢;质量难以保证

解决手段:

重视需求分析,与客户的沟通,确切表达需求

重视设计和实现过程的资料

充分的测试工作

维护和管理工作

统一的、公认的方法论和规范指导

5.软件工程的要素有哪些?各有什么作用?

三要素:方法(技术手段),过程(任务框架和步骤),工具(支撑环境)

软件工程方法为软件开发提供了“如何做”的技术。它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。
软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。
软件工具为软件工程方法提供了自动的或半自动的软件支撑环境。目前,已经推出了许多软件工具,这些软件工具集成起来,建立起称之为计算机辅助软件工程(CASE)的软件开发支撑系统。CASE将各种软件工具、开发机器和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 嵌入式软件工程师是一种专业的软件工程师,他们主要从事于嵌入式系统开发。嵌入式系统是指嵌入于其他产品中以完成特定功能的电路系统和软件系统。嵌入式软件工程师需要掌握多种编程语言,如C语言、C++、汇编语言和其他高级语言。同时,他们需要掌握嵌入式系统的硬件原理和工作原理。 对于嵌入式软件工程师来说,试题主要包括几个方面。首先是嵌入式系统的基础知识,例如系统的结构、组成部分、软硬件接口、中断和时钟等方面。接着是熟练掌握C语言编程,包括指针、数组、结构体和函数等内容。此外,还需要熟悉协议栈的相关知识,如TCP/IP、RS232、RS485等。同时,了解嵌入式系统的调试和测试方法是必要的。 对于企业而言,拥有优秀的嵌入式软件工程师可以极大地提高产品的竞争力和市场占有率。因此,在职场中,嵌入式软件工程师的职业前景非常广阔,其薪资水平也相对较高。但是,能否成为合格的嵌入式软件工程师,取决于其专业知识和实践能力的积累。 ### 回答2: 嵌入式软件工程师试题需要具备以下几方面的技能和知识: 1. 熟悉计算机操作系统和嵌入式系统的原理和应用,具备嵌入式系统开发和调试经验。 2. 熟悉C语言及其编译器系统,掌握基本算法和数据结构,擅长利用硬件资源进行系统开发。 3. 熟悉单片机架构,能够进行底层芯片编程和开发,包括通信接口和外设控制等。 4. 熟悉嵌入式系统标准协议,如TCP/IP协议,串口通讯协议等。 5. 具备团队协同和沟通能力,良好的学习和自我提升能力。 在面试过程中,可以通过技术性笔试、手写代码、项目经验等方式来考察应聘者的技能和知识水平。在面试中重点考察面试者的思路和解决问题的能力,看是否能够从问题中提取关键信息,对问题进行分析和解决。同时,需要了解面试者的学习能力和自我提升能力,以确保其能适应不断变化的市场需求和技术要求。 ### 回答3: 嵌入式软件工程师是一种专门从事嵌入式系统软件设计、开发、测试等工作的职业,需要具备扎实的计算机基础、丰富的编程经验以及深入的嵌入式系统技术知识。在csdn上面的嵌入式软件工程师试题,主要测试面试者的技术水平、工作经验以及解决实际问题的能力。 这些试题涵盖了各种嵌入式系统开发技术,例如C语言编程、嵌入式架构设计、嵌入式操作系统、通信接口、调试技术等等。对应的题型也包括选择、填空、编程、设计等不同类型,从而全面考察面试者的知识广度和深度。 在应对这些试题时,面试者需要有很强的逻辑思维能力和独立解决问题的能力,能够从工程实际出发,分析问题、提出解决方案,并深入思考性能优化、效率提升、安全保障等实际问题,从而更好地满足嵌入式系统的实际需求。 总之,嵌入式软件工程师试题所考察的技能和能力是非常丰富和全面的,需要面试者具备扎实的理论基础和实践经验,同时在实践解决问题时注重细节、性能和效率等。对于嵌入式软件工程师而言,不断学习和技术提升才能更好的胜任这项职业。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值