软件工程技术与设计第二讲学生幻灯片.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《软件工程技术与设计第二讲学生幻灯片.ppt》由会员分享,可在线阅读,更多相关《软件工程技术与设计第二讲学生幻灯片.ppt(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程技术与设计软件工程技术与设计第二讲学生第二讲学生第1页,共57页,编辑于2022年,星期三正确性资源结构工程用法解的完全性和正确性;静态类和动态类的安全性;多线程的安全性;容错性处理能力;保密性和鲁棒性。执行效率,时间复杂度、消息数、带宽要求等;空间消耗,包括存储单元、对象、线程、过程、通信通道。处理器等的使用情况;增加的资源,一些随选信息;动态策略,包括公正性、平衡性、稳定性等。模块性、封装、耦合、独立性;可延展性,包括子类、可协调性、发展性、可维护性等;可重用性、开放性、可组合性。便携性、可插入性;前后依赖性;互用性;等等。可理解性、简单、高雅;执行中的易错性;与其他软件的共存性;
2、系统可维护性;开发过程的影响;开发队伍结构及动态特性的影响;用户参与的影响;生产力、时间安排、成本的影响;等等。使用规范;人为因素,如可学习性、恢复能力等;对不断变化的环境的适应性;艺术性;医学和环境的影响;社会、经济、政治的影响;等等。设计过程中,针对设计目标约束冲突给出的非功能性需求判断准则。第2页,共57页,编辑于2022年,星期三+核心共同思想原则:重点解决软件系统可维护性和复用性矛盾。普遍基本单纯隐藏重现第3页,共57页,编辑于2022年,星期三可维护性好的系统应有性质(Perter Coad)可扩展性容易加入新的性能灵活性代码修改少波及其他模块可插入性容易抽出加入类第4页,共57页
3、,编辑于2022年,星期三传统的复用代码的剪贴复用算法的复用数据结构的复用程序程序程序程序代码/算法/数据结构第5页,共57页,编辑于2022年,星期三传统的复用的风险:影响可扩展性过于僵硬修改多个软件成分中复用源代码时,需要独立地修改检测每一拷贝。很难在一个软件系统里加入一个新功能。影响灵活性过于脆弱对一个地方的修改会导致另一个地方发生故障,难以跟踪代码的变异和使用。模块 A 和 B 同时使用模块 C 的功能。那么当 A 需要 C 增加一个新的行为的时候,B 有可能不需要、甚至不允许 C 增加这个新行为。影响可插入性粘度过高代码、函数、模块对系统的依赖,改动意味着破坏原始意图和框架第6页,共
4、57页,编辑于2022年,星期三+面向对象设计的重要语言特性数据抽象继承封装多态性实现概念和定义复用,促进系统的可维护性。第7页,共57页,编辑于2022年,星期三接口(接口(interface)interface):对象全部操作(对象可以处理的所有请求)的特征(操作的名称、参数和返回值)的集合。声明对象的类型(Type)接口标记接口标记(signature)包括:变量的类型声明参量的类型声明方法的返还类型声明数据类型的转换等第8页,共57页,编辑于2022年,星期三接口和类的区别:+接口只描述方法的特征,而不给出方法的实现,接口把方法的特征和实现分割开来。+类不仅给出方法的特征,面且给出方法
5、的实现。接口常常代表一个角色(接口常常代表一个角色(role)role),它包装与该角色相关的操作和属性,而实现,它包装与该角色相关的操作和属性,而实现这个接口的类使是扮演这个角色的演员。一个角色可以由不同的演员来演而不这个接口的类使是扮演这个角色的演员。一个角色可以由不同的演员来演而不同的演员之间除了扮演一个共同的角色之外,并不要求有任何其他的共同之处。同的演员之间除了扮演一个共同的角色之外,并不要求有任何其他的共同之处。第9页,共57页,编辑于2022年,星期三类、类型和对象之间区别和联系:类(class)定义了一类对象的共性实现,即对象的内部数据与其操作的实现。类型(type)只涉及接口
6、(即对象能作出反应的请求的集合)。类定义了一类对象可执行的操作,也定义了对象的类型。一个对象是一个类的实例指这个对象支持该类定义的接口。第10页,共57页,编辑于2022年,星期三同一种类型的对象共享接口部分 同一类型接口的对象可以有不同实现,即不同类的对象可以有相同的类型。一个角色可以由不同的演员来演一个角色可以由不同的演员来演一个对象可以有多种类型。一个类可以同时实现几个接口。一个演员可以演不同的角色一个演员可以演不同的角色子类型包含(继承)了超类型的接口接口是实现构件可插入性的关键。第11页,共57页,编辑于2022年,星期三抽象类为子类定义通用接口定义通用接口。将实现由子类定义的操作完
7、成。可以拥有实例变量,以及一个或多个构造子(函数)。构造子不能被调用来创建实例,抽象类不可以实例化抽象类不可以实例化。构造子可以被子类调用,所有子类都可以有共有的实现抽象类通常代表一个抽象概念提供一个继承的出发点。由于抽象类不可以实例化,因此一个抽象类一定是用来继承的。第12页,共57页,编辑于2022年,星期三抽象类和接口的区别抽象类允许有所有派生类公共的状态和行为。是一种相关相关实体聚集的方式。关注如何设设计计实实现现并并封封装装这些具体实体(派生类),而不会与任何特定于实现的细节相耦合。接口关注点派生类或实现类的对象的使用。派生类或实现类的对象为了完成其功能应该有什么样的接口。没有实例变
8、量和构造子(函数)第13页,共57页,编辑于2022年,星期三抽象类的作用:用较少的冗余实现一组具有公共状态或行为的对象设计一个接口找出已定义对象的公共状态或行为用一个抽象类实现该接口从这个抽象类派生具有公共状态或行为的对象优点:使实现类更简单,更容易维护。第14页,共57页,编辑于2022年,星期三具体类非抽象的类称为具体类,实现由自身完成。具体类可以实例化。可以实例化,给出一个有逻辑实现的对象模版。具体类不是用来继承的。(可以继承)第15页,共57页,编辑于2022年,星期三混合类向其他类提供接口,也提供部分接口实现。与抽象类相似,不能用实例说明。可以继承第16页,共57页,编辑于2022
9、年,星期三假设蛋代表抽象,而鸡代表具体。蛋假设蛋代表抽象,而鸡代表具体。蛋决定鸡的性伏,鸡是蛋的决定鸡的性伏,鸡是蛋的“实现实现”,蛋的类型决定了鸡的类型。从这蛋的类型决定了鸡的类型。从这个角度来讲,先有蛋,后有鸡。个角度来讲,先有蛋,后有鸡。第17页,共57页,编辑于2022年,星期三类继承和接口继承:继承:一个类是另一个类的子类类继承(实现继承):根据某个原有对象的实现来定义另一个新的对象的实现。从已有类继承必要的需求。共享编码和表示方法。共享编码和表示方法。接口继承:是一个类实现了另一个类的一个接口何时可用一个对象替换另一个对象。共享类型。共享类型。只继承抽象类。只继承抽象类。第18页,
10、共57页,编辑于2022年,星期三问题:加入一个新的类,与现有具体类行为有不同的实现动态的具体类可插入性问题1.使用超类继承:在类结构中增加一个超类,声明出子类要提供的行为为这个抽象超类提供多个具体子类,以不同的方法实现了超类所声明的行为。客户端动态地决定使用哪一个具体子类。第19页,共57页,编辑于2022年,星期三如何在具体类继承结构中增加一个抽象超类:单继承的语言,一个类只能有一个超类。当具体类可能已经有了一个超类,不可能加上新的超类。加新的超类到已有的超类上面,形成超超类。或者继续向上移动,直到类等级结构的最顶端。一个具体类的可插入性设计就变成了对整个等级结构中所有的类的修改。可插入性
11、没有保证。具体类超类新超超类新具体类。与现有具体类行为有不同的实现第20页,共57页,编辑于2022年,星期三2.使用接口概念在一个类等级结构中的任何类都是实现一个接口这个接口会影响到此类的所有子类,但是不会影响到此类的任何超类。此类将实现这个接口所规定的方法,而其子类则可以从此类自动继承到这些方法,子类可以选择置换其中的某一些方法或所有方法子类可以选择置换其中的某一些方法或所有方法。这时候,子类就具有了可插入性。接口类具体类新具体类第21页,共57页,编辑于2022年,星期三关联的可插入性关联:一个对象知道其他对象针对接口的关联:不是针对具体类任何实现这个接口的类都可以满足关联要求。可以动态
12、地动态地将关联从一个具体类转换到另一个具体类第22页,共57页,编辑于2022年,星期三调用的可插入性对象调用其他对象的方法。针对接口的调用:不是针对具体类,而是一个接口。任何实现这个接口的类都可以被当前对象调用。可以动态地动态地决定当前对象调用哪一个具体类的实例接口提供了方法调用上的可插入性。第23页,共57页,编辑于2022年,星期三软件系统的规模越大,生命周期越长,接口的重要性就越大。接口使得软件系统在灵活性和可扩展性,可插入性得到保证。第24页,共57页,编辑于2022年,星期三相同接口具有不同的实现,对象的行为具有多种形态的特性。简化了客户定义。使客户对象除了支持特定接口外,不做其他
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 技术 设计 第二 学生 幻灯片
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内