免费智能真题库 > 历年试卷 > 系统架构设计师 > 2020年下半年 系统架构设计师 下午试卷 案例
  第3题      
  知识点:   软件架构   标准化   复用   架构设计   软件架构设计   软件需求   网络化

 
某公司一直从事宇航系统研制任务,随着宇航产品综合化、网络化技术发展的需要,公司的业务量急剧增加,研制新的软件架构已迫在眉睫。公司架构师王工广泛调研了多种现代架构的基础,建议采用基于FACE (Future Airborne Capability Environment)的宇航系统开放式软件架构,以实现宇航系统的跨平台复用,实现宇航软件高质量、低成本的开发。公司领导肯定了王工的提案,并指出公司要全面实施基于FACE的开放式软件架构,应注意每个具体项目在实施中如何有效实现从需求到架构设计的关系,掌握基于软件需求软件架构设计方法,并做好开放式软件架构中各段间的接口标准化设计工作。
 
问题:3.1   (9分)
王工指出,软件开发中需求分析是根本,架构设计是核心,不考虑软件需求便进行软件架构设计很可能导致架构设计的失败,因此,如何把软件需求映射到软件架构至关重要。请从描述语言、非功能性需求描述、需求和架构的一致性等三个方面,用300字以内的文字说明软件需求到架构的映射存在哪些难点。
 
问题:3.2   (10分)
图3-1是王工给出的FACE架构布局,包括操作系统、I/O服务、平台服务、传输服务和可移植组件等5个段;操作系统、I/O和传输等3个标准接口。请分析图3-1给出的FACE架构的相关信息,用300字以内的文字简要说明FACE 5个段的含义。

 
问题:3.3   (6分)
FACE架构的核心能力是可支持应用程序的跨平台执行和可移植性,要达到可移植能力,必须解决应用程序的紧耦合和封装的障碍。请用200字以内的文字简要说明在可移植性上,应用程序的紧耦合和封装问题的主要表现分别是什么,并给出解决方案。
 
 
 

   知识点讲解    
   · 软件架构    · 标准化    · 复用    · 架构设计    · 软件架构设计    · 软件需求    · 网络化
 
       软件架构
        随着嵌入式技术的发展,特别是在后PC时代,嵌入式软件系统得到了极大的丰富和发展,形成了一个完整的软件体系,如下图所示。这个体系自底向上由3部分组成,分别是嵌入式操作系统、支撑软件和应用软件。
        
        嵌入式系统的软件架构
        嵌入式操作系统(Embedded Operating System,EOS)由操作系统内核、应用程序接口、设备驱动程序接口等几部分组成。嵌入式操作一般采用微内核结构。操作系统只负责进程的调度、进程间的通信、内存分配及异常与中断管理最基本的任务,其他大部分的功能则由支撑软件完成。
        嵌入式系统中的支撑软件由窗口系统、网络系统、数据库管理系统及Java虚拟机等几部分组成。对于嵌入式系统来讲,软件的开发环境大部分在通用台式计算机和工作站上运行,但从逻辑上讲,它仍然被认为是嵌入式系统支撑软件的一部分。支撑软件一般用于一些浅度嵌入的系统中,如智能手机、个人数字助理等。
        嵌入式系统中的应用软件是系统整体功能的集中体现。系统的能力总是通过应用软件表现出来的。
 
       标准化
               标准化概念
                      标准、标准化及标准化对象
                      标准是对重复性事物和概念所做的统一规定。它以科学、技术和实践经验的综合成果为基础,经有关方面协商一致,一个公认机构的批准,以特定形式发布,作为共同遵守的准则和依据。
                      标准化是指在经济、技术、科学及管理等社会实践中,对重复性事物和概念通过制订、发布和实施标准达到统一,以获最佳秩序和社会效益的活动。
                      在国民经济的各个领域中,凡具有多次重复使用和需要制定标准的具体产品,以及各种定额、规划、要求、方法、概念等,都可称为标准化对象。标准化对象一般可分为两大类:一类是标准化的具体对象,即需要制定标准的具体事物;另一类是标准化总体对象,即各种具体对象的总和所构成的整体,通过它可以研究各种具体对象的共同属性、本质和普遍规律。
                      标准化的目的及工作任务
                      标准化的实质是通过制定、发布和实施标准达到统一,其目的是获得最佳秩序和社会效益。
                      中国标准化工作的任务是制定标准、组织实施标准和对标准的实施进行监督。国际标准化组织(ISO)的主要任务是制订国际标准、协调世界范围内的标准化工作。标准化的问题由来已久。中国自秦代开始,历代王朝都有法定度量衡标准以及法定违反标准的罚则。现代标准化是近二、三百年发展起来的。工业革命将标准化问题提上了日程。标准化包括制定标准和贯彻标准,已取得世界上各国和国际社会的重视。
                      标准化的基本特性和作用
                      标准化的基本特性主要包括抽象性、技术性、经济性、连续性(或继承性)、约束性和政策性。其作用如下:
                      (1)标准化为科学管理奠定了基础。所谓科学管理是依据生产技术的发展规律和客观经济规律对企业进行管理,而各种科学管理制度的形式都以标准化为基础。
                      (2)促进经济全面发展,提高经济效益。标准化应用于科学研究,可以避免在研究上的重复劳动;应用于产品设计,可以缩短设计周期;应用于生产,可使生产在科学的和有秩序的基础上进行;应用于管理,可促进统一、协调、高效率等。
                      (3)标准化是科研、生产、使用三者之间的桥梁。一项新技术或科研成果一旦纳入相应标准,就能迅速得到推广和应用,从而促进技术进步。
                      (4)标准化为组织现代化生产创造了前提条件,通过制定和使用标准来保证各生产部门的活动,在技术上保持高度的统一和协调,以使生产正常进行。
                      (5)促进对自然资源的合理利用,保持生态平衡,维护人类社会当前和长远的利益。
                      (6)合理发展产品品种,提高企业应变能力,以更好地满足社会需求。
                      (7)保证产品质量,维护消费者利益。
                      (8)在社会生产组成部分之间进行协调,确立共同遵循的准则,建立稳定的秩序。
                      (9)促进国际技术交流和贸易发展,提高产品在国际市场上的竞争能力。
                      (10)保障身体健康和生命安全,环保标准、卫生标准和安全标准制定发布后,用法律形式强制执行,对保障人民的身体健康和生命财产安全具有重大作用。
               标准化基本过程及分类
               标准是标准化活动的产物,其目的和作用都是要通过制定和贯彻具体的标准来体现的。标准化是一个可分为几个子过程的活动过程,一般包括标准产生(调查、研究、形成草案、批准发布)子过程,标准实施(宣传、普及、监督、咨询)子过程和标准更新(复审、废止或修订)子过程等。
               标准化工作是一项复杂的系统工程,标准为适应不同的要求,从而构成一个庞大而复杂的系统,为便于研究和应用的目的,可以从不同的角度和属性对标准进行分类。根据适用范围可以分类如下:
               (1)国际标准。由国际标准化团体制定、公布和通过的标准。通常,国际标准是指ISO和IEC以及ISO所出版的国际标准题目关键词索引(KWIC Index)中收录的其他国际组织制定、发布的标准等。国际标准在世界范围内统一使用,没有强制的含义,各国可以自愿采用。
               (2)国家标准。由一个国家的政府或国家级的机构制定或批准,适用于全国范围的标准,如我国国家标准(GB)、美国国家标准(ANSI)、德国国家标准(DIN)、英国国家标准(BS)和日本国工业标准(JIS)等。
               (3)区域标准。区域标准又称地区标准,泛指世界上按地理、经济或政治划分的某一区域标准化团体所通过的标准。
               (4)行业标准。由行业机构、学术团体或国防机构制定,并适用于某个业务领域的标准,如美国电气和电子工程师学会标准(IEEE)、中华人民共和国国家军用标准(GJB)、美国军用标准(MIL-S)、美国国防部标准(DOD-STD)等。
               (5)地方标准。由一个国家的地方一级行政机构(省、州或加盟共和国)制定的标准。它一般由地方所属的各企业与单位执行。
               (6)企业标准。由企业或公司批准、发布的标准,某些产品标准由其上级主管机构批准、发布。例如,美国IBM公司通用产品部制定的“程序设计开发指南”仅供该公司内部使用。企业为达到或超过上级标准而对产品质量指标制定高于现行上级标准的内部控制的企业标准,目的在于促进产品质量提高。
               (7)项目规范。由某一科研生产项目组织制定,且为该项任务专用的软件工程规范。例如,计算机集成制造系统(CIMS)的软件工程规范。
               我国标准分为国家标准、行业标准、地方标准和企业标准4类。
               标准的编号
                      国际、国外标准代号及编号
                      国际及国外标准编号的基本结构为“标准代号+专业类号+顺序号+年代号”。其中,“标准代号”大多采用缩写字母,例如IEC代表国际电工委员会(International Electrotechnical Commission)、API代表美国石油协会(American Petroleum Institute)、ASTM代表美国材料与试验协会(American Society for Testing and Materials)等;“专业类号”有字母、数字、字母数字混合式三种形式;“顺序号”和“年号”的形式与我国基本相同,例如国际标准ISO代号及编号格式为:ISO+标准号+[杠+分标准号]+冒号+发布年号(方括号中的内容可有可无),ISO8402:1987和ISO9000-1:1994分别是ISO标准的编号。
                      我国标准代号及编号
                      我国标准编号的基本结构为“标准代号+顺序号+年代号”。
                      (1)国家标准代号由大写汉字拼音字母构成,强制性国家标准代号为GB,推荐性国家标准代号为GB/T。
                      (2)行业标准代号由汉字拼音大写字母组成,再加上斜线T组成推荐性行业标准(如××/T)。行业标准代号由国务院各有关行政主管部门提出其所管理的行业标准范围的申请报告,国务院标准化行政主管部门审查确定并正式公布该行业标准代号。已正式公布的行业代号有QJ(航天)、SJ(电子)、JB(机械)和JR(金融系统)等。
                      (3)地方标准代号由大写汉字拼音DB加上省、自治区、直辖市行政区划代码的前两位数字(北京市11、天津市12、上海市31等)组成,再加上斜线T组成推荐性地方标准(如DB××/T),不加斜线T为强制性地方标准(如DB××)。
                      (4)企业标准的代号由汉字大写拼音字母Q加斜线再加企业代号组成(如Q/×××),企业代号可由大写拼音字母或阿拉伯数字或两者兼用组成。
               信息技术标准化
               信息技术标准化是围绕信息技术开发、信息产品的研制和信息系统建设、运行与管理而开展的一系列标准化工作。其中主要包括信息技术术语、信息表示、汉字信息处理技术、媒体、软件工程、数据库、网络通信、电子数据交换、电子卡、管理信息系统、计算机辅助技术等方面标准化。
                      信息编码标准化
                      编码是一种信息表现形式。在一定条件下,它对事物或概念的描述比自然语言要直接、简洁、准确和有力。要保证信息编码的一致性,就要对编码对象的确定,对象特性的选择,编码方法和代码设计进行标准化。对信息进行编码实际上是对文字、音频、图形和图像等信息进行处理,使之量化,从而便于利用各种通信设备进行信息传递和利用计算机进行信息处理。为了统一编码系统,人们制定了各种标准代码,如国际上较通用的ASCII码等。
                      条码标准化
                      条码是一种特殊的代码,即一组规则排列的条、空及其对应字符组成的标记,用以表示一定的信息。条码中的条、空分别由两种不同深浅的颜色(通常为黑、白色)表示,并满足一定的光学对比度要求,其目的是便于光电扫描设备识读后将数据输入计算机。
                      汉字编码标准化
                      汉字编码是对每一个汉字按一定的规律用若干个字母、数字、符号表示出来。汉字编码的方法很多,主要有数字编码、拼音编码和字形编码。我国在汉字编码标准化方面制定的国家标准主要包括信息交换用汉字编码字符集,共有6集。其中,GB2312—80信息交换用汉字编码字符集是基本集,收入常用基本汉字和字符7445个;GB7589—87和GB7590—87分别是第二辅助集和第四辅助集,各收入现代规范汉字7426个;GB/T12345—90是辅助集,它与第三辅助集和第五辅助集分别是与基本集、第二辅助集和第四辅助集相对应的繁体字的汉字字符集。除汉字编码标准化外,汉字信息处理标准化的内容还包括汉字键盘输入的标准化;汉字文字识别输入和语音识别输入的标准化;汉字输出字体和质量的标准化;汉字属性和汉语词语的标准化等。
                      ISO9000:2000标准
                      ISO9000标准是一系列标准的统称。其质量管理模式为企业管理注入新的活力和生机,给质量管理体系提供评价基础,为企业进行世界贸易带来质量可信度。过程方法的概念,顾客需求的考虑,以及将持续改进的思想贯穿于整个标准,把组织的质量管理体系满足顾客要求的能力和程度体现在标准的要求之中。ISO9000:2000标准的推出标志着国际标准化活动已从名词术语、试验方法及产品质量三大传统领域迈向了管理体系的标准化与认证。ISO9000:2000族标准的构成如下:
                      (1)4个核心标准,即ISO9000:2000《基本原理和术语》、ISO9001:2000《质量管理体系-要求》、ISO9004:2000《质量管理体系-业绩改进指南》和ISO19011:2000《质量和环境管理审核指南》。
                      (2)1个支持标准,即ISO10012《测量设备的质量保证要求》。
                      (3)6个技术报告,即ISO10006《项目管理指南》、ISO10007《技术状态管理指南》、ISO10013《质量管理体系文件指南》、ISO10014《质量经济性指南》、ISO10015《教育和培训指南》和ISO10017《统计技术在ISO9001中的应用指南》。
                      (4)3个小册子,即质量管理原理、选择和使用指南,小型企业的应用指南和一个技术规范。
 
       复用
        软件复用是指将已有的软件及其有效成分用于构造新的软件或系统。构件技术是软件复用实现的关键。
 
       架构设计
        WebApp描述了使WebApp达到其业务目标的基础结构,典型使用多层架构来构造,包括用户界面或展示层、基于一组业务规则来指导与客户端浏览器进行信息交互的控制器,以及可以包含WebApp的业务规则的内容层或模型层,描述将以什么方式来管理用户交互、操作内部处理任务、实现导航及展示内容。模型-视图-控制器(Model-View-Controller,MVC)结构是WebApp基础结构模型之一,它将WebApp功能及信息内容分离。
 
       软件架构设计
        软件架构也称为软件体系结构,需要考虑如何对系统进行分解,对分解后的组件及其之间的关系进行设计,满足系统的功能和非功能需求。软件架构形成过程如下图所示。
        
        架构的形成过程概要
        软件架构设计需要从用户业务需求、未来应用环境、需求分析、硬件基础、接口输入、数据处理、运算或控制规律、用户使用等方面进行综合、权衡和分析基础上产生。面向某种问题的架构一旦确定就很难改变,随后的架构设计需要通过一系列的迭代开发完善,使得软件架构日趋成熟、稳定。
        软件架构的重要作用也在于控制一个软件系统的使用、成本和风险。好的架构要求是和谐的软件架构,包括与上一级系统架构相互和谐、与系统中同一级的其他组件架构互相和谐,确保系统满足性能、可靠性、安全性、信息安全性和互操作性等方面的关键要求,也具有可扩展、可移植性,从而为一个软件带来长久的生命力。
        在大量开发实践中,有很多广泛使用并被普遍接受的软件架构设计原则,这些原则独立于具体的软件开发方法,主要包括抽象、信息隐藏、强内聚和松耦合、关注点分离等。
        (1)抽象:这是软件架构的核心原则,也是人们认识复杂客观世界的基本方法。抽象的实质是提取主要特征和属性,从具体的事务中通过封装来忽略细节,并且运用这些特征和属性,描述一个具有普遍意义的客观世界。软件架构设计中需要对流程、数据、行为等进行抽象。复杂系统含有多层抽象,从而有多个不同层次架构。
        (2)信息隐藏:包括局部化设计和封装设计。局部化设计就是将一个处理所涉及到的信息和操作尽可能地限制在局部的一个组件中,减少与其他组件的接口。而封装设计是将组件的外部访问形式尽可能简单、统一。
        (3)强内聚和松耦合:强内聚是指软件组件内的特性,即组件内所有处理都高度相关,所有处理组合在一起才能组成一个相对完整的功能。而松耦合是指软件组件之间的特性,软件组件之间应尽量做到没有或极少的直接关系,使其保持相对独立,这样使得未来的修改、复用简单,修改之后带来的影响最小。
        (4)关注点分离:所谓关注点是软件系统中可能会遇到的多变的部分。如为适应不同运行接口条件,需要进行适应性的参数调整和驱动配置。关注点分离设计是将这部分组件设计成为相对独立的部分,使未来的系统容易配置和修改。而核心的部分可以保持一个相对独立的稳定状态。如果功能分配使得单独的关注点组件足够简单,那么就更容易理解和实现。但“展示某些关注点得到满足时,可能会影响到其他方面的关注点,但架构师必须能够说明所有关注点都已得到满足”。
        以上的原则中,删除需求细节或对细节进行抽象是最重要的工作,为用户的需求创建抽象模型,通过抽象将特殊问题映射为更普遍的问题类别,并识别各种模式。
        软件架构设计使用纵向分解和横向分解两种方式。纵向分解就是分层,横向分解就是将每一个层面分成相对独立的部分。经过分解之后,可以将一个完整的问题分解成多个模块来解决。模块是其中可分解、可组装,功能独立、功能高度内聚、之间低耦合的一个组件。
        类似于建筑架构,软件架构也决定了软件产品的好用、易用、可靠、信息安全、可扩展、可重用等特性,好的软件架构也给人完整、明确、清晰等赏心悦目的感觉,具有较长的生命力。
        架构设计是围绕业务需求带来的问题空间到系统解决空间第一个顶层设计方案。按照抽象原则,在这个阶段进行的架构设计关注软件设计环节抽象出来的重要元素,而不是所有的设计元素。在架构设计时将软件这些要素看作是黑盒,架构设计需要满足黑盒的外部功能和非功能需求的目标。一个软件的架构设计首先为软件产品的后续开发过程提供基础,在此基础上可将一个大规模的软件分解为若干子问题和公共子问题。而一般意义的软件设计是软件的底层设计,开发人员需要关注各子问题或要素的进一步分解和实现,是根据架构设计所定义的每个要素的功能、接口,进一步实现要素组件内部的配置、处理和结构。在遵守组件外部属性前提下,考虑实现组件内部的细节及其实现方法。对于其中的公共子问题,形成公共类和工具类,从而可以达到重用的目的。
        一般的软件构架是根据需求自上而下方式来设计,即首先掌握和研究利益相关方的关键需求,基本思路是首先进行系统级的软件架构设计,需要将软件组件与其外部环境属性绑定在一起,关注软件系统与外部环境的交联设计;其次将一个大的系统划分成各组成部分,这些部分可以按照架构设计的不同方法,分为层次或成为模块;之后再开始研究所涉及到的要素,再实现这些要素以及定义这些要素之间的关系。
        在实际工作中,软件构架也可采用自底向上的方法,前提是已经建立了一个成熟稳定的软件架构,也可以称之为“模式”。模式是组织一级设计某一类具体问题的顶层思路,是为了解决共有问题解的方案模板,但并不是一个问题的设计或设计算法。
        模式常常整合在一起使用,提供解决更大、更复杂问题的解决方案,而组成一个解决问题的通用框架。框架往往提供统一平台和开发工具,而且已经高效地利用了已经经过验证的模式、技术和组件。在新软件系统的设计中指定沿用或重用这种架构框架,这时其他重要元素可以在这个架构基础上针对新的需求进行扩展,有时是针对性地进行参数化设计。所以在架构设计中可以借用模式的概念进行设计,采用成熟的先进的设计框架和工具提高开发的效率,保证设计正确性。
        下图所示是针对架构设计中非功能需求的多维度分析,从中可知任何一个因素的变化都会带来对其他因素的影响。实际上软件架构设计属于软件设计过程的一部分,但超越了系统内部的算法和数据结构的详细设计。
        
        架构的多维度分析
        在架构设计阶段,需要定义边界条件、描述系统组织结构、对系统的定量属性进行约束、帮助对模型进行描述并基本构造早期的原型、更准确地描述费用和时间的评估。
 
       软件需求
        在进行需求获取之前,首先要明确需要获取什么,也就是需求包含哪些内容。软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。通常,这些需求包括功能需求、性能需求、用户或人的因素、环境需求、界面需求、文档需求、数据需求、资源使用需求、安全保密需求、可靠性需求、软件成本消耗与开发进度需求等,并预先估计以后系统可能达到的目标。此外,还需要注意其他非功能性的需求。具体内容如下。
        (1)功能需求。
        (2)性能需求。
        (3)用户或人的因素。
        (4)环境需求。
        (5)界面需求。
        (6)文档需求。
        (7)数据需求。
        (8)资源使用需求。
        (9)安全保密要求。
        (10)可靠性要求。
        (11)软件成本消耗与开发进度需求。
        (12)其他非功能性要求。
               需求分析的任务
               需求分析主要是确定待开发软件的功能、性能、数据、界面等要求。具体来说有下面几点。
               (1)确定软件系统的综合要求,包括系统界面、功能、性能、安全性、保密性、可靠性、运行等方面的要求。
               (2)分析软件系统的数据要求,包括基本数据元素、数据元素之间的逻辑关系、数据量、峰值等。
               (3)导出系统的逻辑模型,在结构化方法中可用数据流图来描述;在面向对象分析方法中可以用类模型来描述。
               (4)修正项目开发计划。
               (5)如有必要,可开发一个原型系统以验证用户的需求。
               软件需求的分类
               下面介绍软件需求的分类。
               (1)功能需求。所开发的软件必须具备什么样的功能。
               (2)非功能需求。它是指产品必须具备的属性或品质,如可靠性、性能响应时间、容错性和可扩展性等。
               (3)设计约束。其也称为限制条件、补充规约,这通常是对解决方案的一些约束说明。
               软件需求分析方法
               需求分析方法由对软件的数据域和功能域的系统分析过程及其表示方法组成。它定义了表示系统逻辑视图和物理视图的方式。大多数的需求分析方法是由数据驱动的,数据域具有数据流、数据内容和数据结构3种属性。通常一种需求分析方法总要利用其中一种或几种属性。
 
       网络化
        物流领域网络化的基础也是信息化,这里指的网络化有两层含义:一是物流配送系统的计算机通信网络,包括物流配送中心与供应商或制造商的联系要通过计算机网络,另外与下游顾客之间的联系也要通过计算机网络通信。二是组织的网络化,即所谓的企业内部网(Intranet)。物流的网络化是物流信息化的必然,是电子商务下物流活动的主要特征之一。
   题号导航      2020年下半年 系统架构设计师 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
 
第3题    在手机中做本题