用JAVA做软件的大概流程要怎么样,感觉自己无从下手,比如老师给你个课题叫你做。
1个回答
展开全部
敲了1个小时,草草的敲完啦,会有些地方没考虑到,或者语言不通顺,欢迎敲砖斧正啊。
个人的见解:
老师给的课题基本上是不大需要关注需求的变更,这跟实际开发中的差别还是蛮大的,实际的开发过程中,我们通常都采用原型、增量开发,不断跟客户沟通调研确认需求,系统也跟着不断的迭代更新,有点敏捷开发的思路。在这边就当作你的需求已经基本确认,关注的是设计跟开发。就比如老师的一个课题:
首先,拿到课题后,把系统模块化。哪些是基础模块(比如组织架构、权限、登录机制等等),哪些是独立模块,哪些是基于基础模块的后续工作(比如报表、决策支持)等等都分析开来。并做好总体的任务计划。
再者,就是要把系统各个模块的功能点做下大致的分析,要做到什么程度。就比如同样是“查询功能”,是否支持组合查询?是否支持记忆联想查询?还是就普通的select查询等等。同样的一个功能,仅仅只是能用,跟能让用户用起来爱不释手,那花费的时间可就大大的不一样了。根据自己时间的多少来确定各个功能点要做到什么程度,对各项制定的任务做好分解。
第三,根据系统本身的特点选择应用服务器、中间件框架、数据库。估计在学校童鞋们都会用tomcat应用服务器,架构模式基本上是mvc吧。表现层用struts2还是JSF,持久化层是用ibatis还是hibernate又或者自己封装jdbc,是否需要用到spring或者一些重量级别的框架。还是什么框架都不用,自己纯手工打造等等,各种方式都有各自的优缺点,这些都是你现在就要确定下来的。
第四,总体计划、需求深度、系统架构都确定下来后,开始按计划设计开发。设计开发个人用过以下两种开发方式。
(1)、先设计数据库,而后在数据库基础上开发。比如基础模块中的权限,根据事先确定好的需求,有可能我就要人员表、角色表、资源表、ACL表等等,以及各个表的字段主外键等。接下来就是编码,从持久化层到业务层到Action层再到jsp页面展示,或者反过来从jsp页面展示写到持久化层都行。个人习惯从持久化到jsp页面展示,因为这样可以便于单元测试。当然在刚开始我们并不能那么准确的把所有数据库表结构都设计出来,随着后续的开发过程中,会不断发现之前的设计存在着这样那样的不足或者不合理的地方,这些都要在返回去对表结构再完善。原先的代码,设计的接口也是如此,需要不断的重构。
(2)、纯面向对象编码,黑盒了关系数据库。面向对象大家都在提倡,可按着原来的开发方式,貌似也不过OO,个人借用hibernate强大的功能来OO一下。于是如上的权限模块,分析方式应该要改变一下,我们的着重点不在于数据库的设计,而是抽取系统中各个实体对象,以及他们之间的关系,采用UML建模方法来建模(不怎么复杂的业务个人建议不用建模工具,草草的在纸上画画即可)。大概的思路清晰后,借用hibernate以及myeclipse工具可以轻松的将这些实体对象以及他们之间的关系映射到数据库中,后面我们的编码只跟对象打交道,跟数据库几乎没任何关系。当然,这种开发方式的代价是比较高的,前提是你有驾驭hibernate的能力。
第五,测试方面,基本上边开发边测试,后面来个总体的功能测试,有必要的话用LR再来个性能测试(老师的课题就没什么必要了,也没那条件)。
第六,在总体计划上圈里程碑,还有毕竟是自己一个人吗,只能自己监督自己的项目进度了。
最后,非常重要的一点,建立自己的知识库。把开发过程中遇到的问题、各种技术点、或者各种好用的东东做成一个个demo,分门别类的整理清楚,不断的积累,以后你会发现这是一个宝库啊。网上有类似的知识库工具,或者自己开发一套,很不错哦。
个人的见解:
老师给的课题基本上是不大需要关注需求的变更,这跟实际开发中的差别还是蛮大的,实际的开发过程中,我们通常都采用原型、增量开发,不断跟客户沟通调研确认需求,系统也跟着不断的迭代更新,有点敏捷开发的思路。在这边就当作你的需求已经基本确认,关注的是设计跟开发。就比如老师的一个课题:
首先,拿到课题后,把系统模块化。哪些是基础模块(比如组织架构、权限、登录机制等等),哪些是独立模块,哪些是基于基础模块的后续工作(比如报表、决策支持)等等都分析开来。并做好总体的任务计划。
再者,就是要把系统各个模块的功能点做下大致的分析,要做到什么程度。就比如同样是“查询功能”,是否支持组合查询?是否支持记忆联想查询?还是就普通的select查询等等。同样的一个功能,仅仅只是能用,跟能让用户用起来爱不释手,那花费的时间可就大大的不一样了。根据自己时间的多少来确定各个功能点要做到什么程度,对各项制定的任务做好分解。
第三,根据系统本身的特点选择应用服务器、中间件框架、数据库。估计在学校童鞋们都会用tomcat应用服务器,架构模式基本上是mvc吧。表现层用struts2还是JSF,持久化层是用ibatis还是hibernate又或者自己封装jdbc,是否需要用到spring或者一些重量级别的框架。还是什么框架都不用,自己纯手工打造等等,各种方式都有各自的优缺点,这些都是你现在就要确定下来的。
第四,总体计划、需求深度、系统架构都确定下来后,开始按计划设计开发。设计开发个人用过以下两种开发方式。
(1)、先设计数据库,而后在数据库基础上开发。比如基础模块中的权限,根据事先确定好的需求,有可能我就要人员表、角色表、资源表、ACL表等等,以及各个表的字段主外键等。接下来就是编码,从持久化层到业务层到Action层再到jsp页面展示,或者反过来从jsp页面展示写到持久化层都行。个人习惯从持久化到jsp页面展示,因为这样可以便于单元测试。当然在刚开始我们并不能那么准确的把所有数据库表结构都设计出来,随着后续的开发过程中,会不断发现之前的设计存在着这样那样的不足或者不合理的地方,这些都要在返回去对表结构再完善。原先的代码,设计的接口也是如此,需要不断的重构。
(2)、纯面向对象编码,黑盒了关系数据库。面向对象大家都在提倡,可按着原来的开发方式,貌似也不过OO,个人借用hibernate强大的功能来OO一下。于是如上的权限模块,分析方式应该要改变一下,我们的着重点不在于数据库的设计,而是抽取系统中各个实体对象,以及他们之间的关系,采用UML建模方法来建模(不怎么复杂的业务个人建议不用建模工具,草草的在纸上画画即可)。大概的思路清晰后,借用hibernate以及myeclipse工具可以轻松的将这些实体对象以及他们之间的关系映射到数据库中,后面我们的编码只跟对象打交道,跟数据库几乎没任何关系。当然,这种开发方式的代价是比较高的,前提是你有驾驭hibernate的能力。
第五,测试方面,基本上边开发边测试,后面来个总体的功能测试,有必要的话用LR再来个性能测试(老师的课题就没什么必要了,也没那条件)。
第六,在总体计划上圈里程碑,还有毕竟是自己一个人吗,只能自己监督自己的项目进度了。
最后,非常重要的一点,建立自己的知识库。把开发过程中遇到的问题、各种技术点、或者各种好用的东东做成一个个demo,分门别类的整理清楚,不断的积累,以后你会发现这是一个宝库啊。网上有类似的知识库工具,或者自己开发一套,很不错哦。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询