还剩9页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
第一章
1.软件危机的概念软件危机是指在计算机软件的__和维护过程中所遇到的一系列严重的问题
2.产生软件危机的原因1__人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成造成__中制定计划盲目、编程草率,不考虑维护工作的必要性2软件本身方面,对于计算机系统来说,软件是逻辑部件,软件__过程没有统一的、公认的方__和规范指导,造成软件维护困难3尤其是随着软件规模越来越大复杂程度越来越高原有软件__方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求
3.软件配置的主要包括程序、文文件和数据等成分
4.软件工程的定义软件工程是应用计算机科学、数学及管理科学等原理__软件的工程它借鉴传统工程的原则、方法,以提高质量,降低成本为目的(ppt上定义)
5.所谓基准配置又称基线配置
6.通常把在软件生命周期全过程中使用的一整套技术方法的__称为方法学,也称为范型
7.软件工程方法学包含三个要素方法、工具和过程
8.目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学
9.传统方法学也称为生命周期方法学或结构化范型
10.面向对象方法学的四个要点
1.把对象作为融合了数据及在数据上的操作行为的统一的软件构件
2.把所有对象都划分成类
3.按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)
4.对象彼此间仅能通过发送消息互相__
11.软件生命周期软件定义(问题定义,可行性研究,需求分析)、软件__(总体设计,详细设计,编码,单元测试,总体测试)、运行维护(持久地满足用户的需要)
12.最基本的测试是集成测试和验收测试
13.瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型,概念.方法.优缺点.区别
14.所谓构件就是功能清晰的模块或子系统
15.RUP(Rational统一过程)软件__的生命周期是一个二维的生命周期模型
16.”极限”二字的含义是指把好的__实践运用到极致
17.微软过程把软件生命周期划分为成5个阶段规划阶段,设计阶段,__阶段,稳定阶段,发布阶段
18.面向对象方法=对象+类+继承+用消息通信第二章可行性研究
19.可行性研究的目的就是用最小的代价在尽可能多的时间内确定问题能否能够解决
20.可行性包括技术可行性,经济可行性,操作可行性
21.系统流程图是概括地描绘物理系统的传统工具它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文文件,数据库,人工过程等)系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据__处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流程图而不是程序流程图
22.书库流图DFD是一种图形化技术,它描绘信息流和数据从输入__到输出的过程中所经受的变换在数据流程图中没有任何具体的物理部件,它只描绘数据在软件中流动和被处理的逻辑过程数据流程图是系统逻辑功能的图形表示
23.用系统流程图描绘一个系统时,系统的功能和实现每个功能的具体方案是混在一起的
24.有数据元素组成的数据的方式只有下述3种基本类型顺序(即以确定次序连接两个或多个分量)选择即从两个或多个可能的元素中选取一个重复即把指定的分量重复零次或多次第三章
25.访谈有两种基本形式,分别是正式的和非正式的访谈
26.所谓情景分析就是对用户将来使用目标系统解决某个具体问题的方法和结果进行分析
27.结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法
28.使用简易的应用规格说明技术分析需求的典型过程(总结出来)
29.快速原型就是快速建立起来的旨在演示目标系统主要功能的可运行的程序
30.所谓模型就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述功能模型,行为模型.
32.概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型
33.数据对象是对软件必须理解的符合信息的抽象
34.数据对象彼此之间相互连接的方式称为__,也称为关系__可分为3种类型一对一__,一对多__,多对多__
35.状态时任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式
36.__就是引起系统做动作或(和)转换状态的控制信息
37.IPO图是输入,处理,输出图的简称
38.软件的验证一致性,完整性,现实性,有效性第五章
42.总体设计过程通常由两个主要阶段组成系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构
43.模块是由边界元素限定的相邻程序元素(例如,数据说明,可执行的语句)的序列
44.抽象就是抽出事物的本质特性而暂时不考虑它们的细节
45.逐步求精定义为了能集中精力解决主要问题而尽量推迟对问题细节的考虑
46.抽象程序对抽象的数据进行某些特定的运算并用某些合适的记号(可能是自然语言)来表示
47.信息隐藏,信息隐藏的原理,
48.局部化就是把一些关系密切的软件元素物理的放得彼此靠近
49.耦合是对一个软件结构内不同模块之间互连程度的度量
50.数据耦合是低耦合,控制耦合式中等程度的耦合,最高程度的耦合式内容耦合
51.如果一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散的,就叫做偶然内聚
52.中内聚主要有两类如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过程内聚
53.高内聚也有两类如果一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行,则称为顺序内聚深度表示软件结构中控制的层数,它往往能粗略的标志一个系统的大小和复杂程度
54.宽度是软件结构内同一个层次上的模块总数的最大值
55.扇出事一个模块直接控制(调用)的模块数目
56.一个模块的扇入表明有多少个上级模块直接调用它
57.设计的很好的软件结构通常顶层扇出比较高,中层扇出比较少,底层扇入到公共的实用模块中去(底层模块有高扇出)
58.模块的作用域应该在控制域之内(2种方法)?????
59.面向数据流的设计方法把信息流映像成软件成结构,信息流的类型决定了映射的方法信息流有两种类型变换流,事务流
60.总体设计阶段的基本目的是用比较抽象概括的方式确定系统如何完成预定的任务,也就是说,应该确定系统的物理配置方案并且进而确定组成系统的每个程序的结构
61.在进行软件结构设计时应该遵循的最主要的原理是模块__原理
62.第六章
63.结构程序设计的经典定义如果一个程序的代码仅仅通过顺序,选择和循环这3种基本结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的
64.系统响应时间指从用户完成某个控制动作(例如,按回车键或单击鼠标),到软件给出预期的响应(输出信息或动作)之间的这段时间
65.系统响应时间有两个重要的属性长度和易变性
66.易变性指系统响应时间相对于平均响应时间的偏差
67.一般交互指南涉及信息显示,数据输入和系统整体控制
68.过程涉及的工具:程序流程图,盒图,PAD图,判定表,判定树
69.PDL作为一种设计工具有如下一些特点(要求看懂伪码)第七章
70.通常把编码和测试统称为实现
71.编码和单元测试属于软件生命周期的同一个阶段
72.编码的标准
1.系统用户的要求
2.可以使用的编译程序
3.可以得到的软件工具
4.工程规模
5.程序员的知识
6.软件可移植性要求
7.软件的应用领域
73.所谓程序内部的文文件包括恰当的标识符、适当的注释和程序的视觉组织等
74.当多个变量名在一个语句中说明时,应该按字母顺序排列这些变量
75.效率主要指处理机时间和内存容量两个方面
76.在大型计算机中必须考虑操作系统页式调度的特点,一般说来,使用能保持功能域的结构化控制结构,是提高效率的好方法
77.二级内存的输入输出应该以信息组为单位进行
78.测试阶段的根本目标是尽可能地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用
79.软件测试的目标
1.测试是为了发现程序中的错误而执行程序的过程
2.好的测试方案是发现了至今为止发现的错误的测试
3.成功的测试是发现了至今为止尚未发现的错误的测试
80.测试的正确定义是“为了发现程序中的错误而执行程序的过程”第八章
81.软件工程的主要目标就是要提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本
82.所谓软件维护就是在软件应经交付使用之后,为了改正错误或满足新的需要而修改软件的过程
83.四种维护的定义
1.改正性维护
2.适应性维护
3.完善性维护
4.预防性维护P1__
84.用于维护工作的劳动可以分成生产性活动和非生产性活动
85.每个维护要求都通过维护___转交给熟悉该产品的系统___去评价
86.适应性维护和完善性维护的要求沿着相同的__流通路前进
87.当发生恶性的软件问题时,就出现所谓的“救火”维护要求
88..评价维护活动
1.每次程序运行平均失效的次数
2、用于每一类维护活动的总人时数
3.平均每个程序、每种语言、每种维护类型所作的程序变动数
4.维护过程中增加或删除一种源语句平均花费的人时数
5.维护每种语言平均花费的人时数
6.一张维护要求表的平均周转时间
7.不同维护类型所占的百分比__.可以把软件的可维护性定性的定义为维护人员理解,改正,改动或改进这个软件的难易程度
90.决定软件可维护性的因素
1.可理解性可测试性可修改性可移植性可重用性
91.所谓重用是指同一事物不做修改或稍加改动就在不同环境中多次重复使用
92.软件系统的文文件可以分为用户文文件和系统文文件两类用户文文件主要描述系统功能和使用方法,并不关心这些功能是怎样实现的;系统文文件描述系统发设计、实现和测试等各方面的内容预防性维护方法是由Miller提出来的,他把这种方法定义为“把今天的方法学应用到昨天的系统上,以支持明天的需求”第九章面向对象方法学引论
93.使描述问题的’问题空间’(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致
94.人们把计算机中的实体称为解空间对象
95.对对象施加的操作就是该对象的行为
96.面向对象方法学的优点
1.与人类习惯的思维方法一致
2.稳定性好
3.可重用性好
4.轻易__大型软件软件产品
5.可维护性好
97.面向对象方法学的基本原则是按照人类习惯的思维方法建立问题域的模型,__出尽可能直观、自然地表现求解的软件系统
98.传统的软件重用技术是利用标准函数库
99.对象的概念在应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象,它既可以是具体的物理实体的抽象,也可以是认为的概念,或者是任何有明确边界和意义的东西
100.通常把对象的操作称为服务或方法
101.对象的定义定义
1.对象是具有相同状态的一组操作的__定义
2.对象是对问题域中某个东西的抽象,这种抽象反映了系统保存有关这个东西的信息或它交互的能力,也就是说,对象是对属性值和操作的封装
102.对象是封装可数据结构及可以施加在这些数据结构上的操作的封装体
103.对象中的数据表示对象的状态,一个对象的状态只能由该对象的操作来改变
104.对象的特点
1.以资料为中心
2.对像是主动的
3.实现了数据封装
4.本质上具有并行性
5.模块__性好
105.类是具有相同属性和行为的一个或多个对象的描述
106.类是支持继承的抽象的抽象数据类型,而对象就是类的实例
107.实例就是由某个特定的类型所描述的一个具体的对象
108.消息就是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明
109.消息的3个组成部分
1.接收消息的对象
2.消息选择符(也称为消息名)
3.零个或多个变元
110.方法就是对象所能执行的操作,也就是类中所定义的服务,方法描述了对象执行操作的算法,响应消息的方法,在C++语言中把方法称为成员函数
111.属性就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象类中的每个实例都有自己特有的属性值在C++语言中把属性称为数据成员
112.所谓封装就是把某个事物包起来,使外界不知道该事物的具体内容
113.对象具有封装性的条件
1.有一个清晰地边界
2.有确定的界面(即协议)
3.受保护的内部实现___.对象类实质上是抽象数据类型
115.继承是指能够直接获得已有的性质和特征,而不必重复定义它们在面向对象的软件技术中,继承是子类自动地共享基类中定义的数据和方法的机制继承具有传递性
116.多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象也就是说,在类等级的不同层次中可以共享(公用)一个行为(方法)的名字,然而不同层次中的每个类却各自按自己的需求来实现这个行为
117.在C++语言中,多态性事通过虚函数来实现的虚函数机制使得程序员能在一个类等级中使用相同函数的多个不同版本,在运行时刻才根据接收消息的对象所属于的类,决定到底执行哪个特定的版本,这称为动态联编,也叫滞后联编
118.函数重载是指在同一作用域内的若干参数特征不同的函数可以使用相同的函数名字;运算符重载是指同一运算符可以施加与不同类型的操作数上面
119.在C++语言中函数重载时通过静态联编(也叫先前联编)实现的
120.通常需要建立3种形式的模型,它们分别是描述系统数据结构的对象模型,描述系统控制结构的动态模型和描述系统功能的功能模型
121.类图描述类及类之间的静态关系
123.类的属性中还可以有一种能够该类所有对象共享的属性,称为类的作用域属性,也称为类变数
124.关联表示两个类的对象之间存在某种语义上的__
125.关联普通关联,关联的角色,限定关联,关联类P
219126.聚集也称为聚合,是关联的特例聚集表示类与类之间的关系式整体与部分的关系
127.除了一般聚集之外,还有特殊的聚集关系,分别是共享聚集和组合聚集
128.没有具体对象的类称为抽象类抽象类通常作为父类,用于描述其它类(子类)的公共属性和行为
129.多重继承指的是,一个子类可以同时多次继承同一个上层基类
130.与多重继承相反的是不相交继承,即一个子类不能多次继承同一个基类131完全继承指的是父类的所有子类都已在类的图中穷举出来了132不完全继承与完全继承恰好相反,父类的子类并没有都穷举出来,随着对问题理解的深入,可不断补充和维护133依赖和细化
1.依赖关系
2.细化关系
134.动态模型它规定了对象模型中的对象的合法变化序列
136.所谓状态是对对象属性值的一种抽象
137.一个触发行为称作一个__
138.一个__分开两个状态,一个状态隔开两个__,__表示时刻,状态代表时间间隔
139.功能模型有一组数据流程图组成
140.一幅用例图包含的模型元素有系统、行为者、用力及用例之间的关系
141.用例的定义一个用例是可以被行为者__到的、系统的一个完整的功能
142.行为者指与系统交互的人或其它系统,它代表外部实体
143.行为者代表一种角色,而不是某个具体的人或物
144.可以把行为者分成主行为者和副行为者,还可以分成主动行为者和被动行为者
145.UML用例之间主要有扩展和使用两种关系,它们是泛化关系的两种不同形式第十章
146.面向对象分析(OOA)的关键是识别出问题域内的类和对象,并分析它们相互间的关系,最终建立起问题域的简洁、精确、可理解的正确模型
146.一个用例必须至少与一个行为者相关联
147.面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程
148.面向对象建模型得到的模型包含形同的3个要素,即静态结构(对象模型)、交互次序(动态模型)和数据变换(功能模型)
149.复杂问题(大型系统)的对象模型通常由下述5个层次组成主题层、类与对象层、结构层、属性层、服务层
150.建立对象模型的5项主要活动找出类与对象,识别结构,识别主题,定义属性,定义服务
151.需求陈述的内容包括问题范围,功能需求,性能需求,应用环境及假设条件等
152.面向对象分析首要的工作,是建立问题域的对象模型这个模型描述了现实世界中的“类与对象”以及它们之间的关系,表示了目标系统的静态数据结构
153.典型的工作步骤是首先确定对象类和关联(因为它们影响系统整体结构和解决问题的方法),对于大型复杂问题还要进一步划分出若干主题;然后给类和关联增添属性,以进一步描述它们;接下来利用适当的继承关系进一步合并和组织类而对类中操作的最后确定,则需要等到建立了动态模型和功能模型之后,因为这两个子模型更准确地描述了对类中提供的服务的需求
154.非正式分析这种分析方法以用自然语言书写的需求陈述为依据,把陈述中的名词作为类与对象的候选者,用形容词作为确定属性的线索,把动词作为服务(操作)的候选者
155.本身具有属性需__存在的操作,应该作为类与对象
156.可以使用两种建立继承(即泛化)关系自底向上自顶向下
157.建立动态模型的第一步,是编写典型交互行为的脚本
158.脚本是指系统在某一执行时间期间内的交互过程,以便对目标系统的行为有更具体的认识
159.功能模型表明了系统中数据之间的依赖关系,以及有关的数据处理功能,它由一组数据流程图组成
160.应该仔细对照状态图和数据流程图,以便更正确地确定对象应该提供的服务
161.尽量利用继承机制以减少所需要定义的服务数目第十一章面向对象设计
162.设计则是把分析阶段得到的需求转变成符合成本和质量要求的,抽象的系统实现方案的过程
163.系统设计确定实现系统的策略和目标系统系统的高层结构对象设计确定解空间中的类,关联,接口形式及实现服务的算法
164.所谓优秀设计,就是权衡了各种因素,从而使得系统在其整个生命周期中的总开销最小的设计
165.面向对象设计准则
1.模块化
2.抽象
3.信息隐藏
4.弱耦合
5.强内聚
6.可重用
166.在面向对象设计中存在下述3种内聚;
1.服务内聚
2.类内聚
3.一般-特殊内聚
167.重用有两个方面的含义一是尽量使用已有的类(包括__环境提供的类库,及以往__类似系统时创建的类),二是如果确实需要创建新类,则在设计这些新类的协议时,应该考虑将来的可重复使用性
168.保证设计结果清晰易懂的主要因素如下
1.用词一致
2.使用已有的协议
3.减少消息模式的数目
4.避免模糊的定义
169.一个类提供的公共服务不超过7个
170.消息中参数不要超过3个
171.一般只有3-5行源程序语句
172.通常把类属的体系结构模板称为领域体系结构
173.面向对象技术中的”类”,是比较理想的可重用软构件,不妨称之为类构件类构件有3种重用方式,分别是实例重用、继承重用、和多态重用
174.可重用软构件应具备的特点
1.模块__强
2.具有高度可塑性
3.接口清晰,简明、可靠
175.转换接口,是为了克服与表示方法、数据结构或硬件特点相关的操作给重用带来的困难而设计的,这类接口是每个类构件在重用时都必须重新定义的服务的__当使用C++语言编程时,应该在根类(或适当的基类)中,把属于转换接口的服务定义为纯虚函数
176.当用C++语言实现时,在基类中把这类服务定义为普通的虚函数
177.
178.系统的主要组成部分称为子系统
179.子系统的数目应该与系统规模基本匹配
180.子系统之间的两种交互方式客户-供货商关系平等伙伴关系
181.层次结构又可以进一步划分成两种模式封闭式和开放式
182.窄菱模式,阔菱模式P
271183.所谓命令层次,实质上是用过程抽象机制组织起来的、可供选用的服务的表示
184.所谓控制线,是一条编辑状态图__的路径,在这条路径上每次只有一个对象是活动的在计算机系统中用任务实现控制线,一般认为是进程的别名通常把多个任务的并发执行称为多任务
185.__通常是表明某些数据到达的__
186.时间驱动型任务的工作过程如下任务设置了唤醒时间后进入睡眠状态;任务睡眠(不消耗处理器时间),等待来自系统的中断;一旦接收到这种中断,任务就被唤醒并做他的工作,通知有关的对象,然后该任务又回到睡眠状态
187.设计者必须通过计算系统载荷(即每秒处理的业务数及处理一个业务所花费的时间),来估算所需要的CPU(或其它固件)的处理能力
188.使用硬件实现某些子系统的主要原因
1.现有的硬件完全能满足某些方面的需求
2.专用硬件比通用的CPU性能更高1__.功能模型指明了系统必须提供的服务
190.通过某种运算而从其它数据派生出来的数据,是一种冗余数据
191.委托把一类对象作为另一类对象的属性,从而在两类对象间建立组合关系第十二章
192.面向对象实现主要包括两项工作把面向对象设计结果翻译成用某种程序语言书写的面向对象程序;测试并调试面向对象的程序
193.所有面向对象语言都允许用户动态创建对象,并且可以用指针引用动态创建的对象
194.一般说来,有两种实现方法,分别使用指针和__的关联对象实现整体-部分结构
195.通常使用强类型编译型语言__软件产品,使用弱类型解释型语言快速__原型
196.所谓参数化类,就是使用一个或多个类型去参数化一个类的机制,
197.至少应该包括下列一些基本的软件工具编辑程序,编译程序或解释程序,浏览工具,调试器等
198.在__大型系统的时候,需要有系统构造工具和变动控制工具
199.提高可重用性的主要准侧
1.提高方法的内聚
2.减小方法的规模
3.保持方法的一致性
4.把策略与实现分开
5.全面覆盖
6.尽量不使用全局信息
7.利用继承机制
200.面向对象软件的集成测试主要有下述两种不同的策略
1.基于线程的测试
2.基于使用的测试.
201.测试类的方法:
1.随机测试
2.划分测试(包括
1.基于状态的测试
2.基于属性的测试
3.基于功能的测试)
3.基于故障的测试第十三章软件项目管理
202.所谓管理就是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程
203.公式L=a-+4m-+b-/6【要求会算】P
305204.当程序较小时常用的单位是代码行数(LOC),当程序较大时常用的单位是千行代码数
205.信息域的5个特性输入项数输出项数查询数主文件数外部接口数
206.估算功能点【要会】P
306207.Brooks规律:向一个已经延期的项目增加人力,只会使得它更加延期
208.甘特图P
304209.__仅仅是可以明确定义的时间点,它并不消耗__和资源
210.虚拟作业也就是事实上并不存在的作业,引入虚拟作业时为了显示地表示作业之间的依赖关系
211.为每个__计算下述两个统计数字最早时刻EET和最迟时刻LET
212.__的最迟时刻是在不影响工程竣工时间的前提下,该__最晚可以发生的时刻按照惯例,最后一个__(工程结束)的最迟时刻就是它的最早时刻
213.工程网络比Gantt图优越的地方它现实地定义__及作业之间的依赖关系
214.__制程序员组(简述题)【P320】
215.程序设计小组的规模应该比较小,以2-8名成员为宜
216.概括的说,软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”
217.软件质量保证措施
1.技术复审的必要性
2.走查
3.审查(综述,准备,审查,返工,跟踪)
4.程序正确性证明【P326】
218.软件过程的输出信息可以分为3类
1.计算机程序(源代码和可执行程序)
2.描述计算机程序的文文件(供技术人员或用户使用)
3.数据(程序内包含的或在程序外的)
219.IEEE把基线定义为已经通过了正式复审的规格说明或中间产品,它可以作为进一步__的基础,并且只有通过正式的变化控制过程才能改变它(完)。