【软考】系统架构设计师考试知识点(四)系统开发基础知识

主要学习系统开发的基础知识,包括软件开发方法的基本概念、需求管理、开发管理、设计方法、软件重用和逆向工程等相关知识

在这里插入图片描述

软件开发方法

1、软件开发生命周期

需求规格说明书
  • 系统名称
  • 功能描述
  • 接口
  • 基本数据结构
  • 性能
  • 开发标准
  • 验收原则
概要设计

定义功能模块及功能模块之间的关系

详细设计

研究模块内部

  • 算法与数据结构
  • 数据分布
  • 数据组织
  • 模块间信息接口
  • 用户界面等设计
测试
  • 单元测试
  • 集成测试
  • 确认测试
  • 系统测试

2、软件开发模型

瀑布模型

严格按照软件生命周期各阶段顺序执行

  • 有利于人员的组织管理,但明显存在使用缺陷:用户并不能了清晰定义及描述其需求、初始版本的呈现周期较长
原型模型

提前通过可视化的方式呈现需求

原型获取有三种途径

  • 利用模拟软件系统的人机界面和人机交互方式
  • 真正开发一个原型
  • 寻求一个或者几个类似的软件
螺旋模型

在快速原型的基础上扩展的,支持大型软件开发,适用于面向规格说明,面向过程和面向对象的软件开发方法

可分为多个周期开发,每个周期由4个阶段组成

  • 目标设定
  • 风险分析
  • 开发和有效性验证
  • 评审
基于四代技术的模型

侧重于支持软件的设计和是现阶段,并支持全过程,

其主要特征:

  • 非过程化语言:可通过生成器代替编程语言
  • 与数据库密切相关

3、敏捷方法

特点
  • 强调“适应性”,非“预设性”
  • 强调“面向人的”,非“面向过程的”
核心思想
  • 适应性
  • 以人为本
  • 迭代增量式的开发过程
主要内容

4个核心价值观

  • 沟通

设计者、开发者和客户之间

  • 简单

满足当前需求,代码简单化

  • 反馈
  • 勇气
    12条实践原则
  • 简单设计
  • 测试驱动
  • 代码重构
  • 结对编程
  • 持续集成
  • 现场客户
  • 发行版本小型化
  • 系统隐喻
  • 代码集体所有制
  • 规则策略
  • 规范代码
  • 40小时工作机制

4、RUP

9个核心工作流
  • 业务建模
  • 需求
  • 分析与设计
  • 实现
  • 测试
  • 部署
  • 配置与管理
  • 项目管理
  • 环境
4个阶段
  • 初始
  • 细化
  • 构造
  • 移交
特点:

用例驱动

  • 以体系结构为中心

    • 体系结构的设计与代码设计无关,并不依赖于程序语言
    • 迭代与增量
    • 体系结构层次的设计问题包括
      • 系统的总体组织
      • 全局控制
      • 通信协议
      • 同步
      • 数据存取
      • 给设计元素分配特定功能
      • 设计元素的组织
      • 物理分布
      • 系统的伸缩性
      • 性能
  • 4+1视图模型

    • 逻辑视图

      描述系统功能,最终用户关注

    • 实现试图

      描述系统配置、装配,程序员关注

    • 进程试图

      描述系统性能、吞吐,集成人员关注

    • 部署试图

      描述系统安装、托盘结构,系统工程师关注

    • 用例视图

      描述人机互动的系统行为,分析人员和测试人员关注

  • RUP是一个通用的过程模板,包括开发指南、开发过程产物及过程中的角色说明,可用于各类项目,因体系庞大,需要针对具体实例进行适当裁剪

裁剪步骤

  • 确定开发过程设计的工作流
  • 确定工作流的产出
  • 确定4个阶段间的演进
  • 确定每个阶段的迭代计划
  • 规划工作流内部结构(难点)

5、软件系统工具

衡量因素
  • 功能
  • 易用性
  • 稳健性
  • 硬件要求
  • 性能
  • 服务
  • 支持
工具包含
  • 需求分析工具
  • 设计工具
  • 编码与排错工具
  • 测试工具
软件工具
  • 需求分析工具
    基于自然语言或图形描述工具
    基于形式化需求定义语言的工具
    其他需求分析工具
  • 设计工具(设计规范)
    概要设计规范
    详细设计规范
  • 编码与排错工具
    • 编码工具
      • 编辑程序
      • 汇编程序
      • 编译程序
      • 生成程序
    • 排错工具
  • 软件维护工具
    • 版本控制工具
    • 文档分析工具
    • 开发信息库工具
  • 逆向工程工具

反编译工具的使用属于逆向工程的范畴

  • 再工程工具

目前的工具主要集中在代码重构、程序结构重构、数据结构重构等方面

  • 软件管理和软件支持工具
    • 项目管理工具
    • 配置管理工具
    • 软件评价工具
      如Mc-Cabe可以对环路复杂度进行度量

需求管理

1、需求管理原则

CMM模型第二级关键过程域增减需求管理的内容,目标是

  • 为软件需求建立基线
  • 软件计划、产品和活动与软件需求保持一致

2、需求规格说明的版本控制

  • 变更内容
  • 日期
  • 变更人员
  • 变更原因

3、需求属性

  • 创建时间
  • 版本号
  • 创建人
  • 批准人
  • 状态
  • 原因和依据
  • 涉及子系统
  • 涉及产品版本号
  • 验收/接受的标准
  • 优先级
  • 稳定性

4、需求变更

为严格控制软件项目,需要确保

  • 评估已提出的变更
  • 适当的人选评估和决策变更
  • 变更应及时通知所有人
  • 需求变更需要遵循一定的程序

需求变更管理的目的是将变更产生的负面影响降到最低

  • 问题分析和变更描述
  • 变更分析和成本计算
  • 变更实现

需求变更应遵循的原则

  • 必须遵循变更控制程序
  • 变更未经批准不得实施
  • 变更应有变更控制委员会进行评估和决策
  • 项目干系人有权获悉变更信息
  • 变更库中原始文档不得更改或者删除
  • 变更实施均应可追溯到已获批的变更请求

变更控制委员会的总则/章程

  • 目的
  • 授权范围
  • 成员构成
  • 决策流程
  • 操作步骤

5、需求跟踪

需求跟踪链 traceability link

  • 客户需求向前追溯到软件需求(需求变更更新至需求规格说明书中)
  • 从软件需求回溯相应的客户需求(确认每个需求的源头)
  • 从软件需求向前追溯到下一级工工作产品(逐步确保最终产品满足需求)
  • 从产品部件回溯到软件需求(验证部件来源)

6、需求变更的代价和风险

变更只能在项目时间、预算、资源等限制允许范围内进行协商
进行影响分析的能力依赖于跟踪能力、数据的质量和完整性

开发管理

1、项目的范围、时间、成本

范围

  • 项目章程(初始的范围说明书)
  • 项目范围管理计划
  • 组织过程资产(过程性成果)
  • 批准的变更申请

时间管理

  • 活动定义(WBS)
  • 活动排序
  • 活动资源估算
  • 活动历时估算
  • 指定进度计划

2、配置管理、文本管理

3、软件开发的质量和风险

设计方法

1、结构化分析与设计

2、面向对象的分析设计

软件的重用

逆向工程与重构工程

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值