欢迎光临腾远软件官网!
软件开发定制工业APP平台企业信息化一站式服务
全国咨询热线:13951566435

关于软件开发的生命周期

时间:2023-08-05 00:10:27 点击:50909次

何为软件开发生命周期?

软件生命周期也就是软件生存的周期。一般来说,整个生存周期包括计划(定义)、开发、运行(维护)三个时期,每一个时期又划分为若干阶段。每个阶段有明确的任务,这样使规模大、结构复杂和管理复杂的软件开发变得容易控制和管理。同万物一样,软件也有诞生和消亡,软件生命周期就是指软件自开始构思与研发到不再使用而消亡的过程。

具体的软件开发生命周期可分为问题定义,可行性研究,需求分析,概要设计,详细设计,实现,测试,使用和维护8个阶段。

1.问题定义

要求系统分析员与用户进行交流,弄清“用户需要计算机解决什么问题”然后提出关于“系统目标与范围的说明”,提交用户审查和确认。

2.可行性研究

软件可行性分析 是通过对项目的市场需求、资源供应、建设规模、工艺路线、设备选型、环境影响、资金筹措、盈利能力等方面的研究,从技术、经济、工程等角度对项目进行调查研究和分析比较,并对项目建成以后可能取得的财务、经济效益及社会环境影响进行科学预测,为项目决策提供公正、可靠、科学的软件咨询意见。

1.技术角度:

通俗易懂点根据公司的技术来判定项目是否可行,比如:给定时间是否可以完成项目、软件的质量、软件的生产率。

2.经济角度:

根据公司资金周转来判断项目是否可以完成,这里不只是资金问题,还需要考虑成本、收益、长期盈利与短期盈利。短期利益容易把握,风险较低;长远利益难以把握,风险较大。

3.社会因素:

根据项目的社会因素来评判项目是否可以做,比如:社会因素的可行性、法律可行性、社会推广可行性、使用可行性。想必大家都明白,现在的有些软件开发会出现抄袭、侵权的现象吧,所以在可行性分析中应当具有相关法律声明。例如:该系统的开发将不会侵犯任何个人、集体、国家的利益,也不会违反国家的政策与法律。

4.文档:《可行性分析文档》

3.需求分析

需求分析也称为软件需求分析、系统需求分析或需求分析工程等,是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程。

1.功能需求:

功能性需求即软件必须完成哪些事,必须实现哪些功能,以及为了向其用户提供有用的功能所需执行的动作。开发者需要与用户沟通交流,并核实用户需求,从帮助用户完成事务的角度上充分描述外部行为,形成说明书。

2.非功能用户需求:

非功能性需求主要包含软件使用时对性能方面的要求、所依赖的运行环境。软件设计必须遵循的相关标准、规范、用户界面设计的具体细节、未来可能的扩充方案等。

3.设计约束:

设计限制条件,通常是对一些设计或实现方案的约束说明。

4.文档:《软件需求规格说明书》

需求分析阶段的工作可以分为以下四个方面:

1.问题识别:

就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准。这些需求包括:功能需求(做什么)、性能需求(要达到什么指标)、环境需求(如机型、操作系统等)、可靠性需求(不发生故障的概率)、安全保密需求、用户界面需求、资源使用需求(软件运行是所需的内存、CPU等)、软件成本消耗与开发进度需求、预先估计以后系统可能达到的目标。

2.分析与综合:

逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分。最后综合成系统的解决方案,给出要开发的系统的详细逻辑模型(做什么的模型)。

3.制订规格说明书:

即编制文档,描述需求的文档称为软件需求规格说明书。请注意,需求分析阶段的成果是需求规格说明书,向下一阶段提交。

4.评审:

对功能的正确性,完整性和清晰性,以及其它需求给予评价。评审通过才可进行下一阶段的工作,否则重新进行需求分析。

4.概要设计

概要设计确定整个软件的技术蓝图,负责将需求分析的结果转化为技术层面的设计方案。在概要设计中,需要确定系统架构、各子系统间的关系、接口规约、数据库模型、编码规范等内容。概要设计的结果将作为程序员的工作指南,供程序员了解系统的内部原理,并在其基础上进行详细设计和编码工作。

1.技术选型:

通过需求分析结果来判断使用什么技术来完成项目,构建技术架构,例如:使用SSM+JSP技术等。

2.平台搭建:

选择项目搭建所需平台技术,例如:JDK1.8、tomact8.5、MySQL5.X等。

3.数据库设计:

实体、数据项、三范式、E-R图等。

4.功能流程设计:

以模块为单位进行流程图的设计。

5.UI设计:

UI设计,简称界面设计。是指对软件的人机交互、操作逻辑、界面美观的整体设计。 UI设计师完成。

6.文档:《数据库设计说明书》,《概要设计说明书》

5.详细设计

详细设计完成编码前最后的设计,详细设计在概要设计的基础上,进行细化,如类设计。详细设计不是开发过程中必需的阶段,在一些规模较小、结构简单的系统中,详细设计往往被省略。同样,在某一次软件开发中,可能只会对部分关键模块进行详细设计。

1.创建数据库,表,表关系等。

2.设计每个功能的实现步骤:例如:功能编号、功能名称、功能描述、输入项(用户输入数据的说明)、数据处理(程序对用户输入的数据的处理流程)、输出项(展示给用户的视图界面及数据)等。

3.文档:《详细设计说明书》

6.实现编码

实现过程包括编码和单元测试。单元测试指的是对刚刚编写出的一个小的程序单元进行测试,如某一个过程、方法或函数。因为单元测试的对象是小的程序单元,而不是完整的程序,因此往往需要编写一些测试程序来进行测试。有效的单元测试可以大大提高编码的质量,降低软件系统的缺陷率。

7.测试

软件测试,描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

1.静态测试:

对软件代码的静态分析测验,过程应用数据较少,可以通过人工或机器辅助测试。

2.动态测试:

检测软件运行中出现的问题,较静态测试方式相比,其被称为动态的原因即为其测试方式主要依赖程序的运用,主要为检测软件中动态行为是否缺失、软件运行效果是否良好。

3.功能测试(黑盒测试):

通过数据输入观察数据输出,检查软件内部功能是否正常,数据是否一致等等。

4.性能测试(白盒测试):

原理为根据软件内部应用、源代码等对产品内部工作过程进行调试。测试过程中常将其与软件内部结构协同展开分析,最大优点即为其能够有效解决软件内部应用程序出现的问题,测试过程中常将其与黑盒测试方式结合。

5.系统集成测试:

在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。一些局部反映不出来的问题,在全局上很可能暴露出来。

6.压力测试:

软件压力测试是一种基本的质量保证行为。压力测试是给软件不断加压,强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷,是通过搭建与实际环境相似的测试环境,通过测试程序在同一时间内或某一段时间内,向系统发送预期数量的交易请求、测试系统在不同压力情况下的效率状况,以及系统可以承受的压力情况。然后做针对性的测试与分析,找到影响系统性能的瓶颈,评估系统在实际使用环境下的效率情况,评价系统性能以及判断是否需要对应用系统进行优化处理或结构调整。并对系统资源进行优化。

压力测试可以分为负载测试、并发性能测试、疲劳强度测试。

负载测试:

通过增加系统负载来测试系统性能的变化趋势。并最终确定系统的最大负载不能超过某个值,以确保为用户提供最大的服务还保证了系统性能。

并发性能测试:

通过逐渐增加用户量和用户的并发访问量,直到系统遇到瓶颈或者不能正常运转,综合分析交易执行指标与资源监控指标。

疲劳强度测试:

构建系统稳定运行情况下能够支持的最大并发度与日常运转。

软件的性能可以通过响应时间、并发用户数、吞吐量、资源利用率等性能指标来衡量。

响应时间:

是指用户从客户端发出请求到接收完服务器返回结果的整个过程所需花费的时间,包含网络传输时间以及服务器处理时间。从用户角度来看,响应时间应该从客户端计算机处理用户操作并发出请求到客户端程序收到服务器端返回结果并显示出来的时间。

并发用户数:

是指在一定时间内,某一时刻同时与服务器进行会话操作的用户数,并发用户数的类型包括:系统用户数、同时在线用户数,业务并发用户数。

吞吐量:

是指单位时间内,系统处理用户的请求数或页面数量,可以直接反映出软件的承载能力。一般来说,利用每秒钟的请求数或页面数量衡量吞吐量;从业务的角度来看,也可以用每天的访问人数或每小时处理的业务数来衡量。

资源利用率:

是指系统资源(CPU、内存)的利用率,通常用资源的实际使用量与总的资源可用量比值来衡量,包括网络、操作系统、数据库等方面。

8.使用和维护

即使通过了单元测试、集成测试和确认测试,也不可能发现软件系统中的全部缺陷;软件系统的需求也会根据业务的发展变化而变化。因此,在软件使用过程中,必须不断地对软件进行维护,修正软件中的缺陷,修改软件中已经不能适应最新情况的功能或者增加新的功能。软件维护的过程会贯穿整个软件的使用过程。当使用和维护阶段结束后,软件系统也就自然消亡,软件系统的生命周期结束。


在线客服
联系方式

热线电话

13951566435

上班时间

周一到周五

公司电话

13951566435

二维码
线

城市分站: 北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 其他 更多城市