工作体会
1.关于效果图的存放
效果图文件夹命名,按功能命名,方面开发人员查找功能对应的效果图,按日期比较难找。
2.经常变动的导航
导航经常变动,建立导航可以存放到专门的文件夹,如有变动立即通知项目经理,项 目经理好安排人解决。
3.项目从立项核心。
项目从立项开始,要非常明确项目开发的目的和总体方向(定位)、总体思路、总体思想、架构、总体发展方向,坚持大的方向不可以变,后期需求要紧紧围绕当初立项思想,当然也不是一成不变,若市场有大的变化,我们的需要也要随市场略有变化。
软件整个过程
1.需求定位和计划
软件需求定位应该非常明确,并有计划一步一步推进软件需求,需求最好列出相对详细计划,如:软件前期准备做什么,到中期准备做什么,后期做什么,包括预留时间处理一些未知问题的时间等。当然这些都要紧紧围绕当初始软件设计理念,不可以盲目新增需求,尤其对核心部分的修改。所以说我们在软件开发之前,核心需求一定要出来,核心需求是当初立项的根本。不可改变,它若改变,则整个项目性质即发生改变了。
我们可以先将软件最重要功能开发出来,投放市场,然后一步一步完善,这可以降低风险和控制开发成本,以及更加确切软件的发展方面。核心功能开发完成后,可以开发一些增值功能,这样增值功能可以收费,以满足少部分人的需求,个人觉得互联网大部功能开发应该是免费的,尤其是一些公共的,通用的。因为国人喜欢免费的东西,如果你的产品一投放市场就开始收费,很难吸引用户使用我们的产品。所以我们做的第一步是吸引用户使用我的产品,然后对市场需求少的功能、高级功能、部分特殊的附加功能实行收费。这样才能使用户和我们产品融为一体,用户和我们产品的粘度更高。
2.功能扩展
软件功能一般是随需求变化而变化的,哪么软件架构师在对需求了解时,要对将来可能改变的功能设计时有一个良好的扩展性,以减少代码的修改。软件架构师也需求帮助产品工程师过滤掉一些不合理的需求(即功能),所以说需求出来之后,大家不要急于开发,而是大家共同讨论,看看需求的某些方面是否符合市场需要,需要是否合理,重要需求是否突出它的重要性,部分需要是否过只需要略微体现等。当经过这些讨论和反复的修改后,我们的需求也就确定了。
需求确定后,我们根据需求进行UI设计,UI设计也是非常重要的,UI设计关系用户体验,对UI设计之后,我们需要对设计后的UI进行讨论,修改再讨论。至此我们才进入开发,所以说在需要未确定,UI未要急于设计,UI未确定,不要急于开发,否则后面需要不断修改代码。
3.设计
1).一个项目最好有详细的需求文档,这样方面开发人员按需求开发,另外可以让后进来的同事通过需求更好的了解整个项目过程。
2).建议按模块针对复杂的逻辑的功能,一定要有流程图,流程图可以帮我们更好的理解需求。另外也需要一定的文字说明。时间长以后,我们可能忘记了,所以在后期的修改过程中我们可能看一看流程图一切都清楚了。
3).建议按模块针对每张UI图作相关的说明,如:开发要求,用户输入验证,逻辑一些页面较正的效果,这些最好每个页面统一。
4).数据库文档,当然它也十分关键,要有统一的命名等。数据库文档需要包括字段名、字段类型、字段大小、字段所代码的含义、以及其它解释。当数据库有变更时,一定要记得更改数据库文档。数据库有些逻辑可能较为复杂,这些逻辑最好在开发前数据库设计人员跟开发人员讲解一次,便于开发人员快速理解。
4.开发过程
在开发过程中,软件工程师要对需求有充分的了解,对开发出来的功能,一定要经过单元测试,集成测试。单元测试的测试员一定要非常了解需求,否则对很多可以测出来的BUG没有测出来,如:开发的功能是否合符需求。对开发过程中,实行如下管理,可能非常有利于项目管理,和软件质量的提升。明确开发责任、测试责任、确认测试责任,明确测试要求和标准。
5.功能完善
功能完善包括两部分,一是功能本身需要的不完善,二是功能有BUG,我们软件用户验收人员要定期对开发出来的软件进行用户验收测试,这样可以动态了解软件开发进展,和软件存在的一些质量,以及对后期开发提出要求。
软件事个过程中,一这要经过确认修复再确认,二明确各个环节责任人。这样才能保证软件质量。软件责任人不为了追究责任,是为了促进问题的解决,如果没有明确责任人,到时候可能大家都没有去管去做,最终结果可能又不一样了。最好细化需求和责任,以便问题的跟进和解决。
需求分析(是什么?做什么?)
设计(怎么做?)
概要设计
画面布局设计,画面迁移图,逻辑,ER,设计,架构设计,核心业务设计
详细设计
画面详细设计,物理,ER,设计,画面输入设计,业务检查,业务逻辑,(SQL)设计
编码
测试
单元测试(确认编码是否符合详细测试)
集成测试(确认详细设计是否正确)
系统测试(确认概要设计是否正确)
验收(确认需求分析是否正确)