连载:面向对象葵花宝典:思想、技巧与实践(14) - 面向对象开发技术流程

简介:

抛开项目流程,让我们来谈谈“技术流程”吧!!


谈到流程,很多人立刻就会想到熟悉的瀑布模型、螺旋模型、迭代开发、敏捷、RUP等一堆软件工程相关的软件开发流程,但对于大部分人来说,这些流程仅仅是项目管理上的概念,只有项目经理开例会时那红红绿绿的甘特图、燃尽图、路径图等,或者只有评估工作量和是否要加班的时候,我们才会意识到这些流程的存在。

 

通俗的讲,项目管理上的流程主要是用于指导项目经理如何管理项目用的,但对于如何指导开发人员如何开发项目,并无多大用处。一个典型的情况就是刚毕业的大学生,软件工程掌握的很熟悉,各个开发阶段应该做什么,瀑布流程有什么优缺点等,谈起来都头头是道,但真的参加开发项目后,就会发现有一种无从下手的感觉。例如:

Ø 需求分析阶段要分析需求,但具体怎么分析呢?

Ø 客户的需求是描述性的,例如“我们需要一个POS机”,而代码是一个一个具体的类和函数,那么如何从描述性的语言最后转化到具体的类和函数呢

Ø 具体语言的特性,例如Java和C++的private、protected、public这些属性是从哪里来的?什么时候设计的?

Ø 面向对象的类、接口等,是怎么设计出来的 

 

相信这些问题都曾经困扰过很多人,但软件工程并没有给出这些问题的答案,因此也就导致了很多开发人员在实际开发过程中,要么只能在别人的指导下工作,要么就瞎蒙乱撞、拼凑堆砌,反正最后也能够实现需求,至于效果嘛,那就要看运气了。少数几个领悟力强的人,经过一段时间的磨练后,也许就慢慢掌握了门道,但大部分人可能就一直原地踏步,不断的在重复别人分配给自己的工作。

 

其实,就像项目管理上有一套完整的流程一样,项目开发也有一套完整的过程,尤其对于面向对象来说,整个开发流程其实是非常清晰的,只是很少有人将这部分归纳总结提炼出一套用于指导开发人员进行开发的流程。

 

为了区别起见,我们将瀑布模型、敏捷开发等称为“管理流程”,而将面向对象开发流程称为“技术流程”。面向对象的技术流程可以概括如下:

需求模型 -> 领域模型 -> 设计模型 -> 实现模型

 

l 需求模型

通过和客户沟通,结合行业经验和知识,明确要求客户的需求。

 

l 领域模型

基于需求模型,提炼出领域相关的概念,为后面的面向对象设计打下基础。

 

l 设计模型

以领域模型为基础,综合面向对象的各种设计技巧,完成类的设计。

 

l 实现模型

以设计模型为基础,将设计模型翻译为具体的语言实现,完成编码。

 

以上流程环环相扣,上一步流程的输出就是下一步流程的输入。后面我们可以看到,通过这种一步一个脚印的方式,即使是经验并不丰富的菜鸟,也能完成从需求到最后实现的相关工作,而不再需要仰望和崇拜其他大虾大牛,或者自己摸着石头过河了


================================================ 
转载请注明出处:http://blog.csdn.net/yunhua_lee/article/details/20150683
================================================ 

相关文章
|
存储 算法
【❤️算法笔记❤️】-每日一刷-21、合并两个有序链表
【❤️算法笔记❤️】-每日一刷-21、合并两个有序链表
305 0
|
算法 程序员 编译器
C ++匿名函数:揭开C++ Lambda表达式的神秘面纱
C ++匿名函数:揭开C++ Lambda表达式的神秘面纱
464 0
正则表达式的详细规则
正则表达式的详细规则
362 1
|
自然语言处理 运维 监控
产品解读 | 敏捷版云原生PaaS场景
更丰富的云原生应用治理能力让业务快速生长,更丰富的云原生应用治理能力让业务快速生长。
1513 75
产品解读 | 敏捷版云原生PaaS场景
|
JavaScript Java 测试技术
基于ssm+vue.js的大学学生成长系附带文章和源代码设计说明文档ppt
基于ssm+vue.js的大学学生成长系附带文章和源代码设计说明文档ppt
90 1
|
存储 Java
你知道变量、数据类型、方法、控制语句之间的关系吗?
java程序在运行的过程中会在内存中产生一些数据,这些数据就会被临时保存在内存当中,而内存中的每一小块区域我们就可以理解为是变量,数据会动态改变的,当程序想要访问或是修改这些数据的时候需要通过一些标识来进行操作,我们就可以使用变量名来标识每一块内存区域。
|
消息中间件 运维 Kubernetes
使用 K8s 进行作业调度实战分享
最近在公司的数据同步项目(以下简称 ZDTP)中,需要使用到分布式调度数据同步执行单元,目前使用的方案是将数据同步执行单元打包成镜像,使用 K8s 进行调度。
813 2
使用 K8s 进行作业调度实战分享
|
设计模式 Java C语言
Java之父都需要的《Effective Java中文版(第3版)》到底有多牛
你是否正在寻找一本能够更加深入地了解Java编程语言的书,以便编写出更清晰、更正确、更健壮且更易于重用的代码? Effective Java中文版(第3版) 再适合不过了!这是一本分享经验并指引你少走弯路的经典著作,针对如何编写高效、设计优良的程序提出了最实用、最权威的指导方针,通过90条经验法则,探索新的设计模式和语言习惯用法,帮你更加有效地使用Java编程语言及其基本类库。