主要内容:
1、 成本/效益分析。
2、 需求分析。
3、 实体-联系图。
4、 数据规范化。
5、 状态转换图。
6、 验证软件需求。
1、 成本/效益分析。
软件系统的开发也是一种投资,获得更大的经济效益是根本。经济效益通常表现为减少运行费用或(和)增加收入。成本/效益分析的目的就是要从经济角度分析开发一个特定的新系统是否划算,从而帮助投资商正确地做出是否投资的决定。
a) 成本估计。
软件开发成本主要表现为人力消耗(乘以平均工资得到开发费用),常用技术有三种:
a、 **行技术。
把开发软件功能的成本和实现这个功能需要用的源**行数联系起来,通常根据经验和历史数据估计实现一个功能需要的源程序行数。一旦估计出源**行数以后,用每行**的平均成本乘以行数来确定软件的成本。每行**的平均成本主要取决于软件的复杂程度和工资水平。
b、 任务分解技术。
把软件开发工程分解为若干个相对独立的任务(根据开发阶段划分任务),在分别估计每个单独的开发任务的成本,最后累加起来得到软件开发过程的总成本。估计每个任务的成本时,先估计该任务需要的人力(以人月为单位),再乘以每人每月的平均工资而得到每个任务的成本。
c、 自动估计成本技术。
自动化软件技术应用的方法,目前这只是一个方向。
b) 成本/效益分析的方法。
成本/效益分析是估计开发成本、运行费用和新系统将带来的经济效益。运行费用取决于系统的操作费用(操作员人数、工作时间、消耗的物资等)和维护费用。系统的经济效益等于因使用新系统而增加的收入加上使用新系统可以节省的运行费用。
运行费用和经济效益存在于软件的整个生命周期,一般进行成本/ 效益分析时一律假设生命周期为5年。
成本/效益分析考虑的几个方面:
货币的时间价值:通常用利率的形式表示,f=p(1+i)n
投资**期:衡量开发工程的价值。使累计的经济效益等于最初投资所需要的时间。投资**期越短就能越快活的利润。
纯收入:在整个生命周期之内系统的累计经济效益(折合成现在值)与投资之差。
投资**率:投资**的比率。
2、 需求分析。
需求分析的基本任务是准确回答“系统必须做什么”,也就是对目标系统提出完整、准确、清晰、具体的要求。
主要任务:1) 确定对系统的综合要求。
功能需求。性能需求。
可靠性和可用性需求。
出错处理需求。
接口需求。约束。
逆向需求。将来可能提出的要求。
2) 分析系统的数据要求。
3) 导出系统的逻辑模型。
4) 修正系统开发计划。
需求分析信息的途径:与用户沟通的方法。
与用户沟通进行需求分析的典型方法:
1) 访谈。
2) 面向数据流自顶向下求精。
3) 简易的应用规格说明技术。
4) 快速建立软件原型。
需求分析的方法:分析建模与规格说明。
a) 分析建模。
为了更好的理解复杂事物, 采用建立事物模型的方法。(模型是对事物作出的一种抽象,是对事物的一种无歧义的书面描述,由一**形符号和组织这些符号的规则组成。)
主要遵循的准则:
i. 必须理解并描述问题的信息域,(建立数据模型)
ii. 必须定义软件应完成的功能,(建立功能模型)
iii. 必须描述作为外部事件结果的软件行为,(建立行为模型)
iv. 必须对描述目标系统信息、功能和行为的模型进行分解,用层次的方式展示细节。
b) 软件规格需求说明。
写出软件需求规格说明书。
3、 实体-联系图。
为了把用户的数据要求清楚、准确地描述出来,通常建立概念性的数据模型。概念性的数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型。该模型包含3种相互关联的信息:
数据对象、数据对象的属性、数据对象彼此间相互连接的关系。
a) 数据对象。
对软件必须理解的复合信息的抽象。所谓复合信息是指具有一系列不同性质或属性的事物。(由一组属性来定义的实体都可以认为是数据对象),数据对象之间是彼此关联的。
b) 属性:定义了数据对象的性质。
c) 联系:数据对象之间相互连接的方式(关系)。(1)一对一联系(1:1)举例。
(2)一对多联系(1:n)举例。
(3)多对多联系(m:n)举例。
d)使用实体-联系图(er图)来建立数据模型。er图包含实体(数据对象)、关系和属性3种基本成分,通常:矩形框代表实体,菱形框表示关系,椭圆或圆角矩形表示实体的属性。
4、数据规范化。
软件系统中会长期保存一些信息,这些信息以一定的方式组织并存储在数据库库或文件中,为减少数据冗余,避免出现插入异常或删除异常,简化修改数据的过程,通常需要把数据结构规范化。通常用“范式”定义消除数据冗余的程度。其中第一范式数据冗余程度最大,第五范式数据冗余程度最小。
但是范式级别越高,存储同样数据就需要分解成更多张表,在大多数情况下第三范式比较恰当。
4、 状态转换图。
状态转换图是一种行为模型,通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。
a) 状态:状态是任何可以观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。
主要有:初态,终态,中间状态。在一张状态图中只能有一个初态,而状态可以有0个或多个。
状态图既可以表示系统循环运行过程,也可以表示系统单程生命期。
b) 事件:事件是某个特定时刻发生的事情,它是对引起系统做动作或从一个状态转换到另一个状态的外界事件的抽象。即:事件就是引起系统做动作或转换状态的控制信息。
c) 符号:初态用实心圆表示,终态用一对同心圆表示。中间状态用圆角矩形表示,状态图中两个状态之间带箭头的连线为状态转换,箭头指明了转换方向。
状态的转换由事件触发,需要在表示状态转换的箭头线上标出触发的事件表达式。
5、 验证软件需求。
需求分析阶段的工作结果直接影响系统以后的发展,所以需要进行需求验证。主要从四个方面进行验证:(1)一致性:所有需求一致,之间不能矛盾。
(2)完整性:
(3)现实性:指定地需求应该是用现有的硬件技术和软件技术基本上可以实现的。
(4)有效性:必须证明需求是正确有效的。
思考:为什么要进行需求分析?
结构化分析
1.需求分析阶段的任务是确定 a.软件开发方法b.软件开发工具。c.软件开发费用d.软件系统功能。分析需求分析是软件定义时期的最后一个阶段,其基本任务是详细调查现实世界要处理的对象 组织 部门 企业等 充分了解原系统的工作情况,明确用户的各种需求,然后在此基础上确定新系统的功能。选项a是在总体设计阶...
工作分析结构化访谈提纲
一 关于岗位的基本信息。一 问题。1.请问您的名字 所属部门 任职岗位名称是什么?2.请问您的工作向谁汇报,谁指导您的工作?3.与您同在一个岗位的同事有哪些?有多少人?4.您是否承担管理他人的工作,如果是,主要是管理那些岗位上的人员?有多少人?二 记录。访谈者请根据以上问题的答复填写记录。岗位信息记...
结构化能力
结构化能力是对一个人所具备的综合能力的概括,是学习能力 思考能力 策划能力 领导能力 执行能力的集中体现。所谓结构化能力,就是指一个人在面对工作任务或者难题时能从多个侧面进行思考,深刻分析导致问题出现的原因,系统制定行动方案,并采取恰当的手段使工作得以高效率开展,取得高绩效。当你具备了这些能力的时候...