目标驱动的软件度量(选译)
1?介紹
1.1?目的
這本指導(dǎo)書講述了如何識(shí)別和定義軟件度量來支持你們自己組織的商業(yè)目標(biāo)。我們要講解的這個(gè)過程會(huì)提供深入對(duì)于你們來說最重要的管理的洞察力。這些度量能夠追溯到你們的商業(yè)目標(biāo),因此你們的數(shù)據(jù)收集活動(dòng)會(huì)更好地集中在他們既定的目標(biāo)上。
我們把這個(gè)過程稱之為"目標(biāo)驅(qū)動(dòng)度量"。在目標(biāo)驅(qū)動(dòng)度量中,首要的問題不是"我應(yīng)當(dāng)運(yùn)用什么指標(biāo)?",而是"什么是我想要知道的或要學(xué)習(xí)的?"[引自R ombach 89]
2?基礎(chǔ)
2.1?為什么度量
度量軟件過程,產(chǎn)品和資源有四個(gè)理由:
??為了提取特征 to characterize
??為了評(píng)價(jià) to evaluate
??為了預(yù)測(cè) to predict
??為了提高 to improve
我們提取特征,來獲得對(duì)過程,產(chǎn)品,資源和環(huán)境的理解;來建立可供未來評(píng)估作比較的基線。
2.2?度量元素
通過度量這個(gè)過程,數(shù)值或象征信號(hào)被分配到現(xiàn)實(shí)中的實(shí)體的屬性上,按照清淅定義的規(guī)則得到這些屬性的特征[Fenton95]。度量要求:
??實(shí)體(所關(guān)心的對(duì)象)
??屬性(實(shí)體的特征)
??標(biāo)識(shí)屬性值的尺度(和計(jì)量單位)
總之,屬性的分類或數(shù)量是我們要度量的東西。
這意味著,在我們開展度量之前,我們必須清淅地識(shí)別實(shí)體,下文要講述屬性和我們用于標(biāo)識(shí)屬性值的計(jì)量單位。
Figures 2-1 through 2-3 顯示了軟件企業(yè)產(chǎn)生、使用或管理的實(shí)體的例子。
?
?
?
2.3?客觀和主觀的度量
在一些圈子中有這樣一種趨勢(shì),認(rèn)為所有的度量都應(yīng)當(dāng)是客觀的。我們強(qiáng)烈表示不同意。堅(jiān)持客觀會(huì)遺失這一點(diǎn),就是客觀和主觀度量經(jīng)常表述基本的不同需要。而且,實(shí)際情況是不客觀的,而是主觀的,一致,可重復(fù)的,最小化度量的錯(cuò)誤和噪聲。
3?一個(gè)識(shí)別和定義軟件度量的過程模型
本章提供了目標(biāo)驅(qū)動(dòng)度量模型的概況和實(shí)施路徑,詳細(xì)的說明會(huì)在第四章。在目標(biāo)驅(qū)動(dòng)的度量中要強(qiáng)調(diào)的是,當(dāng)收集有助于達(dá)到商業(yè)目標(biāo)的信息時(shí),和當(dāng)保持度量與商業(yè)目標(biāo)一致的跟蹤能力時(shí),度量本身的工作量是不能夠不清不楚的。
This chapter provides an overview and roadmap for the goal-driven measurement process
that we describe in Chapter 4. The emphasis throughout goal-driven measurement is on
gathering information that helps you achieve your business goals-and on maintaining
traceability from measures back to business goals, so that measurement efforts do not
wander astray.
目標(biāo)驅(qū)動(dòng)度量過程的結(jié)構(gòu)來自于由Victor Basili and Dieter Rombach [Basili 88, Basili 89, Rombach 89].報(bào)告的想法和經(jīng)驗(yàn)。
這個(gè)過程的動(dòng)力學(xué)和幾個(gè)圖解來源于由ami ESPRIT project [ami 92, Pulford 96]開發(fā)的度量過程指南。
The structure of the goal-driven measurement process draws extensively on ideas and
experience reported by Victor Basili and Dieter Rombach [Basili 88, Basili 89, Rombach 89].
The process dynamics and several of the illustrations that we use have their origins in
measurement process guidelines developed by the ami ESPRIT project [ami 92, Pulford 96].
The goal-driven measurement process also incorporates experience that we have gained at
the Software Engineering Institute in designing and using checklist-based frameworks for
defining software measures and communicating measurement results [Florac 92, Goethert
92, Park 92, SEI 96].
3.1?總覽:概念和過程步驟Overview: The Precepts and the Process Steps
CMU/SEI-96-HB-002 15
目標(biāo)驅(qū)動(dòng)的度過程基于三個(gè)概念,包括10個(gè)步驟。
這三個(gè)概念是
??度量目標(biāo)是來自于商業(yè)目標(biāo)
??由模型來獲得度量的環(huán)境和焦點(diǎn)
??GQ(I)M把非正式的目標(biāo)變成可操作的度量結(jié)構(gòu)。
GQ(I)M是目標(biāo)(Goal)問題(Question)(指標(biāo))(Indicator)-度量(Measure)的首字母縮寫。這個(gè)插入的"I"使得這與相近的GQM區(qū)別開來。
The goal-driven measurement process is based on 3 precepts, and it consists of 10 steps.
The three precepts are
o Measurement goals are derived from business goals.
o Evolving mental models provide context and focus.
o GQ(I)M1 translates informal goals into executable measurement structures.
十個(gè)步驟是:
1,?識(shí)別商業(yè)目標(biāo)
2,?識(shí)別你要學(xué)習(xí)或知道的東西
3,?識(shí)別你的子目標(biāo)
4,?識(shí)別與子目標(biāo)相關(guān)的實(shí)體和屬性
5,?公式化你的度量目標(biāo)
6,?識(shí)別量化的問題和相關(guān)的指標(biāo),這些會(huì)用于實(shí)現(xiàn)你的度量目標(biāo)
7,?識(shí)別用于獲得指標(biāo)的要收集的數(shù)據(jù)元素,這些個(gè)指標(biāo)是可以幫助你回答上述問題
8,?定義度量的使用,使得這些定義具有可操作性
9,?識(shí)別你使用度量的行動(dòng)
10,?準(zhǔn)備一個(gè)計(jì)劃來實(shí)施度量
The 10 steps are
1. Identify your business goals.
1 GQ(I)M is an acronym for goal-question-(indicator)-measure. The "I" in parentheses distinguishes
this from the closely related GQM methodology introduced and described by Basili and Rombach
[Basili 88, Basili 89, Rombach 89]. Our use of GQ(I)M is described in Sections 4.5-4.8.
2. Identify what you want to know or learn.
3. Identify your subgoals.
4. Identify the entities and attributes related to your subgoals.
5. Formalize your measurement goals.
6. Identify quantifiable questions and the related indicators that you will use to
help you achieve your measurement goals.
7. Identify the data elements that you will collect to construct the indicators
that help answer your questions.
8. Define the measures to be used, and make these definitions operational.
9. Identify the actions that you will take to implement the measures.
10. Prepare a plan for implementing the measures.
4?實(shí)施目標(biāo)驅(qū)動(dòng)過程
4.1?識(shí)別你們的商業(yè)目標(biāo)
4.2?識(shí)別你要學(xué)習(xí)或知道的東西
A prudent question is one-half of wisdom.
- Francis Bacon
一個(gè)明確的問題就是一半的智慧 
?????????????????? -------培根
識(shí)別了商業(yè)目標(biāo)之后,下一步就是開始識(shí)別你為了理解,評(píng)估,預(yù)測(cè)或提高與你目標(biāo)相關(guān)的活動(dòng),想知道什么。通過提出類似這樣的問題:"什么活動(dòng)我要管理或執(zhí)行?","我要實(shí)現(xiàn)什么,提高什么",并完成這樣的描述"為了做這個(gè),我需要做…"。
With your business goals identified, the next step is to begin identifying what you would like
to know in order to understand, assess, predict, or improve the activities related to achieving
your goals. By asking questions such as
"What activities do I manage or execute?"
and
"What do I want to achieve or improve?"
and by completing statements such as
"To do this, I will need to…",
你能夠開發(fā)識(shí)別你可能需要的量化的信息。你應(yīng)當(dāng)幾次重復(fù)這些問題,把頂級(jí)的目標(biāo)分解到具體的事情和條目上,這些事情是你想要完成的,這些條目是你要表達(dá)闡述的。
?
you can begin identifying the quantitative information that you would like to have. You
should repeat these questions several times as you break top-level goals down into specific
things that you want to accomplish and issues that you will need to address. The ellipse in
Figure 4-4 highlights this part of the process and shows how it draws upon your mental
model of the processes you manage.
Scenario
4.2.1?場(chǎng)景
我們?cè)谶@份材料中使用幾個(gè)例子,來顯示給你實(shí)體,屬情和涉及的概念模型是如何來幫助指導(dǎo)和關(guān)注目標(biāo)驅(qū)動(dòng)的過程。為了后續(xù)的例子,我們提供了如下的場(chǎng)景:
??你的組織剛剛完成了一次軟件過程評(píng)估。
??其中的一個(gè)發(fā)現(xiàn)是你們的項(xiàng)目能夠準(zhǔn)時(shí)的發(fā)布軟件功能和文檔,但是客戶并不象你想象中的那樣滿意。
??相關(guān)的行動(dòng)是提高客戶滿意度。
??你的過程改進(jìn)小組已經(jīng)識(shí)別了這個(gè)行動(dòng)為它們首要的目標(biāo)。
??你是一個(gè)項(xiàng)目經(jīng)理,你需要一系列的度量來幫助你的項(xiàng)目向這個(gè)目標(biāo)前進(jìn)。
We use several examples in the materials that follow to show you how entities, attributes,
and evolving mental models help guide and focus the goal-driven process. To give
substance to these examples, we offer the scenario shown in Figure 4-5.
Scenario
o Your organization has just completed a software process
assessment.
o One of the findings was that your projects are delivering
software functions and documentation on time, but
customers are not as satisfied as you would like them to be.
o The related action item is: Improve customer satisfaction.
o Your process improvement team has identified this action
item as one of its primary goals.
o You are a project manager, and you need a set of measures
that will help your project make progress toward this goal.
Figure 4-5: Scenario
4.2.2?實(shí)體問題列表
我們推薦的用于識(shí)別和構(gòu)勒問題的工具被稱為"一個(gè)實(shí)體問題列表"
使用這個(gè)工具的一個(gè)例子就在ami Handbook中有相似的闡述。任務(wù)排列如下:
1.?從一個(gè)在第一步中發(fā)現(xiàn)頂級(jí)目標(biāo)開始
2.?識(shí)別你的小組要涉及的人或小組,這可能是你或你的組織的領(lǐng)導(dǎo)。這個(gè)定義了你的處景以及你和你的小組所扮演的角色,這會(huì)在任務(wù)3到任務(wù)6中以及下面的目標(biāo)驅(qū)動(dòng)過程步驟中用到。
3.?建立一個(gè)你這個(gè)角色的相關(guān)過程草圖(概念模型),當(dāng)你做這個(gè),應(yīng)當(dāng)由你想要實(shí)現(xiàn)的,和你要表達(dá)的條目來指導(dǎo)你。
28 CMU/SEI-96-HB-002
The Entity-Question List-A Template for Framing Questions
The tool we recommend to help identify and frame questions is called an entity-question list.
Our example of the use of this tool is patterned after a similar illustration in the ami
handbook [ami 92]. The sequence of tasks is as follows:
1. Start with one of the top-level goals that your team identified in Step 1.
2. Identify the persons or groups whose concerns your team will address.
(This may be you or the organization you lead.) This defines your
perspective and the roles that you and the team will assume in Tasks 3
through 6 here and in the remaining steps of the goal-driven measurement
process.
3. Create rough sketches (mental models) of the relevant processes that you,
in your role, manage or affect. As you do this, be guided by what you want
to achieve and the issues you will have to address to achieve it.
4.?列出受你或你的角色管理或影響的重要的事物(實(shí)體),確認(rèn)你對(duì)每個(gè)事物表述了下列過程實(shí)體的四個(gè)方面:
??輸入和資源
??產(chǎn)品和副產(chǎn)品
??中間工件,例如過程目錄和工作
??活動(dòng)和流程
5.?對(duì)每個(gè)實(shí)體,列出問題,如果回答了,這些問題會(huì)幫助你或你的角色向著你的目標(biāo)來計(jì)劃和管理過程。例如:
??它有多大?
??多少?
??有多個(gè)個(gè)組件?
??它有多快?
??它持續(xù)多久?
??它值多少錢?
4. List the important things (entities) in your processes that you, in your role,
manage or influence. Make sure that you address each of the four kinds of
process entities below:
- inputs and resources
- products and by-products
- internal artifacts such as inventory and work in process
- activities and flowpaths
You may also want to list some of the environmental entities outside your
processes that affect your work.
5. For each entity, list questions that, if answered, would help you, in your
role, plan and manage progress toward your goals. For example:
- How big is it?
- How much is there?
- How many components?
- How fast is it?
- How long does it take?
- How much does it cost?
6.?然后回顧一下,總體看看你的過程是否你遺漏了什么,通過詢問如下問題:
這個(gè)過程穩(wěn)定嗎?
運(yùn)行的如何?
什么限制了我們的能力?
什么決定了我們的能力?
什么是決定性的成功因素?
什么東西我們能夠控制?
我們的客戶想要什么?
什么限制了我們的性能?
什么可能引起錯(cuò)誤?
什么可能是早期的警告信號(hào)?
我們的訂貨有多少?
訂貨在哪里發(fā)生?
最重要的
我們要如何才能知道?
你可能發(fā)現(xiàn)其它的實(shí)體,它的屬性也值得度量。
6. Then step back and look at your process as a whole to see if you have
missed anything. By asking questions such as
- Is the process stable?
- How is it performing now?
- What limits our capability?
- What determines quality?
- What determines success?
- What things can we control?
- What do our customers want?
- What limits our performance?
- What could go wrong?
- What might signal early warnings?
- How big is our backlog?
- Where is backlog occurring?
and most importantly
- How will we know?
you may discover additional entities whose properties may be worth
measuring.
7.?為了你的其它的目標(biāo),重復(fù)1~6
7. Repeat Tasks 1-6 for your other goals.
當(dāng)把與實(shí)體相關(guān)的問題列出,不必花費(fèi)更多的時(shí)間來試圖尋找構(gòu)勒出完美的問題,進(jìn)行問題構(gòu)勒是下一步的事。這時(shí)的問題應(yīng)是很通用的或描述性的。
When listing questions related to entities (Task 5 above), do not spend excessive time trying
to frame the perfect question. Precise framing of questions will come later-you are still early in the goal-driven process. Your questions at this point can be either very general or quite specific. 
最重要的是把你所關(guān)心的放到這張表中去,你可以利用它們來提練你的模型,因此他們能夠形成這個(gè)階段,為了第三步--識(shí)別和明確子目標(biāo)。注意第二步中任務(wù)7并沒有在任務(wù)5,6后立即執(zhí)行。
The important thing is to get your concerns on the table so that you can use
them to help elaborate your mental model, and so that they can set the stage for identifying
and articulating subgoals in Step 3 of the goal-driven process (Figure 3-1).
Note that Task 7 of Step 2 does not have to be performed immediately after Tasks 5 and 6.
Usually it is best to continue on through Step 7 of the goal-driven measurement process, to
the point where you have clearly identified the data elements that address one or two of your
business goals, before branching off on additional goals. This helps keep the goal-driven
process manageable. Ultimately, though, you will want to give priority to measures that
address more than one goal. This is especially true when you begin to reduce the large set
of potential measures to the ones that are most valuable to you. There are no universal
guidelines for when to address additional goals-it all depends on the situation. You and
your team will have to judge this for yourselves.
Examples
例子
4-6到4-9是場(chǎng)景例子所關(guān)心的實(shí)體和問題列表。
?
?
Figures 4-6 through 4-9 on the following pages list some of the entities and questions that
might concern the project manager in our example scenario when he or she is trying to
improve customer satisfaction. Your lists for your own organizations or projects will likely be
more encompassing.
4.3?識(shí)別你的子目標(biāo)
4.3.1?把相關(guān)問題放在一組中,有利于識(shí)別子目標(biāo)
第三步就是把你的頂級(jí)目標(biāo)分解為子目標(biāo),這個(gè)子目標(biāo)與你管理或執(zhí)行的活動(dòng)有關(guān)系。
問題會(huì)提升,當(dāng)考慮你的操作過程的模型,無論是明確的還是不明確的,與實(shí)體和屬性結(jié)合,來達(dá)到2你的目標(biāo)。你現(xiàn)在要識(shí)別與實(shí)體相關(guān)的問題,然后給他們分組,你能夠把結(jié)果轉(zhuǎn)化成可管理的子目標(biāo)。
?
Grouping Related Questions Helps Identify Subgoals
The third step in the goal-driven process is to translate your top-level goals into subgoals
that relate specifically to activities that you manage or perform. You can use the entityquestion
lists from Exercise 2 to help you do this.
The ellipse in Figure 4-11 shows where we are in the process. The questions that were
prompted by the evolving mental model of your operational process(es) point, either
implicitly or explicitly, to entities and attributes associated with achieving your goals. You
now need to identify the questions that you have about the entities, then group them and
identify the issues they address. You will then be able to translate the results into
manageable subgoals. (If you are familiar with team-based problem-solving processes, you
will recognize this as a convergent step that organizes and structures the results of the
divergent process we used to generate the entity-question lists.)
Examples
Figure 4-12 shows some results for our example scenario. Here, the groupings are easily
identified. For example, the first four questions listed for products and by-products address
documentation. This issue is grouped already, since we generated the questions by
focusing on the document entities we produce.
?
As we scan down the entity-question list, we see that the next five questions relate to the
quality and performance of the software product. This concern continues in Figures 4-13
and 4-14. Since this seems to be a consistent theme, we elect to collect these questions as
group #2.
?
As we continue identifying principal themes or issues, we collect the questions related to
each issue and transfer them to a new list, sorted by issue. Figure 4-15 shows the results
for our scenario. Keep in mind that the groupings will always be somewhat arbitrary, since
they are based on the team's perceptions of central themes. Moreover, it is perfectly
appropriate for a question to be repeated in more than one grouping.
?
?
CMU/SEI-96-HB-002 37
The groupings of issues and questions then translate naturally into candidate subgoals,
which can be prioritized. The results for our scenario are illustrated in Figure 4-16. In the
real world, you would want to validate these subgoals with your customer(s) to ensure that
you are addressing their true concerns. This would also help you assign priorities to your
subgoals.
Derived Subgoals
??Subgoal #1 Improve readability and traceability of documents.
??Subgoal #2 Improve reliability and performance of released code.
??Subgoal #3 Improve monitoring of plans and budgets.
??Subgoal #4 Improve performance of the change management process.
??Subgoal #5 Improve communications with the customer.
Figure 4-16: Derived Subgoals-A Project Manager's Perspective of the Goal "Improve Customer Satisfaction" 
The issues in the training scenario we have been using have mapped nicely, one-to-one,
into subgoals. This will not always happen in real life. In your work, you may find several
issues mapping into a single subgoal, or single issues mapping into several subgoals.
There is nothing wrong with this-formal decomposition of business goals is not what we are
after. The point is simply to arrive at rational subgoals that
o can be addressed by managerial or technical actions
o point us toward focused measurement goals
If your list of groupings is long and you perceive it leading to many measures, your teams
may want to assign priorities to the issues and sort them into rough priority order. This will
help them focus on first things first in the steps that follow.
4.4?識(shí)別與子目標(biāo)相關(guān)的實(shí)體和屬性
4.5?公式化你的度量目標(biāo)
4.6?識(shí)別量化的問題和相關(guān)的指標(biāo),這些會(huì)用于實(shí)現(xiàn)你的度量目標(biāo)
4.7?識(shí)別用于獲得指標(biāo)的要收集的數(shù)據(jù)元素,這些個(gè)指標(biāo)是可以幫助你回答上述問題
4.8?定義度量的使用,使得這些定義具有可操作性
4.9?識(shí)別你使用度量的行動(dòng)
4.10?準(zhǔn)備一個(gè)計(jì)劃來實(shí)施度量
總結(jié)
以上是生活随笔為你收集整理的目标驱动的软件度量(选译)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 测试用例标准讨论
- 下一篇: 工具在软件过程改进中的重要作用
