软考-系统架构设计师知识点提炼-系统架构设计师教程(第2版)
需求工程
软件需求3个层次:
- 业务需求:反映了组织机构或客户对系统、产品高层次的目标要求
- 用户需求:描述了用户使用产品必须要完成的任务,是用户对该软件产品的期望,
- 功能需求:定义了开发人员必须实现的软件功能
需求工程是指应用已证实有效的原理、方法,通过合适的工具和记号,系统地描述待开发系统及其特征和相关约束。需求工程覆盖了体系结构设计之前的各项开发活动,主要包括分析客户要求、对未来系统的各项功能性及非功能性需求进行规格说明,目标是:确定客户需求,定义设想中系统的所有外部特征。
需求活动的阶段:需求获取、需求分析、形成需求规格(需求文档化)、需求确认与验证、需求管理。 需求管理活动在形成需求文档初稿时就开始。 强调内容如下: 1、控制对需求基线的变动 2、保持项目计划与需求一致 3、控制单个需求和需求文档的版本情况 4、管理需求和联系链,或管理单个需求和其他项目可交付产品之间的依赖关系 5、跟踪基线中的需求状态
一、需求获取 需求获取参考步骤: 1、开发高层的业务模型 2、定义项目范围和高层需求 3、识别用户角色和用户代表 4、确定目标系统的业务工作流 5、需求整理与总结(功能需求、性能需求、可靠性需求、安全保密需求、用户界面需求、资源使用需求、软件成本消耗与开发进度需求等)
需求获取方法: 1、用户面谈 2、需求专题讨论会(优点:协助建立一支高效的团队,围绕项目成功的目标、所有的风险承担人都畅所欲言、促进风险承担人和开发团队之间达成共识、揭露和解决那些妨碍项目成功的行政问题、能够很快地产生初步的系统定义、可以有效地解决不同涉众之间的需求冲突) 3、问卷调查 4、现场观察 5、原型化方法 6、头脑风暴法
二、需求变更 需求变更管理过程: 1、问题分析和变更描述 2、变更分析和成本计算 3、变更实现
常见的需求变更策略: 1、所有需求变更必须遵循变更控制过程 2、对于获得批准的变更,不应该做设计和实现工作 3、变更应该由项目变更控制委员会决定实现哪些变更 4、项目风险承担者应该能够了解变更的内容 5、绝不能充项目配置库中删除或者修改变更请求的原始文档 6、每一个集成的需求变更必须能跟踪到一个经核准的变更请求,以保持水平可追踪性
变更控制委员会做出决策的过程及操作步骤: 1、制定决策 2、交流情况 3、重新协商约定
三、需求追踪 需求跟踪提供了由需求到产品实现整个过程范围的明确查阅能力,目的是建立与维护“需求-设计-编程-测试”之间的一致性,确保所有的工作成果符合用户需求。
需求跟踪的两个方式: 1、正向跟踪(产品需求规格说明书) 2、逆向跟踪
系统分析与设计
一、结构化方法 结构化分析:给我一组帮助系统分析人员产生功能规约的原理与技术 步骤: 1、分析业务情况,做出反映当前物理模型的数据流图(DFD) 2、推导出等价的逻辑模型DFD 3、设计新的逻辑系统,生成数据字典和基元描述 4、建立人机接口,提出可供选择的目标系统物理模型的DFD 5、确定各种方案的成本和风险等级,据此对各种方案进行分析 6、选择一种方案 7、建立完整的需求规约
结构化设计:面向数据流的设计方法
结构化编程:采用自顶向下、逐步求精的设计方法,各个模块通过“顺序、选择、循环”的控制结构进行连接,并且只有一个入口和一个出口
数据库设计:内容包括,需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施和数据库的运行和维护
二、面向对象方法 以用例驱动的、以体系结构为中心的、迭代的和渐增式的开发过程,主要包括需求分析、系统分析、系统设计和系统实现
面向对象分析方法(OOA) 面向对象分析: OOA原则:抽象、封装、继承、分类、聚合、关联、消息通信、粒度控制、行为分析 基本步骤:确定对象和类、确定结构、确定主题、确定属性、确定方法
面向对象设计(OOD): OOD中,类可以分为:实体类、控制类、边界类
面向对象编程(OOP): 基本特点:封装、继承、多态
数据持久化和数据库: 一般会引入持久层,专注于实现数据持久化,将数据使用者和数据实体相关联,实现了数据处理层内部的业务逻辑和数据逻辑的解耦