中国海洋大学软件工程考研资料_第1页
中国海洋大学软件工程考研资料_第2页
中国海洋大学软件工程考研资料_第3页
中国海洋大学软件工程考研资料_第4页
中国海洋大学软件工程考研资料_第5页
已阅读5页,还剩20页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

中国海洋大学软件工程考研资料

第一章软件工程基本概念

1、软件危机的概念:指在计算机软件的开发与保护过程中所遇到的一系列严重问题。

2、软件危机包含两方面的问题:1)如何开发软件以满足对软件日益增长的需求;

2)如何保护数量不断膨胀的已有软件。

3、软件危机的原因:I)与软件本身的特点有关;2)与软件开发与保护的方法不正确有关。

4、软件危机的消除途径:解决软件危机,既要有技术措施(方法与工具),

又要有必要的组织管理措施。

5、软件工程的概念:软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而

建立与使用完善的工程原理。

6、软件工程的基本原理:1)用分阶段的生命周期计划严格管理

2)坚持进行阶段评审

3)实行严格的产品操纵

4)使用现代程度设计技术

5)结果应能清晰地审杳

6)开发小组的人员应该少而精

7)承认不断改进软件实践的必要性

7、软件工程方法学(3个要素):通常把在软件生命周期全过程中使用的一整套技术方法的集合称之

方法学,也称之范型。三要素:方法、工具与过程。

8、软件生命周期:从软件定义、软件开发与运行保护,直到最终被废弃,要经历一个漫长的时期,

通常把软件经历的这个漫长的时期称之生命周期。

1)软件定义:问题定义、可行性研究与需求分析;

2)软件开发:总体设计、全面设计、编码与单元测试、综合测试;

(前两个称系统设计,后两个称系统实现)

3)运行保护:软件保护;

9、软件过程及其特点:为了会得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任

务的工作步骤。

1)瀑布模型.•a.阶段间具有顺序性与依靠性;①前一阶段的工作完成后,才

能开始后一阶段的工作;②前一阶段的输出文档是后一阶段的

输入文档,前一阶段的输出文档正确,后一阶段的工作才能获

得正确的结果。

b.推迟实现的观点;关于规模较大的软件项目来说,往往编码

开始得越早最终完成开发工作所需要的时间反而越长。

c.质量保证的观点;①每个阶段都务必完成规定的文档.

②每个阶段结束前都要对所完成的文档进行评审,以便尽早发

现问题,改正错误。

优点:文档驱动。

血J①需求模糊的系统可能不满足用户需求。

②线性模型太理想化太单纯,不再适合现代的软件开发模式,几乎被

淘汰。但是“线性”是人们最容易掌握并能熟练应用的思想方法。

2)怏速原型模型.・a.快速开发工具b.循环c.低成本。

优点:关注满足客户需求。

鲤电—快速原型内部结构并不重要,重要的是迅速构建原型,并迅速修改,

以反应客户需求。可能导致系统设计差,效率低,难于保护。一旦需

求确定,往往快速原型将被勉弃。

3)增量模型(渐增模型):

优戊.•开发早期反馈及时(分批逐步的向用户提交产品,用户可完成部分工

作),易于保护。

要警的体系结构,假如体系结构不够强壮可能导致设计差,效

O低。口I

4)螺峰蛾聋:湿然型+快速原型+风险分析:迭代过程

1—[由风履3,支持现有软件的重用。

,点:软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会

带来更珏:风险。

适用范围:…只适用于大规模软件项目,特别是内部项目。

5;焚泉彘叁iX缓用于支持面向对象开发过程,支持软件复用与生存期中多

项开发活动的集成。

b.表达了软件创建所固有的迭代与无间隙的特征,在各项开发活

动,即分析、设计与编码之间不存在明显的边界。

优点;减少了不一致性,降低了出错的可能性。

第二章可行性研究

1、可行性研窕的任务:可行性研究的目的不是解决问题,而是用最小的代价在尽可能短的时间内确

定问题是否能够解决,是否值得去解决。

从四方面研究每种解法的可行性:

(1)技术可行性:(2)经济可行性:(3)操作可行性:(4)法律、社会效益可行性。

2、可行性研究的过程:(I)复直系统规模与目标⑵研究目前正在使用的系统⑶导出新系统的高层逻

辑模型(4)进一步定义问题(5)导出与评价供选择的解法⑹推荐行动方针(7)

草拟开发计划(8)书写文档提交审查。

3、系统的流程图:(。定义:是概括地描绘物理系统的传统工具。

(2)基本思想:用图形符号以黑盒子形式描绘构成系统的每个部件。

###2系统流程图表达的是数据在系统各部件之间流淌的情况,而不是对数据进行加工处理

的操纵过程,是沥理数据流图而不是程序流程图皿###

(3)系统流程图常用符号:

4、系统的数据流图:⑺闻即是训图勿熄i木,它描绘信息流与数曜从而於核动到输日的过程中

—所经受野变恻-------------------------------------------------

###[[[数据流图电系统运4吊功能的微形表焉能彰麴期学拗砌物新漫饮我螃湛鎏初瞬它,

二■^比.分析页与月心之喝裹嬲弱虐工匹】】】###

(2臀据流用的常表示输人或输台(或既输人又编出).是-个广义的不指明具体

II输入物出设备的符号

照F数据源点/终点

连接指出转到图的外•部分或从图的另一部分转来,通常在同一•页上

0朝^---------------数据加工处理-------------------------

换页连接指出转到另哑上或由另;页图转来

________________数据存储(文件)

数据流用来连4都点靠踞血数据流动方向

数据流(动态数据)

*********例子:处理事务的功能进一步分解后的数据流图*********

⑶作我榭靖的目的与用途画数据流图的基本目的是利用它作为交流信息的

工具。

b.数据流图的另一个要紧用途是作为分析与设计

的工具。

5、数据字典的内容:是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

数据字典由下列4类元素的定义构成:

(1)数据流(2)数据流分量(即数据元素)(3)数据存储(4)处理。

###[[[数据流图与数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,

没有数据流图数据字典也难于发挥作用』口###

6、定义数据的方法:通常由3+1种关系算符:

被定义为

+与(顺序结构)x=a+b,表示x由a与b构成;

7、数据字典的用途:

8、数据字典的实现过

#

9、成本/效益分析:〃

c.自动估计成本技术:使用自动估计成本的软件工具能够减轻人的劳

动,问时使得估计的结果更客观。

2)成本!效益分析的方法:a.货币的时间价值:F=P(l+i)An

b.投资回收期:使累计的经济效益等于最初的投资所需要

的时间。(投资回收期越短,获得利润越快)

c.纯收入:在整个生存期之内系统的累计经济效益(折合

成现在值)与投资之差。

d.投资回收率:衡量投资效益的大小。

P=F1/(l+j)+F2/(l+j)2+...+Fn/(l+j)n

第三章需求分析

1、需求分析的任务:1)确定对系统的综合要求2)分析系统的数据要求(通常使用建立数据模型的方法);

即:准确地回答:”系统务必做什么?”

2、获得需求的要紧方法:1)访谈:访谈是使用最早的、迄今仍然最广泛的一种需求分析技术;

2)面向数据流自顶向下求精:结构化分析方法就是面向数据流自顶向卜.逐步

求精进行需求分析的方法;

3)简易的应用规格说明技术:又称面向团队的需求收集法;

优点:开发者与用户不分彼此,齐心协力,密切合作;即时讨论并求精;

4)快速建立软件原型:a.方法与工具:(1)第四代技术(4GT):(2)可重用的软

件构件;(3)形式化规格说明与原型环境。

b.特点:(1)快速;(2)容易修改。

c.优点:关注满足客户需求。

d.缺点:可能导致系统设计差,效率低,难于保护。

3、分析建模:根据绍挖化处必隹则,需求分析过程应该建立3种模型数据模型(实体-联系图E-R)

功能模型(数据流图DFD)

行为模型(状态转换图STD)

4、实体一联系图:1)描绘数据对象及数据对象之间的关系,用于建立数据模型。

数据对象:能够由一组属性来定义的实体。

2)数据模型包含数据对象的属性:定义了数据对象的性质。一对一

箪据对象的联X:数据对象彼此和T相IT连接应方式,一对多

状态1状态2多对多

3)例子:

5、状态转换图:1)通过独绫搬井推优^及粉嵬紫绿状态炉拗御旭粽案谢勺行港髀嘲件

2)状态转换图的3部分:[

出这态二⑴状态:E何嘏魏观*到的系统行为岖;「个聚态,弋表系统的一种

,行为模卜---------7'----------)

•12)状态图中定义的状态要紧有;初态(初始状态)、终态(最终状态)与

,中间状态。在一张状态图中只能有一个初态,而终态则能够有0至多个。

2星展引起系统做动作或者(与)转换状态的操纵信息。

c.符号.•⑴初态:用实心圆表示;(2)终态:用一对同心圆表示;(3)中间状态:

用圆角矩形表示。

输入处理输出/必选)IPC)&

J做的彳,呼系统:作者:

旧的主文件;器模块:n期:

主记录可选)

层次方框绍(重要)

6、其他图形工具:IPO图(漳簟忙於

有效的

事务记录

1)层次方框图:用树形结耶勺:系列多层次的矩物弹螂辇据的层次结材7

2〃尸。图.•是输入、处理、;冬I的简称,能够方便也i绘输入数据、对数掂的处理与

喻出一搪里加J白蟒物的刃级描运。后坪数据元素:注杵:

主记录主文件

改进

(项目名称)(供应商名称)

G(开工日期)(供应商编号涵

验证需求后供应商

7、验证软件需求的方法:验证需求的现

国i「购量)

物址而氽的完整性写有

8、验证软件需求分析的工具:PSL/PSA(问题陈述语言冰f程序)系统。

丝」改进了文档质量,能保证性与无二义性,从而可

(零件出号)(零件书称)阳色

以减少管理与保护的那用;数据存放在数据库中,便于增加、删除与更换。

第四章总体设计

总体设计/概要设计/初步设计的目的:”概括地说,系纭应该如何实现?”Howtodo?

2、总体设计过程:1)通常由两个要紧阶段构成:a.系统〃计阶段,确定系统的具体实现方案;

b.结构殳计阶段,确定软件结构;

2)典型的总体设计过程包含9个步骤:I.设想供选择的方案

选取合理的方案

推荐最佳方案

4.功能分解:先进行结构设计(总体设计阶

段),然后过程设计(全面设计阶段);

5.设计软件结构:能够用层次图或者结构

来描绘;

6.设计数据库

制定测试计划

8.书写文档

9.审查与复审

3、总体设计原理:1)模块化:把程序划分成独立命名且可独立访问的模块,每个模块完成•个子功能,

这些模块集成起来构成一个整体,能够完成指定的功能满足用户的需求。

(1)优点:使软件结构清晰;使软件容易测试与调试;能够提高软件的可修改性。

【【【模块是构成程序的基本构件。】】】

2)抽象:抽出事物的本质特性而暂时不考虑细节(忽略差异,集中相似在一起)。

3)逐步求精:是人类解决更杂问题时使用的基本方法,是一种自顶向下的设计策略。

4)信息隐藏与局部化:局部化有助于实现信息隐藏。

5)模块独立:是模块化、抽象、信息隐藏与局部化概念的直接结果。

(1)度量模块独立程度的两个定性标准:内聚与耦合。

(2)为什么模块的独立性很重要?

a.有效的模块化(即具有独立的模块)的软件比较容易开发出来。

b,独立的模块比较容易测试与保护。

(3)耦合:对一个软件结构内不一致模块之间互连程度的度显。

a.设计目标:软件设计中追求尽可能松散耦合的系统。

b.模块间耦合的类型:

牺(1)数据耦合

合(2)控制耦合

性(3)特征耦令

(4)公共环境榴合件

(5)内容耦合

C.①数据耦合:两个模块彼此间通过参数交换信息,而且交换的信息

仅仅是数据;属松散耦合。

【【【系统中至少存在这种耦合】】】

②操纵耦合:一个模块通过传送开关、标志、名字等操纵信息,明显地

操纵选择另一个模块的功能。

【【【操纵耦合增加了系统的复杂程度,通常是把它分解然后用数据耦

合代替它】】】

③特征耦合:把整个数据结构作为参数传递而被调用的模块只需要使用

其中一部分数据元素。

④公共环境耦合:两个或者多个模块通过一个公共数据环境相互作用。

⑤内容耦合:它是最高程度的耦合。

d.模块化设计的原则:

尽量使用数据耦合,少用操纵耦合与特征耦合,

限制公共环境耦合的范围,完全不用内容耦合。

(4)内聚:标志一个模块内各个元素彼此结合的紧密程度,它是信息隐藏与局部

化概念的自然扩展。

a.设计目标:高内聚。

b.模块的内聚类型:

(1)偶然内聚弱(功能分散)

(2)逻辑内聚「低模

(3)时间内聚块

_(4)过程内聚J中独

_(5)通信内聚「立

_(6)顺序内聚市

高(7)功能内聚「'

强(功能单一)

c.①偶然内聚:一个模块完成一组任务,这些任务彼此间即使有关系,关

系也很松散。

【【【缺点:可懂得性差,可修改性差】】】

②逻辑内聚:一个模块完成的任务在逻辑上属于相同或者相似的一类。

【【【缺点:增强了耦合程度(操纵耦合)不易修改,效率低】】】

③时间内聚④过程内聚⑤通信内聚⑥顺序内聚

⑦功能内聚:模块内所有处理元素属于一个整体,完成一个单一的功能。

【【【功能内聚是最高程度的内聚八】

d.设计目标:强内聚、弱耦合,获得较高的模块独立性。

4、启发规则:利用长期实践中积存的丰富经验来改进软件设计,提高软件质量。

1)几条启发式规则:

(1)改进软件结构提高模块独立性;

(2)模块规模应该适中;

(3)深度、宽度、扇出与扇入都应适当;

a.深度:表示软件结构中操纵的层数。

b.宽度:是软件结构内同一个层次上的模块总数的最大值。

c.扇出:一个模块直接操纵(调用)的模块数目。

d.扇入:说明有多少个上级模块直接调用它。

【【【设计得很好的软件结构通常:顶层扇出比较高,中层扇一较低,底层扇入

到公共的有用模块中去(底层模块有高扇入)】】】

(4)模块的作用域应该在操纵域之内;

(5)力争降低模块接口的复杂程度:

(2)箭头(或者直线)表示模块的调用关系。

(3)带注释的箭头表示模块调用过程中来回传递的信息:

a.尾部是空心圆表示传递的是数据;

b.实心圆表示传递的是操纵信息。

O--------

数据信息

控制信息

不加区别的信息

(4)附加符号:

a.选择调用b.循环调用

6、面向数据流的日

结构化设计方法(简称SD方法):即基于数据流的设计方法。

1)概念:把信息流(数据流)映射成软件结构。

(1)变换流:信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入

系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外

部形式离开软件系统。

(2)事务流:数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在

若干个动作序列中选出一个来执行。

变换流事务流

2)变换分析:通过一系列设计步骤把具有变换流特点的数据流图按预先确定的

模式映射成软件结构。

交换流

输入流7-----

输出流

3)事务分析:数据流具有明显的事务特点(事务中心)时,

II

ux

传统开发方法

内…面向数据结构的j>ks这法:见第q粉

哨硒对象方法(蕊电$侬、FW7头

第五章全面设计三

HP>>

全面设计阶段的根本目标:'确定应该如

结构程序设计:IIIPI)

^^^^^逐公秒基本操纵结构进行连接,同时每

1)假如一个程序的代码块仅仅通产顺灯

个代码块只有•个入口与劣出口,融个程序是赢化的“

2)三种基本的操纵结构:’

3、人机界面设计:

1)在设计人机界面的过程中,有下述4个问题:

’系统响应时诃:从用户完成某个操纵动作到软件给出预期的响应之间的这段时间。

,用户帮助设施:常见的帮助设施可分为集成的与附加的两类。

出错信息处理:(无)

命令交互:菜单+键盘输入。

4、过程设计工具:

1)程序流程图:

优点:直观、容易掌握,且历史“久”,使用广泛。

缺点:本质上不具备逐步求精的特点;用箭头代表操纵流,转移操纵太方便;

不易表示数据结构。1

2)盒图(N・S图):

概念:是一种符合结构化程序设计原则的图形描述工具,用方框图代替传统的流程图。

特点:(1)功能域明确,能够从盒图上一眼就看出来。

(2)不可能任意转移操纵。

(3)很容易确定局部与全程数据的作用域。

(4)很容易表现嵌套关系,也能够表示模块的层次结构。

例某模决

有三个输入H、

b、c,——个

播出s,

当时,

s=b+2c,

当a=2时,

s=2t>-c,

当吁3时,

s=bc

画山该模块

的Z-S图。

(3)WHILE重复型UNTIL重复型

(先测试循环)(后测试循环)

DO-WHILEP

S

S(循环体)

(循环体)

DO-UNTILP

循环条件

3)PAD图(问题分析图):

速公_用二维树形结构的图来表示程序的操纵流,将这种图翻译成程序代码比较容易。

优点:(1)使用表示结构化操纵结构的PAD符号所设计出来的程序必定是结构化程序。

(2)PAD图所描绘的程序结构十分清晰。

(3)用PAD图表现程序逻辑,易读、易懂、易记。

(4)容易将PAD图转换成高级语言源程序。

(5)即可月于表示程序逻辑,也可用于描绘数据结构。

(6)PAD图的符号支持自顶向下、逐步求精方法的使用。

例2、某模块有

三个输入a、b和

c,一个输出s,

当a=l时*,

s=b4-2c,当a=2

时,s=2b-c»当

a=3时,s=bo画

出该模块的PADc

⑶WHILE重复型UNTIL重复型

(先测试循环)(后测试循环)

WhilepdosRepeatsuntilp

4)判定表:

概念:当算法中包含多重嵌套的条件选择时,判定表能够清晰地表示复杂的条件组合与

应做的动作之间的对应关系。

共有2X2X2+1=9种组合__________逑色____________

123456789

‘国内乘客TTTTFFFF

条件Y头等舱TFTFTFTF

残疾乘客FFTTFFTT

[行李重量

WV30TFFFFFFFF

免费X

(W-30)x2X

(W-30)x3X

动作Y

(W-30)x4XX

(W-30)x6XX

(W-30)x8X

,(W-30)x12

X

用判定表表卜算,行召E费1狗算法

5)判定树:它是判定目W的变种。

共有2X2X2+1=9种组合

-残疾乘客——(W-30)x2

L头等舱J正常乘客—(W-30)x4

—国内乘客

1—其他舱|残疾乘客——(W-30)x3

行李重量

正常乘客一

W>30(XV-30)X6

行李费一头等舱L残疾乘客一(W-30)x4

算法正常乘客一(W-30)x8

1—外国乘客

J其他舱|残疾乘客——(W-30)x6

行李重量正常乘客一OV-30)x12

一免费

W<30

图6.7用判定树表示计算行李费的算法

判定树与判定表的优缺点:

优点缺点

判定表能清晰地表示复杂的条含义不能一眼就看出来;数

件组合与应做的动作之据兀素的值多十两个时判定

表的简洁程度将下降(如对机

间的对应关系。

票需细分为头等舱、二等舱

和经济舱等多种级别时)。

判定树能清晰地表示复杂的条数据元素的同一个值往往要

件组合与应做的动作之重复写多遍,而且越接近树

间的对应关系。它的形

式简单,含义明显,易的叶端重复次数越多。

于掌握和使用。

注:判定表与判定树并不适用于作为一种通用的设计工具,通常用于辅助测试。

5、面向数据结构的设计方法:

。定义;根据数据结构设计程序处理过程的方法。

目标.•得出对程序处理过程的描述。

步骤.•使用面向数据流的方法设计软件结构一一使用面向数据结构的方法来设计每个模块

的处理过程,

代表:Jackson方法与Warnier方法是最著名的两个面向数据结构的设计方法。

2)Jackson图:

(1)优点:a.便于表示层次结构,而且是对结构进行自顶向下分解的有力工具。

b.形象直观可读性好。

c.既能表示数据结构也能表示程序结构。

(2)三种类型:

顺序结构选择结构重复结构

AAA

(3)Jackson方法的步3聚:

①分析并确定输入数据与输出数据的逻辑结构,并用Jackson图描绘这些数据结构。

②找出输入数据结构与输出数据结构中有对应关系的数据单元。

③从描绘数据结构的Jackson图导出描绘程序结构的Jackson图。

④列出所有操作与条件,同时把它们分配到程序结构图的适当位置。

⑤用伪码表示程序。

3)程序复杂程度的定量度量:

上鹿缸_程序的复杂性要紧指模块内程序的复杂性。

(2)McCabe方法:根据程序操纵流的复杂程度定量度量程序的复杂程度。其结果称之程序

的环形复杂度。

①方法:先画出流图,然后用该图的环路数作为程序复杂性的度量值。

②流图构成:圆:结点(一个圆代表一条或者多条语句)。

J■箭头线:边。

③计算环形蠡度的方法:

a.环形复杂度二流图中的区域数。

b.环形复杂度V(G尸E-N+2,其中E是边数,N是结点数。

c.环形复杂度V(G)=P+1,其中P是判定结点数。

④例子:

【【【实践说明,模块规模以V(G)W10为宜,V(G)=10是模块规模的一个更科学

更精确的上限。D】

3)而加"以方法:根据程序中可执行代码行的运算符与操作数(运算对•象)的个数来计

算程序的复杂性。

①nl:程序中不一致运算符的个数

n2:程序中不一致操作数(运算对象)的个数

N1:程序中实际出现的运算符总个数

N2:程序中实际出现的操作数(运算对象)总个数

N(程序长度尸N1+N2

H(程序预测长度)=nIlog2n1+n21og2n2

E:预测程序中包含错误的个数

E=Nlog2(nl+n2)/30()0

第六章实现

1、编码风格:

1)源程序代码的逻辑简明清晰、易读易懂是好程序的一个重要标准。

2)①程序内部的文档:包含恰当的标识符、适当的注解与程序的视觉组织等(例:次数一times)。

②数据说明:数据说明的次序应该标准化,能够加速测试、调试与保护的过程。

③语句构造:每个语句都应该简单而直接。

④输入输出:对所有输入数据都进行检验;保持输入格式简单。

⑤效率:要紧指处理机时间与存储器容量两个方面。

[[[不要牺牲程序的清晰性与可读性来不必要地提高效率。]]]

2、测试的定义与目标:

1)概念:①测试是为了发现程序中的错误而执行程序的过程;

②好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;

③成功的测试是发现了至今为止尚未发现的错误的测试。

温馨提示

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

评论

0/150

提交评论