打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
浅析软件开发的4个层次

  个人认为,目前一个成熟的面向企业应用的软件开发组织,如果想很好的完成一个系统,必须包含以下几项要素:1、项目管理;2、软件工程;3、框架;4、合理的编程语言。而一个IT人才要想在此行业有所发展,则需要反向发展,由编程语言学起,直到可以对一个大型项目进行项目管理。

  一、项目管理

  本人所在公司的IT部门已经成立11年了,可项目管理方面做的依然十分薄弱。但毫无疑问,项目管理的好坏在很大程度上左右的项目的成功与否。没有很好的项目管理,会导致项目出现很多状况,下面举几个例子:

  1、沟通不足

  我曾见过很多新进员工头一次给用户打电话时颤抖的双手,这从一定程度上说明了程序员天生的内向性格,但也说明了很多软件组织面临的问题,即程序员的沟通能力普遍偏低。在自己老板和客户的双重压力下,很多必要的沟通都不能及时进行,以至于在项目进行中总是出现各种不愉快的事情。

  2、责任不明确

  当项目出现延期或其他状况时,应该由谁负责呢?这是个十分重要的问题。但项目管理没有做好的话,责任就变得模糊不清。例如测试问题,用户只期盼结果,但殊不知这个结果必须由他们仔细验收才行。在沟通不足的情况下,如果不能很好的要求用户配合测试,结果可想而知。程序员催着用户赶快测试,而用户却推脱没有时间的情况比比皆是。

  3、进度难以控制

  面对需求的不断变更,程序员的懒惰,技术难题甚至各种人员的离职,你是否已经做好了各种应对准备?如果没有很好的进度管理,这些都会使你手忙脚乱,痛苦不堪。最重要的是,最终无法达成交期,造成项目失败。

  当然还有很多状况,在这里不做一一说明。总之,项目管理对于整个软件项目来说至关重要。

  二、软件工程

  在这里谈谈以面向对象为指导思想的软件工程。我曾经在Oracle ERP开发团队呆过一段时间,那是全套的面向过程的方法。而现在面向对象的思想如此火热,于是我坚定的站在了面向对象的阵营中。即采用用例来捕获需求,采用OOA来进行系统分析,采用OOD来进行系统设计,采用面向对象的语言进行开发。OOA的过程中,要懂得使用分析模式,而OOD的过程中要懂的设计模式。在不断的项目经验积累中灵活的运用这些知识,最终达到运用自如的境界。

  曾看过一位高人解释对面向对象的理解,感觉说的很好:UML是形,OO是神。如果要把面向对象的开发过程分几层来划分的话,则最高层就是UML,第二层是OO,第三层是CMM。

 三、框架

  在这里,我鼓吹使用WCF+ORM+(Asp.Net/WinForm/WPF/Office Add-in)的框架模式。当然框架也是分层的,我现在采用的是5层模式:

  1、表示层

  运用Asp.Net、Winform、WPF等技术编写客户程序。但这里强调的是框架级的,即写好了各种自定义组件。

  2、业务层

  根据各个系统的业务逻辑,设计业务层。这里也是框架级的,有一定的模式可遵循。

  3、服务层

  一个企业组织可共用一个服务层,这个服务层通过WCF机制业务层通信。

  4、持久层

  用ORM工具搭建一个持久层(强烈支持ORM~~)。

  5、数据层

  各种对象映射出的表、以及表自身的各种存储过程。注意,这里不提倡写与业务有关的存储过程。

  如果一个有这样的一个成熟的框架,则对系统开发来说是事半功倍的。我所在公司近10年尚没有形成这样的一个框架,不知道其他软件开发组织的状况如何。

  四、编程语言

  我目前选用的的C#,当然如果开发WEB程序,还必须会CSS、HTML、JavaScript,在一个软件项目开发团队中,没有熟练的开发人员是不行的。至少要有一名是技术能手,可快速的开发并指导团队其他人员。而对于一个程序员来说,编程语言也是必须掌握的机能。我个人认为,一个程序员至少应精通一门语言、掌握另外一种语言。

  反过来讲,一名程序员只有从掌握编程语言做起,一步一个脚印才能做到项目经理这个位置。我的理解,经理以行政手段管理项目经理,项目经理以项目管理的手段管理项目(包括项目团队成员),分析师与架构师用软件工程的方法进行分析与设计,程序师用健壮优秀的语言并按照设计文档编写代码。这构成一个项目开发的完成层次关系。

推荐给好友    我要收藏    我要纠错    分享到
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
java软件开发学习路线
超经典程序设计类书籍大盘点
周立功又发新书了,看看是不是你感兴趣的
软件开发工具(第2章:软件开发过程及其组织)
软件工程
软件工程师基本工资 2 万!想要成为软件工程师,应该怎么做?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服