按关键词阅读: 技术 分析 完整版 相关 对象 面向
【面向|面向对象技术相关分析完整版】1、 2021-8-3Institute of Computer Software, Nanjing University 2 相关信息 教师:余萍 Email: Office: 蒙民伟楼610A 助教 课程网页:http:/ 引言 2021-8-3Institute of Computer Software, Nanjing University 4 摘要 课程简介 “选不选这门课?” 背景概述 “所学内容在专业知识结构中的位置?” 2021-8-3Institute of Computer Software, Nanjing University 5 欢迎选修“面向对象技术”! 通过选修本课程 。
2、 , 可以 更深入地掌握面向对象的基本原理 更广泛地了解面向对象的新兴技术 更自信地面对实际开发的技术需求 获取 3 个学分 2021-8-3Institute of Computer Software, Nanjing University 6 课程性质 不是又一门语言/编程课 虽然在C+/Java 之外还会提到别的语言 , 如 Eiffel 不是一般意义上的软件工程课 但讲授面向对象软件开发的实用技术 不属于理论计算机科学 但会利用一些较成熟易用的理论工具 2021-8-3Institute of Computer Software, Nanjing University 7 课程目标 用OOPL 。
3、写代码 OOP OOSC 朴素的OOP 系统化的OOP 传统OO技术 现代的OO技术 Beyond OO 2021-8-3Institute of Computer Software, Nanjing University 8 课程内容 主要包括但不限于: 面向对象的起源及其动机 面向对象技术的核心概念和基本原理 Object, Class, Encapsulation, Polymorphism, Abstract Data Type, Design by Contract, Garbage Collection, Exception Handling, 面向对象技术的应用 Design P 。
4、atterns, Application Frameworks 面向对象的发展 并发、分布对象计算、服务计算 ,面向对象分析/开发/测试 AOP 2021-8-3Institute of Computer Software, Nanjing University 9 教材与参考资料 徐家福, 王志坚, 翟成祥 等 , 对象式程序设计语对象式程序设计语 言言, 南京大学出版社 , 1993年2月 。
Bertrand Meyer, Object-Oriented Software Construction, Second Edition, Prentice Hall, 1997. 清华大学出版社影印 。
J 。
5、olt Award 1998 2021-8-3Institute of Computer Software, Nanjing University 10 教材与参考资料 Richard Mitchell and Jim Mckim. Design by Contract, by Example. Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, Design Patterns: Elements of Reusable Object-Oriented software, Addison- Wesley , 1994. Cr 。
6、aig Larman, Applying UML and Patterns, Prentice Hall PTR, 2nd edition. 2001. Clemens Szyperski. Component Software: Beyond Object-Oriented Programming. Addison-Wesley, 2nd edition, 2002. 2021-8-3Institute of Computer Software, Nanjing University 11 授课方式 Lecture Seminar 2021-8-3Institute of Computer。
7、Software, Nanjing University 12 考核方式 笔试 50% 开卷 or 闭卷? 平时 50% 其中 书面作业 25% (态度第一) 开发练习 25% (一个月后公布具体要求) 主动主动Presentation 约约 20-30 (额外加分额外加分) 理论探索 , 学习心得 , 实践经验理论探索 , 学习心得 , 实践经验 均可均可 2021-8-3Institute of Computer Software, Nanjing University 13 有何建议 课程内容? 授课方式? 考核方式? 其他? 背景概述 2021-8-3Institute of Computer Sof 。
8、tware, Nanjing University 15 摘要 从软件到软件工程 软件质量 前对象时代 结构化程序设计 面向对象思想的兴起 模块化 软件复用 2021-8-3Institute of Computer Software, Nanjing University 16 软件 概念 一系列按照特定顺序组织的数据和指令的集合 程序+文档 程序:计算任务的处理对象和处理规则的描述 文档:为了便于了解程序所需的阐明性资料 特点 本质上是逻辑产品 现实中受多方制约 2021-8-3Institute of Computer Software, Nanjing University 17 软件 。
9、:逻辑产品 基础: 图灵机,1936 冯诺依曼结构,1945 Alan Turing: 抽象计 算模型(数学逻辑机) 2021-8-3Institute of Computer Software, Nanjing University 18 软件:逻辑产品 存储程序计算机在体系 结构上主要特点有: 以运算单元为中心 采用存储程序原理 存储器是按地址访问、 线性编址的空间 控制流由指令流产生 指令由操作码和地址 码组成 数据以二进制编码 2021-8-3Institute of Computer Software, Nanjing University 19 软件:多方制约 作为一种“工程” 目 。
10、的性 资源 物理运行平台 工程问题 质量、生产率 根源:复杂性 软件工程:将系统化的、规范的、可度量的方法 应用于软件的开发、运行和维护的过程 , 即将工 程化应用于软件中 。
1969 , NATO会议 软件危机 2021-8-3Institute of Computer Software, Nanjing University 20 软件 通常而言 , “质量”与“生产率”是一对矛盾 我们首先来考虑“质量” 。
有趣的是 , 在软件领域 , 对“质量”的重视有时竟 然会带来“生产率”的提升! 说明软件工程远未成熟 , 二者的“共同底线”还未 达到 。
2021-8-3Institute of Computer Soft 。
11、ware, Nanjing University 21 软件质量 何谓“质量”? 产品或工作的“优劣程度” 何为“优”?何为“劣”? 可从“外部” 和 “内部” 两个不同的侧面来 考察软件产品 (Meyer, McCall) 外部质量因素:用户直接感觉到的 内部质量因素:用户不能直接发觉 , 体现在软件 “文本”(源码、设计报告、分析报告等)中 Being modular;
readable 2021-8-3Institute of Computer Software, Nanjing University 22 外部质量因素 Correctness 正确性 依据规约 完成任务 Robustnes 。
12、s 鲁棒性 异常情况 合理反应 Integrity 完整性 非法访问或修改 合理反应 Extendibility 易扩展性 软件产品 应 规约改变 而 改变 Reusability 易复用性 软件模块 用于构建多种不同应用 Reliability Robustness SPECIFICATION Correctness Integrity 2021-8-3Institute of Computer Software, Nanjing University 23 外部质量因素 Compatibility 兼容性 软件模块相互组合的难易 Efficiency 高效性 尽量少地使用硬件资源 处理器时 。
13、间 内存 外存 网络带宽 等 Portability 易移植性 转换到不同的软硬件平台上 Ease of use 易用性 不同背景的用户学习使用软件产品解决问题的难易 2021-8-3Institute of Computer Software, Nanjing University 24 外部质量因素 Functionality 功能 Timeliness 按时交付 Verifiability, Reparability, Economy 2021-8-3Institute of Computer Software, Nanjing University 25 维护费用分类 Lientz 1 。
14、980 70% of the cost of software is devoted to maintenance! 2021-8-3Institute of Computer Software, Nanjing University 26 Tradeoffs 鱼与熊掌不可得兼 权衡 折中 软件技术研究的常见主题: 在何种条件下 以何种方式 鱼与熊掌可以得兼? 在何种条件下 拿部分鱼换取更多熊掌?何时反之? 2021-8-3Institute of Computer Software, Nanjing University 27 Key Concerns Reliability correct 。
15、ness + robustness: It should be easier to build software that functions properly, and easier to guarantee what it does. Modularity reusability + extendibility: We should build less software! Software should be easier to modify. 2021-8-3Institute of Computer Software, Nanjing University 28 应对软件危机 开发的 。
16、角度:分析、设计方法的研究 前对象时代 Structured Programming, Design, Analysis 管理的角度:软件开发过程的工程化 生命周期模型 瀑布模型 , 快速原型法 , 螺旋模型 , 喷泉模型等 2021-8-3Institute of Computer Software, Nanjing University 29 应对复杂性的基本途径 “元方法” Decomposition 分而治之 Abstraction 抓本质 , 抓重点 Hierarchy 应对大系统 , 纲举目张 复杂性是软件开发过程中所固有的特质 。
Booch94 2021-8-3Institute of Comput 。
17、er Software, Nanjing University 30 结构化开发方法 何谓“结构化”? 结构化程序设计 设计过程 程序组织 语句构造 结构化 结构化分析设计 数据流图 数据字典 模块结构图 结构化的好处 科学化 可读性 模块化模块化 信息隐蔽. 2021-8-3Institute of Computer Software, Nanjing University 31 结构化开发方法 自顶向下(Top-down) 的功能设计 A BDC C1 I1C2 I2 I Topmost functional abstraction Loop Conditional Sequence 自顶 。
18、向下 , 逐步求精 2021-8-3Institute of Computer Software, Nanjing University 32 软件生命周期模型 FEASIBILITY STUDY REQUIREMENTS ANALYSIS SPECIFICATION GLOBAL DESIGN DETAILED DESIGN IMPLEMENTATION DISTRIBUTION VALIDATION well-defined interfaces 模块化(modular): 软件构造为一组“模块”之有序组合 ,从而易于装配、易于修补替换模块 。
Extendibility 和 Reusabili 。
19、ty 的要求; 模块化是上述“元方法”的推论 。
什么样的方法是“模块化”的? 目标(Five Criteria) 规则(Five Rules) 原则(Five Principles) 2021-8-3Institute of Computer Software, Nanjing University 38 Five Criteria Decomposability 易分解性 Composability 易组合性 Understandability 易理解性 Continuity 连续性 Protection 保护性 2021-8-3Institute of Computer Software, 。
20、 Nanjing University 39 易分解性 Decomposability Method helps decompose complex problems into subproblems. COROLLARY: Division of labor. Counter-example: General initialization module. 2021-8-3Institute of Computer Software, Nanjing University 40 易组合性 Composability Method favors production of software el 。
21、ements that may be freely combined with each other to produce new software. Example: Unix shell conventions Program1 | Program2 | Program3 2021-8-3Institute of Computer Software, Nanjing University 41 易理解性 Understandability 模块应可单独理解 不能牵涉太广 自描述 Counter example: sequential dependencies A|B|C 2021-8-3I 。
22、nstitute of Computer Software, Nanjing University 42 连续性 Continuity Method ensures that small changes in specifications yield small changes in architecture. Design method: Specification Architecture Example: Principle of Uniform Access (see next) Counter example: static arrays 2021-8-3Institute of C 。
23、omputer Software, Nanjing University 43 The Principle of Uniform Access Facilities managed by a module are accessible to its clients in the same way whether implemented by computation or by storage. Definition: A client of a module is any module that uses its facilities. 2021-8-3Institute of Compute 。
24、r Software, Nanjing University 44 Uniform Access: An example balance = list_of_deposits.total list_of_withdrawals.total list_of_deposits list_of_withdrawals balance list_of_deposits list_of_withdrawals (A2) (A1) Ada, Pascal, C/C+, Java, C#: Simula, Eiffel: A1: a.balancea.balance A2: balance (a) a.ba 。
25、lance() 思考:C+和Java如何实现? 2021-8-3Institute of Computer Software, Nanjing University 45 模块保护 Protection 异常不扩散 扩散范围有限 Example: validating input at the source Counter example: undisciplined exceptions Protection violation 2021-8-3Institute of Computer Software, Nanjing University 46 Five Rules Direct Ma 。
26、pping 直接映射 Few Interfaces 接口要少 Small Interfaces 接口要小 Explicit Interfaces 接口要明确 Information Hiding 信息隐蔽 降低耦合度 2021-8-3Institute of Computer Software, Nanjing University 47 直接映射 Direct mapping Method yields software systems whose modular structure remains compatible with any modular structure devised。
27、in the process of modeling the problem domain. Structure of the problem Structure of the solution direct mapping model software 2021-8-3Institute of Computer Software, Nanjing University 48 Few interfaces Every module communicates with as few others as possible. (A)(B)(C) n-1n(n-1)/2n-1 2021-8-3Inst 。
28、itute of Computer Software, Nanjing University 49 Small interfaces If two modules communicate, they exchange as little information as possible. x, y z 2021-8-3Institute of Computer Software, Nanjing University 50 Explicit interfaces Whenever two modules A and B communicate, this is obvious from the。
29、text of A or B or both. Counter example: data sharing Module AModule B Data item x ModifiesAccesses 2021-8-3Institute of Computer Software, Nanjing University 51 Information hiding Underlying question: how does one “advertise” the capabilities of a module? Every module should be known to the outside 。
30、 world through an official, “public” interface. The rest of the modules properties comprises its “secrets”. It should be impossible to access the secrets from the outside. 2021-8-3Institute of Computer Software, Nanjing University 52 Information Hiding The designer of every module must select a subs 。
31、et of the modules properties as the official information about the module, to be made available to authors of client modules. Secret part Public part 2021-8-3Institute of Computer Software, Nanjing University 53 Information hiding 理由: 模块连续性 亦有助于 Decomposability , Composabilty, Understandability等 模块用户只 。
32、需关注public的部分 2021-8-3Institute of Computer Software, Nanjing University 54 模块 模块的根本特征是“相对独立 , 功能单一” 。
换言之 ,一个好的模块必须具有高度的独立性和相对较强的功 能 。
“耦合度”和“内聚度” 耦合度 , 是指模块之间相互依赖性大小的度量 , 耦合度越小 ,模块的相对独立性越大 。
内聚度 , 是指模块内各成份之间相互依赖性大小的度量 , 内 聚度越大 , 模块各成份之间联系越紧密 , 其功能越强 。
在模块划分应当做到“耦合度尽量小 , 内聚度尽量 大” 。
2021-8-3Institute of Computer Software, 。
33、 Nanjing University 55 Five Principles Linguistic Modular Units Self-Documentation Uniform Access Open-Closed Single-Choice 主要是程序设计语言的设计原则 2021-8-3Institute of Computer Software, Nanjing University 56 软件复用 为什么要复用? 复用什么? 问题 非技术 技术 解决途径? 2021-8-3Institute of Computer Software, Nanjing University 57 为什 。
34、么要“复用” “懒惰” 提高生产率 改善质量 2021-8-3Institute of Computer Software, Nanjing University 58 复用什么 人 设计 , 规约 设计模式 体系结构 应用框架 源码级复用 封装模块 (抽象描述) 2021-8-3Institute of Computer Software, Nanjing University 59 非技术障碍 心理 不信任 旧习惯 短期利益 构件检索 构件发布 与 商业模型 2021-8-3Institute of Computer Software, Nanjing University 60 技术问题 复 。
35、用的本质困难 通常不能一成不变地拿来就用 Reusability Extensibility 软件的开放性要求和封闭性要求之间的冲突 对象技术比传统技术有明显改善 2021-8-3Institute of Computer Software, Nanjing University 61 传统技术复用支持 过程 Routine 成功应用:数值计算函数库 问题明确 规约简单 问题相互独立 数据结构相对简单 不足:对adaption的支持弱 若要一个routine支持多种variants 则需好多参数 一个routine支持一种variant则没有factoring out common behav 。
36、iors. 2021-8-3Institute of Computer Software, Nanjing University 62 传统技术复用支持 包 package Linguistic Modular Unit Features (变量 过程) 信息隐蔽 单独编译 2021-8-3Institute of Computer Software, Nanjing University 63 Encapsulation languages (“Object-based”) Ada, Modula-2, CLU. Basic idea: gather a group of routines。
37、serving a related oo-purpose, such as has, insert, remove etc., together with the appropriate data structure descriptions. Advantages: For supplier author: Get everything under one roof. Simplifies configuration management, change of implementation, addition of new primitives. For client author: Fin 。
38、d everything at one place. Simplifies search for existing routines, requests for extensions. 2021-8-3Institute of Computer Software, Nanjing University 64 传统技术复用支持 包 作为 复用单元的 不足 类型、模块分离 多类型支持? Factoring out commonality? 2021-8-3Institute of Computer Software, Nanjing University 65 小结 构建高质量的软件系统是我们的目 。
39、标 随着软件的广泛应用及其规模的不断增长 , 软 件的易扩展性和易复用性愈发关键 在模块化和复用性两个方面 传统技术存在不足 面向对象模型提供了较好的解决方案 2021-8-3Institute of Computer Software, Nanjing University 66 作业 1.发送邮件 To: 主题: 选修面向对象技术 内容: 姓名和学号 需不需要这门课的学分 对课程内容、授课方式、考试方式等的任何建议 2021-8-3Institute of Computer Software, Nanjing University 67 作业 2.使用Wikipedia,查阅以下一些词条并翻译 Programming paradigm Structured Programming Object-Oriented Programming 注意: Wikipedia是一个重要的信息源 。
科技类词条的可靠性很高 , 虽然未 必详尽 。
但亦不可尽信 , 不可作为严谨学术研究的文献依据 。
PS: 作业提交方式:纸面或电子邮件。

稿源:(未知)
【傻大方】网址:/a/2021/0822/0023895830.html
标题:面向|面向对象技术相关分析完整版