软件设计与体系结构知识点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.软件设计的特征
(1)软件设计的开端是出现某些新的问题需要软件来解决,这些需要促使设计工作的开始,并成为整个设计工作最初的基础
(2)软件设计的结果是给出一个方案,它能够用来实现所需的、可以解决问题的软件,方案的描述可能是文字、图表,甚至数学符号、公式等组成的文档或模型
(3)软件设计包含一系列的转换过程,即把一种描述或模型转换为另一种描述或模型,转换后的形态可能更加具体,或更接近于实现
(4)产生新的想法或思路对软件设计非常重要,因为设计也是一个创造性的过程,不同的问题或需求总会存在各自的特点,即使同样的问题在不同时期和环境下也会存在区别,因此设计不会是一成不变的
(5)软件设计的过程是不断解决问题和实施决策的过程,因为整个设计是解决一个大的问题,在设计过程中将会分解成众多小问题,涉及真需要一次解决这些小的问题,并在出现多种方案或策略时进行决策,选择其中最合适的
(6)软件设计也是一个满足各种约束的过程,因为软件可能在性能、运行环境、开发时间、成本、人员技术水平等各个方面存在约束,设计必须在满足这些约束的情况下给出最佳的设计方案
(7)大多数的软件实际是一个不断演化的过程,因为需求在一开始很可能是不完整或不精确的,在设计过程中还会不断发生变化并逐步稳定下来,因此设计需要根据需求的变化而不断演化。
2.软件设计的要素
( 1 ) 目标描述 ( 2 ) 设计约束 ( 3 ) 产品描述 ( 4 ) 设计原理 ( 5 ) 开发规划 ( 6 ) 使用描述
3.软件设计体系的定义
( 1 )软件设计体系结构是软件系统的结构,包含软件元素、软件元素外部可见的属性以及这些软件元素之间的关系
( 2 )软件体系结构是软件系统的基本组织,包含构建、构件之间、构件与环境之间的关系,以及相关的设计与演化原则
4.软件设计的主要活动
( 1 ) 软件设计计划 ( 2 ) 体系结构设计 ( 3 ) 界面设计 ( 4 ) 模块/子系统设计 ( 5 ) 过程/算法设计( 6)数据模型设计
5.体系结构“4+1 ”多视图建模
( 1 )逻辑视图:该视图关注功能需求,即系统应该为最终用户提供什么服务,它与应用领域精密相关
( 2 )进程视图:该视图捕获设计中关于并发和同步的内容,重视一些非功能需求,例如性能、可扩展性等,定义了运行实体和它们的属性。
( 3 )开发视图:该试图主要描述软件在开发环境中的静态结构,开发人员和项目经理对比都会感兴趣。
( 4 )物理视图:该视图描述软件到硬件的映射关系,反映了软件的分布特征。
( 5 )场景:可以使用一组重要场景也就是用例的实例,把上述四种视图紧密的联系起来
6.什么是软件产品线方法
软件产品线是软件复用发展的一个更高阶段,它并不仅仅局限于以前人们在软件复用中考虑的对函数、模块、类、体系结构甚至子系统的重用。
软件产品线指一组具有公共的、可管理特征(系统需求)的软件系统,这些系统满足特定的市场需求或者任务领域需求,并且按照预定义的方式基于公共的核心资产集合开发得到。
软件产品线主要由两部分组成:核心资产库和产品集合
产品线方法的基本活动包括核心资产开发、产品开发和管理。
7.可信软件
可行软件是指软件系统的运行行为极其结果总是符合人们的预期,且在受到干扰(包括操作错误、环境影响、外部攻击等)时仍能提供连续服务
本质属性: ( 1 )可靠性( 2 )安全性( 3 )正确性( 4 )实时性( 5 )可维护性( 6 )可生存性
8.ATM 用例图
参与者:顾客(存款取款查询转账) ,操作管理员(开机关机) ,银行服务器(存款取款查询转账),读卡器(存款取款查询转账) ,存款器(存款),取款器(取款),打印机(存款取款查询转账)
交互:存款,取款,转账,查询余额,开机,关机
ATM 细化
交互:操作管理员 (开机关机) ,顾客、银行服务器,、读卡器、打印机(会话),取款器(取款),存款器(存款),会话扩展非法密码,会话包涵传输业务,传输业务继承存款取款查询转账。
9.ATM 系统顶级数据流
银行 ATM 系统(用户口令)用户控制面板
银行 ATM 系统(管理员口令)管理员控制开关银行ATM系统(银行信息)读卡器
银行ATM系统(存入款项信息)存款器
银行 ATM 系统(帐户信息)银行系统
银行ATM系统(显示信息)显示器
银行 ATM 系统(帐户变更信息)银行系统
银行 ATM 系统(打印信息)打印机
银行ATM系统(取出款项信息)取款器
10.界面设计的基本原则
( 1 )用户熟悉程度:界面应该采用经常使用系统的用户所熟悉的术语和概念
( 2 )一致性:界面必须一致,在任何可能的情况下,相同的操作应该以同样的方式被激活
( 3 )使惊讶最小化:尽量避免使用户对系统的行为感到惊讶
(4)可恢复性:界面应该为用户提供错误恢复机制
( 5 )用户帮助:界面应该在错误发生时提供有意义的反馈,并且提供上下文敏感的用户帮助系统
( 6)用户多样性:界面应该为不同类型的用户提供恰当的交互方式
11.软件体系结构风格和设计模式
软件体系结构风格:在构件和连接子的层次描述的可重复使用的软件设计问题解决方案
软件体系结构设计模式:在类和对象的层次描述的可重复使用的软件设计问题解决方案
12.软件评估的目的
软件评估的目的就是为了在开发过程的早期,通过分析系统的质量需求是否在软件体系结构中得到体现,来识别软件体系结构设计中的潜在风险,预测系统质量属性,并辅助软件体系结构决策的制定。
12.常用的三个软件体系结构评估方法
( 1 ) ATAM 方法:能够反映一个软件体系结构满足某些特定质量目标的程度,同时还能给出这些质量目标相互之间的交互方式,即它们之间的折中方案。
步骤为:介绍,调查和分析,调试,报告
步骤 1 :介绍 ATAM 方法;步骤 2 :商业动机的介绍;步骤 3 :软件体系机构介绍
步骤 4 :确定软件体系结构方案;步骤 5 :产生质量属性效果树;
步骤 6 :分析软件体系结构方案;步骤 7 :集体讨论并确定场景的优先级;
步骤 8 :进一步分析软件体系结构方案;步骤 9:展示结果。
( 2 ) SAAM 方法
步骤 1 :场景的形成;步骤 2 :描述软件体系结构;步骤 3 :场景分类和优先级划分;步骤 4 :间接场景的单独评估;步骤 5:评估场景交互;步骤 6 :形成总体评估
( 3 ) ARID 方法
在排练阶段
步骤 1 :确定评审人;步骤 2 :准备设计情况介绍;
步骤 3:准备种子场景;步骤 4:准备材料
在评审阶段
步骤 1:介绍 ARID 方法;步骤 2:介绍设计;步骤 3:场景的集体讨论和优先级划分
步骤 4:应用场景;步骤 5:总结。