软件工程导论期末救急包(中)(一)

简介: 软件工程导论期末救急包(中)

用户需求

用户需求采用例如采用用例(Use Case)文档或场景(Scenario)等方式说明。

功能需求定义了开发者应提供的软件功能或服务,但不涉及这些功能或服务的实现。

非功能需求则是对功能需求的补充,包括了对系统的各种限制和用户对系统的质量要求。

需求分析常用的分析方法

  • 基于瀑布模型的结构化方法,结构化分析方法的分析策略是:自顶向下,逐层分解    
  • 基于需求动态定义就的原型化方法  
  • 基于对象的面向对象的方法:UML是软件开发中的一个重要工具    
  • 基于数据的数据流开发方法
  • 面向数据结构设计Jackson方法给出三种结构是. 顺序结构,选择结构,重复结构
  • 面向对象的需求分析

1 Booch方法

2 Rumbaugh方法

3 Coad和Yourdon方法

4 Jacobson方法

5 Wirfs―Brock方法

6 UML的OOA方法(现在主流技术基本都使用UML来建模,其他很少使用)

软件设计

传统的结构化方法将软件设计划分为体系结构设计、数据设计、接口设计及过程设计四部分;

结构化分析特点:自顶向下,逐步求精

面向对象方法则将软件设计划分为体系结构设计、类设计∕数据设计、接口设计、构件级设计四部分。

创建良好设计的原则

设计应遵循抽象化的原则,包含数据抽象和过程抽象

设计应当遵循模块化的原则。

设计应遵循信息隐蔽的原则。

模块独立性

高内聚,低耦合

内聚性

内聚是一个模块内部各个元素彼此结合的紧密程度的度量。

(1)   功能内聚

一个模块中各个部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割的。这种模块就是功能内聚模块。功能内聚模块的模块独立性最强。

(2)   层内聚

相关服务放在一起,并有严格的层次结构,高层服务可访问低层服务,反之不可。如分层结构。

(3)   通信内聚

访问或操作同一数据的过程放在一个类中,这些过程可以互相通信。如某个类设计。

(4)   顺序内聚

存在一系列过程,其中一个过程向另一个过程提供输入,这些过程放在一起,形成顺序内聚。如面向对象系统中的消息序列。

(5)   过程内聚

几个一次调用的操作放在一个模块中,它们是相关的且必须以特定次序执行,则称这个模块为过程内聚模块。但在这种模块内,一个操作的输出不一定是下一个操作的输入。如调用结构。

(6)   时间内聚

程序执行过程中同一阶段内完成的操作放在一起,达到时间内聚。

(7)   实用程序内聚

逻辑上不能纳入其他内聚类型的相关实用程序放在一起,形成实用程序内聚。如可复用的过程或类。

耦合性

耦合是模块间互相连接的紧密程度的度量,它取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。

模块之间的耦合性越高,其模块独立性就越弱。模块的内聚性越高,它与其他模块之间的耦合性就会降低,而模块独立性就越强。

(1)   内容耦合

如果发生下列情形,模块间就是内容耦合: 一个模块直接访问另一个模块的内部数据;

(2)   公共耦合

若一组模块都访问同一个公共数据环境,则它们之间的耦合就是公共耦合。公共数据环境可以是全局变量、全局数据结构、共享的通信区、内存的公共覆盖区等。

(3)   控制耦合

一个过程通过标志、开关或命令显式地控制另一个过程的动作,就产生控制耦合。

(4)   标记耦合

如果一组模块通过参数表传递结构或对象(注意,不是简单变量或结构中的某一分量),就是标记耦合。

(5)   数据耦合

如果模块之间的访问是通过数据参数(不是控制参数、结构或对象参数、公共数据结构)来交换输入、输出信息的,则称这种耦合为数据耦合。

(6)   例程调用耦合

一个程序(或对象的操作)调用另一个程序(或另一个对象的操作),就产生例程调用耦合。

(7)   类型使用耦合

类将实例变量或本地变量声明为另一个类的实例,就产生类型(嵌套)耦合。

(8)   包含/引入耦合

一个构件引入(import)一个包时就产生引入耦合,一个构件包含(include)另一个构件时,就产生包含耦合。

(9)   外部耦合

模块对外部系统,如操作系统、共享库或硬件有依赖关系时就产生外部耦合。可通过信息隐蔽减少这种依赖关系。


相关文章
|
6月前
|
网络协议 网络架构
计算机网络期末复习——计算大题(一)
计算机网络期末复习——计算大题(一)
210 0
计算机网络期末复习——计算大题(一)
|
6月前
通信原理期末复习——计算大题(一)
通信原理期末复习——计算大题(一)
51 0
通信原理期末复习——计算大题(一)
|
存储 人工智能 算法
数据结构 第一章作业 绪论 西安石油大学
数据结构 第一章作业 绪论 西安石油大学
88 0
|
6月前
|
存储 Java 测试技术
精读2016计算机软考上午题解析
精读2016计算机软考上午题解析
84 0
|
6月前
|
安全 Java 测试技术
精读2017计算机软考上午题解析
精读2017计算机软考上午题解析
79 0
|
6月前
|
存储 供应链 数据挖掘
精读2015计算机软考上午题解析
精读2015计算机软考上午题解析
92 0
|
6月前
|
存储 IDE 测试技术
精读2013计算机软考上午题解析
精读2013计算机软考上午题解析
84 0
|
6月前
|
SQL 存储 测试技术
精读2014计算机软考上午题解析
精读2014计算机软考上午题解析
79 0
|
6月前
|
算法
【中级软件设计师】—(针对上午题)数据结构(二十九)
【中级软件设计师】—(针对上午题)数据结构(二十九)
|
6月前
|
存储 算法 搜索推荐
【中级软件设计师】—(针对上午题)数据结构(二十八)
【中级软件设计师】—(针对上午题)数据结构(二十八)
下一篇
无影云桌面