系统分析与设计IBM-72软件设计原则课件_第1页
系统分析与设计IBM-72软件设计原则课件_第2页
系统分析与设计IBM-72软件设计原则课件_第3页
系统分析与设计IBM-72软件设计原则课件_第4页
系统分析与设计IBM-72软件设计原则课件_第5页
已阅读5页,还剩10页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件设计原则软件设计原则1软件设计原则设计原则是系统分解和模块设计的基本标准,应用这些原则可以使代码更加灵活、易于维护和扩展。模块化封装层次化抽象复用软件设计原则设计原则是系统分解和模块设计的基本标准,应用这些2抽象抽象是关注事物中与问题相关部分而忽略其他无关部分的一种思考方法。MySQLSQL

Server应用程序SQLServerConnectionMySQLConnection抽象抽象是关注事物中与问题相关部分而忽略其他无关部分的一种思3抽象抽象是关注事物中与问题相关部分而忽略其他无关部分的一种思考方法。<<interface>>DBConnection+createDBConnect(

)+releaseDBConnect(

)DBConnection

Implementation+createDBConnect(

)+releaseDBConnect(

)OracleSQL

ServerMySQL抽象抽象是关注事物中与问题相关部分而忽略其他无关部分的一种思4封装封装和信息隐藏是指每个软件单元对其他所有单元都隐藏自己的设计决策,各个单元的特性通过其外部可见的接口来描述。要求:应将单元接口设计得尽可能简单,并将单元对于环境的假设和要求降至最低。封装封装和信息隐藏是指每个软件单元对其他所有单元都隐藏自己的5模块化模块化是在逻辑和物理上将整个系统分解成多个更小的部分,其实质是“分而治之”,即将一个复杂问题分解成若干个简单问题,然后逐个解决。模块1模块2模块3模块化模块化是在逻辑和物理上将整个系统分解成多个更小的部分,6系统分解原则系统分解的目标:高内聚、低耦合内聚性是一个模块或子系统内部的依赖程度。如果一个模块或子系统含有许多彼此相关的元素,并且它们执行类似任务,那么其内聚性比较高;如果一个模块或子系统含有许多彼此不相关的元素,其内聚性就比较低。耦合性是两个模块或子系统之间依赖关系的强度。如果两个模块或子系统是松散耦合的,二者相互独立,那么当其中一个发生变化时对另一个产生的影响就很小;如果两个模块或子系统是紧密耦合的,其中一个发生变化就可能对另一个产生较大影响。系统分解原则系统分解的目标:高内聚、低耦合内聚性是一个模块或7系统分解原则举例:某游戏软件的部分类图如下,其中GameCharacter代表人物,GameLayout代表布局,GameArea代表一个区域,GameAreaConnection代表两个区域的连接。GameLayoutGameAreaConnectionGameCharacter0..nGameArea2dressing

roomliving

roomkitchenCOURTYARD系统分解原则举例:某游戏软件的部分类图如下,其中GameCh8系统分解原则GameLayoutGameAreaConnectionGameCharacter0..nGameArea2GameCEEnvironmentGameCharacterGameLayoutGameAreaGameAreaConnection20..nCharacters系统分解原则GameLayoutGameAreaConnec9系统分解原则举例:在一个软件系统中,有三个子系统A、B、C都要访问一个关系数据库。A:

SubsystemB:

SubsystemC:

SubsystemDatabase这个方案有什么问题?系统分解原则举例:在一个软件系统中,有三个子系统A、B、C都10系统分解原则改进:在子系统和数据库之间增加一个存储子系统Storage,从而屏蔽了底层数据库的变化对上层子系统的影响。A:

SubsystemB:

SubsystemC:

SubsystemDatabaseStorage系统分解原则改进:在子系统和数据库之间增加一个存储子系统St11层次化A:

SubsystemB:

SubsystemC:

SubsystemD:

SubsystemE:

SubsystemF:

SubsystemG:

SubsystemLayer

1Layer

2Layer

3层次化Layer1Layer2Layer312层次化分层(Layering)每一层可以访问下层,不能访问上层封闭式结构:每一层只能访问与其相邻的下一层开放式结构:每一层还可以访问下面更低的层次层次数目不应超过

7±2

层划分(Partitioning)系统被分解成相互对等的若干模块单元每个模块之间依赖较少,可以独立运行注意:模块单元增加了处理开销,过度分层或划分会增加复杂性。A:

SubsystemB:

Subsystem C:

SubsystemD:

SubsystemE:

SubsystemF:

SubsystemG:

SubsystemLayer

1Layer

2Layer

3层次化分层(Layering)每一层可以访问下层,不能访问上13示例:安卓操作系统层次结构14应用层:运行在虚拟机上的Java应用程序。应用框架层:支持第三方开发者之间的交互,使其能够通过抽象方式访问所开发的应用程序需要的关键资源。系统运行库层:为开发者和类似终端设备拥有者提供需要的核心功能。Linux内核层:提供启动和管理硬件以及Android应用程序的最基本的软件。示例:安卓操作系统层次结构14应用层:运行在虚拟机上的Jav14复用复用(Reuse)是利用某些已开发的、对建立新系统有用的软件元素来生成新的软件系统,其好处在于提高生产效率,提高软件质量。源代码

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论