软件工程总结

时间:2024.3.15

软件工程

软件: 计算机程序,方法,规则和相关文档资料及在计算机上运行所需的必要的数据。 软件=程序+数据+文档资料

软件的特点:

1 软件是一种逻辑产品

2 软件没有明显的制造过程

3 软件对硬件和环境的依耐性

4 软件不存在机械的磨损和老化

5 软件的复杂度越来越高

6 软件成本昂贵

7 软件开发工作涉许多及社会因素

8 软件开发工作任重道远

软件的类型:

1微型:1人在几天内完成500行程序

2小型:1人在半年内完成20xx行以内

3中型:1—5在2年内,5000——50000行

4大型:5——20人,2——3年,50000——100000

5甚大:100——1000人,4——5年,100万行

6极大:20xx——5000人,xx年内,1000万行程序

软件危机:是指软件开发和维护过程中遇到的一系列严重的问题。包括1 如何开发软件,

怎样满足对软件日益增长的需求。2如何维护数量不断膨胀的已有软件。

软件危机主要的表现:

1产品不符合用户的实际需要

2软件开发效率远远不能满足客观的需要。

3软件产品质量差

4对软件开发的成本和进度估计常常不准确

5 软件的可维护性差

6软件文档资料通常极不完整有不合格

7软件的价格昂贵

软件工程:系统化,规范化,可量度的途径应用于软件开发,运行,维护的过程,把工程化

应用于软件中。

软件工程的目标:

1付出较低的开发成本,在规定的时间内获得功能,性能方面满足用户

需求的软件

2开发的软件移植性好

3易于维护和维护费用较低

4软件系统的可靠性高

结构化方法(SDM):

是软件开发方法中最成熟,应用最广泛的方法,主要特点是快速,自然,方便。

总的指导思想是自顶向下,逐步求精。基本原则是功能的分解和抽象。

由结构化分析法(SA),结构化设计法(SD),结构化程序设计法(SP)构成。

SA: 面向数据流的需求分析法。SA也是一种建模活动,根据软件内部的数据传递,变换关

系,自顶向下逐步分层,描述出满足功能要求的软件模型。基本思想是分解和抽象。 1分解:对一个复杂的系统,为了将复杂性降到可以掌握的程度,把大问题分解为小问

题,然后分别解决。

2抽象:分层进行分解,现考虑问题本质的属性,暂把细节略去,以后再逐层添加细节,

直至涉及最详细的内容。

软件的生存周期:

软件产品从形成概念开始,进过开发,使用维护,直到最后被淘汰的全过程。

软件生存周期分为:软件定义,软件开发,软件运行与维护3个阶段。

软件定义阶段:可行性研究和详细需求分析过程,任务是确定软件开发工程必须完成的总目

的。具体分为问题定义,可行性研究,需求分析。

问题定义:定义系统的目标“是什么”,系统定位及范围。

可行性分析:研究技术,经济,操作,社会可行性的问题。是否有解。

需求分析:确定软件系统系统的功能需求,性能需求,运行环境,写出软件

的规格说明书,软件测试大纲和用户手册。

软件开发:概要设计,详细设计,编码,测试。

概要设计:软件需求说明书的基础上,建立系统的总体结构,定义功能模块和模

块间的关系。

详细设计:对概要设计的功能模块逐步细化,把模块内部的细化转化为可编程的

程序过程性描述。

编码:又称编程,把详细设计转化为能在计算机上运行的程序。

测试:单元测试,集成测试,确认测试,系统测试。

运行与维护:把软件产品移交用户使用。对软件进行修改或对软件需求变化作出响应,竟可

能的延长软件的寿命。

软件生存周期即可分为7个阶段:可行性研究,需求分析,概要设计,详细设计,编码,测

试,运行,维护。

软件生存周期模型:瀑布模型,原型模型,增量模型,螺旋模型,喷泉模型,智能模型。

数据流图(DFD图):描述信息流和当数据从输入移动到输出时被应用的变换图形技术。 模块:是程序对象有名字的集合,如过程,子程序,宏。

功能独立性: 是模块化和和抽象及信息隐藏概念的直接产物。通过内聚和耦合两项

质量标准来衡量。

内聚:是模块相对功能密度的量度,用于描述模块内部联系的紧密程度。 耦合:是模块间相对独立的量度,描述模块间联系的紧密程度。

独立性较强的模块应该具有:高内聚,低耦合度。

面向对象的结构方法(OOSD):按照人们认识世界的方法和思维方式分析和解决问题,以对

象为主线,把数据和操作融为一体。这种方法能够提供更加

清晰的需求分析和设计,是指导开发活动的系统方法。

面向对象=对象+类+继承+通信

对象是类的一个实例,对象是一个实体如房子,类是对对象属性特征的描述,如房子的设计图纸。面向对象的程序设计重点是类的设计,而不是对象。

类可以将数据和函数封装在一起,其中函数表示了类的行为。

面向对象开发模型:

建模可看成一套在目标系统完成之前表达目标系统的技术。

建模的作用:

1支持其复杂度超出人们大脑能力的软件系统。

2解决了待开发系统的复杂性。

3再投入许多时间对一个不良概念化系统进行编程之前,可用这些精确的表示来

进行评估,验证,校正。

创建优质模块:

1 模块具有内聚性,它的功能必须是良好定义和集中的。

2 模块具有松散耦合性,模块之间的联系尽可能的少。

3 封装过的模块,不应被其他属性直接访问。

4 软件模块可重用。

5 具有继承性。

统一建模语言(UML):是一种通用的建模语言,它本身具有可扩展性使其不仅可用于软件

系统开发的各个阶段的建模,也可用于商业建模和其他几乎类型的建模。

由视图,图,模型元素,通用机制组成。

用例图:显示多个外部参与者及其他们与系统提供的用例之间的关系。

类图:类图以类为中心组织,类图中的其他元素或属于某个类,或与类相关联。

对象图:对象图是类图的变异,它使用类图相似的符号,不同之处在于对象图显示的是类的

多个对象实例而非实际的类。

状态图:对类描述的补充,用于显示类的对象可能具备的所有显示,及引起状态变化的事件。 时序图:显示多个对象之间的动态协作,重点显示对象之间发送的消息的时间顺序。 协作图:对在一次交互中有意义的对象的对象间的链建模。

活动图:活动图是状态图的变异,用来描述执行算法工作流程中涉及的活动。

由活动,转移,泳道,对象流,控制图符组成。

组件图:用代码组显示代码的物理结构。

配置图:显示系统中的硬件和软件的物理结构。

白盒测试:又称明盒测试,开放盒测试,结构化测试,它是一种测试用例设计方法,也就是测试者完全了解程序的结构和处理过程,按照程序内部的逻辑测试,检验程序中的每条通路是否都能按要求正确工作:

1 保证每一个模块中的所有独立路径至少被只用一次。

2对所有逻辑值均需测试真和假。

3在上下边界及可操作的范围内运行所有循环

4检查内部数据结构以确保其有效性。

黑盒测试:称功测试和行为测试,他注重测试软件的功能性需求,而不是内部结构。黑盒测试不是白盒测试的替代品,而是辅助白盒测试发现其他错误。

黑盒测试试图发现下列错误:功能错误或漏洞,接口错误,数据结构,外部数据库访问错误,性能错误,初始化或终止错误。

软件维护:就是软件已经交付使用以后,为了满足错误或满足新的需要而修改软件的过程。

软件的可维护性:指纠正软件系统出现的错误和缺陷,以及为了满足新的要求而

进行的修改,扩充或压缩的容易程度。

软件复用:指复用使用已有的软件产品用于开发新的软件系统,已达到软件系统的开发质量

和效率,降低开发成本的目的。包括:

1代码复用

2设计结果复用

3分析结果复用

4测试信息复用

可复用构件:指可以在多个软件系统的开发过程中被重复使用的软件产品。

1可复用构建应该是具有功能上的独立与完整性

2具有高度的通用性

3具有高度的灵活性

4具有严格的质量保证

5具有较高的标准化程度


第二篇:软件工程总结


软件工程过程:是为获得软件产品,在软件工具的支持下由软件工程师完成的一系列软件工程活动。针对不同类型的软件产品,同一软件开发机构也可能采用多个不同的软件工程过程。是把输入转化为输出的一组彼此相关的资源和活动。从软件开发的观点看,它就是使用适当的资源(包括人员、硬软件工具、时间等),为开发软件进行的一组开发活动,在过程结束时将输入(用户要求)转化为输出(软件产品)。功能模块的集合,每个功能又可以分解为若干子功能,子功能还可继续分解,分解的结果已经是系统的雏形。 结构化分析方法 ,是一种以数据、数据的封闭性为基础,从问题空间到某种表示的映射方法,由数据流图(DFD图)表示。信息建模法,是从数据的角度对现实世界建立模型的,基本工具是ER图。面向对象的分析方法(OOA)的关键是识别问题域内的对象,分析它们之间的关系,并建立起三类模型。

将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。

软件工程过程定义: 方法使用的顺序、要求交付的文档资料、为保证质量和适应变化所需要的管理、软件开发各个阶段完成的里程碑。

软件工程过程的四种基本过程活动:plan 软件规格说明,规定软件的功能及其运行的限制;do软件开发,产生满足规格说明的软件;check软件确认,确认软件能够完成客户提出的要求;action软件演进,为满足客户的变更要求,软件必须在使用的过程中改进。

软件工程过程的特性:⑴ 易理解性⑵ 可见性⑶ 可支持性⑷ 可接受性⑸ 可靠性⑹ 健壮性⑺ 可维护性⑻ 速度。 软件工程包括三要素:方法、工具和过程。

软件生存周期:是软件产品的一系列相关活动的整个生命周期,即从形成概念开始经过开发,交付使用,在使用中不断修改和演进,直到最终被废弃,让位于新的软件产品为止的整个时期。

软件生存周期包含三个阶段:软件定义、软件开发及软件运行维护。

软件生存周期模型:是软件工程思想的具体化,是跨越软件生存周期的系统开发、运行、维护所实施的全部活动和任务的过程框架。有瀑布模型,演化模型,螺旋模型,增量模型,喷泉模型,快速应用开发( RAD )模型。

得到软件生存周期的六个步骤:制定计划 ,需求分析,软件设计,程序编写,软件测试 ,运行/维护。

划分软件生存周期的目的和实质:⑴ 便于控制开发工作的复杂性。⑵ 通过有限的步骤,把用户的需求从抽象的逻辑概念逐步转化为具体的物理实现。

瀑布模型:各项活动按自上而下,相互衔接的固定次序,如同瀑布逐级下落,每项活动均处于一个质量环(输入-处理-输出-评审)中。阶段间具有顺序性和依赖性。推迟实现的观点。每个阶段必须完成规定的文档;每个阶段结束前完成文档审查。

瀑布模型优点:⑴ 消除非结构化软件⑵ 降低软件的复杂度⑶ 促进软件开发工程化。

需求分析方法:不同的开发方法,需求分析的方法也有所不同,常见的分析方法有:功能分析方法 :将系统看作若干

需求分析的任务:⑴ 正确地确定对系统综合要求,充分理解和表达用户的需求。也就是详细定义开发软件的功能、性能、外部接口、设计限制、数据库需求、确定硬件和软件支持环境、辅助软件以及将来可能提出的要求。⑵ 通过结构分析的方法对系统进行分解,以确定软件系统的主要成分或软件系统的构成。⑶ 是对以上已进行的两项工作进行描述,以形成需求文档,也就是编制“需求规格说明书”。 ⑷ 编写用户手册概要,迫使分析员从用户的角度看待软件,及早考虑用户界面工作,此时编写的重点在系统输入和输出。⑸ 编写验收计划,作为今后验收测试的依据。⑹ 修正可行性研究阶

段所制订的软件项目开发计划。

需求分析的目标之一就是把数据流和数据存储定义到元素级。

结构化方法:是一种传统的软件开发方法,它由结构化分析SA,结构化设计SD和结构化程序设计三部分有机组合而成的。它的基本思想是:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。基本要点是:自顶向下,逐步求精,模块化设计,结构编码。原则为:(1)抽象与自顶向下,逐层细化,用分层抽象方法,有效控制软件开发的复杂性。(2)模块化(3)信息隐蔽和封装化(4)局部化(5)一致性(6)完备性(7)可验证性。 结构化分析实质上是一种创建模型的活动,建立3种模型:(1)数据模型 ,用实体-联系图(ER图)(2)功能模型,用数据流图描绘(3)行为模型, 状态转换图(简称为状态图)。 数据字典:是结构化分析方法的核心,与各模型的图形表示配合,能清楚地表达数据处理的要求。对在数据流图中每一个命名的图形元素均给予定义,其内容有图形元素的名字、别名或编号、分类、描述、定义、位置等。⑴ 数据流词条描述⑵ 数据元素词条描述⑶ 数据文件词条描述⑷ 加工逻辑词条描述。

黑盒测试:等价类划分,边界值分析,错误推测法,因果图,功能图,接口测试

*这种方法是把测试对象看做一个黑盒,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求和功

能规格说明,检查程序的功能是否符合它的功能说明。 *黑盒测试叫做功能测试或数据驱动测试。

*一种特殊的黑盒测试叫做接口测试,它不管程序的需求和实现细节,仅依据程序与其外部环境的接口来选择测试数据。

*黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误:

(1)是否有不正确或遗漏了的功能?

(2)在接口上,输入能否正确地接受? 能否输出正确的结果?

(3)是否有数据结构错误或外部信息(例如数据文件)访问错误?

(4)性能上是否能够满足要求? (5)是否有初始化或终止性错误?

白盒测试:逻辑覆盖,判定结构分析,循环结构分析,基本路径覆盖

*此方法把测试对象看做一个玻璃盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。

*通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。

*软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:

(1)对程序模块的所有独立的执行路径至少测试一次 — 路径覆盖测试;

(2)对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次 — 逻辑覆盖测试;

(3)在循环的边界和运行界限内执行循环体— 控制流测试;

(4)测试内部数据结构的有效性 — 数据流测试、领域测试等。

编码是软件开发的最终目标,它作为软件工程过程的一个阶段,是设计工作的继续。它是将“设计”变换成用程序设计语言编写的源程序,使软件的需求真正付诸实现。

*编码是在详细设计的基础上进行的,其主要任务是将软件的详细设计转换成用程序设计语言实现的程序代码,也就是根据详细设计阶段给出的程序逻辑结构的描述,选择某种计算机能够接受的诸如汇编、FORTRAN、C之类的程序语言,按照编程规范,编写出高质量的、具有一致性、可移植性、可维护性和高效率的程序代码。

因此,程序设计语言的性能和设计风格对于程序设计的效能和质量有着直接的关系。

*编码的目的就是使用选定的程序设计语言把模块的过程性描述翻译成用程序设计语言书写的源程序。

*设计是编码的先导,程序的质量就首先取决于设计的质量。

程序设计风格所谓程序设计风格是指书写源程序的习惯、程序代码的逻辑结构与习惯的编程技术。从软件工程要求出发,程序设计风格应包括以下要素: (1)源程序文档化:① 符号名的命名,② 程序的注释③ 视觉组织

(2)数据说明 (3)语句结构

(4)输入/输出方法

概要设计将软件需求转化为软件体系结构, 确定系统级接口,全局数据结构或数据库模式。

概要设计的基本任务就是将需求转换为数据结构和软件的体系结构。

其具体的工作有以下几个方面:

⑴ 制定规范

⑵ 软件系统结构的总体设计这个阶段主要完成四个任务,这就是: ① 采用某种设计方法,将一个复杂的软件系统按功能划分成模块的层次结构;② 决定每个模块的功能,建立与已确定软件需求的对应关系;③ 决定每个模块的调用关系;④ 决定模块间的接口,即模块之间的传递信息,设计接口的信息结构。⑤ 评估模块划分的质量及寻出模块结构的规则。

⑶ 处理方式设计

① 确定为实现软件系统的功能需求所必需的算法的性能;② 确定为满足软件条件的性能需求所必需的算法和模块之间的控制方式,性能主要指标;

ⅰ 周转时间;ⅱ 响应时间;ⅲ 吞吐量;ⅳ 精度: ③取得外部信号的接收发送形式。 ⑷ 数据结构设计

确定软件涉及的文件的结构及数据库的模式,子模式进行数据完整性和安全性的设计。① 确定输入:输出文件的详细的数据结构;② 组合算法设计:确定算法所必须的逻辑结构及 操作;③ 确定对逻辑数据结构所必须的那些操作的程序模 块(软件包),限制和确定各个数据设计决策等影响范围;④ 若需要与操作系统或调度程序接口所必须的控制表等数据时,确定其详细的数据结构和使用规则。 ⑤ 数据保护性设计:ⅰ 防卫性设计; ⅱ 一致性;ⅲ 冗余设计。⑸ 可靠性设计⑹ 编写概要设计文档 ⑺ 概要设计评审

详细设计确立每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节 详细设计要完成的工作有:

⑴ 确定软件各个组成部分内的算法及各部分的内部数据组织。

⑵ 选定某种过程的表达形式来描述各种算法。 ⑶ 进行详细设计评审。

通常采用两个标准来度量模块的独立性:模块的耦合和模块的内聚。

内聚是指模块内部各个成分之间的关系,又称为块内联系,是模块功能相对强度的度量。是指一个模块内部的各成分之间(如语句之间或语句段之间)的联系。内聚性越高,模块的性能越好。

内聚分为:低内聚包括:偶然内聚、逻辑内聚、时间内聚; 中等程度内聚包括:过程内聚、通讯内聚; 高内聚包括:顺序内聚、功能内聚。

耦合是指一个模块与其它模块之间的联系,又称为块间联系,是模块之间相对独立性的度量。是对模块间相互关联程度的一种度量。它表现了模块的外部特征。模块间的耦合越低,模块的独立性越好。 模块的耦合有以下几种:

低耦合:包括非直接耦合、数据耦合、标记耦合。 中耦合:包括控制耦合、外部耦合。 高耦合:包括公共耦合、内容耦合。

模块内聚性越强,功能独立性越好,对于形成的模块结构有比较好的作用。

要求模块结构达到高内聚,低耦合。

程序流程图:程序流程图又称之为程序框图,它是软件开发者最熟悉的一种算法表达工具。它独立于任何一种程序设计语言,比较直观和清晰地描述过程的控制流程,易于学习掌握。在流程图中只能使用下述的五种基本控制结构。①顺序型;②选择型;③ while型循环;④ until型循环;⑤ 多情况型选择。

详细设计的任务:详细设计就是要在概要设计的结果

的基础上,考虑“怎样实现”这个软件系统,直到对系统中的每个模块给出足够详细的过程性描述。主要任务如下:①为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述;②确定每一模块使用的数据结构;③确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及模块输入数据、输出数据及局部数据的全部细节。④要为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)分析、设计及维护提供了有关元素的一致的定义和详细的描述。

内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量

软件生命周期:软件生命周期是指软件产品从考虑其概念开始到该软件产品不再能使用为止的整个时期 软件生命周期可分为六个阶段:制定计划,需求分析、进行预定的测试,模块的测试用例是软件测试计划的重要组成部分,通常应包括输入数据,期望输出等内容。

详细设计的方法:程序流程图、N-S图、PAD图、HIPO图

编程风格:编码风格又称程序设计风格或编程风格,

实际上指编程的原则。表现为四个方面:源程序文档化,数据说明的方法,语句结构和输入/输出方法。

3.1 为什么结构化分析要叫“结构化”?有其他可替代的术语吗?

“结构化”一词应来源于“结构化程序设计”,先有“结构化程序设计”的思想,后有结构化设计及结构化分析。有时称传统的分析方法,指的就是结构化分析方法。

结构化分析方法传统的分析建模方法称为结构化分析(SA)方法。它是一种建模技术,在模型的核心是数据字典,它描述了所有的在目标系统中使用的和生成的数据对象。围绕这个核心有3种图:数据流图(DFD),实体-关系图(ER图)和状态-迁移图(STD)。

CMM是能力成熟度模型(Capability Maturity Model)。划分为5个等级:1级被认为是成熟度最低,5级则是成熟度最高。

CMM给出了从混乱的个别过程达到成熟的规范化过程的一个框架。

软件生存周期:一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。软件生存周期一般可分为以下阶段:

·问题定义

·需求分析与可行性研究 ·设计 ·编码 ·测试 ·运行与维护

软件生存期也可以分为三个大的阶段:计划阶段。开发阶段和维护阶段。

数据字典以词条方式定义在数据模型、功能模型和行为模型中出现的数据对象和控制信息的特征,给出它们的准确定义,包括数据流、加工、数据文件、数据元素,以及数据点、数据汇点等。

数据字典是用来定义数据流图中的各个成分的具体含义的。它以一种准确的、无二义性的说明方式为系统的

软件设计、程序编写、软件测试、运行与维护等六个部分

划分软件生命周期的目的和实质 ⑴ 便于控制开发工作的复杂性。

⑵ 通过有限的步骤,把用户的需求从抽象的逻辑概念逐步转化为具体的物理实现

软件维护包括:改正性维护,适应性维护,完善性维护和预防性维护

瀑布模型

瀑布模型的特点

⑴ 从上一项开发活动接受该项活动的工作对象,作为输入。 ⑵ 利用这一输入,实施该项活动应完成的工作内容。 ⑶ 给出该项活动的工作成果,作为输出传给下一项活动。 ⑷ 对该项目活动实施的工作成果进行评审。若工作得到确认,则继续进行下一次开发活动,否则返回前一项,甚至更前项的活动。 瀑布模型的优点 ⑴ 消除非结构化软件。 ⑵ 降低软件的复杂度。 ⑶ 促进软件开发工程化 瀑布模型存在的问题

⑴ 阶段与阶段划分完全固定,阶段间产生的大量文档,极大地增加了工作量。

⑵ 由于开发模型呈线性,所以当开发成果尚未经过测试时,用户无法看到软件的效果。这样,软件与用户见面的时间较长,也增加了一定的风险。

⑶ 前面未发现的错误传到后面的开发活动中,可能会扩散,进而可能会造成更不理想的效果。

可行性研究的目的就是用最小的代价在尽可能短的时间内

确定问题是否能够解决。

可行性研究主要集中在以下四个方面:系统可行性,经济可行性,法律可行性,用户操作可行性

可行性研究最根本的任务是对以后的行动方针提出建议。 可行性研究报告的内容:1. 项目背景2管理概要与劝告 3.候选方案4.系统描述5技术可行性6经济可行性7法律可行性8用户操作可行性9其他与项目有关的问题10结论意见 需求分析的任务:需求获取 需求建模 需求规格说明 需求评审

需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统 “做什么” 的问题。⑴ 正确地确定对系统综合要求,充分理解和表达用户的需求。⑵

通过结构分析的方法对系统进行分解,以确定软件系统的主要成分或软件系统的构成。(3)编制“需求规格说明书” 需求分析常用的方法:SA, JSD,DSSD,OOA

概要设计的基本任务就是将需求转换为数据结构和软件的体系结构。方法:⑴ 制定规范

⑵ 软件系统结构的总体设计 ⑶ 处理方式设计 ⑷ 数据结构设计 ⑸ 可靠性设计

⑹ 编写概要设计文档 ⑺ 概要设计评审

数据流图的性质:① 数据流图中的箭头仅能表示在系统中流动的数据;② 与程序流程图不同,DFD不能表示程序的控制结构;③ DFD表现的范围具有很大的灵活性。 画数据流图的基本目的是利用它作为交流信息的工具 目前实现数据字典有三种常见的途径:全人工过程,全自动化过程和混合过程

数据字典的特点:⑴ 通过名字能方便地查阅数据的定义; ⑵ 没有冗余;

⑶ 尽量不重复在规格说明的其他组成部分中已经出现的信息;

⑷ 容易更新和修改;

⑸ 能单独处理描述每个数据元索的信息; ⑹ 定义的书写方法简单方便而且严格。

l

结构化分析方法:结构化分析方法是利用抽象模型的概念,按照软件内部数据传递,变换的关系,自顶向下,逐步分解,直到找到满足功能要求的所有可实现的软件为止。 l 程序设计风格包括4个方面: 源程序文档化,数据说明,语句结构,输入输出方法 l 程序复杂性主要指模块内程序的复杂性

l 程序复杂性度量(1) 代码行度量法(2) McCabe度量法(3) Halstead的软件科学

l 程序复杂性度量的参数主要有:规模,难度 ,结构,智能度

l 测试方法:黑盒测试,白盒测试

l 黑盒测试叫做功能测试或数据驱动测试。 l 白盒测试又称为结构测试或逻辑驱动测试。 l

白盒测试方法:路径覆盖测试,逻辑覆盖测试,控制流测试,数据流测试,逻辑测试

更多相关推荐:
软件工程总结

1.软件危机的定义:计算机软件的开发和维护过程中所遇到的一系列严重问题。出现的问题:a.如何开发软件,已满足对软件日益增长的需求b.如何维护数量不断膨胀的已有软件特征:软件具有长期性和症状不明显2.软件工程:指…

软件工程总结

1何谓科学,何谓工程?(第一章)科学是反映自然、社会、思维的发展与变化规律的知识体系。科学(研究)是以发现为核心的人类活动,探索事物的本质和运动规律,追求真理,认识世界,回答“为什么”,体现非物质形态财富。工程…

软件工程总结

一个软件从开始计划起,到废弃不用止,称为软件生命周期。一般来说,软年生命周期包括计划、开发、运行三个时期,每一个时期又可分为若干个更小的阶段:1.可行性研究。这个阶段主要是确定软件的开发目标及其可行性,给出其在…

软件工程总结1

Personally,Ithinkthesoftwaredevelopmentprocesstoachievespecifictoeachstepoftheworktocompletewhatisveryfle…

软件工程总结

软件工程总结第一章:1.软件的定义:(1)在运行中提供所希望的功能和性能的指令集(即程序)(2)使程序能够正确运行的数据结构(3)描述程序研制过程和方法所使用的文档2.软件的特点:(1)软件是一种逻辑实体,而不…

软件工程总结

《软件工程》的感悟时间过得真快,默默地对于《软件工程》的学习已经进入尾声。在整个学期的学习中,我对于《软件工程》这门必修课好事很有感悟的。在以前,我一直对软件开发方面的必修课怀有一种先入为主的想法,认为软件开发…

软件工程总结

软件工程总结软件工程(SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。随着计算机的普及应用,人们对计算机的要…

软件工程项目总结

宿舍管理系统项目总结班小组第8组指导老师楚广琳11编写目的为了保证项目团队按时保质地完成项目目标便于项目团队成员更好地了解项目情况使项目工作开展的各个过程合理有序有必要以文件化的形式把对于在项目生命周期内的工作...

软件工程项目开发总结报告

项目开发总结报告GB856788Hanent整理1引言11编写目的说明编写这份项目开发总结报告的目的指出预期的阅读范围12背景说明a本项目的名称和所开发出来的软件系统的名称b此软件的任务提出者开发者用户及安装此...

软件工程学习总结

软件工程学习总结班级网络工程1001学号02230100121姓名潘书阳在本学期的软件工程课程的学习中我们学习了十一章的内容第一章软件与软件工程的概念这一章主要讲解的是一些概念性和基础性的内容例如软件的概念特性...

软件工程实训总结

实训总结一实训目的通过对java语言sql数据库的应用以及sql语言的复习和锻炼并且通过使用MyEclipse开发平台设计管理项目以达到充分熟悉开发平台及应用设计同时掌握并实践软件项目设计规范及其开发流程需求分...

软件工程课程设计心得总结

软件工程课程设计个人总结学期就快要结束了到了最后一周居然还有软件工程课程设计还要考试真的有点忙啊不管怎样还是好好干吧把对工程的理论研究学习成果用于实践也是一种检验学习成果和提升工程能力的有效手段嘛工作内容安排软...

软件工程总结(52篇)