个人成果,妥善保存,请勿传播软件工程岐兵Email:qib@epsoft.com.cn问题定义问题定义–关键性任务确定问题的性质、过程的目标和规模–步骤到用户环境中调查、研究–书面调查、口头交流、阅读资料、调查会议整理成书面《调查报告》与用户审查报告修改报告确定《软件开发任务书》个人成果,妥善保存,请勿传播软件项目的来源软件项目(或产品)来源–非订单软件组织自发,或根据市场需要立项-决策《立项建议书》–订单软件与用户签订软件开发合同招标-投标《合同》个人成果,妥善保存,请勿传播个人成果,妥善保存,请勿传播可行性研究需求分析概要设计详细设计实现集成测试确认测试使用与维护退役软件定义软件开发软件使用与维护软件生命周期个人成果,妥善保存,请勿传播课程内容提纲第2章:“可行性研究”–可行性研究的任务–可行性研究过程–系统流程图–数据流图–数据字典–成本/效益分析个人成果,妥善保存,请勿传播可行性研究——可行性研究是在较高层次上以较抽象的方式进行设计的过程可行性研究–不是解决问题,而是确定问题是否有解或值得解–最根本的任务是对以后的行动路线提出建议如果问题没有可行的解,应该停止这项工程的开发;如果问题值得解,应该推荐一个较好的解决方案,并且为工程制定一个初步的计划。不要花过多精力,占总成本的5-10%个人成果,妥善保存,请勿传播可行性研究的任务1可行性研究的目的–用最小的代价,在尽可能短的时间内确定问题是否能够解决2可行性研究的实质就是要进行一次压缩,简化了的系统分析和设计的过程3可行性研究的路线–分析和澄清问题–导出系统逻辑模型–探索若干种可供选择的主要解法(系统实现方案)–对每种解法进行可行性研究–为每种可行的解法制定一个粗略的实现进度个人成果,妥善保存,请勿传播可行性研究4可行性研究应着重考虑如下三个方面–技术可行性:使用现有的技术能实现这个统–经济可行性:系统的经济效益能否超过开发成本–操作可行性:系统的操作方式在这个用户组织内是否行得通必要时还应该从法律和社会效益等方面研究每种解法的可行性可行性研究需要的时间长短取决于系统的规模,可行性研究的成本只是预期工程总成本的5-10%可行性研究可行性研究应着重考虑如下三个方面–技术可行性:根据系统功能、性能及实现系统的各项约束条件,从技术角度研究实现系统的可行性风险分析:在给定的约束条件下,判断能否设计并实现系统所需的功能、性能资源分析:论证是否具备系统开发所需的管理人员和各类专业技术人员,必要的培训,是否具备必须的软件、硬件资源和工作环境技术分析:当前技术是否支持系统开发的全过程个人成果,妥善保存,请勿传播可行性研究可行性研究应着重考虑如下三个方面–经济可行性:进行成本/效益分析,进行费用估计和效益估计费用估计:包括设备、人力、材料和管理费用效益估计:–新软件提供哪些以前没有的功能–新软件提供信息的速度、精度、质量有没有提高–使用人员查询和使用信息的能力有没有提高–新软件节省的人力个人成果,妥善保存,请勿传播可行性研究可行性研究应着重考虑如下三个方面–操作可行性:对目标系统所规定的运行方式能否达到系统运行方式用户组织是否行的通现有的管理制度、人员素质、操作方式是否可行是否存在任何侵犯、妨碍等责任问题个人成果,妥善保存,请勿传播个人成果,妥善保存,请勿传播课程内容提纲第2章:“可行性研究”–可行性研究的任务–可行性研究过程–系统流程图–数据流图–数据字典–成本/效益分析个人成果,妥善保存,请勿传播可行性研究过程1复查系统规模和目标–确保分析员提交的报告确实是用户要求解决的问题2研究目前正在使用的系统–研究老系统的观点现有系统要完成的工作,就是新系统所必须具备的功能现有系统存在的缺点,新系统必须加以改进现有系统所不具备的功能,又是用户必须的,则新系统一定要预以增加现有系统所需要的费用是新系统的一个重要的投资依据个人成果,妥善保存,请勿传播可行性研究过程3导出新系统的高层逻辑模型–优秀的设计应该是从现有的物理系统出发,导出现有物理系统的逻辑模型再以现有物理系统的逻辑模型为基础,设想目标系统的逻辑模型最后根据目标系统的逻辑模型建造新的物理系统–使用数据流图和数据字典定义模型4进一步定义问题–定义系统目标→复查系统目标和规模→研究现有系统→设计新系统→再定义系统目标–重复这个过程,直到提出的新系统逻辑模型复合系统目标个人成果,妥善保存,请勿传播可行性研究过程5导出和评价供选择的解法–分析员从系统的逻辑模型出发,以系统要求为目标,利用在数据流图上划分自动化边界的方法,可以导出若干种较高层次的物理解法供用户比较和选择–针对多种方案,用户应从如下三个方面进行筛选:从技术角度排除那些不现实的方案从操作角度去掉那些操作方式或操作过程用户不能接受的方案从经济角度估算每个可能系统的成本/效益最后为每个在技术、操作和经济等方面都可行的系统制定实现进度表个人成果,妥善保存,请勿传播可行性研究过程6推荐行动方针–向用户提出推荐方案,在推荐方案中应清楚地表明本项目的开发价值,成本/效益分析,推荐这个方案7草拟开发计划–分析员为推荐的方案草拟一份开发计划含:工程进度表估计各类开发人员、各种资源需要情况和使用时间–估计系统生命周期每个阶段的成本–给出需求分析的详细进度表和成本估计8书写文档提交审查个人成果,妥善保存,请勿传播1复查定义,明确限制的约束。我们认为用户要的用户要的?2研究老系统解决老系统问题老系统功能新增功能新系统效益?注:只了解老系统做什么,而不管怎样做注意了解与其它系统的接口老系统效益过程和步骤总结个人成果,妥善保存,请勿传播3导出高层逻辑模型(conceptualdesign)…………抽象实现改进老系统模型新模型新系统•报告应该告诉用户“What”而不是“How”•逻辑模型由数据流图来描述,不需细化•物理模型用系统流程图表示过程和步骤总结个人成果,妥善保存,请勿传播3逻辑模型4重新定义1复查定义注:此时合同未签,应考虑成本,不宜反复太多次。5导出多种解法进度表经济上合算技术上可行操作上可行技术上不可行用户不可能操作不合算过程和步骤总结个人成果,妥善保存,请勿传播6推荐行动方针YesorNo?NoYesWhy?Whichoneisthebest?Why?(cost/benefit)7开发计划(粗略)任务分解,确定负责人大致进度规划财务预算风险分析及对策8编写可行性报告9提交审查过程和步骤总结可行性报告和开发计划可行性研究的文档-《可行性研究报告》–引言阐述可行性研究报告的编写目的,系统名称、用户、术语等背景信息–可行性研究的前提项目的功能、性能和基本要求,达到的目标,各种限制条件等–对现有系统的分析说明现有系统的基本处理流程和数据流程,工作负荷,所需的费用、人员、设备以及主要局限–所建议的系统概括说明所建议系统所使用的基本方法和理论依据给出所建议系统的处理流程和数据流程说明所建议系统的运行过程对现存系统的改进个人成果,妥善保存,请勿传播可行性报告和开发计划可行性研究的文档-《可行性研究报告》–可选择的其他系统方案逐一说明其他可供选择的方案说明未被推荐的理由–投资及效益分析所需投入费用预期收益(包括开支费用的减少、差错的减少、灵活性的增加、效率提高和其他管理改进等)–社会因素方面的可行性–结论可以立即开始进行需要推迟到某些条件具备需要调整开发目标后才能开始不能进行或不必进行个人成果,妥善保存,请勿传播可行性报告和开发计划《项目开发计划》–项目概述工作内容主要参加人员产品验收标准完成项目的最迟期限–实施计划工作任务分解和人员分工进度计划预算计划关键问题及解决方案–支持条件计算机系统支持需要用户承担的工作由其他第三方承担的工作–其他(专题计划)个人成果,妥善保存,请勿传播个人成果,妥善保存,请勿传播课程内容提纲第2章:“可行性研究”–可行性研究的任务–可行性研究过程–系统流程图–数据流图–数据字典–成本/效益分析个人成果,妥善保存,请勿传播系统流程图系统流程图–是描绘物理系统的传统工具–它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件。包括程序、文档、数据库和人工过程等–它表达了数据在系统各部件之间的流动情况反映信息在各部分间流动的情况≠控制、处理信息(不同于程序流程图)个人成果,妥善保存,请勿传播系统流程图系统流程图–基本符号个人成果,妥善保存,请勿传播系统流程图系统流程图–系统符号个人成果,妥善保存,请勿传播系统流程图系统流程图的作用–系统分析员作进一步分析的依据–系统分析员、管理人员、业务操作人员相互交流的工具–系统分析员可直接在系统流程图上拟出可以实现计算机处理的部分–可利用系统流程图来分析业务流程的合理性个人成果,妥善保存,请勿传播系统流程图系统流程图例子1-库存管理某装配厂有一座零件仓库,仓库中现有各种零件的数量以及每种零件的库存量临界值等数据记录在库存清单主文件中。如果哪种零件的库存量少于它的临界值时,则应报告给采购部门以便定货。规定每天向采购部门送一次定货报告。个人成果,妥善保存,请勿传播系统流程图系统流程图例子1装配厂使用一台小型计算机处理更新库存清单主文件和产生定货报告的任务。仓库中的每一项业务都通过CRT终端输入到计算机中系统中的库存清单程序负责对事务进行处理,更新存储在磁盘上的库存清单主文件必要的定货信息写在磁带上每天由报告生成程序读一次磁带,生成并打印出定货报告库存清单程序报告生成程序–对于复杂系统,可分层描绘个人成果,妥善保存,请勿传播系统流程图事务库存清单程序库存清单主文件订货信息报告生成成序订货报表系统流程图的习惯–使信息在图中从顶向下–或从左到右个人成果,妥善保存,请勿传播系统流程图系统流程图例子2-图书馆借书管理验证检书卡读者索书单借书单取书借书图书查询图书数据库个人成果,妥善保存,请勿传播课程内容提纲第2章:“可行性研究”–可行性研究的任务–可行性研究过程–系统流程图–数据流图–数据字典–成本/效益分析个人成果,妥善保存,请勿传播数据流图数据流图–简称DFD-DataFlowDiagram图,它是描绘信息和数据从输入移动到输出的过程中所经受的变换,反映了数据在软件中流动和被处理的逻辑过程。–数据流图是系统逻辑功能的图形表示,是一种极好的通信工具个人成果,妥善保存,请勿传播数据流图符号表示–数据流图有四种基本符号:数据的源点/终点变换数据的处理:一个程序,一系列程序,单个程序或者程序的一个模块,也可以代表用穿孔机穿孔或目视检查数据正确性等人工处理过程。个人成果,妥善保存,请勿传播数据流图数据存储它可以表示一个文件,文件的一部分,数据库的元素或记录的一部分。–存储:把一个数据存入数据存储;用一个数据去修改数据存储中的数据;从数据存储中读出一个数据;从数据存储中检索出一批数据。个人成果,妥善保存,请勿传播数据流图–数据流表示数据在系统中的流动方向,一般分单向数据流和双向数据流两种。–数据流图有六种附加符号:–附加符号中的星号(*)表示数据流之间是“与”关系;–加号(+)表示数据流之间是“或”关系;–符号表示只能从数据流中选一个(互斥关系)。TT*+*+个人成果,妥善保存,请勿传播数据流图数据流图案例分析一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,列出所有需要再次定货的零件。对于需要订货的零件列出其零件编号、零件名称、定货数量、目前价格、主要供应者、次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存量少于临界值时就应该再次定货。个人成果,妥善保存,请勿传播数据流图数据流图案例分析–4种成分确定系统的源点和终点–仓库管理员是数据的源点;–采购员是数据的终点;加工(处理)–本题应该完成定货系统这样一个功能;数据流–事务需从仓库送到系统中,显然事务是一个数据流;–系统要把