﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-panther-随笔分类-Software Development</title><link>http://www.cppblog.com/panther/category/11906.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 11 May 2010 19:12:48 GMT</lastBuildDate><pubDate>Tue, 11 May 2010 19:12:48 GMT</pubDate><ttl>60</ttl><item><title>COM规范-引用计数规则</title><link>http://www.cppblog.com/panther/archive/2010/03/13/109590.html</link><dc:creator>RUI</dc:creator><author>RUI</author><pubDate>Sat, 13 Mar 2010 00:50:00 GMT</pubDate><guid>http://www.cppblog.com/panther/archive/2010/03/13/109590.html</guid><wfw:comment>http://www.cppblog.com/panther/comments/109590.html</wfw:comment><comments>http://www.cppblog.com/panther/archive/2010/03/13/109590.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/panther/comments/commentRss/109590.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/panther/services/trackbacks/109590.html</trackback:ping><description><![CDATA[精简公理：<br>1. 当一个非空的接口指针从一个内存位置被拷贝到另一个内存位置时，应该要调用AddRef，以便通知对象又有附加的引用发生了。<br>2.对于已经包含非空接口指针的内存位置来说，在重写该内存位置之前，必须先调用Release, 以便通知对象&#8220;这个引用已经被销毁了&#8221;。<br>3.如果你对两个或者更多的内存位置之间的关系有特殊的理解，那么多余的AddRef和Release调用可以被优化掉。<br><br>编程指导：<br>A.要求调用AddRef的情形：<br>A1.当把一个非空接口指针写到局部变量中时。<br>A2.当被调用方把一个非空接口指针写到方法或者函数的[out]或者[in,out]参数中时。<br>A3.当被调用方返回一个非空接口指针作为函数的实际接口时。<br>A4.当把一个非空接口指针写到对象的一个数据成员中时。<br><br>R.要求调用Release方法的情形：<br>R1.在改写一个非空局部变量或者数据成员之前。<br>R2.在离开非空局部变量的作用域之前。<br>R3.当被调用方要改写方法或者函数的[in,out]参数，并且参数的初始值为非空时（[out]参数不适用）。<br>R4.在改写一个对象的非空数据成员之前。<br>R5.在离开一个对象的析构函数之前，并且这时还有一个非空接口指针作为数据成员。<br><br>特殊情况：<br>S1.当调用方把一个非空接口指针通过[in]参数传给一个函数或者方法时，既不需要调用AddRef，也不需要调用Release，因为在调用堆栈中，临时变量的生命周期只是&#8220;用于初始化形式参数&#8221;的表达式地生命周期的一个子集。
<img src ="http://www.cppblog.com/panther/aggbug/109590.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/panther/" target="_blank">RUI</a> 2010-03-13 08:50 <a href="http://www.cppblog.com/panther/archive/2010/03/13/109590.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Human success mode</title><link>http://www.cppblog.com/panther/archive/2009/10/06/97974.html</link><dc:creator>RUI</dc:creator><author>RUI</author><pubDate>Tue, 06 Oct 2009 13:49:00 GMT</pubDate><guid>http://www.cppblog.com/panther/archive/2009/10/06/97974.html</guid><wfw:comment>http://www.cppblog.com/panther/comments/97974.html</wfw:comment><comments>http://www.cppblog.com/panther/archive/2009/10/06/97974.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/panther/comments/commentRss/97974.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/panther/services/trackbacks/97974.html</trackback:ping><description><![CDATA[<ul>
    <li>Being good at looking around, It's reflected in the ways they organize the paper in their lives: books, reports, addresses, and so on. <span style="color: #ff0000;">(software documentation)</span><br></li>
</ul>
<ul>
    <li>Being able to learn, within a single project's time frame, the people learn new technology, new problem domain, new process, and how to work with new colleagues.</li>
</ul>
<ul>
    <li>Being malleable, people are remarkably able to act differently given new motives and new information.</li>
</ul>
<ul>
    <li>Taking pride in work, people who have pride in their work do a better job than those who do not, and they are also more likely to step ourside of their own job descriptions to repair or report some other problem that they notice. the spontaneous behavior is key to success!</li>
</ul>
<ul>
    <li>Taking pride in contributing</li>
    <li>Being good citizens</li>
    <li>Taking initiative</li>
</ul>
In well run projects, people in any job description can notice when something is out of kilter and act to correct it or notify someone who can. this is an indicator of a community in action, not an indicator of a poor development process.<br><br><br><img src ="http://www.cppblog.com/panther/aggbug/97974.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/panther/" target="_blank">RUI</a> 2009-10-06 21:49 <a href="http://www.cppblog.com/panther/archive/2009/10/06/97974.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Rewarding Mechanism in Software development</title><link>http://www.cppblog.com/panther/archive/2009/10/06/97969.html</link><dc:creator>RUI</dc:creator><author>RUI</author><pubDate>Tue, 06 Oct 2009 13:09:00 GMT</pubDate><guid>http://www.cppblog.com/panther/archive/2009/10/06/97969.html</guid><wfw:comment>http://www.cppblog.com/panther/comments/97969.html</wfw:comment><comments>http://www.cppblog.com/panther/archive/2009/10/06/97969.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/panther/comments/commentRss/97969.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/panther/services/trackbacks/97969.html</trackback:ping><description><![CDATA[Should programmer reward a.Lines of code sent to the test department? b.low defect rates delivered to the test department? c.function points delivered each month? d.the number of lines reused from a corporate libary? Now, we should think of what does the programmer actually reward?<br><br>1.Pride-in-work, one comments:'well, the system's ok.... I mean it functions, but I can't really take any pride in my work. I'd like to go home feeling good about my program, but I don't. It's just a big mess that barely works.'<br><br>2.Pride-in-Accomplishment, Using the principle of small wins as a motivating reward, a team delivers as early as possible the smallest thing that will count as a win for the team. 'simplest first, worst second' let team leans how to work together and gains an early win.<br><br>3.Pride-in-contribution, people's desire to contribute is so strong that they could damage their health and private lives in their effort to contribute to the team.<br><img src ="http://www.cppblog.com/panther/aggbug/97969.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/panther/" target="_blank">RUI</a> 2009-10-06 21:09 <a href="http://www.cppblog.com/panther/archive/2009/10/06/97969.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Supporting Concentration and communication</title><link>http://www.cppblog.com/panther/archive/2009/10/06/97966.html</link><dc:creator>RUI</dc:creator><author>RUI</author><pubDate>Tue, 06 Oct 2009 12:30:00 GMT</pubDate><guid>http://www.cppblog.com/panther/archive/2009/10/06/97966.html</guid><wfw:comment>http://www.cppblog.com/panther/comments/97966.html</wfw:comment><comments>http://www.cppblog.com/panther/archive/2009/10/06/97966.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/panther/comments/commentRss/97966.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/panther/services/trackbacks/97966.html</trackback:ping><description><![CDATA[Software development as both a thinking-intensive and communication-intensive activity presents an interesting dichotomy. Programmers need sufficient quiet time to get into a quiet and productive mode known as flow. After spending 20 minutes getting into a state of flow, it takes only a minute or two of other conversation to disrupt it.<br><img src ="http://www.cppblog.com/panther/aggbug/97966.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/panther/" target="_blank">RUI</a> 2009-10-06 20:30 <a href="http://www.cppblog.com/panther/archive/2009/10/06/97966.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> Failure modes in software development</title><link>http://www.cppblog.com/panther/archive/2009/10/06/97965.html</link><dc:creator>RUI</dc:creator><author>RUI</author><pubDate>Tue, 06 Oct 2009 11:34:00 GMT</pubDate><guid>http://www.cppblog.com/panther/archive/2009/10/06/97965.html</guid><wfw:comment>http://www.cppblog.com/panther/comments/97965.html</wfw:comment><comments>http://www.cppblog.com/panther/archive/2009/10/06/97965.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/panther/comments/commentRss/97965.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/panther/services/trackbacks/97965.html</trackback:ping><description><![CDATA[The following failure modes should always be taken into account when run a project!!<br><br>1. people making mistakes:<br>People make mistakes is no surprise to us, however, iterative and incremental development were invented. Incremental development lets the team learn about its own development process as well as about the system being designed. During the process, the team members examine their working conventions to find out what should be improved, including team structure, the techniques, or the deliverables.It also allows people discovered the inevitable mistakes and repaired in a tidy manner.<br><br>2.people prefer to fail conservatively rather than risk succeeding differrently: <br>People intended to use the normal conservative strategy, a 'guaranteed' stdandard ourcome, rather than one that might work but might blow up in strange ways.<br><br>3.people prefer to inventing rather than researching:<br>In our earliest school days, we are instructed not to copy other people's work, not to help each other, and to be as original as possible in all but rote memory acts.However, we should be a good&nbsp; 'component assemblers' and accept a less glamorous design happily if it can be put into use quickly! we are in the serious competition!!<br><br>4. Being inconsistent creatures of habit:<br>We are creatures of habit who resist learning new behaviors, and at the same time we tend toward inconsistency!<br><br>5. Countering with discipline and tolerance:<br>"PSP is extremely rigorous, and if no one is asking for my data, it's easier to do it the old way" one trainee of PSP said! yeach, the alternative to requiring discipline is being tolerant of individual variation. The good methodology calls for the team members to form consensus on the minimum compliance needed in the work products and pratices. Each suggests the use of standards but does not require that standards be enforced!! Keep in mind: strict adherence to ineffective practices leads to an ineffective team.<br><br>   <img src ="http://www.cppblog.com/panther/aggbug/97965.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/panther/" target="_blank">RUI</a> 2009-10-06 19:34 <a href="http://www.cppblog.com/panther/archive/2009/10/06/97965.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>What is software Engineering</title><link>http://www.cppblog.com/panther/archive/2009/09/26/97319.html</link><dc:creator>RUI</dc:creator><author>RUI</author><pubDate>Sat, 26 Sep 2009 14:16:00 GMT</pubDate><guid>http://www.cppblog.com/panther/archive/2009/09/26/97319.html</guid><wfw:comment>http://www.cppblog.com/panther/comments/97319.html</wfw:comment><comments>http://www.cppblog.com/panther/archive/2009/09/26/97319.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/panther/comments/commentRss/97319.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/panther/services/trackbacks/97319.html</trackback:ping><description><![CDATA[1.Software development should be considered as a cooperative game of invention and communication as well as Business executives, lawers, journalists, etc!<br><br>2. Consider running the project as two separate subprojects:<br>the first subproject produces the running software in as economic a fashion as possible.(project devlivery)<br>the second subproject , competin for key resources with the first, produces the final work products for the next team (maintain)<br>Good project management should follow the rules of :<br>a. Adding discipline on your project at key places.<br>b. Reducing discipline at key paces.<br>c. Declaring, 'Enough! this is sufficient!'<br><br>Key point:<br>a.Project Management<br>b.'Requirement' elicitation<br>c.User Interface design<br>d.System architecture<br>e.Program design and programming<br>f.Database design<br>g.Algorithm design<br>h.Testing<br>i.Commuicating!!!!!<br><br><br><br><img src ="http://www.cppblog.com/panther/aggbug/97319.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/panther/" target="_blank">RUI</a> 2009-09-26 22:16 <a href="http://www.cppblog.com/panther/archive/2009/09/26/97319.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>The Three levels  and Methodologies --SHU-HA-RI</title><link>http://www.cppblog.com/panther/archive/2009/09/26/97318.html</link><dc:creator>RUI</dc:creator><author>RUI</author><pubDate>Sat, 26 Sep 2009 14:00:00 GMT</pubDate><guid>http://www.cppblog.com/panther/archive/2009/09/26/97318.html</guid><wfw:comment>http://www.cppblog.com/panther/comments/97318.html</wfw:comment><comments>http://www.cppblog.com/panther/archive/2009/09/26/97318.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/panther/comments/commentRss/97318.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/panther/services/trackbacks/97318.html</trackback:ping><description><![CDATA[shu equical to learn; ha equical to detach and ri is transcend. During the Shu phrase, the student builds the technical foundation of the art. It also implpies a loyalty or persistence in a single instructor; Ha is the second stage of the process. It means that the student breaks free from the traditions of the instructor to some extent; Ri means to go beyong, in this stage, the student is no longer a student in the normal sense, bu a practioner. The practioner must think originally and develop from background knowledge original thoughts about the art and test them against the reality of his or her background knowledge and conclusion as well as the demands of everyday life<br> <img src ="http://www.cppblog.com/panther/aggbug/97318.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/panther/" target="_blank">RUI</a> 2009-09-26 22:00 <a href="http://www.cppblog.com/panther/archive/2009/09/26/97318.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>