1.项目启动
项目启动的目标是明确该产品开发项目的目标。目标不是孤立存在的,目标与计划相辅相成,目标指导计划,计划的有效性影响着目标的达成。
2.用户需求
软件开始开发前需要确定代价和所获得价值的对比,也一旦确定需要创建,就需要安排一系列的资源来支撑这个软件的生存。这是需求的最原始描述。为什么既要有用户需求,也要有产品需求?因为两者是有差异的,用户需求由用户提出,对技术一般不描述,只描述产品目标。产品需求是根据用户需求转化而来的技术实现需求,需要针对用户提出的产品目标进行细分,总结出具体的每一个功能点,再针对每一个功能点细分为各种不同的操作流程,对每一个操作流程进行技术化定义。
3.产品需求
我们需要弄清楚产品经理或项目需求提出者为什么要做这个项目?这是最本质的业务需求。需求分析确定的业务需求,都是从业务需求推导出来的,都必须为业务需求服务。
产品需求写完后,需要进行评审。技术方案评审通过后,确认工作量和交付时间,反馈给产品。
4.总体设计
设计阶段的目标主要是对待开发系统的构架进行分析和设计,并建立系统构架的基线,以便为之后的实施工作提供一个稳定的基础。设计阶段包括了系统架构的输出,一个好的系统架构设计可以帮助人类梳理业务逻辑且抓住核心需求,设计稳定可扩展的业务系统,评估业务开发周期和开发成本,有效的规避风险。
概要设计的目的是描述系统的每个模块的内部设计,对总体设计和详细设计承担承上启下的作用。概要设计按照结构化设计方法进行设计。结构化设计方法的基本思路是:按照问题域,将软件逐级细化,分解为不必再分解的的模块,每个模块完成一定的功能,为一个或多个父模块服务,也接受一个或多个子模块的服务。模块的概念,和编程语言中的子程序或函数是对应的。
详细设计阶段就是依据概要设计阶段的分解,设计每个模块内的算法、流程,为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。
详细设计这个阶段,各个模块可以分给不同的人去并行设计。设计者的工作对象是一个模块,根据概要设计赋予的局部任务和对外接口,设计并表达出模块的算法、流程、状态转换等内容。这里要注意,如果发现有结构调整(如分解出子模块等)的必要,必须返回到概要设计阶段,将调整反应到概要设计文档中,而不 能就地解决,不打招呼。详细设计文档最重要的部分是模块的流程图、状态图、局部变量及相应的文字说明等。一个模块对应一篇详细设计文档。
5.编写代码
编写代码可以遵循以下几点原则:
(1)先做核心模块的压测
(2)确保过程可控:代码执行时一定要保持中间的输出
(3)简单易懂的逻辑:千万不要把自己绕进去了,时间一长,谁都看不明白你的逻辑。如果逻辑真的很难在一个函数内完成,尝试切分。
(4)不要沉迷于框架:框架最大的问题是什么?是过于繁冗的嵌套。
(5)使用熟悉、成熟的技术:使用新技术前,建议全面了解该技术的特征,适用范围,以及不适用的范围。
6.代码审核
众所周知,在团队中进行代码审查可以提升代码质量,分享项目知识、明确责任,最终达到构建更好的软件、更好的团队。
7.单元测试
单元测试是一种白盒测试,就是必须要对单元的代码细节很清楚才能做的测试。所以,单元测试的编写和执行都是由软件工程师来做的。相对于单元测试,还有集成测试。集成测试基本都是黑盒测试,主要是由测试人员根据软件的功能手册来进行测试,需要有专门的测试环境配合。集成测试又分功能测试、回归测试等。
8.集成测试
集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。一些局部反映不出来的问题,在全局上很可能暴露出来。
9.系统测试
系统测试阶段包括系统测试方案及用例编写、功能性测试、性能测试、稳定性测试。
为了验证需求分析确定的功能是否齐全并被正确实现,同时还要对安装、部署、适应性、安全性、界面等非功能性需求进行测试。系统测试也有测试人员负责,应该在需求分析完成后进行设计,在集成测试完成后进行实施。
10.稳定性测试(亦可称可靠性测试)通过给系统加载一定的业务压力,让系统持续运行一段时间(一般为 7x24 小时),检测系统是否能够稳定运行。
11.产品发布
产品发布是系统测试结束后的最后一步,通常在软件产品开发过程中不需要产品试制环节,可以直接上线,只需要系统测试员输出系统测试报告并批准产品发布就可以了。
学好软件产品设计需要用到什么软件
.
1.CAD-二维制图
★★★★★
概念:Computer Aided Design,指利用计算机及其图形设备帮助设计人员进行设计工作。
功能:产品的三视图、细节图、剖视图、零件图等二维图形的绘制软件。
重要性:交给工厂的生产图,就是通过CAD软件来绘制的,其重要性足以可见。交予生产的图纸不能出现任何差错,包括每个细节尺寸的标注、生产方式等等都需要标得非常具体。
2.PS-平面排版
★★★★☆
概念:Adobe Photoshop,简称“PS”,是由Adobe Systems开发和发行的图像处理软件。
功能:Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地进行图片编辑工作。ps有很多功能,在图像、图形、文字、视频、出版等各方面都有涉及。
重要性:PS是重要的平面设计软件,在产品设计中也同样很重要,主要运用在后期产品效果图的调整以及产品的介绍。一般而言,产品设计师都会具有一定的平面设计能力。
3.AI-平面排版
★★★☆☆
概念:Adobe illustrator是一种应用于出版、多媒体和在线图像的工业标准矢量插画的软件。
功能:作为一款非常好的矢量图形处理工具,Adobe Illustrator广泛应用于印刷出版、海报书籍排版、专业插画、多媒体图像处理和互联网页面的制作等,也可以为线稿提供较高的精度和控制,适合生产任何小型设计到大型的复杂项目。
重要性:和PS类似的一门平面设计软件,基于的理论不一样而已。主要运用在后期产品效果图的调整以及产品的介绍。VI及LOGO设计的专业软件。
4.犀牛-建模
★★★★☆
概念:犀牛软件(Rhinoceros)是一个功能强大的高级建模软件;一款基于NURBS为主三维建模软件。
功能:Rhino是以集百家之长为一体的发展理念,它拥有NURBS的优秀建模方式,也有网格建模插件T-Spline,使建模方式有了更多的选择,从而能创建出更逼真、生动的造型。
重要性:优秀的曲面绘制功能,产品建模常用的软件。添加渲染插件后,能得到优质的产品效果图。
5.SolidWorks-建模
★★★★☆
概念:SolidWorks软件是世界上第一个基于Windows开发的三维CAD系统。
功能:在强大的设计功能和易学易用的操作协同下,使用SolidWorks ,整个产品设计是可百分之百可编辑的,零件设计、装配设计和工程图之间的是全相关的。
重要性:SolidWorks 能够提供不同的设计方案、减少设计过程中的错误以及提高产品质量。SolidWorks 不仅提供如此强大的功能,而且对每个工程师和设计者来说,操作简单方便、易学易用。
6.3dsmax-建模+渲染
★★★☆☆
概念:3ds MAX,是Discreet公司开发的基于PC系统的三维动画渲染和制作软件。
功能:3ds Max 2012拥有先进的渲染和仿真功能、更强大的绘图、纹理和建模工具集以及更流畅的多应用工作流。
重要性:在建模方面没有上面两种软件便捷,但在渲染上往往能达到非常逼真的效果。室内设计的效果图就出自此软件。
7.sketch up-建模
★★☆☆☆
概念:sketchUp又名“草图大师”, 是一款可供您用于创建、共享和展示 3D 模型的软件。不同于3dsmax,它是平面建模。
功能:在sketchup中建立三维模型就像我们使用铅笔在图纸上作图一般,sketchup本身能自动识别你的这些线条,加以自动捕捉。它的建模流程简单明了,就是画线成面,而后挤压成型,这也是建筑建模最常用的方法。
重要性:sketchup是建筑设计常用的软件,拿到产品设计上的话,它适合建一些比较简易的直棱直角的模型。正如草图大师其名,它能在非常短时间里被掌握的,并快速勾勒出当时的某个想法。
8.InDesign-排版
★★☆☆☆
概念:AdobeInDesign是一个全新的,宣告针对艺术排版的程序,提供给图像设计师、产品包装师和印前专家。
功能:InDesign内含数百个提升到一个新层次的特性,涵盖创意、精度、控制在当今的诸多排版软件所不具备的特性。
重要性:快速排版,非常专业的书本制作软件。
软件的学习关键得靠自学。以上软件建议大家买些图文结合并配有讲说视频的书来对照着学习。
总有想学设计的新手向我问该学哪些软件的问题。我把我接触比较多的软件整理成了此篇文章。
因为各个软件的偏重点不一样,我不能告诉你说,每类就掌握一种就行,而是去熟悉各个软件的优缺点,在设计不同东西的时候找到相对应最快捷的制作软件。
就我而言,非常简易(直棱直角、简单圆弧等)的产品的建模我通常用的是sketchup,涉及到比较复杂的弧度时,就得选择犀牛。给犀牛加渲染插件后就能渲染单件产品,但是如果要将其放在一个大环境下,就得用3DsMax来渲染了。在产品效果图调整和说明排版常用的是PS,但是有的时候PS有些局限,就得用AI来做一些比较有设计感的图形。indesign是专业的排书软件,我常用来制作自己的作品集。