主页 > 科技 > 正文

计算机公共基础知识:软件工程基础

2019-07-20 03:18暂无阅读:725评论:0

3.1 软件工程根基概念

3.1.1 软件的界说和特点

1.软件的界说

较量机软件是包罗法式、数据及相关文档的完整鸠合。

2.软件的特点

(1)软件是一种逻辑实体;

(2)软件的生产与硬件分歧,它没有显着的建造过程;

(3)软件在运行、使用时代不存在磨损、老化问题;

(4)软件的斥地、运行对较量机系统具有依靠性,受较量机系统的限制,这导致了软件移植的问题;

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

(6)软件斥地涉及诸多的社会身分。

3.软件的分类

软件按功能分为应用软件、系统软件、撑持软件(或对象软件)。

3.1.2软件危机和软件工程

1.软件危机

软件危机首要示意在成本、质量、生产率等问题。

2.软件工程

软件工程是应用于较量机软件的界说、斥地和维护的一整套方式、对象、文档、实践尺度和工序。

软件工程包罗3个要素:方式、对象和过程。

3.1.3软件工程过程与生命周期

1.软件工程过程

软件工程过程是把软件转化为输出的一组彼此相关的资源和运动,包含4种根基运动:

(1)P——软件规格解说;

(2)D——软件斥地;

(3)C——软件确认;

(4)A——软件演进。

2.软件生命周期

软件周期:软件产物从提出、实现、使用维护到住手使用退役的过程。

软件生命周期三个阶段:软件界说、软件斥地、运行维护,首要运动阶段是:

(1)可行性研究与规划制订;

(2)需求剖析;

(3)软件设计;

(4)软件实现;

(5)软件测试;

(6)运行和维护。

3.1.4软件工程的方针与原则

1.软件工程的方针

方针:在给定成本、进度的前提下,斥地出具有有效性、靠得住性、可懂得性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互把持性且知足用户需求的产物。

根基方针:支付较低的斥地成本;达到要求的软件功能;取得较好的软件机能;斥地软件易于移植;需要较低的费用;能按时完成斥地,实时交付使用。

2.软件工程的原则

根基原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完整性和可验证性。

3.1.5斥地对象与斥地情况

3.2 软件剖析方式

构造化方式的焦点和根蒂是构造化法式设计理论。

3.2.1需求剖析与需求剖析方式

1.需求剖析的界说

2.需求剖析阶段的工作

(1)需求获取

(2)需求剖析

(3)编写需求规格解说书

(4)需求评审

3.需求剖析方式

(1)构造化需求剖析方式;

(2)面向对象的剖析的方式。

从需求剖析竖立的模型的特征来分:静态剖析和动态剖析。

3.2.2 构造化剖析方式

1.构造化剖析方式的根基概念

构造化剖析方式的实质:着眼于数据流,自顶向下,逐层分化,竖立系统的处理流程,以数据流图和数据字典为首要对象,竖立系统的逻辑模型。

2.构造化剖析的常用对象

(1)数据流图;

(2)数据字典;

(3)剖断树;

(4)剖断表。

数据流图:描述数据处理过程的对象,是需求懂得的逻辑模型的图形透露,它直接支撑系统功能建模。

数据字典:对所有与系统相关的数据元素的一个有组织的列表,以及正确的、严厉的界说,使得用户和系统剖析员对于输入、输出、存储成分和中央较量究竟有配合的懂得。

剖断树:从问题界说的文字描述平分清哪些是剖断的前提,哪些是剖断的结论,凭据描述材估中的保持词找出剖断前提之间的隶属关系、并列关系、选择关系,凭据它们组织剖断树。

剖断表:与剖断树相似,当数据流图中的加工要依靠于多个逻辑前提的取值,即完成该加工的一组动作是因为某一组前提取值的组合而激发的,使用剖断表描述对照适宜。

数据字典是构造化剖析的焦点。

3.2.3 软件需求规格解说书

软件需求规格解说书的特点:

(1)准确性;

(2)无歧义性;

(3)完整性;

(4)可验证性;

(5)一致性;

(6)可懂得性;

(7)可追踪性。

3.3 构造化设计方式

3.3.1 软件设计的根基概念

1.软件设计的根蒂

软件设计的根基方针是用对照抽象归纳的体式确定方针系统若何完成预定的义务,软件设计是确定系统的物理模型。

软件设计是斥地阶段最主要的步伐,是将需求正确地转化为完整的软件产物或系统的独一途径。

从手艺概念来看,软件设计包罗软件构造设计、数据设计、接口设计、过程设计。

构造设计:界说软件系统各首要部件之间的关系。

数据设计:将剖析时建立的模型转化为数据构造的界说。

接口设计:描述软件内部、软件和协作系统之间以及软件与人之间若何通信。

过程设计:把系统构造部件转换成软件的过程描述。

从工程治理角度来看:提纲设计和具体设计。

软件设计的一样过程:软件设计是一个迭代的过程;进步行高条理的构造设计;后进行低条理的过程设计;穿插进行数据设计和接口设计。

2.软件设计的根基道理

权衡软件模块自力性使用耦合性和内聚性两个定性的器量尺度。

在法式构造中各模块的内聚性越强,则耦合性越弱。精良软件应高内聚,低耦合。

3.3.2 提纲设计

1.提纲设计的义务

软件提纲设计的根基义务是:

(1)设计软件系统构造;

(2)数据构造及数据库设计;

(3)编写提纲设计文档;

(4)提纲设计文档评审。 模块用一个矩形透露,箭头透露模块间的挪用关系。

2.提纲设计对象

在构造图中还能够用带注释的箭头透露模块挪用过程中往返传递的信息。还可用带实心圆的箭头透露传递的是掌握信息,空心圆箭心透露传递的是数据。

构造图的根基形式:根基形式、顺序形式、反复形式、选择形式。

构造图有四种模块类型:传入模块、传出模块、变换模块和协调模块。

3.面向数据流的设计方式

典型的数据流类型有两种:变换型和事务型。

变换型系统构造图由输入、中心变换、输出三部门构成。

事务型数据流的特点是:接管一项事务,凭据事务处理的特点和性质,选择分配一个适当的处理单元,然后给出究竟。

4.设计的准则

3.3.3 具体设计

具体设计:是为软件构造图中的每一个模块确定实现算法和局部数据构造,用某种选定的表达对象透露算法和数据构造的细节。

1.图形对象

常见的过程设计对象有:图形对象(法式流程图)、表格对象(剖断表)、说话对象(PDL)。

2.表格对象

3.4 软件测试

软件测试界说:使用人工或主动手段来运行或测定某个系统的过程,其目的在于磨练它是否知足划定的需求或是弄清预期究竟与实际究竟之间的不同。

3.4.1软件测试的目的

软件测试的目的:发现错误而执行法式的过程。

3.4.2 软件测试的准则

3.4.3 软件测试手艺和方式

软件测试方式:静态测试和动态测试。

1.静态测试与动态测试

静态测试包罗代码搜检、静态构造剖析、代码质量器量。不实际运行软件,首要经由人工进行。

动态测试:是根基较量机的测试,首要包罗白盒测试方式和黑盒测试方式。

2.白盒测试与测试用例设计

白盒测试:在法式内部进行,首要用于完成软件内部把持的验证。首要方式有逻辑笼盖、根基基路径测试。

3.黑盒测试与测试用例设计

黑盒测试:首要诊断功能纰谬或漏掉、界面错误、数据构造或外部数据库接见错误、机能错误、初始化和完结前提错,用于软件确认。首要方式有等价类划分法、界限值剖析法、错误推想法、因果图等。

3.3.4 软件测试的实施

软件测试过程一样按4个步伐进行:

单元测试、集成测试、验收测试(确认测试)和系统测试。

3.5 法式的调试

3.5.1根基概念

法式调试的义务是诊断和纠正法式中的错误,首要在斥地阶段进行。

1.法式挑食的根基步伐

法式调试的根基步伐:

(1)错误定位;

(2)点窜设计和代码,以清扫错误;

(3)进行回来测试,防止引进新的错误。

2.法式调试的原则

3.5.2 软件测试方式

软件调试可分表静态调试和动态调试。静态调试首要是指经由人的脑筋来剖析源法式代码和排错,是首要的设计手段,而动态调试是辅助静态调试。首要调试方式有:

(1)强行排错法;(2)回溯法;(3)原因清扫法。