软件生命周期之需求分析和设计说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件生命周期之需求分析和设计
什么是软件生命周期?
软件生命周期又称为软件生存周期或系统开发生命周期,是指从软件的产生直到报废的整个过程,它包括问题定义,可行性分析,总体描述,系统设计,编码,调试和测试,验收与运行,维护升级到废弃等阶段。每一个阶段都有确定的任务,并产生一定规格的文档,提交给下一个周期作为继续工作的依据。
常用开发模型?
需求分析:
需求分析过程
如何做需求分析?
设计:
设计过程
如何做设计?
1.软件生命周期
1.1什么事软件生命周期
软件生命周期又称为软件生存周期或系统开发生命周期,是指从软件的产生直到报废的整个过程
软件生命周期过程包括:
➢问题定义:
用户需要计算机解决的问题是什么?
电商系统:要计算机实现一个平台,商家通过平台销售自己的商品,一般用户通过平台购买商品。
➢可行性分析
用户需要计算机解决的问题是否可行?需要进行可行性分析。
市场可行性分析,是否有市场价值。
技术可行性分析,使用什么技术解决用户提出的问题。
➢需求分析
将用户提出的问题进行细化。
先确定大模块:比如电商系统包括:前台的用户购买平台,后台商家维护平台。
再对每一个大模块进行细化。。。。
➢设计
确定细化问题的实现方法
➢编码
解决问题,依据需求和设计,文档进行开发。
➢测试
验证是否已经解决用户提出的问题。
单元测试
集成测试(测试业务整体流程)
功能用例测试(对功能点进行测试)
性能测试(使用专业工具进行压力和稳定性测试)
➢维护
修改性维护:前期没有测试出的问题,正式上线运行后bug显现出来,对这些bug进行修改。
完善性维护:在现有功能的基础上增加或完善功能。
预防性维护:后期根据正式运行的情况对系统进行优化。
1.2常用的开发模型
1.2.1瀑布模型
强调:该模型给出了固定的顺序,将生存期活动从上一个阶段向下一个阶段逐级过渡,如同流水下泻,最终得到所开发的软件产品,投入使用。
适用场合:
需求明确,解决方案明确,常在一些中小型项目中使用。
1.2.2原型模型:
原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。
通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。
强调:开发阶段是围绕着原型进行,逐步求精对原型惊醒修改优化,进行实施。
适用场合:
前期需求不确定,采用原型方法方便搜集需求。
1.2.3 增量模型:
又称演化模型。与建造大厦相同,软件也是一步一步建造起来的。在增量模型中,软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成.
增量模型在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。整个产品被分解成若干个构件,开发人员逐个构件地交付产品,这样做的好处是软件开发可以较好地适应变化,客户可以不断地看到所开发的软件,从而降低开发风险。2需求分析
2.1 什么事需求分析
是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。可以说,在软件工程当中的“需求分析”就是确定要计算机“做什么”,要达到什么样的效果。可以说需求分析是做系统之前必做的。
包括:需求调研,需求描述,需求评审
2.2 需求调研
目标:挖掘用户需求
过程:
首先确定目标用户,开发人员和目标用户确定一个问题领域,并定义一个描述该问题的系统,用户在这个问题领域和系统下提出需求,需求类型包括:功能需求,质量需求,用户体验需求等等。
需求调研方法:
根据不同的项目,不同的用户群体采用不同的方法:
●与客户交谈,向用户提问题/
●参观用户工作流程,观擦用户操作
●向用户发调查问卷
●与同行,专家交谈,听取他们的意见
●分析已经存在的软件产品,提取需求
●从行业标准,规划中提取需求
●上网搜索相关资料
2.3 需求描述
通过需求调研到的资料进行分析,鉴别,综合和建模,清除用户需求的模糊性,歧义性和不一致性。分析系统的数据要求,为原始问题及目标软件建立逻辑模型标志:形成了一份完整的,规范的需求规格说明书
需求规格说明说的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解,使之成为整个开发工作的基础。
软件需求规格说明书的内容包括:系统概述,运行环境,功能模块图,功能用例,性能需求,接口需求,其他需求等等。
辅助工具:
功能模块图/功能架构图visio/rose等
接口需求:
系统对外接口:
接口描述内容:商品支付接口
接口功能描述:电商网站需要调用网银支付接口进行支付
接口方向:电商网站→网银网站
借口数据描述(重点)
开发人员依据接口数据描述开发程序
电商网站要向银发送什么数据格式(包括请求和响应两部分数据)
建议:企业开发必须经过需求分析过程
2.3 特点
2.3.1 供需交流困难
在软件生存周期中,其它四个阶段都是面向软件技术问题,只有本阶段是面向用户的。需求分析是对用户的业务活动进行分析,明确在用户的业务环境中软件系统应该"做什么"。但是在开始时,开发人员和用户双方都不能准确地提出系统要"做什么?"。因为软件开发人员不是用户问题领域的专家,不熟悉用户的业务活动和业务环境,又不可能在短期内搞清楚;而用户不熟悉计算机应用的有关问题。由于双方互相不了解对方的工作,又缺乏共同语言,所以在交流时存在着隔阂。
2.3.2 需求动态化
对于一个大型而复杂的软件系统,用户很难精确完整地提出它的功能和性能要求。一开始只能提出一个大概、模糊的功能,只有经过长时间的反复认识才逐步明确。有时进入到设计、编程阶段才能明确,更有甚者,到开发后期还在提新的要求。这无疑给软件开发带来困难。
2.3.3 后续影响复杂
需求分析是软件开发的基础。假定在该阶段发现一个错误,解决它需要用一小时的时间,到设计、编程、测试和维护阶段解决,则要花2.5、5、25、100倍的时间。
因此,对于大型复杂系统而言,首先要进行可行性研究。开发人员对用户的要求及现实环境进行调查、了解,从技术、经济和社会因素三个方面进行研究并论证该软件项目的可行性,根据可行性研究的结果,决定项目的取舍。
2. 4任务
需求分析的任务是通过详细调查现实世界要处理的对象,充分了解原系统工作概况,明确用户的各种需求然后在此基础上确定新系统的功能。确定对系统的综合要求,虽然功能需求是对软件系统的一项基本需求,但却并不是唯一的需求,通常对软件系统有下述几方面的综合要求。
1.功能需求