85关于软件开发的环节

author author     2022-09-02     277

关键词:

 

针对软件开发,无论是瀑布模型还是敏捷模型,还是任何开发模式,永远都是软件工程所说的步骤,即在开发计划的指引下,按照需求、设计、开发、测试四个环节,完成应用系统的交付。只是各个环节所用的技术不同、框架不同、以及粒度不同。

 

1、需求获取、需求分析和需求管理

 

需求获取是问客户想要什么?需求的分析是知道客户的需求是什么,并且解决做什么,最后形成需求规格说明书,需求的管理就是保证需求到被实现的过程的完整性,变更是规范的,保证项目范围不偏离。

 

例如在传统的软件开发过程中,实际的软件项目需求规格说明书的编写过程中,是存在两种需求规格说明书的,一种是用户需求说明书,一种是软件需求规格说明书,软件需求规格说明书是基于用户需求说明书编写的,其格式取决于所采用的开发和管理方式,例如按流程开发的方式、面对对象的开发方式和敏捷项目所采用的需求规格说明书是不同的。在需求规格书说明书的编写中,是和业务需求分析紧密结合在一起的,最简单的包括需求的分类,满足业务域或业务类别,还有一些业务改进和过程改进的内容,还有一些内容是行为分析的内容。虽然需求不是设计,但需求多多少少还有一些系统最终实现后的影子,为此有一些功能性需求的编写过程中已经对功能结构进行了初步的组织。需求不一定一定要用用例图来描述,采用灵活清晰的规格化的文档描述来编写具体的需求,但避免过于复杂,例如出现很多分支。如果在需求规格说明书中放入系统原型,则是对系统界面的实现进行约束。

 

在敏捷的软件开发过程中,需求就是经过分析后的用户故事。无论哪一种方式,需求都是要经过评审、需要确认的。

 

2、设计

 

在开展软件设计前,最重要的事情是是应用系统是基于什么平台进行设计和开发,或者利用什么框架进行开发,甚至是利用过去的那一个项目框架进行开发,这直接影响后续的工作,选择不同类型的开发框架,工作量,人员投入是完全不同的。在当前技术环境下,几乎很少的软件会从零开发,都是利用已有的框架进行的。

 

在传统的软件开发过程中,是根据需求规格说明书的要求,利用概要设计、详细设计和数据库设计三种设计来完成软件应用的设计的,概要设计关注流程和功能,详细设计关注于类的代码的实现,数据库设计关注于数据库和表。将设计任务分配下去,不同的人完成不同的模块的设计方案,方案由流程图、类图等组成。利用敏捷开发方法,则省去很多步骤,不再形成规模巨大的文档,而是围绕着用户故事进行设计、开发和测试的,目标是快速交付成果。无论什么形式的设计,也都需要通过不停的优化和评审,最后形成正确有效的开发方案。

 

3、开发代码

 

开发代码是一个非常具体的工作,通过一个个键盘上的字母完成整个系统的交付,就和作家爬格子完成长篇小说一样。每个人的开发效率不同,能力不同,根据自己的能力做好估算,否则不能完成任务。开发代码前,也是需要有一些设计的,因为具体的代码实现和设计还是存在差异的。存在无数开发技巧和方法,例如开发的时候注意使用已有的类库进行代码重用,少用全局变量等等,总之,代码要清晰,增加注释。作为程序员,注释就是一切文档。

 

开发代码时,要利用配置管理系统进行版本控制,此外,不懂就问、互联网搜索是加快开发速度的关键。此外,代码也是需要进行评审的,通过评审还能够优化代码。

 

4、测试

 

测试的目的是发现软件的缺陷,保证交付的应用系统满足需求,测试是非常关键的,甚至测试的时间比开发的时间还要长,并且越是在开发末期发现的缺陷,修复缺陷所付出的成本是越多的。敏捷开发是测试驱动的,开发时就是包括测试工作的,这样才能迅速交付能用的系统。相比之下,传统模式就复杂得多,首先编写测试用例,然后开始单元测试、功能测试、集成测试、验收测试等,按部就班,发现测试问题再周期性去完善开发,周期比较长,某环节问题较多的情况下,容易让项目延期。测试还包括接口测试、性能测试、压力测试、界面测试、安全测试、安装测试等,这些都是根据不同的项目类型进行选择,如果合同中提到或者需求中提到,就需要去完成这个测试。

 

测试需要工具,自动化工具让测试事半功倍,测试出的缺陷,需要跟纪录、审查、跟踪、修改、验证、关闭、整理、分析、汇总等很多状态管理,无论过程有多么复杂,测试工作都需要去完成,毕竟,交付一个少缺陷的高质量的软件是每一个IT人的梦想。

 技术分享

fpga关于中间环节生成时钟的约束---generatedclocks

FPGA关于中间环节生成时钟的约束---GeneratedclocksFPGA的生成时钟,有一个主时钟源,在定义的之后,需要指明主时钟源。生成时钟主要定义的是:分频,倍频,相移等二分频时钟定义:相移时钟定义:forwardclock定义:自动生成时钟... 查看详情

理顺软件开发各个环节-14(开发管理-编程实现)

5.7编程实现  软件开发,最后终归要编写程序代码来实现。 5.7.1关于程序语言  程序语言,即计算机语言,与自然语言的语种一样,也是五花八门,就我自己用过的语言就有:汇编、BASIC、FORTRAN、VB、C、C++、C#、PASCAL、PH... 查看详情

开源的工业软件-面向生产控制环节

...工业流程,需要不同的工业软件,面向研发设计环节的开源软件和面向生产控制环节的开源软件。        面向生产控制环节的开源软件,主要为可编程逻辑控制器(PLC)、分布式控制系统(DCS)、生产... 查看详情

js预编译环节的变量提升(代码片段)

有些东西需要先告诉你怎么用,再去理解定义关于变量的提升functiontest()console.log(a)vara=100console.log(a);test()//undefined//100执行步骤functiontest()vara=undefinedconsole.log(a)a=100console.log(a)关于函数的提升functiontest()console.l 查看详情

理顺软件开发各个环节-4

...4.4软件需求分析  软件需求分析,对开发团队而言,是软件开发工作的起点。  软件需求分析,是非常重要的节点,但实际情况是,在敏捷开发时代,很多研发团队错把产品需求作为软件需求。软件需求分析自然不可能跳过... 查看详情

关于ssl证书之证书链

关于SSL证书之证书链。证书链由两个环节组成—信任锚(CA证书)环节和已签名证书环节。自我签名的证书仅有一个环节的长度—信任锚环节就是已签名证书本身。证书链可以有任意环节的长度,所以在三节的链中... 查看详情

软件开发中的完成测试环境所包括的环节包括:utitstuat

软件开发中的完成测试环境所包括的环节包括:UT、IT、ST、UATUT=UnitTest单元测试IT=SystemIntegrationTest集成测试ST=SystemTest系统测试UAT=UserAcceptanceTest用户接受测试(俗称:验收测试)UT(单元测试,UnitTest):   单元测试任务包括:&... 查看详情

项目开发计划

项目开发计划具体计划关于软件算法这一块,网上是有源码的,我们需要找到比较合适的源码,并测试是否可行就可以了。程序的主体代码在开源社坛上寻找,这部分工作交给主代码手负责。然后两人一起研究代码,将代码的算... 查看详情

ATtiny85 - 带 Timer1 的软件 UART

】ATtiny85-带Timer1的软件UART【英文标题】:ATTiny85-SoftwareUARTwithTimer1【发布时间】:2020-07-1419:00:08【问题描述】:所以最近我尝试为ATtiny85实现软件UART(仅限TX)。我想用内部的Timer1来驱动它。定时器应以波特率的频率中断。每个IS... 查看详情

理顺软件开发各个环节-6

4.4.3功能需求项的编写示例  上节软件需求规格书模板中,章节3是大头,其中涉及功能需求项的编写。使用UseCase方式进行描述。本节给出一个需求项编写示例,详细说明一下编写方法。  使用UseCase方式描述需求,除了正常... 查看详情

如何使用arduinouno开发板编程attiny85

最近在Youtube上看了一个GreatScott制作的有关如何使用Attiny85的精彩教程,之后我购买了一片Attiny85IC。但是,我花了很长时间尝试在它上面运行一个简单的LED闪烁的代码。最后经过很多次的搜索,终于找到唯一适用于我的方法。我... 查看详情

关于我们:91录课

     91录课,一家致力于制作专业课件的机构。课件的几个重要的阶段,从摄像机直接拍摄,再到三分屏课件制作,103寸背投大屏,4K液晶、虚拟演播室,我们都完整的经历过。10年来,我们专注于课件制作。&nb... 查看详情

关于jvm的逃逸分析(代码片段)

何谓“逃逸”?  我们都知道Java中的对象默认是分配到堆上的,垃圾回收机制也会回收堆中不再使用的对象,但在此之前需要筛选可回收的对象,因此会造成,回收对象还有整理内存,都比较耗时间,开销也是非常之大... 查看详情

用于 4 个 LED 的 ATtiny85 PWM

...我需要在ATTiny85上通过PWM控制4个单独的LED。我找到了很多关于如何控制3个LED的信息。但显然要使用PWM控制4,您必须真正将85扭成结。有没有更简单的方法来处理85上的4个LED,还是跳到84上会更好?如果我选择84,我可能会遇到与8... 查看详情

关于单元测试,如何写出可测试的代码?(代码片段)

  单元测试在一个完整的软件开发流程中是必不可少的、非常重要的一个环节。通常写单元测试并不难,但有的时候,有的代码和功能难以测试,导致写起测试来困难重重。因此,写出良好的可测试的(testable)代码是非... 查看详情

转行软件测试,必须经历的三个环节,缺一不可!

...首选。想要成为一名软件测试工程师,少不了下面这3个环节:(一)符合企业需求的测试技能;(二)完善的简历;(三)充足的面试准备。①掌握软件测试技能学习软件测试,无非2种方式,自学或者报班自学优点:省钱,如... 查看详情

敏捷7.showcase,开发中必须引起重视的小环节

有人说,测试者来自火星,开发者来自金星。这是因为软件测试员和软件开发者就好比一对冤家,里面的缘由说不清也道不明。开发代表着创造,而测试则代表着摧毁,因为测试的目的就是以各种方式不断地从开发出的产品中发... 查看详情

关于《大道至简》第七章的收获

软件工程行业的大公司都处于相互制衡的状态中每个公司都有其自己的打算,都有自己的小算盘,我们也是其中的一枚算子,目的就是能够在软件工程体系中全面胜出。在我们所做的这些工作中,我们要考虑团队问题,对于不同... 查看详情