- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象方法论的问题 面向对象方法论的问题 有些设计师在被要求验证设计是否满足需求时,回答是我采用了某某设计模式,这个结构灵活,扩展性强,肯定满足需求,无法拿出一个实在的推导过程。 有些人一手拿着设计文档,一手拿着需求说明文档,无法把两者对上号,搞不清设计是如何映射需求的。 关于为什么要设计出5个类,而不是7个,为什么是10个方法,而不是12个,回答是凭经验,经验是宝贵的,但也是靠不住的。 不要怀疑面向对象是否错了,而是现实世界与对象世界之间存在一个鸿沟--抽象。 抽象是面向对象的精髓所在。 UML代表的面向对象分析设计方法,架起了跨越这道鸿沟的桥梁 Q A 多测试 电流经过一系列的过程反应,产生输出 计算机通过数据来记录过程的变迁,过程中每一步都会产生、修改或读取一部分数据,一个环节完成后,数据将顺着过程链传递到下一个部分,直到预期的状态。 某些节点之间根本没有因果关系,只是临时组合以表壳某种商业需要 通过“商业分析”收集和分析消费者习惯,通过对细分市场的调查来了解商品需求变化。通过对采集来的数据进行分析和预测,销售策略就有可能发生变化,从而导致整个销售过程被颠覆。 中国的飞机发动机都是随新飞机一起上马 踩下刹车,汽车就停住了 WebEx Confidential WebEx Confidential WebEx Confidential 计算机学院软件工程系 Email:Xiahui_1@163.com TelphoneQQ不聊天) 目 录 1 软件的复杂性 2 抽象与分解 3 面向过程方法论 4 面向对象方法论 软件的复杂性 1.问题领域的复杂性 系统的功能本身就难以理解(飞行控制系统),还要考虑非功能性需求,比如可用性、性能、成本、可靠性。 用户很难正确表达自己的需求,甚至对软件系统中的需求只是一个概念 需求在开发过程中经常变化 复杂性是软件的根本属性。--Brooks 软件的复杂性 2.管理开发过程的困难 大型系统可能存在几千个模块,大量的工作需求多个小组共同完成,而开发人员越多,意味着联系越麻烦,合作越困难。 管理上的挑战:保持一个整体以及设计上的完整性 复杂性是软件的根本属性。--Brooks 3.软件可能的灵活性 软件开发人员几乎制造出系统所需的所有构件 建筑行业具有原材料质量的统一法规和标准 软件开发业是一个劳动密集型产业 软件的复杂性 4.离散系统状态的组合爆炸 系统状态如果用连续函数描述,意味着所有的行为可以预测 系统状态如果是离散的,则状态存在组合爆炸,因此,将系统设计成功能隔离的几个部分,将各个部分的影响降为最小。 比如:客车控制系统中,一个乘客打开头上的顶灯对发动机、仪表是否存在影响。 问:如何解决每个行为对系统的各个状态的影响都保证是正确的? 复杂性是软件的根本属性。--Brooks 多测试 面向过程(结构化)还是面向对象 面向过程和面向对象都是一种软件技术 面向过程归纳为结构化程序设计技术 面向对象归纳为继承、封装、多态、复用等技术 面向对象的复用粒度比面向过程更高 还有没有?? 同学们谈谈对这二者的认识 面向过程还是面向对象 我对面向对象编程的目标从来就不是复用。 相反,对我来说,对象提供了一种处理复杂性问题的方式。这个问题可以追溯到亚里士多德:您把这个世界视为过程还是对象? 在面向对象兴起运行之前,编程以过程为中心,例如结构化设计方法。然而,系统已经到达了超越其处理能力的复杂性极点。 有了对象,我们能够通过提升抽象级别来构建更大的、更复杂的系统--我认为,这才是面向对象编程运动的真正胜利。 UML创始人之一Grady Booch在2004年IBM Developer Works Live大会的访谈中讲过一段流传甚广的话: 面向过程方法论 (1)首先要将现实世界中的所有过程描绘出来,确定其因果关系。 (2)再通过结构化设计方法,将这些过程细化,形成可以控制的、范围较小的部分。 通常是找到过程的起点,顺藤摸瓜,分析每一个部分,直到达到过程的终点,这个过程中每一部分都是过程链上不可分割的一环。 面向过程方法论设计系统过程: 面向过程方法论定义: 以数据为中心,以自顶向下方法将复杂数据加工处理逐步分解为简单、独立模块的开发方法。 面向过程方法论 世界的一切都不是孤立的,它们相互紧密联系到一起,缺一不可,相互影响,互相作用,并形成一个个具有严格因果律的小系统。
文档评论(0)