java

位置:IT落伍者 >> java >> 浏览文章

从Java语言编程谈软件开发流程


发布日期:2018年09月05日
 
从Java语言编程谈软件开发流程

你我的生活周遭已处处可见Java;到火星上走走eBay大采购网络银行转帐拿着健保卡到医院看病无聊时把玩手机上的Java游戏…

在生活中你通常只知道「喔!原来这网站是用Java写的」「喔!原来这是手机的Java Game」若自技术层次拆解Java Technology可简单区分为Java 程序语言(language)与Java 平台(platform)

Java 程序语言所指是撰写程序所需的语法与词汇像学习中英文有一套基本的单字与语法只要利用单字组出符合语法的句子这就是Java程序的基础

至于Java 平台如大家熟知的Java共分三大平台JMEJSE和JEE分别专精于嵌入式行动平台标准平台和企业应用平台除了共同的类别函式库(API)之外每个平台也有其特定的API供程序设计师们开发使用

随着开发工具陆续推出降低了Java开发技术门坎要写出正确无误的Java程序不是太难的事情但论及系统性的Java软件开发那可就不是一件轻松事

开发大型项目有三项非常重要的因素将会影响整个项目的进度与质量分别是人(people)流程(process)与技术(technology)

这三个要素是环环相扣的任何一项要素的成败都会影响另外两个要素而每个要素也都足以影响一个项目的成败

如何取得这三者的平衡并将每个要素充份的发挥取决于管理者的经验与相关开发人员的素质这不是一项简单容易的任务但有好的方法可以完成

Java弹性多选择资源丰富任君挑选

「技术」应该是最容易掌握的部份因为你选择了Java如前所述全世界已有许多Java资源可以选择某些人可能会认为Java技术门坎高考虑训练成本而决定导入较为简易的程序语言如VBNet或是不敢转换到Java平台

事实上真正困难的不是Java程序语言或是API的使用而是整个对象导向程序设计的概念C#也标榜与Java有着类似的对象导向架构除执行平台不同API的名称不同本质与Java可以算是孪生兄妹怎么没听有人抱怨C#很难学?

既然JavaNet门坎是一样的那该如何选择?答案是你喜欢谁就选谁只是当你决定投靠其中一个阵营时不妨想想一件事「在这个平台上我是不是有选择的空间与自由?」

Java是一开放的技术平台可执行于各类作业平台还有各式各样的开发工具API套件与执行环境包括商业免费开放源码等丰富资源任君挑选

流程关乎项目预算与时间控制

「程序」指的是软件开发流程或是项目流程定义流程的目的是要掌控所有的情况项目的最大敌人是时间及预算这两者都是有限的如何在有限预算内准时完成项目可说是一项艺术

幸运的是时间和预算都是可控制的并不是指我们可以控制时间快慢或长短而是如何明确知道哪一个时间点需要何种产出物而我们有多少的预算可以完成为有效控制我们需要一个标准的流程只要照着规矩走一切都好办

RUP(Rational Unified Process)就是一种业界常用的不成文规矩在多数软件项目中几乎都会使用的一项语言方法与工具 RUP的精神在于反复(iterative)与渐近的(incremental)

在渐进式的开发过程中透过不断的提炼(refine)可趁早发现问题且找出解决方法也确保每一工作项目的进度不过在架构(Architecture)方面RUP确实着墨较少而架构优劣也是足以影响软件系统成败的关键因素

QoS(Quality of Service)或是SLR(Service Level Requirement)我想是每个系统最基本的要求它包含可用性(Availability)可管理(Manageability)可信赖(Reliability)可扩充(Scalability)和安全性(Security)等条件

当系统架构进行规划时就应同步考虑这几项条件举例而言先前某家外商银行因系统设计不良而导致外人可轻易猜出参数设定的方式直接入侵系统窃取消费者隐私数据;也有某家电信业者为没考虑系统的负载量而导致在耶诞跨年等重要节日时涌入大量简讯的尖峰时期造成服务塞车系统当机

在电视新闻中我们常常可见类似的新闻报导而背后隐藏的意义是「当初没做好系统架构规划」看得不够远想得不够深等系统开发到一半或是系统上线后才发现问题此时再东补西补为时已晚

虽说不同的程序技术皆有其满足QoS的方法相较之下Java对上述五大项功能的支持应该算是最为丰富如在JEE的设计模式(Design Pattern)中几乎都是为解决此几项问题而设计之后再配合程序语言本身的强固性开发而成的企业级应用系统我想应可满足客户对于QoS的严格要求

话说回头企业一旦使用Java开发一套系统就一定会是百分百稳定且满足QoS吗?我想设计模式跟程序语言无关将JEE 设计模式作为C#实作的架构也未尝不可只要能建构出相同安全稳定的环境执行该系统都是可行的就像会说国语未必可写出漂亮的文章一样训练经验再加上一点天份才是最重要的

专业技术认证可供参考

「人」是项目中最难预料与掌控的一项要素人可分成两部份一是客户二是研发人员客户是最难掌握的不同的客户有不同的个性没有任何人能教导你如何应付不同的客户除了靠运气还要靠经验

暂不谈客户先看研发人员这部分我想要满足技术与流程两项因素关键都是人如何选择对且合适的技术要有专业人才;如何有效管理流程?如何规划满足AMRSS五项需求的系统架构?这都是需要有经验的管理人才及架构师(architect)当然能不能写出漂亮且可完善运作的程序代码也是需要有一定水平的研发人员

开发程序人员的水平是较容易被认证Java有几项专业认证如SCJPSCJDSCWCD都可用以鑒定开发人员基本的功力另有SCEA SCBCD等认证可评鑒程序架构人员的素质除专业训练之外经验也是一位优秀的架构师所应具备的条件而程序部份其实也有认证如PMP

也许你会觉得Java很八股写程序为什么需要一大堆文件设计模式程序与方法论(methodology)边写边设计且战且走不行吗?对于小型系统或是没有营运压力系统而言是可以的如果是人力不足预算有限结案期限已在眼前当然也该直接动工

但依我接触过案子经验的深刻体验宁愿花费较长时间与心力在项目初期就先详细规划才可节省后期开发的时间系统上线后也更容易维护与扩充虽然耕耘过程会较辛苦但所得好处也会是倍增的

上一篇:使用Javadoc标记你需要的信息

下一篇:XP让Java项目获得更大成功