??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
openerQ在B面通过opener对象可以讉KA面?br />
parent表示父窗口,比如一个A面利用iframe或frame调用B面Q那么A面所在窗口就是B面?br />
parent?br />
在JS中,window.opener只是对弹出窗口的母窗口的一个引用。比如:(x)
a.html中,通过点击按钮{方式window.openZ个新的窗口b.html。那么在b.html中,可以通过
window.openerQ省略写为openerQ来引用a.htmlQ包括a.html的document{对象,操作a.html的内宏V?br />
假如q个引用p|Q那么将q回null。所以在调用opener的对象前Q要先判断对象是否ؓ(f)nullQ否则会(x)
出现“对象为空或者不存在”的JS错误?br />
<html>
<body>
<form. name=form1>
<input type=text name=inpu >
<input type=button >
</form>
</body>
</html>
--------------------------------
back2opener.html
--------------------------------
<html>
<body>
<form. name=form1>
<input type=text name=inpu >
<a class=under href=# >d</a>
</form>
</body>
</html>
window.opener q回的是创徏当前H口的那个窗口的引用Q比如点M(jin)a.htm上的一个链接而打开?br />
b.htmQ然后我们打在b.htm上输入一个值然后赋予a.htm上的一个id?#8220;name”的textbox中,可?br />
写ؓ(f)Q?br />
window.opener.document.getElementById("name").value = "输入的数?;
最狂热的用例编写者也承认Q用例对客户与需求h员都是一Uheavy的相互折?br> 客户看用例时总要收摄?j)神来阅L个交互的程Q还有那些该ȝ扩展异常流Q没l过E序员专业抽象训l的客户Q对着q些伪代码一般的情景脚本Q刚开始的一两个q好Q看多了(jin)Q就是白天也能睡厅R客户只是看都如此了(jin)Q负责写的h当然也不?x)好q?/p>
但heavy的工作Lheavy的好处,否则早被唑ּ于舞台的背面?br> 在用L(fng)角度Q用例比模棱两可的功能点描述要清晎ͼ也更直白于系l的价倹{?br> 在开发团队角度,RUP的核?j)方法论之一---用例驱动的口P明白然明白他的妙用?br> 设计人员有了(jin)新的设计手段Q?#8220;用时序图分析用例的实玎ͼ在描q过E中定构g或类Q分配它们的职责和方?#8221;Q通过对用例覆盖率的追t,需求与设计之间的信息损耗这个famous problem大大降低?br> 试人员和文档h员,更可以直接把pȝ用例W纳为《测试用例》和《用h册》?/p>
来到亿迅后,被这里的用例文明l震住了(jin)Q每个项目的软g规格说明都是屯门清一色的几百늚前景Q用例规U,业务规则Q词汇表Q补充规U组?......隑־有情郎啊?br> 昨天又看C(jin)一Ҏ(gu)的用例诞生,但实在有好些明显的不_Q忍不住旧事重提的记下一批经典的错误。不q?....只要能和客户达成需求共识,是一份好的用例了(jin)Q也不用花太多时间在学术性的讨论上?/p>
1.客户没有能力阅读用例
如果客户实在没办法撑住困意看完用例的l节Q即使草草签?jin)名Q得不到用户真正认的用例,依然无法用来驱动设计和测试?br> 解决Ҏ(gu)Q放弃编写用例,改回用户Ҏ(gu)看的传统方式?/p>
2.团队没有能力实现用例驱动
如果开发团队在设计与测试时Q根本不依照用例l节驱动Q那用例对开发团队就只是个摆设,q?br> 解决Ҏ(gu)Q对设计、测试h员进行用例驱动的培训Q如果事不可为就q脆攑ּQ怎么省事怎么做?strong>
3.在用例中描述pȝ内部工作
l典错误Q开发h员把用例当作设计文档来写Q如“pȝ销售信息写入数据库”Q实际上应该写的?#8220;pȝ记录销?#8221;?br> 解决Ҏ(gu)Q站在客L(fng)角度Q把pȝ视ؓ(f)黑盒Q删除所有内部设计描q?/p>
4.在用例中描述界面
另一个经兔R误,不说?jin),如果在意用户信息包括了(jin)姓名和密码Q可以在词汇表里记录Q而用例写?-昄<用户信息>?/p>
5.在用例中出pȝ边界描述整个业务程
要徏立的pȝ只是整个业务程里的一部,善良的需求h员ؓ(f)?jin)大家清楚来龙去脉,系l外的处理步骤也写进?jin)用例的情景?br> 如:(x)
1.用户去营业厅开?br> 2.用户拨号接入
实际上去营业厅开户不属于宽带接入认证pȝ的职责?br> 解决Ҏ(gu)Q开L(fng)描述应该攑ֈ用例的前|条件中。前|与后置条g是说明系l边界外的业务流E的好地斏V?nbsp;
6.q多的用例,让h晕菜
国外的惯例,一个用例一般有半个以上人月的开发量?br> 解决Ҏ(gu)Q?br> 1.开P销戯L(fng)CRUD型用例可以合q成一个管理用例,以四个主场景分别表达?br> 2."老板问:(x)你每天做什么阿?"Q?我每天登陆系l?。这是用例没有提供_价值的明显标志?br> 3.用例中的每一个步骤,其实都可以写成一个独立的用例Q分 or 不分Q?br> 4.用例的打包组l是一门艺术,功能包、顶U目标用例,ActorQ开发团队与版本L(fng)?/p>
7.q多的扩展事件和异常事g,让h晕菜
即是受q训l的E序员,2a, 3b1看多?jin)也要晕掉,C阅读者是不是机器?nbsp;
解决Ҏ(gu)Q?br> 1.如果逻辑不多Q可以一句话讲完Q不影响d景的Q不新v一个事件流?br> 2.可以使用zd图来辅助说明。在RSM7.0的模版里Q每个用例都?x)带上一个活动图?/p>
8.q多的关p,l箋让h晕菜
“不要׃个月的时间去讨论应该includeq是extend”。大家对include, extend and generalize都不熟?zhn)Q那干脆都不要用了(jin)?nbsp;
参考材料:(x)
《编写有效用?-Wriging Effective Use Case?/strong>Corkburn 2001Q大家现在用的用例模版都是他创下来的,此书无可替代?br> 《用例模式与蓝图--Use Cases Patterns and Blueprints?/strong>我觉得比另一本名字相q的《Patterns for Effective Use Cases》要实用一?/p>
]]>
是什么造就?jin)一个成功的专业目团队Q浏览一下成功的目团队所固有的特Ҏ(gu)
很好的。对每个因素的重视程度对于项目的成功和评价业务客L(fng)信Q度将有很大的
影响?br>
System Building Competence
pȝ建造能?br>
This is absolutely critical. The ability to succeed is
established within the minds of the clients as well as the
project team members in the early stages of the effort. An
essential component of this perception is both the
management ability, the technical skills, and the sense of
direction possessed by the project leadership. Both the
business clients and the team can detect fairly quickly if
the project leaders have "what it takes" to take them to a
final product. Without question this feeling has a
tremendous impact on morale.
q是l对关键的。成功的能力是在努力的早期阶D在客户的思想和项目团队成员中
建立h的。这个观点的本质在于理能力和专业技术和由项目主拥有的方向?br>上。业务客户和团队能够快速清楚的察觉目ȝ是否有带领他们向最l目标前q的
思想。毫无疑问这个感觉对士气是至关重要的?br>
Humphrey Watts in his book Managing the Software Process,
describes a model for measuring the maturity of a software
development organization. These ideas were further refined
by the Software Engineering Institute (SEI) at Carnegie
Mellon University. A brief summary of the maturity levels of
the model (in terminology which will relate to some of the
central themes of this white paper) are presented below:
Humphrey Watts在他的书《管理Y件过E》中描述?jin)一个衡量Y件开发组l成?br>度的模型。这些观点由Carnegie Mellon大学的Y件工E组l作?jin)进一步精点{有?br>模型Q有些术语与本文的一些要Ҏ(gu)养I(j)成熟层的短概括如下:(x)
Initial Level
初始?br>
A team or organization at this level tends to take a
chaotic, ad-hoc, "invent as we go" approach toward every new
systems building effort.
处于q层的团队和l织试图以一UqQ特别的Q?如我们所想的"Ҏ(gu)对待每一
个新的系l徏造工E?br>
Repeatable Level
可重复层
A team or organization at this level uses planning
techniques, gathers requirements in a systematic fashion,
utilizes software quality assurance techniques, and follows
a patterned approach on each subsequent effort.
处于q层的团队和l织通常使用~制计划技术,攉体系模式的需求,使用软g?br>量保证技术,q在后来的开发中使用模式化的Ҏ(gu)?br>
Defined Level
被定义层
A team or organization at this level follows defined
methodological steps, uses process improvement techniques to
enhance the methodological approach, conducts regular
training programs, views the entire systems development
process from an integration perspective, and utilizes more
disciplined information engineering and structured
development techniques.
处于q层的团队和l织使用定义好的Ҏ(gu)步骤Q用改q过E的技术来提高Ҏ(gu)Q?br>理有序的练?fn)程序,从综合的观点看待整个pȝ开发过E,使用更加严格的信息工
E和l构化开发技术?br>
Managed Level
被管理层
A team or organization at this level actually captures and
utilizes software development metrics for future estimation
and process analysis purposes. In addition, some of concepts
of Total Quality Management (TQM) are employed to reinforce
the effectiveness of the entire development process.
处于q层的团队和l织通常为将来的评估和过E分析捕获ƈ使用软g开发度量。另
外,整体质量理的一些概念也被用来增加整个开发过E的效力?br>
Optimized Level
优化?br>
A team or organization at this level utilizes continuous
organizational change management techniques to optimize its
own operations (as well as the company's), emphasizes defect
prevention rather than defect detection, and constantly
seeks technological innovation opportunities.
处于q层的团队和l织使用持箋的有l织的变化管理技术来优化他们的操作,
避免错误而不是发现错误,q经常寻求技术革新的Z(x)?br>
Project Team Experience
目团队的经?br>
Even within organizations with high success rates, one
factor which never changes on each new effort is the amount
of experience possessed by the chosen project team members.
Will the project team include a business expert? If not,
will the assigned members be able to effectively comprehend
and discuss the business requirements and issues in the
client terminology? Having someone on the team (even if only
in the initial phases) who understands the business is a
great confidence builder! It allows the analysts and
designers to ask the dumb or simplistic questions to someone
other than the client. This actually makes more effective
use of everyone's time and it adds an subsequent level of
security. In addition, it puts someone in the position of
making sure that "creative thinking" stays within reasonable
boundaries.
即是拥有高成功率的l织中,每个新努力中从不改变的因素是被选择的团队成?br>拥有的经历的E度。项目团队应该包括一个业务专Ӟ如果不是Q指定的成员能够?br>效的理解和讨Z务需求和客户术语中的l织Q在团队里有没有理解q项业务的h?br>个很自信的开发者?允许分析员和设计员向M问简单的问题Q而不是向客户?br>q能充分利用每个人的旉Qƈ增加后期工作的安全性。另外,它是每个人在合理?br>范围里进行创造性的思想?br>
What about technical expertise? Is the project entering
uncharted waters without a guide? Having someone on the team
who is familiar with the specialized knowledge surrounding a
selected technological environment provides the same
confidence creating benefits as those listed above. A
technical expert can assist others, make suggestions,
develop standards, and prevent time consuming mistakes. In
addition, he or she can provide leadership by example. By
spearheading the work and creating examples for others, a
technical expert can transfer knowledge and experience in a
timely and effective manner. The prevents the "invent as we
go" situation teams often find themselves in when embarking
on a new technology.
专门的技术怎样Q是不是目q入?jin)没有向导的水域Q有没有团队中的成员熟?zhn)?br>定技术领域的特定知识提供上面提到的同L(fng)信心(j)Q一个技术专家能够帮助别人,?br>出徏议,开发标准,L耗时的错误。另外,Ҏ(gu)他能通过例子提供领导能力。通过
传播工作qؓ(f)他h创造例子,一个技术专家能够以?qing)时有效的方式传播知识和l验?br>q能L当一个团队在着手于一Ҏ(gu)技术时通常发现他们处于按自己所惌行的?br>境?/p>
Project Control and Coordination
目的控制和合作
Large, complex undertakings which require the participation
of many people throughout the development process, demand
both high-level and detailed guidelines to assist in the
channeling of the individual results into an integrated
final product. As each person focuses on his or her's part
of the system, a clearly defined set of standards and
specifications must exist insure that the final result will
"mesh" with the results being produced by others. In many
ways, a systems building project can be thought of a series
of specifications, each level spiraling from broad
requirements into highly detailed procedural instructions.
The collection of these efforts into a unified whole
presents the ultimate challenge for the group. What are some
of the ways to successfully make this happen?
大型的复杂的事业需要在开发过E中很多人的参与Q需要高水^详细的设计细节来
辅助独立的成果融入最后完整的产品中。当每个Z?j)与它所负责的系l的一部分
Ӟ一个清楚的已经定义标准和规范的集合必须存在以保证最后的l果能够和其他h
的结果相d。在很多方式下,pȝ的徏造项目可以看成是一pd规范Q每层从q泛
的需求螺旋发展成为高度详l的q程指o(h)。这些努力的集合构成了(jin)一个整体,l整
个团体展现最后的挑战。那些方法能使这件事情成功的发生Q?br>
Ultimately, three major factors contribute to the level of
success that systems building team will enjoy at each of the
required integration points. One of these factors is the
creation of "consistency" standards. During each phase,
guidelines should be developed for both the content as well
as the format of the final work products. A second important
factor is cross-team communication. Common requirements,
similar issues, shared data, and reusable functionality all
should be openly discussed and coordinated. Sub-teams should
participate in the development of overall high level shared
goals and objectives which encourage cross-team interaction
and decision making. A third factor is the insistence on the
part of the top team leadership that individual and sub-team
successes be innertwined. Consistent deliverable, quality
assurance, methodological, and review standards must apply
to all team members equally.
最后,三个关键的因素将对系l徏造团队将?x)n受每个需求的l合Ҏ(gu)功别v?br>用。这些因素之一是一致性标准的建立。在每个阶段Q详l的l节必须为内容和最?br>的运行品的形式所制定。第二个重要的因素是跨团队的交流。通常的需求,怼?br>l织Q共享的数据和可复用的功能都应该被公开的讨论和协作。子团队应该参加整个
高层的开发,׃n鼓舞跨团队交互作用和决策制定的目标。第三个是代表高层领导的
坚持性,个h和子团队的成功相交互。交付的一致性,质量的保证,Ҏ(gu)和复审标?br>必须对团队的所有成员一视同仁?br>
Team Goals and Individual Objectives
团队目标和个人目?br>
A project team seems to develop a unique "personality" over
time. It becomes a reflection of everyone involved,
radiating confidence and certainty if spirits are high,
seething with doubts and confusion when direction is
lacking. How can project dynamics be so different from one
team to the next? Leadership certainly plays a vital role,
but individual team member attitudes make the difference.
一个项目团队看h时在开发一个独一无二的个性Y件。成为每个参与者的反映Q?br>如果士气高的话则充满自信和确定性,当缺乏方向时则由于疑虑和混ؕ而沸腾。怎样
才能佉K目因团队的不同而不同?领导能力当然起了(jin)一个很关键的作用,但团队成?br>的态度也会(x)造成不同影响?br>
Two fundamental questions illuminate the spirit of the group
effort. First, is everyone on the team driving toward a well
defined and articulative objective? Second, whose objective
is it? An amazing thing can happen on development projects;
everyone is busily working away on whatever it is that they
individually perceive as his or her's most important tasks.
Hopefully, each person's work will mesh with the rest of the
group's results. This will probably happen if everyone
clearly and precisely understands the ultimate phase
objectives. But what if they don't?
两个基本的问题说明了(jin)l织努力的精。首先,是不是团队的每个人都朝着已经?br>定的清楚的目标前q?W二Q这是谁的目标?在开发项目中可能发生q样令h惊讶?br>事情Q每个h都忙于她或他认ؓ(f)最重要的Q务。希望是每个人的工作都能与其他h?br>工作相吻合。如果每个h都很清楚q精的指导最l的目标则可能,但如果不是呢Q?br>
This is where human nature begins to step in and things can
begin to get interesting. If the attitudes of the team
members tend to be goal driven (which is good) but the team
leadership is fuzzy about what the objectives really are
(which is bad), individual and sometimes scattered goals
begin to pop up. Unique and potentially conflicting agendas
take shape. Before you know it everyone is busily working
away and the atmosphere appears to be productive. But an
time of reconciliation lies ahead. At some point the
individual results must be combined, and depending on the
fit, the attitude of the team will ultimately be affected.
The group's mission or purpose at this point becomes very
real, because it is at this moment that the team realizes
that there may not have really been a common direction in
the first place, and that fact is painfully obvious.
当hcd始涉的地方q且能过的兴。如果团队成员是目标驱动Q而领D对最
l的目标而疑惑,独立的或分散的目标突然出现。独自的潜在的议E出现。在你知?br>之前每个人都忙于工作Q而且是生产性的气氛。但要调和的旉摆在前面。在某个?br>上独立的l果必须合ƈQ以来与合适性,团队的态度最l会(x)被媄(jing)响。这时组l的d
或目的变得很真实Q因时团队才意识到在开始时没有统一的方向,事实昄?br>很痛苦的?br>
Why even take this risk? Insuring that goals and objectives
are clearly spelled out, and the activities and tasks which
will be followed to ultimately reach them are uniformly
understood, will only give the team a shared sense of
purpose. Everyone needs to have a stake in, and a share of,
the responsibility for the outcome of each phase. Doing this
can have an incredible impact on people's attitudes. Clearly
comprehending the relevance of the work and how it will
contribute to the final product, is a powerful motivator for
creating an air of cooperation and open channels of
communication between team members. Individual goals can be
visualized as a part of the larger team objectives. The goal
driven attitude of the team will truly be reflected in the
quality of the results.
Z么冒q个险?保目标很清楚的定Q他们所从事的Q务和zd被一律的?br>解,会(x)l整个团队一U目的共享的感觉。每个h都需要由Ҏ(gu)个阶D|果的责Q
感,׃n感。这样做肯定?x)?jing)响每个h的态度。清楚的理解工作的关键和怎样影响最
l品,是生合作环境及(qing)创造成员界交流通道的强有力的因素。独立的目标可以?br>惌成ؓ(f)大型团队目标的一部分。团队的目标d态都?x)在产品的质量中有所反映?br>
Systems Building Vision
pȝ建造的蓝图
A "vision" doesn't do anyone any good if it is only in one
person's head. Only when it has been absorbed and adopted by
the team does its usefulness begin to emerge. A business or
system "visionary" plays an important yet sometimes
unenviable role in making this happen. His or her
willingness to share insight and understanding of a
situation, and the necessary steps he or she envisions to
arrive at a desired outcome, tend to be dependant on two
factors: the level of confidence he or she has in the ideas,
and his or her tolerance for scrutiny and criticism.
Regardless of these personal risks, a professional system
builder must strive to be a system "visionary". With each
passing phase of the project, he or she must constantly
develop and communicate his or her vision of both the system
functionality and the project approach.
如果蓝图只存在于一个h的脑中则不会(x)lQ何h带来好处。只有被团队吸取和采U?br>才能使它的作用发挥出来。一个业务或pȝ?#8220;蓝图”作用重要但有时仍不能实现?br>Ҏ(gu)他的希望是共享对情况的理解和见识Qƈ采取?jin)步骤以辑ֈ理想的结果,依赖?br>两个因素Q她或他的自信程度,忍耐审查和批评的能力。不这些个人的冒险Q一?br>专业的系l徏造者必Mؓ(f)成ؓ(f)一个系l设计者而奋斗。随着每个阶段的完成,Ҏ(gu)?br>必须持箋开发和交流Ҏ(gu)他对pȝ功能和项目方法的构想?br>
Putting forward this vision assists in accomplishing two
important results. First, it creates a baseline foundation
for continuing discussion. In many cases, the original
system/approach vision may not survive for long as better
ideas are presented and improvement discussions occur.
Second, the vision promotes constructive, critical thinking.
提出构想能有处于实现两个重要的结果。首先,它创造了(jin)l箋讨论的基。在很多
情况下,最初的pȝ/Ҏ(gu)构想不能比好的思想提出和改q的讨论l持的时间长。第
二,构想提供性的严格的思考?/p>
People tend to provide more input in a "review and improve"
mode rather than a "create from scratch" mode. The
presentation of a baseline vision stimulates this process.
In addition, if the "visionary" can relinquish ownership of
the original idea, and subsequently encourage it to become
the property of the group, the effectiveness of the process
can be even more enhanced. The system builder serves to
plant the "starting point" ideas, and the team members and
business clients assist with, and take responsibility for,
the ultimate direction and composition of the shared vision.
Z更們于提供更多的输入l?#8220;复审和提?#8221;而不?#8220;从零开?#8221;的模式。最?br>的构想的提出?j)进q个q程。另外,如果“构想”能够攑ּ最初的思想的所有权Q?br>成ؓ(f)l织的胦(ch)产,q个q程的效果将?x)更加提高。系l徏造者负责生开始点的?br>惻I团队成员和业务客戯助ƈ负责׃n的构想的方向和合成?/p>
Project Team Confidence
目团队信心(j)
Another important team attitude is confidence. The
development of a complex system presents tremendous
challenges to a project team. Sometimes it can even feel
like an act of faith. An enormous amount of detail is
collected, analyzed, organized, and assimilated into a
functional "whole". On very large efforts, only a few key
individuals may possess the total "big picture", and this
may be at varying levels of completeness. This ambiguity can
from time to time test the confidence of the project team
members. Given these uncertainties, how does a team feel
assured and confident of success throughout the process, and
have this reflected in the individual team member attitudes?
另一个重要的团队是信?j)。开发复杂的pȝ会(x)l团队带来很多挑战。有时感觉是
一U信仰的zd。大量的l节被收集、分析、组lƈ吸取为整体的功能。在非常大的
付出中,仅有一些关键个人支配整?#8220;囄”Qƈ随完成的不同层次不同。这U不?br>定性时不时的检验团队成员的信心(j)。给?gu)些不定的事情,一个团队怎样才能在?br>向成功的q程中感到有保证和信?j),q反映到团队个h的态度呢?
Clearly, the realization on the part of the team, that a
system design is formed as a gradually evolving solution,
from a process which tends to be iterative in nature, helps
everyone to be patient with the slowly disappearing level of
ambiguity. The more team members who participate on the
project who have been through the complete system building
life cycle, the more likely the overall team awareness will
be that everything will come together at each major
milestone. This is an important confidence builder for the
less experienced members of the team. The higher the level
of confidence possessed by the team, the more secure the
business clients feel, and the more likely the team will
actually "see" themselves succeeding, even in the face of
the unknown.
很明显,在团队方面的实现Q系l的设计在逐渐演化的过E中形成Q从本质上交?br>的过E,帮助每个人在不确定性逐渐消除的过E中保持忍耐。参加项目ƈl历整个p?br>l徏造生命周期的成员多Q整个团队意识在每个主要里程所有事都具备的可能?br>p大。这对于一个缺乏经验的团队成员是一个重要的信心(j)~造者。团队拥有的信心(j)
水^高Q,业务客户的安全感大Q团队就更加可能看到他们的胜利,即是面?br>未知的事情?/p>