第一篇:软件工程期末复习详细缩印版
第一章:软件工程学概述
软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题绝不仅仅是不能正常运行的软件才具有,实际上,几乎所有软件都不同程度地存在这些问题。软件危机包含下属两方面的问题;如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机的典型表现:
1、对软件开发成本和进度的估计常常很不准确。
2、用户对“已完成的”软件系统不满意的现象经常发生。
3、软件产品的质量往往靠不住。
4、软件常常是不可维护的。
5、软件通常没有适当的文档资料。
6、软件成本在计算机系统总成本所占的比例逐年上升。
7、软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。产生软件危机的原因:1)软件本身特点造成;2)软件开发与维护的方法不正确。主要表现:(a)忽视软件需求分析;(b)认为软件开发就是写程序并使之运行;(c)轻视软件维护;
消除软件危机的途径:1)推广使用在实践中总结出来的开发软件的成功技术和方法,并研究探索更有效的技术和方法;2)开发和使用更好的软件工具;3)良好的组织管理措施。软件工程:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
软件工程本质特性:
1、软件工程关注于大型程序的构造。
2、软件工程的中心课题是控制复杂性。
3、软件经常变化。
4、开发软件的效率非常重要。
5、和谐地合作市开发软件的关键。
6、软件必须有效地支持它的用户。
7、在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造据的层次结构。3.8 Warnier图也用树形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段。用Warnier图可以表明信息的逻辑组织,也就是说,它可以指出一类信息或一个信息元素是重复出现的,也可以表示特定信息在某一类信息中是有条件地出现的。
3.7 IPO图1.IPO图:IPO图是输入、处理、输出图的简称,它能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。在需求分析阶段可以使用IPO图简略的描述系统的主要算法(即数据流图中各个处理的基本算法)。2.改进IPO图:3.IPO图基本形式:在左边的框中列出有关的数据,中间列出主要的处理,右边列出结果。第5章 总体设计
1、总体设计任务:总体设计的基本目的就是回答“概括地说,系统应该如何实现?”总体设计又称为概要设计或初步设计。划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等等。每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。
2、总体设计基本原理:
1、模块化
2、抽象
3、逐步求精
4、信息隐蔽和局部化
5、模块独立
2、模块是又称构件,是能够单独命名并独立地完成一定功能的程序语句的集合。模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
3、模块独立程度可以有两个定性标准度量:内聚和耦合。
4、耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的店,以及通过接口的数据。数据耦合: 两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,数据耦合是最低程度的耦合。控制耦合:传递的信息中有控制信息,3单元测试的方法一般采用白盒法。单元测试需要从程序的内部结构出发设计测试用例,以路径覆盖为最佳准则,且系统内多个模块可以并行地进行测试。模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些辅助模块去模拟与被测模块相联系的其它模块。单元测试的内容:模块接口、局部数据结构、重要的执行路径、错误处理、边界测试
4集成测试。在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。
集成测试常用方法:非渐增式测试和渐增式测试。
自顶向下集成优缺点:优点:
1、尽早测试主要的控制、关键的抉择(上层)
2、尽早实现软件的完整功能并验证(深度优先)
3、无需driver缺点:
1、需编写stub2、底层关键模块测试晚
3、软件结构中没有重要的数据自下往上流
4、并行测试困难
自底向上集成优缺点:优点:
1、无需stub2、可尽早并行测试
3、可尽早发现底层关键模块的错误
4、易建立测试条件,易判定测试结果 缺点:
1、需编写driver2、接口出错发现较迟
3、系统轮廓形成较晚
回归测试:是指重新执行已经做过的测试的某个子集,以保证上述这些变化没有带来非预期的副作用。
5、确认测试又称验收测试,它的目标是验证软件的有效性。确认测试阶段有两项工作:有效性测试测试、软件配置审查。
6、Alpha测试由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试。Alpha测试是在受控的环境中进行的。
7、Beta测试是软件在开发者不能控制的环境中的“真实”应也就是说,类是对具有相同属性和行为的一个或多个对象的描述,通常在这种描述中也包括对怎样创建该类的新对象的说明。类是支持继承的抽象数据类型,而对象就是类的实例。类有私有变量和公有变量。缺省时,都属于私有的,只能由类内部其他成员来访问,不能由程序的其他部分来访问。这是一种实现封装的方法。实例:就是由某个特定的类所描述的一个具体的对象。消息:就是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。消息既可以是数据流,也可以是控制流。一条消息可以发送给不同的对象,对消息的解释完全由接收信息的对象来完成,不同的对象对相同形式的消息可以有不同的解释。一个消息由3部分组成:
1、接受消息的对象;
2、消息选择符;
3、零个或多个变元。方法:就是对象所能执行的操作,也就是类中所定义的服务。描述了对象执行操作的算法,响应消息的方法。在C++语言中称为成员函数。属性:就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象,在C++语言中称为数据成员。对象具有封装性的条件:
1、有一个清晰的边界;
2、有确定的接口;
3、受保护的内部实现。封装也就是信息隐藏,通过封装对外界隐藏了对象的实现细节。
继承:是子类自动地共享基类中定义的数据和方法的机制。继承,是指能够直接获得已有的性质和特征,而不必重复定义它们。
多态性:是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。在C++中,多态性是通过虚函数来实现的。
函数重载是指在同一作用域内的若干参数特征不同的函数可以使用相同的函数名字;运算符重载是指同一个运算符可以施加于不同类型的操作数上面。在C++中函数重载是通过静态联编实现的。
面向对象的3种模型:
1、对象模型 对象、类、层次和关系
2、产品。
软件工程基本原理:
1、用分阶段的生命周期计划严格管理。
2、坚持进行阶段评审。
3、实行严格的产品控制。
4、采用现代程序设计技术。
5、结果应能清楚地审查。
6、开发小组的人员应该少而精。
7、承认不断改进软件工程实践的必要性。软件工程方法学3要素:方法、工具和过程。其中,方法是完成软件工程的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件生命周期:由软件定义(A.问题定义B.可行性研究C.需求分析)、软件开发(D.总体设计E.详细设计F.编码和单元测试G.综合测试)和运行维护三个时期组成。指软件从提出到最终被淘汰的这个存在期。
软件生命周期每个阶段的基本任务:
1、问题定义。
2、可行性研究。
3、需求分析。
4、总体设计。
5、详细设计。
6、编码和单元测试。
7、综合测试。
8、软件维护。
软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件过程3要素:
1、过程定义:将过程所包含的活动及程序文档化。
2、过程学习:应将关于过程的知识传授给需要执行过程的每个人。
3、过程执行
瀑布模型特点:
1、阶段间具有顺序性和依赖性。
2、推迟实现的观点。
3、质量保证的观点。优点:采用规范的方法;严格规定每个阶段提交的文档;要求每个阶段交出的产品必须经过验证。
快速原型模型:是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。优点:不带反馈环,基本上是线性顺序进行。
快速原型模型特点:优点:处理模糊需求、用户参与、快速缺点:快速(弱功能)、资源规划和管理较为困难、对开发环境要求高适用范围:已有产品(原型)、简单而熟悉的领域、有快速原型开发工具、进行产品移植或升级
增量模型:也称为渐增模型,使用增量模型开发软件时,把软件产品作为一系列的增量构建来设计、编码、集成和测试。优点是能在较短时间内向用户提交可完成都分工作的产品,逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。增量模型特点:优点:任务或功能模块驱动,可以分阶段提交产品 缺点:条件比较苛刻
适用范围:
1、在整个项目开发过程中,需求都可能发生变化,客户接受分阶段交付
2、分析设计人员对应用领域不熟悉,难以一步到位
3、中等或高风险项目
4、用户可参与到整个软件开发过程中
5、使用面向对象语言或第四代语言
6、软件公司自己有较好的类库、构件库 第二章:可行性研究
1.可行性研究的目标是用最小的代价在尽可能短的时间内确定问题是否可解,或者确定问题是否值得去解。
2.可行性研究包括四个方面的内容:经济可行性 :进行成本∕效益分析。从经济角度判断系统开发是否“合算”。技术可行性 :进行技术风险评价。从开发者的技术实力、以往工作基础、问题的复杂性等出发,判断系统开发在时间、费用等限制条件下成功的可能性。操作可行性 :判断系统的操作方式在该用户组织内部是否可行。法律可行性 :确定系统开发可能导致的任何侵权、妨碍和责任。
3.可行性研究的任务?进一步分析和澄清问题的定义,在澄清问题的基础上,导出系统的逻辑模型;从系统逻辑模型中,选择问题的若干种主要解法,研究每一种解法的可行性,为以后的行动提出建议;如果问题没有可行的解,建议停止系统开发;如果问题有可行的解,应该推荐一个较好的解决方案,并为工程制定一个初步的计划。2.4数据流图
1.定义:数据流图(DFD)是一种图形化技术,它描绘数据在软件中流动和被处理的逻辑过程。非常容易理解,因此是分析员与用户之间极好的通信工具。2.数据流图的作用:数据流图的用途是作为分析和设计的工具, 也作为交流信息的工具。描绘系统所完成的功能而不是系统的物理实现方案。2.5数据字典:数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。由数据流、数据流分量(即数据元素)、数据存储、处理四类元素组成。1.需求分析的任务:
1.确定对系统的综合要求:(1)功能需求:这方面的需求指定系统必须提供的服务。(2)性能需求:如:相应时间(速度)、主存容量、磁盘容量、安全性、等。(3)可靠性和可用性需求可靠性需求定量的指定系统的可靠性。(4)出错处理需求:系统发现错误时采取的行动,主要在系统关键部分设置。(5)接口需求:用户接口、硬件接口、软件接口、通信接口、等。(6)约束:精度、工具和语言、设计约束、硬件约束、标准,等。(7)逆向需求:说明软件系统不应该做什么。(8)将来可能提出的要求 :应该明确地列出虽然不属于当前系统开发的范畴,但是根据分析将来可能会提出来的要求。2.分析系统的数据要求:通过建立数据模型来分析,如数据字典、层次方框图、Warnier图,并将数据结构规范化。3.导出系统的逻辑模型:包括完善的数据流图、实体-联系图、状态转换图、数据字典、主要的处理算法(IPO图)等。4.修正系统开发计划:修订前期制定的开发进度计划、等。3.3 需求分析的分析建模(1)数据模型:ERD(实体联系图)(2)功能模型:DFD(数据流图)(3)行为模型:STD(状态转换图)
3.6状态转换图1.状态:状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。2.事件:事件是某个特定时刻发生的事情,它是引起系统做动作或状态转换的控制信息。3.符号:在状态图中,初态用实心圆表示,终态用一对同心圆表示,中间状态用矩形。
3.7层次方框图用树形结构的一系列多层次的矩形框描绘数控制耦合是中等程度的耦合。公用耦合:两个或多个模块通过一个公共区相互作用时的耦合。公共区可以是:全程数据区、共享通信区、内存公共覆盖区、任何介质上的文件、物理设备等。
5、最高程度的耦合式内容耦合,如果出现下列情况就是内容耦合:一个模块访问另一个模块的内部数据、一个模块不通过正常入口而转到另一个模块的内部、两个模块有一部分程序代码重叠、一个模块有多个入口。
6、当两个或多个模块通过一个公共数据环境相互作用时,他们之间的耦合称为公共环境耦合。
7、耦合是影响软件复杂程度的一个重要因素。应该采取下述设计原则:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。
8、内聚:一个模块内部各个元素彼此结合的紧密程度。它是衡量一个模块内部组成部分间整体统一性的度量。
9、低内聚:如果一个模块完成一组任务,这些任务彼此间即使有关系,关系也是松散的,叫做偶然内聚。如果一个模块完成的任务在逻辑上属于相同或类似的一类,则叫做逻辑内聚。如果一个模块包含的任务必须在同一段时间内执行,就叫时间内聚。
10、中内聚:如果一个模块内的处理元素师相关的,而且必须以特定的次序执行,叫做过程内聚。如果模块中所有元素都使用同一个输入数据或产生同一个输出数据,则叫做通信内聚。
11、高内聚:如果一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行,则称为顺序内聚。如果模块内所有处理元素属于一个整体,完成一个单一的功能,则称为功能内聚。
12、软件设计中应该:力求做到高内聚,尽量少用中内聚,不用低内聚。
13、面向数据流设计是与数据流分析对应的结构化软件设计技术。面向数据流的设计将得到以数据流图为基础的软件模块结构图。
14、信息流有两种类型:a变换流:具有较明确的输入、变换和输出界面的数据流图称为变换型数据流图。b事务流: 事务型数据流图中存在一个事务中心,它将输入分离成若干个发散的数据流,形成许多活动路径,并根据输入值选择其中一条路径。
15、变换分析是一系列设计步骤的总称,步骤有:a、复查基本系统模型 b、复查并精化数据流图 c、确定数据流图具有变换特性还是事务特性 d、确定输入流和输出流的边界,从而孤立出变换中心 e、完成“第一级分解” f、完成“第二级分解” g、使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化第6章 详细设计
1、用3种基本的控制结构就能实现任何单入口单出口的程序:顺序,选择,循环
2、结构程序设计:是一种尽可能少用GOTO语句的程序设计技术,它采用自顶向下、逐步细化的设计方法和单入口单出口的控制技术。
3、程序流程图又称程序框图,是一种描述程序的控制结构流程和指令执行情况的有向图。优点是对控制流程的描绘很直观,缺点如下:a、程序流程图本质上不是逐步求精的好工具,它有事程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。b、程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。c、程序流程图不易表示数据结构
4、盒图:特点: 控制结构作用域明确、不能任意转移控制、SP方式思考和解决问题的习惯、易表示嵌套关系、模块的层次结构
5、PAD图:即是问题分析图。它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。优点:a、使用表示结构化控制结构的PAD符号所涉及出来的程序必然是结构化程序 b、PAD图所描绘的程序结构十分清晰 c、用PAD图表现程序逻辑,易读、易懂、易记。d、容易将PAD图转换成高级语言源程序,可用软件工具完成,利于提高软件可靠性和软件生产率 e、既可用于表示程序逻辑,也可用于描绘数据结构。f、PAD图的符号支持自顶向下、逐步求精的方法的使用。
6、过程设计语言也称为伪码。它是用正文形式表示数据和处理过程的设计工具。有严格的关键字外部语法,用于定义控制结构和数据结构。
7、PDL特点:a、关键字的固定语法,它提供了结构化控制结构、数据说明和模块化的特点。b、自然语言的自由语法,它描述处理特点。c、数据说明的手段。应该既包括简单的数据结构,又包括复杂的数据结构。d、模块定义和调用的技术,应该提供各种借口描述模式。优点:a、可以作为注释直接插在源程序中间。b、可以使用普通的正文编辑程序或文字处理系统。很方便地完成PDL的书写和编辑工作。c、已经有自动处理PDL的程序存在,而且可以自动由PDL生产程序代码。缺点:不如图形工具形象直观,描述复杂的条件组合与动作间的对应关系时,不如判定表清晰简单。
8、Jackson方法的目标是:得出对程序处理过程的详细描述。MaCabe计算环形复杂度的方法(1)流图中的区域数等于环形复杂度。(2)流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。(3)流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。第七章实现
1、软件测试:为发现程序中的错误而执行程序的过程。测试的目的:暴露程序中的错误 软件测试的准则(尽早和不断的测试、彻底测试的不可能、软件测试是有风险的行为、并非所有的软件错误都能恢复、反向思维逻辑、由小到大的测试范围、避免检查自己的代码、追溯至用户需求)测试方法(黑盒测试和白盒测试)测试步骤(模块测试、子系统测试、系统测试、验收测试、平行运行)用。
6、白盒法:又称为逻辑覆盖法,其测试用例选择,是按照不同覆盖标准确定的。
1.白盒法常用的覆盖标准:① 语句覆盖:选择足够的测试用例,使得程序中每个语句至少都能被执行一次。② 判定覆盖:执行足够的测试用例,使得程序中每个判定至少都获得一次“真”值和“假”值。③ 条件覆盖:执行足够的测试用例,使得判定中的每个条件获得各种可能的结果。④ 判定/条件覆盖:执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果。⑤ 条件组合覆盖:执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。6.点覆盖:选取足够多测试数据,使程序的每条可能路径至少经流过流图的每个结点一次。7边覆盖:选取足够多测试数据,使程序的每条可能路径至少经过流图中每条边一次。8路径覆盖:选取足够多测试数据,使程序的每条可能路径都至少执行一次。
常用的控制结构测试技术:基本路径测试、条件测试、循环测试。
基本路径测试:第一步,根据过程设计结果画出相应的流图。第二步,计算流图的环形复杂度。第三步,确定线性独立路径的基本集合。第四步,设计可强制执行基本集合中每条路径的测试用例
7、黑盒法:不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。
等价分类法基本思想:根据程序的I/O特性,将程序的定义域划分为有限个等价区段 —“等价类”,从等价类中选择出的用例,具有“代表性”
等价类分为:有效等价类—对于程序的规格说明是合理的、有意义的输入数据构成的集合。
无效等价类 —对于程序的规格说明,是不合理的,是没有意义的输入数据构成的集合。
边值分析法基本思想: 选择等价类的边缘值作为测试用例,让每个等价类的边界都得到测试,选择测试用例既考虑输入亦考虑输出。
分析步骤: A、先划分等价类。B、选择测试用例,测试等价类边界。
边界选择原则: A、按照输入值范围的边界。B、按照输入/输出值个数的边界。C、输出值域的边界。D、输入/输出有序集的边界。
错误推测法的概念:凭经验或直觉推测可能的错误,列出程序中可能有的错误和容易发生错误的特殊情况,选择测试用例。
错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。例如:在单元测试时曾列出的许多在模块中常见的错误、以前产品测试中曾经发现的错误等,这些就是经验的总结。还有,输入数据和输出数据为0的情况、输入表格为空格或输入表格只有一行等。这些都是容易发生错误的情况,可选择这些情况下的例子作为测试用例
调试作为成功测试的后果出现,也就是说,调试是在测试发现错误之后排除错误的过程。
无论采用什么方法,调试的目标都是寻找软件错误的原因并改正错误。通常需要把系统地分析、直觉和运气组合起来,才能实现上述目标。一般说来,有下列3种调试途径可以采用:蛮干法,回溯法,原因排除法。
软件可靠性的定义:对于软件可靠性有许多不同的定义,其中多数人承认的一个定义是:软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率
软件可用性的一个定义: 软件可用性是程序在给定的时间点,按照规格说明书的规定,成功地运行的概率。第八章维护
1.软件维护是指软件系统交付使用以后,为了改正错误或满足新的需求而修改软件的过程。按照不同的维护目的,维护工作可分成4类。
完善性维护:扩充原有系统的功能,提高原有系统的性能,满足用户的实际需要。
纠错性维护:对在测试阶段未能发现的,在软件投入使用后才逐渐暴露出来的错误的测试、诊断、定位、纠错以及验证、修改的回归测试过程。
适应性维护:要使运行的软件能适应运行环境的变动而修改软件的过程。
预防性维护:为了进一步改善软件的可靠性和易维护性,或者为将来的维护奠定更好的基础而对软件进行修改。
2.软件的可维护性定性地定义为: 维护人员理解、改正、改动或改进这个软件的难易程度。
重用:同一事物不做修改或稍加改动就在不同环境中多次重复使用。
提高可维护性是支配软件工程方法学所有步骤的关键目标。第九章 面向对象方法引论
面向对象方法学的基本原则:尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。
对象:在应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象,它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。
对象的定义:(1)定义1:对象时具有相同状态的一组操作的集合。(2)定义2:对象是对问题域中某个东西的抽象,这种抽象反映了系统保存有关这个东西的信息或与它交互的能力。(3)定义3:对象::=
对象基本特点:
1、以数据为中心;
2、对象是主动的;
3、实现了数据封装;
4、本质上具有并行性;
5、模块独立性好。类:就是对具有相同数据和相同操作的一组相似对象的定义,动态模型 对象和系统的行为
3、功能模型 类似于高层的DFD,描述穿越系统的信息流
对象模型表示静态的、结构化的系统的“数据”性质。
类图描述类及类与类之间的静态关系。类图是一种静态模型,它是创建其他UML图的基础。一个系统可以由多张类图来描述,一个类也可以出现在几张类图中。
功能模型:表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。通常,功能模型由一组数据流图组成。UML提供的用例图也是进行需求分析和建立功能模型的有力工具。以用例图建立起来的系统模型称为用例模型,它描述的是外部行为者所理解的系统功能。
用例图:
1、系统;
2、用例行为者感受到的一个完整的功能。用例是类,代表一类功能,用例的实例称为脚本。特征:(1)用例代表某些用户可见的功能,实现一个具体的用户目标;(2)用例总是被行为者启用的,并向行为者提供可识别的值;(3)用例必须是完整的。
3、行为者与系统交互的人或其他系统。它代表一种角色。
用例之间的关系:1)扩展关系:向一个用例中添加一些动作后构成另一个用例,它们之间构成扩展关系。2)使用关系:一个用例使用另一个用例,它们之间构成使用关系。
扩展与使用的异同:描述一般行为的变化时采用扩展关系;两个或多个用例中出现重复描述时可采用使用关系。
用例建模:一个用例模型由若干幅用例图组成。创建用例模型的工作包括:定义系统、寻找行为者、寻找用例、描述用例、定义用例之间的关系、确认模型。
寻找行为者:下述问题有助于发现行为者: 1)谁将使用系统的主要功能? 2)谁需要借助系统的支持来完成日常工作? 3)谁来维护和管理系统?4)系统控制哪些硬件设备?5)系统需要与哪些其他系统交互?6)哪些人或系统对本系统产生的结果感兴趣?
三种模型之间的关系:1)针对每个类建立的动态模型,描述了实例的生命周期或运行周期。
2)状态转换驱使行为发生,这些行为在数据流图中被映射成处理,在用例图中被映射成用例,它们同时与类图中的服务相对应。3)功能模型中的处理(或用例)对应于对象模型中的类所提供的服务。4)数据流图中的数据存储,以及数据的源点/终点,通常是对象模型中的对象。5)数据流图中的数据流,往往是对象模型中对象的属性值,也可能是整个对象。6)用例图中的行为者,可能是对象模型中的对象。7)功能模型中的处理(或用例)可能产生动态模型中的事件。8)对象模型描述了数据流图中的数据流、数据存储以及数据源点/终点的结构。
第十章:面向对象分析
10.1面向对象分析的基本过程
1.3个子模型与5个层次(1)3个子模型:对象模型(静态结构); 动态模型(交互次序); 功能模型(数据变换)。(2)5个层次:主题层;类与对象层;结构层;属性层;服务层。
2.建立对象模型的步骤:
1、确定类与对象
2、确定关联 => 结构层
3、划分主题
4、确立属性
5、识别继承关系
6、反复修改
3.建立动态模型的步骤:
1、编写脚本
2、设想用户界面
3、画事件跟踪图
4、画状态图
5、审查动态模型
6、反复修改 第11章 面向对象设计
1、重用也叫再用或复用,指同一事物不作修改或稍加改动就多次重复使用。重用的三个层次:1)知识重用;2)方法和标准的重用;3)软件成分的重用。
2、软件成分的重用级别:1)代码重用a.源代码剪贴b.源代码包含c.继承;2)设计结果重用;3)分析结果重用
3、类构件的重用方式:1)实例重用 2)继承重用 3)多态重用
4、子系统之间的两种交互方式:1)客户-供应商关系 2)平等伙伴关系
第13章 软件项目管理
2、工程网络图
关键路径上的事件必须准时发生,组成关键路径的作业的实际持续时间不能超过估计的持续时间,最早时刻和最迟时刻相同。
3、机动时间
一个作业可以有的全部机动时间等于它的结束事件的最迟时刻减去它的开始事件的最早时刻,再减去这个作业的持续时间:
机动时间=(LET)结束-(EET)开始-持续时间
5、软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。
6、软件质量保证的措施主要有:基于非执行的测试、基于执行的测试、程序正确性证明
7、软件配置项:
1、计算机程序(源代码和可执行程序)
2、描述计算机程序的文档(供技术人员或用户使用)
3、数据(程序内包含的或在程序外的)
8、基线是已经通过了正式复审的规格说明或中间产品,它可以作为进一步开发的基础,并且只有通过正式的变化控制过程才能改变它。基线就是通过了正式复审的软件配置项。
9、软件配置管理过程步骤:
1、标识软件配置中的对象
2、版本控制
3、变化控制
4、配置审计
5、状态报告
10、能力成熟度(CMM)的5个等级从低到高依次是:初始级、可重复级、已定义级、已管理级、优化级
第二篇:软件工程期末复习总结
软件工程期末复习总结
第一章 软件工程学概述
1.软件危机:是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。包括如何开发软件,如何维护数量不断膨胀的已有软件。
2.软件生命周期的定义及划分
3.软件从定义、开发、使用和维护,直到最终废弃的过程称为生命周期
4.按照软件生命周期全过程应完成的任务性质,在概念上可以把软件生命周期划分成问题定义、可行性研究、需求分析(定义时期)、总体设计、详细设计(系统设计)、编码和单元测试、综合测试以及运行维护(系统实现)共8个阶段
5.最基本的测试是集成测试和验收测试
6.软件配置主要包括:程序+数据+文档
7.软件工程的定义软件工程是把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;并研究其中提到的途径。
8.软件工程的基本原理
1.用分阶段的生命周期计划严格管理
2.坚持进行阶段评审
3.实行严格的产品控制
4.采用现代程序设计技术
5.结果应能清楚地审查
6.开发小组的人员应该小而精
7.承认不断改进软件工程实践的必要性
9.软件工程方法学包含3要素:方法、工具和过程。
分成传统方法学和面向对象方法学,其中传统方法学采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务。
10.软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定各项任务的工作步骤(who,when,what,how)
11.软件过程模型有瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型
12.瀑布模型优点
1.阶段间具有顺序性和依赖性
2.推迟实现的观点
3.质量保证的观点
13.软件工程由方法、(工具)和过程三部分组成,称软件工程的三要素。
14.从工程管理的角度软件设计可分为概要设计和(详细)设计两大步骤。
15.基于计算机系统的软件要素中的软件由程序、数据和(文档)组成。
16.软件设计也可看作将需求规格说明逐步转换为软件源代码的过程。()
17.软件生存周期(名词解释)软件从定义、开发、使用和维护,直到最终废弃的过程称为生命周期
18.软件危机(名词解释)是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题 原型法模型一般适应哪些场合?
它适合于那些不能预先确切定义需求的软件系统的开发,更适合于那些项目组成员(包括分析员、设计员、程序员和用户)不能很好交流或通信有困难的情况。
瀑布模型一般适应哪些场合?
瀑布模型一般适用于功能、性能明确、完整、无重大变化的软件系统的开发。例如操作系统、编译系统、数据库管理系统等系统软件的开发。应用有一定的局限性。
第二章 可行性研究
1.可行性研究的目的,就是用最小的代价尽可能短的时间内确定问题是否能够解决
2.至少包含下述3个方面:
1.技术可行性
2.经济可行性
3.操作可行性
3.数据流图的用途
1.交流信息的工具
2.作为分析与设计的工具
4.数据字典的内容由4类元素组成1.数据流
2.数据流分量(即数据元素)
3.数据存储
4.处理
5..系统流程图是物理系统模型
数据流图和数据字典是系统逻辑模型
5.成本/效益分析的方法:1.货币的时间价值,2投资回收期3纯收入4投资回收率
6.数据字典:是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合.第三章 需求分析
1.需求分析是软件定义时期的最后一个阶段,它的基本任务是准备地回答“系统必须做什么”这个问题
2.需求分析的任务
1.确定对系统的综合要求
2.分析系统的数据要求
3.导出系统的逻辑模型
4.修正系统开发计划
3.需求分析的结果是软件需求规格说明书
4.需求分析的方法
1.访谈
2.面向数据流自顶向下求精
3.简易的应用规格说明技术
4.快速建立软件原型,5…实践表明,快速建立软件原型是最准确、最有效和最强大的需求分析技术
6需求分析建模的工具
1.E-R图
2.层次方框图,描绘数据的层次结构
3.Warnier图
4.IPO图
7.验证软件需求应该从下面4个方面验证
1.一致性
2.完整性
3.现实性
4.有效性
第五章 总体设计
1.总体设计的基本目的就是回答“概括地说,系统该如何实现?”
2.总体设计也称概要设计或初步设计
3.总体设计的重要任务
1.划分系统元素和边界
2.设计软件的结构,即系统的模块组成和模块间的关系。
4.总体设计通常由两个阶段组成:
系统设计阶段,确定系统的具体实现方案
结构设计阶段,确定软件结构
5.模块是构成程序的基本构件。
6.模块化就是把程序分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户需求
7.模块化的根据就是分解复杂的问题容易解决
8.软件设计原理
1.模块化
2.抽象
3.逐步求精
4.信息隐藏和局部化
5.模块独立
9.模块设计的原则是高内聚,低耦合耦合是衡量不同模块彼此间互相依赖的紧密程度
内聚是衡量一个模块内部各个元素彼此结合的紧密程度
10.耦合的类型及设计原则:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合内聚:使用功能内聚和顺序内聚
11.设计的启发式规则
1.提高独立性
2.模块适中
3.深度、宽度、扇入和扇出适当
4.模块作用域应该在控制域之内
5.降低模块接口的复杂度
6.设计单入口单出口的模块
7.模块功能可以预测
12.据流的设计方法的两种不同类型的设计:变换分析和事务分析
优化方法的格言:先使它能工作,然后再使它快起来
第六章 详细设计
设计阶段的根本目录是确定应该怎样具体地实质所要求的系统。
详细设计不是编码,而是设计出程序的“蓝图”
结构程序设计最早由Dijkstra提出
只要3种基本的控制结构就能实现任何单入口单出口的程序,这3种基本的控制结构是“顺序”、“选择”和“循环”
1.程序设计的经典定义:如果一个程序的代码块仅仅透过顺序、选择和循环这3中基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的结构程序设计是尽可能少用GOTO语句的程序设计方法,最好仅在检测出错误时才使用GOTO语句,而且应该总是使用前向GOTO语句
人机界面的设计质量,直接影响用户对软件产品的评价
设计人机界面总会遇到下述四个问题:
1.系统响应时间
2.用户帮助设备
3.出错信息处理
4.命令交互
人机界面设计指南:
1.置用户于控制之下
2.减少用户的记忆负担
3.保持界面一致
判定表可用作软件测试
Jackson图包含3类逻辑数据结构,顺序结构,选择结构,重复结构
第七章 实现
通常把编码和测试统称为实现
编码就是把软件设计结构翻译成某种程序设计语言书写的程序
测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误
软件测试的工作量往往占软件开发总工作量的40%以上
调试是测试阶段最困难的工作
G.Myers测试的目标或定义:
1.测试是为了发现程序中的错误而执行程序的过程
2.好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案
3.成功的测试是发现了至今为止尚未发现的错误的测试
软件测试准则
1.所有测试都应该能追溯到用户需求
2.应该远在测试开始之前就制定出测试计划
3.把Pareto原理应用到软件测试中
4.应该从“小规模”测试开始,并逐步进行“大规模”测试【(8020)测试发现的错误80%很可能是由程序中20%的模块造成的】
5.穷举测试是不可能的6.第三方测试(A编写,B测试)
V字型模型
测试分为白盒测试(结构测试)和黑盒测试(功能测试)
具体的测试方法{【(测试用例)()】【(覆盖条件)()】}
测试步骤:1.模块测试.2子系统测试 3.系统测试 4.验收测试 5.平行运行
软件可靠性:是程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率
软件可用性:是程序在给定的时间点,按照规格说明书的规定,成功地运行的概率
第八章 维护
软件工程的主要目的是提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本
所谓维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
四类维护
1.改正性维护纠正使用过程中暴露出来的错误
2.适应性维护适应外部环境变化
3.完善性维护改进原有软件
4.预防性维护改进将来的可维护性和可靠性
软件维护的特点
1.结构化维护与非结构化维护差别巨大
2.维护的代价高昂
3.维护的问题很多
决定软件可维护性的因素
1.可理解性
2.可测试性
3.可修改性
4.可移植性
5.可重用性
文档是影响软件可维护性的决定因素
软件系统的文档可以分为用户文档和系统文档两类
1.用户文档主要描述系统功能和使用方法
2.系统文档指从问题定义,需求说明验收测试计划这样一系列实现有关的文档
Miller:“把今天的方法学应用到昨天的系统上,以支持明天的需求。”
第三篇:计算机网络复习缩印
一 OSI参考模型和TCP/IP体系结构的异同
相同点:1,这两种模型都基于独立的协议栈的概念,并且协议栈中的协议彼此独立,强调网络技术独立性和端对端确认 2都采用分层的技术,每层建立在下层提供的服务基础上,并为上层提供服务,且 层的功能大体相同,两个模型都能够在相应的层找到相应的对应功能
不同点:
1、分层模型存在差别。OSI总共分为7层,TCP/IP模型分为4层,没有会话层和表示层,并且将数据链路层和物理层合而为一为网络接口层,然而这两层的功能却是完全不同的。2 OSI模型有3个主要明确概念:服务,接口,协议,而TCP/IP参考模型并没有明确的区分服务,接口,和协议三者之间的差异,这也是OSI的贡献之处。3 TCP/IP模型对异构网络互连的处理比OSI模型更加合理4 TCP/IP模型比OSI模型更注重面向无连接的服务,在传输层OSI模式仅有面向有链接的通信,TCP/IP模型支持两种通信模式:在网络层OSI模型支持面向无连接和面向连接的方式而TCP/IP模型只支持面向无连接通信模式OSI参考模型先提出体系结构模型,然后再实现,而TCP/IP在结构的模型本生没有确立是,协议已被广泛应用。二现代以太网的主要技术?
现代以太网技术是指以快速以太网,千兆以太网为代表的新兴以太网技术,现代以太网技术采用交换网络结构组建局域网
1快速以太网是从10BASE-T发展而来的,即与其有相同的帧格式,相同的介质访问控制方法CSMA/CD,相同的组网方法,只是把每个比特发送时间由100ns降到10ns,则所有在10BASE-T上的应用软件和网络软件的功能也都可以保持不变
100BASE-T标准参用了介质独立接口MII,100BASE-T包括3种物理层标准,即100BASE-TX,100BASE-T4,100CASE-FX。
2千兆以太网的产生是为了避免局域网的主干网承受过大的压力,其遵守与传统以太网相同的以太网通信规程,即相同的帧格式和介质访问控制方式CSMA/CD,只是将每个比特的发送时间由100ns降低到1ns
千兆以太网定义了一种千兆位介质独立接口GMII,将MAC子层与物理层隔离,是物理层在1000Mbps速率是,使用的传输介质和信号编码方式不会影响MAC子层,千兆以太网的MAC层仍然采用CSMA/CD方法
千兆以太网标准可以支持多种传输介质,目前包括4种介质标准:1000BASE-OX,1000BASE-SX。1000BASE-LX,1000BASE-OX。3万兆以太网是以太网技术发展中的一个平滑升级阶段,与传统以太网有两点不同:a只采用全双I技术,则不需要应用低速的半双I的CSMA/CD协议,b增加了广域网的接口子层,可以实现与SDH的无缝连接,将以太网从局域网应用扩展到了城域网和广域网,万兆以太网与传统以太网有相同的MAC层,采用同样的MAC帧结构 基于光纤的万兆以太网标准IEEE802.3aE分为两种:a连接传统以太网速率为10Gpbs的LAN接口,b连接SDH/SONET。速率为9.58464Gpbs的WAN接口。
三:无线交换机的原理机网络部署方案的优势。
原理如下:无线交换机不是无线覆盖的交换机,而是指在加入了集中式无线局域网安全管理以及PoE技术的交换机。无线交换机是将无线局域网控制器与交换机合并在一起。无线交换机采用back end-front end工作方式,即将无线交换机置于用户机房内,称为back-end,而将若干类似于天线功能的AP置于前端,称为front-end。这样所有管理和数据处理都集中到功能更强大的无线交换机上,同时由于大多数无线交换机可以完成安全管理功能,所有只需要对无线交换机实时监控,就可以迅速的发现无线局域网的异常。网络部署方案的优势:
1.较低的拥有成本,减少了传统到处拉线,到处部署AP机的成本费用2.网络管理人员可以进行集中化管理,较低的管理成本,3.可以对多个AP进行集中安全监控管理,AP兼容多种无线适配器,适合于大多数厂商的产品4同时支持多个区域同时接入无线网络的区域,而不影响彼此之间的通信。5同时可以方便的在无线交换机上对用户进行权限开通,管理和维护和无线安全的设定。
四:PPP的通信过程
4个阶段:链路建立,确定链路质量,网络层控制协议,链路终止 1.链路建立阶段当一个PC端用户发起拨号后,终端首先通过调制调节器呼叫远程访问服务器,(比如拨号服务的路由器),路由器上的远程访问模块做出应答,建立初始物理连接。接下来,PC端客户和远程访问服务器之间使用LCP交换配置信息,用于协商选择将要采用的PPP参数,配置信息交换成功后,建立连接链路。
2.链路质量测试阶段。该阶段主要负责测试链路的质量是否能够承载上层协议,同时也提供了链路认证这个可选项,如果认证失败,则链路被终止,双方负责通讯的设备或模块关闭物理链路回到空闲状态。
3.网络控制层协议 此阶段使用相应的NCP协议网络层协议(IP,IPX),当NCP配置完成后,逻辑通信链路就建立起来,通信双方可以在此链路上交换数据。
4.链路终止阶段 数据传输完毕时,通信的一方会发起断开连接请求。具体如下:1,使用NCP释放网络的连接,归还IP地址2,利用LCP协议关闭数据链路层的连接3,双方的通信设备或模块关闭物理链路回到空闲状态
五:MPLS的工作原理;
MPLS(Multi-Protocol Label Switching)即就是多协议标签交换,它是新一代IP高速骨干网络的交换标准,集成IP Over ATM技术。
具体的原理如:MPLS是一种第三层路由结合第二层属性的交换技术,引入了基于标签的机制,它把路由选择和数据转发分开,由标签来规定一个分组通过网络的路径。MPLS网络由核心部分的标签交换路由器(LSR)、边缘部分的标签边缘路由器(LER)组成。LSR的作用可以看作是ATM交换机与传统路由器的结合,由控制单元和交换单元组成;LER的作用是分析IP包头,用于决定相应的传送级别和标签交换路径(LSP)。标签交换的工作过程可概括为以下3个步骤:(1)由LDP(标签分布协议)和传统路由协议(OSPF、IS-IS等)一起,在LSR中建立路由表和标签映射表(2)LER接收IP包,完成第三层功能,并给IP包加上标签;在MPLS出口的LER上,将分组中的标签去掉后继续进行转发;(3)LSR对分组不再进行任何第三层处理,只是依据分组上的标签通过交换单元对其进行转发。六:简述你自己对物联网的认识即就是The Internet of things,顾名思义,“物联网就是物物相连的互联网”。第一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;第二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信。此外他还是通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网相连接,进行信息交换和通信,以实现对物品的智能化识别、定位、跟踪、监控和管理的一种网络,实现物与物、物与人,所有的物品与网络的连接,方便识别、管理和控制。新一代信息技术的重要组成部分。2 和传统的互联网相比,物联网有其鲜明的特征。
首先,它是各种感知技术的广泛应用。其次,它是一种建立在互联网上的泛在网络。还有,物联网不仅仅提供了传感器的连接,其本身也具有智能处理的能力,能够对物体实施智能控制。将传感器和智能处理相结合,最后利用云计算、模式识别等各种智能技术,扩充其应用领域。3 物联网的分类:
私有物联网: 一般面向单一机构内部提供服务; 公有物联网:基于互联网(Internet)向公众或大型用户群体提供服务; 社区物联网:向一个关联的“社区”或机构群体(如一个城市政府下属的各委办局:如公安局、交通局、环保局、城管局等)提供服务; 混合物联网:是上述的两种或以上的物联网的组合,但后台有统一运维实体。物联网将是下一个推动世界高速发展的“重要生产力”!
物联拥有业界最完整的专业物联产品系列,覆盖从传感器、控制器到云计算的各种应用。产品服务智能家居、交通物流、环境保护、公共安全、智能消防、工业监测、个人健康等各种领域。构建了“质量好、技术优、专业性强,成本低,满足客户需求”的综合优势,持续为客户提供有竞争力的产品和服务。
计算机网络技术的发展趋势?
从系统物理组成的角度分析了计算机网络的发展趋势:
计算机网络是由单个结点和连结这些结点的链路所组成。单个结点主要是连入网内的计算机以及负责通信功能的结点交换机、路由器,这些设备的物理组成主要是集成电路,而集成电路的一个重要支撑就是微电子技术。网络的另一个组成部分就是通信链路,负责所有结点间的通信,通信链路的一个重要支撑就是光电子技术。为了对计算机网络的发展有所把握,我们首先要对计算机网络的两个重要的支撑技术,即微电子技术和光电子技术进行简要介绍。
微电子技术的发展是信息产业发展的基础,也是驱动信息革命的基础。
驱动信息革命的另一个支撑技术是光电子技术。从系统的层次结构对计算机网络的发展趋势: 计算机网络的发展方向将是IP技术+光网络,光网络将会演进为全光网络。从网络的服务层面上看将是一个IP的世界;从传送层面上看将是一个光的世界;从接入层面上看将是一个有线和无线的多元化世界。因此,从计算机网络系统的结构上看,目前比较关键的技术主要有软交换技术、IPv6技术、光交换与智能光网络技术、宽带接入技术、3G以上的移动通信系统技术等。计算机网络发展的热点的趋势:(1)云计算(2)网络计算(3)下一代Web研究
(3)业务综合化(4)移动通信(5)网络安全与管理
1.计算机网络逻辑结构是由___用户子网_和__通信子网_两部分组成的。2.计算机网络中的结点分为____访问节点,交换节点,混合节点___三类; 3.计算机网络中的链路分为____物理链路,数据链路___两类; 4.通信子网中的结点均为__交换结点__________。1.数据从发送端传输到接收端的时延包括发送时延,传播时延,处理时延2.曼彻斯特编码中间跃变点作用是 时钟信号 和__数据信号_。差分曼彻斯特编码中间跃变点作用仅是____时钟信号___。3.信号从原始信号变换为信道信号需要_____调制解调器______________设备。4.在计算机网络中,广泛采用的同步方式有_面向字符和面向比特________两类。5.按信号特征分,通信系统可分为___模拟通信系统和数字通信系统______两类。6.按信号传输的方向与时间,通信方式可分为单工通信,半双工通信,全双工通信。7.使用双绞线传输介质时,网卡接口是RJ-45结头和水晶头。8.按传输特性同轴电缆可分为__________基带同轴电缆和宽带同轴电缆__两类。9.信道噪声分为_____热噪声和冲击噪声___两类。10.因特网采用数据报交换技术 11.时分复用器的输出线路容量_等于_各输入线路容量之 1.通信子网的最高层是_网络层_。2.网络协议包括________语法,语义,同步___三要素。3.在OSI参考模型中,运输层可以弥补通信子网所提供的服务和网络用户所需服务 4.物理层接口的4个特性是____机械特征 功能特征规程特征__电子特征_____。5.Go-Back-N协议的接收窗口的大小=__1__________。6.在滑动窗口机制中,当发送序号字段为3比特时,发送窗口最大尺寸是___7_____。7.OSI参考模型中的网络层提供_面向连接的网络服务和面向无连接的网络服两类服务。8.(n)-PDU构成包括_ 用户数字信息(n)-up2 和协议控制信息(n)-PCI _两部分。
9.OSI定义___5_____类运输层协议。10.数据链路层的数据单元是__帧________。1.决定局域网特性的技术有以下三个:______传输介质,拓扑结构,和介质访问控制方法 2.MAC地址为______48_____位。3.IEEE802.3传统以太网的最大帧长是_1518__________字节,最小帧长是____64___字节。4.共享局域网性能提升的方法有_______划分网段,提高网络宽带,交换技术___三种。5.100BASE-TX的网卡接口标准为___802.3i_________。6.千兆以太网的IEEE标准有
_______________802.3z,802.3ab___________两种。7.万兆以太网的IEEE标准有
____802.3ae,802.3ak.802.3an_______________三种。8.交换机常用的交换技术有____直接交换,存储转发,碎片隔离三种。9.交换机与网桥的主要区别为_____专用集成电路_____ 10.虚拟局域网的实现方式有_基于端口,基于MAC地址,基于网络层,基于IP组播基于序列_五种。1.无线局域网由 基站、无线介质、站 和 分布系统4部分组成。2.无线局域网中的站可分为 固定 站、半移动站和 全移动 站三类。3.BSS有无中心分布式 和 有中心集中式式两种拓扑结构。4.无线AP设备包括天线、接口、复位系统和 指示系统4部分。5.无线局域网适配器的硬件由网络接口控制器NIC、基带处理器、中频处理单元、射频处理单元、天线 和总线接口等部分组成。1.按网络设计和网络功能,将广域网分为出口层、核心层、汇聚层和接口层四层结构。2.HDLC提供 正常响应、异步响应 和异步平衡方式3种操作方式。3.HDLC是面向比特的,而PPP是面向字符 的。4.ATM采用了长度较小且大小固定的 快速分组 交换技术。5.SONET和SDH是常见的光 网络通信协议。6.在HDLC协议中,监督帧共有______48______比特。1.Internet协会ISOC下设三个最重要机构分别是__IANA__、_IETF__、____IQTE______。2.IP地址的分配机构就分别由APNIC__、__APIN___、__RIPENCC__三个组织完成。3._ARP__协议主要功能是完成IP地址到物理MAC地址的映射,与其相反的协议是__RARP__。4.TCP/IP协议的传输层有__运输控制协议TCP 和__用户数据协议UDP____协议,其中____TCP__是面向连接的协议,UDP_____是面向无连接的协议。5.有一主机IP地址为173·224·13·226,已知其主机地址的前7位用于子网号,则它的子网掩码是___255.255.254.0_________。
6.IPV6将IP地址空间从32__位扩展到__128____位。7.组播协议使用的是D 类IP地址。8.传输层主要有两大协议:传输控制 协议和 用户数据报 协议。9.端口号长度为 16
第四篇:软件工程期末小结
第一章 软件工程概述
1.对“引入同一变动付出的代价随时间变化的趋势”:在软件开发的不同阶段进行修改需要付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;而在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是再引入变动,当然需要付出更高的代价。根据美国一些软件公司的统计资料,在后期引入一个变动比在早期引入相同的变动所需付出的代价高2~3个数量级。
2.软件是程序、数据及相关文档的完整集合。程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。
3.为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。
4.软件工程是:(1)把系统的、规范的、可度量的途径尽快应用于软件开发、运行和维护过程,也就是把工程应用于软件;(2)研究(1)中提到的途径。
5.软件工程本质特性(理解,判断):软件工程关注与大型程序的构造,软件工程的中心课题是控制复杂性,软件经常变化,开发软件的效率非常重要,和谐地合作是开发软件的关键,软件必须有效地支持它的用户,在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。
6.软件工程方法学包含3个要素:方法、工具和过程。
7.软件生命周期由软件定义、软件开发和运行维护3个时期组成。软件定义时期的任务是:确定软件开发的工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。这个时期的工作通常又称为系统分析,有系统分析员负责完成。软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。这个时期产生的文档有可行性研究报告、需求规格说明书。开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。这个阶段需要的人员为高级技术人员和初级程序员。产生的文档有:软件结构图,软件说明书,数据库。维护时期的主要任务是使软件持久的满足用户的需要。
8.软件一个生命周期包括:问题定义、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试。
9.软件维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。通常有4类维护活动:改正性维护,也就是诊断和改正正在使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的要求改进或扩充软件使它更完善;预防性维护,即修改软件,为将来的维护活动预先做准备。
第二章 可行性研究
1.可行性研究包括以下:技术可行性、经济可行性、操作可行性、法律可行性。
2.系统流程图的概括地描绘物理系统的传统工具。
3.在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。数据流图是系统逻辑功能的图形表示。
4.数据字典有下列元素的定义组成:数据流、数据流分量(即数据元素)、数据存储。
5.成本估计技术有:代码行技术、任务分解技术、自动估计成本技术。
第五篇:软件工程期末复习题
1、软件定义:问题定义、可行性研究,需求分析
2、软件开发:总体设计,详细设计,编码和单元测试,综合测试
3、软件维护:改正性维护、适应性维护、完善性维护、预防性维护
4、软件过程:瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型,Rational统一过程,敏捷过程与极限编程,微软过程
5、从3个方面研究每种解决的可行性:技术可行性、经济可行性、操作可行性
6、软件需求分析阶段的工作:可以分为以下4个方面:对问题的识别、分析与综合、编写需求分析文档以及需求分析评审
7、设计原理:模块化、抽象、逐步求精、信息隐藏和局部化、模块独立性(耦合、内聚)
8、决定软件可维护性的因素:可理解性、可测试性、可修改性、可移植性、可重用性
一、假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所得到的结果应该精确到小数点后4位。一旦实现并测试完之后,该产品将被抛弃。你打算选用哪些软件生命周期模型?请说明你作出选择的理由。
答:对这个软件的需求很明确,实现开平方功能的算法也很成熟,因此,既无须通过原型来分析需求也无须用原型来验证设计方案。此外,一旦实现并测试完之后,该产品将被抛弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。综上所述,为了开发这个简单的软件,使用大多数人所熟悉的瀑布模型就可以了
二、假设你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本开发。由于市场竞争激烈,公司规定了严格的完成期限并且已对外公布。你打算采用哪种软件生命周期模型?为什么?。
答:对这个项目的一个重要要求是,严格按照已对外公布了的日期完成产品开发工作,因此,选择生命周期模型时应该着重考虑哪些模型有助于加快产品开发的进度。使用增量模型开发软件时可以并行完成开发工作,因此能够加快开发进度。
这个项目是开发该公司已被广泛应用的字处理软件的新版本,从上述事实至少可以得出3点结论:第一,旧版本相当于一个原型,通过收集用户对旧版本的反映,较容易确定对新版本的需求,没必要再专门建立一个原型系统来分析用户的需求;第二,改公司的软件工程师对字处理软件很熟悉,有开发字处理软件的丰富经验,具有采用增量模型开发新版字处理软件所需要的技术水平;第三,该软件受到广大用户的喜爱,今后很可能还要开发更新的版本,因此,应该把该软件的体系结构设计成开放式的,以利于今后的改进和扩充。综上所述,采用增量模型来完成这个项目比较恰当。
三、考虑一个修改磁带上主文件的系统。文件管理员把修改信息穿孔在卡片上,系统读入穿孔卡片上的信息并按照记录号把修改信息顺序排列好。然后系统逐个读入主文件上的记录,根据记录上的校验码校核每个读入的记录,丢掉出错的记录,按照修改信息修改余下的记录,产生的新文件存储在磁盘上。最后,系统输出一份修改报告供文件管理员参阅。请分层次地画出上述主文件修改系统的数据流图。
答:本系统的数据源点和终点都是文件管理员,他既向系统提供修改信息,又接收系统生成的修改报告。系统功能主要有:接收修改信息,读主文件,校核记录,修改原始记录和产生报告。注意,问题陈述中所描述的“系统安装记录号把修改信息顺序排列好”,是具体的实现方法。在数据流图中无须描述具体实现方法,因此,在本系统的数据流图中不需要包含“排序”功能。类似地,“文件管理员把修改信息穿孔在卡片上,系统读入穿孔卡片上的信息”,是系统接收修改信息的具体方法。在数据流图中无须描绘这个具体的实现方案,因此,在本系统的数据流图中不需要包含“穿卡片”和“读卡片”的功能。
本系统包含的数据存储是:修改信息,主文件和修改后的主文件。图2.6是本系统的基本系统模型,图2.7是功能级数据流图。
四、用Jackson图描绘下述的一列火车的构成:
一列火车最多有两个火车头。只有一个火车头时则位于列车最前面,若还有第二个火车头时,则第二个火车头位于列车最后面。火车头既可能是内燃机车也可能是电气机车。车厢分为硬座车厢、硬卧车厢和软卧车厢等3种。硬座车厢在车内所有车厢的前面部分,软卧车厢在所有车厢的后面部分。此外,在硬卧车厢和软卧车厢之间还有一节餐车。
答:Jackson图善于描绘复杂事物的组成。用Jackson图描绘一列火车的构成的方法至少有两种,一种方法是把火车分为一个车头和两个车头两类,另一种方法是把后车头作为可选的。图3.29给出了描绘一列火车的构成的Jackson图。
解法1(b)解法2
五、为方便出乎,某银行拟开发计算机储蓄系统,储户填写的存款单或取款单由业务员输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户,如果是取款,系统计算利息并印出利息清单给储户。写出问题定义并分析系统的可行性。
答:技术上的可行性:开发系统的计算机硬件已经非常普及,完全没有问题;现在的计算机各方面的技术都非常成熟,相对来说开发此系统的技术也要求比较简单,因此在技术方面是可行的;同时银行还必须有一定量的系统管理和维护的专业人员,在这方面可以通过培训原来的技术人员成为新的需要的技术人员,也可以雇用所需这方面的专业技术员;若按计划,在规定的期限内,本系统的开发是可以完成的。
操作可行性:开发的系统操作要非常简单,以便适合大人小孩老人各类人们都可以很方便操作使用。还有,要有经过培训的专业人员在指导,以便当储户有什么疑难问题时能及时得到正确的答复 社会、政策允许的可行性:全部软件购买正版,机器设置通过正当途径购得
六、分析图3.1所示的层次图,确定每个模块的内聚类型。分析图3.2,确定模块之间的耦合类型
图3.1 计算多地点日平均温度的程序
答:从图3.1所示的层次图可以看出,这个程序的功能是计算若干个指定地点的每日平均温度。变量sum保存某地一天之内在指定的时间取样点的温度之和。程序运行时首先初始化变量sum并打开文件,然后读取地点、时间和温度等原始数据,创建用于保存这些数据的温度记录,接下来计算特定地点的日平均温度,存储温度记录。重复调用“读取地点、时间和温度”、“创建新的温度记录”、“计算特定地点的日平均温度”和“存储温度记录”等模块,直至计算出并保存好所有指定地点的日平均温度。最后,打印平均温度并关闭文件。
从上述叙述可知,“计算多个地点的日平均温度”、“读取地点、时间和温度”、“创建新的温度记录”、“计算特定地点的日平均温度”和“存储温度记录”等5个模块,每个都完成一个单一的功能,模块内所有元素都为完成同一个功能服务,彼此结合的十分紧密,因此,这5个模块的内聚类型都是功能内聚。
初看起来,由于初始化变量sum和打开文件这两个操作都是在程序运行的初始阶段完成的,“初始化变量sum和打开文件” 这个模块的内聚类型似乎是时间内聚。但是,初始化变量sum是本程序特有的操作,而打开文件是硬件要求的操作,是任何使用文件的程序都包含的一个操作,并非本程序特有的操作。当可以分配两个或更多个不同级别的内聚类型给一个模块时,规则是分配最低级别的内聚类型给该模块。因此,“初始化变量sum和打开文件”这个模块的内聚类型都是偶然内聚。同理,“关闭文件并打印平均温度” 这个模块的内聚类型也是偶然内聚。
分析图3.2,确定模块之间的耦合类型。
图3.2 一个程序的模块互连图 在图3.2中已经给模块之间的接口编了号码,表3.1描述了模块间的接口。表3.1 模块接口描述
综合分析图3.2和表3.1所提供的信息可知各个模块之间的耦合情况。例如,当模块p调用模块 q时(接口1),它传递一个参数----飞机类型。当模块q把控制返还给模块p时,它传回一个状态标志。
某些模块之间的耦合类型是明显的,例如,模块p和q之间(接口1)、模块r和t之间(接口5)及模块s和u之间(接口6)都是数据耦合,因为它们传递的都是一个简单变量。
如果两个模块中的一个模块给另一个模块传递控制元素,也就是说,如果一个模块明显地控制另一个模块的逻辑,则它们之间具有控制耦合。例如,当给具有逻辑内聚的模块传递功能代码时就传递了控制元素。另一个控制耦合的例子是把控制开关作为一个参数传递。图3.2中模块q调用模块r时(接口3)传递一个功能代码,因此,这两个模块之间是控制耦合。
图3.2右侧文字说明,模块p、t和u更新同一个数据库,因此,它们之间具有公共环境耦合。
当模块p调用模块s时(接口2),如果模块s使用或更新模块p传递给它的零件清单中的所有元素,则模块p和s之间的耦合是数据耦合;但是,如果模块s只访问该清单中的一部分元素,则模块p和s之间的耦合是特征耦合。模块q和s之间(接口4)的耦合情况与此类似。由于图3.2和表3.1中给出的信息尚不足以准确地描述各个模块的功能,所以不能确定这两对模块之间的耦合是数据耦合还是特征耦合。