版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件设计原则软件设计原则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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/SHPTA 115-2024多层共挤流延聚乙烯标签膜
- T/PTACAS 7-2024印刷企业综合能力评价分级要求
- 数据分析师数据分析质量绩效评定表
- 律师事务律师案源开发与案件处理能力绩效衡量表
- 电商平台会员体系搭建规范手册
- 智能家居产品功能规范手册
- 媒体编辑部内容创作绩效衡量表
- T/SASWI 001-2023无氯环保融雪剂
- 环境表面清洁与消毒管理试题及答案
- 退耕还林工程水土保持技术手册
- 2026中国进出口银行招聘考试(专业知识)历年参考题库含答案详解
- 消防培训防盗、防火安全课件
- 事业编计算机岗2026全真模拟
- 妇科肿瘤整合加速康复外科管理中国专家共识(2026年版)
- 艾灸疗法小讲课
- 超限站工作制度
- DZ/T 0054-2014定向钻探技术规程
- 应用型高校教学评价指标体系构建
- 城市高架桥防撞护栏安装方案
- 2024-2025学年人教版物理八年级上册 期中考试物理试卷
- 加油站现场安全重点检查指引
评论
0/150
提交评论