一、简述
1、业务需求、用户需求、系统需求。要求掌握其概念,并且能根据实际案例进行描述。
业务需求反映了组织机构或客户对系统、产品高层次的目标要求,描述了组织为什么要开发一个系统。
用户需求是描述用户使用产品能完成什么任务,怎么完成任务的需求,描述了用户能使用系统来做些什么。
功能需求是对用户需求的分析、提炼、整理,是需求分析与建模的产物,能生成指导开发的、更精确的软件需求。
2、简述系统需求的三种类型并举例说明。
1.功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的
任务,从而满足了业务需求。
2.非功能需求描述了系统展现给用户的行为和执行的操作等。
3.设计约束是对开发人员在软件产品设计和构造上的,是产品必须遵守的标准、规范和合约。
3、软件开发的各阶段,为什么只有需求阶段称为需求工程?
随着软件系统规模的扩大,需求分析与定义在整个软件开发与维护过程中越来越重要,直接关系到软件的成功与否。人们逐渐认识到需求分析活动不再仅限于软件开发的最初阶段,它贯穿于系统开发的整个生命周期。
4、简述需求的开发过程
1.需求获取:通过与用户的交流,对现有系统的观察及对任务进行分析,从而开发、捕获和修订用户的需求;
2.需求建模:为最终用户所看到的系统建立一个概念模型,作为对需求的抽象描述,并尽可能多的捕获现实世界的语义;
3.形成需求规格:生成需求模型构件的精确的形式化的描述,作为用户和开发者之间的一个协约;
4.需求验证:以需求规格说明为输入,通过符号执行、模拟或快速原型等途径,分析需求规格的正确性和可行性,包含有效性检查,一致性检查,可行性检查和确认可验证性;
5.需求管理:支持系统的需求演进,如需求变化和可跟踪性问题。
5、需求分析主要用来做什么?
需求分析的任务是通过详细调查现实世界要处理的对象,充分了解原系统工作概况,明确用户的各种需求然后在此基础上确定新系统的功能。
6、谈谈你对需求获取的理解
需求获取,通过与用户的交流,对现有系统的观察及对任务进行分析,从而开发、捕获和修订用户的需求,是软件设计的第一阶段,其本质主要是人的活动,涉及软件设计人员如何与客户建立有效的沟通。
7、谈谈你对软件需求规格说明的理解
软件需求说明书的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解, 使之成为整个开发工作的基础。
8、分析把用户界面的设计,编入软件需求规格说明的利弊?
积极:
①
探索潜在的用户界面,有助于精化需求。
②
使用户和系统的交互,对用户和开发人员更具有实在性。
③
用户界面的演示,也有助于项目计划的制定和预测。
消极
①
屏幕映像和用户界面机制是解决方案(设计)的描述,而不是需求。
②
如果完成了用户界面的设计后,才能确定软件需求规格说明,那么需求开发的过程,将会花费很长的时间。
③
这将会使那些只关心开发时间的经理、客户或开发人员失去耐心。
所以,一般选择在软件需求规格说明中
加入所选择的用户界面组件的概念映像草图,而在实
现时,并不一定要精确地遵循这些方法。
9、何谓需求分析员?其任务是什么?
是对软件项目设计的需求进行收集、分析、记录和验证等工作主要承担者。
—— 是用户群体和软件开发团队之间进行需求沟通的桥梁,是收集和传播的中心角色。
任务:1)定义业务需求 2)确定项目承担者和用户类别 3)获取需求 4)分析需求
5)编制需求规格说明书 6)为需求建模 7)主持对需求的验证
8)引导对需求的优先级划分 9)管理需求
10、你认为需求分析员应具备的什么样的能力?为什么?
能力:1)倾听的技巧 2)交谈和提问技巧 3)分析能力 4)协调能力 5)观察能力
6)写作能力 7)组织能力 8)建模能力 9)人际交往能力 10)创造力
需求分析员应引导个项目承担者之间达成一致,利于开发项目。
11、结构化分析和面向对象分析的区别?
结构化分析主要是将现实世界的问题化为计算机可以理解的对数据的加工处理,是面向过程的;而面向对象分析是将现实世界的问题直接映射成对象及其接口,面向问题域,符合人们的思维习惯。
12、进行需求文档写作时主要有三种手段:形式化语言、非形式化语言和半形式化语言,请:
(1)说明这三种手段的不同及其各自的优缺点,并试举例;
(2)说明在实践当中,应该怎样综合运用这三种手段。
要求掌握其概念,并且能根据实际案例进行描述
自然语言表达能力最为强大,易于用户的理解。但同时自然语言不严谨,无法被机器所理解。 例子,汉语,英语。
形式化语言基于数学的语言,具有数学的表示法特性,能够保证信息的正确性,其信息描述能够被机器所理解。但是要求读者具有很强的专业背景知识,而且所能描述的内容有限。 例如VDM、Z语言等
半形式化语言比自然语言具有更丰富的语义和更严格的语法同时又比形式化语言有更强的表达能力。但是,它描述的信息还需要进行额外的处理才能够被机器所理解。同时,严格的语法也使得半形式语言的表达能力无法达到自然语言的程度,所描述的信息也很难被用户所理解。例如ER图、DFD图、UML等图形语言。
为了让需求规格说明文档的内容能够同时满足用户和开发人员的需要,需求工程师在实践中更多的会综合使用自然语言、半形式化语言和形式化语言。例如,为半形式化语言和形式化语言添加自然语言的注释,或者分别使用自然语言和半形式化语言(或者形式化语言)重复描述同样的信息,或者使用半形式语言和形式化语言描述概要与抽象信息,然后再用自然语言进行详细信息的描述。
二、建模
1、根据下列叙述性描述,采用面向对象的分析方法,为描述的内容建立静态模型、动态模型。
2、根据下列叙述性描述,采用面向问题域的分析方法,为描述的内容建立框架模型。
3、根据下列叙述性描述,采用面向数据的分析方法,为描述的内容建立ER模型。
4、活动图
活动图是一种表述过程机理、业务过程以及工作流的技术。它主要的应用包括两个方面:
一是在业务建模阶段,对工作流进行建模;
二是在系统分析和设计阶段,对操作进行建模。
它的作用和传统的“流程图”是有着很深的渊源,也十分的相似。不过它与流程图最主要的区别在于,活动图能够支持并行的行为。
练习案例:
校园书店“课本库存系统”的目的是向学生提供本地大学课程的课本。大学的教材科通过一个“课本主清单”向书店提交初始数据,包括课程、教师、课本和预计注册人数。书店生成一个“购买订单”,“购买订单”被送到供应课本的出版公司。图书订单随着一个“包装清单”到达书店,它被接收的部门检查和验证。学生填写包含课程信息的“购书要求”,当他们付了书款之后就得到一个“销售单据”。
请建立上述四类模型并用简短的语言描述。
三、文档
1、设想你自己就是ATM机的唯一用户:
a)写出你对ATM机系统的用户需求。
ATM机系统需要为用户建立账户,并给用户发放银行卡,账户中存储着个人信息,存款信息,取款信息,余额信息,用户可以持卡通过ATM机进行修改密码,取款,存款,查询余额的操作。
b)尝试将用户需求转换为系统(级)需求。
ATM机系统提供取款,存款,查询余额的操作,当用户通过密码的有效验证后可以修改密码。
c)除了功能性需求之外,还有哪些需求需要定义?请你一一写出这些需求。
易用性,保密性,系统响应迅速
。
2、职工福利和工资顾问遇到了一些问题。
她的工作是为雇员提供他们的福利建议。公司刚刚磋商了一个新的医疗保险方案,这个方案要求雇员从7个保健组织和首选的供应商方案中进行选择。保健组织和供应商按照雇员的分类、贡献、免赔额、受益人、服务内容和允许的服务提供商而各不相同,目的是尽可能为雇员提供最灵活的福利,用以使公司的花费极小化并控制付给保险商的费用(这将对公司被收取的后续保险费产生一定的影响)。
这个顾问被请来为雇员选择最合适的保险方案。她目前以手工方式答复这些请求。但目前的选择比新计划中的选择要直接得多。她需要解释新的选择:它们包括什么,不包括什么,它们的费用和可能费用是多少,具有什么优缺点。但是,雇员对新计划不信任,这种情况迫使她需要向雇员提供更多具体的建议和答复。
她可能不得不为许多雇员逐步建立假定情境——可能的最坏假定情境。这种假定将要根据每个雇员的收入、婚姻和家庭状况、目前的健康风险等进行个人定制。在逐步建立一些样本假定时,她发现:(1)从信息系统部门获得工资和个人数据需要一天时间。(2)雇员数据存储在许多文件夹中,而且并不总是被正确地更新。当冲突数据变得很明显时,除非解决了矛盾,否则就不可能继续她的工作。(3)计算复杂。为一个雇员创建投资和退休假定常常需要花费一整天或更长时间。(4)有些人担心保险计划会被提供给未授权的个人,例如以前的配偶或者非直系亲属。(5)计算中可变条件的复杂性导致经常出错,很多错误可能一直未被发现。
假设现在需要你来开发一个软件,解决职工福利和工资顾问的问题。那么你认为她现在遇到的问题有哪些?你希望新的软件应该达成哪些业务目标?你怎样设计软件的高层解决方案和系统特性?解决方案有哪些重要的约束?
她现在遇到的问题有:
(1)不能有效地从信息部门获得工资和个人数据;
(2)雇员数据太过分散,而且不能及时正确地更新;
(3)计算复杂;
(4)雇员信息不能得到及时有效正确的更新;
(5)计算中可变条件的复杂性。
新的软件应该达到的业务目标有:
(1)减少从信息部门获得工资和个人数据的时间;
度量标准(Scale):一次从信息部门获得工资和个人数据的时间;
计量方法(Meter):检查信息部门数据库日志;
理想标准:减少50%;一般标准:减少30%;最低标准:减少20%;
(2)集中雇员数据,并且正确更新;
(3)降低计算的复杂性;
(4)及时有效正确地更新雇员信息;
(5)降低计算中可变条件的复杂性。
软件的高层解决方案和系统特性:
(1)高层解决方案:
由软件从信息部门的数据库中检索出工资和个人数据,减少所需信息获取的时间;
由软件来分析雇员数据的各种特征,及早识别出数据所在位置;或由软件集中处理雇员数据,及早识别出不准确的或没有及时更新的数据,提交人工处理或自行更新;
由软件来处理投资和退休假定的计算的复杂过程;
由软件来分析个人数据的准确性,及早识别出不准确的个人信息,提交人工处理;或定时更新数,提高数据的准确性;
由软件来处理计算中可变条件的复杂性,降低出错率。
(2)系统特性:
根据信息部门提供的数据库查询工资和个人数据;
根据原始数据重新整理数据并更新;
提交查询信息;
创建投资和退休假定的计算过程;
通过公司的内联网访问系统,根据个人情况更新信息;
模拟计算中可变条件的变化;
提供最灵活的福利方案。
重要的约束有:
约束源 | 约束 |
操作性 | 雇员信息必须有备份 |
设备预算 | 有自己已有的系统上开发 |
技术要求 | 应用面向对象的方法 |
行政要求 | 需要信息部门的信息 |
系统 | 空间不应该超过20M字节 |
环境 | 安全性 |