软件工程导论(第一讲)课件_第1页
软件工程导论(第一讲)课件_第2页
软件工程导论(第一讲)课件_第3页
软件工程导论(第一讲)课件_第4页
软件工程导论(第一讲)课件_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

少学习,多思考?!埃德蒙·费希尔——美国华盛顿大学教授、1992年诺贝尔医学奖得主,2004年11月10日在同济大学演讲台上,他充满激情地表达了自己的科学理念和对中国学生的期望:“少学习,多思考”。他认为科学的本质和艺术是一样的,需要直觉和想象力。而把太多信息塞入大脑,会让学生没有时间放松,没有时间发展想象力。“牛顿本来是一个没有什么特别之处的学生。但在剑桥大学休学的两年里,静下心来充分发展想象力,于是产生了伟大的发现。”

除了学习扎实的知识,更重要的是要留点时间去梦想。7/20/20231Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering软件工程

SoftwareEngineering夏顺仁Tel:87951703/p>

E-mail:srxia@7/20/20232Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering张海藩编著,软件工程导论(第四版),清华大学出版社(2007)教材7/20/20233Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering

实用软件工程(第二版)郑人杰殷人昆陶永雷清华大学出版社(2001)

软件工程-实践者的研究方法(英文版第四版)RogerS.Pressman

机械工业出版社参考书目7/20/20234Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering参考书目FundamentalsofSoftwareEngineeringCarloGhezzi,MehdiJazayeri,DinoMandrioliPrentice-Hall,Inc.(1991)

SoftwareEngineering,TheoryandPracticeShariLawrencePfleeger,Prentice-Hall,Inc.(1998)7/20/20235Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering参考书目Object-OrientedProgrammingUsingC++,IraPohlBenjamin/CummingsPublishingCompany,Inc.(1993)7/20/20236Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering课程讲授和考核方法课堂讲授、自学与分组实践相结合学期结束前提交软件工程研发课题《患者监护系统》实践报告7/20/20237Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering课程教学大纲7/20/20238Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering第一章软件危机与软件工程Late1950’s:§1.软件危机(SoftwareCrisis)Intheearlydays:

“Software”=“Placeasequenceofinstructionstogethertogetthecomputertodosomethinguseful”.UserComputerComputerbecamecheaperandmorecommonHighlevellanguagesweredevelopedProgrammerUserComputereasier7/20/20239Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§1.软件危机Early1960s:Veryfewlargesoftwareprojectsweredonebysomeexperts.Middletolate1960s:Trulylargesoftwaresystemswereattempted.个体作坊式SoftwareCrisis!!!!7/20/202310Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§1.软件危机⑴项目没有被很好地理解;计划不周,最终导致进度拖延。⑵没有充分的文档资料(documentation)

人与人的交流比写程序困难得多。⑶软件可靠性(reliability)缺少度量的标准,质量无法保证。⑷软件难以维护(maintainability)

不易升级(evolvability)问题的主要表现:7/20/202311Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§1.软件危机客观原因:软件本身的特点-逻辑部件主观原因:和软件开发与维护的方法不当有关错误的积累效应和放大效应变化出现的时期问题症结所在:7/20/202312Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§1.软件危机

BettermanagementDifferentteamorganizationsBetterlanguages&toolsUniformcodingconventions

必须意识到:“软件”编程,它有自己的生命周期

(lifecycle)。大型软件系统的开发与其它工程项目如建造桥梁、制造飞机、轮船等的开发是同理的。“软件工程”(SoftwareEngineering)NATOConference,Garmisch,Germany,1968.解决问题的想法:7/20/202313Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§1.软件危机据07年国外媒体报道,微软高级工程师EricTraut透露,微软将对WindowsVista之后的下一代操作系统Windows7进行“瘦身”。

与前几代操作系统相比,WindowsVista的体积相当庞大。WindowsVista包含了5000万行代码,比XP多出了40%。此外,WindowsVista还集成了19500个驱动程序,而WindowsXP只集成了10000个驱动。事实上,早在06年8月,权威调研机构Gartner就曾表示,Windows当前的“集成化”开发模式已经遭遇瓶颈。从Vista之后的下一代操作系统开始,微软需要调整开发模式。因此当前的开发模式使得Windows变得越来越复杂,不利于企业部署、移植,也不利于微软对系统进行定期升级。7/20/202314Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§2.软件工程(SoftwareEngineering)1、原理(Principles):⑴用分阶段的生命周期计划严格管理

项目概要计划里程碑计划项目控制计划产品控制计划验证计划运行维护计划⑵坚持进行阶段评审⑶实行严格的产品控制——基准配置管理(Baselineconfigurationmanagement)⑹开发小组的成员应该少而精(1+1<2)⑷采用现代程序设计技术⑸结果应能清楚地审查—setstandards⑺承认不断改进软件工程实践的必要性(总结和创新)§2.软件工程7/20/202315Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§2.软件工程2、软件工程方法学(Methodology):定义:在软件生命周期全过程中使用的一整套技术方法的集合。三个要素:方法:完成软件开发各种任务的技术方法工具:为运用方法而提供的自动或半自动的软件工程支撑环境过程:为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。使用最广泛的两种方法:传统方法学和面向对象方法学。7/20/202316Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§2.软件工程3、软件生命周期(LifeCycle):维护开发定义DefinitionFeasibilityStudyRequirementsAnalysisProgramDesignCoding&ModuleTestingIntegration&SystemTestingDelivery&MaintenanceSystemDesign系统分析系统设计与实现7/20/202317Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§2.软件工程4、软件过程(SoftwareProcess):为了获得高质量的软件所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。过程定义了运用方法的顺序、应该交付的文档资料、为保证软件质量和协调变化所需要采取的管理措施,以及标志软件开发各个阶段任务完成的里程碑。

为获得高质量的软件产品,软件过程必须科学、有效。7/20/202318Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§2.软件工程4.1瀑布模型(WaterfallModel):瀑布模型的特点:

阶段间的顺序性、依赖性

推迟实现的观点

质量保证的观点——阶段文档与评审的要求,利于尽早发现错误。7/20/202319Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§2.软件工程传统的瀑布模型过于理想化,实际的瀑布模型具有“反馈环”。当在后面阶段发现前面阶段的错误时,需要沿图中左侧的兰色反馈线返回到前面的阶段,修正好前面阶段的产品之后再回来继续完成后面的任务。瀑布模型是由文档驱动的。几乎完全依赖于书面的规格说明,很可能导致最终开发出来的产品不能真正满足用户需求。4.1瀑布模型(WaterfallModel):7/20/202320Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§2.软件工程4.2快速原型模型(RapidPrototypingModel)快速原型模型的特点:

不带“反馈环”,软件产品开发是线性顺序进行的必须迅速地构建原型,然后根据用户意见迅速地修改原型7/20/202321Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§2.软件工程4.3增量(渐增)模型(IncrementalModel)

增量模型的特点:

把软件产品看作一系列的增量构件来设计、编码、集成和测试,而每个构件由多个相互作用的模块构成可在短时间内分批一个构件接一个构件地向用户提交完成部分工作的产品,用户有较充裕的时间学习和适应新产品7/20/202322Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§2.软件工程难点:在把每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来已经开发的产品。为此,软件体系结构必须是开放的,必须在开始实现各个构件之前就全部完成需求分析、规格说明和概要设计的工作。4.3增量(渐增)模型(IncrementalModel)

7/20/202323Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§2.软件工程基本思想:使用原型及其它方法来尽量减低风险,为此它是在每个阶段之前都增加了风险分析过程的快速原型模型。总之,螺旋模型是风险驱动的。4.4螺旋模型(SpiralModel)

7/20/202324Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering小结软件=程序+数据+文档必须充分认识到,软件开发应该是一种组织良好、管理严密、各类人员协同工作、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且不断探索和发展更有效的技术和方法。应该开发和使用更好的软件工具,包括可能的软件工程支撑环境。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济高效地开发出高质量的软件并有效地维护它。——软件工程7/20/202325Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering软件危机、症结以及解决对策软件生命周期软件工程方法学的三要素:方法、工具、过程典型软件工程过程:瀑布模型、快速原型模型、增量模型和螺旋模型小结7/20/202326Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering小结模型名称优点缺点瀑布模型文档驱动模型:要求开发人员采取规范的方法(如:SD);严格文档要求;阶段审查和复审静态的文档需求难以难以让用户认识动态的软件产品,可能有些需求不切合实际,需要一次性提交满足所有需求的产品快速原型模型软件开发过程基本是线性顺序;4GL可供选用需要一次性提交满足所有需求的产品,需要有4GL工具增量模型能在较短时间内向用户提交完成部分工作的产品;逐步增加产品功能让用户有较充裕的时间学习和适应新产品需要精心的设计,软件结构必须是开放的螺旋模型风险驱动模型:使用原型及其它方法来尽量降低风险软件开发人员需具有丰富的风险评估经验和专门知识7/20/202327Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering第二章可行性研究(FeasibilityStudy)LifeCycle:维护开发定义DefinitionFeasibilityStudyRequirementsAnalysisProgramDesignCoding&ModuleTestingIntegration&SystemTestingDelivery&MaintenanceSystemDesign分析问题解决问题7/20/202328Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering第二章可行性研究(FeasibilityStudy)§1.任务:不是解决问题,而是确定是否可解\值得解可从下述下列几个方面考虑:

Technically(技术上)----overonehundredstudents,15weeks,machines,languages,......Operationally(操作上)----canourcustomersuseit?Economically(经济上)----budget,profit,...…Others(Law,Society)注:不要花过多精力,占总成本的510%7/20/202329Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§2.步骤Step1:复查定义,明确限制的约束。我们认为用户要的用户要的Step2:研究现有系统解决现有系统问题现有系统功能新增功能目标系统效益注:只了解老系统做什么,而不管怎样做;注意了解与其它系统的接口。现有系统效益§2.步骤7/20/202330Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§2.步骤Step3导出高层逻辑模型(conceptualdesign)…………抽象实现改进现有物理系统现有系统逻辑模型目标系统逻辑模型目标系统应该告诉用户“What”而不是“How”7/20/202331Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§2.步骤逻辑模型Step4:进一步定义问题1、复查定义注:此时合同未签,应考虑成本,不宜反复太多次。Step5:导出多种解法进度表经济上合算技术上可行操作上可行技术上不可行用户不可能操作不合算7/20/202332Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§2.步骤Step6:推荐行动方针YesorNo?NoYesWhy?Whichoneisthebest?Why?(cost/benefit)Step7:草拟开发计划(粗略)任务分解,确定负责人大致进度规划财务预算风险分析及对策Step8:书写文档提交审查7/20/202333Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§3.系统流程图(SystemFlowDiagram)基本思想:利用图形符号以黑盒子形式描述组成系统的各个部件(程序、文档、数据库、人工过程等)►反映信息在系统各部分间流动的情况,而非数据加工处理的控制过程(不同于程序流程图)1.符号:P28-P292.例子:P30变化仓库零库存量件临界值库存清单XX:————————XX:————…………库存<临界值定货报告7/20/202334Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§3.系统流程图注:符号=系统部件箭头=信息流动路径事务库存清单程序库存清单主文件定货信息报告生成程序定货报告即库存量变化Note:对于复杂的系统,一般需分层次地描绘该系统!7/20/202335Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§4.数据流图(DataFlowDiagram)基本思想:利用图形化技术描绘信息流和数据从输入移动到输出的过程中所经受的变换。基本要点:描绘“做什么”1、符号:P.31inputDatastoragefunctionDataflowoutput注意:数据处理框可以代表一系列程序、单个程序或者程序的一个模块,甚至是一个人工处理过程。数据存储可以表示一个文件、文件的一部分、数据库的元素或记录的一部分等。静态动态VISIO7/20/202336Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§4.数据流图注:①与程序流程图不同,DFD不描述流动条件,忽略出错处理;②命名尽可能清楚、具体。2、例子:7/20/202337Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineeringDFD通常武略出错处理,也不包括诸如打开文件或关闭文件之类的内务处理。数据流图分层细化原则:数据处理功能单一且不涉及到具体的实现细节。保持信息连续性。数据流图各要素的命名规则:名字必须反映该元素的全部内容或功能;不要使用空洞、缺乏具体含义的名字;如命名产生困难,也许是数据流图分解不当。数据流图的用途信息交流的工具系统分析和设计的工具TIPs7/20/202338Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§5.数据字典(DataDictionary)与DFD结合,构成系统的规格说明(specifications)1、符号:P.372、例子:P.37名字:定货报表别名:定货信息描述:每天一次送检采购员的需要定货的零件表定义:定货报表=零件编号+零件名称

+定货数量+目前价格

+主要供应者

+次要供应者位置:输出到打印机}数据结构struct

定货报表{char零件编号[8];char零件名称[20];

int

定货数量;float目前价格;

structsupplier主要供应者;

structsupplier次要供应者;};7/20/202339Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§5.数据字典名字:零件编号别名:描述:唯一地标识库存清单中一个特定零件的关键域定义:零件编号=8{字符}8位置:定货报告定货信息库存清单若修改“零件编号”的定义,则受到影响的数据均列于此7/20/202340Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§6成本/效益分析(Cost/Benefit)1、成本估计(CostEstimation)⑴代码行技术:每行代码的平均成本源代码行数⑵任务分解技术:人力工资如:按开发阶段划分⑶自动估计成本技术-需要长期搜集的大量数据

详细讨论见第十三章。7/20/202341Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§6成本/效益分析2、效益估计(BenefitEstimation)例:假设某软件生命周期为5年。现在投资20万元,平均年利率3%。从第一年起,每年年底收入4.2万元,问该项目是否值得投资?P=20万4.2万4.2万4.2万4.2万4.2万0123457/20/202342Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§6成本/效益分析到第5年底结算时:投资额=200000(1+3%)5231855(元)收入=42000[(1+3%)4+(1+3%)3+(1+3%)2+(1+3%)+1]

222984(元)不合算!7/20/202343Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§6成本/效益分析衡量工程价值的经济指标有:⑴纯收入

=折合现价的总收入-当前投资额

=⑵投资回收期例:第6年底可收回7/20/202344Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§6成本/效益分析⑶投资回收率:设为j7/20/202345Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering可行性研究定义、基本任务和步骤系统流程图和数据流图以及数据字典数据流图和数据字典之间的关系数据流图的四要素、符号表示和画法成本/效益分析的方法小结7/20/202346Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering习题2作业4患者监护系统PatientMonitoringSystemPROJECT7/20/202347Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineeringLifeCycle:维护开发定义DefinitionFeasibilityStudyRequirementsAnalysisProgramDesignCoding&ModuleTestingIntegration&SystemTestingDelivery&MaintenanceSystemDesign第三章需求分析(RequirementsAnalysis)需求分析是软件开发的基础,正确、全面、精确、可行的需求分析是保证软件开发成功的关键。7/20/202348Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering用于需求分析的不同结构化分析方法应遵守的准则:必须理解并描述问题的信息域,建立数据模型(ER图);必须定义软件应该完成的功能,建立功能模型(DFD);必须描述作为外部事件结果的软件行为,建立行为模型(状态图);必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。7/20/202349Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§1.需求分析的任务仍然回答“What”,而不是“How”,但更细致、精确(合同的拟定)可行性分析DFDDD功能具体化需求规格说明加细DFDDD算法描述IPOFinalstageofDefinition

phase7/20/202350Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§1.需求分析的任务

1、确定对系统的综合要求功能要求(functionalrequirements):系统必须做什么?性能要求(performancerequirements):做得怎样?例:responsetime,memory,back-upmemory,security,……可靠性和可用性需求出错处理需求接口需求(与其环境通信的格式,包括:用户、硬件、软件、通信接口等)约束条件(包括:精度、工具和语言、设计、标准、硬件平台)将来可能提出的扩充要求(possibleevolution)7/20/202351Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§1.需求分析的任务2、分析系统的数据要求建立概念性的数据模型(conceptualmodel):E-RDiagram形象描绘数据结构:DataHierarchy,WarnierDiagram,IPO数据结构规范化(Normalization),保证其以一定的方式组织并存储在数据库或文件中3、导出精确的系统逻辑模型:

DFD+DD+IPO4、修正开发计划:重估成本、进度等7/20/202352Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§2.与用户沟通获取需求的方法1、访谈正式:事先准备好一些问题,包括:分发调查表等非正式:提出一些用户自己可以自由回答的开放性问题情景分析技术:对用户将来使用目标系统解决某个具体问题的方法和结果进行分析2、面向数据流自顶向下求精沿DFD回溯:DFD的输出端是系统的最终目的。向回确定每个数据元素的来源,可细化DFD及DD,并将相关算法记录在IPO图中。用户复查细化DFD反复上述步骤,最终得到对系统数据和功能要求的满意了解7/20/202353Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering不需分解有补充修正无补充修正分析追踪数据流图用户复查细化数据流图需要分解3、简易的应用规格说明技术—面向团队的需求收集法进行初步访谈,开发者和用户分别写出“产品需求”,会前分发并进行认真审查,列出对象、服务、约束和性能等;会议讨论并创建一张意见一致的列表;分组讨论并细化列表中的每项规格说明;全会交流分组意见并起草完整的软件需求规格说明书;特点:开发者和用户不分彼此,齐心协力,密切合作;即时讨论并求精;有能导出规格说明的具体步骤。7/20/202354Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§2.分析过程目标系统样机试用4、快速建立软件原型(Prototyping)最准确、最有效、最强大的需求分析技术。特点:快速、容易修改。快速构建和修改原型的方法和工具:第四代语言(4GL)可重用的软件构件形式化规格说明和原型环境7/20/202355Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§3.分析建模与规格说明1、分析建模由一组图形符号和组织这些符号的规则组成。结构化分析(SA,structureAnalysis)就是创建模型的活动----为了开发出复杂的软件系统,系统分析员应该从不同角度抽象出目标系统的特性,使用精确的表示方法构造系统的模型,验证模型是否满足用户对目标系统的需求,并在设计过程中逐渐把和实现有关的细节加进模型中,直至最终用程序实现模型。需求分析过程需建立三种模型:数据模型、功能模型和行为模型。2、软件规则说明----需求分析阶段得出的最主要文档自然语言描述、形式化语言描述两种7/20/202356Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering概念性的数据模型:描述从用户角度看到的数据,反映了用户的现实环境。实体-联系图(Entity-RelationshipDiagram,E-R图)Entities

例:,

,StudentInstructorClassAttributes

例:,NameID#Relations

例:EnrolledinTeach111NMN§4.实体-联系图可以由一组属性来定义7/20/202357Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering…………InstructorStudentEnrolledinTeachClassID#ID#NameNameSexSexTitleInstructorIDClassIDGradeStudentIDClassIDCreditID#Subject例:§4.实体-联系图7/20/202358Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§5.数据规范化范式(NormalForms):消除数据冗余的程度*Keyword:可唯一地标识一个元组的属性1-NF:所有属性都是原子值,即不出现“表中有表”2-NF:在1-NF基础上,每个non-key-word都由整个keyword决定(而非依赖于keyword的一部分)。例:“Major”实际上由“ID”的第6、7位决定,可省去。3-NF:在2-NF基础上,non-key-word之间无从属关系。范式级别越高,存储同样数据就需要分解成更多张表。一般选用3-NF即可。7/20/202359Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§6.状态转换图

状态转换图(状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外,状态图还指明了作为特定事件的结果系统将做哪些动作。1、状态----任何系统可以观察到的系统行为模式状态规定了系统对事件的响应方式----动作或改变状态或者两者均有。初态(1个,实心圆)、终态(0或者多个,一对同心圆)、中间状态(圆角矩形)2、事件----是在某个特定时刻发生的事情事件是引起系统做动作或(和)转换状态的控制信息。3、符号7/20/202360Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering闲置拨号通话断线拨号音Do/响拨号音超时Do/响蜂鸣音存储的信息Do/播放信息接通中Do/试接通振铃Do/振铃忙音Do/响忙音拿起听筒数字数字有效号码已接通受话人回话受话人挂断电话挂断电话超时挂断电话超时无效号码信息播完占线例:电话系统的状态图§6.状态转换图7/20/202361Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§7.其它图形工具1、层次方框图(Hierarchy)——描绘数据的结构例:ARoomhierarchybasedonaninteriordesigner’sperspective.RoomRoomwithlightsRoomwithwindowsGarageBasementKitchenBathroomRoomwithFurnitureLivingRoomFamilyRoomBedRoomDiningRoom例:P58

3.57/20/202362Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering2、WarnierDiagram:{:层次(n1,n2):重复n1到n2次:二者择一例:头条新闻地区队头版国内新闻体育新闻职业队本地新闻拳击社论(1,1)经营简讯专栏(1,3)报纸社论读者来信(1,3)副刊商业新闻雇员简讯讽刺漫画(0,1)一般新闻体育新闻招生副刊商业新闻广告招聘广告求助细化例:P59图3.6§7.其它图形工具7/20/202363Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§4.图形工具3、IPO图(Input/Process/Output):简要的算法描述1.校验主记录2.校验事务记录3.更新主记录旧的主文件事务文件有效的主记录有效的事务记录更新后的主文件输出O处理P输入I例:P59图3.8改进的IPO图的形式7/20/202364Chapter1:IntroductiontoMultimediatechnologyIntroductiontoSoftwareEngineering§8.验证软件要求(RequirementsValidation)

正确性:Arethereq

温馨提示

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

评论

0/150

提交评论