5.1、软件工程

软件架构研究的主要内容涉及软件架构描述、软件架构风格、软件架构评估和软件架构的形式化方法等。

解决好软件的复用、质量和维护问题,是研究软件架构的根本目的。

软件架构风格:

数据流风格:包括批处理序列(顺序执行)和管道/过滤器(输入输出数据流)两种风格。

调用/返回风格:包括主程序/子程序(过程调用)、数据抽象和面向对象(对象及封装),以及层次结构(分层调用)。

独立构件风格:包括进程通信(消息传递、远程调用)和事件驱动(事件触发调用)的系统【进城(程)办事】。

虚拟机风格:包括解释器(解释引擎)和基于规则(规则集)的系统。

仓库风格:包括数据库系统(中央共享数据源)、黑板系统(知识源、黑板及共享数据和控制)和超文本系统(非线性交叉引用)。

在架构评估过程中,评估人员所关注的是系统的质量属性。

敏感点是一个或多个构件的特性,权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。

从目前已有的软件架构评估技术来看,可以归纳为三类主要的评估方式,分别是基于调查问卷(或检查表)的方式,基于场景的方式和基于度量的方式。这三种评估方式中,基于场景的评估方式最为常用。

基于场景的方式主要包括:架构权衡分析法(ATAM)、软件架构分析法(SAAM)和成本效益分析法(CBAM)。

需求是多层次的,包括业务需求、用户需求和系统需求,这三个不同层次从目标到具体、从整体到局部、从概念到细节。

业务需求:指反应企业或客户对系统高层次的一个目标追求,通常来自项目投资人、购买产品的客户、客户单位的管理人员、市场营销部门或产品策划部门等。

用户需求:描述的是用户的具体的目标,或者用户要求系统必须能完成的任务,用户需求描述了用户能让系统来做什么。

系统需求:是指从系统的角度来说明软件的需求,包括功能需求,非功能需求和设计约束。

质量功能部署(QualityFunctionDeployment,QFD)是一种将用户要求转化成软件需求的技术,其目的是最大限度地提升软件工程过程中用户的满意度。为了达到这个目标,QFD将软件需求分为三类,分别是常规需求、期望需求和意外需求。

常规需求,用户认为系统应该实现的功能或性能,实现越多用户会越满意。

期望需求,用户想当然以为系统应用具备的功能或性能,但并不能正确描述自己想要得到的这些功能或性能需求。如果期望需求没有得到实现,会让用户感动不满意。

意外需求,也称为兴奋需求,是用户要求范围外的功能或性能。

需求过程主要包括需求获取、需求分析、需求规格说明书编制、需求验证与确认。

需求获取需求获取是一个确定和理解不同的项目干系人的需求和约束的过程。常见的需求获取方法包括用户访谈、问卷调查、采样、情节串联板、联合需求计划等。

5.1.2需求分析

一个好的需求应该具有无二义性、完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性等特性,因此,需要分析人员把杂乱无章的用户要求和期望转化为用户需求,这就是需求分析的工作。

使用结构化分析(SA)方法进行需求分析,其建立的模型的核心是数据字典。围绕这个核心,有三个层次的模型,分别是数据模型、功能模型和行为模型(也称为状态模型)。

数据模型:实体关系图(E-R)

功能模型:数据流图(DFD)

行为模型(STD):状态转换图

面向对象的分析(OOA)模型包括用例模型和分析模型。

软件需求规格说明书(SRS)是需求开发活动的产物,SRS是软件开发过程中最重要的文档之一,对于任何规模和性质的软件项目都不应该缺少。需求评审就是对SRS进行技术评审。

UML中的事物也称为建模元素,包括结构事物、行为事物、分组事物和注释事物。

5.1.3软件设计

软件设计分为结构化设计与面向对象设计。

1.结构化设计结构化设计(SD)是一种面向数据流的方法,它以SRS和SA阶段所产生的DFD和数据字典等文档为基础,是一个自顶向下、逐步求精和模块化的过程。在SD中,需要遵循一个基本的原则:高内聚,低耦合。

2.面向对象设计基本思想包括抽象、封装、可扩展性,其中可扩展性主要是通过继承和多态来实现,三大特征是封装,继承、多态。

3.设计模式

设计模式是前人经验的总结,它使人们可以方便地复用成功的软件设计。根据处理范围不同,设计模式可分为类模式和对象模式。根据目的和用途不同,设计模式可分为创建型模式、结构型模式和行为型模式三种。

①创建型模式主要用于创建对象;

②结构型模式主要用于处理类或对象的组合;

③行为型模式主要用于描述类或对象的交互以及职责的分配。

5.1.4软件实现

软件测试方法可分为静态测试和动态测试。

静态测试一般采用桌前检查、代码走查和代码审查。

动态测试是指在计算机上实际运行程序进行软件测试。一般采用白盒测试和黑盒测试方法。

白盒测试也称为结构测试,主要用于软件单元测试中。

黑盒测试也称为功能测试,主要用于集成测试、确认测试和系统测试中。

5.1.6过程管理

按照软件过程能力的成熟度水平由低到高演进发展的形势,CSMM定义了5个等级。

初始级(不确定性)、项目规范级(基本可按计划实现)、组织改进级(组织范围内能够稳

定地实现)、量化提升级(量化地管理)、创新引领级(创新、实持续提升、引领)。

5.2数据工程

5.2.1数据建模

数据模型划分为三类:概念模型、逻辑模型和物理模型。

概念模型:把现实世界中的客观对象抽象为某一种信息结构。

逻辑模型:逻辑模型是在概念模型的基础上确定模型的数据结构,目前主要的数据结构有层次模型、网

状模型、关系模型、面向对象模型和对象关系模型。其中,关系模型成为目前最重要的一种逻辑数据模型。

物理模型:数据库体系结构设计,真正实现数据在数据库中的存放。

数据建模过程包括数据需求分析、概念模型设计、逻辑模型设计和物理模型设计等过程。

5.2.2数据标准化

数据标准化是实现数据共享的基础。数据标准化的主要内容包括元数据标准化、数据元标准化、数据模式标准化、数据分类与编码标准化和数据标准化管理。

数据是关于数据的数据(DataAboutData)。

数据元是数据库、文件和数据交换的基本数据单元。

数据元一般来说由三部分组成:对象、特性、表示。

数据模式是数据的概念、组成、结构和相互关系的总称。本质上,数据模式反映的是人类对客观世界的主观认知。数据模式的描述方式主要有图描述方法和数据字典方法。

数据标准化阶段的具体过程包括确定数据需求、制定数据标准、批准数据标准和实施数据标准四个阶段。

5.2.3数据运维

存储介质的类型主要有磁带、光盘和磁盘三种。

常见的备份策略主要有三种:完全备份、差分备份【相对上一次全备份之后新增的和修改过的数据】和增量备份【上一次备份(注意不是全备份)后增加的和修改过的数据,恢复时需要全部增量都恢复】

应用容灾用于克服灾难对系统的影响,保证应用服务的完整、可靠和安全等一系列要求,使得用户在任何情况下都能得到正常的服务;

数据容灾则关注于保证用户数据的高可用性,在灾难发生时能够保证应用系统中的数据尽量少丢失或不丢失,使得应用系统能不间断地运行或尽快地恢复正常运行。数据备份是数据容灾的基础。

衡量容灾系统有两个主要指标:RPO(RecoveryPointObject)和RTO(RecoveryTimeObject),其中RPO代表了当灾难发生时允许丢失的数据量;而RTO则代表了系统恢复的时间。

5.2.5数据库安全

数据库安全机制包括用户的身份认证、存取控制、数据库加密、数据审计、推理控制等内容。

5.3系统集成

5.3.1集成基础

系统集成的内容包括技术环境的集成、数据环境的集成和应用程序的集成。在技术上需要遵循的基本原则包括:开放性、结构化、先进性和主流化。

应用集成(互操作性)、数据集成(互通)、网络集成(互连)

5.4安全工程

信息系统三维模型:X轴是:安全机制;Y轴是:OSI网络参考模型;Z轴是:安全服务

安全空间的五大属性:认证、权限、完整、加密、不可否认。

安全技术:主要涉及加密、数字签名技术、访问控制、数据完整性、认证、数据挖掘等。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐