单击此处编辑母版标题样式解析
合集下载
按一下以编辑母片标题样式.
(2) – 第二層 實體名稱 弱勢實體
• 第三層屬性名稱 (3)
屬性
– 第四層 » 第五層 (4) 屬性名稱
(5)
多值屬性
一般關係
(6)
弱勢關係
表2.2 實體關係圖主要元素
1 - 14
14
物件導向系統分析與設計
實體關係圖 (Entity-Relationship Diagram) 按一下以編輯母片標題樣式
物件導向系統分析與設計
第二章 結構化技術 按一下以編輯母片標題樣式
• 按一下以編輯母片文字樣式
– 第二層 資料流程圖補充資料
• 第三層
– 第四層 » 第五層
1 -1
1
物件導向系統分析與設計
• 按一下以編輯母片標題樣式 DFD的組成要素
編號
圖示
意義
• 按一下以編輯母片文字樣式
(1) 外界實體名 稱
外界實體
1 -4
4
物件導向系統分析與設計
按一下以編輯母片標題樣式
• 按一下以編輯母片文字樣式 環境背景圖的繪製方法
– 第二層 • 扼要表達系統的輸出入資訊需求及其來源與去處,
• 第三層 不涉及詳細的作業流程與處理細節。 – 第四層 • 確定與系統有關的外界實體 » 第五層 • 確定系統與外界實體間的輸出入關係 • 系統應以一個圓圈表示,外界實體以一正方形表示 • 各外界實體與系統間的輸出入表單或物品,以箭頭 連接之,表單或物品名稱則寫於箭頭線之上方或下 方 1 -5
按一下以編輯母片標題樣式
8
物件導向系統分析與設計
•判斷資料流程圖是否已被分解到最底層的原則: 按一下以編輯母片標題樣式
•
•當每個處理已被分解到單一決策、單一計算或對單 一資料檔操作時,例如檢索(Retrieve)、修改、新增、 按一下以編輯母片文字樣式 刪除或讀寫等。 •當每個資料儲存表達單一實體 (Entity)之資料,例如 – 第二層 客戶、員工、產品或訂單。 • 第三層 •當系統使用者不必看到更細部或當分析者已記載到 – 第四層 足夠詳細可做後續的系統發展工作。 » 第五層 •當每一商業表單(Business Form)或交易,電腦之即時 展示與報告被視為單一資料流。
• 第三層屬性名稱 (3)
屬性
– 第四層 » 第五層 (4) 屬性名稱
(5)
多值屬性
一般關係
(6)
弱勢關係
表2.2 實體關係圖主要元素
1 - 14
14
物件導向系統分析與設計
實體關係圖 (Entity-Relationship Diagram) 按一下以編輯母片標題樣式
物件導向系統分析與設計
第二章 結構化技術 按一下以編輯母片標題樣式
• 按一下以編輯母片文字樣式
– 第二層 資料流程圖補充資料
• 第三層
– 第四層 » 第五層
1 -1
1
物件導向系統分析與設計
• 按一下以編輯母片標題樣式 DFD的組成要素
編號
圖示
意義
• 按一下以編輯母片文字樣式
(1) 外界實體名 稱
外界實體
1 -4
4
物件導向系統分析與設計
按一下以編輯母片標題樣式
• 按一下以編輯母片文字樣式 環境背景圖的繪製方法
– 第二層 • 扼要表達系統的輸出入資訊需求及其來源與去處,
• 第三層 不涉及詳細的作業流程與處理細節。 – 第四層 • 確定與系統有關的外界實體 » 第五層 • 確定系統與外界實體間的輸出入關係 • 系統應以一個圓圈表示,外界實體以一正方形表示 • 各外界實體與系統間的輸出入表單或物品,以箭頭 連接之,表單或物品名稱則寫於箭頭線之上方或下 方 1 -5
按一下以編輯母片標題樣式
8
物件導向系統分析與設計
•判斷資料流程圖是否已被分解到最底層的原則: 按一下以編輯母片標題樣式
•
•當每個處理已被分解到單一決策、單一計算或對單 一資料檔操作時,例如檢索(Retrieve)、修改、新增、 按一下以編輯母片文字樣式 刪除或讀寫等。 •當每個資料儲存表達單一實體 (Entity)之資料,例如 – 第二層 客戶、員工、產品或訂單。 • 第三層 •當系統使用者不必看到更細部或當分析者已記載到 – 第四層 足夠詳細可做後續的系統發展工作。 » 第五層 •當每一商業表單(Business Form)或交易,電腦之即時 展示與報告被視為單一資料流。
单击此处编辑母版标题样式
2.2 可行性研究过程
典型的可行性研究过程有下述一些步骤。 典型的可行性研究过程有下述一些步骤。 1. 复查系统规模和目标 分析员访问关键人员,仔细阅读和分析有关的材料, 分析员访问关键人员,仔细阅读和分析有关的材料, 以便对问题定义阶段书写的关于规模和目标的报告 书进一步复查确认,改正含糊或不确切的叙述,清 书进一步复查确认,改正含糊或不确切的叙述, 晰地描述对目标系统的一切限制和约束。 晰地描述对目标系统的一切限制和约束。这个步骤 的工作, 的工作,实质上是为了确保分析员正在解决的问题 确实是要求他解决的问题。 确实是要求他解决的问题。
2.3 系统流程图
系统流程图是概括地描绘物理系统的传统工具。它 系统流程图是概括地描绘物理系统的传统工具。 的基本思想是用图形符号以黑盒子形式描绘组成系 统的每个部件(程序 文档,数据库,人工过程等)。 程序, 统的每个部件 程序,文档,数据库,人工过程等 。 系统流程图表达的是数据在系统各部件之间流动的 情况,而不是对数据进行加工处理的控制过程, 情况,而不是对数据进行加工处理的控制过程,因 此尽管系统流程图的某些符号和程序流程图的符号 形式相同, 形式相同,但是它却是物理数据流图而不是程序流 程图。 程图。
应该仔细阅读分析现有系统的文档资料和使用手册, 应该仔细阅读分析现有系统的文档资料和使用手册, 也要实地考察现有的系统。 也要实地考察现有的系统。应该注意了解这个系统 可以做什么,为什么这样做, 可以做什么,为什么这样做,还要了解使用这个系 统的代价。 统的代价。在了解上述这些信息的时候显然必须访 问有关的人员。 问有关的人员。 常见的错误做法是花费过多时间去分析现有的系统。 常见的错误做法是花费过多时间去分析现有的系统。 这个步骤的目的是了解现有系统能做什么, 这个步骤的目的是了解现有系统能做什么,而不是 了解它怎样做这些工作。分析员应该画出描绘现有 了解它怎样做这些工作。 系统的高层系统流程图(见2.3节),并请有关人员检 系统的高层系统流程图 见 节 , 验他对现有系统的认识是否正确。 验他对现有系统的认识是否正确。千万不要花费太 多时间去了解和描绘现有系统的实现细节。 多时间去了解和描绘现有系统的实现细节。
单击此处编辑母版标题样式
本年度减少中的:退休达到国家规定退休条件,正式办理退休手续并享受退 休待遇的人员。解除合同与终止合同都是依法解除和终止聘用(劳动)合同。 开除指严重违法违纪,受到开除公职行政处分,由单位办理开除手续的人员。 辞职辞退按人调发(【1990】19号)和(【1992】18号)文件规定办理相关 手续人员。
上年末总数与本年末实有数:上年末总数指去年本单位统计表中的“本年末 实有数”,本年末实有数指截止12月31日本单位的实有人数。
4
各填表单位在填报时要认真核对人员原始登记材料,确保基础数据完整、准确。特别要注意审核信
息项目的选择是否准确,表内数字是否齐全,相互关系在逻辑上是否正确等,对需要说明的问题及
表中所反映出来的统计数字的异常变化等情况,要注明原因。
各单位上报的表要经单位领导审核并签名、加盖公章。
5
本报表指标解释仅限于事业单位管理人才和专a业技术人才统计工作时使用。
负责统计填报的单位, 要主动与兼职的单位联系,以防止重统漏统。
已到新单位任职,但其工资关系暂保留在原单位的人员,由其新任职单位按其新任职务进行统计。
报告期
3
表中数字统计截止时间为本年的12月31日。其中增加、减少和晋升等动态数字的统计起止时间 为本年度的1月1日至12月31日。
填报要求
各事业单位法人填报本表。
贵州省人力资源和社会保障厅
单击此处编辑母版 单击此处编辑母事版业标题单样式位人事管理统计报表解读 标题样式 单击此处编辑母版副标题样式
事业单位人事管理处
2012年12月18日
a
1
两点说明
一、汇总方式由基层事业法人单位填报本单位的原始数据,按 照隶属关系,逐级、逐层汇总上报。
二、今年的样表与去年比较,做了较大的变化,共有10张表格。
上年末总数与本年末实有数:上年末总数指去年本单位统计表中的“本年末 实有数”,本年末实有数指截止12月31日本单位的实有人数。
4
各填表单位在填报时要认真核对人员原始登记材料,确保基础数据完整、准确。特别要注意审核信
息项目的选择是否准确,表内数字是否齐全,相互关系在逻辑上是否正确等,对需要说明的问题及
表中所反映出来的统计数字的异常变化等情况,要注明原因。
各单位上报的表要经单位领导审核并签名、加盖公章。
5
本报表指标解释仅限于事业单位管理人才和专a业技术人才统计工作时使用。
负责统计填报的单位, 要主动与兼职的单位联系,以防止重统漏统。
已到新单位任职,但其工资关系暂保留在原单位的人员,由其新任职单位按其新任职务进行统计。
报告期
3
表中数字统计截止时间为本年的12月31日。其中增加、减少和晋升等动态数字的统计起止时间 为本年度的1月1日至12月31日。
填报要求
各事业单位法人填报本表。
贵州省人力资源和社会保障厅
单击此处编辑母版 单击此处编辑母事版业标题单样式位人事管理统计报表解读 标题样式 单击此处编辑母版副标题样式
事业单位人事管理处
2012年12月18日
a
1
两点说明
一、汇总方式由基层事业法人单位填报本单位的原始数据,按 照隶属关系,逐级、逐层汇总上报。
二、今年的样表与去年比较,做了较大的变化,共有10张表格。
单击此处编辑母版标题样式要点
三大强化之二: 课堂同步
• • • • •
单击此处编辑母版文本样式 长沙雅礼一中 湖南常德鼎城一中 常德六中 耒阳三中 第二级 船山实验中学 江苏省 第三级 江苏省南菁高级中学 江苏省南通中学 江苏省盛泽中学 江苏省吴江市高级中学 第四级 赣榆中学 江西省 第五级 江西省遂川中学 奉新一中
浙江省 杭州高级中学 浙江省东阳中学
第二级 第三级 第四级 第五级
权威专家实 时辅导,每 天看见实力 提高!
单击此处编辑母版标题样式
专业的听权威全面的教辅内 容志鸿优化2005
三大强化之二: 课堂同步
全面收录国内教辅旗舰志鸿教育的同步学习辅导资源。 内置百所名校、千位名师撰写的多达 150万字教辅资料, • 单击此处编辑母版文本样式 涵盖人教版初一到高三全部内容。更可通过网络更新下载。 • 第二级 帮助用户解答学习过程中的疑点、难点。
针对不同的熟悉度设计 多达9种的练习方式, 特别有助于考前突击记 忆,也可根据错题重点 记忆。
特点四
初一到大学六级的分 册词库,还可统计掌 握情况。
单击此处编辑母版标题样式
• • • 第三级 • 第四级 • 第五级
专业的听说训练
三大强化之一: 基础技能
文曲星双语OK在英语文章播放时同 步显示中英文文字。综合运用,让 单击此处编辑母版文本样式 您发音、听力、口语、理解、翻译 第二级 能力一起上!
• 第三级 • 第四级 • 第五级
单击此处编辑母版标题样式
应试能力评估及问题分析 文曲星试卷分析系统V1.2
三大强化之三: 应试能力
文曲星试卷分析系统针对用户历次模拟考试成绩进行动 态统计、分析,帮助用户找出应试过程中的不足,讲解解题 • 单击此处编辑母版文本样式 技巧,提出改进的建议,帮助考生提高成绩。
单击此处编辑母版标题样式
反复进行上述分析过程,分析员越来越深入地定义 了系统中的数据和系统应该完成的功能。为了追踪 更详细的数据流,分析员应该把数据流图扩展到更 低的层次。通过功能分解可以完成数据流图的细化。 对数据流图细化之后得到一组新的数据流图,不同 的系统元素之间的关系变得更清楚了。对这组新数 据流图的分析追踪可能产生新的问题,这些问题的 答案可能又在数据字典中增加一些新条目,并且可 能导致新的或精化的算法描述。随着分析过程的进 展,经过问题和解答的反复循环,分析员越来越深 入具体地定义了目标系统,最终得到对系统数据和 功能要求的满意了解。图3.1靠性需求定量地指定系统的可靠性。 可用性与可靠性密切相关,它量化了用户可以使用 系统的程度。 4. 出错处理需求 这类需求说明系统对环境错误应该怎样响应。例如, 如果它接收到从另一个系统发来的违反协议格式的 消息,应该做什么?注意,上述这类错误并不是由 该应用系统本身造成的。
3.1.3 导出系统的逻辑模型
综合上述两项分析的结果可以导出系统的详细的逻 辑模型,通常用数据流图、实体-联系图、状态转 换图、数据字典和主要的处理算法描述这个逻辑模 型。
3.1.4 修正系统开发计划
根据在分析过程中获得的对系统的更深入更具体的 了解,可以比较准确地估计系统的成本和进度,修 正以前制定的开发计划。
情景分析技术的用处主要体现在下述两个方面: (1) 它能在某种程度上演示目标系统的行为,从而 便于用户理解,而且还可能进一步揭示出一些分析 员目前还不知道的需求。 (2) 由于情景分析较易为用户所理解,使用这种技 术能保证用户在需求分析过程中始终扮演一个积极 主动的角色。需求分析的目标是获知用户的真实需 求,而这一信息的惟一来源是用户,因此,让用户 起积极主动的作用对需求分析工作获得成功是至关 重要的。
单击此处编辑母版标题样式(4)
1.新增的工具栏 (1)在页眉页脚中插入图片。Excel 2003允许在页 眉和页脚插入图片。 单击“视图”|“页眉和页脚”命令,显示如图4-2 所示的“页面设置”对话框;再单击“自定义页眉” 或“自定义页脚”按钮就可以设置页眉和页脚;在 “页眉”对话框(如图4-3所示)或“页脚”对话 框中单击“插入图片”按钮,选择需要插入的图片, 就完成了相应的操作。
4.3 工作表数据处理
4.3.1 输入数据
在输入数据时,首先要将需要输入数据的单元格设 置为活动单元格,即用鼠标单击此单元格,然后就 可以输入数据。当数据输入完成后,可以通过按 Enter键、变换光标位置或单击编辑栏左边的“确 认输入”按钮来确认数据输入。在确认输入之前, 可以单击编辑栏左边的“取消输入”按钮或按Esc 键取消输入。变换光标位置的方法见表4-1。
③ 在输入日期型数据时,利用“/”或“-”作为年 月日的分隔符; ④ 在同一个单元格中,可以同时输入日期和时间 型数据,但是日期和时间之间必须要加一个或多个 空格; ⑤ 输入日期和时间型数据时,采用右对齐方式, 否则,则Excel认为输入格式不正确。 (3)文本的输入。文本的输入规则如下: ① 一个单元格最多可以输入255个字符; ② 文本字符在单元格内采用左对齐方式; ③ 输入由数字组成的文本时,要在输入的数据前 加单引号(');
(3)在对话框的“文件名”文本框中输入工作簿 的文件名,并选择文件类型; (4)最后单击“保存”按钮,就完成了工作簿的 保存操作。 如果希望关闭当前文件簿,可以采用以下几种方法: (1)选择菜单中的“文件”|“关闭”命令,关闭 文件簿但不退出Excel; (2)单击位于工作簿窗口右上方的 按钮,关闭文 件簿但不退出Excel; (3)如果希望退出Excel的工作环境,可以单击位 于窗口右上角的“关闭”按钮 ,或者选择“文 件”|“退出”命令,或者使用组合键Alt+F4。
4.3 工作表数据处理
4.3.1 输入数据
在输入数据时,首先要将需要输入数据的单元格设 置为活动单元格,即用鼠标单击此单元格,然后就 可以输入数据。当数据输入完成后,可以通过按 Enter键、变换光标位置或单击编辑栏左边的“确 认输入”按钮来确认数据输入。在确认输入之前, 可以单击编辑栏左边的“取消输入”按钮或按Esc 键取消输入。变换光标位置的方法见表4-1。
③ 在输入日期型数据时,利用“/”或“-”作为年 月日的分隔符; ④ 在同一个单元格中,可以同时输入日期和时间 型数据,但是日期和时间之间必须要加一个或多个 空格; ⑤ 输入日期和时间型数据时,采用右对齐方式, 否则,则Excel认为输入格式不正确。 (3)文本的输入。文本的输入规则如下: ① 一个单元格最多可以输入255个字符; ② 文本字符在单元格内采用左对齐方式; ③ 输入由数字组成的文本时,要在输入的数据前 加单引号(');
(3)在对话框的“文件名”文本框中输入工作簿 的文件名,并选择文件类型; (4)最后单击“保存”按钮,就完成了工作簿的 保存操作。 如果希望关闭当前文件簿,可以采用以下几种方法: (1)选择菜单中的“文件”|“关闭”命令,关闭 文件簿但不退出Excel; (2)单击位于工作簿窗口右上方的 按钮,关闭文 件簿但不退出Excel; (3)如果希望退出Excel的工作环境,可以单击位 于窗口右上角的“关闭”按钮 ,或者选择“文 件”|“退出”命令,或者使用组合键Alt+F4。
单击以编辑母版副标题样式
小标题小d标题:请替换此处文字案例 d请替换此处文字案例请替换此处文字 案例正文案例
点此输入标题
2.点此输入标题
小标题案4例小标题案例
正文案例正2文案例请替换此处文字案例请替换此处文字案例请替换此处文字案例 请替换此处文字案例
2.点此输入标题
小标题1案例小标题案例
正文案例正6文案例请替换此处文67 字案例请替换此处文字案例请替换此 处文字案例请替换此处文字案例
3 小标f题小wq标题
3 请替换此处文字案d例正yg文案例请替换此处文字案
例ห้องสมุดไป่ตู้替换此处文字案例
3 小标题小w标题
4 正文案例a正h文案例e正文案例sd请替换此处文字案
例请替换此处文字案例
1.点此输入标题
小标题小wk标题
请替换此处文字案h例请替换此处文字案例请替换此处文字案例正文案例
小标题小标a题
正文案例正f文案例请替换此处文字案例12请替换此处文字案例正文案例
3 小标题小w标题:正文案例正h文案例e正文案g 0 例请替换此处文字案例请替换此处文字案例
1.点此输入标题
3 小标题小f标a题
1 请替换此处文字dfg案例正文案例df请替换此处文字
案例请替换此处文字案例
3 ad小标题小w标题
2 请替换此处文字案s例正文案例d请替换23此处文字
案例请替换此处文字案例
谈谈如何理解躺 平 的 人 生 态 度 单击以编辑母版副标题样式
XXXX
点此输入标题
1.点此输入标题
小标题小标题7
请替换此处文字案例正78文案例请替 换此处文字案例正文案例正8文案例
小标题小标题7
请替换此处文字案例正文案例正88文 案1例请替换此处文字案7例正文案例
点此输入标题
2.点此输入标题
小标题案4例小标题案例
正文案例正2文案例请替换此处文字案例请替换此处文字案例请替换此处文字案例 请替换此处文字案例
2.点此输入标题
小标题1案例小标题案例
正文案例正6文案例请替换此处文67 字案例请替换此处文字案例请替换此 处文字案例请替换此处文字案例
3 小标f题小wq标题
3 请替换此处文字案d例正yg文案例请替换此处文字案
例ห้องสมุดไป่ตู้替换此处文字案例
3 小标题小w标题
4 正文案例a正h文案例e正文案例sd请替换此处文字案
例请替换此处文字案例
1.点此输入标题
小标题小wk标题
请替换此处文字案h例请替换此处文字案例请替换此处文字案例正文案例
小标题小标a题
正文案例正f文案例请替换此处文字案例12请替换此处文字案例正文案例
3 小标题小w标题:正文案例正h文案例e正文案g 0 例请替换此处文字案例请替换此处文字案例
1.点此输入标题
3 小标题小f标a题
1 请替换此处文字dfg案例正文案例df请替换此处文字
案例请替换此处文字案例
3 ad小标题小w标题
2 请替换此处文字案s例正文案例d请替换23此处文字
案例请替换此处文字案例
谈谈如何理解躺 平 的 人 生 态 度 单击以编辑母版副标题样式
XXXX
点此输入标题
1.点此输入标题
小标题小标题7
请替换此处文字案例正78文案例请替 换此处文字案例正文案例正8文案例
小标题小标题7
请替换此处文字案例正文案例正88文 案1例请替换此处文字案7例正文案例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第11章 面向对象设计
Object-Oriented Design (OOD)
11.1 11.2 11.3 11.4 11.5 11.6
面向对象设计的准则(OOD Rule) 启发规则(Heuristic Rule ) 软件重用(Software Reusing) 系统分解(System Division) 设计问题域子系统(Problem Subsystem Design) 设计人机交互子系统
2. 类构件的重用方式 (1) 实例重用(Instance Reusing) (2) 继承重用(Inheritance Reusing) (3) 多态重用(Polymorphism Reusing)
11.3.3 软件重用的效益(Reuse benefits)
1. 质量 由于不能定期进行形式化验证,错误可能而且 也确实存在。但是,随着每一次重用,都会有一些 错误被发现并被清除,构件的质量也会随之改善。 随着时间的推移,构件将变成实质上无错误的。 2. 生产率 基本上30%~50%的重用大约可以导致生 产率提高25%~40%。
(Problem Subsystem Design)
面向对象设计仅需从实现角度对问题域模型做 一些补充或修改,主要是增添、合并或分解类与对 象、属性及服务,调整继承关系等等。当问题域子 系统过分复杂庞大时,应该把它进一步分解成若干 个更小的子系统。
11.3.2 类构件(Classes Components)
面向对象技术中的“类”,是比较理想的可重 用软构件,不妨称之为类构件。类构件有3种重用 方式,分别是实例重用(Instance Reusing)、继承重 用(Inheritance Reusing)和多态重用(Polymorphism Reusing)。
2. 软件成分的重用级别(Reusing Levels) 软件成分的重用可以进一步划分成以下3个级别: (1) 代码重用(Code Reusing) 代码重用可以采用下列几种形式中的任何一种: 源代码剪贴(Cutting and Pasting): 存在严重的配置管理问题,人们几乎无法跟踪原始代码 块多次修改重用的过程。 源代码包含(Include):许多程序设计语言都提供包含 (include)库中源代码的机制。使用这种重用形式时,配置管 理问题有所缓解。 继承(Inheritance) :利用继承机制重用类库中的类时,无须 修改已有的代码,就可以扩充或具体化在库中找出的类, 因此,基本上不存在配置管理问题。
4. 使用简单的协议
5. 使用简单的服务 面向对象设计出来的类中的服务通常都很小, 一般只有3~5行源程序语句,可以用仅含一个动词 和一个宾语的简单句子描述它的功能。 如果需要在服务中使用CASE语句,通常应该 考虑用一般-特殊结构代替这个类的可能性。 6. 把设计变动减至最小
图11.1 理想的设计变动情况
11.3 软件重用(Software Reusing)
11.3.1 概述(summarize)
1. 重用(Reusing) 重用也叫再用或复用,是指同一事物不作修改 或稍加改动就多次重复使用。广义地说,软件重用 可分为以下3个层次:
(1) 知识重用(例如,软件工程知识的重用)。 (2) 方法和标准的重用(例如,面向对象方法或国家 制定的软件开发规范的重用)。 (3) 软件成分的重用。 前两个重用层次属于知识工程研究的范畴,本 节仅讨论软件成分重用问题。
(8) 用户界面。这可能是最广泛被重用的软件成 分,GUI(图形用户界面)软件经常被重用。因为 它可占到一个应用程序的60%代码量,因此,重用 的效果非常显著。 (9) 数据。在大多数经常被重用的软件成分中, 被重用的数据包括: 内部表、列表和记录结构, 以及文件和完整的数据库。 (10) 测试用例。一旦设计或代码构件将被重用, 相关的测试用例应该“附属于”它们也被重用。
11.1 面向对象设计的准则(OOD Rule)
优秀软件设计的一个主要特点就是容易维护。 1. 模块化(Modularity) 对象就是模块。它是把数据结构和操作这些数 据的方法紧密地结合在一起所构成的模块。 2. 抽象(Abstraction) 不仅支持过程抽象,而且支持数据抽象。通常 把这类抽象称为规格说明抽象。 3. 信息隐藏(Information Hiding ) 在面向对象方法中,信息隐藏通过对象的封装 性实现:类结构分离了接口与实现,从而支持了信 息隐藏。
3. 设计简单的类 (1) 避免包含过多的属性。 (2) 有明确的定义。 (3) 尽量简化对象之间的合作关系。 (4) 不要提供太多服务。 一个类提供的公共服务不超过7个。 遵循上述启发规则也会带来另一个问题: 设计出大量较小的类,这同样会带来一定复杂 性。解决这个问题的办法,是把系统中的类按 逻辑分组,也就是划分“主题”。
4. 弱耦合(Low Coupling) 弱耦合是优秀设计的一个重要标准。 (1) 交互耦合(Interface Coupling) 如果对象之间的耦合通过消息连接来实现,则 这种耦合就是交互耦合。为使交互耦合尽可能松散, 应该遵守下述准则: 尽量降低消息连接的复杂程度。应该尽量减少 消息中包含的参数个数,降低参数的复杂程度。 减少对象发送(或接收)的消息数。
11.2 启发规则(Heuristic Rule )
1. 设计结果应该清晰易懂 (1) 用词一致。 (2) 使用已有的协议。 (3) 减少消息模式的数目。 (4) 避免模糊的定义。
2. 一般-特殊结构的深度应适当 应该使类等级中包含的层次数适当。一般说来, 在一个中等规模(大约包含100个类)的系统中,类 等级层次数应保持为7±2。不应该仅仅从方便编码 的角度出发随意创建派生类,应该使一般-特殊结 构与领域知识或常识保持一致。
(2) 设计结果重用(Design Results Reusing) 设计结果重用指的是,重用某个软件系统的设 计模型(即求解域模型)。这个级别的重用有助于把 一个应用系统移植到完全不同的软硬件平台上。 (3) 分析结果重用(Analysis Results Reusing) 这是一种更高级别的重用,即重用某个系统的 分析模型。这种重用特别适用于用户需求未改变, 但系统体系结构发生了根本变化的场合。
2. 组织系统的两种方案(Organizing Structures) (1) 层次组织 每层是一个子系统。上层在下层的基础上建立, 下层为实现上层功能而提供必要的服务。 (2) 块状组织 这种组织方案把软件系统垂直地分解成若干个 相对独立的、弱耦合的子系统,一个子系统相当于 一块,每块提供一种类型的服务。
(Service in Classes Design )
11.10 设计关联
(Relationship Design)
11.11 设计优化(Design optimizing)
分析是提取和整理用户需求,并建立问题域精 确模型的过程。 设计则是把分析阶段得到的需求转变成符合成 本和质量要求的、抽象的系统实现方案的过程。 从面向对象分析到面向对象设计(OOD),是一 个逐渐扩充模型的过程。 面向对象设计就是用面向对象观点建立求解域 模型的过程。
图11.3 典型应用系统的组织结构 这个应用系统采用了层次与块状的混合结构。 3. 设计系统的拓扑结构(Topology Structure) 由子系统组成完整的系统时,典型的拓扑结构有管道 形、树形、星形等。设计者应该采用与问题结构相适应的、 尽可能简单的拓扑结构,以减少子系统之间的交互数量。
11.5 设计问题域子系统
(Communication mode of Subsystems) (1) 客户-供应商关系(Client-supplier) 作为“客户”的子系统调用作为“供应商”的 子系统,任何交互行为都是由前者驱动的。 (2) 平等伙伴关系(peer-to-peer) 每个子系统都可能调用其他子系统,因此,每 个子系统都必须了解其他子系统的接口。而且 这种交互方式还可能存在通信环路,从而使系 统难于理解,容易发生不易察觉的设计错误。 应该尽量使用客户-供应商关系。
6. 可重用(Reusable) 软件重用是提高软件开发生产率和目标系统质 量的重要途径。 重用基本上从设计阶段开始。重用有两方面的 含义: 一是尽量使用已有的类(包括开发环境提供 的类库,及以往开发类似系统时创建的类),二是 如果确实需要创建新类,则在设计这些新类的协议 时,应该考虑将来的可重复使用性。
(2) 继承耦合(Enhancing Inheritance Coupling) 提高继承耦合程度。继承是一般化类与特殊类 之间耦合的一种形式。从本质上看,通过继承关系 结合起来的基类和派生类,构成了系统中粒度更大 的模块。因此,它们彼此之间应该结合得越紧密越 好。
5. 强内聚(High Cohesion ) 在设计时应该力求做到高内聚。在面向对象设 计中存在下述3种内聚。 (1) 服务内聚(Service Cohesion ) 。一个服务应该完 成一个且仅完成一个功能。 (2) 类内聚(Classes Cohesion ) 。设计类的原则是, 一个类应该只有一个用途,它的属性和服务应该是 高内聚的。 (3) 一般-特殊内聚(Generalization-specialization Cohesion ) 。设计出的一般-特殊结构,应该符合多 数人的概念,这种结构应该是对相应的领域知识的 正确抽取。 紧密的继承耦合与高度的一般-特殊内聚是一 致的。
11.4 系统分解(System Division)
图11.2 典型的面向对象设计模型
Human-Computer Interface Subsystem Problem Subsystem Task management Subsystem Data management Subsystem
1. 子系统之间的两种交互方式Байду номын сангаас
3. 典型的可重用软件成分(Reusable Elements) 可能被重用的软件成分主要有以下10种: (1) 项目计划。 (2) 成本估计。 (3) 体系结构。 例如,类属的体系结构模板(领域体系结构)。 (4) 需求模型和规格说明。 例如,类和对象的模型及规格说明、数据流等。
Object-Oriented Design (OOD)
11.1 11.2 11.3 11.4 11.5 11.6
面向对象设计的准则(OOD Rule) 启发规则(Heuristic Rule ) 软件重用(Software Reusing) 系统分解(System Division) 设计问题域子系统(Problem Subsystem Design) 设计人机交互子系统
2. 类构件的重用方式 (1) 实例重用(Instance Reusing) (2) 继承重用(Inheritance Reusing) (3) 多态重用(Polymorphism Reusing)
11.3.3 软件重用的效益(Reuse benefits)
1. 质量 由于不能定期进行形式化验证,错误可能而且 也确实存在。但是,随着每一次重用,都会有一些 错误被发现并被清除,构件的质量也会随之改善。 随着时间的推移,构件将变成实质上无错误的。 2. 生产率 基本上30%~50%的重用大约可以导致生 产率提高25%~40%。
(Problem Subsystem Design)
面向对象设计仅需从实现角度对问题域模型做 一些补充或修改,主要是增添、合并或分解类与对 象、属性及服务,调整继承关系等等。当问题域子 系统过分复杂庞大时,应该把它进一步分解成若干 个更小的子系统。
11.3.2 类构件(Classes Components)
面向对象技术中的“类”,是比较理想的可重 用软构件,不妨称之为类构件。类构件有3种重用 方式,分别是实例重用(Instance Reusing)、继承重 用(Inheritance Reusing)和多态重用(Polymorphism Reusing)。
2. 软件成分的重用级别(Reusing Levels) 软件成分的重用可以进一步划分成以下3个级别: (1) 代码重用(Code Reusing) 代码重用可以采用下列几种形式中的任何一种: 源代码剪贴(Cutting and Pasting): 存在严重的配置管理问题,人们几乎无法跟踪原始代码 块多次修改重用的过程。 源代码包含(Include):许多程序设计语言都提供包含 (include)库中源代码的机制。使用这种重用形式时,配置管 理问题有所缓解。 继承(Inheritance) :利用继承机制重用类库中的类时,无须 修改已有的代码,就可以扩充或具体化在库中找出的类, 因此,基本上不存在配置管理问题。
4. 使用简单的协议
5. 使用简单的服务 面向对象设计出来的类中的服务通常都很小, 一般只有3~5行源程序语句,可以用仅含一个动词 和一个宾语的简单句子描述它的功能。 如果需要在服务中使用CASE语句,通常应该 考虑用一般-特殊结构代替这个类的可能性。 6. 把设计变动减至最小
图11.1 理想的设计变动情况
11.3 软件重用(Software Reusing)
11.3.1 概述(summarize)
1. 重用(Reusing) 重用也叫再用或复用,是指同一事物不作修改 或稍加改动就多次重复使用。广义地说,软件重用 可分为以下3个层次:
(1) 知识重用(例如,软件工程知识的重用)。 (2) 方法和标准的重用(例如,面向对象方法或国家 制定的软件开发规范的重用)。 (3) 软件成分的重用。 前两个重用层次属于知识工程研究的范畴,本 节仅讨论软件成分重用问题。
(8) 用户界面。这可能是最广泛被重用的软件成 分,GUI(图形用户界面)软件经常被重用。因为 它可占到一个应用程序的60%代码量,因此,重用 的效果非常显著。 (9) 数据。在大多数经常被重用的软件成分中, 被重用的数据包括: 内部表、列表和记录结构, 以及文件和完整的数据库。 (10) 测试用例。一旦设计或代码构件将被重用, 相关的测试用例应该“附属于”它们也被重用。
11.1 面向对象设计的准则(OOD Rule)
优秀软件设计的一个主要特点就是容易维护。 1. 模块化(Modularity) 对象就是模块。它是把数据结构和操作这些数 据的方法紧密地结合在一起所构成的模块。 2. 抽象(Abstraction) 不仅支持过程抽象,而且支持数据抽象。通常 把这类抽象称为规格说明抽象。 3. 信息隐藏(Information Hiding ) 在面向对象方法中,信息隐藏通过对象的封装 性实现:类结构分离了接口与实现,从而支持了信 息隐藏。
3. 设计简单的类 (1) 避免包含过多的属性。 (2) 有明确的定义。 (3) 尽量简化对象之间的合作关系。 (4) 不要提供太多服务。 一个类提供的公共服务不超过7个。 遵循上述启发规则也会带来另一个问题: 设计出大量较小的类,这同样会带来一定复杂 性。解决这个问题的办法,是把系统中的类按 逻辑分组,也就是划分“主题”。
4. 弱耦合(Low Coupling) 弱耦合是优秀设计的一个重要标准。 (1) 交互耦合(Interface Coupling) 如果对象之间的耦合通过消息连接来实现,则 这种耦合就是交互耦合。为使交互耦合尽可能松散, 应该遵守下述准则: 尽量降低消息连接的复杂程度。应该尽量减少 消息中包含的参数个数,降低参数的复杂程度。 减少对象发送(或接收)的消息数。
11.2 启发规则(Heuristic Rule )
1. 设计结果应该清晰易懂 (1) 用词一致。 (2) 使用已有的协议。 (3) 减少消息模式的数目。 (4) 避免模糊的定义。
2. 一般-特殊结构的深度应适当 应该使类等级中包含的层次数适当。一般说来, 在一个中等规模(大约包含100个类)的系统中,类 等级层次数应保持为7±2。不应该仅仅从方便编码 的角度出发随意创建派生类,应该使一般-特殊结 构与领域知识或常识保持一致。
(2) 设计结果重用(Design Results Reusing) 设计结果重用指的是,重用某个软件系统的设 计模型(即求解域模型)。这个级别的重用有助于把 一个应用系统移植到完全不同的软硬件平台上。 (3) 分析结果重用(Analysis Results Reusing) 这是一种更高级别的重用,即重用某个系统的 分析模型。这种重用特别适用于用户需求未改变, 但系统体系结构发生了根本变化的场合。
2. 组织系统的两种方案(Organizing Structures) (1) 层次组织 每层是一个子系统。上层在下层的基础上建立, 下层为实现上层功能而提供必要的服务。 (2) 块状组织 这种组织方案把软件系统垂直地分解成若干个 相对独立的、弱耦合的子系统,一个子系统相当于 一块,每块提供一种类型的服务。
(Service in Classes Design )
11.10 设计关联
(Relationship Design)
11.11 设计优化(Design optimizing)
分析是提取和整理用户需求,并建立问题域精 确模型的过程。 设计则是把分析阶段得到的需求转变成符合成 本和质量要求的、抽象的系统实现方案的过程。 从面向对象分析到面向对象设计(OOD),是一 个逐渐扩充模型的过程。 面向对象设计就是用面向对象观点建立求解域 模型的过程。
图11.3 典型应用系统的组织结构 这个应用系统采用了层次与块状的混合结构。 3. 设计系统的拓扑结构(Topology Structure) 由子系统组成完整的系统时,典型的拓扑结构有管道 形、树形、星形等。设计者应该采用与问题结构相适应的、 尽可能简单的拓扑结构,以减少子系统之间的交互数量。
11.5 设计问题域子系统
(Communication mode of Subsystems) (1) 客户-供应商关系(Client-supplier) 作为“客户”的子系统调用作为“供应商”的 子系统,任何交互行为都是由前者驱动的。 (2) 平等伙伴关系(peer-to-peer) 每个子系统都可能调用其他子系统,因此,每 个子系统都必须了解其他子系统的接口。而且 这种交互方式还可能存在通信环路,从而使系 统难于理解,容易发生不易察觉的设计错误。 应该尽量使用客户-供应商关系。
6. 可重用(Reusable) 软件重用是提高软件开发生产率和目标系统质 量的重要途径。 重用基本上从设计阶段开始。重用有两方面的 含义: 一是尽量使用已有的类(包括开发环境提供 的类库,及以往开发类似系统时创建的类),二是 如果确实需要创建新类,则在设计这些新类的协议 时,应该考虑将来的可重复使用性。
(2) 继承耦合(Enhancing Inheritance Coupling) 提高继承耦合程度。继承是一般化类与特殊类 之间耦合的一种形式。从本质上看,通过继承关系 结合起来的基类和派生类,构成了系统中粒度更大 的模块。因此,它们彼此之间应该结合得越紧密越 好。
5. 强内聚(High Cohesion ) 在设计时应该力求做到高内聚。在面向对象设 计中存在下述3种内聚。 (1) 服务内聚(Service Cohesion ) 。一个服务应该完 成一个且仅完成一个功能。 (2) 类内聚(Classes Cohesion ) 。设计类的原则是, 一个类应该只有一个用途,它的属性和服务应该是 高内聚的。 (3) 一般-特殊内聚(Generalization-specialization Cohesion ) 。设计出的一般-特殊结构,应该符合多 数人的概念,这种结构应该是对相应的领域知识的 正确抽取。 紧密的继承耦合与高度的一般-特殊内聚是一 致的。
11.4 系统分解(System Division)
图11.2 典型的面向对象设计模型
Human-Computer Interface Subsystem Problem Subsystem Task management Subsystem Data management Subsystem
1. 子系统之间的两种交互方式Байду номын сангаас
3. 典型的可重用软件成分(Reusable Elements) 可能被重用的软件成分主要有以下10种: (1) 项目计划。 (2) 成本估计。 (3) 体系结构。 例如,类属的体系结构模板(领域体系结构)。 (4) 需求模型和规格说明。 例如,类和对象的模型及规格说明、数据流等。