- 论坛徽章:
- 0
|
为了更好的帮助大家考试,考试百科在文章系统架构设计师辅导:学习笔记中,为大家提供的如下内容:<br /> 13.4 软件的可靠性设计与管理<br /> 13.4.1 软件可靠性设计<br /> 实践证明,保障软件可靠性,最有效、最经济、最重要的手段是 在软件设计阶段采取措施进行可靠性控制。<br /> 1、软件可靠性设计是软件设计的一部分,必须在软件的总体设计框架中使用,并且不能与其他设计原则相冲突。<br /> 2、软件可靠性设计在满足提高软件质量要求的前提下,以提高和保障软件可靠性为最终目标。<br /> 3、软件可靠性设计应确定软件的可靠性目标,不能无限扩大化,排在功能度、用户需求、开发费用之后考虑。<br /> 容错设计、检错设计、降低复杂度设计 等技术。<br /> 1、容错设计技术<br /> 1. 恢复块设计,一旦文本出现故障,用备份文本加以替换。<br /> 2. N版本程序设计,对于相同初始条件和相同输入的操作结果,实行多数表决,防止其中某一软件模块/版本的故障提供错误的服务。<br /> 必须注意以下两方面:<br /> 使软件的需求说明具有完整性和精确性。<br /> 设计全过程的不相关性。<br /> 3. 冗余设计<br /> 在相同的运行环境中,一套软件出故障的地方,另外一套也一定会出现故障。<br /> 在一套完整的软件系统之外,设计一种不同路径、不同算法或不同实现方法的模块或系统作为备份。<br /> 费用可能接近单个版本软件开发费用的两倍,还有可能导致软件运行时所花费的存储空间、内存消耗、运行时间有所增加,需要在可靠性要求和额外付出代价之间做出折中。<br /> 2、检错技术<br /> 检错技术实现的代价一般低于容错技术和冗余技术,但它有一个明显的缺点,就是不能自动解决故障。<br /> 着重考虑几个要素:检测对象、检测延时、实现方式、处理方式。<br /> 3、降低复杂度设计<br /> 模块复杂性主要包含模块内部数据流向和程序长度两个方面,结构复杂性用不同模块之间的关联程度表示。<br /> 软件复杂性是产生软件缺陷的重要根源。<br /> 在设计师就应该考虑降低软件的复杂性,是提高软件可靠性的有效方法。<br /> 在保证实现软件功能的基础上,简化软件结构,缩短程序代码长度,优化软件数据流向,降低软件复杂度,从而提高软件可靠性。<br /> 13.4.2 软件可靠性管理 <br /> 为了进一步提高软件可靠性,又提出软件可靠性管理的概念,把软件可靠性活动贯穿于软件开发的全过程。<br /> 各个阶段的可靠性活动的目标、计划、进度、任务、修正措施等。<br /> 由于软件之间的差异较大,下面的每项活动并不是每一个软件系统的可靠性管理的必须内容,也不是软件可靠性管理的全部内容。<br /> 基于ODP的架构师实践<br /> 14.1 基于ODP的架构开发过程<br /> 系统架构反映了功能在系统系统构件中的分布、基础设施相关技术、架构设计模式等,它包含了架构的原则和方法、构件关系与约束,并能支持迭加或增量开发。<br /> 以软件架构为中心的开发过程是以质量和风险驱动的,最终提供一个稳定、低风险的系统架构,并满足客户的需求(包含潜在需求)。<br /> 开放分布进程的参考模型(RM-ODP)是一个ISO标准,定义了分布系统的重要性质:<br /> 开放性、整体性、灵活性、可塑性、联合性、可操作管理性、优质服务、安全性、透明性。<br /> RM-ODP定义的 5个观点:<br /> 1、企业视点:商业需求和策略、系统的范围和目的。可能会影响系统中的与企业相关的信息,如组织结构等。<br /> 2、信息视点。<br /> 3、计算视点。<br /> 4、工程视点。<br /> 5、技术视点。<br /> 每一个观点有具体的建模目标和系统相关者。<br /> 分层子系统视图提供了一个所有子系统高度抽象的视图。<br />上面就是文章系统架构设计师辅导:学习笔记的部分内容,后续文章请继续关注考试百科。http://pc.kaoshibaike.com 相关论坛:http://bbs.kaoshibaike.com/forum.php?mod=forumdisplay&fid=78 |
|