软件设计模式.pptxVIP

  1. 1、本文档共506页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

软件设计模式;提纲;1.1软件工程简介;软件工程关注或解决的软件产品开发问题;软件生命周期;最早被提出的软件开发周期模型为瀑布模型(WaterfallModel)。在很多文献资料中,一般会将瀑布模型的提出者标注为美国计算机科学家WinstonW.Royce。;图1.1瀑布模型;图1.1中,从软件计划开始至软件维护阶段,自上而下形成一个完整的软件开发周期。;初步需求;图1.2中,原型模型的软件开发阶段含:初步需求,原型设计,编码实现,原型测试,原型评估和软件交付。值得注意的是,由于软件需求不稳定,原型评估阶段需要决定是进行下一周期的原型优化,还是将软件交付给客户。如果需要进行下一周期的原型优化,软件开发人员会在原型评估的基础上,继续进行原型设计、编码实现等;直到最终形成可交付的软件产品。;原型模型能够很好地解决软件需求不稳定或不明确的开发问题,但由于原型开发的成本不易控制,也会产生开发成本超支、需求分析不充分等问题。此外,在实践中,人们将原型模型分成快速原型(RapidPrototyping)、增量原型(IncrementalPrototyping)、迭代原型(EvolutionaryPrototyping)和螺旋模型(SpiralModel)等。;软件开发周期模型指出了每个开发阶段的活动或任务,但没有明确地指出如何具体实施软件开发计划,包括实施步骤、成果规范、工具或环境、实现技术等。因此,软件技术人员或学习者通过软件开发周期模型,仅仅形成了软件开发周期的概念模型;他们仍然需要进一步学习更多软件开发的实践方法或技术。;软件开发方法;结构化方法于上世纪70年代被提出,分为结构化分析(StructuredAnalysis,SA)方法和结构化设计(StructuredDesign,SD)方法。

结构化分析采用自顶向下(TopDown)的方法,以数据流(DataFlows)的方式构建软件逻辑视图,将软件功能定义为数据流中的处理过程。

结构化设计依据低耦合(LowCoupling)、高内聚(HignCohesion)原则,使用结构图(StructureChart,SC)、数据字典(DataDictionary)等对软件模块结构及模块接口进行设计。;;数据流图一般包括系统功能(加工/处理,用圆角矩形符号表达)、外部实体(用直角矩形表达)、数据存储(用开口矩形或??行线表达)和数据流向(用带箭头直线表达)。图1.3所示的数据流图中,客户向COS(CafeteriaOderingSystem,订餐系统)系统中输入订单信息,COS系统生成订单并存储,COS系统向配餐员发送配送指令。;结构图以“自顶向下”的视角对系统进行可视化建模。图1.4表达了COS系统中,“下订单”、“生成订单”、“确认订单”、“支付订单”等模块之间的逻辑关系结构图。图1.4中,“下订单”模块调用“生成订单模块”,并将“订单”数据发送至“确认订单”模块,最后调用“支付订单”模块获取支付结果。;模块;由于没有明确软件或程序设计的优化规范,也没有定义软件需求分析和设计文档标准;当软件系统规模或复杂度达到一定程度后,使用结构化方法进行软件开发会变得越来越困难。而面向对象提出了一种以对象为中心的软件系统分析、设计与实现的软件开发方法,能够在应对较大规模或复杂度的软件系统构建问题上起到很好的作用。

;软件开发方法;1.2理解面向对象;面向对象特征;封装是信息隐藏的一种形式。如果某个类将域或方法定义为私有(Private),则能够避免外部程序的干扰或错误访问。封装也能让程序员将业务相关性较强的数据或行为定义在一个类中,形成内聚度较强的代码单元,为软件解耦或复用提供便利。;继承是面向对象重要特征之一,允许类以层次结构实现代码定义和复用。同时,它也是物理世界中对象间关系的一种形式,能够使软件开发人员很容易地将目标领域的业务模型映射为技术模型。在继承关系中,被继承的类为父类,继承类为子类;子类可以继承父类的属性、行为和关系。;多态允许将父类型对象的引用指向不同的子类型对象,从而使得父类型对象依据指向的子对象实例,执行不同的行为。多态也是一种抽象编程形式,可以向客户端屏蔽子类型对象的差异,统一客户端对多态对象行为调用的形式,以达到客户端程序灵活适应需求变化的目的。;使用面向对象; 面向对象分析方法有很多,如:

1)行为分析(BehaviorAnalysis)。主要通过分析系统功能和动态行为,抽取目标类或对象;

2)领域分析(DomainAnalysis)。通过咨询领域专家,抽取重要的领域类或对象以及它们之间的关联;

3)用例分析(Use-CaseAnalysis)。以用例为中心,通过情景建模,抽取软件系统的类或对象。;当前,面向对象软件开发方法主要使

您可能关注的文档

文档评论(0)

139****1983 + 关注
实名认证
文档贡献者

副教授、一级建造师持证人

一线教师。

领域认证该用户于2023年06月21日上传了副教授、一级建造师

1亿VIP精品文档

相关文档