开发一个软件时,我们需要为用户考虐,那么用户在哪?怎样定义典型用户呢?我们要首先定义用户的角色,用户有不同的需求,那么就要定义不同的角色来适应这些角色。对于小组开发的记账软件,典型用户包括以下内容:1、名字2、年龄3、收入4、代表的用户(当代大学生)在市场上的比例和重要性5、使用这个软件的典型场景:一天结束后,将这一天的收入支出计入记账本内或者刚刚支出收入后进行记账。6、使用本软件的环境8、知识层次能力:大学生层次9、用户的目的、动机和困难:进行财务的管理10、用户的偏好。软件不是为所有人服务的,而是对于特定的一类人服务的。
有了典型用户后,我们得对于用户的目标列出达到目标所必须经历的过程,即场景。针对每一个场景,设计一个场景入口,接着描述典型用户在这个场景中所处的内部和外部环境,然后给场景划分优先级,按优先级排序写场景。有了场景后有架构设计师和各模块的负责人一起,沿着子系统、模块的所属关系把场景划分开。
用户安装软件后,软件第一次启动,应该给用户一个怎样的第一印象呢?给用户以好的印象,那么就要从用户的角度考虑问题,理解用户使用软件的处境,心理和动机。在我们小组开发中,有一些功能操作显得比较繁琐,不够直观,这就影响了用户的体验。
软件测试,按测试的方法分类可分为黑箱和白箱。黑箱指的是在设计测试中,把软件系统当做一个黑箱,无法了解或使用系统的内部结构开发及知识。白箱指的是在设计测试过程中,设计者可以看到软件系统的内部结构,并使用软件的内部和知识来选择测试数据及具体的测试方法。软件测试有各种测试方法:单元测试、代码覆盖率测试、构建验证测试等。
最后需要我们在软件产品的生命周期中管理需求。在软件的生命周期中,需求在发生变化,技术在发展,团队成员的能力也在提高。原来认为重要的事情可能不再重要,有些功能原来技术上很难实现,现在出现了捷径,一些相关的法规会发生变化,外部的合作伙伴突然发生变化,这些都要求我们不断对需求进行重新审核并做出相应的调整。
关于需求的分类,有这样几种分类方法。首先是对产品功能性的需求:要求产品必须实现某些功能。其次是对产品开发过程的需求:要求软件的开发流程必须满足某些约束条件,然后是非功能性需求:这也叫“服务质量需求”。最后是综合需求,有些需求并不是单单一个软件模块就能满足,例如,“购物网站必须在24小时内把货物发送到用户手中”,这个需求牵涉到软件系统、货物派送系统、送货部门、监控系统等不同部门的功能和执行能力。