软件生命周期的划分
软件的生产、使用和消亡过程称为软件的生命周期,既是从软件问题的提出,直到软件停止使用的整个过程。软件生命周期由软件定义、软件开发和软件运行三个阶段组成。
软件定义:问题提出、可行性分析、需求分析。软件开发:总体设计、详细设计、编码、测试。软件运行:维护。
软件危机的定义、原因和表现
软件危机是指在计算机软件的开发和维护过程中所出现的一系列严重的问题。
原因: 1、软件是逻辑部件,不是物理部件。2、软件的规模越来越大,结构越来越复杂。3、软件开发、维护管理困难。4、软件开发技术落后。5、生产方式落后。6、开发工具落后,生产率提高缓慢。
表现:1、软件需求增长得不到满足。2、软件生产成本高、价格昂贵。3、软件生产进度无法控制。4、软件需求定义不准确。5、软件质量不易保证。6、软件可维护性差
软件工程方法学的要素
四大要素:方法、语言、工具、过程
常见的软件开发模型有哪些?
模型:瀑布模型、增量模型、螺旋模型、喷泉模型、四代技术、变换模型、基于知识的模型、过程开发模型。
结构化分析方法的基本原则
原则:1、抽象:是指抽出事物的本质特性而暂时不考虑它们的细节。(主要手段)
2、分解:是指把一个大问题经过多次逐层划分成为若干个足够简单容易解决的小问题的过程。(主要手段)
3、模块化:是指将系统分解成具有特定功能的若干模块,以完成系统制定的各项功能。(主要出现在结构化设计中,是结构化方法中分解原则的具体应用)
环路复杂度的计算P85
采用①环路复杂度V(G)=4; 等于流图中的区域数。
采用②V(G)=E-N+2=11-9+2=4,其中E是流图中边的条数,N是流图中的节点数。
采用③V(G)=P+1=4其中P是流图中判定节点的数目。
7种耦合、7种内聚
低←————————————————耦合性←————————————————高
非直接耦合 | 数据耦合 | 标记耦合 | 控制耦合 | 外部耦合 | 公共耦合 | 内容耦合 |
高←————————————————内聚性←————————————————低
功能内聚 | 顺序内聚 | 通信内聚 | 过程内聚 | 时间内聚 | 逻辑内聚 | 偶然内聚 |
追求低耦合高内聚。
耦合:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合
(耦合性递增,模块独立性递减)
内聚:功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚
(内聚性和模块独立性都递减)
追求低耦合高内聚。
结构化开发过程中各阶段的主要任务及使用的工具P41、P63
软件设计可划分为概要设计和详细设计。
概要设计的主要任务是确定一个模块化的程序结构,确定每个模块的功能,定义界面,明确模块间的相互关系及系统的全局数据结构。
使用的工具:数据流图、数据字典、结构化英语、结构图、层次图和HIPO图
数据流图中,这种信息流可分为两种类型:变换流和事物流。
详细设计的基本任务就是要在概要设计的基础上,对系统中的每个模块给出足够详细的过程性描述,以及局部数据结构的设计。
使用的工具:程序流程图、盒图、问题分析图、判定表、判定树、过程设计语言