软件工程基础知识点总结_第1页
软件工程基础知识点总结_第2页
软件工程基础知识点总结_第3页
软件工程基础知识点总结_第4页
软件工程基础知识点总结_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、

:是计算机系统中与硬件相互依存的另一部份,是包括

程序、数据以及相关文档的完整集合。

1)程序是软件开辟人员根据用户需求开辟的、用程序设计语言描述

的、适合计算机执行的指令(语句)序列。

2)数据是使程序能够正常操作信息的数据结构.

3)文档是与程序开辟、维护和使用有关的图文资料.

国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程

序、规程、规则以及可能有的文件、文档及数据。

2、

:

1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机

的无形部份;

2)软件的生产与硬件不同,它没有明显的制作过程;

3)软件在运行、使用期间不存在磨损、老化问题;

4)软件的开辟、运行对计算机系统具有依赖性,受计算机系统的限

制,这导致了软件移植的问题;

5)软件复杂性高,成本昂贵;

6)软件开辟涉及诸多的社会因素

3、

:

按照功能可以分为:应用软件、系统软件、支撑软件(或者工具软件)

2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机

用户提供各种服务的软件。

3)支撑软件是介于系统软件和应用软件之间,协助用户开辟软件的工

具软件.

4、

:是指在软件的开辟和维护过程中所遇到的一系列严重

问题。软件危机主要体现在以下几个方面:

①软件开辟的实际成本和进度估计不许确

②开辟出来的软件往往不能使用户满意

③软件产品的质量不高,存在漏洞,需要时常打补丁

④大量已有的软件难以维护

⑤软件缺少有关的文档资料

⑥开辟和维护成本不断提高,直接威胁计算机应用的扩大

⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长

5、

:此概念的浮现源自软件危机。软件工程是指应用计算

机科学、数学及管理科学等原理,以工程化的原则和方法来开辟与维

护软件的学科。

1)研究软件工程的主要目的就是在规定的时间、规定的开辟费用内

开辟出满足用户需求的高质量的软件系统(高质量是指错误率低、好

用、易用、可移植、易维护等)。

2)软件工程的三个要素:方法、工具和过程.

①方法:完成软件工程项目的技术手段;

③过程:支持软件开辟的各个环节的控制、管理。

3)软件工程的核心思想:把软件产品看做是一个工程产品来处理。

1、

:将软件产品从提出、实现、使用维护到住手使

用退役的过程称为软件生命周期。

2、软件生命周期普通划分为定义、开辟和维护3个阶段:

1)

可行性研究、需求分析2个阶段;

软件定义阶段:包括制定计划和需求分析.

①制定计划:确定总目标;可行性研究;探讨解决方案;制定开辟计

划。

②需求分析:对待开辟软件提出的需求进行分析并给出详细的定义。

方法:1)结构化需求分析方法;2)面向对象的分析方法.

任务:导出目标系统的逻辑模型,解决"做什么"的问题。

步骤:需求分析普通分为需求获取、需求分析、编写需求规格说明

书和需求评审四个步骤进行。

2)

概要设计、详细设计、编码实现和测试4个阶段;

①软件设计:分为概要设计和详细设计两个部份.

②软件实现:把软件设计转换成计算机可以接受的程序代码。

③软件测试:在设计测试用例的基础上检验软件的各个组成部份。

3)

:使用、维护、退役阶段.

软件运行维护阶段:软件投入运行,并在使用中不断地维护,进行必

4)

:抽象、信息隐蔽、模块化、局部化、确定性、一

致性、完备性和可验证性。

5)

就是匡助开辟软件的软件。它们对提高软件生产率,促

进软件生产的自动化都有重要的作用。

6)

(或者称软件工程环境)是全面支持软件开辟全过程

的软件工具的集合,这些软件工具按照一定的方法和模式组合起来,

同支持软件生命周期内的各个阶段和各项任务的完成。

1、

问题定义——可行性研究—-需求分析——

软件设计——软件编码-—软件测试-—软件维护

2、

1)总体设计

目的:要解决的问题是"怎样实现目标系统"

任务:确定软件的总体结构,进行模块划分,确定每一个模块的功能、

接口及模块之间的调用关系,并对全局数据结构进行设计,

2)详细设计

3、

目的:产生能在计算机上执行的程序

任务:根据系统的要求和开辟环境,选用合适的程序设计语言,把

详细设计的结果翻译成用该程序设计语言编写的程序代码(源程序)

4、

是为了发现程序中的错误而执行程序的过程

目的和任务:通过在计算机上执行程序来尽可能多地发现软件产品

中的错误和缺陷,并改正程序中的错误,以保证程序的可靠运行

5、

是长期的过程,因为,经过测试的软件还可能有错,

用户的要求还会发生变化,软件运行的环境也可能变化等等。因此,

交付使用的软件仍然需要继续排错、修改和扩充,这就是软件维护。

软件维护的

是满足用户对已开辟产品的性能与运行环境不断提

高的需要,进而达到延长软件的寿命

软件维护的

有如下几种:

1)改正性维护:诊断和改进错误的过程。

2)适应性维护:为与变化的环境适当配合而进行的修改软件的活动。

3)完善性维护:为了满足用户提出的增加新功能或者修改已有功能的

建议而进行维护。

4)预防性维护:为了改进未来的可维护性和可靠性。

和软件设计两个阶段完成,实现任务用编码和测试两个阶段完成。

开辟任务完成的好与坏,关系到软件产品的质量,完成开辟任务的关

键是选择好的软件开辟方法。

1、

指解决问题时自顶向下的方法逐层把软件系统划分成若干

个模块的过程

2、

认识复杂过程中使用的思维工具,即抽出事务的本质的共

同的特性而暂不考虑它的细节和其他因素。

3、

旨在设计和确定模块式的时候,是的一个模块内包含的

信息,对于不需要这些信息的其他模块来说不可访问

4、

指每一个模块只完成系统要求的独立的功能,并且

与其他模块联系至少且接口简单

模块的耦合性和内聚性是衡量软件的模块独立性的两个定性指标.

1)内聚性:是对模块功能强度的度量,即对一个模块内部各个元素(语

句之间、程序段)间彼此结合的密切程度的度量.

2)耦合性:是模块间互相连接的密切程度的度量。模块之间联系越紧

密,其耦合性就越强,模块的独立性则越差。

一个设计良好的软件系统应具有

在结构化程序设计中,模块划分的原则是:

的特征.

软件设计有两个步骤:

(1)概要设计(又称结构设计)是将软件需求转化为软件体系结构、

确定系统级接口、全局数据结构或者数据库模式;

(2)详细设计是确定每一个模块的实现算法和局部数据结构,通过对

构表示进行细化,得到软件的详细数据结构和算法。

结构化方法的软件开辟过程

软件计划后

结构化分析

结构化设计

编码并测试

结构化程序设计

面向对象方法的软件开辟过程

软件计划后

面向对象分

面向对象设计

面向对象编程

软件测试

1、

(简称SA)方法是面向数据流进行需求分析的方法。

:数据流图、数据字典、结构化语言、

2、结构化分析方法的

判定树、判定表

3、SA的

如下:

①自顶向下对系统进行功能分解,画出分层的数据流图

②由后向前定义系统的数据和加工,编制数据字典和加工说明

③写出需求规格说明书(SRS)

4、

是以图形的方式描绘数据在软件系统中流动和处理的过

程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。

数据流图(简称DFD)图形元素:

①数据流:是数据在系统内传播的路径.使用箭头代表数据的流

向,数据名称标在箭头的边上

②加工:输入数据经过加工变换产生输出.使用圆框代表加工

③数据存储:指处理过程中存放各种数据。使用双杠(或者单杠)

表示数据文件或者数据库。文件与加工之间用箭头线连接,单向表

示只读或者只写,双向表示可读可写

④数据源点或者终点:指软件系统外部环境中的实体(包括人员、

组织或者其他软件系统,统称为外部实体)。使用方框表示数

据的源

点和终点

5、

第一步:由外向里:先画系统的输入输出,然后画系统的内部。

第二步:自顶向下:顺序完成顶层、中间层、底层数据流图。

第三步:逐层分解。

6、

变换流:信息沿着输入通路进入系统,同时将信息的外部形式转换

成内部形式,通过变换中心处理之后,再沿着输出通路转换成外部

形式输出

事务流:信息沿着输入通路到达一个事务中心,事务中心根据输

入信息的类型在若干个动作序列中选择一个来执行,这种信息流

7、

就是用来定义数据流图中的各个成份的具体含义和详细

的描述。它和数据流图共同构成为了系统的逻辑模型,是需求规格说

明书的主要组成部份。是结构化分析方法的核心.数据字典是为分

析人员查找数据流图中有关名字的详细定义而服务的。

数据字典有四类条目:数据流、数据项、数据存储和基本加工。

8、

就是把用DFD图表示的系统分析模型方便地转换

为软件结构的设计模型。

1、软件测试是保证软件质量的重要手段,其主要过程涵盖了整个软

件生命周期的过程,包括需求定义阶段的需求测试、编码阶段的单元

测试、集成测试以及后期的确认测试、系统测试、验证软件是否合格、

能否交付给用户使用.软件测试就是使用人工或者自动手段来运行或

者测定某个系统的过程,其

在于检验它是否满足规定的需求或

者是弄清预期结果与实际结果之间的差别.

2、软件测试的

1)所有测试都应追溯到需求

2)严格执行测试计划,排除测试的随意性

3)避免由软件开辟人员测试自己的程序

4)充分注意测试中的群集性现象

5)除了很小的程序外,"彻底的穷举测试是不可能的

软件测试的每一次测试都需要准备好一些测试数据,与被测程序

一起输入到计算机中执行;

1、

是对软件规格说明、设计和编码的最后的复审,所以软件测

试贯通在整个软件开辟期的全过程.对于软件测试方法和技术,可以

从不同的角度加以分类。

①从是否需要执行被测软件的角度,软件测试分为静态分析和动态测

②按照功能划分,动态测试又分为白盒测试和黑盒测试

2、

普通是指人工评审软件文档或者程序,借以发现其中的

错误,由于被评审的文档或者程序不必运行,所以称为静态的。

静态测试包括代码检查、静态结构分析、代码质量度量等。

3、

是指通过运行软件来检查软件中的动态行为和运行结果

的正确性,也就是常说的上机测试。

动态测试普通包括两个基本要素:被测程序和测试数据

4、

动态测试的设计测试用例的方法普通分为黑盒测试和白盒测试。

①白盒测试也称结构测试,它与程序内部结构相关,要利用程序结构

的实现细节设计测试用例,它涉及程序风格、控制方法、源程序、数

据库设计和编码细节。

②黑盒测试是测试者已经知道被测程序的功能,而对程序内部的逻辑

测试后的结果与期望的结果进行分析比较,检查程序的功能是否符合

规格说明书的要求。黑盒测试是在程序接口进行的测试

5、

是由测试数据和期望结果组成.设计测试用例的目的就是

用尽可能少的测试数据,达到尽可能大的程序覆盖面,发现尽可能多

的软件错误和问题

6、

①语句覆盖②判定覆盖③条件覆盖

④判定/条件覆盖⑤条件组合覆盖⑥路径覆盖

7、

①等价类划分法②边界值分析法

③错误猜测法④因果图法

8、

①单元测试:是对每一个编制好的模块进行测试,其目的在于发

现和排除各模块内部可能存在的差错及详细设计中产生的错误。

进行单元测试时,根据程序的内部结构设计测试用例,主要采用

白盒测试法

②集成测试。是在单元测试的基础上,将所有模块按照设计要求组

装成为系统而进行的测试,它的任务是检查模块间的接口和通信、

各子功能的组合能否达到预期要求的功能、全程数据结构是否有

问题等。集成测试主要发现设计阶段产生的错误,通常采用黑盒

测试法。集成测试时,将各个模块组装成系统的方法有:非增量

计要求组装在一起进行测试,最终得到所要求的软件增量组装方

式是把下一个要测试的模块同已经测试好的那些模块结合起来进

行测试,测试完以后再把下一个应该测试的模块结合进来测试

③确认测试.确认测试是在集成测试通过后,在用户的参预下进

行确认测试。这时通常使用实际数据进行测试,以验证系统是否

能满足用户的实际需要。它的任务就是以需求规格说明书作为依

据来验证软件的性能、功能及其他特征是否与用户的要求一致,

通常采用黑盒测试

④系统测试。系统测试是在更大范围内进行的测试.系统测试是

温馨提示

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

评论

0/150

提交评论