软件工程师必备知识

2022-10-12

第一篇:软件工程师必备知识

工程师必备小软件

工程师必备十大“小软件”

今天呕心力荐给大家,这些软件可以帮助我们极大的提高工作效率,让我们真正懂得“小软件解决大问题”的道理,希望能给大家带来方便,在这里泣血推荐。同时也抛砖引玉希望大家把工作中的好软件推荐给同行,让大家共同进步!

欢迎分享转载 不必特别说明

1、批量改名专家

当我们遇到一堆文件需要一个一个改文件名的时候,这个工具就可以帮你解决重复改名的机械运动,能够自动将一系列文件按照一定的规律修改或排序改名,一次操作解决N次的劳动,好软件。

可以到http://co.163.com/forum/content/1785_1067062_1.htm下载。

2、文件名提取工具

当我们有一堆图纸或着文件需要我们做目录的时候,难道我们要一个一个的把文件名敲进excel表里面吗?不用,我们只需要轻轻点一下该工具,你想要输入的文件名就会自动收集到excel文件里面,方便啊!

可以到http://co.163.com/forum/content/1785_1067067_1.htm下载。

3、图片jpeg转CAD

当我们需要画AutoCAD的时候,别人提供的蓝本是JPEG格式的图片怎么办,这时候我们及可以用该软件,把图片转换成CAD,然后进行随意的修改,解决大量的工作时间,尤其是当有地形图的图片的时候,用这个最方便转换后也最接近原始资料。

可以到http://co.163.com/forum/content/1785_1067073_1.htm下载。

4、PDF转CAD文件

国际公司或正规的公司保密做的都很好,他们的CAD成果一般都是PDF版本的,不容易COPY,但国人需要学习先进的技术和模仿最终的图纸,如果图纸是PDF版本的话,就可以用这个软件将PDF格式的图纸转换成CAD,这样就大大减少描图的时间,可以把精力用到钻研别人图纸设计意图和技术上,小软件大大提高工作效率。值得拥有!

可以到http://co.163.com/forum/content/1785_1067077_1.htm下载。

5、批量打印出图软件

每当一个工程结束的时候或者中间需要审查的时候,都要大量的打印图纸,如果工作量大,需要打印几十张甚至上百张图纸的时候,可能要耗费您大半天的时间,而操作全是重复的机械劳动,慢慢的等待,用这个软件可以在您下班的时候或者休息的时候设定好该软件,他就会自动选图、自动打印,而我们要做的就下午上班的时候去打印机旁收我们的图纸,即省时间有省体力,何乐而不为呢,唯一注意的就是再画图的时候养成习惯将我们图框定义成多义

线框,并放在一个图层上,小小软件解决我们大大的麻烦。

可以到http://co.163.com/forum/content/1785_1067084_1.htm下载。

6、CAD窗口切换小工具

实用而简单的小工具,当您打开多张图纸的时,换窗口显示下一张图纸比较麻烦,还要点击工具-窗口等操作,有时还会打开错误的窗口,尤其是在图形之间复制和黏贴的时候比较复杂,该工具可以根据您的设置将您打开的所有的图纸的名称以标题栏的形式显示在您绘图栏的下方或左侧,换窗口超级简单、而且一目了然。

可以到http://co.163.com/forum/content/1785_1067088_1.htm下载。

7、CAD图形贴至word

在编写设计报告的过程中,经常需要将CAD里面的设计图形黏贴至word文档之中,该软件可以方便的将cad中的图形转入word中,大小都能够一次成型,免去修剪调整等工作量,可以提高工作速度,是设计工作者必备的软件之一。

可以到http://co.163.com/forum/content/1785_1064783_1.htm下载。

8、CAD图案填充大全

该软件可以作为CAD的一个插件安装,随CAD启动而启动,直接按填充按钮,选择需要填充的图案,填充图库里有上千张填充图案,涵盖了工程上需要的所有填充图形,比CAD中的填充命令简单快捷而且全面。

可以到http://co.163.com/forum/content/1785_1067125_1.htm下载。

9、管道水力计算2.0版

本软件界面友好,解压后为exe格式,使用方便快捷,软件界面包含流量、流速转换,以及各种管材(塑料管、钢管、铸铁管、UPVC、玻璃钢、石棉水泥管等)的沿程及局部水头损失计算,软件以“舍为列夫”和“海澄威廉”公式为基础,参数可以按照用户的方式修改,更加贴近工程实际,计算结果简单直观。

可以到http://co.163.com/forum/content/1785_1064456_1.htm 下载。

10、影子保护系统软件(影子保护)

将电脑全盘或者系统盘放置于一个无法穿透的“金钟罩”中,隔离保护彻底堵截所有电脑病毒、流氓软件和人的损害。让您的电脑系统每日如新,享受无忧信息生活。 任何危险操作,如打开可疑邮件、进入不良网站、试用未知新软件、人为损害等均可在影子系统保护下放心实施。危险操作后只需重新启动电脑,一切恢复正常如初,就像什么也没有发生过一样。产品自身技术原理巧妙解决大多数安全软件资源占用问题,无病毒库占用内存。

可以到http://co.163.com/forum/content/1785_1067095_1.htm 下载。

第二篇:软件测试工程师必备技术

一名优秀的测试人才,目前我们国内的企业或者外企,包括大型的软件企业,一般情况

下应该有哪些技术要求呢?具体来讲:

第一,对Windows、Linux、Unix等大型主流操作系统的使用和应用开发的熟练掌握,包括一些网络的基础知识。使学员具备快速进行应用系统部署和测试环境搭建的能力,这是

一个基本功。

第二,测试人员必须掌握目前比较流行的语言,比如说C、C++、JAVA、C#、VB等等多种平台下的一种或者多种语言,具备进行简单应用开发的能力。这是做好测试的一个前提条

件,也是一个基本功。

第三,目前大部分应用软件都离不开数据库,熟练掌握SQL Server、Oracle、DB2等一

种或多种数据库系统的使用,熟悉使用SQL语言,这是要具备的第三项能力。第四,随着信息技术的发展和各个领域的信息化程度越为越高,安全也提到越来越重要的位置上,没有安全其他都无从谈起。所以做为测试人员对信息安全知识的基本掌握也是做

测试的一个基本功。

第五,必须深刻理解和熟练掌握软件测试基础理论与技术。首先是精通各种黑盒测试技术,能够进行测试用例设计、测试执行、编写缺陷报告;其次是熟悉软件测试流程和测试过程管理,能够编写测试计划,具备组织测试工作的能力;还有熟悉白盒测试技术,能够手工或利用相关工具进行单元测试;最后还有测试管理相关知识的掌握,虽然这在企业里是对测试组长和经理的要求,但是我们按照优秀软件测试工程师来要求我们学员的,学员具备这一

能力将来才有可能走上管理岗位。

第六,因为当前软件测试要提高工作效率和进行性能等深入测试。故此目前在测试上一个很重要的方向是自动化测试,就是借助于测试工具来做测试,这个就像我们每天是走路上班还是开车上班一样,汽车肯定会节约很多的时间,这就是工具的利用。对测试来说也是一样,如果用工具就会达到事半功倍的效果。所以测试人员要掌握和熟练使用当前主流的功能、性能自动化测试工具以及测试管理工具,具备编写测试脚本、进行功能和性能测试自动化测

试的能力。

第七,软件测试和软件质量密切相关。对软件测试员来讲必须学会软件质量分析技术,包括对软件的分析和度量各种技术,包括软件静态和动态分析技术,以及编写软件质量报告和测试分析报告的能力等等。测试人员作为软件开发过程中的一员,学员应该对企业的质量

管理体系和项目管理应该熟悉,应该了解IS9000、CMM、CMMI项目管理等等知识。最后,还有些对测试人员综合素质上的要求,比如良好的英语听说读写能力、具有良好的语言及文字表达能力、较好的沟通技巧及团队合作精神、有较强的责任感及进取精神、细

心、耐心,具备逆向思维能力等。

第三篇:硬件工程师需要掌握必备知识

作为一个硬件工程师,需要掌握哪些理论知识呢?楼主以从事的通信行业(主要是交换机、网关等)为例,简单笼统的总结了一下。主要是起抛砖引玉的作用,欢迎各位同行、专家展开讨论。

1、分立器件的应用

主要包括电阻、电容、电感、磁珠、二极管、三极管、MOS管、变压器、光耦、继电器、连接器、RJ

45、光模块(1*

9、SFP、SFF、XFP等)以及防护器件TVS管、压敏电阻、放电管、保险管、热敏电阻等

2、逻辑器件使用、硬件编程、语言、软件的使用、逻辑电平的应用以及匹配等;

3、电源的设计和应用;

主要包括DC/DC、LDO电源芯片设计的原理,设计时各元器件的选型以及电源指标参数;

4、时序分析与设计

主要包括逻辑器件中时序分析与设计、存储器中时序分析与设计等;

5、复位和时钟的知识

主要包括复位电路的设计、晶体和晶振的原理、设计和起振问题分析、时钟的主要参数指标等;

6、存储器的应用

主要包括eeprom、flash、SDRAM、DDR23等知识原理、选型、电路设计以及调试等知识;

7、CPU最小系统知识

了解ARM、POWERPC、MIPS的CPU架构、主要是掌握其最小系统的电路设计

8、总线的知识

包括各种高速总线--PCI、PCIE、USB还有一些交换之间总线SGMII、GMII、RGMII等,低速总线uart、I2C、SPI、GPIO、Local Bus、JTAG等;

9、EMC、安规知识

包括各种测试、指标等,各种防护器件应用,问题解决的方法等

10、热设计、降额设计

11、PCB工艺、布局、可制造性、可测试性设计

12、交换知识

包括MAC、PHY的的芯片知识、工作原理、电路设计和调试以及各种交换接口,

这里还可以包括软件的一些知识例如VLAN、生成树协议、广播、组播、端口聚合等交换机功能;

13、PoE供电知识

包括PoE原理、电路设计、测试、调试等知识

14、1588和同步以太网

包括同步对时原理、电路设计、测试、调试等知识

15、PI、SI知识

16、测试知识、示波器使用等

第四篇:软件工程知识点

1.什么是软件危机,它有哪些典型表现?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。

软件危机典型表现:对软件开发成本和进度的估计常常很不准确。用户对“已完成的”软件系统不满意的现象经常发生。软件产品的质量往往靠不住。软件常常是不可维护的。软件通常没有适当的文档资料。软件成本在计算机系统总成本中所占的比例逐年上升。软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势.

产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。管理和控制软件开发过程相当困难。软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因.

2.简述产生软件危机的原因和解决的思路:答:软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系.

解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路.

3.什么是软件工程?它有哪些本质特性?答:软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它. 软件工程本质特性:

1、软件工程关注于大型程序的构造;

2、软件工程的中心课题是控制复杂性;

3、软件经常变化;

4、开发软件的效率非常重要;

5、和谐地合作是开发软件的关键;

6、软件必须有效地支持它的用户;

7、在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品.

4.软件工程是如何用来消除软件危机的?软件工程是从技术和管理两个方面来研究如何更好地开发和维护计算机软件,从源头上消除软件危机. 5.软件工程的目的是什么?为高质量的软件开发提供一个科学的体系框架.

6.什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支?软件工程方法学就是指在软件生命周期全过程中使用的一整套管理和开发技术方法的集合。目前,使用最广泛的软件工程方法学分别是传统方法学和面向对象方法学.

软件工程作为一种层次化的技术,有方法、工具和过程三大要素,并由于其涉及学科内容的极为广泛,而分为三个分支:软件开发技术、软件项目管理技术、软件质量管理技术.

7.什么是软件生命周期?什么是软件生命周期模型?软件如同自然界任何事物一样,都有其孕育、诞生、成长、成熟、衰亡的生存过程。软件的这一过程,称为软件生命周期.

软件生命周期模型也称软件开发过程模型,是为了解决产业环境中的实际问题,而提出的开发策略。是反映整个软件生命期中,系统开发、运行、维护等实施活动的一种结构框架.

8.试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明它们各自的适用范围.1.瀑布模型:瀑布模型广为人知和历史悠久,其优势是规范及文档驱动的方法。但问题是,往往不能够真正满足用户的需求..适用于传统软件工程领域的结构化开发..2.原型模型:是为了克服瀑布模型的缺点而提出来的。通过快速构建一个在机器上可运行的原型系统,让用户试用原型,并收集反馈意见的办法,来获取用户真实的需求..3.螺旋模型:螺旋模型适用于大型软件项目,比起之前的其它模型而言,有其一定的优越性,但这些优越性并不是绝对的。主要体现在对开发人员的风险评估经验和专门知识的要求较高。如果项目风险较大,而开发人员的水平较低,不能准确的识别和分析风险,则势必造成重大损失..4.增量模型:具有在软件开发早期阶段使投资获得明显回报和交易维护的优点,但是要求软件具有开放的结构.

9. 软件过程(Software Procedure)是指软件生存周期所涉及的一系列相关过程.

10.软件测试用例就是指导你对软件执行操作,帮助你证明软件功能或发现软件缺陷的一种说明. 11.单元测试——是最小粒度的测试,以测试某个功能或代码块.单元测试的对象是软件设计的最小单位——模块。单元测试的依据是详细设描述,单元测试应对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误。单元测试多采用白盒测试技术,系统内多个模块可以并行地进行测试.

12.人机界面设计的三条“黄金规则”:1.置用户于控制之下.2.减少用户记忆负担.3.保持界面一致. 13.jackson图:jackson结构化程序设计使用的图。什么是HIPO图:它是表示软件系统结构的工具。HIPO图以模块分解的层次性以及模块内部输入、处理、输出三大基本部分为基础建立的.它既可以描述软件总的模块层次结构--H图(层次图),又可以描述每个模块输入/输出数据、处理功能及模块调用的详细情况--IPO图.

14.试说明Jackson方法是一种怎么样的程序设计方法。它有哪些工作步骤:Jackson方法是以数据结构(data structure)为基础设计每个模块的处理过程,将数据结构转化成程序结构。具体工作步骤有:第1步:用Jackson图描述 IO 的数据结构;第2步:在两个图中指出有直接因果关系、可以同时处理的单元;第3步:将数据结构映射到程序结构;第4步:列出所有操作条件,并分配到上幅程序结构图中;第5步:用Pseudocode 表示程序.

15.简述结构化设计的特点:1.自顶向下、逐步求精.2.具有单入、单出的控制结构.

第五篇:软件工程知识点总结

软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。是一门指导软件系统开发的工程学科,它以计算机理论及其他学科为指导,采用工程化的概念、原理、技术和方法进行软件的开发和维护,把经实践证明的学科的管理措施与最先进的技术方法结合起来,目标是以较少的投资获取高质量的软件。 内容:方法与技术、工具与环境、管理技术、标准与规范。 领域:软件需求分析、软件设计、软件构造、测试和维护。 难题 1.复杂性 2.不可见性 3.易变性 4.服从性 5.非连续性

计算机科学中与实践相关的部分,都和数据以及其他学科发生关系。软件工程和人的行为、现实社会的需求息息相关。

发展史:1.生产作坊方式2.面向对象的方法3.软件过程工程4.软件复用和基于构件的开发 学生做到:1.研发出符合客户需求的软件 2.通过一定的软件流程,在预计的时间内发布足够好的软件 3.通过数据和其他方式展现所开发的软件是可以维护和继续发展。

单元测试(好标准):1.在最基本的功能/参数上验证程序正确性;2.由最熟悉代码的人写;3.测试后,机器状态保持不变;4.要快;5.产生可重复、一致的结果;6.独立性;7.覆盖所有代码路径;8.集成到自动测试的框架中;9.和产品代码一起保存和维护。

回归测试:模块出现退步,从正常退化到不正常状态,为了验证新改进的代码的正确性。 个人开发:计划:估计时间(开发):.需求分析.生成设计文档.设计复审.代码规范.具体设计.具体编码.代码复审.测试;记录用时;测试报告;计算工作量;事后总结;提出改进计划 个人在团队中:1.通过交流实验等方法理解问题、需求或任务2.提出多种解决办法3.与相关角色交流解决问题的提案,决定一个可行方案4.执行5.和其他角色合作,测试实现方案,修复缺陷6.对结果负责

代码规范:代码风格规范:1.缩进2.行宽3.括号4.断行与空白行5.分行6.命名7.下划线8.大小写9.注释

代码设计规范:1.函数2.goto3.错误处理4.处理C++中的类 代码复审目的:1.找出错误代码2.发现逻辑错误3.发现算法错误4.发现潜在错误5.发现可能需要改进的地方6.传授经验

代码复审步骤:1.代码成功编译2.程序员必须测试过代码3.程序与提出新的代码,差异分析4.可选择面对面复审,独立复审5.面对面复审中,开发者控制流程,讲述修改的前因后果,复审者有权打断叙述提出自己意见7.开发者负责所有问题得到满意解答8.达成一致意见 复审后:1.改正明显的错误2.对无法解决的错误,记录下来3.把所有错误记在“我常犯的错误”表中,作为以后自我复审的第一步

结对编程好处:1.在开发层次,提供更好的设计质量和代码质量,解决问题能力强2.对开发人员,结对更有信心3.在企业管理层上,更有效的交流相互学习传递经验,高投入产出比 如何结对编程:1.驾驶员:写设计文档,进行编码和单元测试2.领航员:审阅文档、编码;考虑单元测试的覆盖率;思考是否需要重构;帮解决技术问题3.不断轮换角色,不连续一小时,领航员控制时间4.主动参与5.只有水平差距,没有级别差距6.设置好结对编程环境 团队模式:1.主治医师2.明星3.社区4.业余剧团5.秘密团队6.特工7.交响乐团8.爵士乐 开发方法: 统一流程(RUP)业务建模.需求.分析和设计.实现.测试.部署.配置和变更管理.项目管理.环境. 敏捷开发原则:1.尽早并持续交付有价值的软件满足需求2.欢迎需求的变化3.经常发布可用软件,间隔较短4.业务员与开发人员共同工作5.以有进取心的人为核心6.面对面交流7.可用软件是衡量项目进展的主要指标8.可持续发展9.不断关注技术和设计10.保持简明 敏捷流程:1.找出完成产品所需要做的事2.决定当前冲刺需要解决的事3.冲刺 软件需求:1.获取和引导需求2.分析和定义需求3.验证需求4.在软件产品的生命周期中管理需求(功能性需求.开发过程需求.非功能性需求.综合需求) 需求获取方法:用户调查1.焦点小组2.深入面谈3.卡片分类4.调查问卷5.用户日志研究6.人类学调查7.眼动跟踪研究8.快速原型调研9.a/b测试

利益相关者:用户:直接使用软件的人;客户:购买软件的人;市场分析师:代表典型用户的需求;监管机构:符合行业和政策规定;软件工程师:需求阶段重要角色

项目经理PM:对项目流程负责,正确的协调团队内部外部,调配各部门资源和时间,有效进行风险管理,保证一个项目按计划结项。管事也管人,不一定做具体工作。 应对风险:1.进一步研究2.接受3.规避4.转移5.降低6.制定应急计划

PM能力:1.观察、理解和快速学习2.分析管理能力3.专业能力4.自省能力

典型用户:名字.年龄.收入.代表的用户在市场上的比例和重要性.典型场景.环境.生活情况.知识层次/能力.偏好

功能说明书 1.定义好相关概念2.规范好一些假设3.避免误解,界定边界条件4.描述主流用户5.一些好的功能会有副作用6.服务质量说明 功能驱动设计:1.构造总体模型2.构造功能列表3.制定开发计划4.功能设计阶段5.实现具体功能

用户体验:1.用户第一印象2.从用户角度考虑问题3.软件服务始终要记住用户的选择4.短期刺激和长期影响5.不让用户犯简单错误6.用户体验和质量7.情感设计 评价标准:1.尽快提供可感触的反馈2.系统界面符合用户的现实惯例3.用户有控制权4.一致性和标准化5.适合各种类型的用户6.帮助用户识别、诊断并修复错误7.有提示和帮助文档 测试方法:1.单元测试2.代码覆盖率测试3.构建验证测试4.验收测试5.探索式测试6.回归测试7.场景/集成/系统测试8.伙伴测试9.效能测试10.压力测试11.内/外部公开测试

黑箱:把软件系统当作一个黑箱,无法了解或使用系统的内部结构及知识。从软件的行为而不是从内部结构出发来设计测试。 白箱:设计者可以看到软件系统的内部结构,并使用软件的内部结构和知识来选择测试数据及具体的测试方法。

软件质量:1.程序的质量2.软件工程的质量(开发过程可见性、风险控制、软件内部模块、开发成本控制、内部质量指标完成情况)

如何衡量:CMMI理论:一级初始级(企业项目目标实现),二级管理级(对项目流程审查,保证成功),三明确级(对管理体系制度化保障完成),四量化管理级(数字化管理,流程的稳定性),五级优化级(充分利用信息资料,主动改善流程)

如何衡量:1.软件CC后DCR的数量2.用户的好评3.在CC后发现bug的数量4.文档完整性和准确性5.修复bug平均时间6.单位开发量出现最大bug数量7.测试用例的覆盖率8.模块的复杂程度9.代码的行数10.文档的数量和复杂程度11.有多少代码重复12.平均每天构建失败的次数13.实现了多少功能点14.软件能运行多久,平均初次错误时间,无故障时间 会诊:1.开发者提交参加会诊的bug和修改方案2.会议决定是否同意修改方案3.执行

IT创新:1.灵光一闪,创新及随其后2.大家都喜欢创新3.好的想法会赢4.创新者都是一马当先5.要成为领域的专家6.技术是创新的关键7.成功的团队更能创新

团队合作阶段:1.萌芽阶段2.磨合阶段3.规范阶段4.创造阶段5.团队的效能曲线和假团队 职业道德:1.行为与公众利益一致2.以客户和雇主利益最大化的方式做事3.确保自己的产品以及修改满足专业标准4.具备完整独立的专业判断5.软件项目的经理和领导人应提倡并亲自采用复合道德规范的方法来管理软件的开发和维护6.保证职业的诚信和荣誉7.公平对待同侪,并予以支持和帮助。

需求分析:四方面:对问题的识别、分析与综合、制定规格说明书、评审;三原则:必须能够表达和理解问题的数据域和功能域;必须按自顶向下、逐步分解的方式对问题进行分解和不断细化;要给出系统的逻辑视图和物理视图。

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:人类常见遗传病口诀下一篇:人教版六上品社教案