300 likes | 429 Views
第 3 章 需求分析. 概 述. 为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提和关键,不论我们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会给用户带来失望,给开发者带来烦恼。 需求分析的任务是对目标系统提出完整、准确、清晰、具体的要求。 需求分析完成时,系统分析员写出软件需求规格说明书。. 3.1 需求分析的任务. 3.1.1 确定对系统的综合要求 1. 功能需求 2. 性能需求 3. 可靠性和可用性需求 4. 出错处理需求 5. 接口需求 6. 约束
E N D
概 述 • 为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提和关键,不论我们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会给用户带来失望,给开发者带来烦恼。 • 需求分析的任务是对目标系统提出完整、准确、清晰、具体的要求。 • 需求分析完成时,系统分析员写出软件需求规格说明书。
3.1 需求分析的任务 • 3.1.1确定对系统的综合要求 • 1. 功能需求 • 2. 性能需求 • 3. 可靠性和可用性需求 • 4. 出错处理需求 • 5. 接口需求 • 6. 约束 • 7. 逆向需求 • 8. 将来可能提出的要求
3.1.2分析系统的数据要求 • 3.1.3导出系统的逻辑模型 • 3.1.4修正系统开发计划
3.2与用户沟通获取需求的方法 • 在分析软件需求和编写软件规格说明的过程中,软件开发者和软件用户都起着关键的、必不可少的作用。 • 用户与开发者之间需要通信、沟通的内容非常多,在双方交流信息的过程中很容易出现误解或遗漏,也可能存在二义性。因此,不仅在整个需求分析过程中应该采用行之有效的通信技术,集中精力过细工作,而且对需求分析的结果(分析模型和规格说明)必须严格审查。
软件需求分析总是从两方或多方之间的通信开始。用户面临的问题需要用基于计算机的方案来解决;开发者应该对用户的需求作出反应,给用户提供帮助。这样就产生了相互通信的需求。但是,正如前面已经讲过的,从开始通信到真正相互理解的道路通常是充满坎坷的。良好的通信技术有助于加快理解的过程。软件需求分析总是从两方或多方之间的通信开始。用户面临的问题需要用基于计算机的方案来解决;开发者应该对用户的需求作出反应,给用户提供帮助。这样就产生了相互通信的需求。但是,正如前面已经讲过的,从开始通信到真正相互理解的道路通常是充满坎坷的。良好的通信技术有助于加快理解的过程。
3.2.1 访谈 • 访谈(或称为会谈)是最早开始运用的获取用户需求的技术,也是迄今为止仍然广泛使用的主要的需求分析技术。访谈有两种基本形式,分别是正式的和非正式的访谈。在正式的访谈中,系统分析员将提出一些事先准备好的具体问题,例如,询问客户公司销售的商品种类、雇用的销售人员数目以及信息反馈时间应该多快等。在非正式的访谈中,将提出一些可以自由回答的开放性问题,以鼓励被访问的人员表达自己的想法,例如,询问用户为什么对目前正在使用的系统感到不满意。
当需要调查大量人员的意见时,向被调查的人员分发调查表是一个十分有效的做法。当需要调查大量人员的意见时,向被调查的人员分发调查表是一个十分有效的做法。 • 在对用户进行访谈的过程中使用情景分析技术往往非常有效。所谓情景分析就是对用户运用目标系统解决某个具体问题的方法和结果进行分析。
场景示例 • 王力 • 户主(丈夫)公司老总 A地 • 已经是A地电信3G后付费用户,已开通了可视电话、3G上网卡、流媒体、手机支付等业务 • 李梅 • 妻子 公务员 A地 还不是A地电信的用户 • 王成 • 儿子 大学生 B地 • 是B地电信的3G预付费用户,已开通可视电话 • 刘莉 • 下属与朋友 秘书 A地 • 是A地电信3G后付费用户
未来的一天-3G的生活 时间:22:00 王力和李梅看完电影,回到家中。 这时王力的3G手机响了,是儿子王成从B地打 来的可视电话,王力接听了电话,聊了些王成 在学校的情况。 时间:16:50 王总审批完一个项目立项报告后,感觉有一些 细节问题比较模糊,认为有必要在次日召集相 关人员再次讨论,并及时确定下来。 王总给秘书通了一个电话,交给刘秘书安排明 天的事情。 刘秘书登录WSS,通过“集团短信”通知了相关 人员,讨论内容,时间地点等。 时间:15:30 王总用短信方式查询了一下自己的积分情况, 马上收到了电信发来的短信,发现自己积分足够 兑换一个价值一千元的旅行包。王总通过 10000号确定积分换实物的业务。 时间:15:00 李梅来到电信的营业厅,要将自己从预付费用 户转为后付费用户,办理了3G后付费+位置服 务套餐。 开通完成后,李梅立即使用了定位服务;寻找 附近的ATM,进行了取款。 可选项:李梅返回营业厅,给B地的王成3G手 机账户充了500元话费。 时间:14:00 公司秘书刘莉对今天公司一个离职员工进行取 消VPN集团用户业务。 因为某销售经理丁即将调离外地办事处工作, 公司秘书刘莉对他的办公电话进行销户(丁 的电话是后付费VPN用户)。 时间:10:00 李梅去自己办公地点附近的电信营业厅,购买 了一部3G手机,并且为自己申办了3G预付费 号码,并买了张缴费充值卡,通过拨打****号 码向自己的预付费号码进行了充值; 然后李梅使用新开的3G号码,给自己的丈夫王 力的3G手机打了电话;告知自己办理了3G业 务; 通话结束后,系统提示李梅她的账户余额是 25元。 时间:9:00 王力来到自己公司; 秘书刘莉,接到电信客服的“VPN业务咨询回 访”电话;详细的了解了VPN业务; 向王力汇报;王力决策公司办理VPN业务; 刘莉去营业厅办理VPN业务; 刘莉用短号码呼叫老总王力,告知办理完毕; 时间:7:30 1、王力,起床,吃过早点,用3G上网卡登 录WSS,查询了自己的费用; 2、在WSS上进行了交费(缴费卡); 3、而且在WSS上看到了,电信新推荐的一 项业务——VPN业务; 4、王力对这一业务很感兴趣,想可以大大 降低企业通讯费用支出;在WSS上提交了关 于VPN业务的“咨询”,留下了自己企业秘书 刘莉的电话作为联系方式。 时间:17:00 王总给秘书打电话之后,收到3G手机中设置的 温馨提示:“今天是老婆的生日”.于是,随即利用 3G手机上网查询当晚电影预告,通过流媒体下 载业务,下载了新近大片的节目短片,并进行了 预定。 王总在回家的车上,和妻子李梅联系后,确定 晚上去看大片。于是王总上网下单,并通过电 子转帐业务购买了彩信方式的影票(电子影 票)。 9:00 10:00 14:00 15:00 15:30 16:50 17:00 22:00 7:30 一天 1、流媒体业务的使用 2、WAP业务的使用 1、3G语音业务使用 1、预付费转后付费用户 2、捆绑产品的订购 3、位置服务使用流程 1、费用查询 2、缴费支付 3、3G上网卡使用 1、开户 2、缴费卡充值 3、3G基础语音业务使用 4、AOC 1、积分查询 2、积分兑换 1、VPN订购 2、VPN设置 3、VPN业务使用 1、取消VPN 2、销户 1、集团短信业务的使用
3.2.2 简易的应用规格说明技术 • 这种方法提倡用户与开发者密切合作,共同标识问题,提出解决方案的要素,商讨不同的方法并指定基本的需求。今天,简易的应用规格说明技术已经成为信息系统界使用的主流技术。 尽管存在许多不同的简易应用规格说明方法,但是它们遵循的基本准则是相同的。 • 在中立地点举行由开发者和用户双方出席的会议。 • 制定准备会议和参加会议的规则。
提出一个议事日程,这个日程应该足够正式以便能够涵盖所有要点,同时这个日程又应该足够非正式,以便鼓励自由思维。 • 由一个“协调人”来主持会议,他既可以是用户也可以是开发者还可以是从外面请来的人。 • 使用一种“定义机制”(例如,工作表、图表等)。 • 目标是标识问题、提出解决方案要素、商讨不同的方法以及在有利于实现目标的氛围中指定初步的需求。
3.3 分析建模与规格说明 • 为了更好地理解问题,人们常常采用建立模型的方法。所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。结构化分析就是一种建立模型的活动,通常建立数据模型、功能模型和行为模型等三种模型。 • 除了用分析模型表示软件需求之外,还要写出准确的软件需求规格说明。模型既是软件设计的基础,也是编写软件规格说明的基础。
3.4 实体--联系图 • 3.4.1数据对象 • 3.4.2属性 • 3.4.3联系 • 3.4.4实体联系图的符号
3.5 数据规范化 • 第一范式 • 第二范式 • 第三范式
3.6 状态转换图 • 状态转换图(简称为状态图)=状态+事件 • 状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。在状态图中用圆形框或椭圆框表示状态。 • 状态=状态名+状态变量值+活动表 • 活动表=事件名称/动作表达式 • 在活动表中通常有3种事件名称:在表示状态的框内用关键字entry、 do、exit(后接冒号)标明进入该状态时系统的行为(即所做的动作)。 • Entry指的是进入该状态的动作 • exit指的是退出该状态的动作 • Do指的是在该状态下的工作
事件是在某个特定时刻发生的事情,它是对引起系统从一个状态转换到另一个状态的外界事件的抽象。简而言之,事件就是引起系统状态转换的控制信息。事件是在某个特定时刻发生的事情,它是对引起系统从一个状态转换到另一个状态的外界事件的抽象。简而言之,事件就是引起系统状态转换的控制信息。 • 在状态图中,从一个状态到另一个状态的转换用箭头线表示,箭头表明转换方向,箭头线上标上事件名。必要时可在事件名后面加一个方括号,括号内写上状态转换的条件。也就是说,仅当方括号内所列出的条件为真时,该事件的发生才引起箭头所示的状态转换。 图3.7给出了状态图中使用的主要符号。
为了具体说明怎样用状态图建立系统的行为模型,下面举一个例子。图3.4是人们非常熟悉的电话系统的状态图。为了具体说明怎样用状态图建立系统的行为模型,下面举一个例子。图3.4是人们非常熟悉的电话系统的状态图。
航班从Tentative(暂定)开始。有人制定时刻表,确定是否包含这个航班。航班从Tentative(暂定)开始。有人制定时刻表,确定是否包含这个航班。 • 如果计划批准,则航班转入Scheduled状态。航班时刻表发布到Internet上 • 离起飞时间小于60天,该航班开始开始售票,进入Open状态 • 可以从航班中 增加和删除旅客,但售出最后一张票,航班就满了。如果有人退票,则再次开始售票 • 飞机起飞10分钟点,航班停止售票 • 如果飞机还没有到达,则航班延迟。 • 若延迟超过4小时,则航班取消。若乘客不足50人,则也把航班取消。 • 如果航班取消,则航空公司要为乘客寻找另一航班。 • 如果飞机到达,则其起飞和着陆,完成这个航班 事件 状态:进入操作 状态:活动 事件:保证条件 状态
什么情况下适合用状态图? • 适合于描述跨越多个用例的单个对象在整个生存期间的行为,而不适合描述多个对象之间的协作
3.7 其他图形工具 • 3.7.1层次方框图
3.8 验证软件需求 • 3.8.1从哪些方面验证软件需求的正确性 • 3.8.2验证软件需求的方法 • 1. 验证需求的一致性 • 2. 验证需求的现实性 • 3. 验证需求的完整性和有效性 • 3.8.3用于需求分析的软件工具