软件生命周期
Contents
需求分析
- 概念:确定系统必须具有的功能和性能,系统要求的运行环境,并且预测系统发展的前景。
需求的获取
- 概念:软件需求的来源,软件工程师收集这些软件需求的方法
- 包含
- 功能性需求:用户和其他系统完成的功能,提供的服务
- 非功能性需求:必须遵循的标准,外部界面的细节,实现的约束条件,质量属性等等。
- 来源:用户目标,领域知识,投资者,运行环境,组织环境
- 获取方式:采访,设定情景,原型,会议,观察商业过程和工作流
- 需求获取面临的挑战:
- 客户说不清需求
- 需求易变性:在系统设计时,将软件的核心建筑放在稳定的需求上。
- 问题的复杂度和对问题空间理解的不完备性与不一致性
- 需求诱导十原则:
- 倾听
- 有准备的沟通
- 需要有人推动
- 最好当面沟通
- 记录所有决定
- 保持同理协作
- 聚焦并协调话题
- 采用图形表示
- 继续前进原则
- 谈判双赢原则
需求确认
-
需求获取
-
需求提炼:对应用问题及环境的理解和分析,为问题涉及的信息,功能和系统行为建立分析模型,将用户需求精确化,完全化,最终形成下一步的需求规格说明书
-
需求描述(需求规格说明书):对待开发系统的行为的完整描述,包含了功能性需求和非功能性需求,完成的标志是形成一份完整规范的需求规格说明书。
-
需求验证:对需求文档进行检查:有效性检查,一致性检查,完备性检查,现实性检查
需求变更
需求分析的任务
建立分析模型:面向过程,面向对象
-
面向过程分析模型:用系统工程的思想和工程化的方法,根据用户至上的原则,自始自终按照结构化,模块化,自顶向下地对系统进行分析与设计。
- 采用结构化分析方法(面向数据流进行需求分析的方法),用抽象模型的概念,按照软件内部数据传递,变换的关系,自顶向下逐层分解,知道找到满足功能要求的左右可实现的软件为止。
-
面向对象分析模型:由5个层次(主题层,对象类层,结构层,属性层,服务层)和5个活动(标识对象类,标识结构,定义主题,定义属性,定义服务)组成。
-
编写需求说明:用《需求规格说明书》规范的额形式准确地表达用户的需求
IEEE标准对需求文档提出了以下结构:
- 引言(需求文档目的,文档约定,预期读者和阅读建议,产品范围,参考文献)
- 综合描述(产品前景,产品功能与优先级,用户特征,运行环境,设计与实现上的限制,假设与依赖性)
- 需求描述(功能需求,数据需求,性能需求,外部接口,设计约束,软件质量属性,其他需求)
- 附录(词汇表,分析模型,特定问题列表)
- 索引
系统设计
- 概要设计:描述软件顶层架构和组织,划分不同组件
- 详细设计:详细描述各组件以便能够编码实现
-
设计相关概念:
- 抽象
- 体系结构
- 设计模式
- 模块化
- 信息隐藏
- 功能独立
- 精化
- 重构
-
数据设计
-
架构设计
-
接口设计
-
组件设计
面向过程架构设计
变换型软件结构图
事务型软件结构图
混合型软件结构图