简读《Head First面向对象分析与设计》

本文介绍了OOA&D这一编写软件的方法,它能确保软件做该做的事且设计良好,具有灵活性、易维护和可重用等特点。阐述了编写软件的步骤,如确认需求、用OO原则增加灵活性等,还提及需求收集、用例编写、测试驱动等内容,强调伟大软件编写是迭代进行的。

忙里偷闲系列,本阶段最后研发相关的一本书。接下来需要换换脑子。本文都是转载,自己做记录,并没什么可读性。

OOA&D只是一种编写软件的方法,它聚焦在确保你的软件做它该做的事并且是设计良好的。这表示你的软件有灵活性,容易改变,好维护并且可重用。
当程序正常运行,客户是满意的;当程序持续正常运行,客户是满意的;当程序能够升级,客户是满意的;当程序能够被重复利用,程序设计师是满意的;当程序就要有灵活性,程序设计师是满意的。

低耦合,
三个步骤:确认客户的正确需求-》用基本的OO原则增加灵活性-》努力实现可维护、可重用的设计。
确认你的软件在做客户要它想做的事-》测试驱动 test drive-》测试通过后-》客户满意后-》回到上面的三个步骤-》
委托:一个对象将操作转交给另一个对象的动作,第二个对象代表第一个对象执行该操作。

OOA&D提供一种产生设计良好的应用程序的方法,同是满足客户和程序设计师。
找出应用程序中经常改变的部分,试着将它们与其他不改变的部分分开。
一旦完成基本功能,就重新细化你的设计,让它更灵活。


收集需求
需求:需求是单一的需要,详细说明特定产品或服务应该做的事。最常用在系统工程或软件工程的正式用语中。
确认你的软件做客户要它做的事。
编写介绍用例3要素:价值明确,如果用例对于用户目标没用,那就没必要写;必须明确的起点或者终点;每个用例都必须由外部启动者开启。
注意随着代码更新编写测试用例。
主要路径和替换路径
用例的真正威力在于可以协助建立完整的需求列表,判断需求列表是否含盖了每一件事。


需求变更
原则:客户永远是对的。需求总是在变的。
测试驱动
需求的变动揭露出关于系统你还不知道的问题;变更是经常的,随着你的每次实现,系统总是随之改变。


在真实的世界中,软件遇见的实际情况远远要比用例多。确保事情正常运作以及真实世界不会摧毁你的应用程序的关键是分析:在程序发布前,想出潜在问题,然后解决。
查看用例里的名词以整理出类与方法的动作叫做文本分析。用例里的动词通常是系统中对象的方法。
编写用例–需求整理–文本分析–UML画类图


高内聚才能引发低耦合
内聚力,cohesion。内聚力量度单一模块、类或对象内各元素之间的连接度(degree of connectivity)。软件的内聚力越高,应用程序中每个类的责任就定义得越好且越相关(well-delined and related)。每个类就具有特定一组紧密相关得动作要执行。


软件架构师architect,是软件项目得灵魂人物,必须兼顾功能需求、开发部署、运作性能、技术风险以及系统灵活性与可维护性等,在有限资源与时间下,设计出最合适的软件架构。
对接口编码,而不是对实现编码


架构是系统的组织结构,包含分解开来的各个部件,它们的连通性、交互机制以及你在系统设计中使用的指导原则与决策。
在这里插入图片描述
架构三问:它是系统本质的一部分吗?这他妈的是什么意思?我到底该如何做?


1开闭原则2不自我重复原则3单一职责原则4替换原则5
在这里插入图片描述


OO编程工具组:需求;分析与设计;解决大问题;OO原则;
6/7:运用用例图与关键功能列表,将简单的远景陈述转换成应用程序的架构;
8:OO原则帮助我们编写软件良好,有灵活性的OO软件;
1:编写伟大软件的3个步骤:确认你的软件做客户要它做的事-》运用基本的OO原则来增加软件的灵活性-》努力实现可维护、可重用的设计;
但,,,你的客户在意的不是这些,她们只想软件能做他该做的事。
伟大软件的编写是迭代进行的。先针对整体轮廓操作,接着迭代应用程序的每个片段,直到完成。
迭代的两种基本方式:功能驱动开发;用例驱动开发;

强烈推荐 “《深入浅出面向对象分析设计》对OOA&D这个主题的探讨令人耳目一新。 本书众不同之处在于它将焦点摆在学习上,本书的诸位作者让从业人员对OOA&D的内涵不再感到遥不可及,而且它在实际工作中确实有用。”               ——Iva Jacobson Ivar Jacobson Consulting UML之父 “隐匿在诙谐图片逗趣文字背后的是对OOA&D这个主题认真、睿智且极具匠心的阐述。阅读本书,感觉就像站在专家的肩膀上环顾四方,聆听他一步步、细心倾诉那些重要的议题,并且告诉我为什么。”             ——Edward Sciore 波士顿学院计算机科学系副教授 “刚读完这本书,我就深深地爱上它了!我最喜欢的一件事就是本书把焦 点放在我们实践OOA&D的原因上一写出伟大的软件!”                         ——Kyle Brown IBM杰出工程师你是否早已对市面上那些只有在成为专家以后读起来才有感觉的OOA&D书籍感到厌倦?你可能早就听说过OOA&D书籍能帮助你写出伟大的软件一让老板高兴、客户满意的软件。 《深入浅出面向对象分析设计》将告诉你如何分析、设计以及撰写真正面向对象的软件:容易重利用、好维护、可扩展的软件;不再使你心碎的软件;让你增添新功能而不会破坏旧机制的软件。在本书中,你将学到:   使用诸如封装(encapsulation)委派(delegation)的OO原则建立灵活的应用程序。   使用开闭原则(Open—C10 sed Principle)单一责任原则(Single—Responsibility Principle)提升程序的重利用性。   学习如何将OO原则、设计模式及各种开发方法通通整合到OOA&D项目的生命周期里。   运用UML、用例及用例图来确保所有利害关系人都能清楚地进行沟通,协助你交付正确的软件,达到每个人的要求。   通过一连串的脑力开发,《深入浅出面向对象分析设计》压缩了学习获取复杂信息所需的时间。可以预料,这将是一段充满乐趣的学习之旅。相信在读完本书之时,你肯定能够写出伟大的软件。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值