软件工程需求分析.ppt

上传人:夺命阿水 文档编号:235681 上传时间:2023-03-10 格式:PPT 页数:118 大小:1.99MB
返回 下载 相关 举报
软件工程需求分析.ppt_第1页
第1页 / 共118页
软件工程需求分析.ppt_第2页
第2页 / 共118页
软件工程需求分析.ppt_第3页
第3页 / 共118页
软件工程需求分析.ppt_第4页
第4页 / 共118页
软件工程需求分析.ppt_第5页
第5页 / 共118页
点击查看更多>>
资源描述

《软件工程需求分析.ppt》由会员分享,可在线阅读,更多相关《软件工程需求分析.ppt(118页珍藏版)》请在课桌文档上搜索。

1、需求分析,本节学习目的,通过本节的学习,了解软件开发过程中需求分析的重要性,掌握业务流程的概念以及用例(use case)文档和软件需求规格说明文档的撰写。,本节学习内容,可行性分析软件需求分析业务流程图 用例分析软件需求规格说明,系统需求分析与结构设计,当我们在着手做任何一件工作以前,必须明确工作的性质、任务,制定完成任务的计划,这是非常必要的。同样对于软件产品的开发,显然也应该解决好这样类似的问题,明确该软件产品开发的任务,以及完成任务的价值从而制定出完成任务的计划。那么问题的定义和可性行研究就是制定软件系统的计划的第一步。所以在软件工程中把这一步称为 计划时期,系统需求分析与结构设计,系

2、统需求分析与结构设计之工作内容,分析系统需求,分配软件和硬件的功能分析硬件与软件的关系,定义软件和硬件之间的接口定义软件研制项目,编制软件可行性分析报告和软件开发计划(草稿)评估系统的可行性编制软件接口说明(必要时),方案分析,项目考虑业务考虑技术分析制造评估人的因素环境接口法律法规,Who?,计算机系统分析和设计人员为主;未来可能承担其软件研制任务的需求分析人员参加,系统需求分析与结构设计要求,分析待开发系统的特定的预期使用要求,规定系统需求;根据评价准则评价系统需求,将评价结果形成文档;建立系统的顶层结构;根据评价准则评价系统结构和需求,将评价结果形成文档。,系统需求分析与结构设计,可行性

3、分析(研究)报告;系统/子系统设计说明;接口设计说明。,分析系统需求,分配软件和硬件的功能 分析硬件与软件的关系,定义软件和硬件之 间的接口 定义软件研制项目,编制软件可行性分析报告和软件开发计划(草稿)评估系统的可行性 编制软件接口说明(必要时),可行性分析报告运行概念说明(Optional)系统/子系统需求规格说明系统/子系统设计说明接口需求规格说明(Optional)接口设计说明(Optional),评审工作,项目研制任务书或合同任务提出方的需求,评审工作,软件功能描述的正确性软硬件功能划分的合理性和可行性接口要求及接口设备要求的合理性质量要求的合理性开发环境要求的合理性和可行性开发进度

4、要求的合理性和可行性开发技术的合理性和可行性开发成本的合理性和可行性,可行性分析报告,项目背景客户需求商务前景市场计划技术方案实施周期财务分析风险管理,项目背景,项目来源 项目来源涉及到项目的环境,商务实施条件,客户合作关系等要素。项目干系人 项目涉及的干系人,利益和影响分析。,客户需求,商务需求 客户为了实现商务目标而制定的计划和目标。功能需求 为了实现商务需求而制定的技术要求和流程。潜在需求 项目未来可能或必然的需求。,客户需求实例,商务需求“系统能够实现医院的招投标采购,集中并规范医药交易市场。”功能需求“医院利用电子药房客户端的采购系统,将采购药品的规格、数量、包装等信息发布到交易系统

5、的最新采购的数据库中。”潜在需求“实现医院与药品批发企业的物流配送管理。”,商务前景,项目完成以后的商务影响 是否可持续发展?-项目维持是否可更新换代?-项目升级是否可扩展壮大?-项目扩展,市场计划,市场定位 目标市场分析、市场容量、市场资源竞争对手分析目标市场分析、市场容量、市场资源销售计划目标市场分析、市场容量、市场资源,技术方案,拓扑结构 架构设计模块与功能设计开发平台,实施周期,按照软件项目管理规范建立里程碑 里程碑实施周期实例,财务分析,成本核算 人员、软件、硬件、经营管理费用等收益预测 收入来源、收入数量、收入模式资金计划,风险管理,风险评估 风险识别、风险分析、风险优先级风险控制

6、 风险管理计划、风险化解、风险监控,可行性分析(研究)报告,引言引用文档可行性分析的前提可选的方案所建议的系统经济可行性(成本-效益分析)技术可行性(技术风险评价)法律可行性用户使用可行性其他与项目有关的问题注解附录,Requirements Analysis,Requirements analysis A process of discovery,refinement,modeling,and specification.During the process,both the developers and customers take an active role.Focus on:“wha

7、t”instead of“how”Input:-Software Project Plan-System specification(if one exists)Output:Software requirements specification document-provides the software engineer with models that can be translated into data,architectural,interface,and procedure design.-customer and developer can check the quality

8、of the software and provide the feedback.Who perform requirements analysis:system analysts,Why Software Requirement Analysis is Important,Risks which is due to the improper requirement process,Lack of users participant,and the final product is unacceptable.Over-budget and lower quality due to the re

9、quirement change frequently.Unclear requirement specification leads cost consuming and rework effort.User adds some unnecessary features.Lack of some key requirements due to over-brief specification,and cause the plan and project checking out of order.Ignoring some key requirements of users.,不正确需求分析

10、带来的风险,没有用户的参与,最终产品不满意需求经常变化导致预算超支及质量不过关需求不清楚导致资金浪费及返工 用户增加不必要的功能需求过于简洁导致计划与审查混乱忽视用户的主要需求,The relative cost for correcting an error,40-60%of software defects and failures are attributed to bad requirements-Leffingwell 1997,Software Requirement Engineering,Software Requirement Engineering,Requirement

11、Development,Requirement Management,Req.Doc,Problems Capture,Analysis,Validate,Software Requirement Layers,provided by customers and end users.no technical detail required,provided by development team and advanced technical engineers To specify services and features the system will provide.,软件需求各组成部分

12、之间的关系,Software Requirement,Functional Requirement,Non-Functional Requirement,To define system functions and services which is expected,To Specify system constraints,Product Requirement,Organization Req.,External Req.,Reliability,Efficiency,Usability,Portability,Performance,Storage,Delivery,Standard,

13、Construction,legal,Privacy,moral,Requirements Development Process,Problems Capture,Requirementsanalysis,RequirementsSpecification,Requirements Validation,System models,Requirements documents,Definition ofrequirements,Specificationof requirements,Feasibility Study,Feasibilityreport,功能需求性能需求安全保密要求用户界面

14、需求资源使用需求软件成本消耗与开发进度需求,软件质量属性AvailabilityEfficiencyFlexibilityIntegrityInteroperabilityReliabilityRobustnessUsabilityMaintainabilityPortabilityReusabilityTestability,Problems Capture,需求获取,清楚地理解所要解决的问题完整地获取用户需求How to get the requirements?,传统的需求获取方法,与客户和领域专家面谈问卷法观察文档和软件系统的研究,现代的需求获取方法,原型法联合应用开发(JAD)快速应

15、用开发(RAD),What is JAD(Joint Application Development)?,JAD(Joint Application Development)is a methodology that involves the client or end user in the design and development of an application,through a succession of collaborative workshops called JAD sessions.Chuck Morris and Tony Crawford,both of IBM,

16、developed JAD in the late 1970s and began teaching the approach through workshops in 1980.,JAD会议参加者,领导,文书,客户,开发人员,涉及人员,需求者,系统分析员,开发者,Typical Requirement Sources,Problem Statement,Real Work Places,Some other systems,Enhancement Requirement,Others,Typical Requirement Defining Method,CommunicationDrawi

17、ng System Relationship DiagramEstablishing Operational Concepts and ScenariosObserving Users work flowAbstracting from Industries StandardAnalyzing Business CasesMarketing Researching,Q&A Meeting with all requirement Stakeholders,The first Group of questions focus on the goal of customer Who is the

18、initial request of this project?Who will use this solution?What is benefit from this project?Have other solutions?,The second Group of questions should give requirement analyst a better understand about the project Can you describe the output of the solution?Can you describe the destination platform

19、 of this project?Do you have other constraints?,The third Group of questions focus on the quality of the Q&A meeting Are you the best person to answer my questions?Does all my question relate with your problems?too much questions?Some others will give me additional information?Should I ask more ques

20、tions for you?,Req.Analysis,Use Case,Req.Spec.,Req.Analysis Report,Select Req.Analysis Method,Req.Analysis,Req.Analysis Report,End,Start,End,Module the upper level,Covert Customer Req.into Software Req,Analysis the external Interface,Analysis Functional Req.,Analysis non-Functional Req.,Internal int

21、erface analysis.,Identify the relationship of Req.,Rating the priority,analysis the relationship of Req.,Start,Requirement Analysis Framework,业务流程图,业务是指企业管理中必要且逻辑上相关的、为了完成某种管理功能的一系列相关的活动。将一项业务处理过程中的每一个步骤用图形来表示,并把所有处理过程按一定的顺序都串起来就形成了业务流程图。业务流程图是对需求的实现。,需求分析实例,网上购物业务的需求用户能在网上选购商品选中商品后用户在网上下订单用户可以选择信用卡

22、或现金付款付款后才能发货,网上购物业务流程,淘宝网购物业务流程,Use Cases(用例),A use case in Software Engineering is a description of a systems behavior as it responds to a request that originates from outside of that system.In other words,a use case describes who can do what with the system in question.The use case technique is us

23、ed to capture a systems behavioral requirements by detailing scenario-driven threads through the functional requirements.,Use Cases(Cont.),Use cases describe the system from the users point of view.Use cases describe the interaction between one or more actors.An actor is something or someone which e

24、xists outside the system(black box)under study;Actors may be end users,other systems,or hardware devices.,Use Cases中文定义,对一组动作序列的描述,系统执行该动作序列来为Actor产生一个可观察的结果值。Use Cases 实例 开银行帐号取款转账,Use Cases Diagram,Purchase Ticket,Customer,Reserve Hotel,Relationship,用例分析,识别参与者识别用例识别关系书写用例文档,Actor(参与者)定义,An Actor i

25、s someone or something outside the system that interacts with the system.,Actor任何事物,识别参与者,参与者代表在系统边界之外的真实事物,并不是系统的成分。参与者透过系统边界直接与系统交互,参与者的确定代表着系统边界的确定交互是有意义的 参与者可以是任何事物,识别思路,谁使用该系统谁改变系统的数据谁从系统获取信息 谁需要系统的支持以完成日常工作任务谁负责维护、管理并保持系统正常运行系统需要应付那些硬件设备系统需要和那些外部系统交互谁对系统运行产生的结果感兴趣时间、气温等内部外部条件,案例1:航空售票系统,需求:建立一

26、个航空公司的机票预定系统,让客户通过电话或网络买票、改变订票、取消订票、预定旅馆、租车等等。,案例1:航空售票系统,案例2:库存管理系统,某汽车制造厂需要一套库存管理系统,该系统实现的业务:生产工人根据生产计划领取物料,库存操作员根据生产系统的派单准备,交付给领料工人,余料即时归还库房。库房管理人员定期盘点库存,通知供应商供货,对长期积存的货物,申请退货。,案例2:识别思路,谁使用该系统谁改变系统的数据 谁从系统获取信息 谁需要系统的支持以完成日常工作任务 谁负责维护、管理并保持系统正常运行案系统需要应付那些硬件设备系统需要和那些外部系统交互 谁对系统运行产生的结果感兴趣 时间、气温等内部外部

27、条件,操作员,管理员,操作员,管理员,操作员,管理员,领料员,退料员,操作员,管理员,供应商,管理员,生产系统,供应商系统,操作员,管理员,领料员,退料员,时间,案例2:库存管理系统,以用例为核心组织需求,用例:用户视角的需求组织形式,用例:有层次的需求组织形式,用例:取款,基本路径 用户插入ATM卡系统要求输入密码用户输入密码。系统显示交易结束扩展路径 用户输入密码错误系统要求重新输入密码用户重新输入密码如果重新输入次数大于3,吞卡补充说明 连接账户时间小于60秒在远程失败的情况下,保障可靠的恢复,Use Cases识别用例,Actor希望系统提供什么功能系统是否存储和检索信息,如果是,这个

28、行为由哪个Actor触发当系统改变状态时,通知参与者吗 存在影响系统的外部时间吗,识别用例,用例止于系统边界,识别用例(Cont.),用例是有目标导向的系统的存在是因为Actor有需要使用它来满足的目标,识别用例(Cont.),结果值由系统生成,识别用例(Cont.),业务语言而非技术语言,识别用例(Cont.),用户的观点,而非系统的观点,识别用例(Cont.),用例 vs.功能,识别用例(Cont.),用例命名 动词+宾语,Place Order,买票,打电话,用例文档书写,书写用例文档Who?,最完美:业务人员接受训练,写出优美的用例文档最现实:业务人员提供素材,开发人员写用例文档 最糟

29、糕:业务人员不管,完全由开发人员杜撰,书写用例文档,书写用例文档(Cont.),书写用例文档(Cont.),书写用例文档(Cont.),书写用例文档(Cont.),书写用例文档(Cont.),书写用例文档(Cont.),书写用例文档(Cont.),书写用例文档(Cont.),书写用例文档(Cont.),书写用例文档(Cont.),书写用例文档(Cont.),书写用例文档(Cont.),书写用例文档(Cont.),书写用例文档(Cont.),书写用例文档(Cont.),书写用例文档(Cont.),书写用例文档(Cont.),用例文档实例,Software Requirements Specifi

30、cation(SRS),软件需求规格说明文档,Software Requirements Specification(SRS),Several standards organizations(including the IEEE)have identified nine topics that must be addressed when designing and writing an SRS:Interfaces Functional Capabilities Performance Levels Data Structures/ElementsSafety Reliability Sec

31、urity/Privacy QualityConstraints and Limitations,Why SRS?,It provides feedback to the customer.It decomposes the problem into component parts.It serves as an input to the design specification.It serves as a product validation check.,为什么要写软件需求规格说明文档?,它给用户提供了反馈 它把问题分解成子问题了 它为设计文档提供了输入 它能作为产品验收的准则,软件需求

32、规格说明编制指南,无歧义完整性可验证性 一致性可修改性可追踪性,WHO?,客户通常对软件设计和开发过程了解较少,不能写出 可用的SRS,开发者通常对于客户的问题和意图了解较少,写不出令人满意的SRS,双方联合起草,软件需求规格说明模板,引言软件总体描述系统功能 外部接口需求描述其它非功能性需求其它需求附录,软件需求规格说明模板(Cont.),Table of ContentsRevision History1.Introduction 1.1Purpose1.2Document Conventions1.3Intended Audience and Reading Suggestions1.4

33、Project Scope1.5References,软件需求规格说明模板(Cont.),2.Overall Description 2.1Product Perspective2.2Product Features2.3User Classes and Characteristics2.4Operating Environment2.5Design and Implementation Constraints2.6User Documentation2.7Assumptions and Dependencies,软件需求规格说明模板(Cont.),3.System Features 3.1S

34、ystem Feature 13.2System Feature 2(and so on)4.External Interface Requirements 4.1User Interfaces4.2Hardware Interfaces4.3Software Interfaces4.4Communications Interfaces,软件需求规格说明模板(Cont.),5.Other Nonfunctional Requirements5.1Performance Requirements5.2Safety Requirements5.3Security Requirements5.4So

35、ftware Quality Attributes 6.Other RequirementsAppendix A:GlossaryAppendix B:Analysis ModelsAppendix C:Issues List,软件需求规格说明模板(Cont.),Revision History,软件需求规格说明模板(Cont.),不同公司对软件需求规格说明的格式内容有自己的规定,但总体讲内容大致相同。建立文档的重要性,建立文档的重要性,文档 VS 代码,建立文档的重要性(Cont.),因为:软件难免不出BUG客户需求不断变更开发团队难以保证长期不变,所以管理者和用户都期望:软件开发过程可检查

36、软件可维护,可升级软件可持续长期开发,建立文档的重要性(Cont.),文档:可见可检查可维护可重构,代码:不可见难检查难维护难重现,建立文档的重要性(Cont.),只有:建立完善合格的文档体系才能保证软件的质量,走向成熟。,文档写作,文档写作方法1,1:确定主题:想好准备要写的是什么,用一句话概括 成主题;2:先写好章节提纲,通过建立目录把文章或文案的结 构确定下来,这样能帮助自己理清思路,对全文有 个初步的审视,同时也能方便检查整个文章是否完 整,及时调整;3:逐渐完善每个章节的内容,根据目录小标题说明清 楚,必要的话利用表格图表进行示意。,文档写作方法2,1:查阅类似的相关文档;2:截取其中结构或模式;3:按照实际需要进行裁剪,并填空式编写其中内容。平时工作中同时可以当作练习的内容:专业技术文档。,文档重要性,文档比代码更重要写好文档不简单,Summary,What is requirement analysisHow to proceed requirement analysis 业务流程图用例及用例文档软件规格说明文档,Thank you,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号