软件工程笔记整理

软件的生命周期:软件从孕育、诞生、成长、衰亡的生存过程,就是软件的生存周期。

(是指软件产品或者软件系统从生产、投入使用到被淘汰的全过程)

软件生存周期大致分为六个过程:计算机系统工程,需求分析,设计,编码,测试,运行和维护。

 

计算机系统工程:确定待开发的软件的总体要求和范围,以及该软件与其他计算机系统元素之间的关系,并进行软件可行性分析,并提出解决方案。

需求分析:解决软件要做什么的问题,确定软件的功能,性能,数据,界面等要求,生成软件需求规约。

设计:解决软件怎么做的问题。分为系统设计以及详细设计,系统设计是指设计系统的体系结构,详细设计是指实设计各个组成部分的实现细节。

编码:用某种合适的编程语言进行编码实现。

测试:发现并纠正软甲中的错误以及缺陷。单元测试,集成测试,确认测试以及系统测试。

运行与维护:完成测试后交使用,在软件运行期间惊醒维护,发现潜在的错误或者增加新的功能,使得软件使用外籍需求环境的变化。

 

 

模块化设计原则所遵循的设计原则:

(抽象与逐步求精,模块化,信息隐藏等原则)

抽象与逐步求精、信息隐藏、模块化、高内聚低耦合。 

按照模块化设计原则,相应的启发式设计策略:

(1)改造程序结构图,降低耦合度,提高内聚度 

(2)避免高扇出,并随着深度的增加,力求高扇入 

(3)模块的影响范围应限制在该模块的控制范围内 

(4)降低模块接口的复杂程度和冗余程度,提高一致性 

(5)模块的功能应是可预测的,避免对模块施加过多的限制 

(6)尽可能设计单入口和单出口的模块

 

 

 

:具有同种属性的对象称为类,是个抽象的概念。比如说:汽车、人、狗、神;
对象:日常生活中的所有东西都是对象,是类的实例化。比如说:推土车是汽车的实例化;姚明是人的实例化;小白(狗的名字)是狗的实例化;二郎神是神的实例化;
属性:用来描述具体某个对象的特征的是属性,是静态的。比如:姚明身高2.6米多;小白的毛发是棕色的;二郎神额头上有只眼睛;
方法:每个对象有它们自己的行为或者是使用它们的方法,比如说一只狗会跑会叫等,我们把这些行为称之为方法,是动态的,可以使用这些方法来操作一个对象;
类的成员:属性和方法称为这个对象的成员,因为它们是构成一个对象的主要部分,没有了这两样东西,那么对象也没什么存在意义了。

 

 

 

 

继承:

在C++中,所谓“继承”就是在一个已存在的类的基础上建立一个新的类。已存在的类称为“基类(base class)”或“父类(father class)”,新建的类称为“派生类(derived class)”或“子类(son class )”。

一个新类从已有的类那里获得其已有特性,这种现象称为类的继承。通过继承,一个新建子类从已有的父类那里获得父类的特性。从另一角度说,从已有的类(父类)产生一个新的子类,称为类的派生。

 

 

c++中什么是多态! 

多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。
在C++中也是如此。同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。
C++中,实现多态有以下方法:虚函数,抽象类,覆盖,模板(注意:重载和多态无关)。

 

测试:单元测试集成测试系统测试验收测试
对应开发:编码,详细设计,概要设计,需求分析。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

V模型:

 

 

软件需求规约是分析任务的最终产物,通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。

 

 

模块:把软件按照规定的原则,或分为一个个较小的,相互独立的组但又相互关联的部件(其实就是系统分解与抽象的过程)

模块的独立性:在软件工程中,模块是数据说名,可执行语句等程序对象的集合,是单独命名的,并且是可以通过名字来访问的。

 

模块的独立性:功能独立是指模块的独立性,也就是说,在设计程序模块时候,使得模块实现独立的功能并且与其他模块的接口简单,符合信息隐蔽,模块间关联和依赖程度尽可能的小。

 

黑盒测试:黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

 

 

 

从理论上讲,黑盒测试只有采用穷举输入测试,把所有可能的输入都作为测试情况考虑,才能查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但可能的输入进行测试。这样看来,完全测试是不可能的,所以我们要进行有针对性的测试,通过制定测试案例指导测试的实施,保证软件测试有组织、按步骤,以及有计划地进行。黑盒测试行为必须能够加以量化,才能真正保证软件质量,而测试用例就是将测试行为具体量化的方法之一。具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景法等。

等价类划分的办法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。该方法是一种重要的,常用的黑盒测试用例设计方法。

 

 

白盒测试:白盒测试[1]  又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。”白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。”白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。

 

 

白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异。

白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖判定覆盖条件覆盖、判定/条件覆盖、条件组合覆盖路径覆盖。六种覆盖标准发现错误的能力呈由弱到强的变化:

1.语句覆盖每条语句至少执行一次。

2.判定覆盖每个判定的每个分支至少执行一次。

3.条件覆盖每个判定的每个条件应取到各种可能的值。

4.判定/条件覆盖同时满足判定覆盖条件覆盖。

5.条件组合覆盖每个判定中各条件的每一种组合至少出现一次。

6.路径覆盖使程序中每一条可能的路径至少执行一次。

 

 

 

多态:

数据流图的基本元素:数据源,数据池,加工,文件。

 

根据数据流的类型,结构化设计方法有两中策略:变换型设计以及事物设计分析。

 

变换型设计 :变换型结构由三部分组成:输入、数据加工

软件的可移植性:就是计算上的软件移植到其他环境中。

 

软件生命周期:计算机系统工程,需求分析,设计,编码,运行,维护

 

Uml

自顶向下的渐增测试:深度优先策略以及广度优先策略

 

衡量模块独立性:耦合度,内聚性

 

软件维护种类:纠错性维护,适应性维护,改善性维护,预防性维护。

 

来源:给我瓶叶小白

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年11月11日
下一篇 2016年11月11日

相关推荐