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