知识点快速复习软件工程方法与实践Word文件下载.docx
- 文档编号:1183267
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:7
- 大小:39.30KB
知识点快速复习软件工程方法与实践Word文件下载.docx
《知识点快速复习软件工程方法与实践Word文件下载.docx》由会员分享,可在线阅读,更多相关《知识点快速复习软件工程方法与实践Word文件下载.docx(7页珍藏版)》请在冰点文库上搜索。
10.数据流类型:
变换型数据流、事务型数据流、混合型数据流
11.Jackson图:
Jackson图是Jackson方法分析和设计最有效的表达手段,用它既可以描述问题的数据结构,也可以描述软件的程序结构。
Jackson图的优点是便于表示层次结构,利于结构自顶向下分解,形象直观,可读性好。
Jackson方法用某种形式的伪码给出程序的过程性描述。
伪码一般采用结构化形式的英语描述,例如,用”select”语句描述选择结构,用”until”或”while”语句描述重复结构。
12.结构化程序设计的三种基本逻辑结构是:
顺序结构、选择结构和循环结构。
13.类与类之间的关系:
关联、泛化、聚集。
14.软件设计的三类活动:
软件设计的第一类活动是软件结构设计,也称为总体设计、概要设计或高层设计。
第二类活动是软件详细设计,也称为(模块)过程设计或底层设计。
第三类活动是设计测试。
15.软件模块化设计的指导思想:
分解、抽象、逐步求精、信息隐蔽和模块独立性。
16.软件模块化设计的定义:
把一个大型软件系统的全部功能,按照一定的原则合理地划分为若干个模块,每个模块完成一个特定子功能,所有的这些模块以某种结构形式组成一个整体。
17.模块独立性的定义及控制标准:
模块独立性是模块化、抽象、信息隐蔽概念的直接结果,也是判断模块化结构是否合理的标准。
模块独立性可以由两个定性标准度量,即模块自身的内聚和模块之间的耦合。
18.内聚性、耦合性和抽象的定义:
内聚性是从功能的角度对模块内部聚合能力的量度,耦合性是对一个软件结构内不同模块之间互连程度的度量。
抽象是一种从一般的观点看待事物的方法,它要求我们集中于事物的本质特征(内部状态和运动规律),而非具体细节或具体实现。
19.信息隐蔽定义:
每个模块对其他所有模块都隐蔽自己的设计决策,也就是说,模块应该详细说明且精心设计以求在某个模块中包含的信息不被不需要这些信息的其他模块访问。
20.按耦合度从低到高依次有7种耦合方式:
a.非直接耦合(独立运行)b.数据耦合(用参数表传递简单数据)c.标记耦合(传递数据结构或者一部分)d.控制耦合(传递的信息包括控制模块的信息)e.外部耦合(模块与软件之外的环境有关)f.公共耦合(多个模块引用同一全局的数据区)g.内容耦合(访问内部数据,代码重叠或者多个入口)。
21.按内聚度从低到高依次有7种内聚种类:
a.偶然内聚(模块完成的多个任务,任务之间的关系松散)b.逻辑内聚(模块完成逻辑相关的一组任务)c.瞬时内聚(模块的所有任务必须在同一时间间隔内执行)d.过程内聚(模块的处理元素相关而且按照特定的次序执行)e.通信内聚(模块的所有元素集中在一个数据结构区域上)顺序内聚(模块的处理元素相关,必须顺序执行)f.功能内聚(模块完成单一的功能,各个部分协调工作,而且不可缺少)。
22.结构化设计方法(SD)是基于模块化、自顶向下细化、结构化程序设计等程序设计技术基础上发展起来的。
23.软件维护类型及对应方向的维护:
纠错性维护:
对在测试阶段未能发现的,在软件投入使用后才逐渐暴露出来的错误的测试、诊断、定位、纠错以及验证、修改的回归测试过程。
纠错性维护占整个维护工作的21%
24.完善性维护:
为了满足这些日益增长的新要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性等。
完善性维护所占的比重最大,大约占总维护量的50%以上
25.适应性维护:
为了适应计算机的飞速发展,使软件适应外部新的硬件和软件环境或者数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)发生的变化,而进行修改软件的过程。
适应性维护占整个维护工作的25%
26.预防性维护:
为了提高软件的可维护性和可靠性等,主动为以后进一步维护软件打下良好基础的维护活动。
大约占总维护量的5%编码语言的目的与分类:
27.编码的目的是实现人和计算机的通信,指挥计算机按人的操作意图正确工作。
28.程序设计语言是人和计算机之间进行通信的最基本的工具,其特性会影响人的思维和解决问题的方式。
29.分为两大类:
低级语言:
这两种语言都依赖于相应的计算机硬件。
机器语言属于第一代语言
30.汇编语言属于第二代语言高级语言:
第三代程序设计语言利用类英语的语句和命令,尽量不再指导计算机如何去完成一项操作,如BASIC、COBOL和FORTRAN等。
第四代程序设计语言比第三代程序设计语言更像英语但过程更弱,与自然语言非常接近,它兼有过程性和非过程性的两重特性,如数据库查询语言、程序生成器等。
31.人机界面设计的任务,就是根据对用户在使用交互式系统时的所作所为,或者是用户想象中的所作所为,或者是他人想象中用户的所作所为的抽象,创建或导出一致的表示界面。
32.面向对象实现主要包括两项工作:
(1)把面向对象设计结果翻译成用某种程序语言书写的面向对象程序;
(2)测试并调试面向对象的程序。
33.请描述图书馆系统的借书的一个常规场景。
用例名称:
借书
范围:
图书管理图书流通应用
级别:
用户需求
主要参与者:
借阅者
涉众及其关注点:
1)浏览者:
希望能够不需要登录系统即可快速地浏览图书和查询信息。
2)借阅者:
希望在登录系统后可以借书,能查查询自己信息和借书情况
3)普通管理员:
希望能够协助借书者完成借书功能,形成借书报表给借阅者查看确认。
前置条件:
借书者要登录系统或者验证借书证
成功保证:
创建借书记录,更新借书信息,形成借书报表。
主成功场景:
1)普通管理员扫描借书证。
2)检查是否可以借书
3)若可借,则扫描图书
4)显示已借书数,显示借书成功
…重复
(2)-(4)
5)借书结束
34.请描述银行客户从ATM机上取一笔钱的场景。
答:
客户插入银行卡后输入密码。
客户选择“取款”项,屏幕跳出选择取款金额菜单以及一次性可取出的最大金额,客户根据自身需要选择预设金额或者自己输入想要取出的金额。
机器根据客户输入的金额进行出钞,如果余额不足,则屏幕提示客户无法提取相应金额。
客户选择提取较小金额或者选择退出系统,取卡。
否则在正常情况下按客户所需输出相应钞票。
屏幕提示在30秒内取走钞票。
完成交易,客户退出系统,取卡。
35.可行性分析要如何入手?
从技术可行性、经济可行性、操作可行性和时间可行性四个方面研究每种方案的可行性。
36.软件工程两大范型分别是什么?
他们有什么不同?
分别是传统的结构化范型和面向对象范型。
结构化范型要么面向行为要么面向数据,但没有既面向数据又面向行为的;
而面向对象范型把数据和行为看成同等重要,即将对象视作一个融合了数据及在其上操作的行为的统一的软件组件。
面向对象相对于结构化技术,无论对象的内部细节如何变化,只要对象提供的方法即接口保持不变,则整个软件产品的其他部分就不会受到影响,不需要了解对象内部的变化。
37.结构化分析要创建哪些模型?
结构化的需求分析模型有数据流模型、状态转换模型、实体—关系模型等。
数据流模型集中在数据的流动和数据转换功能,而不关心数据结构的细节。
实体—关系模型关心的是寻找系统中的数据及其之间的关系,却不关心系统中包含的功能。
系统的行为模型包括两类模型:
一类是数据流模型,用来描述系统中的数据处理过程;
另一类是状态转换模型,用来描述系统如何对事件做出响应。
38.软件生命周期的定义是什么?
它分为几个阶段?
分别是什么?
软件从生到死的过程称之为软件生命周期。
它分为六个阶段,分别是:
a.问题的定义及规划b.需求分析c.软件设计d.程序编码e.软件测试f.运行
39.什么是瀑布模型?
什么是增量模型?
它们有什么区别?
瀑布模型是从上一项活动接受该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容,给出该项活动的工作成果,并作为输出传给下一项活动。
增量模型是在项目的开发过程中以一系列的增量方式开发系统。
他们的主要区别是瀑布模型的开发过程是通过一系列阶段顺序展开的,而在增量模型中,软件被作为一系列的增量组件来设计、实现、集成和测试,每一个组件是由多种相互作用的模块所形成的提供特定功能的代码片段构成。
40.用户需求和系统需求各有什么特点?
用户需求是从用户角度来描述系统功能和非功能需求,以便让不具备专业技术方面知识的用户能看懂。
用户需求是描述系统的外部行为,用自然语言、图表和直观的图形来叙述。
系统需求是比用户需求更详细的需求描述,是系统实现的基本依据,因此,是一个完全的、一致的系统描述,是软件工程人员系统设计的起点。
系统需求描述可能包括许多不同的模型,如对象模型和数据流模型。
41.需求分析过程主要有哪几个步骤?
需求分析过程主要有沟通、导出需求、分析与精化、可行性研究、协商与沟通、规格说明、需求验证、变更管理等步骤。
42.数据字典的概念?
数据字典包含哪些内容?
数据字典是分析模型中出现的所有名字的一个集合,还包括有关命名实体的描述。
如果名字是一个复合对象,它还应有对其组成部分的描述。
一般说来,数据字典应该由四类元素的定义组成:
数据流、数据流分量、数据存储和处理。
43.结构化分析主要手段有哪些?
数据流图、数据字典、状态转换图、实体—关系图等
44.面向对象模型有哪些?
面向对象提供了三个基本模型:
对象模型、动态模型和功能模型。
45.面向对象模型有哪几个模型,各自的任务和各自的定义?
面向对象建模技术所建立的三种模型,即对象模型、动态模型和功能模型。
对象模型是对模拟客观世界实体的对象以及对象彼此间关系的映射,描述了系统的静态结构。
动态模型表示瞬间的、行为化的系统“控制”性质,它规定了对象模型中对象的合法变化序列。
功能模型表示变化的系统的“功能”性质。
功能模型指明了系统应该“做什么”;
动态模型明确规定在何种状态下,接受什么事件的触发而“做什么”;
对象模型则定义了“做什么”的实体。
46.统一建模语言(UML)模型元素有哪些:
UML定义了两类模型元素的图形表示。
一类模型元素用于表示模型中的某个概念,如类、对象、用例、结点、组件、包、接口等;
另一类模型元素用于表示模型元素之间相互连接的关系,主要有关联、泛化、依赖、聚集等。
47.请简述统一建模过程框架。
UML模型结构可分为四个抽象层次,即元元模型、元模型、模型和用户模型。
元元模型层定义了描述元模型的语言,它是任何模型的基础。
UML元元模型定义了元类、元属性、元操作等一些概念。
元模型层定义了描述模型的语言,它组成UML模型的基本元素,包括面向对象和构件的概念,如类、属性、操作、构件等。
模型层定义了描述信息领域的语言,它组成了UML模型。
用户模型层是
48.模型的实例,用于表达一个模型的特定情况。
49.面向对象设计的原则:
a.模块化:
面向对象软件开发模式,很自然地支持了把系统分解成模块的设计原理,对象就是模块,它是把数据结构和操作这些数据的方法紧密地结合在一起所构成的模块。
b.抽象
c.信息隐藏:
在面向对象方法中,信息隐藏通过对象的封装性实现:
类结构分离了接口与实现,从而支持了信息隐藏。
d.弱耦合:
在面向对象方法中,对象是最基本的模块,耦合主要指不同对象之间相互关联的紧密程度。
弱耦合是优秀设计的一个重要标准,因为这有助于使得系统中某一部分的变化对其他部分的影响降到最低程度。
e.强内聚
f.可重用:
软件重用是提高软件开发生产率和目标系统质量的重要途径。
50.重用基本上从设计阶段开始,重用有两方面的含义:
1)尽量使用已有的类(包括开发环境提供的类库,及以往开发类似系统时创建的类);
2)如果确实需要创建新类,则在设计这些新类的协议时,应该考虑将来的可重复使用性。
51.面向对象详细设计的目的就是不断精化设计类。
52.领域模型是对领域内的概念类或现实世界中对象的可视化表示。
53.领域模型也称为概念模型、领域对象模型和分析对象模型。
54.使用泛化、特化、关联类、时间间隔、组合和包等概念精化领域模型。
55.开关原则(TheOpen-ClosedPrinciple,OCP):
模块应该对外延具有开放性,对修改具有封闭性
56.替换原则(SubsitutionPrinciple,SP):
子类可以替换它们的基类。
57.依赖倒置原则(DependencyInversionPrinciple,DIP):
依赖于抽象、而非具体实现。
58.接口分离原则(InterfaceSegregationPrinciple,ISP):
多个用户专用接口比一个通用接口要好。
59.软件复用(SoftWareReuse)是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。
软件复用的级别:
(1)代码的复用;
(2)设计结果的复用;
(3)分析结果的复用;
(4)测试信息的复用。
60.面向对象程序设计的优点:
开发时间短、效率高、可靠性高,所开发的程序更强壮。
由于面向对象编程的可重用性,可以在应用程序中大量采用成熟的类库,从而缩短开发时间,这样程序更易于维护、更新和升级。
继承和封装使得应用程序的修改带来的影响更加局部化。
61.提高可复用性:
减小方法的规模,提高方法的内聚,方法的一致性,策略与实现分开,覆盖全面,少用全局信息,利用继承机制提高可扩充性封装实现策略,减小方法的规模,少使用多分支语句,合理利用多态,精心设计公有方法
62.提高健壮性:
预防用户错误操作,不要预先确定限制条件,先测试后优化
63.健壮性是指软件对于规范要求以外的输入情况的处理能力。
64.健壮的系统是指对于规范要求以外的输入能够判断出这个输入不符合规范要求,并能有合理的处理方式。
65.测试可以发现由于软件存在的缺陷引起的失效。
66.调试是一种开发活动,用来识别引起缺陷的原因,修改代码以及验证是否正确的修改了软件的缺陷。
通过测试发现错误之后还必须诊断并改正错误,这就是调试
67.软件测试的原则?
1)测试用例应由输入数据和预期的输出数据两部分组成。
2)测试用例不仅选用合理的输入数据,还要选择不合理的输入数据。
3)除了检查程序是否做了它应该做的事,还应该检查程序是否做了它不应该做的事。
4)应制定测试计划并严格执行,排除随意性。
5)长期保留测试用例。
6)对发现错误较多的程序段,应进行更深入的测试。
7)程序员避免测试自己的程序。
68.白盒测试是有选择地执行覆盖程序中某些最具有代表性路径的测试方法;
墨盒测试是是根据程序组件的规格说明测试软件功能的方法,也称为功能测试。
69.测试用例是测试使用的文档化细则,其规定如何对软件某项功能或功能组合进行测试。
70.测试用例应包括测试目标和被测功能、测试数据和测试步骤、测试记录和测试结果。
71.设计测试方案的基本目标是:
确定一组最可能发现某个错误或某类错误的测试数据。
72.单元测试:
测试软件中的基本组成单位
73.采用白盒方法,尽可能发现模块内部的程序差错,工作量较大。
74.单元测试越早越好
75.集成测试:
是把多模块按照一定的集成方法和策略,逐步组装成子系统,进而组装成整个系统的测试
76.多模块集成方式一般都采用渐增式,有自顶向下、自底向上和混合式(“三明治”)三种。
77.确认测试:
确认已组装的程序是否满足软件需求规格说明书。
78.系统测试:
目的是保证所实现的系统确实是用户所要的
79.非结构化维护:
若一个软件没有采用软件工程方法进行开发,也没有任何的文档,仅有的是程序的一类软件维护。
特点:
只有源代码,没有或少量的文档,要花费大量的人力、物力,而且很容易出错,很难保证程序的正确性。
80.结构化维护:
软件开发有正规的软件工程方法呵完善的文档的一类软件维护。
可从需求文档弄清系统功能、性能的改变,减少维护人员的精力和花费,提高软件维护效率有很大作用。
6/7
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 知识点 快速 复习 软件工程 方法 实践