《软件工程导论》复习知识点总结

                                           软件工程导论

第一章  软件工程学概述

1.     软件工程的7条基本原理:

用分阶段的生命周期计划严格管理;坚持进行阶段评审;实行严格的产品控制;采用现代程序设计技术;结果应能清楚的审查;开发小组的人应该少而精;承认不断改进软件工程实践的必要性。

2.     软件工程方法学包括:

方法,工具和过程。传统方法学也称为生命周期方法学或者结构化规范。它采用结构化技术(结构化分析,结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工程工具来支持结构化技术的应用。

3.     软件生命周期:

三个周期,八个阶段。三个周期:软件定义,软件开发,和运行维护。八个阶段:1问题定义2可行性研究

3需求分析 4总体设计 5详细设计 6编码和单元测试7综合测试 8软件维护

4.     软件过程:

1瀑布模型 2快速原型模型 3增量模型 4螺旋模型5喷泉模型 6Rational统一过程 7敏捷过程与极限编程

8微软过程

 

第二章  可行性研究

5.     数据流图:

数据流图是一种图形化的技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。

数据流图有4种成分:源点或者终点,处理,数据存储和数据流。

数据流图的基本目的是利用它作为交流信息的工具,作为分析和设计的工具。

6.     数据字典:

数据字典是关于数据的信息的集合,也就是对数据流图中所包含的所有元素的定义的集合。包含:1数据流,2,数据流分量(即数据元素),3,数据存储,4,处理。

7.     如何定义数据的方法?

答:数据字典中的定义就是自顶向下的分解。当分解到不需要进一步定义,每个和工程有关的人也都清楚其含义的元素时,分解也就相应的完成。

由数据元素组成数据的方式只有以下3中基本类型:

1/顺序 即以确定次序连接两个或者多个分量。

2/选择 即从两个或者多个可能的元素中选取一个。

3/重复 即把指定的分量重复零次或者多次。

4/可选 即一个分量是可有可无的(重复零次或者一次)。

8.     数据字典的用途:

1/ 作为分析阶段的工具。

2/ 数据字典中包含的每个数据元素的控制信息是很有价值的。

3/ 数据字典是开发数据库的第一步,是很有价值的一步。

9.     成本估计:

代码行技术 任务分解技术 自动估计成本技术

成本效益分析方法:1,货币的时间价值 2投资回收期 3纯收入 4投资回收率

第三章  需求分析

10.  分析方法都应该遵守以下准则:

1/ 必须理解并且描述问题的信息域,根据这条准则建立数据模型。

2/ 必须定义软件应该完成的功能,这条准则要求建议功能模型。

3/ 必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。

4/ 必须对描述信息,功能和行为的模型进行分解,用层次的方式细节。

 

11.  需求分析的任务有什么?

功能需求 性能需求 可靠性和可用性分析需求 出错处理需求 接口需求 约束 逆向需求 将来可能提出的要求  

12.  与用户沟通获取需求的方法:

1,访谈 2,面向数据流自顶向下求精 3,简易的应用规格说明技术 4,快速建立软件原则  

13.  图形工具:

层次方框图 Warnier图 IPO图

1 层次方框图

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

例如,描绘一家计算机公司全部产品的数据结构可以用下图层次方框图表示。
这家公司的产品由硬件、软件和服务3类产品组成,软件产品又分为系统软件和应用软件,系统软件又进一步分为操作系统、编译程序和软件工具等。


 

 

 

 

 

 

 

 

 

 

 

 

 

2 warnier图

和层次方框图类似,Warnier图也用树形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段。
用Warnier图可以表明信息的逻辑组织,也就是说,它可以指出一类信息或一个信息元素是重复出现的,也可以表示特定信息在某一类信息中是有条件地出现的。
 


 

 

 

 

 

 

 

 

 

 

3 IPO图

IPO图是输入、处理、输出图的简称,它是由美国IBM公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。

14.  内聚和耦合:

耦合:是对一个软件结构内各个模块之间相互依赖程度的度量;耦合的强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。

内聚:则标志一个模块内各个元素彼此结合的紧密程度;内聚从功能角度衡量模块内的联系,好的内聚模块应当恰好做一件事。

需求的原则是:强内聚,弱耦合。然而在实际需求过程中,往往会因为技术驱动,导致需求间耦合很紧,不利于后期有效地迭代开发。有效的解决办法是按流程、和业务梳理需求。

1.首先,我们来明确什么是模块

模块是一系列语句组成的,由标识符组成的边界元素来界定的。比如面向对象语言中的一个类、一个方法;也如面向过程中的函数。

2.内聚

所谓的内聚是指模块内的交互程度,内聚又分为一下几种

偶然性内聚:组件的部件是不相关的,只是简单地绑定成单个组件。

不足:程序的可读性和复用性差

逻辑性内聚:把相似的功能(类如输入,错误处理)放在一块,通过传递一个参数来决定是哪一个功能来执行。

不足:接口可读性差,代码复用性低

时间性内聚:所有的语句在同一时刻被激活,就像电脑关机的时候,其他所有的程序都要被关闭。

不足:模块内的关联不高,而与模块外的关联却很高,所以在维护的时候工作量会 比较大。

过程性内聚:简单地把一系列过程关联在一起

不足:代码的复用性比较差

通信性内聚:操作相同的输入数据或者输出相同的输出数据,可能产生多种功能。

不足:代码的复用性不高

顺序内聚:从一个部分的输出作为另一部分的输入。可能包含几个功能或部分不同的功能。

不足:代码的复用性不高

信息聚合:执行多个功能,每个函数都有自己的入口点,每个函数都有独立的代码,所有的功能都在相同的数据结构上执行。不同于逻辑衔接,因为功能没有交织在一起。

功能内聚:每一部分都需要执行一个单一的功能。例如,计算平方根或排序数组。通常在其他情况下可重复使用。维修容易。

以上几种内聚程度由低到高

耦合:耦合是指模块之间的交互程度

内容耦合:如果一个模块直接操作操作另外一个模块中的内容,比如下面的代码:

public class Product {

public float unitPrice;

……
}

public class Order {

   private Product myProduct=new Product();

           myProduct.unitPrice = -100;

               }

         }

 

公共耦合:就像一个类中的全局变量类中的模块都直接操作这个全局变量

  • 125
    点赞
  • 865
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值