软件工程导论_第1页
软件工程导论_第2页
软件工程导论_第3页
软件工程导论_第4页
软件工程导论_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程导论第1页,课件共79页,创作于2023年2月1.张海藩.软件工程导论.北京:清华大学出版社,2008.2.郑人杰.软件工程概论.北京:清华大学出版社,2003.3.史济民.软件工程原理方法与应用.北京:高等教育出版社,2002.4.邓良松等.软件工程(第二版).西安:西安电子科技大学出版社,2004.5.SoftwareEngineering,6thEditionSommerville.I.(影印版)机械工业出版社2003.4.教材及主要参考书:第2页,课件共79页,创作于2023年2月第一章软件工程学概述11.1软件危机1.3

软件生命周期1.5小结1.4软件过程1.2软件工程第3页,课件共79页,创作于2023年2月软件是计算机系统的重要组成部分;软件是逻辑产品,需要计算机硬件和系统软件的支撑;软件是计算机控制系统的指挥中枢;软件是信息转换器,它能对信息进行加工、处理或变换;软件是工具,在人们的生活、工作、休闲,在社会的经济、军事、政治、文化、科学技术、教育中发挥具大作用;第4页,课件共79页,创作于2023年2月软件—

定义能够完成预定功能和性能的可执行的指令(计算机程序)软件是使得程序能够适当地操作信息的数据结构描述程序的操作和使用的文档第5页,课件共79页,创作于2023年2月现在,被普遍接受的软件的定义是:

软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它包括程序(program)、相关数据(data)及其说明文档(document)。Software=Program+Data+Document第6页,课件共79页,创作于2023年2月软件—

软件特征软件是一种逻辑实体,具有抽象性软件没有明显的制造过程软件在使用过程中,没有磨损、老化的问题软件对硬件和环境有着不同程度的依赖性软件的开发至今尚未完全摆脱手工作坊式的开发方式,生产效率低软件是复杂的,而且以后会更加复杂软件的成本相当昂贵大多数软件是自定的,而不是通过已有的构件组装而来的软件工作牵涉到很多社会因素第7页,课件共79页,创作于2023年2月2008年,我国软件产业继续保持高速增长态势,实现产业收入达1935.5亿元,同比增长31.2%,比电子信息制造业高出11.4个百分点。其中,软件产品收入703.9亿元,仍为软件产业的主要组成部分;软件技术服务增长最快,达356.3亿元,同比增长48.2%。在之前的7年,我国软件产业收入从2001年的796亿元增长到2007年的5834亿元,增长了6.3倍,占全球软件产业的份额也从1.5%上升到8.7%。第8页,课件共79页,创作于2023年2月国外软件企业的人才结构畸形的人才结构?高层管理员程序员软件开发员系统分析员图1.1国外人才结构图第9页,课件共79页,创作于2023年2月我国的软件人才却呈橄榄形(缺少高级管理者和基础程序员),必须多发展“塔基”(软件蓝领),才能形成合理的软件人才结构。图1.2软件人员从业结构第10页,课件共79页,创作于2023年2月拉布雷阿的焦油坑(MuralofLaBreaTarPits)图1.3拉布雷阿的焦油坑第11页,课件共79页,创作于2023年2月在未来的十年内,无论是在技术还是管理方法上,都看不出有任何突破性的进步,能够独自保证在十年内大幅度地提高软件的生产率、可靠性和简洁性。Thereisnosingledevelopment,ineithertechnologyormanagementtechnique,whichbyitselfpromisesevenoneorder-of-magnitudeimprovementwithinadecadeinproductivity,inreliability,insimpllicity.NoSilverBullet?第12页,课件共79页,创作于2023年2月

微软公司,测试人员与开发人员数量之比一般为1.5~2.5左右,即一个开发人员背后有两位左右测试人员在工作,以保证软件产品的质量。在WINDOWS2000开发团队中,微软用了250多个项目经理、1700多个开发人员,而内部测试人员则达到3200人,比前两者的之和还要多。有关机构的研究表明,国外软件开发机构40%的工作量花在软件测试上,测试费用占项目总费用的30%至50%。对于一些要求高可靠、高安全的软件,测试费用可能相当于整个项目费用的3至5倍。软件产品的高质量,主要依赖科学的软件测试。第13页,课件共79页,创作于2023年2月1.1软件危机“软件危机”(Softwarecrisis)的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。致使大量质量低劣的软件涌向市场,有的花费大量人力财力,而在开发过程中就夭折。1.1软件危机第14页,课件共79页,创作于2023年2月1.1.1软件危机的介绍1.1软件危机一.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。二.软件危机的表现形式对软件开发成本和进度的估计常常很不准确;用户对“已完成的”软件系统不满意的现象经常发生;软件产品的质量往往靠不住,Bug一大堆,Patch一个接一个;第15页,课件共79页,创作于2023年2月4.软件常常是不可维护的;5.软件通常没有适当的文档资料;6.软件成本在计算机系统总成本中所占的比例逐年上升;7.软件开发生产率提高的速度跟不上计算机应用普及的趋势。1.1软件危机二.软件危机的表现形式(续)第16页,课件共79页,创作于2023年2月1.1.2产生软件危机的原因(软件开发人员

的错误观点)

“有一个对目标的概括描述就足以着手编写程序了,许多细节可以在以后再补充”“所谓软件开发就是编写程序并设法使它运行”“用户对软件的要求不断变化,然而软件是柔软而灵活的,可以轻易地改动”“软件投入生产性运行以后需要的维护工作并不多,而且维护是一件很容易做的简单工作”1.1软件危机第17页,课件共79页,创作于2023年2月1.1.2

产生软件危机的原因1.软件缺乏“可见性”,软件的开发过程的进展情况难以衡量,软件质量难以评价;2.软件维护意味着改正或修改原来的设计,使维护较难;3.软件规模大,须由多人分工合作,管理难度大;4.软件专业人员对软件开发和维护有糊涂观念,常采用错误的方法和技术;错误的认识和做法主要表现,(1)忽视软件需求分析的重要性;(2)忽视软件维护1.1软件危机第18页,课件共79页,创作于2023年2月1.1软件危机4.选择好的软件开发工具。1.端正认识,纠正“软件就是程序”的错误观念;2.认识到软件开发是组织良好、管理严密,各类人员协同配合、共同完成的工程项目;3.多使用已成功的技术和方法,探索更有效的方法;1.1.3消除软件危机的途径第19页,课件共79页,创作于2023年2月1.2软件工程1.2软件工程1.2.1软件工程的介绍1.什么是软件工程?为了经济的获得可靠的,在实际机器上高效运行的软件,而建立和使用的好的工程原则。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。第20页,课件共79页,创作于2023年2月2.软件工程三要素

过程、方法和工具软件工程过程方法工具1.2软件工程第21页,课件共79页,创作于2023年2月软件工程过程方法工具软件工程釆用层次化的方法,每个层次都包括过程、方法、工具三要素。方法支撑过程和工具、过程和工具促进方法学的研究。将系统的、规范的、可量化的方法运用到软件工程的始终,渗透到软件工程的过程、方法和工具中。为软件工程的过程和方法提供自动化或半自动化的工具支持贯穿软件开发的各个环节完成项目的技术手段(传统方法学、面向对象方法学)第22页,课件共79页,创作于2023年2月3.软件工程发展阶段软件工程的发展已经历了四个重要阶段:4)第四代软件工程—构件工程3)第三代软件工程—过程工程2)第二代软件工程—对象工程1)第一代软件工程—传统的软件工程1.2软件工程第23页,课件共79页,创作于2023年2月软件工程的发展已经历了四个重要阶段:1)第一代软件工程—传统的软件工程2)第二代软件工程—对象工程3)第三代软件工程—过程工程4)第四代软件工程—构件工程60年代末到70年代为了克服“软件危机”(Softwarecrisis)提出“软件工程”的名词,将软件开发纳入工程化的轨道,基本形成软件工程的概念、框架、技术和方法。称为传统的软件工程。1.2软件工程3.软件工程发展阶段第24页,课件共79页,创作于2023年2月1.软件工程的发展已经历了四个重要阶段:1)第一代软件工程—传统的软件工程2)第二代软件工程—对象工程3)第三代软件工程—过程工程4)第四代软件工程—构件工程80年代,面向对象的方法与技术得到发展,研究的重点转移到面向对象的分析与设计,演化为一种完整的软件开发方法和系统的技术体系,称为对象工程。1.2软件工程3.软件工程发展阶段第25页,课件共79页,创作于2023年2月1.软件工程的发展已经历了四个重要阶段:1)第一代软件工程—传统的软件工程2)第二代软件工程—对象工程3)第三代软件工程—过程工程4)第四代软件工程—构件工程80年代中开始,人们在软件开发的实践过程中认识到:提高软件生产率,保证软件质量的关键是“软件过程”,是软件开发和维护中的管理和支持能力,逐步形成软件过程工程。1.2软件工程3.软件工程发展阶段第26页,课件共79页,创作于2023年2月1.软件工程的发展已经历了四个重要阶段:1)第一代软件工程—传统的软件工程2)第二代软件工程—对象工程3)第三代软件工程—过程工程4)第四代软件工程—构件工程90年代,基于构件(Component)的开发方法取得重要进展,软件系统的开发可通过使用现成的可复用构件组装完成,而无需从头开始构造,以此达到提高效率和质量,降低成本的目的。称为构件工程。1.2软件工程3.软件工程发展阶段第27页,课件共79页,创作于2023年2月4.软件工程目标

在给定成本、进度的前提下,开发出具有:有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可适应性、可追踪性、可移植性、可互操作性并满足用户需求的软件产品。5.软件工程基本原则

在软件开发过程中,为了达到软件开发目标,必须遵循下列原则:

抽象模块化信息隐藏局部化一致性完全性可验证性1.2软件工程第28页,课件共79页,创作于2023年2月1.2软件工程6.软件工程的特性(1)软件工程关注于大型程序的构造;(2)软件工程的中心课题是控制复杂性;(3)软件经常变化;(4)开发软件的效率非常重要;(5)和谐地合作是开发软件的关键;(6)软件必须有效地支持它的用户;(7)在软件工程领域中是由具有一种文化背景的人替另一种文化背景的人创造产品。第29页,课件共79页,创作于2023年2月1.2.2软件工程的基本原理1.用分阶段的生命周期计划严格管理;2.坚持进行阶段评审;3.实行严格的产品控制;4.采用现代程序设计技术;5.结果应能清楚地审查;6.开发小组的人员应该少而精;7.承认不断改进软件工程实践的必要性。1.2软件工程第30页,课件共79页,创作于2023年2月1.3软件生存期1.3软件生存期从68年北大西洋公约的软件可靠性会议(NATO)上,首次提出“软件工程”的概念,提出了在软件生产中采用工程化的方法,采用一系列科学的、现代化的方法技术来开发软件。这种工程化的思想贯穿到软件开发和维护的全过程。了解有关软件生存期等重要的概念,对掌握、学习和应用软件工程的方法、技术是极有益的。第31页,课件共79页,创作于2023年2月

硬件失效率曲线,是一U型曲线(即浴盆曲线)。软件失效率曲线,它没有U型曲线的右半翼。因为软件不存在磨损和老化问题,然而存在退化问题。失效率时间硬件失效率曲线失效率时间实际曲线理想曲线软件失效率曲线软、硬件失效情况的对比1.3软件生存期图1.5软、硬件失效情况对比第32页,课件共79页,创作于2023年2月按照规模划分软件类别参加人数研制期限产品规模(源代码行)微型11–4周0.5K小型11–6月1K–2K中型2-51–2年5–50K大型5-202–3年50–500K甚大型100-10004–5年1M极大型2000-50005–10年1M–10M按照服务对象的范围划分软件项目软件—由客户委托开发的软件。产品软件—由软件开发机构开发,提供给市场的。按照软件工作方式划分实时处理软件 交互式软件 批处理软件此外,还可以按照软件的功能、使用的频度及按照软件失效的影响进行划分。1.3软件生存期第33页,课件共79页,创作于2023年2月1.3软件生存期软件生命周期分为三大阶段(8个小阶段)一、软件定义阶段1、问题定义阶段:“要解决的问题是什么?”2、可行性研究阶段:“对上一阶段所确定的问题是否值得去解?是否有可行的解决办法?”3、需求分析阶段:“为解决这个问题,目标系统必须做什么?”第34页,课件共79页,创作于2023年2月1.3软件生存期软件生命周期分为三大阶段(8个小阶段)二、软件开发阶段4、总体设计阶段:“应该怎样概括地实现目标系统?”5、详细设计阶段:“应该怎样具体地实现这个系统呢?”6、编码和单元测试阶段:写出正确的容易理解、易于维护的程序模块并仔细测试每个模块。7、综合测试:通过各类测试使软件达到预定要求。三、软件维护阶段:8、通过各种必要的维护活动使系统持久地满足用户的需要。第35页,课件共79页,创作于2023年2月1.4软件过程(生存期模型)

软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。目前有若干软件生存期模型,各种模型有其不同的特点,并适用于不同的开发方法。1.4软件过程瀑布模型(waterfallmodel)快速原型模型(rapidprototypingmodel)增量模型(incrementalmodel)螺旋模型(spiralmodel)喷泉模型(fountainmodel)智能模型(intelligentmodel)第36页,课件共79页,创作于2023年2月问题定义编码需求分析设计可行性研究运行与维护测试开发阶段运行阶段计划阶段(目标与范围说明书)(可行性论证论告)(维护报告)(测试报告)(程序)(设计文档)(需求说明书)1.4.1瀑布模型(文档驱动)图1.6瀑布模型1.4软件过程主要思想:软件开发过程与软件生命周期是一致的相邻二阶段之间存在因果关系需对阶段性产品进行评审第37页,课件共79页,创作于2023年2月优点:使软件开发过程可以在分析、设计、编码、测试和维护的框架下进行;软件开发过程具有系统性、可控性,克服了软件开发的随意性。缺点:项目开始阶段用户很难精确的提出产品需求,由于技术进步,用户对系统深入的理解,修改需求十分普遍。项目开发晚期才能得到程序的运行版本,这时修改软件需求和开发中的错误代价很大。采用线性模型组织项目开发经常发生开发小组人员“堵塞状态”,特别是项目的开始和结束。1.4软件过程第38页,课件共79页,创作于2023年2月按照传统的瀑布模型进行软件开发,由于将软件开发这样一个充满回朔的过程硬性地割裂开,虽然强调各个阶段的复审,而用户所提出的需求往往是模糊的,因此很难得到一个完整精确的规格说明,直接影响到后期的开发,针对其主要缺点推出了快速原型模型。什么是原型模型方法?

原型是软件开发过程中,软件的一个早期可运行的版本,它反映了最终系统的部分重要特性。原型模型的基本思想是花费少量代价建立一个可运行的系统,使用户及早获得学习的机会,强调的是软件开发人员与用户的不断交互,通过原型的演进不断适应用户任务改变的需求。将维护和修改阶段的工作尽早进行,使用户验收提前,从而使软件产品更加适用。1.4软件过程1.4.2快速原型模型第39页,课件共79页,创作于2023年2月由于软件项目的特点和运行原型的目的不同,分为两种类型:软件原型的分类2、追加(addon)型也称快速建立渐进原型RCP法(RapidCyclicPrototyping)法采用循环渐进的开发方式,对系统模型作连续精化,即先构造一个功能简单而且质量要求不高的模型系统,将系统需要具备的性质逐步添加上去,通过不断地扩充修改,逐步追加新的要求,直至所有性质全部满足,此时的原型模型也就是最终的产品。1、废弃(throwaway)型也称为快速建立需求规格原型RSP法(RapidSpecificPrototyping),先构造一个功能简单而且质量要求不高的模型系统,针对这个模型系统反复进行分析修改,让用户学习。待需求说明书一旦确定,原型将被废弃,后阶段的工作仍按照瀑布模型开发。1.4软件过程第40页,课件共79页,创作于2023年2月快速分析

快速确定软件系统的基本要求,确定原型所要体现的特性(总体结构,功能,性能、界面等)。2.构造原型

根据基本规格说明,忽略细节,只考虑主要特性,快速构造一个可运行的系统。有三类原型:用户界面原型,功能原型,性能原型。3.运行和评价原型

用户试用原型并与开发者之间频繁交流,发现问题,目的是验证原型的正确性。4.修正与改进

对原型进行修改,增删。运行评价

构造快速分析或修改快速原型模型开发过程快速原型法的工作模型如图所示,按以下步骤循环执行。图1.7快速原型模型1.4软件过程第41页,课件共79页,创作于2023年2月构造原型运行/评价原型原型完成否要细部说明否严格说明细部效果满意否整理原型提供文档修正改进原型YYNN快速分析,确定初步规格说明YN图1.8快速原型化开发过程

快速建立系统原型进行系统的分析和构造有如下优点:1、增进软件开发人员和用户对系统需求的理解。便于将用户模糊的功能需求明确化。2、为用户提供了一种强有力的学习手段。3、易于确定系统的性能,是理解和确认软件需求规格说明的工具。4、按照RCP

法建立的原型即为最终的产品。1.4软件过程缺点:1、对于大型软件项目,原型模型需要足够的人力资源以建立足够的原型组。2、原型模型要求开发者和客户在一段时间内共同完成原型系统的开发,如果任何一方没有实现承诺,会导致原型开发的失败。3、如果系统难以模块化,建造原型所需构件就有问题。第42页,课件共79页,创作于2023年2月1.4.3增量模型(incrementalmodel)增量模型是一种非整体开发的模型。根据增量的方式和形式的不同,分为基于瀑布模型的渐增模型和基于原型的快速原型模型。使用增量模型开发模型时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能完成特定的功能。第一个增量构件往往提供最核心的功能。例字处理软件

注意:在把每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来已经开发出的产品。

1.4软件过程第43页,课件共79页,创作于2023年2月增量模型和瀑布模型之间的本质区别是:瀑布模型属于整体开发模型,它规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节。而增量模型属于非整体开发模型,它推迟某些阶段或所有阶段中的细节,从而较早地产生工作软件。1.4软件过程第44页,课件共79页,创作于2023年2月定义概要需求把需求分配给增量设计系统结构开发系统增量验证增量组装增量验证系统系统不完全最终系统图1.9增量模型1.4软件过程1.4.3增量模型(incrementalmodel)第45页,课件共79页,创作于2023年2月1.4.4螺旋模型

对于大型软件,只开发一个原型往往达不到要求。螺旋模型将瀑布模型和增量模型结合起来,并加入了风险分析。螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期可分为4个工作步骤:1.确定目标、方案和限制条件;2.评估方案、标识风险和解决风险;3.开发确认产品;4.计划下一周期工作。图1.10螺旋模型1.4软件过程第46页,课件共79页,创作于2023年2月1.4.5喷泉模型分析系统设计软件设计实现图1.11喷泉模型该模型是由B.H.Sollers和J.M.Edwards于1990年提出的一种新的开发模型。主要用于采用对象技术的软件开发项目。它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性,喷泉模型使开发过程具有迭代性和无间隙性。

其特点如下:

1、开发过程有分析、系统设计、软件设计和实现4个阶段。2、各阶段相互重叠,它反映了软件过程并行性的特点。3、以分析为基础,资源消耗成塔型。4、反映了软件过程迭代性的自然特性,从高层返回低层无资源消耗。5、强调增量开发,整个过程是一个迭代的逐步提炼的过程。

1.4软件过程第47页,课件共79页,创作于2023年2月1.4.6智能模型(intelligentmodel)获取需求需求分析具体描述优化程序调整验证维护知识库专家系统程序也称为基于知识的软件开发模型,是知识工程与软件工程相结合的软件开发模型。其主要特点是必须建立知识库,并将模型本身、软件工程知识、特定领域知识放入知识库。具体描述可以使用形式功能规约,也可以使用知识处理语言描述等。其模型如图所示:图1.12智能模型1.4软件过程第48页,课件共79页,创作于2023年2月1.4软件过程1.4.7Rational统一过程(RationalUnifiedProcess)图1.13RUP软件开发生命周期第49页,课件共79页,创作于2023年2月1.4软件过程优点:使用现有或新开发的构件定义体系结构的系统化方法;软件质量评估贯穿整个开发过程,由全体成员参与;描述了如何控制、跟踪和监控修改,确保迭代开发的成功;采用迭代和渐增的方式来开发软件,整个项目开发过程由多个迭代过程组成;提供了将管理的可见性引入开发过程的机制。缺点:RUP只是一个开发过程,并没有涵盖软件过程的全部内容,缺少关于软件运行和支持等方面的内容;没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。第50页,课件共79页,创作于2023年2月1.4软件过程1.4.8敏捷过程与极限编程1.敏捷过程由四个价值观生命组成:1)个体和交互胜过过程和工具;2)可以工作的软件胜过面面俱到的文档;3)客户合作胜过合同谈判;4)响应变化胜过遵循计划。注意:声明只不过是对不同因素在保证软件开发成功方面所起作用的大小做了比较,说一个因素更重要并不是说其他因素不重要,更不是说某个因素可以被其他因素代替。第51页,课件共79页,创作于2023年2月1.4软件过程2.极限编程极限:是指把好的开发实践运用到极致。1)极限编程的有效实践客户作为开发团队的成员;使用用户素材;短交付周期;验收测试;结对编程;集体所有;测试驱动开发;持续集成;开放的工作空间;及时调整计划;简单的设计;重构;使用隐喻。第52页,课件共79页,创作于2023年2月1.4软件过程2)极限编程的整体开发过程图1.14XP项目的整体开发过程

第53页,课件共79页,创作于2023年2月1.4软件过程3)极限编程的迭代过程图1.15XP迭代开发过程第54页,课件共79页,创作于2023年2月1.4软件过程特点:具有对变化和不确定性的更快速、更敏捷的反应特性,而且在快速的同时仍然能够保持可持续的开发速度。能较好地适应商业竞争环境下对小型项目提出的有限资源和有限开发的时间约束。第55页,课件共79页,创作于2023年2月1.4软件过程1.4.9微软过程1.微软过程准则:项目计划应该兼顾未来的不确定因素;用有效的风险管理来减少不确定因素的影响;经常生成并快速地测试软件的过渡版本,从而提高产品的稳定性和可预测性;采用快速循环、递进的开发过程;用创造性的工作来平衡产品特性和产品成本;项目进度表应该具有较高稳定性和权威性;使用小型项目组并发地完成开发工作;在项目早期把软件配置项基线化,项目后期则冻结产品;使用原型验证概念,对项目进行早期论证;把零缺陷作为追求的目标;时程碑评审会的目的是改进工作,切忌相互指责。第56页,课件共79页,创作于2023年2月2.微软过程把软件周期划分成5个阶段:图1.16微软软件生命周期阶段划分和主要里程碑1.4软件过程第57页,课件共79页,创作于2023年2月作业:P325,7,10第58页,课件共79页,创作于2023年2月2可行性研究第二章可行性研究2.1可行性研究的任务2.2可行性研究过程2.3系统流程图2.4数据流图2.5数据字典2.6成本/效益分析第59页,课件共79页,创作于2023年2月2.1可行性研究的任务2.1可行性研究的任务可行性研究的目的:就是用最小的代价在尽可能短的时间内确定问题是否有解,是否值得去解。可行性研究的三个方面:(1)技术可行性:现有技术能够实现这个系统吗?(2)经济可行性:经济效益能否超过开发成本?(3)操作可行性:系统的操作方式在这个用户组织内行得通吗?第60页,课件共79页,创作于2023年2月例:开发计算机辅助设计(CAD)

系统取代当前的手工设计过程系统分析员为手工设计系统和CAD目标系统进行成本效益分析T:绘一幅图的平均时间,单位是小时。d:每小时绘图的平均成本,单位是元。n:每年绘图的数目。r:用CAD系统绘图减少的绘图时间比例。p:用CAD系统绘图的百分比。利用CAD系统绘图每年可以节省的经费为:B=r×T×n×d×p当r=1/4,T=4小时,n=8000/年,d=20元/小时,p=60%代入上式计算得B=96000元/年。用CAD绘图比用手工系统绘图平均每年约节省96000元。第61页,课件共79页,创作于2023年2月2.2可行性研究的过程2.2可行性研究过程1.复查系统规模和目标2.研究目前正在使用的系统3.导出新系统的高层逻辑模型4.进一步定义问题5.导出和评价供选择的解法6.推荐行动方针7.草拟开发计划8.书写文档提交审查第62页,课件共79页,创作于2023年2月2.3系统流程图基本符号:见教材P39,图2.1系统流程图是概括地描绘物理系统的传统工具。是用图形符号以黑盒子形式描绘组成系统的每个部件(程序、文档、数据库)。它是物理流图而不是程序流程图2.3系统流程图2.3.1符号系统符号:见教材P39,图2.2第63页,课件共79页,创作于2023年2月2.3系统流程图2.3系统流程图2.3.2例子事务库存清单程序定货信息报告生成程序定货报告库存清单主文件第64页,课件共79页,创作于2023年2月2.3系统流程图2.3系统流程图2.3.3分层对复杂的系统需分层地描绘,可以使阅读者感到更清晰,即一个总图可以细化成一系列的细化图。例如:上例中的“库存清单程序”,就可以进一步细化到程序算法。第65页,课件共79页,创作于2023年2月2.4数据流图数据流图(DataFlowDiagram,DFD)是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理。数据存储数据源点或终点加工加工名数据流数据流名文件名实体名箭头圆或椭圆单或双杠矩形框还有一些辅助的图例:2.4数据流图2.4.1数据流图的图符四种基本图形符号:TAB*CTAB*CTAB+CTAB+CTABC+TABC+*

+或互斥+第66页,课件共79页,创作于2023年2月顾客出版社验证订单汇总订单订单出版社订单图书目录文件顾客档案待处理订单文件正确订单一批订单出版社档案文件订货存根文件DFD图的例子加工名编号加工名编号文件名文件名2.4数据流图第67页,课件共79页,创作于2023年2月顾客出版社验证订单汇总订单订单出版社订单图书目录文件顾客档案待处理订单文件正确订单一批订单出版社档案文件订货存根文件画图步骤:1、确定外部实体及输入、输出数据流。2、确定分解顶层的加工。3、确定使用的文件。4、用数据流将各部分连接起来,形成数据封闭。注意:标注各加工框及数据流名称。例1:图书预定系统P44图2.62.4数据流图第68页,课件共79页,创作于2023年2月领书单

进书通知

购书单

缺书单

例:售书系统学生教材购销系统书库保管员领书单

进书通知

进书通知

购书单

缺书单

1销售2采购书库保管员学生F1教材存量表

F2缺书登记表

第69页,课件共79页,创作于2023年2月例复印机控制软件的数据流图第70页,课件共79页,创作于2023年2月2.4数据流图2.4.3命名P451.为数据流命名2.为处理(加工)命名2.4.4用途数据流图的基本用途:做信息交流的工具;数据流图的主要用途:做分析和设计的工具。

分析员在研究系统时多用系统流程图,那样更清晰具体;开发设计人员多用数据流图,因为数据流图更着重描绘系统要完成的功能。对比参见P43图2.5,P44图2.6,2.7第71页,课件共79页,创作于2023年2月

“先全局后局部,先整体后细节,先抽象后具体”

通常可将这种分层的DFD图,分为顶层、中间层、底层。具体步骤:

1。先确定系统范围,画出顶层的DFD图。2。逐层分解顶层DFD图,获得若干中间层DFD图。3。画出底层的DFD图。

2.4.5画分层DFD图的方法顶层图说明了系统的边界,即系统的输入和输出数据流,顶层图只有一张。底层图由一些不能再分解的加工组成,这些加工都已足够简单,称为基本加工。在顶层和底层之间的是中间层。中间层的数据流图描述了某个加工的分解,而它的组成部分又要进一步分解。画各层DFD图时,“由外向内”。2.4数据流图第72页,课件共79页,创作于20

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论