您好,欢迎访问三七文档
软件工程导论SoftwareEngineering程金控制科学与工程学院cse_chengj@ujn.edu.cn2019年8月29日国内软件行业的发展•据CCID统计,软件市场销售额达到120亿元,同比增长31.9%,比去年提高1.5个百分点;Linux平台软件、以网络安全解决方案为主的网络安全软件和教育、税务等行业应用软件都有较大幅度的增长。•软件和信息服务业在计算机总体市场中的份额继续增加,由2000年上半年的24.5%提高到目前的25.9%。•1998年~1999年《财富》全球企业1000强中,有208家到印度进行软件海外采购。•印度软件行业出口已从8年前的1.5亿美元增加到1998年~1999年度39亿美元,遍及全球91个国家和地区。•美国客户所购买软件的61%是印度产品。•印度软件业以其低成本、高质量、高可靠性和交货及时等特点赢得了全球市场。•国内最大的软件军团东软集团。•东软是中国最大的IT解决方案与服务供应商。•1991年,东软创立于中国东北大学。公司主营业务包括:行业解决方案、产品工程解决方案及相关软件产品、平台及服务等。•东大阿尔派公司于2000年10月通过第三方认证机构的CMM2认证。2001年6月26日,沈阳东软软件股份有限公司(原沈阳东大阿尔派软件股份有限公司)正式通过了CMM3级认证,成为中国首家通过CMM3级的软件企业。2001年1月,联想软件经过英国路透集团的严格评估,顺利通过CMM2认证。•CMM是指“能力成熟度模型”,其英文全称为CapabilityMaturityModelforSoftware,英文缩写为SW-CMM,简称CMM。•它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。•CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。•将各种能力成熟度模型(即:SoftwareCMM、SystemsEng-CMM、PeopleCMM和AcquisitionCMM)整合到同一架构中去,由此建立起包括软件工程、系统工程和软件采购等在内的诸模型的集成,以解决除软件开发以外的软件系统工程和软件采购工作中的迫切需求。能力等级特点关键过程第一级基本级软件过程是混乱无序的,对过程几乎没有定义,成功依靠的是个人的才能和经验,管理方式属于反应式第二级重复级建立了基本的项目管理来跟踪进度.费用和功能特征,制定了必要的项目管理,能够利用以前类似的项目应用取得成功需求管理,项目计划,项目跟踪和监控,软件子合同管理,软件配置管理,软件质量保障第三级确定级已经将软件管理和过程文档化,标准化,同时综合成该组织的标准软件过程,所有的软件开发都使用该标准软件过程组织过程定义,组织过程焦点,培训大纲,软机集成管理,软件产品工程,组织协调,专家审评第四级管理级收集软件过程和产品质量的详细度量,对软件过程和产品质量有定量的理解和控制定量的软件过程管理和产品质量管理第五级优化级软件过程的量化反馈和新的思想和技术促进过程的不断改进缺陷预防,过程变更管理和技术变更管理•目前,学术界和工业界公认美国CarnegieMellon大学软件工程研究所(CMU/SEI)以W.S.Humphrey为首主持研究与开发的软件能力成熟度模型CMM是当前最好的软件过程,已成为业界事实上的软件过程的工业标准。上次课内容回顾•软件危机的表现•软件工程的基本原理•软件工程方法学•传统方法学•面向对象方法学•软件过程模型上次课内容回顾第2章可行性分析2.1可行性研究的任务2.2可行性研究过程2.3系统流程图2.4数据流图2.5数据字典2.6成本/效益分析问题的定义与可性行研究开始问题定义可性行研究可行否?项目实施计划终止项目的建议结束YN目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。不是解决问题,而是确定问题是否值得去解决。2.1可行性研究的任务I.首先需要进一步分析和澄清问题定义。II.导出系统的逻辑模型。从系统逻辑模型出发,探索若干种可供选择的主要解法(即系统实现方案),从下述三方面研究每种解法的可行性:①技术可行性②经济可行性③操作可行性必要时还应该从法律、社会效益等更广泛的方面研究每种解法的可行性。III.分析员应该为每个可行的解法制定一个粗略的实现进度。2.1可行性研究的任务IV.可行性研究最根本的任务是对以后的行动方针提出建议。应该推荐一个较好的解决方案,并且为工程制定一个初步的计划。–可行性研究需要的时间长短取决于工程的规模。一般说来,可行性研究的成本只是预期的工程总成本的5%~10%。2.2可行性研究过程1.复查系统规模和目标2.研究目前正在使用的系统3.导出新系统的高层逻辑模型4.进一步定义问题5.导出和评价供选择的解法6.推荐行动方针7.草拟开发计划8.书写文档提交审查2.2可行性研究过程1.复查系统规模和目标–分析员访问关键人员,仔细阅读和分析有关的材料,以便对问题定义阶段书写的关于规模和目标的报告书进一步复查确认,改正含糊或不确切的叙述,清晰地描述对目标系统的一切限制和约束。–这个步骤的工作,实质上是为了确保分析员正在解决的问题确实是要求他解决的问题。2.研究目前正在使用的系统–现有的系统是信息的重要来源。新的目标系统必须也能完成它的基本功能;–现有的系统必然有某些缺点,新系统必须能解决旧系统中存在的问题。–常见的错误做法是花费过多时间去分析现有的系统。这个步骤的目的是了解现有系统能做什么,而不是了解它怎样做这些工作。2.2可行性研究过程3.导出新系统的高层逻辑模型(LogicalModel,概略模型)–通常总是从现有的物理系统出发,导出现有系统的逻辑模型,再参考现有系统的逻辑模型,设想目标系统的逻辑模型,最后根据目标系统的逻辑模型建造新的物理系统。–能够使用数据流图,描绘数据在系统中流动和处理的情况,从而概括地表达出他对新系统的设想。–通常为了把新系统描绘得更清晰准确,还应该有一个初步的数据字典,定义系统中使用的数据。–数据流图和数据字典共同定义了新系统的逻辑模型,以后可以从这个逻辑模型出发设计新系统。新系统的逻辑模型实质上表达了分析员对新系统必须做什么的看法。2.2可行性研究过程4.进一步定义问题–分析员应该和用户一起再次复查问题定义、工程规模和目标,这次复查应该把数据流图和数据字典作为讨论的基础。如果分析员对问题有误解或者用户曾经遗漏了某些要求,那么现在是发现和改正这些错误的时候了。–可行性研究的前4个步骤实质上构成一个循环。分析员定义问题,分析这个问题,导出一个试探性的解;在此基础上再次定义问题,再一次分析这个问题,修改这个解;继续这个循环过程,直到提出的逻辑模型完全符合系统目标。2.2可行性研究过程5.导出和评价供选择的解法–分析员应该从他建议的系统逻辑模型出发,导出若干个较高层次的(较抽象的)物理解法供比较和选择。–当从技术角度提出了一些可能的物理系统之后,应该根据技术可行性的考虑初步排除一些不现实的系统。–其次可以考虑操作方面的可行性。去掉其中从操作方式或操作过程的角度看用户不能接受的方案。–接下来应该考虑经济方面的可行性。…对每个可能的系统进行成本/效益分析。一般说来,只有投资预计能带来利润的系统才值得进一步考虑。–最后为每个在技术、操作和经济等方面都可行的系统制定实现进度表,通常只需要估计生命周期每个阶段的工作量。2.2可行性研究过程6.推荐行动方针–根据可行性研究结果做出的一个关键性决定-是否继续进行这项开发工程。分析员必须清楚地表明他对这个关键性决定的建议。–如果分析员认为值得继续进行这项开发工程,那么他应该选择一种最好的解法,并且说明选择这个解决方案的理由。–分析员对于所推荐的系统必须进行比较仔细的成本/效益分析。2.2可行性研究过程7.草拟开发计划(DevelopmentPlan)–分析员应该为所推荐的方案草拟一份开发计划,除了制定工程进度表之外还应该估计对各类开发人员和各种资源的需要情况,应该指明什么时候使用以及使用多长时间。此外还应该估计系统生命周期每个阶段的成本。最后应该给出下一个阶段(需求分析)的详细进度表和成本估计。8.书写文档提交审查(Feasibilityreport)–应该把上述可行性研究各个步骤的工作结果写成清晰的文档,请用户、客户组织的负责人及评审组审查,以决定是否继续这项工程及是否接受分析员推荐的方案。附:可行性研究报告(Feasibilityreport)1引言2前提①要求②目标③条件3现有系统分析4所建议的系统5可选择的其他系统方案6投资及效益分析7社会因素可行性8结论GB8567-88《计算机软件产品开发文件编制指南》2.3系统流程图SystematicFlowdiagram•系统流程图是概括地描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。•系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。2.3系统流程图图2.1基本符号•利用这些符号可以把一个广义的输入输出操作具体化为读写存储在特殊设备上的文件(或数据库),把抽象处理具体化为特定的程序或手工操作等。•分层2.3系统流程图2.3系统流程图•一个简单的例子:•某装配厂有一座存放零件的仓库,仓库中现有的各种零件的数量以及每种零件的库存量临界值等数据记录在库存清单主文件中。当仓库中零件数量有变化时,应该及时修改库存清单主文件,如果哪种零件的库存量少于它的库存量临界值,则应该报告给采购部门以便定货,规定每天向采购部门送一次定货报告。图2.3库存清单系统的系统流程图举例-计算机售书系统流程图结束学生购书发票到书库领书购书单终端审查并开发票11---学生各学期用书数据库购书单22---教材存量数据库2.4数据流图DataFlowDiagram•数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。–在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。–数据流图是系统逻辑功能的图形表示,即使不是专业的计算机技术人员也容易理解它,因此是分析员与用户之间极好的通信工具。–此外,设计数据流图时只需考虑系统必须完成的基本逻辑功能,完全不需要考虑怎样具体地实现这些功能,所以它也是今后进行软件设计的很好的出发点。数据流图的基本要点是描绘“做什么”而不考虑“怎样做”。2.4数据流图DFD•数据流图有四种基本符号:–正方形(或立方体)表示数据的源点或终点;–圆角矩形(或圆形)代表变换数据的处理;–开口矩形(或两条平行横线)代表数据存储;–箭头表示数据流,即特定数据的流动方向。•除了上述4种基本符号之外,有时也使用几种附加符号-图2.4(b)。2.4数据流图DataFlowDiagram•例子:假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。–第一步可以从问题描述中提取数据流图的4种成分:源点或终点,处理,数据存储和数据流。图2.5定货系统的基本系统模型2.4数据流图DataFlowDiagram–下一步应该把基本系统模型细化,描绘系统的主要功能。从基本系统模型这样非常高的层次开始画数据流图是一个好办法。图2.6定货系统的功能级数据流图2.4数据流图DataFlowDiagram–接下来应该对功能级数据流图中描绘的系统主要功能进一步细化。图2.7把处理事务的功能进一步分解后的数据流图2.4数据流图DataFlowDiagram•数据流图中的命名:数据流图中每个成分的
本文标题:第二章 可行性分析
链接地址:https://www.777doc.com/doc-613834 .html