编写灵活、可扩展程序的步骤与方法(学院派)
2015-07-30 11:51
155 查看
一、首先需要满足客户的需求而建立应用程序,确认你的软件在做正确的事儿,其中“用例”是一个主要的工具,这个阶段称为软件工程里的“需求分析”。
① 首先,需要和用户沟通交流,形成需求。② 编写用例,形成使用场景,使用场景,是指用例从开始到结束的一条路径,一个用例可能对应多个使用场景。
③ 检测用例是否全部覆盖需求,分析真实场景下用户的隐藏需求。
④ 根据③中的分析,补充隐藏需求和用例。
⑤ 分析用例,找出用例中的名词(类),和动词(方法),画出类图。
至此,通过这个步骤,基本上可以确定用户需要什么,应用程序需要做什么了,按照这个编码,就基本能得出用户需要的应用程序了。
二、利用基本的OO原则,重新设计软件的架构。
软件的生命周期中,“变化”永远是主题,当变化来临后,如果软件不能灵活的应对变化,那么更改成本和维护成本将会非常恐怖。也会使开发人员深陷泥淖。① 找出系统中变化的类,找出类中变化的部分。
② 一个类只能有一个职责,改变类的因素只能有一个,如果一个类中变化部分有很多,那么应该把这些变化提取出来,封装起来。
③ 找出系统中面向实现编程的地方,打破这些程序,提取通用接口,更改为面向接口编程。
④ 重新审视程序的设计,降低类之间、模块之间的耦合,检测程序能否正常工作。
利用基本的OO设计,能设计出比较不错的软件,基本能够应对变化。
三、利用成熟的模式,再次审视软件的架构。
设计模式是成熟的经验积累,利用成熟的模式,能够使软件结构清晰,容易理解。① 找出一些符合经典模式的场景,将局部架构组装成满足模式的架构。
② 重新审视程序的设计, 降低耦合,提高重用,检测程序能否正常工作。
好的模式,好比一个框架,能提高代码和架构的可读性,个人觉得越是优秀的软件系统,看起来越像是一个框架,改变的部分已经被解耦到几个类中,每次需求变更,只需要改变那几个类。
以上,是学习中自己的一些心得体会。
相关文章推荐
- javascript bind()
- 小试mysql分布式
- Code Profling tools in Linux
- openfire+android消息推送
- Unity3D Shader入门优秀博客(一)
- AngularJS 中的 Promise 和 设计模式
- STM32L1XX使用HAL_UART_Transmit_DMA发送串口数据
- ODBC、OLE DB、 ADO的区别
- Android如何屏蔽媒体扫描
- ajax跨域问题解决方法
- Qt核心剖析: moc
- 多线程和多进程之间的区别
- 电网SVG简介
- 方法级别的java日志输出控制(二)集群
- javascript-01
- Javascript常用函数收集(不定期更新)
- iOS App 升级时文件的保留情况
- HDU 1584 蜘蛛牌
- 编程之美----小飞的电梯调度算法
- Bash One-Liners Explained 译文(五)