欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    《设计准则》PPT课件.ppt

    • 资源ID:5605377       资源大小:294.49KB        全文页数:29页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《设计准则》PPT课件.ppt

    第三章 设计准则 I:正确性和健壮性,Design Principles ICorrectness and Robustness,软件设计的目标:,正确性、健壮性、灵活性、可重用性和高效性,正确性、充分性,灵活性、可重用性,纯粹的极限程序设计XP(extreme programming),适应未来许多需求变化的设计,3.1 正确性和充分性 目标:每个项目都要满足指定的需求,然后一 起满足所有应用程序的需求。Goal:That each artifact satisfies designated requirements,and that together they satisfy all of the applications requirements.,3.1.1 实现正确的途径3.1.1.1 达到正确性的非正式方法 在确定最终结果之前,应该进行简单和模块化设计。,一个设计足以实现需求,设计必须完全可理解,设计非常模块化,一个正确设计,有时称为,最小目标,接下来,达到这个目标的常用方法是,3.1.1.2 达到正确性的正式方法 包含了用数学逻辑的方法来分析变量变化的方向。,类不变式,例:Invariants for Class Automobile,mileage=0mileage=-300(300美元是一辆报废车的处理价格)originalPrice=0(type=“REGULAR”&value=originalPrice),Automobile类的方法要考虑这些不变式,这正是我们经常将变量设为私有的原因。,3.1.2 模块接口3.1.2.1 类的接口,Shipment,原始形式,Shipment,setVehicle()perishable()getWidth()printRoute()describeType()getLength()getDuration()setType()getWeight(),Dimensions,getWidth(),getLength()getWeight(),TransportationMeans,getDurationsetVehicle()printRoute(),GoodsType,describeType()setType()perishable(),Shipment,Dimensions,TransportationMeans,GoodsType,通过接口使Shipment类的结构变清晰:两种表示方法,Java 部分实现代码:interface Dimensions public double getWidth();public double getLength();public double getWeight();class Shipment implements Dimensions,TransportationMeans,GoodsType public double getWidth(),3.1.2.2 包的接口,purchases购买,Furniture家具,Clothing衣服,Appliance设备,PurchasesIF,Pricing,Selection,ClothingTryout,chatServer,ger,聊天应用程序的模块,包含了服务包及客户包接口,chatClient,Conversation 会话,ConversationManager会话管理,ServerComm服务器通信,Conversation-Services,Participant-Services,Display显示,ClientComm客户端通信,Message-Reception,float computerConversationCharge(),Conversation getConversation(int aCoversationID),3.1.3 模块化3.1.3.1 选择类,领域类:应用程序特有的类 domain class 例如:BankCustomer BankTransaction Teller 足以让所有需求清晰化,非领域类:一般类 nondonmain class 例如:抽象类 实用类 用于补充设计和实现,3.1.4 为正确性和充分性而重整 极限编程(extreme programming,XP)是首先为给定的需求进行设计,然后在额外的需求变得透明时对设计和实现进行修改,这个过程称为重整(refactoring)。,3.1.4.1 重整:为类提升一个原始属性,class Mileage int nominalMileageValue=0;int chassisMileageValue=0;int engineMileageValue=0;public int computerEffectiveMileage(),class Automobile Mileage mileage;,3.1.4.2 重整:引入抽象基类和接口,abstract class MyAbstractClassClass AnotherClassMyAbstractClass m=new MyAbstractClass();/does not compileClass AnotherClassMyabstractClass m;/no problem:just a declarationm=getObjectOfMyAbstractClass();/returns obj.non-abstract subclass;m=new ConcreteSubclassOfMyAbstractClass();/no problem,3.2 健壮性 如果设计或实现能处理各种各样的异常情况,比如数据错误、用户错误、环境条件,那么这个设计是健壮的。,3.2.1 检查输入(保证环境健壮性)例如:类型检查 检查与前置条件和不变式不符的输入,4.2.2 为提高健壮性而初始化,int i=0;Class AnotherClass MyClass c=new MyClass(1,“a”);,3.2.3 提高健壮性的参数传递技术,例如:int computerArea(int aLength,int aBreadth).,如果可行,捕获在类中的参数约束,int computerArea(RectangleDimension aRectangleDimension),在方法注释中说明所有的参数约束,aLength 0 and aBreadth 0 and alength=aBreadth,调用者遵循参数的显示要求,问题时方法的设计者没有控制调用者,在方法代码内首先检查约束,if(aLength=0)如果预计这种情况将会出现,则抛出异常如果可能就终止程序/返回的默认值在上下文间有意思,就将其返回,在使用数据之前进行检查,可提高健壮性,3.3 设计细节:充分性,不熟悉的设计者,熟悉的设计者,减少设计者想象设计结果的能力,100%,0%,开始编码前推荐的设计详细百分比,应用程序类型,非常复杂,非常简单,最初编码之前设计的详细程度,设计准则II:灵活性、可用性和高效性,Design Principles II:Flexibility、Reusability and Efficiency,4.1 灵活性,4.1.1 灵活性的目标,预期,增加更多同类型功能例如(银行应用):处理更多类型的帐号而不需修改已存在的代码,增加不同的功能例如:在存款的功能的基础上增加提款功能,修改功能例如:可以透支,灵活性的表现,4.1.2 用于增加更多同类型功能的设计,WebSite,register(),Member,members,*,网站成员注册,WebSite,Member,members,*,YMember,XMember,StandardMember,灵活地注册网上成员,4.1.3 用于增加不同类型功能的设计,增加一个新功能要依据其上下文和应用范围,在以下范围内,1.一系列相关的函数(方法),例如:在航空旅行函数中增加打印功能,2.一个已存在的基类 例如:增加打印航空旅行路线的功能,3.两者都不是 例如:增加同时打印航空和航海的路线的功能,向一个应用中增加功能:不同情况,考虑一下情况2,SomeApplicationClass,Trip,printItinerary(),一些方法调用printItinerary(),SomeApplicationClass,Trip,printItinerary(),StandardTrip,printItinerary(),LandTrip,printItinerary(),SeaTrip,printItinerary(),通过继承基类的方法来增加功能,Additional Type of Flexibiliy,灵活性方面:可以通过运行时确定的变量来产生对象运行时表示变化的对象树或其他结构改变、重组或捕获一组对象的相互行为产生和存储复杂的类对象配置预定义的复杂类或类组的对象,从而以多种方式进行交互,描述点创建型设计模式结构型设计模式行为型设计模式组件技术组件技术,4.2 可重用性4.2.1 函数设计的可重用性,完全指定前置条件等,避免不必要的封装类耦合,如果可行,让方法称为静态的,让名字更具代表性,可理解性促进了可重用性,解释算法,重用者要知道算法是如何工作的,使一个方法具有可重用性,4.2.2 基于重用的类选择,列出一些让类更易于重用的性质,完整地描述类,使类名和功能与实际情况相符,定义一个有用的抽象类,减少对其它类的依赖性,使一个类成为可重用的,4.2.3 用于重用的类组合,CustomercomputeBill(),RegularCustomercomputeBill(),CustomercomputeBill(),Billcompute(),CustomercomputeBill(Orders),Ordersvalue(),(1)Leveraging inheritance,(3)Leveragingdependency,(2)Leveragingaggregation,CustomercomputeBill(),依靠,聚合,继承,4.3 高效性,应用程序必须在指定的时间内完成特定的功能,先按其他原则设计,再考虑效率问题,一开始就按效率原则进行设计确认当前关键的效率需求在整个阶段都按需求进行设计,以上两种方法结合,针对时间效率的基本方法,4.3.1 执行效率,循环while、for远程调用需要网络LANThe Internet函数调用-如果函数调用导致以上情况发生对象创建,4.3.2 存储效率,只存储需要的数据在存储效率与数据提取及重整时间之间获得折中,压缩数据在存储效率与数据压缩及解压缩时间之间获得折中,按相关访问频率存储数据 在存储效率与决定存储位置的时间之间获得折中,获得存储效率,4.4 极限编程法与非极限编程法,极限编程法 非极限编程法,+工作完成迅速,+范围清晰,-未来应用可能 较少用到,-扩展需求代价很大,+未来应用可能 较多用到,+需求可变,-范围划分不清楚,-可能会比较费力,-需要更多关注效率,极限编程法与非极限编程法的比较,注:+正面因素-负面因素,

    注意事项

    本文(《设计准则》PPT课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开