软件工程总结

2024-11-22下载文档一键复制全文

软件工程的定义:软件工程是将系统化的,规范化的,可度量的方法应用于软件的开发,运行和维护过程,即将工程化应用于软件中的方法的研究。

软件工程的定义2:开发运行,维护和修复软件的工程方法。

软检策略思想:软件复用,分而治之,优化折中。

软件的生命周期:软件生命周期是指一个计算机软件从功能确定,设计,到开发成功投入使用,并在使用中不断地修改,增补和完善,直到停止该软件使用的全过程。

它包括制定计划(可行性与计划研究),需求分析,设计,程序编码(实现),测试及运行维护6个阶段。

软件开发模型:瀑布模型,快速原始模型,增量模型,螺旋模型,喷泉模型,组件复用模型。

软件开发过程:(1)定义;(2)开发;(3)验证;(4)维护。

软件开发的基本方法:传统的结构化方法,面向对象的方法。

可行性研究的主要任务:
可行性研究的主要任务不是具体解决系统中的问题,而是以最小的代价在尽可能短的时间内确定问题是否值得解决,是否能够解决。

可行性研究主要包括以下几个方面:1,技术可行性(风险分析,资源分析和技术分析);2,经济可行性(成本-效益分析);3,社会可行性(社会可行性是指开发后的系统能否得到社会的认可)

系统模型:物理(框图),逻辑(流程图);

系统流程图在可行性分析阶段使用。

成本—效益分析:
成本—效益分析的目的是从经济角度来评价开发一个新的软件项目是否可行。

系统的成本包括系统的开发陈本与运营成本。

系统成本包括:(1)硬件成本;(2)系统软件成本;(3)软件开发成本;(4)施工成本;(5)用户培训费用;(6)不可预见费用。

系统的运营成本是指发生在软件生命周期内维持系统运行的费用,以每年的花费量计算。
它包括:(1)人员费用;(2)网路使用费用;(3)维修费用;(4)消耗品费用。

需求分析的任务是理解和表达用户的需求,描述软件的功能和性能,确定软件设计的限制和软件同其他系统元素的借口细节,定义软件的其他有效性需求。

数据流图在需求分析阶段

er模型包含“实体”,“联系”和“属性”三个阶段。
在er图中用矩形方框代表实体
在er图中用菱形方框代表联系。
在er图中用椭圆或圆角矩形表示属性。

层次框图是用树形结构的一系列多层次的矩形框描述数据的层次结构。

软件设计的原则:模块化,抽象化,信息隐蔽,模块独立。

模块化是指解决一个复杂问退时自顶向下逐层把软件系统划分为若干模型的过程。

抽象化是指认识复杂现象过程中使用的思维工具,即抽出事物本质的,共同的特性而暂不考虑它的细节,不考虑其它因素。

抽象化和逐步求精,模块化的概念是一致的。

模块独立性的概念是模块化,抽象化和信息隐蔽的直接产物。

模块独立性可用两个定性标准来度量:内聚性和耦合性

内聚性:又称块内联系,是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。

耦合性:又称块间联系,是指软件系统结构中各模块间相互联系紧密程度的一种度量。

偶然内聚:这种模块内各部分之间没有有意义的关系或者关系很松散。

逻辑内聚:这种模块把几种相关的功能组合在一起,每次被调用时,根据传送给模块的控制型参数来确定应执行的功能。

时间内聚:这种模块大多为多功能模块,但要求模块的各个功能必须在同一时间段执行。

工程内聚:使用流程图作为工具设计程序的时候,通过流程图来确定模块划分,把流程图中的某一部分划出组成模块,就是过程内聚模块。

通信内聚:一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据。

顺序内聚:一个模块中各个部分都是完成一项具体的功能而协同工作,紧密联系,不可分割的。

内容耦合:如果一个模块直接访问另一个模块内的内部数据,或一个模块不能通过正常入口转到另一个模块内部,或两个模块有一部分程序代码重叠(在汇编语言程序中可能出现),或者一个模块有多个入口,则两个模块之间就发生了内容耦合。它是最高程度的耦合,应该避免。

公共耦合:如果一组模块都访问同一个公共数据环境,则它们之间的耦合称为公共耦合。

外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。

控制耦合:如果一个模块把控制信息传递给另一个模块,对其功能进行控制,这种耦合称为控制耦合。

标记耦合:如果一组模块通过参数表传递记录信息,这组模块就是标记耦合。事实上这组模块共享了某一数据结构的子结构,而不是简单变量。

数据耦合:如果一个模块访问另一个模块彼此之间通过数据参数(不是控制参数,公共数据结构或外部变量)来交换输入,输出信息,这种耦合称为数据耦合。

非直接耦合:如果两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。

数据流图的类型:变换型,事务型,混合型。

sd方法以数据流图为基础设计系统的模块结构。

事务型中间是有事务中心的!由它来进行处理的!

程序设计语言的分类:
机器语言——第一代语言
汇编语言——第二代语言
高级语言——第三代语言
4gl——第四代语言

变换型数据流图是线形结构的,由输入,变换(或称主加工)和输出三部分组成。

程序的效率:程序执行速度的快慢和程序占用存储空间的大小。
效率要求实际上就是性能要求对效率追求应取决于再需求分析阶段确定的效率方面的要求;

程序的效率包括以下三个方面:程序运行时间;存储器效率;输入/输出的效率。

公式计算:v(g)=m-n+p
v(g)有向图g的环数;
m有向图g的有向弧数;
n有向图g的节点数;
p=1;

软件测试的目标:为了发现错误而执行程序的过程。

软件测试的常用方法:
黑盒法:已知该程序应具备的功能而通过检测来检验的它的每一项功能是否能正常使用此方法为黑盒测试。
白盒法:已知程序的内部结构和工作过程,通过检测可检验产品内部动作是否符合规格说明书的规定,为白盒测试。

用白盒法设计测试用例最常用的是逻辑覆盖法:包括语句覆盖,判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,路径覆盖。

软件测试分为4个步骤进行:单元测试,集成测试,确认测试,系统测试。

软件可维护性的因素:可理解性,可测试性,可修改性。

The template file 'copy.htm' not found or have no access!(1)