软件工程导论复习1.ppt_第1页
软件工程导论复习1.ppt_第2页
软件工程导论复习1.ppt_第3页
软件工程导论复习1.ppt_第4页
软件工程导论复习1.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

一、总体设计基本任务(过程)1、软件结构设计=模块设计+接口设计(5)软件结构设计是以模块为基础,以需求分析的结果为依据,从实现的角度进一步划分模块,并组成模块的层次结构(接口)。(1)采用某种方法,将一个复杂的系统按功能划分成模块;(2)确定每个模块的功能;(3)确定模块之间的调用关系;(4)确定模块之间的接口(传递的信息);(5)评价模块结构的质量。,CH5总体设计,3、书写文档(8)总体设计说明书、数据库设计说明书、详细的实现计划4、评审(9)总体设计评价是对设计部分是否完整地实现了需求中规定的功能、性能等要求,设计方案的可行性,关键的处理及内外部接口定义正确性、有效性,各部分之间的一致性等都一一进行评审。,2、数据设计=数据结构设计+数据库设计设计(6)(1)根据需求分析阶段对系统数据的组成、操作约束和数据间关系的描述,确定数据结构特性。(2)一般软件系统都有数据存储,存储要借助数据库技术。数据库的设计包括:概念设计、逻辑设计和物理设计。,二、软件设计的基本原理1、抽象:是认识复杂过程中使用的思维工具,即抽象出事物的本质共同特征而暂不考虑它的细节,不考虑其它因素。2、逐步求精:是在原始说明的基础上进行详细说明,随着不断细化给出更多的细节。3、模块化:模块是可组合、分解和更换的单元,具有:接口、功能、状态、逻辑4大特征。4、信息隐藏:指设计模块时,使一个模块内包含的信息,对不需要这些的其它模块来说,是不能访问的。通过信息隐藏可以定义和实施对模块的过程细节和局部数据结构的存取权限。5、模块独立性:指完成系统要求的独立的子功能,并且与其它模块的联系最少且接口简单。衡量独立性的标准:内聚性、耦合性。,(1)模块间耦合的类型,两个模块没有直接关系,一模块调用另一模块时,被调用模块的输入、输出都是简单的数据,如两个模块通过传递数据结构,一模块通过开关量、标志、名字等控制信息,明显地控制另一模块的功能,一组模块引用同一个公用数据区,一模块直接访问另一模块的内部信息,(2)模块的内聚性类型,模块内各部分间无联系,把几种相关功能(逻辑上相似的功能)组合在一模块内,每次调用由传给模块的参数确定执行哪种功能。,功能只因时间因素关联在一起,模块内各处理成分相关,且必须以特定次序执行,模块内各部分使用相同的输入数据,或产生相同的输出结果,模块内各部分使用相同的输入数据,或产生相同的输出结果,模块仅包括为完成某个功能所必须的所有成分,三、软件结构图软件结构往往用树状和网状结构的图形来表示。结构图主要内容有:模块、模块的控制关、模块间的信息传递。具有如下形态特征:深度、宽度、扇入、扇出。,四、软件结构设计优化标准1、模块独立性标准。高内聚、低耦合2、控制与作用范围之间的标准。一个模块的作用范围应在其控制范围之内。3、结构特征标准。从形态上看,应是顶层扇出较高一些,中间层扇出较低一些,底层扇入数较高一些。4、模块接口标注。模块的接口要简单、清晰及含义明确,便于理解,易于实现、维护与测试。,五、面向数据流的设计方法DFD软件结构1、变换型数据流图:由输入、变换、输出三部分组成。形成顺序结构。2、事务型数据流图:若某个加工将它的数据流分离成许多发散的数据流,并根据输入的值选择其中一个路径来执行,这个加工称为“事务处理中心”。,六、填空题1、在软件的体系结构中,模块是可组合、分解和更换的单元。模块具有、和等属性。,接口、功能、逻辑、状态,2、总体设计的文档主要有:和。,总体设计说明书、数据库设计说明书,3、数据库设计指的设计,主要进行一下几方面的设计、。,数据存储设计,概念设计、逻辑设计、物理设计,4、软件设计的基本任务包括:、和4个方面,设计软件结构、数据结构和数据库设计、编写设计文档、评审,5、抽象是认识复杂现象过程中使用的思维工具,即抽出事物的、的特性而暂不考虑它的,不考虑其它因素。,本质、共同、细节,6、软件结构设计是以为基础,以需求分析的结果为依据,从实现的角度进一步划分,并组成模块的。,模块,模块,层次结构,7、软件设计是一个把转换为软件表示的过程,包括总体设计和。,需求分析,8、进入了设计阶段,要把软件“做什么”的模型变换为“怎么做”的模型,即着手实现软件需求,并将设计的结果反映在文档中。,详细设计,9、总体设计评价是对设计部分是否完整地实现了需求中规定的、等要求,设计方案的,关键的处理及内外部接口定义有效性,各部分之间的等都一一进行评审。,逻辑,设计,10、在一个模块中,、和反映模块外部特征,反映它的内部特性。,功能、性能,11、是指在设计和确定模块时,使得一个模块的内包含的信息对于不需要遮羞信息的其它模块来说是不能的。,可行性,12、设计软件结构,具体为:(1)采用某种方法将一个复杂系统按功能划分为(2)确定每个模块的(3)确定模块之间的(4)确定模块之间的,即模块之间传递的信息。(5)评价模块结构的质量。,正确性,一致性,功能、状态、接口,物理,逻辑,信息隐藏,访问,模块,功能,调用关系,接口,13、模块间耦合高低取决与模块间、及。,接口的复杂性、调用方式、传递信息,14、耦合性分种类型,最强耦合,最弱耦合。,15、模块独立性中每个模块只完成问题要求的子功能,并且与其它模块的联系。,6、内容耦合、无直接耦合,16、内聚性分种类型,最强内聚,最弱内聚。,独立的、最少且接口简单,17、耦合性指软件结构中相互联系紧密程度的一种度量。模块之间联系越,其耦合性就越强,模块的则越差。,18、是指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的。,7、偶然内聚、功能内聚,各模块间、紧密、独立性,数据耦合、值传递,19、指两个模块之间传递的是数据结构,如高级语言中的数据名、记录名、文件名等,其实传递的是。,标记耦合、这个数据结构的地址,20、功能内聚是内聚程度最的内聚,指模块内所有元素共同完成,缺一不可。功能内聚的模块与其它模块的耦合是的。,21、结构图主要内容有、。,强、一个功能、弱,22、变换型DFD由、和三部分组成。,模块、模块的控制关系、模块的信息传递,23、软件结构从形态上总的考虑是:顶层扇出数较一些,中间层扇出数较一些,底层数较高一些。,24、软件结构设计是以为基础,在需求分析阶段,已经把系统分解成层次结构。设计阶段以需求分析的结果为根据,从实现的角度进一步划分为模块,并组成模块的层次结构。,输入、变换、输出,扇入,模块,高,低,选择题,1、软件设计一般分为总体设计和详细设计,它们之间的关系是()。A.全局和局部B.抽象和具体C.总体和层次D.功能和结构,A,2、软件结构使用的图形工具,一般采用()图。A.DFDB.PADC.SCD.E-R,C,3、下列中属于软件设计的基本原理的是()。A.数据流分析B.变换流分析C.事务流分析D.模块化,4、将几个逻辑上相似的成分放在一个模块中,该模块属于()内聚。A.逻辑B.时间C.功能D.通信,5、模块内的某成分的输出是另一成分的输入,该模块属于()内聚。A.功能B.顺序C.逻辑D.时间,D,A,B,6、结构图中不是主要成分的是()。A.模块B.模块间传递数据C.模块内部数据D.模块的控制关系,C,7、模块中的所有成分结合起来完成一项任务,该模块属于()内聚,它具有简明的外部界面,由它构成的软件易于理解、测试和维护。A.偶然B.顺序C.通信D.功能,D,8、软件设计中模块间的耦合性尽可能()。A.强B.弱C.较强D.适中,B,9、一个模块把一个数值量作为参数传递给另一模块。这两个模块之间的耦合是()。A.逻辑耦合B.数据耦合C.控制耦合D.内容耦合,10、一个模块把开关量作为参数传递给另一模块。这两个模块之间的耦合是()。A.外部耦合B.数据耦合C.控制耦合D.内容耦合,11、在面向数据流的软件设计方法中,一般将信息流分为()。A.变换流和数据流B.变换流和控制流C.事务流和控制流D.数据流和控制流,B,C,D,12、()着重反映的是模块间的隶属关系,即模块间的调用关系和层次关系。A.程序流程图B.数据流图C.E-R图D.结构图,D,13、首先将系统中的关键部分设计出来,再让系统的其余部分的设计去适应它们,这称为()。A.模块化B.逐步求精C.抽象D.信息隐藏,C,14、模块(),则说明模块的独立性越强。A.耦合越强B.扇入数越多C.耦合越弱D.扇出数越多,15、为了提高模块(),当修改和维护模块时减少把一个模块的错误扩散到其它模块中去的机会。A.耦合性B.独立性C.内聚性D.共享性,30、()把已确定的软件需求转换成特定形式的设计表示,使其得以实现。A.系统设计B.详细设计C.逻辑设计D.总体设计,C,B,D,作业,一、填空题:25-50二、选择题:7-12、16-17、19、21、26、31-33,CH3需求分析,一、需求分析概念需求分析是发现、求精、建模、规格说明和复审的过程,回答“做什么”的问题。为最终用户所看到的系统建立一个软件的逻辑模型(将用户非形式的需求陈述转化为完整的需求定义)。,二、需求分析的基本原则(1)可以把一个复杂问题按功能进行分解并可逐层细化;(2)必须能够表达和理解问题的数据域和功能域;(3)建立软件的逻辑模型;,三、需求分析四项主要任务(1)确定对系统的综合要求(2)分析系统的数据要求(3)导出软件的逻辑模型(4)编写文档,五、分析(逻辑)模型数据模型(E-R图,层次方框图,Warnier图);功能模型(数据流图,数据字典);行为模型(状态转换图,IPO);,四、需求获取方法(1)访谈(用户被动)(2)面向数据流自顶向下求精(用户被动)(3)简易的应用规格说明技术(用户主动)(4)快速建立软件原型(用户与开发者不区分),六、从哪些方面验证软件需求的正确性一致性:测试;形式化工具;完整性:原型系统;现实性:参照以往开发经验,仿真模拟;有效性:原型系统;,七、选择题1、需求分析的基本任务是要准确地定义,为了满足用户需求,回答系统必须的问题。,扇新系统的目标,做什么,2、在需求分析阶段,首先进行问题识别,即双方确定对问题的综合需求,这些需求包括:需求、需求、需求、需求。另外还有可靠性、安全性、保密性、可移植性、可维护性等方面的需求。,功能、性能、环境、用户界面,3、需求分析的困难主要体现在4个方面:问题的复杂性、需求易变性。,交流障碍、不完备性和不一致性,4、在需求分析阶段进行以下几个方面的工作:识别系统综合要求、导出软件逻辑模型、。,分析系统的数据要求、编写文档,八、填空题1、需求分析()。A.要回答“软件必须做什么?”B.可概括为:“理解、分解、表达”6个字C.要求编写需求规格说明书D.以上都对,2、需求分析阶段研究的对象是软件项目的()。A.用户要求B.合理要求C.系统要求D.环境要求,3、软件需求分析阶段的工作,可以分成4个方面:确定系统综合要求、分析系统的数据要求、导出逻辑模型以及()。A.进度规划B.测试计划C.需求分析评审D.编写文档,4、需求规格说明书的作用不应包括()。A.软件设计的依据B.用户与开发人员对软件要做什么的共同理解C.软件验收的依据D.软件可行性行研究的依据,D,A,D,D,CH2可行性研究,一、可行性研究概念可行性研究是用最小的代价在尽可能短的时间内确定项目是否能够开发?是否值得去开发。,二、可行性研究的任务任务(1)技术可行性(2)经济可行性(3)操作可行性(4)社会可行性,三、可行性研究步骤步骤,问题定义,技术、经济、操作、社会可行性研究,研究结果,四、成本-效益分析1、系统成本=开发成本+维护成本2、系统效益=经济效益+社会效益3、成本估计技术(主要表现为人力消耗)(1)代码行技术(2)任务分解技术(类似代码行技术,只是划分的单位不同)(3)自动估计成本技术(前提是有大量的历史数据库),五、数据流图DFD1、图中没有任何具体物理元素,只是描绘信息在系统中流动和处理的情况。非专业人员容易理解是通信的极好工具。2、由数据流、处理、数据存储、实体(数据源点/终点)组成。3、数据流:是数据在系统内传播的路径,由一组成分固定的数据项组成,用名称标注(与数据存储传播除外)。4、为了表示复杂问题的数据处理过程,用一组分层的数据流图反映它。5、数据字典(DD)是关于数据信息的集合,是对DFD中包含的所有的定义数据项以一种准确、无二义的描述方式,DD+DFD共同组成了软件的逻辑模型。6、数据项是数据流和数据存储的最小单位。,六、选择题1、的目的就是用最小代价在尽可能短的时间内确定该软件项目是否能够开发、是否值得开发。,2、可行性研究的目的不是是开发一个软件项目,而是研究这个项目是否。,3、可行性研究需要从可行性、可行性、可行性和可行性四个方面分析研究每种解决方案的可行性。,经济、技术、操作、社会,4、技术可行性是对开发项目的、进行分析,确定现有资源条件下,技术风险有多大,项目是否能实现。,功能、性能、限制条件,2可行性研究,是否做值得,5、经济可行性一般要考虑的情况包括:和。,成本、效益,6、社会可行性所涉及的范围包括、用户组织的管理模式、范围以及其他一些技术人员常常不了解的陷阱。,合同、责任、侵权,7、典型的可行性研究有以下步骤:确定项目的规模和目标、导出和评价各种方案、推荐可行的方案和编写可行性研究报告。,8、系统效益=经济效益+。,9、效益分有型效益和两种。,无形,10、可行性研究的第一个步骤是。,社会效益,建立新系统的高层逻辑模型,11、数据字典就是用来定义数据流图中的的。它和数据流图共同构成了系统的,是的主要组成部分。,确定项目的规模和目标,12、由于数据流是流动中的数据,所以必须有。除了与之间的数据流命名外,数据流应该采用名词或名词短语。,各个成分的具体含义、逻辑模型、需求说明书,研究正在运行的系统,流向、数据存储,七、填空题1、研究开发资源有效性是进行()可行性研究的一个方面A.技术B.经济C.社会D.操作,2、在软件可行性研究中、可以从不同的角度对软件进行研究,其中从软件的功能可行性角度考虑的是()可行性A.经济B.技术C.操作D.社会,3、在遵循软件工程原则开发软件过程中,计划阶段应该依次完成()A.可行性研究、需求分析、问题定义B.问题定义、可行性研究、需求分析C.需求分析、问题定义、可行性研究D.可行性研究、问题定义、需求分析,4、可行性研究要进行的需求分析和设计应是()。A.详细的B.全面的C.简化的D.彻底的,D,B,B,C,CH1软件工程概念一、基本概念1、软件工程“软件工程”的概念是为了有效的控制软件危机的发生而被提出来的,它的中心目标就是把软件作为一种物理的工业产品来开发,要求“采用工程化的原理与方法对软件进行计划、开发和维护”。2、软件生命周期按照在软件生命周期全过程中应完成的任务的性质,在概念上可以把软件生命周期划分成问题定义、可行性研究、需求分析、概要设计、详细设计、编码和单元测试、综合测试以及维护等八个阶段。,3、软件过程软件过程是为了获得高质量软件产品所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件过程必须科学、合理,才能开发出高质量的软件产品。4、软件危机软件的可靠性没有保障、维护费用不断上升、进度无法预测、成本增长无法控制、程序员无限度增加等,形成软件开发局面失控的状态。,二、软件的特征抽象性。模糊性。不磨损、不老化。依赖性。高成本。多因性。可复制性。,是一种逻辑实体,而不是物理实体,受计算机系统的限制,这导致了软件移植的问题,软件开发不纯粹是技术,是门艺术,还涉及法律、伦理、心理学等社会因素,没有明显的制作过程,由软件维护复杂性决定,大部分是定制的,而不是装配的,与开发成本相比,复制成本很低。,对软件开发成本和进度的估计常常很不准确用户对“已完成的”软件系统不满意的现象经常发生软件产品的质量往往靠不住软件常常是不可维护的软件通常没有适当的文档资料软件成本在计算机系统总成本中所占的比例逐年上升,软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势,三、软件危机主要表现,软件工程的基本原理,四、软件工程7条基本特性,(1)软件工程关注大型程序的构造(2)软件工程的中心课题是控制复杂性(3)软件经常变化(4)开发软件的效率非常重要(5)和谐的合作是开发软件的关键(6)软件必须有效地支持它的用户(7)

温馨提示

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

评论

0/150

提交评论