关闭

【复习】软件需求工程

标签: 软件需求软件工程
145人阅读 评论(0) 收藏 举报

软件需求的分类

目标需求、业务需求、功能需求、性能需求、约束与限制


软件工程和需求工程

软件工程是指用工程方法开发和维护软件的过程和有关技术

需求工程是指应用工程化的方法、技术和规格来开发和管理软件的需求


软件需求:目标需求、业务需求和功能及非功能需求(性能需求、约束与限制)

软件生命周期:需求分析和定义、设计、编码、测试、运行、维护直到废止

常见软件开发过程模型(含个人理解):


瀑布式模型:依照软件生命期提出的模型,每个阶段有明确的分工和任务,并产生一定的书面结果,各阶段之间紧密相关,后一阶段的工作依据前一阶段的工作结果而开展。阶段间具有顺序性和依赖性,各阶段必须完成规定的文档,从而在审查文档的基础上保证软件的质量。(在实际工作中存在着反复,例:在设计中发现需求比较含糊,则需回到需求分析于定义阶段重新进行处理)

可能存在的问题:

1.实际开发中,用户不可能一开始就使自己的需求很清晰。

2.在阶段间移交文档过程中,由于个人理解不同等原因容易产生误解。

3.用户参与的程度小,只参与了需求分析与定义和测试阶段的后期。


快速原型模型:快速建立一个实现了若干功能的可运行模型来启发、揭示和不断完善用户需求,直到满足用户的全部需求为止。用户参与程度提高,减少用户需求的遗漏和频繁修改的可能性。

可能存在的问题:

1.用户容易误认为原型就是正式产品或者通过少量修改就能成为正式产品。

2.对于软件系统的开发环境要求较多。(产品发布在不同平台)


增量模型:从核心功能开始,通过不断地改进和扩充,使得软件系统能适应用户需求的变动和扩充,从而获得柔性较高的软件系统。

可能存在的问题:
1.增加构件或功能时,可能破坏该软件系统。

2.设计软件结构时就要充分考虑其开放性,难度较大。


螺旋式模型:将瀑布式模型与快速原型模型结合到一起,并在每个阶段加上风险分析,逐渐生成原型1..原型2..可运行原型。

可能存在的问题:

1.要求软件开发人员具有丰富的风险评估经验和专门知识,难度较大。


面向对象的开发模型:面向对象分析=>面向对象设计=>面向对象实现和测试=>系统维护

面向对象分析的任务是构造可理解的现实世界的问题分析模型,如对象模型、动态模型和功能模型。面向对象设计的任务是确定对象的内部细节,包括定义对象的界面、数据结构、算法和操作等。面向对象实现和测试的任务是用面向对象的程序设计语言和工具实现类和对象,以及它们之间的静态和动态关系。

特点:

1.支持软件的重用

2.软件系统的表达形式在整个开发模型中都是以类及其结构作为表达单元。

3.非线性的工作方式,部分分析工作、设计工作、实现工作需要并行地进行。


需求获取=>需求分析=>需求描述(生成需求规格说明书)=>需求验证

(需求管理:过程中对需求进行管理,为了有效的管理需求变更。)


需求获取:确定需求开发计划=>建立项目的目标和范围=>确定调查对象=>实地收集需求信息(可使用场景技术<用例模型>)=>确定非功能需求


需求分析:建立系统关联图=>分析需求的可行性=>构建用户接口原型=>(*确定需求的优先级)=>需求建模=>建立数据字典

构建用户接口原型的方法:纸上原型方法、人工模拟原型化方法、自动原型化方法



需求分析的方法:结构化分析方法(SA)、面向对象的需求分析、面向问题域的分析方法、面向多视点的需求分析方法


结构化分析方法(SA)

基本思想:按照由抽象到具体、逐层分解的方法,确定软件系统内部的数据流、变换(或加工)的关系,并用数据流图表示。

描述手段:一套分层的数据流图(分层DFD0,1,2...)、一本词典(解释说明数据流图中的每个元素)、其他补充材料(补充或修改文档的说明)


面向对象方法(OOM)

基本思想:从获取的需求信息中识别出问题域中的类与对象并分析他们之间的关系,最终建立起简洁、精确和易理解的需求模型

描述手段:对象模型(如类图)、动态模型(如序列图、状态转换图)、功能模型(如数据流图+数据字典)


基于图形的需求建模技术:UML活动图(状态图的特殊形式)、UML协作图、UML实体关联图(ER)

0
0
查看评论

软件需求工程(摘抄)

1、需求获取 可以通过用户访谈,问卷调查,采样,清洁串联板,联合需求计划,需求记录技术 2、需求分析 2-1、结构化分析方法 通过数据流图,状态转换图,数据字典 2-2、面向对象的分析方法 (1)统一建模语言 (2)用例模型 3、需求定义 可...
  • define_us
  • define_us
  • 2016-04-26 21:49
  • 241

软件需求工程--KAOS建模

1.(10%)说明你目前研究的系统的问题描述(参考附件第11页) 研究的系统是教学楼中放置的自动咖啡贩卖机系统。该系统的工作流程是,首先用户通过点击贩卖机上的触摸屏选择购买的咖啡种类,然后根据提示完成网上支付。如果支付成功,贩卖机会开始制作咖啡,在等待一段时间后,咖啡制作完成,用户可以从贩卖机中取出...
  • u011281853
  • u011281853
  • 2017-01-05 20:25
  • 644

软件需求工程课程总结

软件需求工程课程的小结: Topic 1:Systematic Literature Review Topic 2:Game about Potential Threat Topic 3:Goal-oriented Requirements Engineering Methods --- KAOS ...
  • u011441843
  • u011441843
  • 2017-01-06 21:11
  • 146

软件需求和需求工程

一、软件需求的定义      在IEEE软件工程标准词汇表(1997年)中定义软件需求为:  (1)用户解决问题或达到目标所需的条件或能力。  (2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。  (3)一种反映上面(...
  • kaffeel
  • kaffeel
  • 2010-04-04 18:56
  • 2168

需求工程师国际认证

CPRE – 权威的需求工程师国际认证 http://www.ireb.org/ IREB® 职业需求工程师 重要性 需求工程在整个工程中的任务是:获取系统需求,编写需求文档,验证需求,并在整个软件开发的生命周期里加以管理。 许多其他项目阶段直接以...
  • cxzhq2002
  • cxzhq2002
  • 2014-12-13 18:48
  • 1030

软件工程中需求的三个不同层次

软件需求包括3个不同的层次――业务需求、用户需求和功能需求。   除此之外,每个系统还有各种非功能需求。   业务需求(Business requirement)表示组织或客户高层次的目标。业务需求通常来自项目投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品策
  • larry_lv
  • larry_lv
  • 2011-09-15 09:53
  • 752

【软件工程】软工视频(三)软件需求分析

前言  一个软件无论采用哪种管理信息系统开发方法和开发策略,都必须首先搞清楚用户的想法和需求,这就是需求分析。需求分析可进一步分为总体需求分析和详细需求分析两个阶段。总体需求分析的目的是进行总体规划,明确未来系统“是什么”,详细需求分析习惯称为系统分析,明确未来系统“干什么”。 ...
  • W15732624773
  • W15732624773
  • 2015-10-25 08:39
  • 1574

几本关于需求工程的书

几本关于需求工程的书:敏捷软件需求:团队、项目群与企业级的精益需求实践敏捷可执行需求说明:Scrum提炼及实现技术软件需求管理:统一方法软件需求开发最佳实践——基于模型驱动的需求开发过程软件需求最佳实践——SERU过程框架原理与应用掌握需求过程需求工程:实践者之路软件方法:上册,业务建模和需求编写有...
  • Testing_is_believing
  • Testing_is_believing
  • 2015-04-15 09:41
  • 3313

软件需求工程

软件需求
  • qq_35991370
  • qq_35991370
  • 2017-08-15 10:03
  • 71

UML软件期末复习

UML软件期末复习
  • qq_36411874
  • qq_36411874
  • 2017-05-25 19:33
  • 395
    个人资料
    • 访问:1147次
    • 积分:102
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:3篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论