软件软件软件

学软件开发,王老师为您支招如何开发一个软件?

大家好!我是西安卓新思创移动互联网教育产业联盟的王老师,有多年的Android、Java、C++教学生涯。今天就针对软件开发的学习,我洋洋洒洒的说几句。

主要有这几步:

1、需求分析:相关系统分析员向用户初步了解需求,然后用相关的工具软件列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块。

2、概要设计:首先,开发者需要对软件系统进行概要设计,即系统设计

3、详细设计:描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。

4、编码:开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。

5、测试:测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能。

6、软件交付:

7、用户验收

8、维护

  近几年,软件开发是比较热门,而且他们的薪资也随着用人需求的供小于求而水涨船高。但学习软件开发不是一朝一夕的事,自己不能急于求成,否则到最后只会得不偿失。西安卓新思创移动互联网教育产业联盟的小编觉得所有初学者要学好JAVA或C或Android等任何一门计算机技术,一定要做到以下几点:
  学软件开发,王老师为您支招如何开发一个软件?(图1)
  动手,动脑,动嘴,静心。
  其中动手是最为重要的了。很多人学软件开发技术就是看书、听课,当时是明白了,过后马上就忘记。如果不愿意敲键盘,就不如不学。即使有时候所敲的代码你不明白,可以先运行,看看结果,增加感性认识,然后上升到理性的认识。特别是在大家做考题的时候,很多东西,概念,你只要随便敲一个程序做做实验就能很深刻的理解,但很多人都是不愿意动手,这样学习软件开发效率能高吗?
  动脑,动嘴, 就是要多想问题,多思考,有不懂的软件开发方面的问题就要大声说出来。初学者如果不动脑筋想问题,也就提不出问题。甚至还有部分初学者怕自己提出的问题傻,怕人笑话。其实IT行业技术面很广,工作了5、6年的人说出一些傻话来也是正常的。
  然后静心很重要。现在社会很浮躁,软件开发行业更浮躁,浮躁的心态是学不好任何东西的。我带过一群C++的学生,给他讲 C++基础,指针等,他们说太基础了,不愿学。要我讲高级点的,我就教他们WIN32,他们说就教MFC吧,我就带他们做一个小MFC程序,结果有些人连C++大小写要区分都不知道。学JAVA的学生很多让我讲EJB,说热门。我说你学会了基本的东西,EJB之类东西是很容易的,否则就是本末倒置。当然有些初学者情况特殊,急于工作,选择去学JSP,SERVLET,JDBC,这样也很容易找工作,但软件开发的基础最后还是要利用闲暇时间补的。
  软件开发中,有些概念不好理解怎么办?
  在授课的过程中,有学生说我就是不理解线程是怎么回事。我觉得理解是需要时间的,一下子不能理解,那就多看看,甚至多背几遍就理解了。读书千遍,其义自见,现在甚至将来都管用。而且我觉得初学的时候要不求甚解,多做,多敲代码。等你做的足够多的时候,见多识广的时候,概念,理论的东西就很容易理解了。
  我可以结合自己的Java教学经验,和大家聊聊软件开发的学习方法,希望对大家有所帮助,能少走些弯路。
  学软件开发,王老师为您支招如何开发一个软件?(图2)
  学习Java其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编 程思想。每一种语言的程序设计思想大同小异,只是一些由语言特性而造成了细微的差别。Java中的Interface,你几乎在以前的学习中没有碰到过。以下我仔细给你说几点 :
  1、我们必须明确一个大方向,也就是说现在面向对象的编程范畴。尽管人工智能曾经有所浪潮,但未来5-10年工业界广泛承认并接受的将是面向对象式的编程。
  2、工业界目前最流行的面向对象编程语言就是C++和Java,未来可能会加上Android,所以学软件开发基本上锁定这三个大方向就可以了,而且完全可以同时掌握。
  3、掌握Java的精华特性,而且一定要知道为什么。比如Interface和multi-thread,用 interface是更好的多继承的模型,而多线程则是设计到语言一级的重要特性。
  4、理解了语言的特性是为什么了之后,就可以试着上升到设计这个层次,毕竟学习语言是要用的。目前比较好的开发模式是采用自定向下的面向对象的设计,加上MVC的模式。首先要找出最顶层的对象,然后一层一层往下递归,记住每次应符合7+/-2的原则,因为我们人的短记忆就是这样。一般有图形用户界面的应从界面开始设计。
  5、有了基本设计模型后,可以学一些设计模式( Design Pattern )。这是目前证明很有效的。比如体系结构模式(Layering分层,Pipe/Filter管道或过滤器),设计模式(有很 多,比如对象池Object Pool、缓冲池Cache等),编程模式(比如Copy-on-Write)。懂了这些模式之后,就可以对系统的整体结构有很好的把握,而学术上也有倾向一个系统完全可以由各种模式组合而成 。前面提到的MT实际上就有好几种模式,掌握后就不用自己花很多时间去试了。另外一个很重要的领域就是并行和分布式计算领域,大概有20种左右。
  6、接下来的软件开发就不能纸上谈兵了,最好的方法其实是实训。一般教科书上的例子并不能算是实践,只能算是让你掌握语言特性用的。因此西安卓新思创移动互联网教育产业联盟的小编建议初学者可以选择做一些比较经典的实际项目,这样更有利于初学者融会贯通软件开发的“精髓”。
  7、通过参加实训,你可以理解讲师在课堂讲得很多经典例子,并且自己也可以对它进行进一步的修改,找出你觉得可以提高性能的地方。一个经典的例子,加上自己的设计,那就更上一个层次了,也会让你真正地感到有所收获。
  8、以上谈的好像偏离设定的轨道了,那我不妨多啰嗦几句。其实做软件开发,早就应该从单纯的学习语言升级到真正的学习好编程的领域。学习技术是没有止境的,你学习第一种语言可能要几个月时间,甚至更长时间,但以后学习每种语言都不会超过两个月,因为在软件开发的世界里,编程语言差不多都是互通的。
  9、学习软件开发是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。
  没有第10点了,因为没有任何一样东西都是十全十美的,只要过程中尽心尽力,结果无怨无悔就好。

未经允许不得转载:软件 » 学软件开发,王老师为您支招如何开发一个软件?