`
lunch
  • 浏览: 76955 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

从Java谈软件开发流程[转]

 
阅读更多

  经过近十年的发展,说Java是地球上最受欢迎的程序开发语言一点也不为过。Java赋予开发人员高度的选择自由,展现「Java Everywhere」的魅力与成效。你我的生活周遭已处处可见Java;到火星上走走、eBay大采购、网络银行转帐、拿着健保卡到医院看病、无聊时把玩手机上的Java游戏…。

  在生活中,你通常只知道「喔!原来这网站是用Java写的」、「喔!原来这是手机的Java Game」。若自技术层次拆解,Java Technology可简单区分为Java 程序语言(language)与Java 平台(platform)。Java 程序语言所指是撰写程序所需的语法与词汇,像、英文,有一套基本的单字与语法,只要利用单字组出符合语法的句子,这就是Java程序的基础。

 

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

  随着开发工具陆续推出,降低了Java开发技术门坎,要写出正确无误的Java程序不是太难的事情,但论及系统性的 Java软件开发,那可就不是一件轻松事。开发大型项目有三项非常重要的因素,将会影响整个项目的进度与质量,分别是人(people)、流程(process)与技术(technology)。

  这三个要素是环环相扣的,任何一项要素的成败都会影响另外两个要素,而每个要素也都足以影响一个项目的成败。如何取得这三者的平衡,并将每个要素充份的发挥,取决于管理者的经验,与相关开发人员的素质,这不是一项简单容易的任务,但有好的方法可以完成。

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

  「技术」应该是最容易掌握的部份,因为你选择了Java。如前所述,全世界已有许多Java资源可以选择。某些人可能会认为Java技术门坎高,考虑训练成本而决定导入较为简易的程序语言,如VB.Net,或是不敢转换到Java平台。事实上,真正困难的不是Java程序语言或是API的使用,而是整个对象导向程序设计的概念。C#也标榜与Java有着类似的对象导向架构,除执行平台不同、API的名称不同,本质与 Java可以算是峦生兄妹,怎么没听有人抱怨C#很难学?

  既然Java、.Net门坎是一样的,那该如何选择?答案是,你喜欢谁就选谁。只是当你决定投靠其中一个阵营时,不妨想想一件事:「在这个平台上,我是不是有选择的空间与自由?」Java是一开放的技术、平台,可执行于各类作业平台,还有各式各样的开发工具、API套件与执行环境,包括商业、免费、开放源码等丰富资源<st1:personname w:st="on" productid="任">任</st1:personname>君挑选。

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

  「程序」指的是软件开发流程或是项目流程,定义流程的目的是要掌控所有的情况。项目的最大敌人是时间及预算,这两者都是有限的,如何在有限预算内准时完成项目,可说是一项艺术。幸运的是,时间和预算都是可控制的,并不是指我们可以控制时间快慢或长短,而是如何明确知道哪一个时间点,需要何种产出物,而我们有多少的预算可以完成。为有效控制,我们需要一个标准的流程,只要照着规矩走,一切都好办。

  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对上述五大项功能的支持应该算是最为丰富。如在J2EE 的设计模式(Design Pattern)中,几乎都是为解决此几项问题而设计,之后再配合程序语言本身的强固性,开发而成的企业级应用系统,我想应可满足客户对于QoS的严格要求。

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

专业技术认证可供参考

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

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

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

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

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

转自:http://kjyang.bokee.com/3811807.html
分享到:
评论

相关推荐

    浅谈计算机软件开发中JAVA编程语言的应用.zip

    Java编程语言在计算机软件开发中的应用广泛且深入,它的跨平台特性、稳定性和高效性使其成为业界的首选语言之一。本文将围绕Java在软件开发中的关键应用领域进行深入探讨。 一、Java的跨平台特性 Java的核心理念是...

    浅谈软件测试的测试流程

    【软件测试的测试流程】 软件测试是确保软件质量的关键步骤,其流程涵盖了项目的各个阶段,以确保产品的稳定性和...有效的测试流程能确保软件产品的稳定性和用户满意度,降低发布后的风险,是软件开发中的关键环节。

    java软件工程师面试常见问题

    1. **基础语法与数据类型**:Java的基础包括变量、数据类型(如整型、浮点型、字符型和布尔型)、运算符、流程控制(if、switch、for、while)、数组以及字符串操作。理解这些基本概念是面试的起点。 2. **面向对象...

    浅谈Java手机应用开发课程建设.pdf

    在教学方法和手段中,我们充分利用学校教学资源,使用多种教学方法,包括软件开发流程的项目教学,学生边开发软件边学习技术,让学生体会程序员的工作过程,提高学生对工作岗位的认识。此外,我们还设计并创新教学...

    浅谈Java软件测试.zip

    Java软件测试是软件开发过程中的重要环节,它确保了产品的质量和可靠性。在本文中,我们将深入探讨Java软件测试的关键概念、方法以及最佳实践。 一、Java软件测试的重要性 Java作为广泛应用的编程语言,其软件质量...

    软件开发毕业论文题目汇编.docx

    31. 基于Java编程语言的计算机软件开发讨论:讨论Java语言在软件开发中的优势和挑战。 32. 排空线驰度计算软件开发:开发用于电力线路设计的计算软件。 33. 软件开发中软件质量控制和定量评估的研究:研究软件质量...

    谈java图像处理技术

    ### 谈Java图像处理技术 #### Java 2D中的图像处理模型 Java 2D是一种用于绘制图形、处理图像的技术框架,它为开发者提供了一系列高级API,使得图像处理变得更加简单高效。Java 2D中的图像处理模型主要采用即时...

    从Windows的角度看MacOSX上的软件开发兼谈跨平台开发的一些可行方向资料.pdf

    【标题】: "从Windows的角度看MacOSX上的软件开发兼谈跨平台开发的一些可行方向" 【描述】: 本文探讨了从Windows开发者视角转向MacOSX软件开发所需的知识和技巧,同时也涉及跨平台开发的策略。 【标签】: 网络文档...

    41-谈一谈java代码审计1

    Java代码审计是确保软件安全的重要环节,特别是在使用广泛且功能强大的Java编程语言时。Java因其面向对象、跨平台和多线程的特性成为...开发者和安全工程师应共同努力,提高代码的安全性和整个软件开发过程的健壮性。

    浅谈JNI技术在嵌入式软件开发中的应用-信息技术教学论文.doc

    总的来说,JNI技术在嵌入式软件开发中提供了一个桥梁,让Java应用能够利用本地代码的优势,解决了Java性能瓶颈的问题,同时也保持了Java的跨平台性和易维护性。尽管使用JNI可能增加代码的复杂性和维护难度,但在性能...

    java 开源电子商务框架开发大全

    Java开源电子商务框架开发是当前互联网行业中一个重要的领域,尤其是在企业级应用中,Java技术因其稳定性和安全性备受青睐。本文将围绕"Java 开源电子商务框架开发大全"这一主题,结合提供的文件资源,深入探讨OFBIZ...

    老篇常谈-Java学习从入门到精通.doc

    ### Java学习从入门到精通——关键知识点解析 #### 一、工具篇 ##### 1. JDK (Java Development Kit) **概述**: - **定义**:JDK是Java开发的核心工具包,包含了Java运行环境(Java Runtime Environment, JRE)...

    浅谈SHAPE文件转换到CAD文件的方法.pdf

    文章提到了具体的转换流程,例如,将二维点文件转换为CAD文件的过程中,会涉及读取主文件头结构、组织记录头和记录内容,并最终将转换后的数据输出为CAD格式。 文档中还包含了文件结构的详细描述,例如主文件头结构...

    Mastering Microservices with Java

    微服务作为目前软件开发领域的一个热门趋势,它与传统单体应用架构相对立,旨在通过一系列小型、独立且可自主部署的服务来构建复杂的系统。 在微服务架构中,每个服务都运行在自己的进程中,并且通常是通过轻量级的...

    浅谈基于Java的异常处理机制.pdf

    异常处理不仅仅是一个技术工具,它还体现了软件开发中的一种设计理念,即预见可能发生的错误,并为这些错误提供一种可预测的、结构化的响应机制。通过异常处理,开发人员能够更好地控制程序的执行流程,提高程序的...

    浅谈《Java程序设计》在民族类高校中的教学改革与实践.pdf

    Java是一种广泛应用于软件开发领域的编程语言,以其跨平台、可移植性强、代码可重用性和安全性高等特点,成为当前最流行的计算机编程语言之一。Java语言可以运行在几乎所有电子设备上,包括计算机、电话、智能手机、...

    浅谈项目教学法在JAVA语言教学中的应用.pdf

    (3)课程设计阶段:此阶段要求学生在教师指导下完成完整的项目建模和编程实践,强调学生对软件开发流程的理解,并在实践中培养问题解决和团队协作能力。 5. 教学法实施时的注意事项 为了确保教学效果,项目的选择...

    课程设计:谈PSP的JAVA程序课程设计评价模式.pdf

    教学计划设计问题包括软件工程课程安排在程序设计类课程之后,学生对软件开发流程没有整体概念,无从下手。 WWH 模型的应用 为了解决学生的学习态度问题,教师对不同层次的学生进行调查,原因主要为:课程为考察课...

Global site tag (gtag.js) - Google Analytics