1、第二章 软件计划阶段,1 软件计划阶段的任务 任务软件计划阶段的主要任务包括两个侧面,一是进行软件系统的可行性分析,确定软件系统的建设是否值得、能否建成;二是进行软件的系统分析,了解用户的需求,定义应用功能,详细估算开发成本和开发周期。因此,软件计划阶段的最终成果包括:可行性分析报告、(如果可行而且确定进行建设的话)软件的功能规格说明书。前者供决策使用,后者作为设计阶段的根据。,第二章 软件计划阶段,2. 步骤 任务第一阶段:系统分析可行性报告 放弃开发决策第二阶段:系统分析 软件功能规格说明复审,第二章 软件计划阶段,困难要从繁杂的现象中,提出软件系统的模型,包括功能模型、数据模型、使用模型
2、。用户要求的不确定性;现有系统的缺陷认识难以一致;应用单位组织上的不合理性,BPR问题;功能的技术可实现性;系统实施的可能性;系统价格的可接受性;其它非技术因素,第二章 软件计划阶段,参与人员的要求高级软件技术人员:广阔的知识面,熟悉软件开发的各个阶段工作以及对新领域知识的理解能力;丰富的经验和灵活的应变能力;综合能力强;抽象能力强;善于引导用户和人际交往能力。 工作量估计约占总工作量的1525 价格估计总价格的2530,第二章 软件计划阶段,2 可行性分析可行性分析是决定系统建设是否开始的条件,它的依据是为系统建设所可能提供的资源、条件以及时间限制,其目的在于根据现有条件估计系统建设的风险并
3、提出规避办法,为决策提供依据。经济可行性分析经济可行性分析要进行成本效益分析,包括评估项目的开发成本、日常运行维护成本;分析系统对其它方面产生的影响(提高质量、价格,降低生产、管理费用,提高竞争力等),估计项目预期的效益,从经济上论述项目建设的必要性或经济风险。,第二章 软件计划阶段,成本效益时间,盈亏平衡点,效益曲线,成本曲线,第二章 软件计划阶段,开发成本构成:软硬件购置、调试和安装费用;软件开发费用;系统集成费用;人员培训费用等。维护成本构成:人员费用;消耗材料费用;定期更新、升级费用等。软件开发费用估计的原则:代码行估算原则人力资源估算原则 开发阶段成本分配问题,第二章 软件计划阶段,
4、方案比较与选择可行性报告应该提供多种系统建设方案,包括对方案的功能描述、性能描述、成本估计、运行条件要求(含对机构重组)等,供用户评估、选择。例 图形显示系统的性能价格比较分析 成本,响应时间,满意度,最大可接受成本,功能,第二章 软件计划阶段,可行性报告内容系统建设的背景与意义;系统实现的条件与约束;系统方案(系统配置、功能概述、性能概述、开发进度、建设费用估算、效益分析,技术风险评价、有关法律和组织问题等);方案比较与选择方案的标准;需要说明的问题;技术术语说明;参考资料目录。,第二章 软件计划阶段,技术可行性分析技术可行性分析主要是分析系统实现的技术风险,确定系统实现的可行程度。考虑的因
5、素:系统的规模和功能复杂程度;采用技术的成熟程度和先进性以及对功能实现的支持程度;建设成员的技术水平和管理水平;未来系统运行环境要求和可能的条件等。法律可行性分析法律可行性分析主要是评估未来系统在实施中可能遇到的法律障碍、组织制度障碍等。,第二章 软件计划阶段,3 软件计划阶段使用的工具:结构化分析 1. 结构化分析方法所谓结构化分析方法,主要有两重含义:目标:分析的结果应该是高度可维护的;问题的规模必须与有效的实现方法相 联系,即考虑实现的可行性;尽量使用图形表示;区分逻辑上的考虑与物理上的考虑;构造出系统的逻辑模型,第二章 软件计划阶段,使用的主要工具:数据流程图(DFD);数据字典;结构
6、化语言、判定表、判定树等可以明确地、无歧义地描述逻辑与策略的工具。结构化分析方法的指导思想与具体做法理解当前的现实环境,获取当前系统的实现模型;注意:必须完整、准确地掌握并描述当前系统的运转情况。,第二章 软件计划阶段,从当前系统系统的模型中抽象出系统的逻辑模型; 注意:必须从某种观点(明确主线)出发,抽象出当前系统的组织模型、业务运转模型、信息流转模型等。例 企业综合管理系统采用以物流为主线还是以财流或其他为主线。 了解和分析用户的需求,提出和总结目前系统不适应用户需求和信息化要求的缺陷; 注意:必须从合理性和可实现性出发,分析用户的要求并加以取舍。同时,要根据信息化的目标加以引导。 分析和
7、提出未来系统与现实系统在逻辑上的差别,要有预见性; 注意:要考虑未来系统的生命周期和业务发展趋势。,第二章 软件计划阶段,建立未来系统的逻辑模型,包括:业务运行模型、信息模型、组织模型等;注意:在建立未来系统模型时,不仅要考虑现有的条件,包括人员素质、外部环境、机构设置、业务运行情况等等,还必须考虑信息技术的发展对各方面产生的影响,必须充分考虑业务流程的重组(BPR)。目标:未来系统能够避免或减少现有系统存在的弊病;充分利用现代信息技术的优势;提高运转效率;减少开销、提高效益;增加决策的科学性。在技术方面要提高系统的灵活配置能力以提高适应性,强调信息集成。例 管理三角形和扁平化问题。对未来系统
8、的逻辑模型进行修改、补充和完善。,第二章 软件计划阶段,达到的最终目标:给出软件系统的信息流程及信息结构;标识功能界面,提出详细的功能规格说明;确定系统设计的限制条件,规定性能要求;密切与用户的关系,使用户明确自己的任务和责任。,第二章 软件计划阶段,数据流程图数据流程图是描述系统中数据流向的图形工具,从数据加工的角度描述系统中的活动。,第二章 软件计划阶段,记号: 流向文件处理(加工)源 潭需要注意的地方:只考虑稳定的情况(忽略开始、结束等),第二章 软件计划阶段,忽略细节(如异常处理等) ; 不要与程序的控制流混淆,图中不能出现 回路。方法:自顶向下、逐步求精。,第二章 软件计划阶段,第二
9、章 软件计划阶段,用途:分解系统的复杂性,用以理解实际系统的信息流。数据字典数据字典是用来定义每个数据流向、文件的组成的工具,数据字典中还应对每个加工做出描述。与数据流程图结合起来,就可以完整地描述系统的数据流向及其组成概况。数据流条目:代表DFD中的每个流向及其组成。分为终结条目和非终结条目两类,前者表示不可再分的条目,后者表示需要再分解的条目。,第二章 软件计划阶段,记号:“+” 表示 “与”; 表示重复,可以附上下标,限制重复的次数; | 表示“或”,选择括号中的某一项;( )表示可选,括号中的数据项可以有,也可以无。例 旅游计划旅游计划 = 姓名+性别+年龄+通信地址+(旅游时间)+
10、日期+目的地 +飞机|火车,第二章 软件计划阶段,文件条目:与数据流条目同。数据项条目:严格定义了它的取值范围。例起飞时间=00:0023:59在DFD中每一个不可再分解的加工部分,应该给出它的加工说明。目前还是用自然语言描述,当然还可以用判定表、判定树等辅助工具。例处理月生产计划,第二章 软件计划阶段,国家计划,产品结构,合同,库存,储备定额,生产能力,第二章 软件计划阶段,数据字典:国家计划=产品名称+数量合同=产品名称+数量+交货日期+交货数量储备定额=零件名称+最高储备+最低储备产品结构=产品名称+零件名称+台份用量+ 加工设备类+工时设备能力=设备类+设备号+负荷能力车间生产计划=零
11、件名称+数量+日历进度日历进度=日期+数量负荷能力= 0.01 1.0;库存=零件名称+数量,第二章 软件计划阶段,加工说明:将国家计划和合同加以分解,得出本车间当年应交付的零件种类与数量;根据库存和储备定额,计算当月应生产的零件种类与数量(若库存低于定额则应增加生产,否则减少生产);根据当月生产任务计算设备工时,分解成日历进度;若设备工时不大于于设备能力,按实际设备工时计算,否则按设备能力安排计划;若缺口过大,库存降至负数,报厂部安排外协。,第二章 软件计划阶段,判定表:为减少歧义,可用作加工说明的补充。设备工时需求 大于设备能力 小于设备能力 按设备能力下达生产计划 按计算结果下达生产计划
12、,X,X,第二章 软件计划阶段,判定树最高储备:生产任务=出厂数-(库存最高储备)库存 其它: 生产任务=出厂数 最低储备:生产任务=出厂数+(最低储备-库存),第二章 软件计划阶段,4 系统分析的方法简述1. 解决问题的关键问题识别: 包括两个方面,首先要与用户频繁地通讯和交流,了解用户对软件系统的要 求;另一方面是要了解现有系统,提炼模型,客观地反映现实情况。 应注意:必须正确地反映现实情况,不能将自己预先考虑的新系统的某些思路夹杂进去;要善于引导用户提出自己的想法,提出自己对问题的看法以及改进的思路;掌握全面的信息和情况是最重要的问题。,第二章 软件计划阶段,评价与综合:这是最困难的工作
13、。要客观地评价现有系统的优缺点,提出改进的意见。进而提出新系统的总体解决方案,并逐步细化。应注意:必须明确老系统为何会出现这些弊病;要总结和发现设计系统的约束条件;要预见新系统功能实现的技术可行性和管理可行性;要善于让用户自己认识到可能存在的问题并认同解决的方案;,第二章 软件计划阶段,功能规格说明:明确、无歧义地描述功能;指出主要的性能指标;概要地描述界面情况,让用户提前了解新系统的使用方式;提出验收的标准;准备足够的附件,如DFD、数据字典等。复审:向用户详细讲述功能规格说明;取得用户的认可。,第二章 软件计划阶段,2. 方法和步骤:自顶向下、逐步求精,切忌过早地陷入具体细节。步骤:基本系
14、统模型:对问题有了大致了解以后,提出系统的第一级抽象:系统模型。列出系统全部可能的输入、需要的全部输出。 例 物资系统,第二章 软件计划阶段,物资系统,整车生产情况报表,零件生产情况报表,材料、配套件领用情况报表,库存情况报表,车间在制品情况报表,质量情况报表,查询结果(品种、时间、单位等),入/出库单据,入/出库单据,废/失库单据,查询命令,装车报告单,整车交捡单,第二章 软件计划阶段,物资系统,汇总处理,整车处理,出库处理,入库处理,质量统计,车间处理,查询处理,逐级分解(第二级):,第二章 软件计划阶段,出库处理,分类,一车间,二车间,三车间,制表,材料定额,逐级分解(第三级):,第二章
15、 软件计划阶段,3. 信息结构在系统分析阶段,必须对涉及的信息结构有清晰的描述。信息结构的表示:分层方框图,第二章 软件计划阶段,Warnier图标题(班年度成绩报表)姓名 学号 学生成绩报表 学生(n) 单科成绩(5)总分平均成绩 单科总平均成绩 (5)单科不及格人数(5) 单科缺考人数(5)总平均成绩,第二章 软件计划阶段,调查分析的方法明确一次调查的目的;选择调查的对象;准备好调查的问题;善于把握调查的过程,逐步深入,发现问题;一般的做法:逐级向下。 例 领导者 (组织结构) (决策过程) (一般要求) 职能部门,第二章 软件计划阶段,数据库要求分析时间:对数据流程图细化以后;建立操作模
16、式:对每一个加工(即图上圆圈)建立相应的E-R图;E-R图综合,建立系统的总E-R图。,实体D,实体B,1:1,实体C,1: n,实体A,n:n,第二章 软件计划阶段,6. 软件规格说明一、引言从总的角度对软件的意义、目标、范围加以基本描述,是报告内容的概述。二、信息描述DFD数据结构表示数据字典系统接口描述必要的系统内部接口描述,第二章 软件计划阶段,三、功能描述功能分项加工处理说明用户使用的概要说明设计约束说明四、有效性描述性能规定与说明测试(验收)的简要说明响应时间说明,第二章 软件计划阶段,其它要求及说明五、对用户的要求六、文献目录七、附录 7. 复审复审是用户认可系统功能、性能设计的
17、关键阶段,需要反复商讨和修改规格说明。复审涉及的问题:软件系统的目标与用户研制要求是否一致;系统元素的重要接口是否全部正确描述;,第二章 软件计划阶段,DFD和数据结构是否完整、正确;功能是否合理,双方理解是否一致;设计约束是否合理和现实;开发技术、所需的组织调整是否可行;有效性准则是否为用户所理解;规格说明上下文是否一致,有无遗漏;初步使用说明能否为用户所接受;对项目进度、系统估价是否有影响,是否需要对计划做出调整。,第二章 软件计划阶段,5 面向对象的分析方法OOA的原则抽象抽象可以分为过程抽象和数据抽象两类。过程抽象:复杂过程分解为简单过程的综合的逆过程;数据抽象:对数据结构及其在上面的
18、操作结合的类型定义。 注意:在软件开发过程中,充满了这两种类型的抽象活动。,第二章 软件计划阶段,OOA中的抽象:对象是现实世界中事物的抽象;类是对象的抽象;一般(父)类是特殊(子)类的抽象;属性是事物静态特征(资源)的抽象;服务(或操作)是事物动态特征的抽象。封装将对象的属性和服务封装起来,成为一个不可分割的系统单位。外部对资源的操作只能通过引用服务来进行。,第二章 软件计划阶段,继承特殊类的对象具有相关的一般类的全部属 性和服务。单继承和多继承分类将具有相同属性和服务的对象归为一类,用类来作为这些对象的抽象描述。聚合整体对象可以由若干局部对象所组成。,第二章 软件计划阶段,联系(或关联)定
19、义对象之间的静态联系。消息传送对象之间只能通过消息传送进行通信。粒度控制对象的复杂程度的控制,分解复杂性。行为分析确定行为的归属(行为主体)和作用范围;明确事务之间的依赖关系;,第二章 软件计划阶段,认识行为的起因和后果,区别主动行为和被动行为;认识系统的并发行为;认识对象状态与行为的关系。OOA的过程发现对象、定义类 某个实体不仅其取值有意义,本身的独立存在也有重要意义,应该作为对象。识别对象的内外部特征定义属性;导出属性可以删去,多重属性值可分解。定义服务,第二章 软件计划阶段,识别对象的外部关系建立一般特殊结构,定义继承关系;建立整体部分结构,定义组成关系;建立类对象结构,定义实例关系;建立对象对象结构,定义通信关系。进行原型开发设计类定义通信关系建立对象实例,第二章 软件计划阶段,程序的基本结构定义部分类的定义,包括父类、子类的定义实例生成部分生成实例对象初始化部分对生成的实例进行初始化有的语言需要显式的初始化工作,有的则在实例生成时自动完成初始化工作。,