编写灵活、可扩展程序的步骤与方法(学院派)
一、首先需要满足客户的需求而建立应用程序,确认你的软件在做正确的事儿,其中“用例”是一个主要的工具,这个阶段称为软件工程里的“需求分析”。
- ① 首先,需要和用户沟通交流,形成需求。
- ② 编写用例,形成使用场景,使用场景,是指用例从开始到结束的一条路径,一个用例可能对应多个使用场景。
- ③ 检测用例是否全部覆盖需求,分析真实场景下用户的隐藏需求。
- ④ 根据③中的分析,补充隐藏需求和用例。
- ⑤ 分析用例,找出用例中的名词(类),和动词(方法),画出类图。
至此,通过这个步骤,基本上可以确定用户需要什么,应用程序需要做什么了,按照这个编码,就基本能得出用户需要的应用程序了。
二、利用基本的OO原则,重新设计软件的架构。
软件的生命周期中,“变化”永远是主题,当变化来临后,如果软件不能灵活的应对变化,那么更改成本和维护成本将会非常恐怖。也会使开发人员深陷泥淖。
- ① 找出系统中变化的类,找出类中变化的部分。
- ② 一个类只能有一个职责,改变类的因素只能有一个,如果一个类中变化部分有很多,那么应该把这些变化提取出来,封装起来。
- ③ 找出系统中面向实现编程的地方,打破这些程序,提取通用接口,更改为面向接口编程。
- ④ 重新审视程序的设计,降低类之间、模块之间的耦合,检测程序能否正常工作。
利用基本的OO设计,能设计出比较不错的软件,基本能够应对变化。
三、利用成熟的模式,再次审视软件的架构。
设计模式是成熟的经验积累,利用成熟的模式,能够使软件结构清晰,容易理解。
- ① 找出一些符合经典模式的场景,将局部架构组装成满足模式的架构。
- ② 重新审视程序的设计, 降低耦合,提高重用,检测程序能否正常工作。
好的模式,好比一个框架,能提高代码和架构的可读性,个人觉得越是优秀的软件系统,看起来越像是一个框架,改变的部分已经被解耦到几个类中,每次需求变更,只需要改变那几个类。
以上,是学习中自己的一些心得体会。
.