软件开发流程大同小异,从确认需求到开发输出,大致流程是:用户 -> 谈需求 -> 确认需求 -> 页面(模型)设计 -> 数据表结构制定 , 前端框架确定 ,后台框架确定 -> 按功能划分,制定软件开发计划 -> 测试 -> 维护

  (一)软件需求,是软件开发的基础和前提

  需求提出。用户对目标软件系统在功能、行为、性能、设计约束等方面的期望;准确理解用户的要求,撰写需求,将用户的非形式要求转化为完整的、形式的规格说明。
 

  1、需求描述

  1)功能,软件开发要用在什么行业?使用在什么场景?

  2)性能,软件功能在执行过程中的速度、可使用性、响应时间、各种软件功能的恢复时间、吞吐能力(容纳程度)、精度、频率等。

  3)强加给实现的设计限制,在效果、实现的语言、数据库的完整性、资源限制、操作环境等方面所要求的标准。

  4)属性,可移植性、正确性、可维护性及安全性等方面的考虑因素。

  5)外部接口,与人、硬件、其它软件和其它硬件的相互关系。
 

  2、需求类型

  业务需求,用户对系统的高层级的目标要求,技术、业务及市场三者结合才能体现最大价值;用户需求,用户使用产品必须要完成的任务和路径;功能需求,开发人员必须实现的软件功能,使得用户能完成他们的任务,满足业务需求;非功能需求,对系统提供的服务或者功能提出的约束,包括时间、软件开发过程、软件质量、标准等约束,例如异常出现概率小。
 

  3、需求评审

  需求人员与用户确定需求的过程中,要仔细体会与理解用户的每一个要求。对于用户的要求,需求人员需要对其加以梳理:哪些是合理的需求,哪些是不合理的需求,还有一些可能是必要的但用户没想到对的需求。同时,分层次评审,可以让不同类型的参与人员(高层的管理人员、具体的操作人员)分别评审他们关注的内容,从不同的角度找到需求的差异点,提高评审质量。
 

  (二) 页面(模型)设计
 

  1、黄金规则

  置用户于控制地位。不强迫用户进入不必要或不希望的交互模式;提供灵活的交互;允许用户交互被中断和撤销,其一是对破坏性操作的确认,其二是设置撤销功能;当技能级别增长时可以使交互流线化并允许定制交互;使用户与内部技术细节隔离。

  减少用户的记忆负担。减少对短期记忆的要求;建立有意义的缺省;定义直观的快捷方式;界面视觉布局应该基于真实世界的象征;以不断进展的方式揭示信息。

  保持界面一致。允许用户将当前任务放入有意义的环境中;在应用系统家族内保持一致性。
 

  2、用户界面的分析与设计

  用户模型。对系统所有终端用户的描述。

  设计模型。用户模型在设计中的实现。

  心理模型。用户在脑海里对界面产生的印象。

  实现模型。计算机系统的外在表现,要与市场调研相结合,既提倡外美内秀,又强调恰到好处。
 

  3、界面分析
 

软件开发解决方案

 

  用户分析

  了解用户;用户类型分析,比如用户平均正规教育水平如何;用户特性度量,比如用户使用的频度,用户对计算机的熟悉程度。

  任务分析和建模用户工作分析

  任务分配。第一,用户的任务:创造、判断、探索;其二,计算机的任务:重复检查、计算、数据处理;其三,两者混合任务:数据录入、数据恢复、决策支持。

  对象细化。一方面,通过对对象上面动作的评估,为设计师提供一个操作列表;另一方面,随着设计的不断细化,每个操作的细节都将被定义出来,比如家具模板Furniture类,包括size,shape,location属性,任务“选择”、“移动”、“拖曳”等操作。

  工作流分析。可以使软件工程师很好地理解在包含多个成员时,一个工作过程是如何完成的;可通过思维导图分析完成。

  层次分析。细化过程,比如请求重新填写处方的用户任务,开发后得到相应任务层。

  显示内容分析

  显示内容:数表图文;

  错误验证:检查是否所有必填的项目都已填充,数据输入是否正确;如果是错误的,出现3个结果:致命错误(致命错误:引起处理混乱的错误。此时用户要么重新输入一个正确的数据,要么退出输入。)、警告(警告:由很不可信的数据引起的错误,此时应停止处理并提示用户重新输入数据。)、建议(建议:由不大可信的数据引起的错误。此时,处理不必停止,但要发出一个警告信息,使得用户中止运行以便检查,或是在处理结束时进行检查。);

  皮肤:计算机软件或网站用户界面的外观;将功能与用户界面分离的社交和实现策略;通过更换皮肤,可在一定程度上页面个性化,包括颜色、形状、风格等因素。
 

  4、界面设计步骤

  第一,使用将前面分析中获得的信息,定义界面对象和行为;其二,定义那些导致用户界面状态发生变化的事件(用户动作),对这个行为建模;其三,描述每一个界面状态,就像最终用户实际看到的那样;最后,简要说明用户如何从界面提供的界面信息来解释系统状态。
 

  5、设计评估

  设计评估周期,如下图:

  (三) 开发

  数据表结构制定

  一般数据库选用MySQL,采取分布式和主从架构,按照业务不断细分,以冗余 、 拆分、细化为主线大体过程;

  前端框架确定

  前端开发的编程语言选择了html5+css3+JavaScript,采用最流行的VUE框架;

  后台框架确定

  后端开发的编程语言选择java,采用最流行的SSM框架,并引入了分布式可拓展的微服务。
 

  (四)按功能划分,制定开发计划
 

  (五)测试

  开发工程师测试程序的源代码;

  测试工程师测试软件功能、软件性能、兼容性等
 

  (六)维护

  软件产品本身:修正BUG、提升性能等等;

  服务器:定期做好基础的检查、维护工作,有效防止服务器故障引发的灾难;

  软件开发升级:原先的软件使用过程中,发现了许多存在的问题,这些问题有可能导致数据的不完整或者系统的崩盘等等,所以需要再进行升级,修正这些BUG。另外,也可以通过升级,增加或调整某些功能,使软件的通用性和可用性更大。