第4章结构化分析.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

24.3软件需求分析阶段的活动活动产出物需求开发会议纪要讨论纪要分析模型需求规格说明书审核通过的规格说明书图4-3需求分析阶段的活动4.3.6需求管理需求获取需求分析与建模规格说明需求验证4.1需求及需求原因4.2需求类型4.3.14.3.2,4.3.34.3.44.3.534.3.1需求获取(requirementelicitation)1)需求获取的目标2)获取需求信息的相关者3)获取需求信息的来源4)获取需求信息的基本步骤5)获取需求信息的方法41)需求获取的目标收集准备建立的系统和正在使用的系统的信息,并从这些信息中提取用户和系统需求。为下一步的需求分析提供素材。2)获取需求信息的相关者主要用户中层管理用户技术人员客户查询用户商业用户图4-4收集信息相关者5历史数据、记录、表、报表、卡片、文字描述、文档、图(手工流程、计算机流程)、己有的系统、不同类型的人员等信息。需求活动需求的获取安排航班飞行的时间表。交通费用的设置和购成的规定描述。航空公司的预定和售票的工作流程。3)获取需求信息的来源用一段话概括进行航班预定系统分析时需要收集的信息来源。6航班预定业务中的各种人(旅行社和航空公司雇员)是如何工作的。己有的预定系统能完成哪些工作,如何完成的。法律、规章制度和规则管理着该行业。研究竞争性预定系统的功能。了解正在发生的从旅游代理商预定机票到旅客在线预定机票的过渡。74)获取需求信息的基本步骤第1步:了解相关背景和领域/行业的知识,确定产品所期望的用户类;第2步:与客户或组织的高层人员进行交流,了解实际用户任务和目标以及这些任务所支持的业务需求;第3步:与客户或组织的底层人员进行交流,获取每个用户类的详细的用户需求;第4步:整理需求纪要,发现新问题,并重复1-3步;第5步:需求分类和组织,以区别功能需求、非功能需求、约束条件、业务规则、外部接口需求、建议解决方法和附加信息;第6步:优先排序和解决冲突;第7步:得到最终需求清单,并与客户做最终签字确认。8(1)思想:先了解宏观的问题,再了解细节的问题.设S:一个软件系统;D:不同的问题域;P:问题;F:行为(或功能)S={D1,D2,D3,…Dn}教学管理系统=(本科生教学,研究生教学,…)Di={P1,P2,P3,…Pm}本科生教学管理=(教务管理,教师管理,学生管理,课程管理···)Pj={F1,F2,F3,…Fk}教务管理=(学藉管理,课程管理,成绩管理,教学质量管理,实践教学,教学成果管理,…)每个行为对应于软构件中的接口。5)获取需求信息的方法9思考如下问题背景:你对一个同学已经仰慕已久,“十一”快到了,你希望对方能够与你共进晚餐。但是由于你们只有几面之缘,你对她(他)的爱好一无所知…问题:你会采用哪些方式来调查获得对方的兴趣爱好?(2)获取需求信息的方法直接(面谈、打电话、发信、跟踪观察),间接调查;猜测。10面对面访谈(face-to-faceinterviewing)专题讨论会(workshop)现场观察(observingonthescene)头脑风暴(brainstorming)多种方法要结合在一起使用,效果更好获取需求信息的方法11①面对面访谈12面对面访谈需求获取中最直接的方法:用户面谈(interviewing),“看起来很容易”,但“做起却很难”。面谈中存在以下问题:交流障碍、沟通不全、对问题的理解不深入或有偏见。缺少经验,不能主动、深入挖掘问题。意见冲突,不虚心听取别人的意见。认为用户不懂得计算机和程序13如何提问?封闭式问题:对错判断或多项选择题,回答只需要一两个词“每个人都能提问题,但并不等于人人都会提问题…”开放式问题:这种问题需要解释和说明,同时向对方表示你对他们说的话很感兴趣,还想了解更多的内容。通过提问题增强你对谈话进展和方向的控制问题不能过于宽泛最开始的问题不能太难谈话之前有意识的准备一些备用问题不能在提问之前就已经表示不赞同14访谈问题的分类上下文无关的问题(context-freequestions):充分理解用户的问题,不涉及具体的解决方案客户是谁?最终用户是谁?不同用户的需求是否不同?这种需求目前的解决方案是什么?解决方案相关的问题(solution-contextquestions):通过这类问题,探寻特定的解决方案并得到用户认可你希望如何解决这个问题?你觉得该问题这样解决如何?15面谈之前确立面谈目的确定要包括的相关用户确定参加会议的项目小组成员建立要讨论的问题和要点列表复查有关文档和资料确立时间和地点通知所有参加者有关会议的目的、时间和地点16面谈之中Step1:事先准备一系列上下文无关的问题,并将其记录下来以便面谈时参考;Step2:面谈前,了解一下要面谈的客户公司的背景资料,不要选择自己能回答的问题而浪费时间;Step3:面谈过程中,参考事先准备的面谈模板,以保证提出的问题是正确的。将答案记录到纸面上,并指出和记录下未回答条目和未解决问题;Step4:面谈之后,分析总结面谈记录。17面谈之后复查笔记的准确性、完整性和可理解性把所收集的信息转化为适当的模型和文档确定需要进一步澄清的问题域向参加会议的每一个人发出此次面谈的minutes(会议纪要)。18面谈记录的示例(1)第1部分:建立客户或用户情况表第2部分:评估问题询问用户对哪些类型的问题缺乏好的解决方案它们是什么?(不断的问“还有吗?”)第3部分:理解用户环境谁是用户?他们的经历和经验如何?用户的预期如何?第4部分:扼要说明理解情况你刚才告诉我:(用自己的话复述客户描述的问题)这是否足以表达你现在的解决方案中存在的问题?如果有,你还有什么问题?19面谈记录的示例(2)第5部分:分析人员对客户问题的提问对每个问题进行以下提问:这是一个实际的问题吗?问题产生的原因是什么?现在如何解决的?希望如何解决?该问题的重要程度如何?第6部分:评估自己的解决方案总结自己建议的解决方案;对自己方案的优先级排序;第7部分:评估机会第8部分:评估可靠性、性能及其他需要20面谈记录的示例(3)第9部分:其他需求法律法规、环境、行业标准等;对于你们已经确定的项目,进行角色扮演为客户方,用户方,开发方,通过面谈来获得需求。第10部分:总结性提问还有其他问题要问面谈人吗?尚未解决的问题有哪些?下次访谈的方式、地点、时间、参加人等;第11部分:分析人员的总结总结出客户/用户确认的几条优先级最高的需求或问题。21面对面访谈的优缺点分析优点:直接了解用户,得到第一首材料。缺点:需求工程师难以理解专业术语和“行话”,容易造成很多误解。用户不自觉地认为某些需求太普通,太基本,不值得去提。但它们对需求工程师来说却不是显而易见的。这使得某些需求被忽略。22专题讨论会准备参加会议人员:主持人、用户、技术人员、项目组人员安排日程通常在具有相应支持设备的专用房间进行②需求研讨会(Workshop)获取需求信息的方法面对面访谈举行会议主持人掌握讨论气氛并控制会场自由讨论阶段,营造一种创造性的和积极的氛围,获得所有相关者的意见分配会议时间,记录所有言论23需求研讨会会议图4-5参加会议人员24需求研讨会(Workshop)Figure4-6High-TechJADFacility25需求研讨会(Workshop)联合应用设计会议(JointApplicationDesign,JAD)。让项目的所有成员参加会议,定义需求或设计系统,会议一般为1至2天,与会者畅所欲言,在应用需求上达成共识、对操作过程尽快取得统一意见。促进用户与开发团队之间达成共识;揭露和解决妨碍项目成功的问题;快速产生初步的系统定义。26观察用户的工作流程,了解基本商业需求,理解商业功能,获得对商业过程和规则的全面理解。③现场观察(Observe)Workflows:工作流是处理商业事务的一系列步骤。提供了一种用来描述组件和参与者之间复杂的交互关系的方法。两种方式:被动观察:需求分析人员观看用户的工作主动观察:需求分析人员直接参与用户的工作获取需求信息的方法面对面访谈需求研讨会27客户销售技术专家系统不需要帮助需求不变图4-7计算产品报价的工作流程需要帮助询问报价制定需求记录检查需求将数据录入系统计算报价将数据录入系统复查报价接受订单需求变化28④头脑风暴回答:铅笔有什么用途?获取需求信息的方法面对面访谈需求研讨会现场观察29头脑风暴(Brainstorming)一般以8-12人最佳明确分工:1名主持人、2名记录员成功要点:自由畅谈发表见解追求数量会后:修剪、分组、排序30图4-8收集信息和建模关系(3)获取需求信息和建模关系分发调查问卷和用户面谈复查现有文档观察商业过程获取并理解系统的需求和限制达成共识,产生系统定义进一步理解系统的功能及规则开发系统需求和模型(2)获取需求信息的方法(1)思想:开讨论会头脑风暴31需求分析阶段的活动活动产出物需求开发会议纪要讨论纪要分析模型需求规格说明书审核通过的规格说明书需求分析阶段的活动需求管理需求获取需求分析与建模规格说明需求验证321)需求分析的相关者2)结构化分析的思想3)Davis的需求分析指导性原则4)需求分析的步骤5)加快对需求理解的几种技术4.3.2需求分析(requirementanalysis)4.3.1需求获取33需求分析:对收集到的需求进行提炼、分析和审查,为最终用户所看到的系统建立(概念化)分析模型。本质:4.3.2需求分析(requirementanalysis)抽象、映射、转换用户的需求软件需求模型定义系统的边界分析需求类型确定需求优先级建立需求分析模型34本课讲述结构化分析(structureanalysis,SA)方法最早产生于七十年代中期,八十年代开始成为主流。Yourdon于1989年出版《ModernStructuredAnalysis》结构化分析起源于结构化程序设计语言。事先设计好每一个具体的功能模块,然后将这些设计好的模块组装成一个软件系统。35图4-9需求分析相关者客户、用户管理人员软件开发小组分析人员1)需求分析的相关者36(1)抽象:透过现象看本质抓住事物的本质(要素),捕获问题空间的“一般/特殊”关系是认识、构造问题的一般途径。需求活动--需求的获取2)结构化分析的思想自顶向下逐层分解(top-down)地理特征区域点线城市湿地山脉草原海洋水坝建筑桥梁机场水上陆上码头公路输油管铁路输电线河流物质精神世界37需求活动--需求的获取分离问题,捕获问题空间的“整体/部分”关系是降低问题复杂性的基本途径之一。整个问题问题的深度问题的广度问题的深度问题的广度子问题1问题的深度问题的广度按问题深度分而治之按问题广度分而治之子问题2子问题3子问题1子问题2子问题3图4-10问题的分解(2)划分:分而治之38(3)多视图:从不同视角看问题(投影)捕获并建立问题空间的多维“视图”是描述问题的基本手段之一,是解决“A是B,B是A”的基本方法.图4-11多视图39(4)自悟(Introspection):具有领域和过程方面的知识,具有良好的想象能力。(5)提炼(Extraction):提炼方法是针对已经有了部分需求文档的情况,通过提练,复审有代表性的文档。40分析问题和需求的能力取决于分析人员的思维和经验。经验来源于:开发了一些软件并善于总结-创新与教训跟踪最新技术。思维来源于:严谨、逻辑和“活跃”的思考习惯。严谨要求思考的对象应该是不放过任何一个“小”问题逻辑要求思考的过程应该是一种符合规则的推导过程活跃思维要求思考的方式应该是并行的,即不是仅一个角度,而是多个角度来思考问题41建立分析模型前先理解问题3)Davis[DAV95A]的需求分析指导性原则:为开发人机交互建立原型记录每个原型的起源及原因使用多个需求视图给需求赋予优

1 / 188
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功