COSMIC MEASUREMENT STRATEGY PHASE学习笔记

本文介绍了软件度量策略,包括确定度量目的、定义度量范围、辨认功能用户及系统颗粒级别等内容。通过实例说明了如何针对不同目的选择合适的度量范围,并详细解释了功能用户及其规则。

COSMIC MEASUREMENT STRATEGY PHASE

 

1 确定度量目的

A statement that defines why a measurement is required, and what the result will be used for.

陈述为什么要度量,以及度量的结果用于什么地方。

 

 

1.1          度量目的决定了要度量哪一种规格(The purpose of a measurement determines the particular size that will be measured

1.2          度量目的范例

以下是典型的度量目的

l  To measure the size of the FUR as they evolve, as input to a process to estimate development effort

l  To measure the size of changes to the FUR after they have been initially agreed, in order to manage project ‘scope creep’

l  To measure the size of the FUR of the delivered software as input to the measurement of the developer’s performance

l  To measure the size of the FUR of the total software delivered, and also the size of the FUR of the software which was developed, in order to obtain a measure of functional re-use

l  To measure the size of the FUR of the existing software as input to the measurement of the performance of those responsible for maintaining and supporting the software

l  To measure the size of some changes to (the FUR of) an existing software system as a measure of the size of the work-output of an enhancement project team

l  To measure the size of functionality of the existing software provided to human functional users

这些目的帮助度量人员决定:

l  the scope to be measured and hence the artifacts which will be needed for the measurement

l  the functional users (as will be shown in section 2.3, the functional size changes depending on who or what is defined as the functional user)

l  the point in time in the project life-cycle when the measurement will take place

l  the required accuracy of the measurement, and hence whether the COSMIC measurement method should be used, or whether a locally-derived approximation version of the COSMIC method should be used (e.g. early in a project’s life-cycle, before the FUR are fully elaborated). Both of these latte two points will determine the level of granularity at which the FUR will be measured.

 

2               定义度量范围

度量范围定义

The set of Functional User Requirements to be included in a specific functional size measurement exercise.

NOTE: A distinction should be made between the ‘overall scope’, i.e. all the software that should be measured according to the purpose, and the ‘scope’ of any individual piece of software within the overall scope, whose size should be measured separately. In this Measurement Manual, the term ‘scope’ (or the expression ‘measurement scope’) will relate to an individual piece of software whose size must be measured separately.

FUR定义

A sub-set of the User Requirements. Requirements that describe what the software shall do, in terms of tasks and services.

NOTE: Functional User Requirements include but are not limited to:

l  data transfer (for example Input customer data; Send control signal)

l  data transformation (for example Calculate bank interest; Derive average temperature)

l  data storage (for example Store customer order; Record ambient temperature over time)

l  data retrieval (for example List current employees; Retrieve latest aircraft position)

Examples of User Requirements that are not Functional User Requirements include but are not limited to:

l  quality constraints (for example usability, reliability, efficiency and portability)

l  organizational constraints (for example locations for operation, target hardware and compliance to standards)

l  environmental constraints (for example interoperability, security, privacy and safety)

l  implementation constraints (for example development language, delivery schedule)

范围(Scope)定义

a) The scope of a Functional Size Measurement (FSM) shall be derived from the purpose of the measurement.

b) The scope of any one measurement shall not extend over more than one layer of the software to be measured

2.1 度量范围由目的决定

如果软件系统的构架是将软件分成若干层次,那么各个层次应该分别度量之。也就是说,每个层次都有自己的度量范围。同样的,如果软件系统的构架只有一层,该软件层次不同模块构成的,而每个模块都由不同技术开发的,那么就必须为每一个模块定义自己的度量范围。因为不同的技术会带来不同的开发效率,所以这种做法是必要的。

总之,这一步的目的是决定软件那些部分在度量范围之内,哪些在度量范围之外。

2.2 度量范围和分解层次实例

以下是通用的范围:

l  An enterprise portfolio

l  A contractually-agreed statement of requirements

l  项目团队发布产品 (i.e. including that obtained by exploiting existing software parameters, bought-in packages and re-usable code, any software used for data conversion and subsequently discarded, and utilities and testing software developed specifically for this project)

l  项目团队开发产品 (i.e. including any software developed by the team and used for data conversion but subsequently discarded, and any utilities and testing software developed specifically for this project, but excluding all functionality obtained by changing parameters and exploiting re-usable code or by bought-in packages)

l  All the software in a layer

l  A software package

l  An application

l  A major (‘peer’) component of an application

l  A re-usable object-class

l  All the changes required for a new release of a piece of existing software

上述的通用范围与相应的分解层次相对应。具体定义如下

分解层次

Any level of division of a piece of software showing its components, sub-components, etc

NOTE: Not to be confused with ‘level of granularity’

2.3

层定义

A layer is a partition resulting from the functional division of a software architecture

l  which together with hardware forms a whole computer system where:

l  layers are organized in a hierarchy

l  there is only one layer at each level in the hierarchy

l  there is a ‘superior/subordinate’ hierarchical dependency between the functional services provided by software in any two layers in the software architecture that exchange data directly

l  the software in any two layers in the software architecture that exchange data interpret only part of that data identically

2.4 点组件(peer component)

点组件定义

A peer component is a partition resulting from the functional division of the FUR of a piece of software within one layer into a mutually co-operating set such that each partition fulfills a specific portion of the FUR of that piece of software.

NOTE: The term ‘peer piece of software’ is used where any independent (and peer)

piece of software is meant.

点组件的一个典型例子是软件分成了三个主要组件:UI组件,事务规则组件,数据服务组件。

 

3辨认功能用户(FU)

3.1 软件功能数根据功能用户而变化
3.2
功能用户

功能用户:任何与被度量软件发生关系的实体。(ISO/IEC 14143/1:2007

A (type of) user that is a sender and/or an intended recipient of data in the Functional User Requirements of a piece of software.

功能用户之规则

a) The functional users of a piece of software to be measured shall be derived from the purpose of the measurement

b) When the purpose of a measurement of a piece of software is related to the effort to develop or modify the piece of software, then the functional users should be those for whom the new or modified functionality must be provided.

系统边界:

The boundary is defined as a conceptual interface between the software being measured and its functional users.

NOTE: The boundary of a piece of software is the conceptual frontier between this piece and the environment in which it operates, as it is perceived externally from the perspective of its functional users. The boundary allows the measurer to distinguish, without ambiguity, what is included inside the measured software from what is part of the measured software’s operating environment.

系统边界规则

a) Identify the functional user(s) that interact with the software being measured. The boundary lies between the functional users and this software.

b) By definition, there is a boundary between each identified pair of layers where the software in one layer is the functional user of software in another, and the latter is to be measured. Similarly, there is a boundary between any two peer components in the same layer; in this case each component can be a functional user of its peer.

4辨认系统颗粒级别

41 设立标准系统颗粒级别的必要性

系统颗粒级别定义:

Any level of expansion of the description of a single piece of software (e.g. a statement of its requirements, or a description of the structure of the piece of software) such that at each increased level of expansion, the description of the functionality of the piece of software is at an increased and uniform level of detail.

NOTE: Measurers should be aware that when requirements are evolving early in the life of a software project, at any moment different parts of the required software functionality will typically have been documented at different levels of granularity

42 关于系统颗粒级别的补充说明

提高系统颗粒级别相当于’zooming in’操作而不改变系统边界。这个过程中不要对于以下概念有误解:

l  Zooming-in on an artefact describing some software in order to reveal different sub-sets of the functionality delivered to different users, hence probably limiting the functionality to be measured

l  Zooming-in on an artefact describing some software, or on the software itself, and at the same time decomposing it in order to reveal the structure of its components, sub-components, etc (i.e. revealing different ‘levels of decomposition’ – see section 2.2.2 above). Zooming-in to lower levels of decomposition of the software may result (from the measurement purpose) in sub-dividing the overall measurement scope

l  Evolving the description of some software as it progresses through its development cycle, e.g. from requirements to logical design, to physical design, etc. Whatever the stage in the development of some software, we are only interested in the FUR for measurement purposes

43 标准系统颗粒级别

功能过程系统颗粒级别定义:

A level of granularity of the description of a piece of software at which the functional users

are individual humans or engineered devices or pieces of software (and not any groups of these) AND

detect single occurrences of events that the piece of software must respond to (and not any level at which groups of events are defined)

NOTE 1: In practice, software documentation containing functional user requirements often describes functionality at varying levels of granularity, especially when the documentation is still evolving.

NOTE 2: ‘Groups of these' (functional users) might be, for example, a ‘department’ whose members handle many types of functional processes; or a ‘control panel’ that has many types of instruments; or ‘central systems’.

NOTE 3: ‘Groups of events’ might, for example, be indicated in a statement of FUR at a high level of granularity by an input stream to an accounting software system labeled ‘sales transactions’; or by an input stream to an avionics software system labeled ‘pilot commands’

功能过程系统颗粒级别规则:

a) 功能度量应该在功能过程系统颗粒级别下进行度量。(Functional size measurement should be made at the functional process level of granularity)

b) Where a functional size measurement is needed of some FUR that have not yet evolved to the level where all the functional processes have been identified and all the details of their data movements have been defined, measurements should be made of the functionality that has been defined, and then scaled to the level of granularity of functional processes. (See the ‘Advanced and Related Topics’ document for methods of ‘approximate sizing, i.e. of estimating a functional size early in the process of establishing FUR.)

4.4 一个关于在不同系统颗粒级别下的功能性的例子

打开链接下载源码: https://pan.quark.cn/s/05da658a2377 在信息技术领域中,输入法作为操作系统的一个核心构成部分,赋予了用户利用键盘输入多语种文字的能力。"ime-日语输入法安装必须文件"这一资源是一套为日语输入法部署而设计、包含全部必要元素的集成包,对于那些需要在个人计算机上执行日语文字输入的操作者而言具有不可替代的作用。接下来将深入剖析其中所包含的核心概念。 IME(Input Method Editor,输入法编辑器)是操作系统内的一种软件支持服务,其功能在于为非拉丁字符环境提供文字输入方案,例如中文、日文、韩文等文字系统。在日本地区,IME通常被用来将罗马字(罗马拼音)形式的输入转换为平假名、片假名乃至汉字。此压缩文件内含的日语IME文件夹即为执行这一转换功能的关键要素。 kbdjpn.dll被视为一个关键的系统性文件,其意指“Japanese Keyboard Layout”(日语键盘布局)。该动态链接库文件负责设定日语键盘的排列方式及快捷操作组合,使用户能够借助常规的QWERTY键盘输入日语文字。倘若缺少这一文件,即便已经安装了日语输入法,依然无法正常显示及输入日语字符。 另外,imjp81k.dll同样是一个重要的系统性构成,它属于日语IME的范畴,全称为“Input Method Japanese for Windows 8.1 and later, Katakana mode”(适用于Windows 8.1及更新版本的日语输入法,片假名模式)。该文件支持日语的片假名输入,是处理日语输入的核心组成部分。在安装或升级日语输入法的过程中,保证imjp81k.dll的准确性与完整性显得尤为关键。 压缩包所含的"Window...
内容概要:本文研究了基于DPWMA调制与正负序分离的ANPC三电平并网逆变器前馈控制策略,旨在解决传统三电平逆变器在谐波抑制、电网不平衡适应性及动态响应方面的技术瓶颈。通过构建融合双极性倍频脉宽调制(DPWMA)、正负序分离锁相控制与电网电压前馈的一体化控制体系,全面优化逆变器的输出波形质量、相位同步精度与抗扰能力。文章深入分析了ANPC三电平拓扑的结构优势,如开关损耗均衡、中点电位可控性强和电压利用率高等特点,并设计了包含信号采集、核心控制与调制驱动三层架构的完整控制系统。通过Simulink仿真平台对稳态运行、电网不平衡及动态扰动等多种工况进行验证,结果表明该策略显著降低了总谐波畸变率,提升了锁相精度与系统动态稳定性,有效增强了逆变器在复杂电网环境下的适应能力和运行可靠性。; 适合人群:具备电力电子、自动控制及新能源并网相关基础知识,从事新能源发电、微电网、电力系统仿真等领域的科研人员与工程技术人员,特别适合研究生及以上层次的研究者。; 使用场景及目标:①用于提升大功率并网逆变器在电网电压不平衡、谐波干扰和动态扰动等复杂工况下的运行性能;②为高电能质量要求的应用场景提供先进控制解决方案;③支持科研仿真、论文复现与实际工程项目中的高性能并网控制系统设计与优化。; 阅读建议:建议结合提供的Simulink仿真模型进行实践操作,重点理解DPWMA调制机制、正负序分离锁相算法与电网电压前馈控制之间的协同作用,按照文档结构系统学习,并与传统控制策略进行对比分析,以深入掌握改进策略的技术优势与实现细节。
代码下载链接: https://pan.quark.cn/s/d9794888cbc0 ### G代码经典解释程序知识点详解 #### 一、引言 随着数控技术的持续进步,尤其是开放式数控系统的广泛应用,软件层面的设计在数控领域占据了核心地位。G代码作为数控机床编程的基础语言,在自动化生产流程中发挥着不可或缺的作用。本文的核心内容是关于一个基于Linux平台、采用C语言开发的G代码解释程序的设计思路及其具体实现。 #### 二、G代码解释器概述 **1. 设计背景** - 当前数控技术发展的主要方向是开放式数控系统,这类系统具备出色的可扩展能力、良好的移植性、高度的互换性以及优异的互操作性等优势。 - 计算机硬件技术的快速发展使得在PC平台上构建数控系统成为可能,进而推动了全软件式数控系统的普及。 **2. G代码解释器的重要性** - G代码解释器在全软件式数控系统中是至关重要的组成部分,其主要职责是将G代码转化为数控系统能够识别的数据格式。 - 为了提升数控系统的开放程度,G代码解释器的设计必须兼顾开放性和灵活性。 #### 三、G代码解释器设计与实现 **1. 总体结构设计** - G代码解释器主要由两个核心部分构成:G代码关键字函数表(GKFT)和G代码分组(GG)。 - GKFT用于解析G代码中的关键字,它是解释器的核心骨架;而GG则是语法检查的基础框架。 **2. G代码关键字函数表(GKFT)** - GKFT是一种专门用于存储G代码关键字及其关联处理函数的数据结构。 - 解释器通过查询GKFT,能够根据特定的G代码关键字调用相应的处理函数,从而完成对G代码的有效解析。 - 此种设计方法不仅简化了解释器的构建过程,同时也增强了其可扩展性,因为新增功能...
已经博主授权,源码转载自 https://pan.quark.cn/s/458849d2eac8 Microblaze代表由Xilinx公司研发的一款软核处理器,其核心特性在于使用户能够针对FPGA(Field Programmable Gate Array)平台进行嵌入式系统的个性化构建。此“Xinlin中Microblaze的培训教程”致力于辅助学习人员深入理解和熟练掌握Microblaze在Xilinx开发环境中的实际应用。 一、Microblaze基础 Microblaze作为一款可配置的32位RISC处理器,具备高度适应性,允许在设计中根据具体需求对性能、功耗及面积进行灵活调整。Microblaze支持多种指令集架构(ISA),涵盖Xtensa-like和Classic两种模式,并且与包括UART、SPI、I2C在内的多种外设接口标准保持兼容。 二、Xilinx ISE与Vivado工具 Xilinx ISE(Integrated Software Environment)是一个用于FPGA系统设计、实现和调试的集成开发平台,而Vivado则是一款功能更为先进且全面的工具套件。在本次教程中,学员将学会如何在上述工具中配置和执行Microblaze处理器,以及如何开发相关的硬件描述语言(HDL)代码。 三、Microblaze硬件设计 在Xinlin提供的教程里,学员将学习如何在Xilinx FPGA中部署Microblaze处理器。这涉及到选择合适的处理器配置参数,如时钟频率、缓存容量和外设接口设置。此外,学员还将接触到创建和连接内存模块、中断控制器以及其他必需硬件组件的方法。 四、软件开发 Microblaze的软件开发通常涉及嵌入式编程,采用C或C++语言来...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值