技术周总结 09.16~09.22 周日

news2024/11/16 22:48:08

文章目录

  • 一、09.16 周一
    • 1.1)问题01: 软件质量属性中"质量属性场景"、"质量属性环境分析"、"质量属性效用树"、"质量属性需求用例分析"分别是什么?
    • 1.2)问题02: 软件质量属性中 ATTM(架构权衡分析方法)介绍?
      • ATAM 的主要目标
      • ATAM 的核心概念
      • ATAM 的评估流程
        • 1. **阶段 0:准备工作**
        • 2. **阶段 1:介绍与需求确认**
        • 3. **阶段 2:架构驱动的评估**
        • 4. **阶段 3:权衡分析与报告**
      • ATAM 的评估输出
      • ATAM 的优点
      • ATAM 的局限性
      • 总结
  • 二、09.19 周四
    • 2.1) 面向对象系统建模中,用例之间的关系有哪些?要怎么理解
      • 用例之间的关系类型:
      • 题目中“选择专业”与“登录系统”用例之间的关系:
      • 题目中“参加模拟考试”与“批阅答卷”用例之间的关系:
    • 2.2)类之间的关系及示意图
      • 1. **关联(Association)**
      • 2. **聚合(Aggregation)**
      • 3. **组合(Composition)**
      • 4. **依赖(Dependency)**
      • 5. **继承/泛化(Generalization/Inheritance)**
      • 6. **实现(Realization)**
      • 关系的总结与应用
  • 三、09.21 周六
    • 3.1)问题01: resx文件是什么文件,有什么作用?
      • 示例
      • 使用方法

一、09.16 周一

1.1)问题01: 软件质量属性中"质量属性场景"、“质量属性环境分析”、“质量属性效用树”、"质量属性需求用例分析"分别是什么?

在软件工程中,为了确保软件产品的质量,通常会采用多种技术和方法来描述和评估软件的质量属性。以下是对“质量属性场景”、“质量属性环境分析”、“质量属性效用树”以及“质量属性需求用例分析”的解释:

  1. 质量属性场景 (Quality Attribute Scenarios)

    • 质量属性场景是一种用来描述软件在特定条件下表现的技术。
    • 通常包括三个主要组成部分:刺激(stimulus)、操作(operator)和响应(response)。
    • 刺激是指外部输入或触发事件;操作是系统内部的处理逻辑;响应是系统对外部刺激的输出或反应。
    • 通过构建具体的情景来评估软件在不同条件下的行为,以确保其满足预期的质量要求。
  2. 质量属性环境分析 (Environmental Analysis for Quality Attributes)

    • 这一术语可能并不常见,但它可以理解为对软件运行环境的分析,目的是确定环境因素如何影响软件的质量属性。
    • 分析的内容可能包括硬件平台、操作系统版本、网络条件等,这些都可能对软件的性能、可靠性、安全性等产生影响。
    • 环境分析有助于识别潜在的风险,并提前采取措施进行规避。
  3. 质量属性效用树 (Utility Tree for Quality Attributes)

    • 效用树是一种图形化的表示方法,用来描述软件质量属性及其子属性之间的层次关系。
    • 通过构建一棵树形结构,可以帮助团队理解不同质量属性之间的相互依赖关系,以及这些属性是如何共同影响用户体验的。
    • 树形结构中,顶层节点通常是软件的总体目标,中间层节点代表具体的质量属性(如性能、可用性、安全性等),而底层节点则可能是具体的度量指标或实现细节。
  4. 质量属性需求用例分析 (Use Case Analysis for Quality Attribute Requirements)

    • 用例分析是软件工程中常用的一种需求捕获方法,主要用于描述系统的行为以及它如何与外部参与者(如用户)互动。
    • 在这个上下文中,质量属性需求用例分析是指通过用例来捕捉和分析软件需要满足的质量属性要求。
    • 通过定义涉及质量属性的用例,可以确保系统设计和开发过程中充分考虑这些非功能性需求,并在实施过程中进行验证。

这些技术和方法帮助软件开发团队更好地理解、描述和评估软件的质量属性,从而确保最终产品能够满足用户的需求和期望。

1.2)问题02: 软件质量属性中 ATTM(架构权衡分析方法)介绍?

ATAMArchitecture Tradeoff Analysis Method,架构权衡分析方法)是由**SEI(Software Engineering Institute)**提出的一种用于评估软件架构质量的系统化方法。它通过分析架构设计中的质量属性(如性能、可用性、安全性、可修改性等)来识别潜在的架构风险和权衡点,从而帮助利益相关方更好地理解架构的优缺点,确保架构能够满足系统的需求。

ATAM 的主要目标

  • 识别架构中的风险和权衡:在不同的质量属性之间找到平衡点,比如性能与安全性、可修改性与性能之间的权衡。
  • 提高架构的质量:通过分析架构设计的决策是否支持系统的目标质量属性,改进架构设计,提高其质量。
  • 确保满足需求:验证架构是否能够满足关键的功能性和非功能性需求(质量属性)。

ATAM 的核心概念

  1. 质量属性(Quality Attributes)

    • ATAM 关注的质量属性是系统的非功能性需求,如性能、可用性、安全性、可修改性、可扩展性等。这些属性通常在设计决策中相互影响,需要在它们之间做出权衡。
  2. 架构决策(Architectural Decisions)

    • 架构决策是指在架构设计中做出的关于模块划分、接口定义、技术选型、模式应用等方面的决定。这些决策直接影响系统的质量属性表现。
  3. 权衡分析(Tradeoff Analysis)

    • 不同的质量属性往往相互制约。例如,为了提升性能,可能会牺牲安全性;提高可修改性可能会降低系统的效率。ATAM 通过权衡分析来帮助利益相关方理解这些影响并做出合理的架构选择。

ATAM 的评估流程

ATAM 的评估流程通常分为四个阶段,每个阶段都有特定的活动,评估的参与者包括架构师、开发团队、利益相关方等。

1. 阶段 0:准备工作
  • 组建评估团队,确定评估范围和目标。
  • 收集并准备与架构相关的背景资料。
2. 阶段 1:介绍与需求确认
  • 架构介绍:由架构师介绍系统的架构设计,包括架构风格、设计决策等。
  • 业务需求确认:确定系统的业务需求和关键的质量属性,了解系统需要解决的核心问题。
  • 利益相关方参与:包括客户、项目经理、开发人员等,明确他们对系统质量属性的关注点。
3. 阶段 2:架构驱动的评估
  • 场景驱动分析:根据系统的使用场景,分析架构设计是否能够支持关键的质量属性。场景可以是用例、非功能需求场景或架构变更场景。
  • 质量属性效用树:通过效用树分析不同质量属性的优先级和重要性,明确哪些质量属性对系统最关键。
  • 架构敏感点分析:识别出那些对质量属性有显著影响的架构决策(即敏感点),以及这些决策对不同属性的影响。
  • 架构风险识别:根据敏感点的分析,发现潜在的架构风险,如某些设计决策可能影响性能或扩展性。
4. 阶段 3:权衡分析与报告
  • 权衡分析:识别和讨论不同质量属性之间的权衡,并提出解决方案或改进建议。
  • 总结与报告:编写评估报告,记录发现的风险、建议的改进点和设计权衡,并提供给项目团队和利益相关方。

ATAM 的评估输出

ATAM 的最终结果包括:

  • 关键的质量属性需求:明确系统最重要的质量属性,并通过效用树显示其优先级。
  • 架构风险:识别在当前设计中存在的架构风险。
  • 权衡决策:展示在不同质量属性之间需要做出的权衡,并提供详细的分析。
  • 改进建议:针对风险提出具体的改进建议,优化架构设计。

ATAM 的优点

  • 系统化评估架构质量:ATAM 提供了一种结构化的方式,帮助架构师识别并解决架构中的潜在问题。
  • 支持利益相关方参与:通过让利益相关方参与评估过程,ATAM 能够确保架构决策符合项目的业务需求和技术要求。
  • 识别权衡和风险:ATAM 强调在不同质量属性之间做出合理的权衡,帮助团队在早期发现并解决设计中的潜在问题。

ATAM 的局限性

  • 时间与成本较高:ATAM 评估过程比较复杂,涉及到多个利益相关方,通常需要较长的时间和较高的成本来完成。
  • 依赖架构师的经验:ATAM 的评估结果在很大程度上依赖于架构师的经验和对系统的理解,不同的评估团队可能产生不同的评估结果。

总结

ATAM 是一种用于评估软件架构质量的有效方法,重点在于通过对质量属性的分析和权衡,帮助项目团队识别架构中的潜在风险并提出改进建议。通过系统化的评估过程,ATAM 能够确保架构设计不仅满足功能需求,还能在性能、可用性、可修改性、安全性等非功能需求上表现优异,从而支持系统的长期演进和稳定运行。

二、09.19 周四

2.1) 面向对象系统建模中,用例之间的关系有哪些?要怎么理解

在面向对象系统建模中,用例之间的关系主要有以下几种类型:

用例之间的关系类型:

  1. 包含关系(Include)

    • 一个用例包含了另一个用例的行为。被包含的用例是必要的步骤,必须执行。
    • 表示法:<<include>>
    • 示例:在一个“注册用户”用例中,可能包含“验证用户信息”的用例。
  2. 扩展关系(Extend)

    • 一个用例在特定条件下可能扩展另一个用例的行为。扩展的用例是可选的,只有在某些条件下才会执行。
    • 表示法:<<extend>>
    • 示例:在一个“提交订单”用例中,可能扩展“使用优惠券”的用例。
  3. 泛化关系(Generalization)

    • 用例之间具有继承关系,子用例继承父用例的行为。子用例可以增加或覆盖父用例的部分行为。
    • 表示法:实线三角箭头
    • 示例:一个“支付”用例可以泛化为“信用卡支付”和“网上银行支付”两个具体子用例。

题目中“选择专业”与“登录系统”用例之间的关系:

包含关系(Include)

  • 解释:用户必须先登录系统,才能执行“选择专业”的操作。也就是说,“选择专业”用例依赖于“登录系统”用例的执行。因此,“选择专业”用例包含了“登录系统”用例,这是一个强制性的操作。

  • 描述:在需求建模时,“选择专业”用例包含了用户“登录系统”的操作,这是必需的步骤,用户不可能在未登录的情况下直接选择专业。


题目中“参加模拟考试”与“批阅答卷”用例之间的关系:

扩展关系(Extend)

  • 解释:学生参与“模拟考试”后,教师才能进行“批阅答卷”。但从系统角度看,批阅答卷的行为是独立的,它不是“参加模拟考试”用例的必要步骤,只有在考试结束后,教师需要时才会进行批阅。因此,“批阅答卷”用例扩展了“参加模拟考试”用例。

  • 描述:学生提交答卷后,教师可以选择批阅或不批阅。批阅答卷作为可选的操作,依赖于“参加模拟考试”的完成。

2.2)类之间的关系及示意图

类之间的关系有 关联、聚合、组合、依赖、泛化(继承)、实现6种关系,示意图如下:
类之间的关系
在面向对象系统建模中,类之间的关系是系统设计的关键部分,类之间的关系通常反映对象之间的交互和依赖。主要有以下几种类型:

1. 关联(Association)

  • 描述:关联表示两个类之间存在某种联系,它们可以互相访问。关联可以是单向的或双向的。
  • 表示法:实线连接两个类,通常带有方向箭头(单向)或无箭头(双向)。可以在关联线旁标注角色名称和多重性(如 1:N)。
  • 示例:学生与课程的关系,一个学生可以选修多门课程,课程可以被多个学生选修。

2. 聚合(Aggregation)

  • 描述:聚合是关联的一种特殊形式,表示“整体-部分”的关系。聚合表示部分可以独立于整体存在,生命周期上不依赖于整体。
  • 表示法:带空心菱形的实线连接,菱形在“整体”类一侧,另一端是“部分”类。
  • 示例:一辆汽车与轮胎的关系,轮胎是汽车的一部分,但即使汽车不存在,轮胎仍可以单独存在。

3. 组合(Composition)

  • 描述:组合也是“整体-部分”的关系,但它比聚合更强,表示部分完全依赖于整体,不能单独存在。整体的生命周期决定了部分的生命周期。
  • 表示法:带实心菱形的实线连接,菱形在“整体”类一侧,另一端是“部分”类。
  • 示例:一本书与章节的关系,如果书不存在,章节也不存在。章节是书的组成部分,无法独立于书存在。

4. 依赖(Dependency)

  • 描述:依赖表示一个类依赖于另一个类,意味着一个类使用到另一个类,通常体现在类的方法中使用另一个类作为参数或局部变量。依赖关系通常是临时的,生命周期上不绑定。
  • 表示法:虚线带箭头的连接线,箭头指向被依赖的类。
  • 示例:方法调用的关系,比如一个打印机驱动类依赖于打印机类,来执行打印操作。

5. 继承/泛化(Generalization/Inheritance)

  • 描述:继承表示子类继承父类的属性和方法,子类是父类的特殊化。继承是“is-a”关系,表示某个类是另一个类的子类或派生类。
  • 表示法:实线三角箭头,箭头指向父类。
  • 示例:学生类继承了“人类”,学生是人类的子类,继承了人类的共性属性。

6. 实现(Realization)

  • 描述:实现表示一个类实现了接口中的方法。接口是定义类行为的抽象,而实现类提供了具体的实现。
  • 表示法:虚线三角箭头,箭头指向接口类。
  • 示例:假设有一个“可打印”接口,类“文档”实现了该接口的具体打印方法。

关系的总结与应用

  • 关联关系用于描述类之间相对松散的联系,适合表示具有可互相访问行为的类。
  • 聚合组合用于描述整体与部分的关系,聚合表示部分可以独立存在,组合表示部分依赖于整体。
  • 依赖用于表示临时的、弱耦合的依赖关系,通常体现在类的行为中。
  • 继承用于表示类之间的继承关系,子类继承父类的特征。
  • 实现用于类实现接口的情况,通常用于多态性设计。

每种关系都有其适用场景,在面向对象设计中根据需求选择合适的类之间的关系非常重要。

三、09.21 周六

3.1)问题01: resx文件是什么文件,有什么作用?

.resx文件是用于在.NET应用程序中存储资源的XML文件。它的全称是“XML Resource File”。这些文件通常包含字符串、图像、图标和其他类型的数据,可以在应用程序运行时加载和使用。

.resx文件的主要作用包括:

  1. 本地化和全球化:通过将不同语言的资源存储在不同的.resx文件中,可以轻松实现应用程序的多语言支持。根据用户的区域设置,应用程序可以选择加载相应的资源文件。

  2. 资源管理:将资源文件与代码分离,有助于更好地管理和维护。资源文件可以独立于代码进行修改,而不需要重新编译整个应用程序。

  3. 简化开发:开发工具(如Visual Studio)提供了对.resx文件的良好支持,使得开发者可以通过图形界面轻松编辑资源内容。

示例

一个简单的.resx文件可能如下所示:

<?xml version="1.0" encoding="utf-8"?>
<root>
  <data name="HelloWorld" xml:space="preserve">
    <value>Hello, World!</value>
  </data>
  <data name="AppTitle" xml:space="preserve">
    <value>My Application</value>
  </data>
</root>

在这个例子中,HelloWorldAppTitle是资源的键,它们对应的值分别是"Hello, World!""My Application"

使用方法

在C#代码中,可以通过ResourceManager类来访问.resx文件中的资源。例如:

using System;
using System.Resources;

class Program
{
    static void Main()
    {
        ResourceManager rm = new ResourceManager("MyNamespace.MyResource", typeof(Program).Assembly);
        string hello = rm.GetString("HelloWorld");
        string title = rm.GetString("AppTitle");
        Console.WriteLine(hello);
        Console.WriteLine(title);
    }
}

在这个例子中,MyNamespace.MyResource是资源文件的命名空间和名称,GetString方法用于获取字符串类型的资源。

通过使用.resx文件,可以显著提高应用程序的可维护性和扩展性,特别是在需要支持多语言和多区域设置的情况下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2154192.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Sharding-Jdbc+Mybatis+SpringBoot的分库分表实现

Sharding-JdbcMybatisSpringBoot的分库分表实现 1、sharding jdbc简介 Sharding-JDBC定位为轻量级java框架&#xff0c;使用客户端直连数据库&#xff0c;以jar包形式提供服务&#xff0c;未使用中间层&#xff0c;无需额外 部署&#xff0c;无其他依赖&#xff0c;DBA也无需…

SQL - 进阶语法(一)

1. SELECT TOP SELECT TOP Number|Percentage column1 from ... 选择所需要的数据的前多少行&#xff0c;Number表示具体数值&#xff0c;Percentage表示百分比 2. LIKE 搜索列元素的指定模式&#xff0c;匹配对应的信息进行自定义搜索 通常需要搭配通配符进行使用 %替代…

FPGA与Matlab图像处理之直方图均衡化

文章目录 一、什么是直方图?二、什么是直方图均衡化&#xff1f;三、Matlab实现直方图均衡化的步骤第一步&#xff1a; 彩色图像转成灰度图像第二步&#xff1a;提取亮度通道的直方图第三步&#xff1a;累计亮度通道的像素值频率第四步&#xff1a; 映射到新的灰度值 四、Veri…

使用pe工具制作ubuntu备份系统和还原系统

使用pe工具制作ubuntu备份系统和还原系统 备份系统还原系统修复磁盘教程修复引导教程为什么使用pe工具 1,因为我个人觉得这个工具实现起来比systemback软件操作起来报错少些,而且装的快,其他系统同理 实验准备 1,一个电脑,一个pe启动U盘 备份系统 插入U盘,开机进入pe系…

数据结构|二叉搜索树

&#x1f36c; mooridy-CSDN博客 &#x1f36c;数据结构专栏&#xff08;更新中&#xff09; 目录 1. ⼆叉搜索树的概念 2. ⼆叉搜索树的性能分析 3.⼆叉搜索树key和key/value key搜索场景 key/value搜索场景 4. 二叉搜索树的代码实现 4.1 ⼆叉搜索树的插⼊ 4.2 ⼆叉搜索…

harbor私有镜像仓库,搭建及管理

私有镜像仓库 docker-distribution docker的镜像仓库&#xff0c;默认端口号5000 做个仓库&#xff0c;把镜像放里头&#xff0c;用什么服务&#xff0c;起什么容器 vmware公司在docker私有仓库的基础上做了一个web页面&#xff0c;是harbor docker可以把仓库的镜像下载到本地&…

docker入门总结(附错误处理,持续更新)

安装、启动、卸载 卸载掉旧版本的 Docker yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engineDocker安装&#xff08;选其一&#xff09;…

CTC loss 博客转载

论文地址&#xff1a; https://www.cs.toronto.edu/~graves/icml_2006.pdf 为了对应这个图&#xff0c;我们假设一种符合的模型情况&#xff1a; 英文OCR&#xff0c;37个类别&#xff08;26个小写字母10个汉字空格&#xff09;&#xff0c;最大输出长度8个字符 模型预测结果…

C++:多态(协变,override,final,纯虚函数抽象类,原理)

目录 编译时多态 函数重载 模板 运行时多态 多态的实现 实现多态的条件 协变 析构函数的重写 override 关键字 final 关键字 重载、重写、隐藏对比 纯虚函数和抽象类 多态的原理 多态是什么&#xff1f; 多态就是有多种形态 多态有两种&#xff0c;分别是编译时…

【Linux-基础IO】C语言文件接口回顾 系统文件概念及接口

目录 一、C语言文件接口回顾 C语言基础知识 C中文件操作示例 二、系统文件概念及接口 重定向基本理解的回顾 文件的基本概念 系统调用接口 open read write close lseek 什么是当前路径 一、C语言文件接口回顾 引言&#xff1a;我们并不理解文件&#xff01;从语…

【JavaEE】——多线程(join阻塞,计算,引用,状态)

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯&#xff0c;你们的点赞收藏是我前进最大的动力&#xff01;&#xff01;希望本文内容能够帮助到你&#xff01; 目录 一&#xff1a;join等待线程结束 1&#xff1a;知识回顾 2&#xff1a;join的功能就是“阻塞等待” …

MK-1000门控管理系统

MK-1000门控系统简介 1.1 前言 中大型仓库一般由多个仓库组成&#xff0c;每个仓库具有上百个仓库门&#xff0c;人工控制仓库门的开启、闭合等耗时耗力&#xff0c;随着电子信息自动化发展&#xff0c;集中控制仓库门成为现实。本系统可通过网络灵活控制某个仓库的某个门开启、…

共轭传热和浸没边界耦合相关的论文的阅读笔记

Diffuse-interface immersed-boundary framework for conjugate-heat-transfer problems https://doi.org/10.1103/PhysRevE.99.053304 三区 混合交错离散体积和非交错离散体积 看不懂&#xff0c;不会 FVM 计算固体体积分数的步骤 对于每一个点&#xff1a; 找固体表面上…

【多维动态规划】64. 最小路径和(面试真题+面试官调整后的题目)

64. 最小路径和 难度&#xff1a;中等 力扣地址&#xff1a;https://leetcode.cn/problems/minimum-path-sum/description/ 1. 原题以及解法 1.1 题目 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和…

数据库提权【笔记总结】

文章目录 UDF提权以有webshell只有数据库权限条件复现msf工具sql语句提权 MOF提权前言条件复现msf工具php脚本提权 sqlserver提权前言条件xp_cmdshell提权复现 沙盒提权介绍复现 Oracle提权靶场搭建执行任意命令复现 通过注入存储过程提权&#xff08;低权限提升至DBA&#xff…

HTML-DOM模型

1.DOM模型 window对象下的document对象就是DOM模型。 DOM描绘了一个层次化的节点树&#xff0c;每一个节点就是一个html标签&#xff0c;而且每一个节点也是一个DOM对象。 2.操作DOM 2.1.获取DOM对象常用方法 获取DOM对象的常用方法有如下几种&#xff1a; getElementById(…

Linux入门学习:Git

文章目录 1. 创建仓库2. 仓库克隆3. 上传文件4. 相关问题4.1 git进程阻塞4.2 git log4.3 上传的三个步骤在做什么4.4 配置邮箱/用户名 本文介绍如何在Linux操作系统下简单使用git&#xff0c;对自己的代码进行云端保存。 1. 创建仓库 &#x1f539;这里演示gitee的仓库创建。…

Linux 基础IO 1

文件操作 基础IO 在程序中若需要读取文件数据或者将数据永久存入需要使用文件因为程序的产生的数据都是在内存中的&#xff0c;只要关闭程序就会释放掉不会&#xff0c;所以在一些程序中我们难免需要对文件进程操作。无论我们是存入数据还是提取数据前提是有这个数据并清楚它…

VGG16模型实现新冠肺炎图片多分类

1. 项目简介 本项目的目标是通过深度学习模型VGG16&#xff0c;实现对新冠肺炎图像的多分类任务&#xff0c;以帮助医疗人员对患者的影像进行快速、准确的诊断。新冠肺炎自爆发以来&#xff0c;利用医学影像如X光和CT扫描进行疾病诊断已成为重要手段之一。随着数据量的增加&am…

联想(lenovo) 小新Pro13锐龙版(新机整理、查看硬件配置和系统版本、无线网络问题、windows可选功能)

新机整理 小新pro13win10新机整理 查看硬件配置和系统版本 设置-》系统-》系统信息 无线网络问题 部分热点可以&#xff0c;部分不可以 问题&#xff1a;是因为自己修改了WLAN的IP分配方式为手动分配&#xff0c;导致只能在连接家里无线网的时候可以&#xff0c;连接其他…