3.3.1软件需求分析与定义
软件需求是一个为解决特定问题而必须由披开发或被修改的软件展示的特性。这个
问题可能是使用软件的某人的任务中的一个自动化部分,或是支持委托开发软件的组织
的业务流程,或修正当前软件的缺点,或是控制一个设备等。用户、业务流程和设备的
功能通常根复杂,因此,特定软件的需求在外延上通常是来自一个组织不同层次的不同
人员的需求和来自软件将要在其中运行的环境的需求的复杂组合。
所有软件需求的一个基本特性就是可验证性。验证某些软件需求可能很困难或者成
本很高。软件需求和软件质保人员都必须保证,在现有的资源约束下,需求可以被验证。
除了其表达的行为特性外,需求还有其他特性,如优先级,以便在资源有限时进行
权衡。通常,要唯一地标识软件需求,才能在整个软件生命周期中,进行软件配置控制
和管理。
需求分析涉及分析需求的过程,其目的如下。
(1)检测和解决需求之间的冲突。
(2)发现软件的边界,以及软件与其环境如何交互。
(3)详细描述系统需求,以导出软件需求。
描述需求时必须仔细,应该精确到能确认需求,验证需求的实现,估算需求的成本。
开发真实世界问题的模型是软件需求分析的关键,模型的目的是帮助理解问题,而
不是启动方案的设计。因此,概念模型由来自问题域的实体模型组成,实体模型反映了
它们在真实世界的联系和依赖。可以开发的模型包括数据和控制流、状态模型、事件追
踪、用户交互、对象模型、数据模型,以及其他模型。
架构设计是需求过程与软件或系统设计重叠进行的,将二者截然分开是不可能的。
其工作是需求分配,即将满足需求的职责分配到组件上。
需求协商的另一个普遍使用的术语是“解决冲突”。这涉及需求冲突的问题,冲突
发生在两个不兼容的需求之间,或者发生在需求与资源之间,或者在功能与非功能需求
之间。
各省软考办 | ||||||||||