《2 问题定义及可行性研究.pptx》由会员分享,可在线阅读,更多相关《2 问题定义及可行性研究.pptx(71页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第2章 问题定义和可行性研究 SOFTWARE ENGINEERING2.1 问题定义2.1.1问题定义阶段的主要任务 弄清用户需要计算机解决问题根本所 在,及项目所需的资源和经费。2.1.2所需时间当系统要求较少并且不太复杂时,一、两天就可以完成;当系统要求比较大并且复杂时,要组织一个问题定义小组,花费一、两个星期的时间。SOFTWARE ENGINEERING2.1 问题定义2.1.3文档系统目标和范围说明书内容:(1)项目名称 (2)问题描述 (3)项目目标(解决现行系统存在的 问题)(4)项目范围 (5)可行性研究 SOFTWARE ENGINEERING2.1 问题定义2.1.4实例
2、 某校教材销售系统系统目标和范围说明书项目:教材销售系统问题:人工发售教材手续烦琐、易出错项目目标:建立一个高效率、无差错的微机教材销售系 统项目范围:利用现有微型计算机,软件开发费用不超过 15000元初步设想:建议在系统中增加对缺书的统计与采购功能可行性研究:建议进行大约5天的可行性研究,研究费 用不超过1000元SOFTWARE ENGINEERING2.2可行性研究2.2.1可行性研究阶段的主要任务 用最小的代价在尽可能短的时间内确定 问题是否能够解决。SOFTWARE ENGINEERING2.2可行性研究 2.2.2内容:(1)技术可行性(使用现有的技术能实现这个系统吗?)对用户要
3、求的功能、性能以及实现系统的各项约束条件进行分析,看是否能够作成一个可接受的系统。现行系统调查:基本功能、存在的问题、运行费用、与其他系统 的接口。资源分析:是否能够得到需要的软件、硬件资源;系统开发所 需的各类人员(管理人员、专业技术人员);工作 环境。风险分析:在给定约束条件下,判断能否设计并实现系统所需 的功能和性能。技术分析:分析当前的科学技术是否支持系统开发的全过程。SOFTWARE ENGINEERING2.2可行性研究 2.2.2内容:(2)经济可行性 (这个系统的经济效益能超过它的开发成本吗?)估计开发费用以及新系统可能带来的收益,将两者进行权衡,看结果是否可接受。成本/效益分
4、析(3)操作可行性 (系统的操作方式在这个拥护组织内行得通吗?)软件能否被有效的使用;开发过程中能否得到用户方的必要支持;软件使用所带来的影响用户方能否接受。SOFTWARE ENGINEERING2.2可行性研究2.2.3步骤 (1)复查系统规模和目标 (2)研究目前正在使用的系统 (3)导出新系统的高层逻辑模型 (4)重新定义问题 (5)导出评价供选择的解法 (6)推荐行动方针 (7)草拟开发计划 (8)书写文档提交审查 SOFTWARE ENGINEERING2.2可行性研究 2.2.4文档系统开发计划阅读对象:系统开发的主管部门、软件技术人员和用户内容:(1)引言:编写的目的、背景、引
5、用的参考文献 (2)项目概述:工作内容、条件及限制、产品及 成果、运行环境、验收标准。(3)实施计划:任务分解;工作进度安排;成本 预算;关键问题(资源计划)。(4)人员组织及分工:(5)交付期限:(6)专题计划要点:SOFTWARE ENGINEERING2.2可行性研究 资源计划:人力资源:系统分析员、管理人员、专业技术人员;硬件资源:宿主机:在软件开发阶段使用的计算机和有关外部设备;目标机:指运行所开发软件的计算机和外部设备;专用软件开发时,所需的特殊硬件设备:如过程控制软件所需的D/A、A/D转换器等专用设备。软件资源:支持软件:操作系统、编译程序、数据库、图形包等。实用软件:可复用的
6、软件部件库。SOFTWARE ENGINEERING2.2可行性研究2.2.5实例 某校财务处工资管理系统开发计划1.引言 本项目开发计划是为某校工资管理系统的开发而编写的,主要阐明系统开发过程中人员的组织分配、项目开发进度、开发过程中的关键问题、应交付用户的产品及时间等。SOFTWARE ENGINEERING2.2可行性研究2.2.5实例 某校财务处工资管理系统开发计划2.项目概述2.1工作内容 本项目工作主要分为三个阶段:第一阶段为系统分析阶段,主要对项目的可行性及用户需要进行分析,并编写文档;第二阶段为系统设计阶段,包括对软件的总体和详细设计阶段以及程序代码编写;第三阶段为测试阶段,并
7、写出测试分析报告、项目开发总结报告。2.2条件与限制 目前本项目开发所需的软件、硬件均已具备,没有其他的条件限制。SOFTWARE ENGINEERING2.2可行性研究2.2.5实例 某校财务处工资管理系统开发计划2.3产品工资管理系统:FOXPRO程序主要功能:收集数据:将每个职工的水电费数据收集起来。工资核算:根据扣款及水电费计算出当月应发工 资和实发工资。打印工资:产生工资总表、工资分类表等各种统计报表。SOFTWARE ENGINEERING2.2可行性研究2.2.5实例 某校财务处工资管理系统开发计划2.4运行环境硬件:486以上微机、LQ-1600打印机各一台软件:WINDOWS
8、 95以上操作系统平台2.5验收标准(1)输入测试计划中所有测试用例,结果符合测试计划的要求。(2)用户对系统界面满意。SOFTWARE ENGINEERING2.2可行性研究2.2.5实例 某校财务处工资管理系统开发计划 3.实施计划3.1任务分解阶段工作量/人月 软件可行性研究及计划 0.25需求分析 0.75软件计划 2.25编码 1测试 0.75SOFTWARE ENGINEERING2.2可行性研究2.2.5实例 某校财务处工资管理系统开发计划 3.2进度3.3预算硬件资源:586微机一台,打印机一台。软件资源:WINDOWS操作系统,VISUAL FOXPRO数据库管理系统成本估算
9、:设备费1.2万元,开发费1万元,共2.2万元3.4关键问题(1)程序员与编程语言的熟练程度。(2)程序员对需求说明书的理解程度。(3)编码阶段程序员工作是否受到干扰。(4)系统分析员文档提交是否及时。SOFTWARE ENGINEERING2.2可行性研究2.2.5实例 某校财务处工资管理系统开发计划 4.人员组织及分工系统分析员1名,负责系统分析。程序员1名,负责程序编写及测试。5.交付期限 XX年XX月XX日 SOFTWARE ENGINEERING2.2可行性研究2.2.6文档可行性研究报告内容:概述:用户名称、拟建系统名称、开发单位名称系统目标:近期目标、长期目标现行系统描述存在的主
10、要问题建议的新系统结论系统开发计划 SOFTWARE ENGINEERING2.2可行性研究2.2.7系统分析员(1)分析员的责任是用户和管理人员的顾问;从各个方面收集数据和信息,应作综合解答;准备文档和管理报告;负责软件需求规格说明的开发;参与评审。SOFTWARE ENGINEERING2.2可行性研究2.2.7系统分析员(2)分析员的素质熟悉计算机技术;有能力从互相冲突或混淆的原始材料中提取合理部分;了解有关用户领域知识,知识面广;有良好的口头、书面表达能力;有抽象、创造性思维能力,能分清主次,能“有树见林”。SOFTWARE ENGINEERING2.3系统流程图2.3.1定义:系统流
11、程图是描绘物理系统的传统工具。基本思想:是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等)。系统流程图表达的是信息在系统各部件之间流动的情况,而不是对信息进行加工处理的控制过程。SOFTWARE ENGINEERING2.3系统流程图2.3.2符号(1)基本符号 处理 输入/输出 数据流SOFTWARE ENGINEERING基本符号SOFTWARE ENGINEERING2.3系统流程图(2)系统符号 把广义的输入/输出操作具体化为读/写 存储在特殊设备上的文件(或数据库),把一般的处理具体化为特定的程序或手工操作等。SOFTWARE ENGINEERIN
12、G系统符号SOFTWARE ENGINEERING2.3系统流程图2.3.3符号使用 当以概括的方式抽象的描绘一个物理系统时,仅使用基本符号就够了;当需要更具体的描绘一个物理系统时,还需使用系统符号。SOFTWARE ENGINEERING2.3系统流程图2.3.4实例 某装配厂有一放零件的仓库,仓库中现有的各种零件的基本信息及库存量临界值记录在库存清单主文件中。当库存量有变化时,应及时修改库存清单主文件;若库存量小于临界值,报告给采购部门,每天送一次定货报表。该厂使用一台计算机处理更新库存清单主文件和产生定货报表的任务。零件库存量每一次变化称为一个事务,由CRT终端输入计算机;系统重点库存清
13、单程序对事务进行处理,更新存储在磁盘上的库存清单主文件中,并且把必要的定货信息写在磁带上。最后,每天由报告生成程序读一次磁带,并且打印出定货报告。SOFTWARE ENGINEERING库存清单系统的系统流程图 SOFTWARE ENGINEERING作业:画出下述系统的系统流程图 考虑一个修改磁带上主文件的系统.文件管理员把修改信息穿孔在卡片上,系统读入穿孔卡片上的信息并按照记录号把修改信息顺序排列好.然后系统逐个读入主文件上的记录,根据记录上的校验码校核每个读入的记录,丢掉出错的记录,按照修改信息修改余下的记录,产生的新文件存储在磁盘上.最后,系统印出一份修改报告供文件管理员参阅.SOFT
14、WARE ENGINEERING2.4数据流图(DFD)2.4.1定义(Data Flow Diagram)数据流图是描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。SOFTWARE ENGINEERING2.4数据流图(DFD)2.4.2组成成分及符号表示(1)外部实体(External Entity)(数据的源点/终点)指系统外又与系统有联系的人或事物。表达该系统数据的外部来源或去处。如:顾客、工人、单位或另一个系统等。SOFTWARE ENGINEERING2.4数据流图(DFD)2.4.2组成成分及符号表示(2)处理(Process)指对数据的逻辑
15、处理功能,也就是对数据的变换功能,任何改变数据的操作都是处理。如:一系列程序、单个程序或程序的一部分。SOFTWARE ENGINEERING2.4数据流图(DFD)2.4.2组成成分及符号表示(3)数据流(Data Flow)指处理功能的输入或输出,是运动中的数据。如:信件、票据等。(4)数据存储(Data Store)是静止状态的数据,表示数据保存的“地方”。这个地方并不是指保存数据的物理地点或物理介质,而是指数据存储的逻辑描述。如:可以表示一个文件、文件的一部分、数据库的元素或记录的一部分等。SOFTWARE ENGINEERING2.4数据流图(DFD)2.4.3附加符号-表示数据流之
16、间是“与”的关系;+-表示数据流之间是“或”的关系;-表示只能从中选一个。(互斥关系)SOFTWARE ENGINEERING数据流图的符号 SOFTWARE ENGINEERING2.4数据流图(DFD)2.4.4分层数据流图的画法(1)遵循的原则:只须考虑系统必须完成的基本逻辑功能,完全不需要考虑如何具体的实现这些功能。SOFTWARE ENGINEERING2.4数据流图(DFD)2.4.4分层数据流图的画法(2)实例 一家工厂的采购部每天需要一张定货报表,表中列出所有需要再次定货的零件,报表按零件编号排序。对于每个需要再次定货的零件列出下列数据:零件编号、名称、定货数量、目前价格、主要
17、供应者、次要供应者。零件入库或出库成为事务,通过放在仓库的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。SOFTWARE ENGINEERINGSOFTWARE ENGINEERING定货系统的基本系统模型 SOFTWARE ENGINEERING定货系统的功能级数据流图 SOFTWARE ENGINEERING把处理事务的功能进一步分解后的数据流图 SOFTWARE ENGINEERING划分自动化边界 SOFTWARE ENGINEERING作业:画出下述系统的数据流图XX培训中心管理系统问题描述:1.当有学员来报名时,根据系统中的课程文件的内容,看
18、该门课程是否已经额满(额满不能报名,未满可以报名),以及该学员是否已经进行学员登记.(也就是说,该学越是否为新学员)报名后,为该学员打印一份报名单,标出最迟的交款日期及所报课程信息.2.对于已经报过名的(也就是拿到报告单)的学员,来付款时,根据报名单上的应交的学费金额收取学费,并更新帐目文件,复审无误后为学员开付款收据.3.有的学员报名后,发现有的课程不想学了,要注销时,系统对相关的课程文件,学员文件进行修改,并退款进行财务处理,更新帐目文件.4.当学员来咨询时,可以对他所要查询的内容打印成报告单的形式给学员.5.学员报名,付款,查询以及注销统称为事务.SOFTWARE ENGINEERING
19、2.5 数据字典 2.5.1定义(DataDictionary)数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。SOFTWARE ENGINEERING2.5 数据字典 2.5.2数据字典与数据流图的关系 数据字典与数据流图共同构成系统的逻辑模型,没有数据字典,数据流图就不严格;然而没有数据流图,数据字典也难于发挥作用。只有数据流图和对数据流图中每个元素的精确定义(数据字典)放在一起,才能共同构成系统的规格说明。SOFTWARE ENGINEERING2.5 数据字典 2.5.3数据字典由对下列四类元素的定义组成:(1)数据流(2)数据流分量(即数据元素)(3)数
20、据存储(4)处理(用IPO图或PDL描述更方便)SOFTWARE ENGINEERING2.5 数据字典 2.5.4数据字典的内容除了数据定义之外,还包含关于数据的一些其他信息。一般信息名字、别名、描述定义数据类型、长度、结构使用特点值的范围、使用频率、使用方式控制信息来源、用户、使用它的程序、使用权、改变权分组信息父结构、从属结构、物理位置(记录、文件、数据库)SOFTWARE ENGINEERING2.5 数据字典 2.5.5定义数据的方法数据字典中的定义就是对数据自顶向下的分解。由数据元素组成数据的方式、分类:顺序:即以确定的次序连接两个或多个分量;选择:即从两个或多个可能的元素中选取一
21、个;重复:即把指定的分量重复零次或多次;可选:即一个分量是可有可无的(重复零次或一次)SOFTWARE ENGINEERING2.5 数据字典 2.5.6 数据字典中的常用符号SOFTWARE ENGINEERING2.5.7数据字典的用途作为分析阶段的工具;包含的每个数据元素的控制信息是很有价值的;是开发数据库的第一步,而且是很有价值的一步。SOFTWARE ENGINEERING2.5 数据字典 2.5.8 数据字典的特点(1)通过名字能方便地查阅数据的定义;(2)没有冗余;(3)尽量不重复在规格说明的其他组成部分中已经出现的信息;(4)容易更新和修改;(5)能单独处理描述每个数据元素的信
22、息;(6)定义的书写方法简单方便而且严格。SOFTWARE ENGINEERING2.6成本/效益分析 2.6.1经济效益 表现为减少运行费用或(和)增加收入。2.6.2成本/效益分析的目的 要从经济角度分析开发一个特定的新系统是否划算,从而帮助使用部门负责人正确地作出是否投资于这项开发工程的决定。SOFTWARE ENGINEERING2.6成本/效益分析 2.6.3 成本估计的三种估算技术 软件开发成本主要表现为人力消耗(乘以平均工资则得到开发费用)。(1)代码行技术:根据经验和历史数据估计实现一个功能需要的原代码行数。用每行代码的平均成本乘以行数就可以确定软件的成本。每行代码的平均成本主
23、要取决于软件的复杂程度和工资水平。SOFTWARE ENGINEERING2.6成本/效益分析 2.6.3 成本估计的三种估算技术 (2)任务分解技术 首先把软件开发工程分解为若干个相对独立的任务,再分别估计每个单独的开发任务的成本,最后累加起来得出软件开发工程的总成本。(3)自动估计成本技术 使用自动估计成本的软件工具 SOFTWARE ENGINEERING2.6成本/效益分析 2.6.4 成本/效益分析的方法(1)货币的时间价值(2)投资回收期 就是使累计的经济效益等于最初投资所需 要的时间。(3)纯收入 就是在整个生命周期之内系统的累计经济效益(折合成现在值)与投资之差。SOFTWAR
24、E ENGINEERING2.6成本/效益分析(4)投资回收率 设想把数量等于投资额的资金存入银行,每年年底从银行取回的钱等于系统每年预期可以获得的效益,在时间等于系统寿命时,正好把在银行中的存款全部取光,那么,年利率为多少呢?这个假想的年利率就等于投资回收率。P现在的投资额 F第i年年底的效益(i=0,1,2n)N系统的使用寿命(一般=5)j投资回收率 SOFTWARE ENGINEERING练习题为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并
25、印出利息清单给储户。SOFTWARE ENGINEERING为方便旅客,某航空公司拟开发一个机票预订系统。旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即印出机票给旅客。SOFTWARE ENGINEERING医院对患者监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的
26、病情报告。SOFTWARE ENGINEERING北京某高校可用的电话号码有以下几类:校内电话号码由位数字组成,第位数字不是;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨,若是本市电话则再接着拨位数字(第位不是),若是外地电话则拨位区码再位电话号码(第位不是)。SOFTWARE ENGINEERINGSOFTWARE ENGINEERINGSOFTWARE ENGINEERINGSOFTWARE ENGINEERINGSOFTWARE ENGINEERINGSOFTWARE ENGINEERINGSOFTWARE ENGINEERINGSOFTWARE ENGINEERINGSOFTWARE ENGINEERINGSOFTWARE ENGINEERINGSOFTWARE ENGINEERING演讲完毕,谢谢观看!