资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,第三章 问题定义与可行性分析,11/16/2024,1,第三章 问题定义与可行性分析10/5/20231,3.1基于计算机的系统,3.2计算机系统工程,硬件和硬件工程,软件和软件工程,人和人类工程,数据库和数据库工程,3.3 系统需求分析,系统需求分析目标,问题定义,可行性研究,3.4系统结构模型化,提纲,11/16/2024,2,3.1基于计算机的系统提纲10/5/20232,3.1 基于计算机的系统,问题:是否学习了软件工程就能完全解决实际问题?,回答:否,因为软件工程只是计算机,系统,中的一个元素。,11/16/2024,3,3.1 基于计算机的系统问题:是否学习了软件工程就能完全解,3.1 基于计算机的系统,硬件为系统提供计算能力的电子设备,如:Mainframe、存储设备、网络设备等;硬件的处理能力和性能必须满足系统的功能和性能要求。,软件程序数据文档,人硬件和软件的用户和操作员。HCI(Human Conversation Interface)在系统的分析和设计过程中一定要,以人为本,。(这是软件人员经常犯的错误:操作以开发人员的习惯来设计,忽略了用户的意见。),数据库大型信息的有组织集合。并不是所有的系统都有数据库元素,若有的话,一般是系统功能的核心。,过程定义每一种系统元素特定的使用步骤,或者系统驻留的过程性环境。,11/16/2024,4,3.1 基于计算机的系统硬件为系统提供计算能力的电子设备,3.2 计算机系统工程,定义:是一个问题求解的活动,目的是揭示、分析所期望的,功能、性能、接口、设计限制和信息结构的表示,,并把它们分配到各个系统元素中去。(由系统分析工程师和用户合作完成),界定系统,:确定系统的功能、性能、约束和接口(系统和环境的关系),分配,:把系统的功能分配到一个或者多个系统元素。,一个功能可能分配到不同的系统生成元素(软件、硬件和人)中,因此,可能存在,多种,分配方案。,11/16/2024,5,3.2 计算机系统工程定义:是一个问题求解的活动,目的是揭,3.2 计算机系统工程,哪种方案更有效?有一定的,权衡,准则:,项目考虑:成本和进度范围内,系统配置能否实现?相关的风险呢?,商业考虑:是否赢利?占领市场?,技术分析:是否能做(技术实力)?做的质量如何(性能问题)?做的效率如何?,配置评估:系统配置是否有效?(市场采购),人员问题:研发人员素质?用户对系统的理解?,环境接口:与外界环境接口是否合适?,法律考虑:是否违法?是否会受到侵权?,11/16/2024,6,3.2 计算机系统工程哪种方案更有效?有一定的权衡准则:1,3.2.1 硬件和硬件工程,系统工程师应该明确:,何种硬件能够最好地实现所确定的功能;(TPC-C的tpmC指标),这种硬件能够在市面上买到吗?来源、有效性、价格如何?,硬件提供商提供哪些服务?(安装调试.),硬件之间的接口兼容吗?,如果没有现成的部分硬件,就需要自己开发,需求是什么?(又一个工程问题),11/16/2024,7,3.2.1 硬件和硬件工程系统工程师应该明确:10/5/2,3.2.2 软件和软件工程,软件工程师开发满足分配的功能和性能要求的软件部件。,11/16/2024,8,3.2.2 软件和软件工程软件工程师开发满足分配的功能和性,3.2.2 软件和软件工程,11/16/2024,9,3.2.2 软件和软件工程10/5/20239,3.2.2 软件和软件工程,11/16/2024,10,3.2.2 软件和软件工程10/5/202310,3.2.3 人和人类工程,人在系统中的作用:,直接和硬件与软件进行,交互,,实现系统功能;(,使用,),人,开发,系统;,人,维护,系统,用户友好性(user-friendly),要考虑:,人的记忆和知识表示;(knowledge),人的思考和推理线索;(think:结果还是过程),人对美观的直觉;(intuitive),人的对话构造等。(conversation),11/16/2024,11,3.2.3 人和人类工程人在系统中的作用:10/5/202,3.2.3 人和人类工程,HCI的设计过程步骤:,识别分配给人完成的与其他系统元素交互的活动,并进一步划分成任务;,精确定义人为了完成某一任务而必需的动作,并构造完成该任务的动作序列(对话);,确定每一个动作的实现形式;,将人和其他系统元素组合在一起形成用户环境;,采纳原型对HCI进行评估,并最终确定HCI。,11/16/2024,12,3.2.3 人和人类工程HCI的设计过程步骤:10/5/2,3.2.3 数据库和数据库工程,包括:数据库分析、设计和实现;,系统工程师要完成的任务:,定义数据库中包含的信息,处理查询的类型,数据存取的方式,数据库的容量等,11/16/2024,13,3.2.3 数据库和数据库工程包括:数据库分析、设计和实现,3.3 系统需求分析,3.3.1 系统需求分析目标,识别用户的要求:功能、性能、约束、接口等;,评价系统的可行性:经济、技术、社会环境、人、法律等;,把功能分配给硬件、软件、人、数据库等系统元素中;,建立成本和进度限制;,生成系统规格说明书(包括问题定义报告和可行性分析报告),11/16/2024,14,3.3 系统需求分析3.3.1 系统需求分析目标10/5,3.3.2 问题定义,回答:要解决的问题是什么?,内容:问题的背景,开发系统的现状,开发的理由和条件,开发系统的问题要求,总体要求,问题的性质,类型范围,要实现的目标,功能规模,实现目标的方案,开发的条件,环境要求。,11/16/2024,15,3.3.2 问题定义回答:要解决的问题是什么?10/5/2,3.3.2 问题定义,例子:某校教材科提出开发微机教材销售系统的要求,经过系统分析员的调查,写出如下的问题定义报告,说明微机教材销售系统的目标范围。,(1)项目:教材销售系统。,(2)背景:人工销售效率低,易出错。,(3)项目目标:建立一个高效率的,无差错的微机教材销售系统。,(4)项目范围:硬件利用现有微机,软件开发费不超过1500元。,(5)初步设想:建立增加缺书统计与采购功能。,(6)可行性研究:建议进行一周,费用不超过100元。,11/16/2024,16,3.3.2 问题定义例子:某校教材科提出开发微机教材销售系,3.3.3 可行性研究,可行性研究的目的,不是解决问题,,而是确定问题,是否值得去解决,。,首先,要进一步分析和澄清问题定义。在问题定义阶段初步确定的规模和目标,如果是正确的就进一步加以肯定,如果有错误就及时改正,如果对目标系统有任何约束和限制,必须把它们清楚地列举出来。,其次,在澄清了问题定义之后,就可导出系统的,逻辑,模型。然后从系统逻辑模型出发,探索若干种可供选择的方案,对每种方案都应该仔细研究它的可行性。,11/16/2024,17,3.3.3 可行性研究可行性研究的目的不是解决问题,而是确,3.3.3 可行性研究,1、经济可行性,经济可行性包括软件开发项目的成本效益估计,以确定软件系统可能带来的经济效益是否超过研制和维护所需要的费用。,费用估计,(1)设备。计算机硬件、输入输出设备、空调,电源,机房及其它设施,系统软件,数据库管理系统,各种应用软件(包括软件包)的估算。,(2)人力。研制人员(系统分析人员),操作人员(系统管理人员、操作人员、数据录入人员、维护人员)的工资、奖金以及他们的培训费用。,(3)材料。水、电、打印纸、色带和各种易耗物品及设备的维修费用。,11/16/2024,18,3.3.3 可行性研究1、经济可行性10/5/202318,3.3.3 可行性研究,(4)管理。由于采用新的软件系统、工作方式会带来变化,管理人员的任务也发生改变,这些变化会增加一些额外的管理费用,其中有些是一次性的,有些是经常性的。,(5)其他。市场攻关和管理费、宣传费等。,普通存在的问题是:费用估计往往偏低,例如只考虑主机价格而不考虑外设价格(有时主机价格仅占1/3左右);对软件费用、日常维护费用、人员培训费用考虑不周,其结果是一次次地追加费用,造成骑虎难下的局面。,11/16/2024,19,3.3.3 可行性研究(4)管理。由于采用新的软件系统、工,3.3.3 可行性研究,效益估计,有形收益,货币的时间价值:将未来的收益按照通用率折算到现在。,投资回收期:累计的经济效益等同于初期投入成本的时间。,纯收入:累计经济效益折合成现在值后与投入成本之间的差。,无形效率,估算新软件能提供哪些以前不能做或难以做到的工作,提供信息的速度、精度、质量有什么提高,使用人员查询和使用信息的能力有哪些提高,节省多少人力等。,11/16/2024,20,3.3.3 可行性研究效益估计10/5/202320,3.3.3 可行性研究,N,ote,:无形效率估算难以给出定量的数字,只能凭经验作出大致的估算。通常的情况是估算往往容易偏高。,例如,:,手工制定一张工资表需要2天(16个小时=960分钟),如果用计算机管理,10分钟就能打印一张工资表。那么,能否得出效率提高96倍的结论呢?恐怕不能。因为它还受到数据输入等因素的制约,一般能提高23倍就不错了。因此,,不能把某个环节上工作生产率的提高看成整个系统工作效率的提高,。,11/16/2024,21,3.3.3 可行性研究Note:无形效率估算难以给出定量,3.3.3 可行性研究,长期短期利益分析,短期利益容易把握,风险较低,但利益较少,甚至没有利益;(沉迷现实,无远大抱负),长期利益难以把握,风险较大。(要么是将帅之才,要么就是纸上谈兵、眼高手低之辈),2、技术可行性,技术可行性指现有情况下能否完成这个项目。例如:处理信息的,速度,现有计算机能否达到,要求的数据输入、输出,量,现有的输入输出设备能否承担,开发项目的硬、软件,资源,能否按期到达,有无胜任开发系统的熟练技术,人,员等。,11/16/2024,22,3.3.3 可行性研究长期短期利益分析10/5/2,3.3.3 可行性研究,做得,了,吗?在给定的成本和进度要求下能否实现问题定义中的功能和性能(开发的风险)。资源是否有效(人、硬件、软件设备是否具备必要的条件等),做得,好,吗?支持软件性能要求的技术是否能够达到?,做得,快,吗?生产率如何(不要忘了系统的维护时间!),11/16/2024,23,3.3.3 可行性研究做得了吗?在给定的成本和进度要求下能,3.3.3 可行性研究,3、社会因素的考虑,市场因素:未成熟市场、成熟市场、将消亡市场,政策因素:业务流程要符合企业政策或者国家政策。(互联网企业与中国电信),法律因素:软件开发是否会侵犯他人、集体或国家的利益,是否违反国家的法律并由此而承担法律责任。例如,采用微波技术作为通信手段来传送信息,价格便宜,技术可行,但由于保密要求,规定在大城市禁止使用微波,因此只能改用电缆。,11/16/2024,24,3.3.3 可行性研究3、社会因素的考虑10/5/2023,3.3.3 可行性研究,4、人的因素,人“物”:当领导,人“才”:第一线开发人员,“举重若轻”可以升级为人物、“举轻若重”只适合做软件开发人员。,人“手”:行政人员,人“渣”:负责攻关,(以上是一位从事软件工程多年的业内人士的观点),可行性研究最后必须得出结论:项目可行,立即开始;项目可行,时机不成熟;项目不可行。,11/16/2024,25,3.3.3 可行性研究4、人的因素10/5/202325,3.3.3 可行性研究,步骤:,复查问题定义,了解系统规模和目标、范围等。,研究目前使用的系统。,现有系统是信息的重要来源,,运行旧系统所需要的费用,是一个重要的经济指标,如果新系统不能增加收入或减少使用费用,那么从经济角度看新系统就不如旧系统。,不要花费过多时间去分析现有的系统如何做,而是了解,现有系统能做什么,。分析员应该画出描绘现有系统的高层系统流程图,并
展开阅读全文