设计方案选择的基本思路
项目组面临两难选择时:首先用鱼和熊掌来识别矛盾的两个对立面:项目组用小鱼来比喻那些开发和维护代价较小,结构简单但是缺乏某些灵活性的设计方案,用熊掌来比喻那些灵活易扩展但是结构复杂,开发和维护成本较高的设计方案。在进行最终抉择的时候,项目组必须坚持如下准则:
在满足需求的情况下,尽量选择小于,而舍弃熊掌;只有在存在无可置疑的理由时,才选择熊掌作为设计方案
需求分析中的基本概念:
项目目标:微软解决方案框架把项目目标称为前景,强调项目目标必须简洁明了,并且能反应所有项目组成员对项目前景和产品发展的看法
FishiGUI的项目目标:本系统是一个图形用户界面的框架系统,主要为各种没有图形界面的嵌入式系统提供一个灵活便捷的图形界面开发环境,以使得应用系统开发组能用最快的速度开发出美观高效的图形界面应用程序,提高公司的软件开发效率和产品质量
FishiGUI项目范围:该项目的开发范围包括实现整个框架系统(不包括应用程序)以及将框架系统一直到不同操作系统上的所有工作
需求分析:
- 用户解决问题或达到目标所需的条件或者能力
- 系统或系统组件为满足合同,标准,规范或其他正式规定文档所需具有的条件或能力
- 一种反应上述两种条件或能力的文档描述
- 需求关注的是我们究竟想开发什么和必须开发什么,需求说明书也可以被看作是客户和项目组之间的一份合约
功能性需求和非功能性需求:功能性需求定义了系统的行为,也就是系统软硬件组件在由输入得到输出的过程中,对输入所做的基本的处理和转换;非功能性需求不是描述软件将做什么,而是描述软件如何(以何种性能或方式)完成这些功能,例如,软件性能需求,软件外接口需求,软件设计约束,等
软件项目的需求分析的一般步骤:
- 确定项目的目标和范围
- 根据项目的目标和范围分析出所有的项目干系人
- 提取出所有的非功能性需求
- 分析出所有的功能性需求,现在一般采用用例分析的方法进行
- 撰写项目的需求说明书
完美和缺陷的辩证关系:天下没有什么东西是完美无瑕的,片面的追求完美往往事得其反
只实现你真正需要的东西,不要去实现你认为需要的东西:因为软件的特定就是变化,在需求阶段,基于今天的实时做出预,往往无法反应几年后甚至几个月后的生态的发展情况