版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
概念:第一章:1.生命周期:软件经历的从定义、开发、使用和维护,直到最终被废弃这个漫长的时期称为生命周期。※2.问题定义:确定计划开发的系统要求解决的问题是什么。※3.可行性研究:决定该问题是否存在一个可行的解决办法。4.需求分析:深入具体地了解用户的要求,在所要开发的系统必须做什么和用户取得完全一致的看法。5.软件:是程序、数据及相关文档的完整集合。IEEE:计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必需的数据。软件工程:软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。IEEE定义:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。管理:通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。方法学:把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(methodology),也称为范型(paradigm)。9.软件工程方法学三要素:方法、工具和过程。其中,方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。10.传统方法学:传统方法学也称为生命周期方法学或结构化范型。它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。这种方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。※11.面向对象方法学特点:把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件。用对象分解取代了传统方法的功能分解。⑵把所有对象都划分成类(class)。每个类都定义了一组数据和一组操作,类是对具有相同数据和相同操作的一组相似对象的定义。数据用于表示对象的静态属性,是对象的状态信息,而施加于数据之上的操作用于实现对象的动态行为。按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。在类等级中,下层派生类自动拥有上层基类中定义的数据和操作,这种现象称为继承。对象彼此间仅能通过发送消息互相联系。对象与传统数据有本质区别,它不是被动地等待外界对它施加操作,相反,它是数据处理的主体,必须向它发消息请求它执行它的某个操作以处理它的数据,而不能从外界直接对它的数据进行处理。对象的所有私有信息都被封装在该对象内,不能从外界直接访问,这就是通常所说的封装性。12•软件工程的7条基本原理:①用分阶段的生命周期计划严格管理,②坚持进行阶段评审,③实行严格的产品控制,④采用现代程序设计技术,⑤结果应能清楚地审査,⑥开发小组的人员应该少而精,⑦承认不断改进软件工程实践的必要性。13.软件工程传统方法学是:采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。14.软件生命周期包括:软件定义(即系统分析),软件开发(系统设计,系统实现)和软件维护。系统分析由问题定义、可行性研究和需求分析三个阶段组成。总体设计:应该设计出实现目标系统的几种可能的方案。通常至少应该设计出低成本、中等成本和高成本等3种方案。详细设计:应该怎样具体地实现这个系统,设计出程序的详细规格说明。编码和单元测试:写出正确的容易理解、容易维护的程序模块综合测试:集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配过程中对程序进行必要的测试。软件维护:改正性维护、适应性维护、完善性维护、预防性维护。※15.瀑布模型:传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。阶段间具有顺序性和依赖性,尽可能推迟实现的观点,质量保证的观点※16.快速原型模型:快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。※17.增量模型:使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。※18.螺旋模型:使用原型及其他方法来尽量降低风险。理解这种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型第二章:19.可行性研究的目的不是解决问题,而是确定问题是否值得去解决。20.可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。21.可行性研究过程:1)复查系统规模和目标,2)研究目前正在使用的系统3)导出新系统的高层逻辑模型,4)进一步定义问题,5.)导出和评价供选择的解法,6)推荐行动方针,7)草拟开发计划,8)书写文档提交审查※22.数据流图的四种基本符号:正方形(或立方体)表示数据的源点或终点;圆角矩形(或圆形)代表变换数据的处理;开口矩形(或两条平行横线)代表数据存储;箭头表示数据流,即特定数据的流动方向。在数据流图中应该描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件。23.数据字典:是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。※24.数据字典由对下列4类元素的定义组成:(1)数据流(2)数据流分量(即数据元素)(3)数据存储(4)处理※24.数据字典记录数据元素:①一般信息(名字,别名,描述等等),②定义(数据类型,长度,结构等等),③使用特点(值的范围,④使用频率,⑤使用方式一输入、输出、本地,条件值等等),⑥控制信息(来源,用户,使用它的程序,改变权,使用权等等)⑦分组信息(父结构,从属结构,物理位置一记录、文件和数据库等等)。25.由数据元素组成数据的方式有三种基本类型:顺序即以确定次序连接两个或多个分量;选择即从两个或多个可能的元素中选取一个;重复即把指定的分量重复零次或多次。可选即一个分量是可有可无的(重复零次或一次)26.软件开发成本使用代码行技术、任务分解技术、自动估计成本技术。27.运行费用取决于系统的操作费用(操作员人数,工作时间,消耗的物资等等)和维护费用。28.系统的经济效益等于因使用新系统而增加的收入加上使用新系统可以节省的运行费用。29.货币的时间价值:通常用利率的形式表示货币的时间价值。假设年利率为i,如果现在存入P元,则n年后可以得到的钱数为:F=P(1+i)n30.投资回收期:是使累计的经济效益等于最初投资所需要的时间。31.纯收入:是在整个生命周期之内系统的累计经济效益(折合成现在值)与投资之差。第三章32.系统分析的准则:必须理解并描述问题的信息域,根据这条准则应该建立数据模型。必须定义软件应完成的功能,这条准则要求建立功能模型。必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。33.确定对系统的综合要求功能需求:指定系统必须提供的服务。通过需求分析应该划分出系统必须完成的所有功能。性能需求:指定系统必须满足的定时约束或容量约束,通常包括速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等方面的需求。可靠性和可用性需求:可靠性需求定量地指定系统的可靠性。可用性与可靠性密切相关,它量化了用户可以使用系统的程度。4)出错处理需求:说明系统对环境错误应该怎样响应。5)接口需求:接口需求描述应用系统与它的环境通信的格式。常见的接口需求有:用户接口需求;硬件接口需求;软件接口需求;通信接口需求。6)约束:设计约束或实现约束描述在设计或实现应用系统时应遵守的限制条件。7) 逆向需求:逆向需求说明软件系统不应该做什么。8)将来可能提出的要求:应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。34.数据对象可以是外部实体(例如,产生或使用信息的任何事物)、事物(例如,报表)、行为(例如,打电话)、事件(例如,响警报)、角色(例如,教师、学生)、单位(例如,会计科)、地点(例如,仓库)或结构(例如,文件)等。总之,可以由一组属性来定义的实体都可以被认为是数据对象。35.联系:数据对象彼此之间相互连接的方式称为联系,也称为关系。联系可分为以下3种类型:⑴一对一联系(1:1)⑵一对多联系(1:N)⑶多对多联系(M:N)ER图中包含了实体(即数据对象)、关系和属性3种基本成分,通常用矩形框代表实体,用连接相关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,并用直线把实体(或关系)与其属性连接起来。第一、第二和第三范式的定义:(1) 第一范式每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构。(2) 第二范式满足第一范式条件,而且每个非关键字属性都由整个关键字决定(而不是由关键字的一部分来决定)。(3) 第三范式符合第二范式的条件,每个非关键字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述(即一个非关键字属性值不依赖于另一个非关键字属性值)。第五章典型的总体设计过程包括下述9个步骤:1) 设想供选择的方案2) 选取合理的方案3) 推荐最佳方案4) 功能分解5) 设计软件结构6) 设计数据库7) 制定测试计划8) 书写文档9) 审查和复审39.模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。40.抽象就是抽出事物的本质特性而暂时不考虑它们的细节。41.逐步求精:通过逐步分解对功能的宏观陈述而开发出层次结构,直至最终得出用程序设计语言表达的程序。42.信息隐藏原理指出:应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。43.所谓局部化是指把一些关系密切的软件元素物理地放得彼此靠近。44.模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合。45.耦合是对一个软件结构内不同模块之间互连程度的度量。46.数据耦合:如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据控制耦合:如果传递的信息中有控制信息特征耦合:当把整个数据结构作为参数传递而被调用的模块只需要使用其中一部分数据元素.公共环境耦合:当两个或多个模块通过一个公共数据环境相互作用时内容耦合:一个模块访问另一个模块的内部数据;一个模块不通过正常入口而转到另一个模块的内部;两个模块有一部分程序代码重叠(只可能出现在汇编程序中);一个模块有多个入口(这意味着一个模块有几种功能)。尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。47.内聚:标志一个模块内各个元素彼此结合的紧密程度48.偶然内聚:如果一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散的,逻辑内聚:如果一个模块完成的任务在逻辑上属于相同或相似的一类,时间内聚:如果一个模块包含的任务必须在同一段时间内执行过程内聚:如果一个模块内的处理元素是相关的,而且必须以特定次序执行通信内聚:如果模块中所有元素都使用同一个输入数据和(或)产生同一个输出数据顺序内聚:如果一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行功能内聚:如果模块内所有处理元素属于一个整体,完成一个单一的功能第六章49.结构化程序:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。经典结构程序设计:如果只允许使用顺序、IF-THEN-ELSE型分支和DO-WHILE型循环这3种基本控制结构,则称为经典的结构程序设计;扩展的结构程序设计:如果除了3种基本控制结构之外,还允许使用DO-CASE型多分支结构和DO-UNTIL型循环结构,则称为扩展的结构程序设计;修正的结构程序设计:如果再加上允许使用LEAVE(或BREAK)结构,则称为修正的结构程序设计。50•人机界面设计应考虑的问题:①系统响应时间②用户帮助设施③出错信息处理④命令交互。51.用户界面设计过程:是一个迭代的过程。通常先创建设计模型,再用原型实现这个设计模型,并由用户试用和评估,然后根据用户意见进行修改。52.各种用于界面设计和原型开发的软件工具为简化窗口、菜单、设备交互、出错信息、命令及交互环境的许多其他元素的创建,提供了各种例程或对象。既可以用基于语言的方式也可以用基于图形的方式来实现。53.人机界面设计一般交互指南(1)保持一致性;(2)应向用户提供视觉的和听觉的反馈;(3)在执行有较大破坏性的动作之前要求用户确认;(4)允许取消绝大多数操作;减少在两次操作之间必须记忆的信息量;(6)提高对话、移动和思考的效率;(7)允许犯错误;(8)按功能对动作分类;(9)提供对用户工作内容敏感的帮助设施;(10)用简单动词或动词短语作为命令名。54.人机界面设计信息显示指南(1)只显示与当前工作内容有关的信息;(2)不要用数据淹没用户;(3)使用一致的标记、标准的缩写和可预知的颜色;(4)允许用户保持可视化的语境;(5)产生有意义的出错信息;(6)使用大小写、缩进和文本分组以帮助理解;(7)使用窗口分隔不同类型的信息;(8)使用“模拟”显示方式表示信息,以使信息更容易被用户提取;(9)高效率地使用显示屏。55•盒图(N-S图)的特点(1)功能域(即,一个特定控制结构的作用域)明确;(2)不可能任意转移控制;(3)很容易确定局部和全程数据的作用域;(4)很容易表现嵌套关系,也可以表示模块的层次结构。56・PAD是问题分析图(problemanalysisdiagram)用二维树形结构的图来表示程序的控制流,主要优点(1)使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序;(2)PAD图所描绘的程序结构十分清晰;(3)用PAD图表现程序逻辑,易读、易懂、易记;(4)容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成;(5)即可用于表示程序逻辑,也可用于描绘数据结构;(6)PAD图的符号支持自顶向下、逐步求精方法的使用57・判定表一张判定表由4部分组成,左上部列出所有条件,左下部是所有可能做的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。判定表右半部的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。
58.59606162636465666768697071.判定树是判定表的变种,它能清晰地表示复杂的条件组合与应做的动作之间的对应关系。判定树的优点在于,它的形式简单到不需任何说明,一眼就可以看出其含义,因此易于掌握和使用。过程设计语言(PDL)也称为伪码,具有严格的关键字外部语法,用于定义控制结构和数据结构;另一方面,PDL表示实际操作和条件的内部语法通常又是灵活自由的,可以适应各种工程项目的需要。PDL的优点:(1)可以作为注释直接插在源程序中间;(2)可以使用普通的正文编辑程序或文字处理系统;(3)已经有自动处理程序存在,可以自动由PDL生成程序代码。McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。流图:实质上是“退化了的”程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。在流图中用圆表示结点,一个圆代表一条或多条语句。程序流程图中的一个顺序的处理框序列和一个菱形判定框,可以映射成流图中的一个结点。流图中的箭头线称为边,它和程序流程图中的箭头线类似,代表控制流。在流图中一条边必须终止于一个结点,即使这个结点并不代表任何语句(实际上相当于一个空语句)。由边和结点围成的面积称为区域,当计算区域数时应该包括图外部未被围起来的那个区域。第七章黑盒测试:如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用。白盒测试:如果知道产品的内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。模块测试:是保证每个模块作为一个单元能正确运行,所以模块测试通常又称为单元测试。子系统测试:是把经过单元测试的模块放在一起形成一个子系统来测试。系统测试:是把经过测试的子系统装配成一个完整的系统来测试。验收测试:目的是验证系统确实能够满足用户的需要,在这个测试步骤中发现的往往是系统需求说明书中的错误。验收测试也称为确认测试.单元测试测试重点:模块接口,局部数据结构,重要的执行通路,出错处理通路和边界条件。渐增式测试方法:每次增加一个模块的方法称为渐增式测试。自顶向下集成方法:从主控制模块开始,沿着程序的控制层次向下移动,逐渐把各个模块结合起来。自底向上测试:从“原子”模块开始组装和测试。回归测试:是指重新执行已经做过的测试的某个子集,以保证上述这些变化没有带来非预期的副作用。Alpha测试:由用户在开发者的场所进行,并且在开发者对用户的“指导”
下进行测试。72.Beta测试:由软件的最终用户们在一个或多个客户场所进行,用户记录在Beta测试过程中遇到的一切问题,并且定期把这些问题报告给开发者。73.逻辑覆盖包括:语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,点覆盖,边覆盖和路径覆盖。74.控制结构测试包括:基本路径测试,条件测试和循环测试。75.黑盒测试:采用等价划分,边界值分析和错误推测技术。76.调试:就是把错误症状和原因联系起来的尚未被人深入认识的智力过程。77.软件可靠性:程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。78.软件可用性:是程序在给定的时间点,按照规格说明书的规定,成功地运行的概率。79.平均无故障时间MTTF(meantimetofailure,平均失效前时间):系统按规格说明书规定成功地运行的平均时间。80.平均维修时间MTTR(meantimetorestoration,平均恢复前时间):是修复一个故障平均需要用的时间。第九章81.面向对象方法的4个要点:客观世界是由各种对象组成的;把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法;在层次结构中,通常下层的派生类具有和上层的基类相同的特性(包括数据和方法),这种现象称为继承(inheritance);对象彼此之间仅能通过传递消息互相联系。82.面向对象方法学的优点:是按照人类习惯的思维方法建立问题域的模型;稳定性好,软件系统的结构是根据问题领域的模型建立起来的,而不是基于对系统应完成的功能的分解;可重用性好,因为对象具有很强的自含性,固有的封装性和信息隐藏机制,具有较强的独立性;较易开发大型软件产品,可以把一个大型软件产品分解成一系列本质上相互独立的小产品来处理;可维护性好:面向对象的软件稳定性比较好,比较容易修改,比较容易理解,易于测试和调试。83
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年甲乙双方关于量子通讯网络建设的施工合同
- 2024年版红木家具交易协议细则版
- 会计2023个人工作计划
- 高密度连接线路板项目商业计划书
- 2018-2024年中国广告行业市场发展现状调研及投资趋势前景分析报告
- 2022-2027年中国内窥镜行业市场运行态势及投资战略研究报告
- 车间主管个人工作计划5篇
- 买卖合同模板集合5篇
- 网络安全教育观后感
- 工作计划-文档
- 2023通信中级传输与接入(有线)实务知识点大汇总
- 半导体自动测试设备(ATE)全球市场、份额、市场规模、趋势、行业分析报告2024-2030年
- 领导干部必须坚守廉洁底线课件
- 矿山三合一报告
- pet无纺布生产工艺
- 试验样机项目总结汇报
- 2022版新课标下如何立足课程教学做好幼小衔接解读
- 广东省汕尾市2023-2024学年高一上学期期末教学质量监测化学试卷(含答案解析)
- 班主任工作规范与政策法规
- 信访业务培训班课件
- 物资清运方案及
评论
0/150
提交评论