好文档 - 专业文书写作范文服务资料分享网站

软件设计期末复习重点

天下 分享 时间: 加入收藏 我要投稿 点赞

爱第一章 软件工程与软件设计 1.1 软件工程 软件分类:

1.系统软件 2.实时软件 3.嵌入式软件

4.科学和工程计算软件 5.事务处理软件 6.人工智能软件 7.个人计算机软件

软件工程由方法、工具和过程三个要素组成。

1.3软件开发过程模型

1.3.1瀑布模型:是既自顶向下结构化开发模型

1.3.2 快速原型模型

1.3.3螺旋模型

由四部分组成: 1. 需求定义; 2. 风险分析; 3. 工程实现; 4. 评审; 特点:

1. 瀑布模型+快速原型+风险分析 2. 迭代过程

1.4软件设计

软件设计的概念:对软件如何被开发出来的一种描述

1.5软件体系结构

软件体系结构的定义(较有影响力的定义):

1. 软件体系结构是软件系统的结构,包括软件元素,软件元素外部可见的属性以及这些软

件元素之间的关系;

2. 软件体系结构是软件系统的基本组织,包括构件,构件之间,构件与环境之间的关系,

以及相关的设计和演化原则。

第二章

2.1 UML 概述

2.1.3 UML 2.0的建模机制

建模机制中包含的13种视图模型可以划分为结构视图和行为视图两种类型。 建模机制包括:结构建模,行为建模

结构建模包含:类图,包图,对象图,构件图,组合结构图,部署图

行为建模包含:活动图,交互图(顺序图,通信图,交互概览图,时序图),状态图,用例图

2.2 面向对象开发方法 2.3 UML 2.0结构建模 2.3.1 类图(作用):类图是UML中最基本、也是最重要的一种视图,它用来刻画软件中类等元素的静态机构关系。

依赖关系:两个类之间存在依赖关系,表明一个类使用或需要知道另一个类中包含的信息。

ProductCatalog Customer

关联关系:两个类之间存在关联关系,表明这两个类的实例之间存在语义上的联系。 +Employee +Employee Person Company * 1 聚集关系:聚集关系表明两个类的实例之间存在一种拥有或属于关系,可以看做是一种比较弱的整体的一部分关系,或是一种逻辑上的隶属关系。(图上菱形是空的) * 1 Person Person

2.4 UML 2.0 行为建模 2.4.1 顺序图:(给出用例画出顺序图)【课本 41页】 2.4.7 用例图:(作用,参与者,用例)【课本 50页】

? 作用:用例图通常被用来描述系统的需求,从用户的角度对系统的功能视点进行建

模。

? 用例:一个用例代表系统执行的一组动作,这些动作完成特定的任务,并产生对用

户或外部实体可观察的结果。用例用来描述系统对外可见的需求或功能。

? 参与者:参与者是与用例发生交互的系统外部角色,必须是被开发的系统范围之外

的角色(不必在本开发系统中实现),它们只与系统发生某种形式的交互。

第三章 软件设计基础 3.1 软件设计的基本概念

3.1.1抽象与逐步求精(概念)【课本 55页】

? 抽象:“抽象”是一个心理学概念,它要求人们将注意力集中在某一层次上考虑问题,

而忽略那些低层次的细节。是管理、控制复杂性的基本策略。

? 逐步求精:“逐步求精” 可视为一种早期的自顶向下设计策略,其主要思想是,针对

某个功能的宏观描述用逐步求精的方法不断地分解,逐步确立过程细节,直至该功能用程序语言描述的算法实现为止。

3.1.2 模块化与信息隐藏(概念、好处)【课本 57页】

模块化:即把软件划分为可独立命名和访问的部件,每个部件称为一个模块,当把所有模块组装到一起时则获得满足问题需要的一个解。

信息隐藏:即一个模块的开发者不必看到其它模块的内部,只需知道其接口即可,这使得每个模块的开发人员所要处理的复杂性显著降低。未来达到信息隐藏的目的,模板应该被设计为其所含信息(过程和数据)对于那些不必要的信息模块不可访问。 3.1.3 内聚与耦合(不同内聚概念、判断、举例)【课本 58页】

1.内聚

? 偶然性内聚:一个模块内各成分为完成一组功能而组合在一起,它们相互之间即使

有关系,也很松散(内聚程度最低)

例1:一个程序员写完一个程序后发现有一组语句多处出现,于是为了节省内存便将这组语句单独组成一个模块。 例2:工具模块

? 逻辑性内聚:模块完成的诸任务逻辑上相关

? 时序内聚:一个模块包含的任务必须在同一时间内执行

例:系统的初始化

? 过程性内聚:模块内成分彼此相关,并且必须按特定的次序执行 ? 通信内聚:模块中各成分都 将对数据结构的同一区域进行操作

例如:从同一磁带上读取不相干的数据 —— 可能破坏独立性。 ? 顺序性内聚:各成分均与同一功能相关,且处理按序执行

? 功能性内聚:所有成分形成一个整体,完成单个功能(内聚程度最高) 2.耦合

? 非直接耦合:两个模块中的任一个都不依赖对方能独立工作。(耦合度最低)

例1:A访问C的内部数据或不通过正常入口而转入C的内部。 例2:部分代码重叠(常出现在汇编程序中) 例3:一个模块有多个入口(功能)

? 数据耦合:两模块间通过参数交换信息,数据仅限于数据。 ? 控制耦合:模块间传递的信息含有控制信息。

? 特征耦合:介于数据耦合和控制耦合之间。 ? 外部耦合:若干模块均与同一外部环境关联。

? 公共耦合:若干模块通过全局的数据环境相互作用。

? 内容耦合:一个模块使用另一模块内部的数据或控制信息,或一个模块直接转移到

另一模块内部。(最高耦合度)

1. 2.

3.3 软件设计的质量 1.结构良好 2.充分性 3.可行性 4.简单性 5.实用性 6.灵活性 7.健壮性 8.可移植性 9.可复用性 10.标准化

灵活性(如何提高灵活性,可靠性)【课本 67页】 举例:网站成员注册

class Website {

Member[] members;// or maybe:vector members; void register(Member aMember){...}} 怎样才能使设计更灵活以注册新类型的成员?

解决方案:引入一个基类,将基类抽象化,根据需要产生继承类 我们之所以进行灵活的设计,因为变化和重用是经常出现的

2.健壮性

6ah2d5tsry9pg7z7hdvh6c4rp7oypx00ss2
领取福利

微信扫码领取福利

微信扫码分享