Profile感情 生活 学术 事业PhotosBlogLists Tools Help

Blog


    November 30

    高可信软件的挑战


    高可信软件工程对目前的软件理论和技术提出了严峻的挑战,涉及到一系列科学问题。

    第一,软件系统的行为特征。如何定性/定量地描述软件的行为?如何建立各类复杂的软件结构和系统对应的系统行为?这是软件理论的基本问题。软件的静态语法与其动态语义的分离是造成软件行为难于描述和推理的原因。随着软件规模的增大,软件中并发、实时、分布、移动等特性的出现,这些问题的认识亟待深入。

    第二,软件可信性质与软件行为的关系。如何描述软件可信性质及其软件行为的关系?我们看到,上述关于软件可信性质的描述是非形式化的抽象陈述。必须建立起性质和软件行为之间的内在联系及其严格的描述,才能在软件开发环境中,设计并验证所需的可信性质。

    第三,面对软件可信性质的设计和推理。如何将软件可信性质(通常非操作性的)融入软件设计(操作性)?可信性质通常是软件系统的全局约束,伴随着软件开发过程逐步地“设计”出来,最终获得这些可信性质。如何针对可信性质发现一种分而治之的策略从而控制复杂性,是进行面向可信性质的软件设计和验证的关键。

    第四,软件系统的可信性质的确认。如何发现和评估软件系统是否具有可信性质?量化是一种工程科学成熟的重要标志,需要对软件可信性质有合适的度量方法,并能在软件过程中进行跟踪。

    November 19

    A CEGAR for Verifying Concurrent C Programs

    The paper presents a framwork for verifying concurrent message-passing C programs in an automated manner. The methodology relies on several key ideas.
     
    First, programs are modeled as finite state machines whose states are labeled with data and whose transitions are labeled with events. We refer to such state machines as labeled Kripke structures(LKSs). Our state/event-based approach enables us to succinctly express and efficiently verify properties which involve simultaneously both the static (data-based) and the dynamic (reactive or event-based) aspects of any software systems.
     
    Second, the framework supports a wide range of specification mechanisms and notions of conformance. For instance, complete system specifications can be expressed as LKSs and simulation conformance verified between such specifications and any C implementation. For partial specifications, the framework supports (in addition to LKSs) a state/event-based linear temporal logic capable of expressing complex safety as well as liveness properties. Finally, the framework enables us to check for deadlocks in concurrent message-passing programs.
     
    Third, for each notion of conformance, we present a completely automated and compositional verification procedure based on the couterexample guided abstraction refinement (CEGAR) paradigm. Like other CEGAR-based approaches, these verification procedures consist of an iterative application of model construction, model checking, counterexample validation and model refinement steps. However, they are uniquely distinguished by their compositionalily. More precisely, in each of our conformance checking procedures, the algorithms for model construction, counterexample validation and model refinement are applied component-wise. The state space size of the models are controlled via a two-pronged strategy: (i)using two complementary abstraction techniques based on the static (predicate abstraction) and dynamic (action-guided abstraction) aspects of the program, and (ii)minimizing the number of predicates required  for predicate abstraction.
     
    The proposed framework has been implemented in the MAGIC tool. We present experimental evaluation in support of the effectiveness of our framework in verifying non-trivial concurrent C programs against a rich class of specifications in an automated manner.
    November 11

    [zz]男人的微笑

    前几天在深圳UT出差,闲时陪朋友一起送他女朋友到机场。他女朋友办好了到美国的移民手续,准备回北京跟父母道别之后,直接从北京飞往美国。在机场隔离区外面,我看到朋友挥手向他女朋友微笑告别。回来的路上,朋友默默无言。车辆进入南头检查站时,朋友突然哭了。他说,就在这检查站,我认识了没办边防证的她,多少年了,我们相亲相爱,本以为这辈子可以相沫到老……朋友泣不成声。我叫朋友把车停下来,让他做的副驾驶的位置上,然后递给他几张纸巾,他摘下眼镜,用纸巾紧紧捂住双眼。看他那悲伤的样子,我忍不住说,既然这样,你为何让她走呢?他说生活中出现了裂痕,她决意要走,就算留得住她的人也留不住她的心。我说在机场的那一刻我看到你还笑得那么灿烂。他说他知道这一次的分离意味着什么,在机场的那一刻他不愿意让她看到他的悲伤,他想让她开开心心地离开自己,其实那一刻他的心在滴血,他露出来的是含泪的微笑。 我深深记住他脸上的那种微笑。从机场回来后我们去了红荔路上的酒吧。那晚在酒吧里我问他有没事,他说没事。他的脸上同样露出微笑,但从他的镜片背后,我却看到他眼睛里隐藏着的忧伤。我知道他依然要工作、要生活,我知道他依然要面对同事、面对上司,我知道他依然要面对社会,面对人生,面对他自己,我知道他的脸上依然会露出微笑,但我知道无论如何他却抹不掉心灵深处的那种伤痛。举杯的时候我说,相信你能坚强度过。他说理解万岁!酒吧里正唱着迪克牛仔的那首歌“做男人好辛苦”,我觉得做一个真正、感性的男人更加辛苦。 我想起另一个在深圳工作的好友。有一次在他的生日会上,和他拍拖多年的女朋友提出与他分手。我这位朋友和女朋友从高中就认识了,他们一起上大学,一起来到这座城市打拼。他老跟我说和女朋友的爱不知道有多厚,和女朋友的情不知道有多深。朋友的女朋友是个潮州人的女儿,很有钱。她的父母老嫌弃我这朋友穷,没出息。在我朋友跟她拍拖的多年里,他父亲让黑社会恫吓过他,也让人带过几十万的支票来诱惑过他,目的一个,只要我这位朋友离开他的女儿。我朋友从没理会过她的父亲。他闹得越凶,他们两个就越相爱。但没想到相爱多年以后,女朋友居然向他提出分手。女朋友说,她的父亲得了绝症,很快就要离开人间了。为了让父亲开开心心过完这段日子,她决定搬回去好好照顾父亲。她要我朋友自己保重,她说她一辈子都会想念我这朋友……当着众人的面,朋友叫她别哭,要她回去照顾好她的父亲。女朋友走后,大家一起安慰我这朋友,生日会的气氛一下子凝聚起来了。朋友端起酒杯说,没事,大家喝一杯吧!在大家“生日快乐”的祝贺声中,朋友脸上一样露出微笑。 我不知道接下来的日子,我这朋友是怎么度过的。反正他现在结了婚,也有了小孩,而且是一家规模不小的企业老板。前几天一起吃饭的时候提起那一次的生日会,朋友总笑着说,当时他觉得天旋地转,一切来得那么突然。但面对众多朋友,他只能露出惨淡的微笑。朋友说男人不同女人,男人遇到悲伤时不能哭不能啼,不能上吊不能闹,很多时候只能强忍自己,在别人面前就算装也要装出点笑容。我很赞同他的说法,男人在遭受打击、挫折和悲伤时,总得有点男子汉的“样子”,男人正因为自己是男人而要承受很多本来不应该男人承受的东西。男人正因为自己是男人而要强装笑脸,用微笑来掩盖脸上的痛楚。 男人的脸上常常会露出这种惨淡的微笑,男人的微笑在很多时候是一种无奈,面对怆伤,面对命运,他只能用微笑来掩饰一切。男人的微笑在很多时候是一种勇气,面对打击,面对痛苦,他能付诸一笑。男人的微笑在很多时候也是一种力量,面对挫折,面对悲伤,他能坚强一笑。男人的微笑在很多时候更是一种洒脱,面对灾难,面对不幸,他能一笑而过。面对生活的无奈,男人的微笑更多时候是勇敢的流露,是力量的象征,是坚毅的表现。男人的微笑是男人看透人生,冲破困境,充满自信的一种表现。男人的微笑是男人对人生、对不幸的傲视! 我不喜欢遇到一点点挫伤就满脸沮丧,将脸拉得老长的男人。我欣赏男人在苦痛面前昂首挺胸,在大起大落面前处世不惊。我敬佩男人在挫伤面前沉着向前,在风风雨雨之中泰然自若。我喜欢男人在不幸降临的那一刻,脸上出现的那一抹微笑,尽管那一笑包含着多少热泪。
    November 07

    System-Level Verification of Autonomous Systems

    System-Level Verification of Autonomous Systems

    funded by NASA's Intelligent Systems Project

    People

    NASA Ames

    Summer Interns / Academic Visitors Related projects

    Publications

    • Blundell, C., Giannakopoulou, D., and Pasareanu, C.S. "Assume-Guarantee Testing". 4th Workshop on Specification and Verification of Component-Based Systems (SAVCBS’05), associated with the 5th joint meeting of the European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2005), September 2005.

    • Giannakopoulou, D., Pasareanu, C.S., and Barringer, H., "Component Verification with Automatically Generated Assumptions". Journal of Automated Software Engineering, Kluwer Academic Publishers.
    • Barringer, H., Giannakopoulou, D., and Pasareanu, C.S. "Proof Rules for Automated Compositional Verification through Learning". 2nd Workshop on Specification and Verification of Component-Based Systems, associated with the 4th joint meeting of the European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2003).
    • Cobleigh, J.M., Giannakopoulou, D., and Pasareanu, C.S. "Learning Assumptions for Compositional Verification", in Proc. of the 9th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS 2003). April 2003, Warsaw, Poland. Springer, LNCS.
    • Giannakopoulou, D., Pasareanu, C., and Barringer, H., “Assumption Generation for Software Component Verification”, in Proc. ofthe 17th IEEE International Conference on Automated Software Engineering (ASE 2002). September 2002, Edinburgh, UK Awards. ACM Sigsoft Distinguished Paper.

    November 05

    某书中的一段话

    人们常常抱怨所用的记号。初学俄语的学生经常抱怨陌生的斯拉夫字母造成的障碍,特别是其中不少字母的发音奇特。尽管如此,这还是俄语学习中最容易的阶段。学会书写后,必须学习文法和词汇,然后掌握成语和文体,再改进用俄语表达自己思想的熟练程度。为掌握这一切,必须花时间去学,去练,不会一蹴而成。学习数学也是这样。开始时,符号也是一道难逾的障碍,但是实质性的问题是理解符号的含义和特性,了解如何对它们进行操作,并且学会熟练地使用它们来表示新的问题、寻求新的解答、给出新的证明。最终,你能培养自己具有对数学优美风格和文体的鉴赏力。达到这一境界时,符号也随之消失;由符号你可直接看到其含义。数学的优点在于,它的规则比之自然语言的规则简单得多,它的词汇比之自然语言的词汇也少得多。
    October 31

    学术报告

    软件工程国家重点实验室(武汉大学)建室20周年学术报告会
    时间 2005年11月2日
    地点 实验室1楼报告厅
    时间                   报告人              报告题目

    11月02日上午主席:王振宇(中船总709研究所)
    08:30--09:20 李德毅 院士 总参谋部第61研究所 复杂网络和信息空间安全
    09:20--10:10 傅育熙(上海交通大学 教授)Relating Three Models of Computing
    10:10--10:20 茶休
    10:20--11:10 诸葛海(中科院计算所 教授)资源空间模型、完整性及其在敦煌文化展示中的尝试
    11:10--12:00 杜小勇(中国人民大学 教授)数据库与信息系统研究与挑战

    午餐(武汉大学梅圆餐厅)

    11月02日下午 主席:李德毅 院士(总参谋部第61研究所)
    14:00--14:50 史忠植(中科院计算所 教授)自主语义网格
    14:50--15:40 王振宇(中船总709研究所 教授) 软件体系结构的研究
    15:40--15:50 茶休
    15:50--16:40 吕金虎 加拿大卡尔加里大学博士后研究员Complex Dynamical Networks Modeling, Synchronization and Control
    16:40--17:30 何克清(武汉大学 教授)软件网络演化生长的设计方法与实验

    晚宴(锦华圆)

    October 28

    姚期智:清华一年间

    姚期智:清华一年间


    2005年,计算机科学领域的大师Avi Wigderson教授(Rolf Nevanlinna Prize 1994
    年得主)和Leslie G. Valiant教授(Nevanlinna Prize 和Knuth Prize得主)先后在
    清华演讲,引起了极大反响。

    2005年4月,清华大学高等研究中心引进了世界著名的密码学学者王小云教授和微软
    亚洲研究院团队来清华紧密合作。

    2005年8月初,三位来自MIT和加州大学伯克利分校的美国学生开始了他们在清华为期
    半年的研究与学习。这学期,我校三名同学分别到美国耶鲁大学和美国密歇根大学进
    行短期交流访问。

    ……

    在这每一次交流与合作的背后,都有一个共同的名字——姚期智。

    姚期智教授现年59岁,出生于上海,毕业于台湾大学,分别获哈佛大学物理学博士及
    伊里诺斯大学计算机博士,是美国国家科学院院士和美国人文及科学院院士,曾先后
    获得SIAM George Polya奖和ACM SIGACT-IEEE TCMFCS Donald E. Knuth奖,2000年
    获得计算机科学的最高奖“图灵奖”(被认为“信息领域的诺贝尔奖”),成为首位也
    是唯一获此殊荣的亚裔科学家。2003年10月受聘担任清华大学讲席教授,成为清华大
    学计算机系讲席教授组首席科学家。2004年6月,当选中国科学院外籍院士。2004年
    9月,姚期智教授于正式受聘为清华大学教授,担任清华大学高等研究中心全职教授
    工作,并定居清华园。

    回国定居一年间,姚先生在推动清华大学计算机学科向世界一流水平迈进的过程中,
    发挥了积极的作用。

    温总理的嘱托

    2004年9月5日,温家宝总理专程在教师节前来看望姚期智教授。在交谈中,温总理说
    ,国家对人才的需求如饥似渴,高层次的人才是国家最稀缺、最宝贵的资源;我们在
    抓好基础教育的同时,也要下大力气抓好高等教育,为国家广泛培养高层次优秀人才
    ;在重点科研机构和重要科研领域,要实行杰出人才的全球招聘制度;要为杰出人才
    的脱颖而出和充分发挥作用创造良好的条件。

    作为在国际一流大学长期任教的教授以及在计算机理论领域享有世界声誉的学者,姚
    期智教授出任清华大学信息科学与技术国家实验室(筹)学术委员会主任和首席科学
    家,立即承担起建设世界一流的清华大学信息科学的重任,组织筹建国家实验室。2004

    年10月22日,教育部部长周济、副部长吴启迪等领导来到清华大学考察信息科学与技
    术国家实验室的筹建工作,专门与姚期智教授会面并听取了他的汇报和建议。

    “5年争取新突破!”


    在清华的一年间,姚先生全面延续了他的国外的高水平学术研究,在演算法和量子计
    算学两个领域发表了4篇国际会议论文,在通信复杂性上也取得了一些新的研究结果


    在清华的一年间,姚先生获得了伊利诺大学工学院杰出校友奖、香港科技大学荣誉工
    学博士等学术荣誉。今年9月,荣获“友谊奖”这一我国授予外国专家的最高荣誉。


    在清华的一年间,姚先生带领清华大学计算机系讲席教授组在理论计算机领域勤奋工
    作。理论计算机科学是他的主要研究方向,该学科在国际计算机科学与技术研究中起
    着重要的作用,我国在这一领域的研究工作却比较薄弱,严重影响了国内计算机学科
    的发展。2003年,姚先生亲自精心挑选了7名国际一流大学的知名教授组建了讲席教
    授组。一方面,讲席教授组成员全力以赴做好在清华的理论计算机科学人才的培养工
    作;另一方面,身在世界各地的教授组成员以姚先生为中心,经常通过各种通讯手段
    电子邮件相互联系与交流,及时互通理论计算机学科的最新动态。

    “做世界一流的工作,用5年左右时间在计算机理论领域有一个新的突破。”这是姚
    先生给自己定的目标。在清华大学,姚先生计划重点发展计算机密码学和计算机图形
    学两个方向。在他的积极争取下,这两个方向在过去一年里分别引进了世界著名的密
    码学学者王小云教授和吸引了微软亚洲研究院团队来清华紧密合作。

    王小云教授的主要研究领域是计算机密码学和信息安全学。她先后于2004年8月和2005
    年2月破解了目前国际通用多年的、属于电子通讯中关键技术的MD5和SHA-1密码算法
    ,在国际上产生了强烈影响。姚先生得知王小云教授所做的工作后,主动联系王小云
    教授到清华讲学,并提出引进她到清华大学担任高等研究中心“杨振宁讲席教授”的
    职位。王小云教授欣然接受,于2005年4月正式受聘为清华大学高等研究中心教授,
    她与姚先生在密码学方面的合作研究也随之展开。

    姚先生还联系了微软亚洲研究院院长兼首席科学家沈向洋博士为首的4位图形学领域
    的著名专家,来清华参与计算机图形学的研究工作和博士研究生的培养工作。2005年
    春季学期开始,这四位计算机专家已在清华大学开设《高级计算机图形学》的研究课
    程,并开放给学生选修,受到我校学生的热烈欢迎。

    青青子衿,悠悠我心

    在清华大学信息学院开学典礼上,姚先生对学生们说,“大家在求学期间不要把将来
    求得温饱这件事情当作自己生活的唯一目标,各位都是在中国最顶尖的人才,我希望
    大家把理想放得高一些,要做一个有用的人,要做大事业,成为一个顶天立地的人!
    ”当时,会场的掌声经久不息。

    为了培养出更多“顶天立地的人”,姚先生在学生们身上倾注了大量的心血。

    两年前,他领导的讲席教授组将培养我国理论计算机科学人才作为首要任务。当时,
    学校从计算机系、数学系和基础科学班中先后挑选了13名成绩优秀、又有志向投身于
    计算机理论科学研究的本科生和研究生,组成了学习小组,师从国际一流大学的知名
    教授组成的讲席教授组进行学习。

    在他的亲自规划下,讲席教授组有着严密的教学计划和严格的分工,尽管每位教授在
    京授课的时间只有短短的一个月时间,但每位成员在完成教学任务之后,都及时向全
    组通报完成的情况及存在的问题,并在最短的时间内加以解决,使各成员间的工作能
    互相衔接。姚期智教授亲自指导学生们的研究和学习,学生们的多篇论文在国际著名
    杂志Algorithmica和国际理论计算机重要会议Computational Complexity上得以发表


    在给同学们配备一流的师资的同时,姚先生还努力为同学们创造与国外著名大学的优
    秀学生交流的机会,加速与国际专业水平的接轨。一方面他从2005年初开始就向美国
    多所著名大学的计算机系博士生发出邀请,邀请他们来清华参与讲席教授组内的学术
    活动,并和国内的学生共同学习、相互切磋。另一方面,他也尽可能地介绍组内的同
    学到国外参与知名学府的科研项目。同学们通过这种经常与不同的国际一流学者交流
    与学习的方式,大大地开阔了视野,活跃了思维,提升了学术水平。

    2004年11月27日,姚先生在清华大学主楼后厅举办了一场面向全校本科生的别开生面
    的“现代密码学探秘”讲座。他在报告中并没有引述大段的专业定义和概念,而是带
    给同学们很多趣事:拍卖场上的斗智斗勇,两个有钱人的比富,如何能够用复杂的参
    数对付狡猾的奸细……不少同学是坐在台阶上或者是站着听完这场报告的。报告之后
    ,“学术追星”族们把姚先生围了个结结实实。

    我有嘉宾,鼓瑟吹笙

    姚先生回国定居后,主动和国内同行联系,并亲自走访国内高校开展学术交流。同时
    ,姚先生积极吸引世界最优秀的科学家来做访问,他说,“让年轻学者和学生接触到
    这些专家,了解他们是怎么做出一流水平的研究。”

    2004年9月以来,姚先生定期联系、邀请国内外知名大学教授来清华为学生做学术报
    告。不仅为学生提供了与国际一流学者交流的宝贵机会,还大大提升了学术讲座的水
    平、丰富了学院的学术气氛,至今已经组织过10场高水平的讲座。开篇所说的两位计
    算机科学领域的大师正是姚先生2005年邀请来华的。讲座举办当天,许多慕名而来的
    学生把整个讲堂挤得水泄不通,两位大师深入浅出的精彩讲演让清华学子们真正领略
    到了名家风采。

    为了使学生们能够与这些世界级大师有更频繁更深入的交流,姚先生计划于下半年继
    续邀请更多在计算机科学领域有突出贡献的知名学者到清华访问,并以“名家系列讲
    座”的形式固定下来,作为讲席教授组教学的一种重要辅助手段,长期地办下去。

    2005年3月16日,在北京市政府举行的颁发仪式上,姚期智先生从北京市公安局局长
    马振川手中接过了标志着北京永久居留权的“绿卡”。
    October 12

    博士生创新能力的培养点滴 胡伟武

        创新能力的培养是博士生教育的核心,博士生的学位论文必须有
    所创新。下面是我在攻读学位期间和毕业后工作中就创新能力培养的
    一些体会。

         一、导师起着关键作用
        博士导师对博士生创新能力的培养起着十分重要的作用。导师要
    有很强的责任心。一方面,导师要对国家负责,招收学生的根本目的是
    为国家培养人才;另一方面,导师要对学生负责,除了让博士生学到知
    识,更重要的是教会学生做研究的方法,不能把学生当作廉价劳动力。
    如果让学生参与一些项目的研究,要尽量让博士生参加研究性的项目,
    避免让他们参与开发性的项目。有的导师招收博士生后,让博士生做大
    量的开发工作,直到毕业前一年甚至半年才让学生开始看文章,这是培
    养不出好学生的。
        导师既要给学生创造自由的研究环境,又要给学生必要的压力。在
    我攻读学位期间,我的导师夏培肃院士经常告戒我,一篇博士论文一定要
    有明显的创新,要有自己的思想和理论;否则,即使有很大的工作量,可
    以算若干篇硕士论文,也算不了一篇博士论文。我的博士学习生涯中,有
    近两年的时间就是在怕毕不了业的压力下度过的。直到阅读了大量的文献,
    对国际上相关领域的研究有了深刻的了解,自然地就有一些新想法。
    对于博士生的研究方向,导师不能不管,但也不必管得太细,以免限
    制学生本身创造性的发挥。导师应该向学生介绍本学科目前国际上的研究
    热点和发展方向,让学生自己去选择题目。在研究工作中,导师要注意对
    博士生研究方法和能力的培养。我在1995年6月完成博士论文的初稿,
    一直到1996年2月29日才答辩,中间根据夏老师的要求修改了二十多稿,
    历时8个月。夏老师对我的论文从它的学术内容,到章节的安排、单词的
    用法、甚至标点符号,都进行了仔细的推敲和修改。一个在我看来是理所
    当然的结论,夏老师却要求我给出严格的证明。到答辩时,我的论文与其
    初稿相比已经是脱胎换骨、面目全非。在这8个月的论文修改中,我受益
    非浅。可以说,是导师手把手地教会了我如何做学问。
        如果有可能,导师可以给学生创造条件,让学生接触国内外领域的一
    些权威人士和学术带头人。这对学生毕业后的发展是很有好处的。我的导师
    夏培肃院士是中国计算机事业的创始人之一,是国内计算机系统结构领域的
    泰山北斗,我也受益非浅。

        二、大量阅读文章,把握国际研究前沿
        创新是对人类现有知识的拓展。博士论文的创新必须基于对所研究领域
    国际同行工作的全面了解。这就需要阅读大量论文,了解本领域现有的工作
    基础和需要解决的关键问题,甚至了解国际同行工作的特点。应该达到这样
    的程度:在谈到所研究方向的情况时,一般来说,这个过程需要一年到两年
    的时间。我自己以及我的师兄唐志敏和马余泰,都花了一年半以上的时间来
    阅读论文。根据我自己的体会,我很难相信,那些被导师的与论文无关的项
    目占用了大量的时间,只在毕业的前一年(有的只有半年)才开始做论文的
    学生能作出合格的博士毕业论文。有些博士论文,连所研究领域的综述都写
    不好,更谈不上创新。
        阅读文章是一个认识不断加深的过程,需要经过几个阶段。刚开始是了
    解阶段,了解自己所要研究的领域国际上同行的一些工作,有一些点滴的了
    解,还没有全局的观念。随着阅读文章的深入, 慢慢地会产生一些问题和
    迷惑,一方面,对国际同行的工作有了较全面的认识,觉得要解决的问题很
    多,另一方面,觉得自己能想到的别人都想到了,无从下手。这时候再看别
    人的文章时,不仅要了解,而且要注意领会,对一些核心的文章,可能要反
    复地看,同时结合自己的迷惑和问题进行深入的思考。这样过了一段时间,
    终于会有豁然开朗的感觉,觉得自己接触到了一些问题的本质。这时再回头
    看别人的工作,就能够发现其中一些不足的地方或值得改进的地方。

         三、理论与实践结合,进行创新性研究工作
        对工学学生来说,下一步可以进行实验和模拟。由于已经对别人的方法
    有了透彻的了解,在实验中就可能提出自己的方法或对别人方法的改进。即使
    自己的方法不如别人也不要灰心,而是要分析原因。在实验过程中,对于碰到
    的问题再去有针对性地阅读文章,这种有针对性的阅读会对别人工作的细微之
    处有更深的了解。如此反复,不断经历从实践到认识,再用认识指导实践过程
    [1],就能不断认识,发现问题,创新的火花也会从中迸发。从而对本研究方向
    的发展做出自己的贡献。
        最后,当自己对所研究的领域有了系统的了解和创新后,再看论文时,就
    会觉得虽然文章多如牛毛,但很难看到让人眼睛一亮的好文章了。同时也觉得
    自己以前发表的文章大部分是垃圾。在这种认识的基础上,才能避免为了文章
    而写文章的情况。我产生这种认识和体会的时候,是在博士毕业若干年之后了。
     
       四、要有献身精神,注意学术道德的培养
        在读书期间,应逐渐确立自己的人生方向,如果觉得自己不适合做学问或对
    金钱十分感兴趣,趁早离开做学问的地方。
        做科学研究是要有献身精神的。 在生活中,不仅要准备过比较清贫的生活,
    而且要容忍各种社会压力和误解。在工作中,要全身心的投入,没有上班和下班
    的区别,即使在走路或吃饭的时候,脑袋里还常常萦绕着一些问题,半夜也会为
    了一个新想法的产生而兴奋得不能入睡。
        做学问是一种踏踏实实的工作,需要长期的积累,不能有浮躁的心理。创新
    思想的产生,常常是在长期平淡的工作之后,因此,需要非常的耐心和持之以恒
    的决心。做学问最讲究实事求是,来不得半点虚假。有就是有,没有就是没有。
    写文章的正确态度是在做了大量的理论和实践研究之后,觉得自己的工作已经到
    了可以总结一下的时候,不要为了文章而写文章,更不要为了文章的数量而涉足
    抄袭以及一稿多投这些禁区。论文的署名更要实事求是,须知论文的作者既是一
    种荣誉,更是一种责任。近年经常看到一些知名者由于学生的虚假论文而受到连
    累的报道,我们要引以为戒。现在学术界有一种认识,就是在学生完成的论文中,
    都要把导师作为作者之一。这即使在国外的许多地方也是天经地义、无可厚非的。
    但我的老师夏培肃院士却不允许这样做,除非论文中确实包括她的实质性的工作。
    在我入学之初,我的师兄就告诉我,如果不经夏老师同意而把她列为论文作者之
    一,会受到严厉的批评。后来,夏老师说,她在英国爱丁堡大学的博士导师也是
    这样要求的。在这方面,作为老师的弟子,都是十分小心的,并且我们也同样地
    要求我们自己的学生。

        五、不要自高自大,也不要妄自菲薄
        海纳百川,有容乃大。我经常接触到一些老科学家,他们是国际的知名学者
    或是某个领域的泰山北斗,他们有一个共同的特点就是谦虚得很。越是谦虚我
    越觉得他们厉害,崇敬之情油然而生。遗憾的是,这种普遍存在于老科学家身
    上的谦虚精神在年轻人中已经严重地淡化了。我接触到不少这样的人,他们确
    实在某些领域有所建树,却总是怕别人不知道他的成绩,怕别人不知道他在国外
    知名的大学呆过。其实,一个人越是谦虚,别人越是觉得他深不可测,这一点
    我在当夏老师的学生的过程中体会得非常深刻。
        我们也不要妄自菲薄。一种错误的观念就是觉得土博士不如洋博士。于是在
    有些研究机构国内培养的博士待遇就不如从国外回来的博士。于是不少年轻人为
    了出国而出国,甚至把出国当作人生目标。诚然,从总体上说,西方国家的博士
    总体水平要高于我国,但这并不意味着每一个都如此。一般说来,出国求学的学
    生由于受到很大的压力,都非常刻苦。现在,国内的研究环境有了很大改善,如果
    我们立足国内,静下心来刻苦钻研,没有理由比洋博士差。其实,对个人来说,国
    内的机会更多。

        六、我国博士生的教育体制需要改革
        一般说来,要在三年内完成优秀的博士学位论文是非常困难的。博士生从学习
    到创新心态的转换需要一个过程,创新能力的形成也需要一个过程,掌握国际研究
    前沿以及做出创新性的工作需要积累和实践。此外,博士生不可避免地需要做一些
    与研究方面关系不大的事情。因此,三年的时间是十分紧迫的。而且,不同的研究
    领域所需的时间也不同,博士生的个人素质也有所差异。因此,一概以三年而论是
    不科学的,应该具体情况具体分析,在教育部门做一定的规定的基础上(如基础课
    的有关规定),由导师确定毕业时间。同时,逐渐形成对导师的监督机制。
        此外,应该克服博士生"只要呆够年头,就一定能取得学位"的心理,改革博
    士生的答辩体制。表面上,答辩能不能通过在于老师,其实导师也有苦衷。普遍的
    问题是,博士生三年时间一到,教育部门就开始给导师压力,如果不能及时毕业,
    那么学生以后的宿舍、助学金以及其它的一系列问题都会成为导师头痛的问题。有
    的研究生教育部门甚至以以后限制招生为威胁。因此,导师必须在三年内让博士生
    毕业,否则就是导师的过错。这是引起导师把关不严的重要原因。十年树木,百年
    树人。培养一个人才哪有那么容易的。最近开始实行的硕博连读制度很受导师的欢
    迎,但也存在管得太死的问题。因此,我国博士生教育体制需要改革。

      导师简介
    夏培肃,女,1923年7月出生于重庆。1945年毕业于中央大学电机系,1950年获
    英国爱丁堡大学博士学位。中国科学院计算技术研究所研究员。我国计算技术创始
    人之一。1956年参加建立我国计算技术的规划。规划后为我国计算技术的起步培
    养了数百名专业科技人员。1959年创建中国科学技术大学计算机专业。先后培养了
    约40名博士和硕士研究生。在50年代,曾设计试制成功我国第一台自行设计的通
    用电子数字计算机。在60年代,解决了数字信号在大型高速计算机中传输的某些
    关键问题。在80年代,负责设计研制的高速阵列处理机使石油勘探中的基本地震
    资料处理速度提高10倍以上。并负责研制成功多台不同类型的高性能计算机。曾
    先后创办《计算机学报》和《Journal of Computer Science and Technology》,
    并担任第一任主编。1985年被英国Heriot-Watt大学授予荣誉科学博士学位。
    1991年当选为中国科学院院士(学部委员)。

        作者简介
    胡伟武,男,1968年11月出生于浙江永康,1991年7月毕业于中国科技大学计算
    机系,随后免试进入中科院计算所直接攻读博士学位,师从著名计算机专家夏培肃
    院士,1996年3月博士毕业并获工学博士学位。现任中科院计算所研究员。主要研
    究方向为高性能计算机系统结构、并行处理、集成电路设计等。目前已在国内外杂志
    及会议上发表论文40多篇。曾先后获"中科院科技进步二等奖"、"中科院院长奖学
    金特别奖"、"全国首届优秀博士论文奖"、中科院盈科优秀青年学者奖"等奖励。

    我的三位导师

    我的三位导师

    东南大学   徐宝文

    (原载《江苏政协》2004年第9期)

    在九月这个收获的季节,我们将迎来第20个教师节。今年也是我硕士研究生毕业20年,参
    加工作20年,引进到东南大学工作10年,破格晋升教授10年。因此,对我来说,这个教师
    节显得更有意义。

    和许多在高校任教的教师一样,我大学毕业后也经过了硕士、博士与博士后阶段,从而也
    就有了三位导师:读硕士时的导师武汉数字工程研究所(709所)王振宇教授,读博士时的
    导师北京航空航天大学李未教授,做博士后时的合作导师国防科技大学陈火旺教授。
    我这三位导师虽然目前分别工作在武汉、北京和长沙,但都在京广线上,而且彼此认识。
    另外,他们还有一些共同特点:他们都毕业于名牌大学——武汉大学、北京大学与复旦大
    学——的名牌数学系,在大学毕业后都有相当长的时间从事数学研究或教学,因而都有很
    好的数学功底,以后都改行搞计算机,而且搞的都是计算机软件;他们的单位都是为国防
    服务的:709所是主要为海军服务的军工科研单位,北航是为主要空军服务的教学科研单位
    ,而国防科大本身就隶属于中央军委。差别只在于王老师与李老师不穿军装,而陈老师19
    90年就是全国同行中非常闻名的少将。

    三位导师中,王振宇老师成名最早。1956年,他20岁时就大学毕业了,大四时就发表论文
    并被在当年数学年鉴上介绍,后跟随著名数学家、武汉大学已故老院士李国平教授筹备成
    立中科院武汉数学研究室(后改名为中科院中南数学计算技术自动化研究所,即现在的武
    汉数字工程研究所的前身),并从事基础数学(函数论)研究工作。从1970年代开始,为
    了服从国防科研大局,他改行从事计算机软件领域的科研工作。王老师在从事军工研究的
    同时仍然不放弃理论研究,在树的枚举计数等方面作出了非常突出的成绩。1980年代初他
    就是六机部(后改为中国船舶工业总公司,现分为南北两个公司)科学技术委员会最年轻
    的委员。

    王老师既是我的导师,也是我的学长:我们都毕业于武汉大学,都进的数学系(我所学的
    计算技术专业在我就学期间分到了计算机科学系),但他比我早25级、大25岁。他在大学
    时和中科院院士陈希儒等人是系里闻名的四大才子,和原江苏省委书记、现全国人大副委
    员长顾秀莲的先生、中科院原子能研究所研究员阳明珠是同班同学。有一次,王老师和我
    谈到,阳师伯曾说,他这一辈子最倒霉的就是找了一个当大官的老婆。这也许是阳师伯的
    一句玩笑话,却使我悟到了许多。由于是搞函数论出身,王老师做学问极其认真、极其严
    格、极其勤奋,他常教育我们如何做人、做学问,给我这一辈子的人生走向启发很大。记
    得1981年考完研究生成绩出来后不久,我和现在已是该所总工程师的孙潮义同学一起去所
    里找王老师询问录取情况,王老师除了对我们勉励外,还意味深长地讲了一句话:“谋事
    在人,成事在天”。这句话现在看来很平常,但对当时我这个从小长在在农村、大学期间
    生病休学将近一年、又不顾身体没有完全恢复执意全力考研的穷学生来说,却感到非常温
    暖。这句话看似简单,却告诉我许多人生哲理。在此后20多年的人生与工作中,每当我遇
    到各种不利、不公、困难、阻力、磨难乃至刁难时,除偶尔发发牢骚外,我都力争正确对
    待,清清白白,实实在在,踏踏实实,坦坦荡荡,勤勤恳恳,随遇而安,努力认真做好自
    己份内份外自己觉得应该做的事情,尽量不要去和别人比和争,更不会为了一己私利去做
    出卖人格、朋友和肉麻的事情。以这样的心态,尽管从功利的角度我失去了许多,但我同
    时也获得了许多通过权钱争斗投机取巧拉帮结派背叛使坏等所无法得到的宝贵的东西。

    李未老师是我三位导师中头衔最多、目前名声最大的一个,在国内学术界有非常高的地位
    。他比王老师小7岁,晚毕业10年——李老师1966年北京大学数学与力学系毕业,1983年获
    英国爱丁堡大学计算机科学博士学位。他在实用并发语言语义和形式系统序列及其极限研
    究等方面取得了开创性研究成果,他所创建的开放逻辑理论受到了国内外学者的广泛关注
    。李老师是中科院院士、北航校长、软件开发环境国家重点实验室主任、国务院学位委员
    会委员、教育部计算机教学指导委员会主任、973首席科学家。

    我1993年就向李老师表达过想做他的博士生的愿望,他一口答应。我由于调动工作以及个
    人懒散等原因,拖了多年才做完博士论文。李老师对时间的“精打细算”是很有名的,20
    02年担任北航校长时的就职演说仅用了6分钟。他对我一直非常关心,记得我刚卸任系主任
    岗位后,他可能从一些途径上听说我在工作环境上有些困难,我每次去北京,他都要约我
    一起吃饭,有时是他一个人请我吃饭,有时是全家和我一起吃饭,我们在北海、亚运村、
    建国饭店等许多地方都吃过饭。他在饭间茶余闲谈中对人生、学问及一些问题的看法、对
    我的鼓励和指导不仅开拓了我的眼界,也使我对许多人和事有了更深刻的认识。李老师是
    一位谦谦君子,替别人考虑很多。他在就任校长前半年多,北航就有由他和现教育部副部
    长赵沁平担任校长的很高呼声,他有一次与我细谈此事,谈到时任校长就与他楼上楼下住
    着,他如担任校长感到有点对不起时任校长,这使我非常感动。李老师是一位战略科学家
    ,但他不像个别所谓战略科学家那样只忙于看战略文献、做战略报告和指示、自己不做具
    体研究,直到现在仍然坚持自己独立进行学术研究。他对我讲,一个学者不做研究、不自
    己写论文有什么意思!他在《中国科学》发表的10多篇论文中,就有好几篇是他一个人独
    立发表的。最近他一个人独立发表在《中国科学》上的论文《R-演算:一个修正程序规约
    的演算系统》是他在当了院士5年后做校长时于2002年投的稿。他在这篇论文的致谢中说:
    “感谢张玉平博士,由于他对作者有关逻辑结论的必要前提概念的不断反驳和讨论,才使
    作者最终找到此概念的当前描述”。短短几十个字就可以看出一个潜心为学、严格认真、
    扎实细致、一丝不苟、求真务实、谨慎谦虚、胸怀宽广、不耻下问、虚怀若谷的大学者的
    人品和风范。同时,李老师也是一个敢于负责、心胸坦荡的人。最近北航招生事情一披露
    ,他没有像有些人那样推卸责任或把助手推到前台自己缩在后面,而是马上通过媒体主动
    承担责任、“诚恳地向社会表示歉意”,得到了许多人的谅解,网上称他“校长不乏学者
    风范,敢于承担责任”,体现了一个大学者、大科学家、大教育家的宽阔胸怀。李老师非
    常爱才,而且是真心实意地爱才。他为了从西安引进一个知名青年教授,动员已经是863专
    家组负责人的自己的学生放弃报特聘教授,而让这位待引进教授申报。记得2002年初他刚
    当校长时,我在总装备部某部门看望上年刚退休的何新贵院士后去北航看望他。他虽然刚
    上任非常忙,但当他听我说北大正想聘请何老师担任信息学院院长时,马上要我接通何老
    师的手机,他在电话中言辞非常恳切、话语完全发自肺腑,希望何老师能够来北航,他可
    以为其提供各种条件。这令在旁边听着的我非常感动:人们常说同行相轻,两位老师同为
    院士、软件界著名学者,而且何老师虽然比李老师大不了几岁,但在软件界的资历却老得
    多。要知道,有些“学者”不仅不能容忍自己单位有比自己资历学问高的同行,甚至对比
    自己资历浅许多的有发展前途的学者也百般刁难打击压制,对自己的成绩与学生无限抬高
    ,对别人及其成绩肆意贬低。我想,这大概是以李老师作为带头人的北航计算机学科这几
    年能够飞速发展的一个重要原因吧。

    对陈火旺老师,我在大学读书时就非常仰慕,因为我在20多年前大学期间就读过他和上海
    交大孙永强教授、复旦大学已故钱家骅教授合写的后来获得特等奖的教材《编译原理》,
    而且他那时候在国内软件界就非常有名。他与王振宇老师同龄,都生于1936年,也于同一
    年大学毕业。1956年复旦大学数学系毕业后留校任教,曾在北京大学数理逻辑专业、英国
    国家物理所进修,1970年调长沙工学院(现改名为中国人民解放军国防科学技术大学)。
    在我这三位导师中,陈老师从事计算机软件教学和研究的时间最长、资历最老,他建立了
    有限函数空间上的能行运算和能行连续泛函理论,主持了我国第一个符号汇编语言和宏指
    令产生器的设计与实现、第一个FORTRAN编译程序的设计,获1978 年全国科学大会奖。从
    1970年代开始,负责我国第一台巨型计算机“银河”号的软件设计工作,是银河一号巨型计
    算机的“软老总”。早在1990年就被授予少将军衔。他与李老师是教育部计算机教指委前
    后任主任,并且都是国务院学位委员会计算机学科评议组成员。

    我真正认识陈老师很晚,直到1990年代我才有机会与陈老师相见,那是在我国计算机软件
    的创始人之一、南京大学著名教授徐家福先生指导的博士生的论文答辩会上,陈老师是答
    辩委员会主席,我是委员,但那次我们之间没有深谈。陈老师常年身体不好,到哪儿出差
    都要师母陪伴照顾。但我做了他的学生后,每次去长沙,他都亲自为我安排住宿和餐饮、
    安排我的活动、安排他的司机小乔到机场接送并负责我在长沙的所有出行。一个60多岁的
    多病的老人为我这样一个年轻力壮的学生一切,事无巨细,都安排得非常周到,令我非常
    感动。我每次在长沙,除了早餐外,他和师母都要和我一起用午餐与晚餐。长沙人喜辣,
    但他却非常细心,在点菜时总要为我这个不吃辣的江苏人点些不辣的菜。他很喜欢喝酒,
    几乎每餐必有酒,可惜我不会喝酒,只能喝点葡萄酒或啤酒,无法令他尽兴,这是我一直
    感到比较遗憾的。他在酒兴正浓时,与我们无所不谈,话题涉及方方面面,从中我看到了
    导师知识的渊博、思考的深邃、做事的认真、为人的豁达。陈老师非常尊敬前辈、尊重同
    行、注重礼节。他与徐家福先生虽然是多年的好朋友与合作伙伴,但他对比他大10多岁的
    徐先生非常敬重。2003年底,在南京东郊国际会议中心举办的徐先生80大寿庆典活动上,
    当着国内许多院士、学界泰斗的面,他在主席台上致完贺辞后,以他67岁的高龄面向坐在
    台下的徐先生夫妇深深地三鞠躬,全体嘉宾无不为之动容。

    如今,我也已经招了15年的硕士研究生,当了将近10年的博士生导师,所指导的博士后、
    博士生与各类硕士生也有100多人,并被评为省优秀研究生导师。我在指导我的学生时,处
    处以我师为师,注意吸收他们的教育思想和方法,努力与学生融洽相处,非常注意培养学
    生如何做人、做事、做学问,培养学生的事业心、责任心、凝聚力、友爱心、包容心和平
    常心。我的三位导师对我的指导、关心、呵护和帮助不仅体现在我的在学期间,而且一直
    延续到现在,而且还会延续下去。我这三位导师分别在为海、空、陆军服务着,他们教给
    了我多方位的东西,他们教给我的不仅仅是知识、科研方向与研究方法,而且还教会了我
    许许多多做人做事的道理和方法。他们使我真正明白了“知之者不如好之者,好之者不如
    乐之者”。他们的言传身教使我凝练了我做人做事的两大准则:清清白白做人,实实在在
    做事;不害人,不贪人,能帮助人就帮助人。我觉得,一个人来到世上,贵在做人清白、
    做事认真。“精神到处文章老,学问深时意气平”。如今,王振宇老师虽已退休但还在为
    所里服务,李未和陈火旺老师因是院士都还在紧张地忙碌着。我虽与他们相隔较远,不能
    经常见面,但我们之间经常保持着电话联系。我始终觉得,我和我老师在各方面都存在着
    很大的差距,他们身上的东西是我一辈子也学不完的。令我高兴的是,我与我还在工作的
    两位老师有一个共同点,我们都是政协委员:李老师是全国政协委员,陈老师是湖南省政
    协委员,而我是江苏省政协委员。
    October 11

    Ric Holt's Annotated Biblography on Software Architecture


    Professor Ric Holt, holt@uwaterloo.ca, School of Computer Science, University of Waterloo
    This is a bibliography of references for the study of software architecture. Many of its entries have been annotated. This bibliography has been the basis of a graduate seminar on software architecture taught years at the University of Waterloo and previously at the Univerity of Toronto.
    For University of Waterloo students, to have access to IEEE and ACM libraries of articles, please first log into: http://login.lib.uwaterloo.ca/
    • Andersson, Jonas and Johnson, Pontus, Architectual Integration Styles for Large-Scale Enterprise Software Systems, Proceedings of Fifth IEEE International Enterprise Distributed Object Computing Conference, 2001, Page 224-236.
    • Felix Bachmann, Len Bass, Gary Chastek, Pat Donohoe, and Fabio Peruzzi, Architecture Based Design Method, Technical Report, CMU/SEI-2000-TR-001, January 2000. The report presents a systematic and comprehensive method to construct a conceptual architecture of a product line or large-scale software system. The method is based on iterative model. The first iteration is a nine steps process. The input of the method is a list of requirements and constraints; the output of the method is a list of architecture decisions including views, design elements and design templates. There is another related report that helps to understand how to apply this method in a real life project. [Morgan Yingfu Lu] (See also Morgan's slides on this paper.)
    • T. Ball, S.G. Eick; Software visualization in the large; Computer, Volume 29, Issue 4, April 1996
    • D. Batory; Product-Line Architectures; International Conference on Software Engineering, 1998
    • Andreas Bauer, Markus Pizka, Contribution of Free Software to Software Evolution, Institut fur Informatik, Technische Universit at Munchen, Boltzmannstr. 3, Germany 85748 Garching, Page 170, Sixth International Workshop on Principles of Software Evolution (IWPSE'03) September 01 - 02, 2003, Helsinki, Finland. Paper discusses how free software is developed and what kind of role the architecture plays. Notably, it discusses architectural issues of Mozilla.
    • Berghammer, R. et al, The RELVIEW System, from Department of Computer Science and Applied Mathematics of Christian-Albrechts-University of Kiel. The Relview system is a tool designed to support the manipulation, analysis and visualization of data represented as binary relations. It is currently an active research project of the Department of Computer Science and Applied Mathematics of Christian-Albrechts-University of Kiel.  More information can be found at the Relview WWW Page .  The system provides the ability to view and edit relations from two views, a binary boolean matrix and a directed graph.   The system also provides many ways for manipulating relations.  These are provided through the user interface and also a fairly extensive programming language. There is a potential for using this system to manipulate the facts about a software system in order to obtain architectural views, although the Relview project has not considered this possibility so far. [James Keast] (See also Keast's notes and slides on this work.)
    • Ivan T. Bowman, Richard C. Holt and Neil V. Brewster, Linux as a Case Study: Its Extracted Software Architecture, ICSE 99, Los Angeles, May 99. This paper describes an approach to extracting the conceptual and concrete architectures from a large software system where no such documentation previously existed Using a recent version of Linux as a software guinea pig, the authors used a combination of automated tools and manual effort to build a visual representation of the overall structure of the operating system's kernel. In particular, the process of extracting the file subsystem architecture is described in detail. In an iterative process, the results generated from the automated tools were manipulated based on knowledge of a conceptual model. The final result was a graphical representation of the file subsystem structure that can aid in understanding the system from a high level. Finally, the differences between the abstract and concrete architectures are presented along with possible explanations for those differences. [Richard Gregory] (See also Gregory's slides on this work.)
    • Grady Booch, The architecture of Web applications
    • Grady Booch, When Worlds Collide
    • * Buhr, R.J.A. and Casselman, R.S., Architectures with Pictures, OOPSLA '92, pp 466-483. This paper advocates the use of wired and wireless architectural diagrams to illustrate high level architecutral style. Wired architectures have static connections between components while wireless components have dynamic "soft links" between components. They use a very basic notation for their links between components. Large lines are used to indicate communication between components (no direction is used). The authors introduce the idea of a time thread which passes through various components of an architecture. Designs can be made in terms of timethreads in two ways: Time threads can be defined first, then components can be defined to complete the task. Components with similar roles can then be merged. Alternatively, components can be defined first and then timethreads are strung between components. The use of animated diagrams illustrating component collaboration over time was advocated to illustrate the dynamic behavior of an architecture. They also discuss contracts between components and discuss component-component interactions in terms of contracts between components. [Chris Pal] (See also Chris Pal's notes and slides on this paper.)
    • *+ Buxton, John and McDermid, John, Architectual Design (Chapter 17), pp. 17/1 - 17/33, in Software Engineer's Reference Book, CRC Press, 2000 Corporate Blvd NW, Boca Raton, Florida, 33431, 1993. This paper discusses 'architectural design', which is described as the high-level design which follows requirements analysis, but precedes any detailed design. This paper (being a chapter from a book) is quite long, and covers a number of ideas relating to architectural design. The paper first presents design principles and notations for the ideal design process. Acknowledging that the ideal design process is essentially impossible, pragmatic guidelines/heuristics for architectural design are suggested. Next, the importance of analysis and review of architecture designs is explained. Finally, the paper presents some existing methods (e.g. HOOD, SSADM) which could be used for architectural design. [Jason Chase] (See also McDermid's group web page with its bibliography.)
    • Carmichael, I., Tzerpos, T and Holt, R.C., Design Maintenance: Unexpected Architectural Interactions, IEEE Proceedings of the International Conference on Software Maintenance, Nice, France, October 1995, pp. 134-137.
    • +Consens, M, Mendelzon, A., and Ryman, Arthur, Visualizing and Querying Software Structures, IBM Labs Canada Tech Report 74.053, Sept 1991.
    • Jeromy Carriere, Rick Kazman, Assessing Design Quality From a Software Architectural Perspective, Technical Report, CMU/SEI. This report draws on the authors' experiences with Software Architectures and Object Oriented Systems in order to relate how a good object oriented design and a well designed architecture are related. Some ideas are presented on what the definition of good design might be, and how how that good design can be achieved.[M. Kaastra] (See also Mike Kaastra's slides on this paper.)
    • Paul C. Clements; A Survey of Architecture Description Languages; International Workshop on Software Specification and Design, 1996
    • +Dart, S.A., The Past, Present, and the Future of Configuration Management, Tech Report CMU/SEI-92-TR-8, Carnegie-Mellon University, Software Engineering Institute, July 1992.
    • +Dean, T.R. and Cordy, J.R., A Syntactic Theory of Software Architecture, Special Issue on Software Architecture, IEEE Transactions on Software Engineering 21,4 (April 1995), pp. 302-313.
    • * +Deremer, F., Kron, H.H. Programming-in-the-large versus Programming-in-the-Small, IEEE Transactions on Software Engineering, Vol SE-2, No 2, June 1976. This 'classical' paper argues for the need to distinguish between programming-in-the-large and programming-in-the-small. It is argued that "...structuring a large collection of modules to form a 'system' is an essentially distinct and different intellectual activity from that of constructing the individual modules". To this end, a separate language is needed to allow programmers to express their intent regarding the system structure: a Module Interconnection Language (MIL). The motivation and goals for an MIL are explicated, and a sample MIL, (MIL75), is presented. This paper is an early attempt to resolve issues pertaining to the construction of large scaled software systems which are still prevalent today. [Siddiqi]
    • * Eades, Peter, A Heuristic for Graph Drawing, Congressus Numerantium, Vol 42 (1984), pp 149-160. This paper presents a heuristic for laying out graphs that works well for graphs of order less than 30. The algorithm views the graph as a physical system, having nodes which are adjacent being attracted to each other while non-adjacent nodes repel each other. The algorithm provides a good initial layout of a graph. [Dan Frank]
    • Eick, Stephen G., Todd L. Graves, Alan F. Karr, J.S. Marron, Audris Mockus, Does Code Decay? Assessing the Evidence from Change Management Data, IEEE Trans on Software Engineering, Vol. 27, No 1, pp 1-12, 1990.
    • A. Mockus, R.T. Fielding and J. Herbsleb, Two Case Studies of Open Source Software Development: Apache and Mozilla, ACM Transactions on Software Engineering and Methodology, 11(3), 1-38, July 2002.
    • Feijs, L, Krikhaar, R., and VanOmmering, R., A Relational Approach to Support Software Architecture Analysis, [URL accessible from U Waterloo] Software Practice and Experience, Vol 28(4), pp 371-400, April 1998.
    • Fowler, Martin, Who Needs an Architect? IEEE Software
    • A. Frick, A. Ludwig and H. Mehldau, A fast adaptive layout algorithm for undirected graphs, Proceedings of Graph Drawing'94, LNCS 894, Springer Verlag 1995. (See also .)
    • +Gamma, E, Helm, R., Vlissides, J. Design Patterns: Abstraction and Reuse of Object-Oriented Design, ECOOP 93, Germany, 1993.
    • Gangopadhyay, D., ObjChart: Tangible Specification of Reactive Object Behavior, Tech Report RC-18627, IBM Thomas J. Watson Research Center, Jan 1993.
    • * + Garlan, David and Shaw, Mary, An Introduction to Software Architecture, Advances in Software Engineering and Knowledge Engineering, Volume 1, World Scientific Publishing Co., 1993. In this paper, the authors provide an introduction to the field of Software Architecture. Their purpose is to illustrate the current state of the discipline and examine the ways in which architectural design can impact software design. The authors outline a number of common architectural styles based on practical experience: pipes and filters, data abstraction, implicit invocation, layered systems, repositories, and table driven interpreters. While it is important to understand the individual nature of each of these styles, most systems typically involve some combination of several styles. The authors show how heterogeneous styles can be combined in a single design. Next, the authors use six case studies to illustrate how architectural representations of a software system can improve the understanding of complex systems. Finally, the authors survey some of the outstanding problems in the field of Software Architecture, and consider a few of the possible future directions for research. The abstract from the paper is as follows: As the size of software systems increases, the algorithms and data structures of the computation no longer constitute the major design problems. When systems are constructed from many components, the organisation of the overall system -- the software architecture -- presents a new set of design problems. This level of design has been addressed in a number of ways including informal diagrams and descriptive terms, module interconnection languages, templates and frameworks for systems that serve the needs of specific domains, and formal models of component integration mechanisms. In this paper we provide an introduction to the emerging field of software architecture. We begin by considering a number of common architectural styles upon which many systems are currently based and show how different styles can be combined in a single design. Then we present six case studies to illustrate how architectural representations can improve our understanding of complex software systems. Finally, we survey some of the outstanding problems in the field, and consider a few of the promising research directions. [Ladan Tahvildari] (See also Ladan's notes on this paper and Bowman's notes on this paper.)
    • * Garlan, David and Allen, R., and Ockerbloom, J., Architectural Mismatch or, Why Reuse is So Hard, IEEE Software, November 1995. This paper attempts to develop and new techniques to cope with mismatches between assembled software components. The paper argues that there exist fundamental differences between compositional problems that occur due to low-level issues of interoperability such as differing programming languages or database designs and problems of architectural mismatch. They argue that problems of architectural mismatch are a more pervasive class of problem. They illustrate the types of mismatch that they experienced building software development environments from existing parts. They argue that key mismatch issues centre around the assumptions the reusable parts make about the structure of the application in which the developers expect the part to appear, yet do not necessarily make explicitly clear. Based on this experience they show how an architectural view can help expose and highlight some of these compositional problems. [Chris Pal] (See also Pal's notes and slides and Hassan's slides on this paper.)
    • David Garlan, Software Architecture: a Roadmap, ICSE 2000, 22nd International Conference on Software Engineering, Future of Software Engineering Track, June 4-11, 2000, Limerick Ireland, ACM, 2000. The paper examines some of the important trends of software architecture. It describes the roles of architecture in software systems development and summarizes the past and current state of research and practice. It also considers some of the forces that are changing the world of software systems themselves, and speculates on emerging trends, challenges, and aspirations. [Maher Shinouda]
    • Gerald Gannod and Shilpa Murthy, Verification of Recovered Software Architectures, IWPC 2003: Proceedings of 2003 International Workshop on Program Comprehension, May 2003
    • +Harel, David On Visual Formalisms, CACM, 31,5, May 88.
    • + Harel, D., Statecharts: A Visual Formalism for Complex Systems, Science of Computer Programming 8 (1987) 231-274, Elsevier, North Holland.
    • * Harel, David and Eran, Gery, Executable Object Modeling with Statecharts, ICSE 96, Mar 1996, Berlin, pp 246-257. The paper describes an object-oriented modeling technique based on visual formalisms. The modeling technique consists of two modeling languages (O-Charts and Statecharts) which respectively describe the structure and behavior of a system. The paper informally describes the formal syntax and semantics of these two languages and uses a rail-car system as an example. The topic of behavioral inheritance is introduced and cited as an area of future research. The languages are supported in the form of a tool called O-MATE which generates executable code given O-Charts and Statecharts. [Moataz Kamel] (See also Kamel's slides on this paper.)
    • David R. Harris and Howard B. Reubenstein and Alexander S. Yeh, Reverse Engineering to the Architectural Level, International Conference on Software Engineering (ICSE), pp 186-195, April 1995 This paper presents an architecture recovery framework that integrates reverse engineering technology and architectural style representations. The authors claim that by using this framework, an analyst can recover custom, dynamic documentation to fit a variety of software analysis requirements. This framework is made of 3 components: architectural representation, a source code recognition engine and a library of recognition queries, and a "Bird's Eyes" program overview capability. The architecture style and the query library of this framework are discussed in details with examples. Then, this paper addresses some questions about bridging the gaps to system understanding. Also, the framework attempts to inform the analyst about the percentage of the code that implements architectural commitments by using a preliminary code coverage metric. As many papers in software architecture, this paper provides an example of using this architecture recovery framework. Finally, the authors describe the several areas in which they intend to extend to their architecture recovery framework. [Eric Lee] (See also Lee's slides on this paper.)
    • Ahmed E. Hassan and Richard C. Holt, Reference Architecture for Web Servers, WCRE 2000: Working Conference on Reverse Engineering, Brisbane, Australia, Nov 6, 2000.
    • Holt, R.C., Permission Theory for Software Architecture Plus Phantom Architectures , School of Computer Science, University of Waterloo, September 2005. See slides.
    • + Holt, R.C., Penny, D.A., and Mancoridis, S. Multicolour Programming and Metamorphic Programming: Object-Oriented Programming-in-the-Large, CASCON 92, IBM Canada Ltd Lab Centre for Advanced Studies, Toronto, Ont, Nov 92.
    • *+ Holt, R.C., Binary Relational Algebra Applied to Software Architecture, CSRI Tech Report 345, University of Toronto, March 1996.
    • Holt, R.C., An Introduction to the Grok Programming Language, technical Report, University of Waterloo, May 2002.
    • Holt, R.C., An Introduction to TA: the Tuple-Attribute Language, technical Report, University of Waterloo, 1997.
    • Holt, R.C., Software Architecture as a Shared Mental Model, International Workshop on Program Comprehension, Paris, June, 2002.
    • Richard C. Holt, Andreas Winter, Andy Schurr, GXL: Toward A Standard Exchange Format, local copy, WCRE 2000: Working Conference on Reverse Engineering, Brisbane, Australia, Nov 6, 2000. GXL is an XML sublanguage used for representing typed, attributed, directed graphs. Its main purpose was to promote interoperability between reverse engineering tools that use these types of graphs to represent software programs. It was derived from other similar languages such as TA, RSF, and Grax which were used in other reverse engineering tools/toolkits. Besides defining what GXL is and what it was derived from, this paper attempts to give us an idea of the history of these langauges and the tools that have used them. By doing this they have also shown that GXL is capable of the same work (using the premise that anything they could do, GXL could do as well since it was derived from their features). They then attempt to validate the language by proving that GXL meets a certain list of criteria for "Software Exchage Languages" derived from three other papers. These criteria include scalability, extensibility, and coverage of a number of different languages. [Andrew Trevors] See Andrew Trevor's slides on GXL.
    • Jerding, Dean and Rugaber, Spencer, Using Visualization for Architecturual Localization and Extraction, Proceedings of the Working Conference on Reverse Engineering, WCRE97, pp. 56-65, October 1997, Amsterdam, Netherlands. This paper discusses the use of static and dynamic extraction in obtaining software system architecture. For practical purposes, this information is then used to localize the addition of components into the system by examining the extracted architecture and determining the best place for inclusion of that new component. To accomplish this, the authors describe a tool called ISVis that they have developed; this tool implements the static and dynamic extraction methods described. [Ryan Bannon] (See also Ryan Bannon's slides on this paper.)
    • * Kazman, R., Bass, L., Abowd, G. and Clements, P., An Architectural Analysis Case Study: Internet Information Systems A methodology for comparing candidate architectures is presented. Specific emphasis is placed on "task scenarios" which are hypothetical situations posed for the purpose of assisting in the evaluation of qualities which would otherwise be considered difficult to measure. Examples of the methodology are shown in reference to Internet Information Systems. [Christopher Trudeau] (See also Trudeau's notes)
    • Kazman, R. and Carriere, S.J., View Extraction and View Fusion in Architectural Understanding, submitted to 5th Int'l Conf on Software Reuse, 1998.
    • * Kazman, R., Mark Klein and Paul Clements, Abowd, G. and Clements, P., ATAM: Method for Architecture Evaluation, Aug 2000, Tech Report CMU/SEI-2000-TR-004.
    • Kreger, Heather, Web Services Conceptual Architecture (WCSA 1.0), IBM, May 2001
    • Rene L. Krikhaar, Software Architecture Reconstruction, Doctoral thesis, University of Amsterdam, 1999
    • * Kruchten, P.B., The 4+1 Views Model of Architecture, IEEE Software, Nov 95, pp 42-50. This paper aims to remedy the problem of presenting many concerns on one software architecture diagram. The 4+1 View Model was developed using Phillipe Kruchten's experiences as a software architect of Rational Software Inc. The five concurrent views are: Logical View, Process View, Development View, Physical View and Scenarios. Each view shows a specific aspect of the system that is modeled. This makes it possible for each group of stakeholders to focus on the views that they are concerned with. Most of the views used the Booch notation. The process is mainly driven by the logical view which can be described by Class Diagrams and State Transition Diagrams. Software developers using an Object Oriented Analysis and Design Methodology will find this paper useful to organize their views of the system. (See also Tanuan's slides and Hassan's slides on this paper.)
    • Lampson, Butler L., Hints for Computer System Design , ACM Operating Systems Rev. 15, 5 (Oct. 1983), pp 33-48. Reprinted in IEEE Software 1, 1 (Jan. 1984), pp 11-28.
    • M. Lanza, S. Ducass; Polymetric views - a lightweight visual approach to reverse engineering; IEEE Transactions onSoftware Engineering, Volume 29, Issue 9, Sept. 2003
    • Levin, R. and McJones, P., The Vesta Approach to Precise Configuration of Large Software Systems, SRC Research Report 105, Digitial Equipment Corporation, June 1993.
    • * Lindig, Christian and Snelting, Gregor, Assessing Modular Structure of Legacy Code Based on Mathematical Concept Analysis, ICSE 97, Boston MA, pp 349-359. The focus of this research is to attempt to automate modularization of legacy code. To this end, the technique of mathematical concept analysis based on set theory is applied to software systems. The paper explains how module structures show up in a concept lattice. Cohesion and coupling are defined and methods for resolving interferences between modules are presented. The method is applied to several examples written in Modula-2, Fortran, and Cobol with limited success. They conclude that the language used affects the modularization potential. Also, automatic modularization is possible only if there is still some hidden structure, but fails on software which is near entropy death. From the abstract: We apply mathematical concept analysis in order to modularize legacy code. By analysing the relation between procedures and global variables, a so-called concept lattice is constructed. The paper explains how module structures show up in the lattice, and how the lattice can be used to assess cohesion and coupling between module candidates. Certain algebraic decompositions of the lattice can lead to automatic generation of modularization proposals. The method is applied to several examples written in Modula-2, Fortran, and Cobol; among them a > 100kloc aerodynamics program. [Moataz Kamel] (See also Kamel's slides on this paper.)
    • C.-H. Lung and K. Kalaichelvan, A Quantitative Approach to Software Architecture Sensitivity Analysis, Proc. of the Int'l Conf. on Software Eng and Knowledge Eng, June 1998, pp. 185-192.
    • Chung-Horng Lung, Sonia Bot, Kalai Kalaichelvan, and Rick Kazman, An Approach to Software Architecture Analysis for Evolution and Reusability, Proceedings of CASCON '97, November 1997.
    • J.I. Maletic, A. Marcus, L. Feng; Source Viewer 3D (sv3D) - a framework for software visualization; International Conference on Software Engineering, 2003
    • * S. Mancoridis, ISF: A Visual Formalism for Specifying Interconnection Styles for Software Design, International Journal of Software Engineering and Knowledge Engineering (to appear, 1998). See also shorter version "Customizable Notations for Software Design" by Mancoridis. The motivation for ISF (Interconnection Style Formalism) is to understand the structure of a software system. An understanding of the relationships between components and dependencies leads to the success during the implemention, testing, and maintenance stages of the system. Unlike most software design notations, ISF is customizable while still remaining formal. The visual aspect of ISF consist of labelled boxes and directed edges. The arrangements of the boxes (components/entities) and edges (edge relations) must obey ISF rules, ergo the formal side of ISF. There are two ISF rules: permission rules which indicate what is permissable under the current configurations of the components and dependencies; and definition rules which allows new relations to be defined. Different interconnection styles have different sets of permission rules and definition rules. Mancoridis gave an ISF specification for the export style and the tube style. [John Tran]
    • S. Mancoridis, Customizable Notations for Software Design, In the ACM/IEEE Proceedings of the 1997 International Conference on Software Engineering and Knowledge Engineering , Madrid, Spain, June, 1997.
    • Spiros Mancoridis, Toward a generic framework for computing subsystem interfaces, Joint proceedings of the second international software architecture workshop (ISAW-2) and international workshop on multiple perspectives in software development (Viewpoints '96) on SIGSOFT '96 workshops, 1996, pages 106-110, San Francisco, California, United States
    • S. Mancoridis, B. S. Mitchell, C. Rorres, Y. Chen, E. R. Gansner, Using Automatic Clustering to Produce High-level System Organizations of Source Code, IEEE Proceedings of 6th International Workshop on Program Understanding, Ischia, Italy, June, 1998. This paper presents a fully automatic technique that creates a hierarchical view of the system organization based on the components and relationships that exist in the source code. The first step in this technique is to represent the system modules and module-level relationships as a module dependency graph (MDG). Then, a collection of algorithms is applied to partition the graph in a way that derives the high-level subsystem structure from the component-level relationships that are extracted from the source code. The goal of this software modularization process is to automatically partition the components of a system into clusters (subsystems) so that the resultant organization concurrently minimizes inter-connectivity (connections between the components of two distinct clusters) while maximizing intra-connectivity (connections between the components of the same cluster). Bunch is the clustering tool that applies the clustering algorithms to the module dependency graph. This paper also presents a case study that illustrates the automatic software modularization technique. This paper concludes by outlining the research benefits and limitations of the work along with discussion of the future plans to improve the technique. [Ladan Tahvildari] (See also Ladan's notes on this paper.)
    • Nenad Medvidovic, Alexander Egyed, and Paul Gruenbacher, Stemming Architectural Erosion by Coupling Architecture Discovery and Recovery, Proceedings of the 2nd International Workshop from Software Requirements to Architectures (STRAW), 2003. Paper discusses how to prevent arch erosion by studying and synthesizing requirements and implementation.
    • * Mendonca, N.C. and Kramer, J., Requirements for an Effective Architecture Recovery Framework, Proc 2nd International Software Architecture Workshop (ISAW-2), pp 101-105, 1996. This paper discusses two topics. First, the current frameworks for reverse engineering for architectural analysis are presented. Second, the authors propose a new framework for architectural recovery and analysis. The five existing frameworks discussed are: filtering and clustering, compliance checking, analyzers generators, program understanding, and architecture recognition. Their proposed framework is based on a combination of these ideas including an additional extraction step to recognize architectural elements. [Matt Armstrong] (See also Armstrong's slides on this paper.)
    • Minsky, N.H. and Rozenshtein, C. Configuration Management by Consensus: An Application of Law-Governed Systems, ITIRC March 1992.
    • Minsky, N.H., Law-Governed Systems, IEEE Transactions on Software Engineering, Sept 1991.
    • +Minsky, N.H., Law-Governed Regularities in Object Systems; Part I: Principles, Theory and Practice in Object Systems (TAPOS) 1996. http://www.cs.rutgers.edu/~minsky/index.html
    • * Robert T. Monroe, Andrew Kompanek, Ralph Melton, and David Garlan, Architectural Styles, Design Patterns, and Objects, IEEE Software, Jan 97, pp 43-52. This paper describes the relationship between software architecture and object-oriented design (OOD), as well as the relationship between architectural styles and design patterns. First of all, the authors present what architectural designs and styles are, along with their purposes and benefits. Then, the authors describe applying object-oriented design to software architecture and the differences between architectural design and OOD. Finally, the authors compare/contrast architectural styles and design patterns. This paper concludes that architectures, architectural styles, objects and design patterns are complementary aspects of design and none of them completely subsumes the other. [Eric Lee] (See also Lee's slices on this paper.)
    • *+ Müller, Hausi A., Mehmet, O.A., Tilley, S.R., and Uhl, J.S., A Reverse Engineering Approach to Subsystem Identification, Software Maintenance and Practice, Vol 5, 181-204, 1993. This paper presents a reverse-engineering methodology that utilizes the Rigi system. This paper describes an approach to creating higher-level abstract representation of a system, which involves the identification of related components and dependencies, the construction of layered subsystem structures, and the computation of exact interfaces among subsystems. This paper concludes with a detailed, step-by-step analysis of a 30-module image rendering program by applying their subsystem composition methodology. [Ladan Tahvildari] (See also Ladan's notes on this paper.)
    • *+ Murphy, G.C, Notkin, D., and Sullivan, K., Software Reflexion Models: Bridging the Gap between Source and High-Level Models, Proceedings of the Third ACM Symposium on the Foundations of Software Engineering (FSE '95) This paper presents a way to map a source-code model into a developer's high-level software model. This is acheived by using a mapping from files to high-level modules. Using the given mapping, software reflexion tools can map a source-code model (which is a relation on files) into a high-level model (which is a relation on modules). After the mapping is done, software reflexion tools can identify the differences between the high-level model and the source-code model. The user of these is tools is able to have a better understanding of a software system by noting divergences and absences between the source-code model and the high-level model. [Itai Danan]
    • Ciaran O'Reilly, Philip Morrow, and David Bustard, School of Computing and Information Engineering, University of Ulster, Coleraine, BT52 1SA, Northern Ireland, {c.oreilly, pj.morrow, dw.bustard}@ulster.ac.uk, Lightweight Prevention of Architecture Erosion, Sixth International Workshop on Principles of Software Evolution (IWPSE'03), Page 59, September 01 - 02, 2003, Helsinki, Finland. A straightforward and easy-to-read paper. It shows an easy to apply approach to preventing architecture approach. It is close to Khrikkar's work and to work at the University of Waterloo.
    • Ossher, Harold, A Mechanism for Specifying the Structure of Large, Layered Programs, RC12300, Nov 86, 27 pages.
    • Pal, Chris, A Technique for Illustrating Dynamic Component Level Interactions Within a Software Architecture
    • Parker, Greg, Franck, Glenn, and Ware, Colin, Visualization of Large Nested Graphs in 3D, Special issue of the Journal of Visual Languages and Computing. 9, 299-317.
    • Parnas, D.L., Software Aging , Proceedings of the 16th International Conference on Software engineering, Sorrento, Italy, Pps 279 - 287, 1994
    • +Parnas, D.L., On Criteria to be used in Decomposing Systems into Modules, CACM, 14,1, pp 221-227, April 72
    • Parnas, D.L., On the Design and Development of Program Families, IEEE TSE (special issue), SE-2, Dec 76
    • Parnas, D.L., and Clements, P.C., Rational Design Process: How and Why to Fake It, IEEE TSE, SE12,2, pp. 251-257, Feb 86.
    • * + Perry, Dewayne E. and Wolf, Alexander L., Foundations for the Study of Software Architecture, alternate source, ACM SIGSOFT Software Engineering Notes, 17:4, October 1992 pp 40-52. This paper aims to build the foundation for software architecture. The authors presented a model of software architecture that consists of three components: elements, form, and rationale. Components of the model in the context of both architecture and architectural styles were discussed. They conclude by presenting some of the benefits of their approach to software architecture, summarizing their contributions, and relating their approach to Schwanke et al., Zachman, and Shaw. The abstract from the paper is as follows: The purpose of this paper is to build the foundation for software architecture. We first develop an intuition for software architecture by appealing to several well-established architectural disciplines. On the basis of this intuition, we present a model of software architecture that consists of three components: elements, form, and rationale. Elements are either processing, data, or connecting elements. Form is defined in terms of the properties of, and the relationships among, the elements---that is, the constraints on the elements. The rationale provides the underlying basis for the architecture in terms of the system constraints, which most often derive from the system requirements. We discuss the components of the model in the context of both architectures and architectural styles and present an extended example to illustrate some important architecture and style considerations. We conclude by presenting some of the benefits of our approach to software architecture, summarizing our contributions, and relating our approach to other current work. [Meyer Tanuan]
    • Perry, Dewayne E., A Product Line Architecture for a Network Product, manuscript was reviewed, paper since revised, 1998. The paper describes how a generic architecture that supports dynamical reconfigurability can be defined for a (network) product line (a range of products with similar characteristics). The generic characteristics (independence of the exact components in a given system in the line) of the architecture are achieved by addressing distribution (where are the components) at design and implementation layers. The system should have a model of itself, a command broker providing location transparency, a reconfiguration manager and reconfigurable components. The architecture is split into reconfiguration and domain-specific components. One of the points the paper makes is that identifying the abstractions (the connection in the case network product line) can help organize the system around them. It also shows that for a viable architectural solution relevant aspects (at architectural level) should be taken from both system objects and system functionality (i.e. a hybrid approach).[Andrei Dragoi] (See also Dragoi's notes on this paper.)
    • Raymond, Eric S., The Cathedral and the Bazaar, Firstmonday, 1998.
    • Reinder Bril, Rene, Krikhaar, and Andre, Postma, Embedding architectural support in industry, Proceedings International Conference on Software, Maintenance, p348-357, IEEE Computer Society, 2003.
    • Rotschke, Tobias and Krikhaar, Rene, Architecture Analysis Tools to Support Evolution of Large Industrial Systems, ICSM 02, International Conference on Software Maintenance.
    • +Ryman, Arthur, The Theory-Model Paradigm in Software Design, Tr 74.048, 11 Oct 89, IBM Canada Lab Tech Report
    • +Schwanke, R. W., Altucher, R.Z., Platoff, M.A., Discovering, Visualizing, and Controlling Software Structure, Siemens Corp. Research, Inc., 755 College Rd East, Princeton, NJ 08540
    • Schwanke,R.W., Platoff, M.A., Cross References are Features, 2nd International Workshop on Software Configuration Management, p 86-96, 1989. In the context of this paper a cross reference is any relation between two entities (e.g. module A calls module B, A uses variable V, procedure P calls procedure Q). The authors consider that if A calls B than this can be seen as A having the feature (i.e. property) of calling B, and B has the feature of being called. Based on this observation a new clustering measure can be defined, based on shared neighbors (e.g. if A calls B and A calls C then C and be have the common feature of being called by A - i.e. share the neighbor A). This measure can be used as an alternative to the cohesion strength for summarizing call graphs. It can also be used in splitting large include files and in improving the modularity of a system, by finding the misplaced files (according to the measure). The authors have prototyped a system (ARCH) that uses the measure for the previous tasks. ARCH should is used in an iterative process which involve feedback from a human architect. The paper points out that the described measure should be use as a complement, not a replacement of the various cohesion based measures. [Andrei Dragoi] (See also Dragoi's notes on this paper.)
    • * Schwanke, Robert W., An Intelligent Tool for Re-engineering Software Modularity, Proc ICSE 91, Austin TX, May, 1991, pp 81-92. This paper describes a program which attempts to reverse engineer software in order to better provide software modularity. By looking at which procedures reference data structures of the same name, the program will group them together assuming this implies a modular relationship. In practice, this was a useful tool but required hand tuning of various constants in order to provide meaningful groupings. [Dan Frank]
    • * Shaw, M. and Clements, P., A Field Guide to Boxology: Preliminary Classification of Architectural Styles for Software Systems, C.S. Dept and Software Engineering Institute, Carnegie Mellon Univ, Pittsburgh, PA 15213. This paper extends the previous work of Garlan and Shaw, by further defining software architecture styles. Characteristics of various styles are examined in order to distinguish between styles. Control and data flow are analyzed with respect to topology, synchronicity, continuity, and binding time. A table is given with twenty-five common architectures, each analyzed with respect to the above criteria. In-depth analysis is done on a small selection of these architectures showing variations on each. [Jen Campbell]
    • S.E. Sim, C.L.A. Clarke, R.C. Holt, A.M. Cox; Browsing and Searching Software Architectures; International Conference on Software Maintenance, 1999
    • * Soni, D., Nord, R., and Hofmeister, C., Software Architecture in Industrial Applications, IEEE ICSE 95. From the abstract: To help us identify and focus on pragmatic and concrete issues related to the role of the software architecture in large systems, we conducted a survey of a variety of software systems used in industrial applications. Our premise, which guided the examination of these systems, was that software architecture is concerned with capturing the structures of a system and the relationships among the elements both within and between structures. The structures we found fell into several broad categories: conceptual architecture, module interconnection architecture, code architecture and execution architecture. These categories address different engineering concerns. combined with specialized implementation techniques decreased the complexity of implementation and improved reuse and reconfiguration. [James Keast] (See also Keast's slides on this paper.)
    • Sowa, J.F. and Zachman, J.A., Extending and Formalizing the Framework of Information Systems Architecture, IBM Systems Journal, Vol 31, No 3, 1992.
    • C. Stoermer, L. O'Brien, C. Verhoef, Practice Patterns for Architecture Reconstruction , (abstract), Ninth Working Conference on Reverse Engineering (WCRE'02), October 29 - November 01, 2002, Richmond, Virginia
    • M.D. Storey, H.A. Mller, K. Wong; Manipulating And Documenting Software Structures; International Conference on Software Maintenance, 1995
    • * Sugiyama, Kozo, Shojiro, Tagawa, and Toda, Mitsuhiko, Models for Visual Understanding of Hierarchical System Structures, IEEE Trans on Systems, Man and Cybernetics, Vol SMC-11, No 2, Feb 1981, pp 109-125. The Sugiyama graph layout algorithm uses a heuristic to quickly display hierarchical graphs in a visually understandable way. This layout is effective for many graphs, and the techniques described are useful to authors of software-architecture tools. Bowman's notes summarize the algorithm discussed in the paper, and provide an example implementation. Several improvements to the algorithm have been made; for a summary of recent graph drawing research, see Cruz and Tamassia's tutorial on graph drawing. [Ivan Bowman]
    • Torvalds, Linus, Comments on Designing Linux , Nov 2001.
    • Tran, John B., and Holt, Richard C., Forward and Reverse Repair of Software Architecture, CASCON '99, Toronto, November 1999.
    • Tzerpos, V. and Holt, R.C., and Farmaner, G., Web-Based Presentation of Hierarchic Software Architecture, Workshop on Software Engineering (on) the World Wide Web, International Conference on Software Engineering 1997, Boston, May 19, 1997.
    • * Tzerpos, V. and Holt, R.C., The Orphan Adoption Problem in Architecture Maintenance, Proceedings of the Working Conference on Reverse Engineering 1997, Amsterdam, October 1997. The reverse engineering of a legacy application without aid from the original developers or design documentation is a difficult task. Subsystem structure is usually not inherently visible from the source code, and is changed over the course of the evolution of the software system. This paper focuses on the effects of software evolution on the structure of the software system. Two problems are identified as being particularly important, namely the orphan adoption problem and the kidnappee adoption problem. The orphan adoption problem is that of incremental clustering. That is, finding the appropriate subsystem to place a newly introduced resource. The kidnappee adoption problem is that of corrective clustering, or the movement of resources from one subsystem to another as structural change is introduced. An algorithm is presented which attempts to address these problems using resource names, resource dependencies, and classification of resources as being either functional or utility resources. Case studies are provided which study the efficacy of the presented algorithm in addressing the orphan adoption problem. [Saheem Siddiqi] (See also Hassan's slides on this paper.)
    • Vassilios Tzerpos, R. C. Holt, ACDC: An Algorithm for Comprehension-Driven Clustering, WCRE 2000: Working Conference on Reverse Engineering, Brisbane, Australia, Nov 6, 2000.
    • +Ware, C., Hui, D. and Franck, G., Visualizing Object-Oriented Software in Three Dimensions, CASCON 93.
    • Wiggerts, Theo A., Using Clustering Algorithms in Legacy Systems Remodularization, pp 33-43, WCRE, Oct 1997. Like so many other papers on clustering and software reengineering, this one begins by describing how large systems become structurally decayed over long periods. The study of clustering began in the field of biology over twenty-five years ago and has spread to many other disciplines, including software engineering, which has an interest in grouping related entities together. The paper argues that in system remodularization, many people have either been reinventing clustering technology or could be aided by it, thus the goal of this paper is to provide an overview of clustering. The paper continues by describing what clustering is and discusses how one might determine the degree of similarity between nodes and between newly formed clusters. Various clustering algorithms using different measures of similarity are also presented. Finally, approaches that researchers have taken to apply clustering techniques to existing systems are listed. [Richard Gregory] (See also Gregory's slides on this work.)

    Jianjun Zhao's Bibliography on Software Architecture Analysis

          This is the bibliography on software architecture analysis, with special emphasis on architectural-level understanding, testing, debugging, reverse engineering, re-engineering, maintenance, and complexity measurement.
        1. R. Balzer, "Instrumenting, Monitoring and Debugging Software Architectures."

        2. P. Bengtsson and J. Bosch, "Scenario-Based Software Architecture Reengineering," Proc. 5th International Conference on Software Reuse (ICSR5), pp.308-317, IEEE Computer Society Press, Victoria, B.C, Canada, June 1998.

        3. P. Bengtsson, "Towards Maintainability Metrics on Software Architecture: An Adaptation of Object-Oriented Metrics," Firsrt Nordic Workshop on Software Architecture (NOSA'98), Ronneby, August 1998.

        4. P. Bengtsson and J. Bosch, "Architecture Level Prediction of Software Maintenance," Proc. 3rd European Conference on Maintenance and Reengineering (CSMR99) , Amsterdam, The Netherlands, March 1999.

        5. K. S. Barber and A. Lakshmanan, "Analysis of Software Architectures to Generate Test Sequences," Proc. 14th International Conference on Software & Systems Engineering and their Applications (ICSSEA 2001), Paris, France, December 2001.

        6. L. Bass, P. Clements, and R. Kazman, "Software Architecture in Practice," Published by Addison-Wesley in the SEI Series, 1998.

        7. A. Bertolino, P. Inverardi, H. Muccini, and A. Rosetti, "An Approach to Integration Testing Based on Architectural Descriptions," Proc. Third IEEE International Conference on Engineering of Complex Computer Systems (ICECCS97), pp.77-84, Como, Italy, September 1997.

        8. A. Bertolino, F. Corradini, P. Inverardi, and H. Muccini, "Deriving Test Plans from Architectural Descriptions," Proc. 22nd International Conference on Software Engineering (ICSE'2000) , pp.220-229, Limerick, Ireland, June 2000.

        9. G. Canfora, A. De Lucia, G. di Lucca, and A. Fasolino, "Recovering the Architectural Design for Software Comprehension," Proc. IEEE Third Workshop on Program Comprehension, Washington, DC, November 1994.

        10. S. J. Carriere and R. Kazman, "The Perils of Reconstructing Architectures," Proc. 3rd International Software Architecture Workshop (ISAW3), pp.13-16, ACM SIGSOFT, Orlando, Florida, USA, November 1998.

        11. S. J. Carriere, R. Kazman, and S. Woods, "Assessing and Maintaining Architectural Quality," Proc. 3rd European Conference on Maintenance and Reengineering (CSMR99) , Amsterdam, The Netherlands, March 1999.

        12. P. Clements, R. Krut, E. Morris, and K. Wallnau, "The Gadfly: An Approach to Architectural-Level System Comprehension," Proc. 4th International Workshop on Program Comprehension (IWPC96), IEEE Computer Society Press, pp.178-186, 1996.

        13. M. Dias, M. Vieira, and D. J. Richardson, "Software Architecture Analysis based on Statechart Semantics," Proc. 10th International Workshop on Software Specification and Design (IWSSD-10), San Diego, CA, November 2000.

        14. D. Garlan, "Software Architecture: a Roadmap," The Future of Software Engineering, ACM Press, pp.91-101, 2000.

        15. J. F. Girard and R. Koschke, "Finding Components in a Hierarchy of Modules: A Step towards Architectural Understanding," Proc. International Conference on Software Maintenance (ICSM97), IEEE Computer Society Press, pp.58-65, Bari, Italy, October 1997.

        16. G. Y. Guo, J. M. Atlee, and R. Kazman, "A Software Architecture Reconstruction Method," Proc. First Working IFIP Conference on Software Architecture (WICSA1), San Antonio, TX, USA, February 1999.

        17. D. Harris, H. Reubenstein, and A. S. Yeh, "Reverse Engineering to the Architectural Level," Proc. International Conference on Software Engineering (ICSE95), pp.186-195, IEEE Computer Society Press, July 1995.

        18. S. Henry and D. Kafura, "Software Structure Metrics Based on Information Flow," IEEE Transactions on Software Engineering, 7(5), September 1981.

        19. P. Inverardi and A. L. Wolf, "Formal Specification and Analysis of Software Architectures using the Chemical Abstract Machine Model," IEEE Transactions on Software Engineering, 21(4):373--386, April 1995.

        20. Z. Jin, A. J. Offutt, A. Abdurazik, and E. L. White, "Analyzing Software Architecture Descriptions to Generate System-level Tests," Workshop on Evaluating Software Architectural Solutions 2000 (WESAS), Irvine, CA, May 2000.

        21. R. Kazman, "Tool Support for Architectural Analysis and Design," Proc. 2nd Software Architecture Workshop (ISAW2), pp.94-97, San Francisco, CA, October 1996.

        22. R. Kazman, G. Abowd, L. Bass, and P. Clements, "Scenario-Based Analysis of Software Architecture," IEEE Software, pp.47-55, November 1996.

        23. R. Kazman and M. Burth, "Assessing Architectural Complexity," Proc. 2nd Euromicro Working Conference on Software Maintenance and Reengineering (CSMR98), pp.104-112, IEEE Computer Society Press, Florence, Italy, March 1998.

        24. R. Kazman and S. J. Carriere, "View Extraction and View Fusion in Architectural Understanding," Proc. 5th International Conference on Software Reuse (ICSR5), pp.290-299, IEEE Computer Society Press, Victoria, B.C, Canada, June 1998.

        25. R. Kazman, M. Klein, M. Barbacci, H. Lipson, T. Longstaff, and S. J. Carriere, "The Architecture Tradeoff Analysis Method," Proc. Fourth IEEE International Conference on Engineering of Complex Computer Systems (ICECCS98), pp.68-78, Montery, USA, August 1998.

        26. R. Kazman, S. Woods, and S. J. Carriere, "Requirements for Integrating Software Architecture and Reengineering Models: CORUM II", Proc. 5th Working Conference on Reverse Engineering (WCRE98), pp.154-163, Honolulu, HI, October 1998.

        27. R. Kazman and S. J. Carriere, Playing Detective: Reconstructing Software Architecture from Available Evidence", Journal of Automated Software Engineering, April 1999. (to appear)

        28. T. H. Kim, Y. T. Song, L. Chung, and D. Huynh, "Software Architecture Analysis Using Dynamic Slicing", Proc. AoM/IAoM CS'99, Auguest 1999.

        29. T. H. Kim, Y. T. Song, L. Chung, and D. Huynh, "Dynamic Software Architecture Slicing", Proc. 23th IEEE Annual International Computer Software and Applications Conference (COMPSAC99), October 1999. (to appear)

        30. J. Kramer and J. Magee, "Analysing Dynamic Change in Software Architectures: A Case Study", Proc. IEEE 4th International Conference on Configurable Distributed Systems (CDS 98), pp.91-100, Annapolis, May 1998.

        31. R.L. Krikhaar, R.P. de Jong, J.P. Medema, and L.M.G. Feijs, "Architecture Comprehension Tools for a PBX System", Proc. 3rd European Conference on Maintenance and Reengineering (CSMR99) , Amsterdam, The Netherlands, March 1999.

        32. Nico Lassing, D. Rijsenbrij, and H. Vliet, "Towards a broader view on software architecture analysis of flexibility," Proc. the Asian-Pacific Software Engineering Conference (APSEC'99),1999.

        33. Nico Lassing, D. Rijsenbrij, and H. Vliet, "On software architecture analysis of flexibility, Complexity of changes: Size isn't everything," Proc. the second Nordic Software Architecture Workshop (NOSA'99),1999.

        34. D.C. Luckham, J.J. Kenney, L.M. Augustin, J. Vera, D. Bryan, and W. Mann, "Specification and Analysis of System Architecture Using Rapide," IEEE Transactions on Software Engineering, Vol.21, No.4, pp.336-355, April 1995.

        35. C. H. Lung, S. Bot, K. Kalaichelvan, and R. Kazman, "An Approach to Software Architecture Analysis for Evolution and Reusability," Proc. of CASCON '97, November 1997.

        36. C. H. Lung and K. Kalaichelvan, "A Quantitative Approach to Software Architecture Sensitivity Analysis", Proc. of the 10th Internationall Conference on Software Engineering and Knowledge Engineering, pp. 185-192, June 1998.

        37. C. H. Lung, "Software Architecture Recovery and Restructuring through Clustering Techniques," Proc. 3rd International Software Architecture Workshop (ISAW3), pp.101-104, ACM SIGSOFT, Orlando, Florida, USA, November 1998.

        38. J. Magee, J. Kramer, and D. Giannakopoulou, "Analysing the Behaviour of Distributed Software Architectures: a Case Study", Proc. 5th IEEE Workshop on Future Trends in Distributed Computing Systems (FTDCS97), pp.240-247, Tunisia, October 1997.

        39. J. Magee, J. Kramer, and D. Giannakopoulou, "Software Architecture Directed Behavior Analysis," Proc. Ninth International Workshop on Software Specification and Design (IWSSD9), pp.144-146, IEEE Computer Society Press, Ise-Shima, Japan, April 1998.

        40. J. Magee, J. Kramer and D. Giannakopoulou, "Behaviour Analysis of Software Architectures" Proc. First Working IFIP Conference on Software Architecture (WICSA1), San Antonio, Texas, February 1999.

        41. T. J. McCabe and C. W. Butler, "Design Complexity Measurement and Testing," Communications of ACM, Vol.32, No.12, pp.1415-1425, 1989.

        42. G. Naumovich, G.S. Avrunin, L.A. Clarke, and L.J. Osterweil, "Applying Static Analysis to Software Architectures," Proc. the Sixth European Software Engineering Conference Held Jointly with the 5th ACM SIGSOFT Symposium on Foundations of Software Engineering, pp.77-93, Lecture Notes in Computer Science, Vol.1301, Springer-Verlag, 1997.

        43. D. E. Perry and A. L. Wolf, ``Foundations for the Study of Software Architecture'', ACM SIGSOFT Software Engineering Notes, pp.40-52, Vol.17, No.4, October 1992.

        44. J. Peterson and M. Sulzmann, "Analysis of Architectures using Constraint-Based Types," Proc. First Working IFIP Conference on Software Architecture (WICSA1), San Antonio, TX, USA, February 1999.

        45. M. D. Rice and S. B. Seidman, "An Approach to Architectural Analysis and Testing," Proc. 3rd International Software Architecture Workshop (ISAW3), pp.121-123, ACM SIGSOFT, Orlando, Florida, USA, November 1998.

        46. D.J. Richardson and A. L. Wolf, "Software Testing at the Architectural Level," Proc. 2nd International Software Architecture Workshop (ISAW2), pp.68-71, San Francisco, California, October 1996.

        47. M. Shaw and D. Garlan, "Software Architecture: Perspectives on an Emerging Discipline," Prentice Hall, 1996.

        48. Mark Shereshevsky, Habib Ammari, Nicholay Gradetsky, Ali Mili, and Hany H. Ammar, "Information Theoretic Metrics for Software Architectures," Proc. 25th Annual International Computer Software and Applications Conference (COMPSAC'01), pp.151-157, Chicago, USA, October 2001.

        49. J.A. Stafford, D.J. Richardson, and A. L. Wolf, "Chaining: A Software Architecture Dependence Analysis Technique," Technical Report CU-CS-845-97, University of Colorado, September 1997.

        50. J.A. Stafford, D.J. Richardson, and A. L. Wolf, "Aladdin: A Tool for Architecture-level Dependence Analysis of Software Systems," University of Colorado Technical Report, CU-CS-858-98, 1998.

        51. J.A. Stafford and A. L. Wolf, "Architectural-level Dependence Analysis in Support of Software Maintenance," Proc. 3rd International Software Architecture Workshop (ISAW3), pp.129-132, ACM SIGSOFT, Orlando, Florida, USA, November 1998.

        52. J.A. Stafford and A. L. Wolf, "Architecture-Level Dependence Analysis for Software Systems," International Journal of Software Engineering and Knowledge Engineering, Vol.11, No.4, pp.431-453, August 2001.

        53. W. Tracz, "Testing and Analysis of Software Architectures," Proc. ACM International Symposium on Software Testing and Analysis (ISSTA96), S.Diego, USA, January 1996.

        54. V. Tzerpos and R.C. Holt, "The Orphan Adoption problem in Architecture Maintenance," Proc. Working Conference on Reverse Engineering (WCRE97), Amsterdam, The Netherlands, October 1997.

        55. C. Williams, "Software Architecture: Implications for Computer Science Research," Proc. First Working IFIP Conference on Software Architecture (WICSA1), San Antonio, TX, USA, February 1999.

        56. J. Zhao, "Software Architecture Slicing," Proc. 14th Conference of Japan Society for Software Science and Technology (JSSST'97), pp.49-52, Ishikawa, Japan, September 1997.

        57. J. Zhao, "Using Dependence Analysis to Support Software Architecture Understanding," in M. Li (Ed.), "New Technologies on Computer Software," pp.135-142, International Academic Publishers, September 1997.

        58. J. Zhao, "Slicing Software Architectures," Technical-Report SE-97-117, pp.85-92, Information Processing Society of Japan, November 1997.

        59. J. Zhao, "Applying Slicing Technique to Software Architectures," Proc. Fourth IEEE International Conference on Engineering of Complex Computer Systems (ICECCS98), pp.87-98, August 1998.

        60. J. Zhao, "On Assessing the Complexity of Software Architectures," Proc. 3rd International Software Architecture Workshop (ISAW3), pp.163-166, ACM SIGSOFT, Orlando, Florida, USA, November 1998.

        61. J. Zhao, "A Slicing-Based Approach to Extracting Reusable Software Architectures," Proc. 4th European Conference on Software Maintenance and Reengineering, pp.215-223, IEEE Computer Society Press, Zurich, Switzerland, February 2000.


        October 10

        Scientific Research on Software Development

        SCIENTIFIC RESEARCH ON SOFTWARE DEVELOPMENT
         
        the lecture will be given  
        By David Lorge Parnas
        at Nanjing University, P.R.China
        from Oct, 20, 2005 to Oct, 22, 2005 
         
        This talk discusses some ways of using the methods of science (careful observations of the real world) and mathematics (the laws of abstract reasoning) to develop knowledge that will help developers to produce better software.

        A principle focus of this talk is on the production and application of precise documentation. Observation of software and software development reveals that many errors and delays are the result of a lack of appropriate documentation. Developers spend a great deal of time trying to deduce information from code and incomplete documents, information that should have been written down when the decisions were made.

        We describe a set of mathematical documents that contain the information required for disciplined software development. A developer who completes these documents properly, (i.e. who assures that each document is precise, accurate, and complete) will have performed the analyses necessary to assure that the product will be of high quality.

        These documents can later be used in inspections and to assist in testing.

        We also discuss the relation between empirical and theoretical research.
        October 09

        YOCSEF 长沙举行报告会:软件可靠性与测试

        2005年6月30日下午, YOCSEF长沙在长沙国防科技大学计算机学院学术报告厅举行主题为“软件可靠性与测试”的报告会,这是YOCSEF长沙2005年举行的第一次活动。长沙地区的委员以及对该主题感兴趣的老师和同学济济一堂,整个学术报告厅爆满。会议邀请了美国University of Texas at Dallas副教授Eric Wong 博士、北京航空航天大学长江特聘教授蔡开元博士和国防科技大学长江特聘教授朱鸿博士进行特邀演讲,国防科技大学教授、CCF软件工程专委会副主任、YOCSEF长沙学术委员会委员王戟博士和国防科技大学教授、YOCSEF长沙学术委员会主席王意洁博士担任会议的主持。
         
        王戟博士首先向大家介绍Eric Wong 博士,随后Eric Wong 博士做了题为“软件设计规约的测试与诊断”(Testing and Diagnosis of Software Design Specifications)的报告,报告重点介绍了其近几年的主要研究方向,并且探讨了相关领域的一些细节问题,主要内容是:统计数据表明:在软件开发过程早期发现故障,能够显著减少费用。另外,为了改进从体系结构设计规格说明出发自动生成代码这一技术,更需要从一开始就具备一个高度可靠的系统设计。为此,必须尽早预测并改善系统质量。本次报告着重于如何将基于源代码的技术扩展到软件设计规格说明层,以达到更加有效的规格说明验证和维护。另外还将讨论一种新方法,用于从设计模型中构建一个小的有效测试序列集,以满足某些结构覆盖要求。这些方法不仅可以用于强调规格说明和实现之间一致性的测试,还可用于验证设计规格说明本身。
         
        蔡开元博士做了题为“软件可靠性实验研究”的报告,报告介绍了他最近三年的主要研究工作以及研究工作中面临的问题和困惑,蔡博士严谨的工作作风和科学的研究精神得到了与会者的掌声。蔡博士最后针对自己面临的困惑,结合亲身经历发出了“现有科学方法适用于软件吗?”、“软件规律蕴涵于大量的软件观测数据吗?”、“如何证明软件行为的随机性?”以及“软件可靠性研究是个正确的发展方向吗?”等问题。国防科技大学的文职将军齐治昌教授以及与会的学生与其进行了科学实验的随机性和传统科学研究方法普适性方面的讨论。
         
        最后,朱鸿博士作了题为“构件化软件集成测试”的报告,在报告之后的自由提问期间,有一位与会代表提出的关于“公理测试的套路”和“测试效率”方面的问题被朱鸿博士评价为“very good questions”,朱鸿博士给出了极为细致和谦虚的解答。总之各位专家不仅在其专业领域的研究工作和进展给大家很大的启发,他们严谨的科学研究态度同样令人折服。
        会议结束后,YOCSEF长沙的主席王意洁博士代表YOCSEF向特邀报告专家赠送了纪念品。
         
        (周婧供稿2005.7.1)
        October 02

        《希望》曲同词异

            歌曲:希望
          歌手:陈慧琳 专辑:我是阳光的
         
         

          看天空飘的云还有梦
          看生命回家路路长漫漫
          看阴天的岁月越走越远
          远方的回忆的你的微笑
          天黑路茫茫心中的彷徨
          没犹豫的方向
          希望的翅膀一天终张开
          飞翔天上
          看天空飞的鸟还有梦
          看清风像带路吹散淡雾
          看冬天悲的雪越来越远
          昨天的曾经的我的微笑
          分开的感伤想飞的彷徨
          有天跑出想像
          心中一个梦想雨后彩虹
          画在天空

         

          歌曲:希望

        歌手:陈慧琳 专辑:《grace & charm》

          看风筝飞多远未断线
        看一生万里路路遥漫漫
        看牺牲的脚步尽化温暖
        暖的心爱追忆你的微笑
        滔滔风雨浪心声相踫撞信将爱能力创
        心中的冀望终于都靠岸未曾绝望
        看风筝飞高了未断线
        看天空雾散聚是谁定下
        看艰辛不却步步向温暖
        暖的心爱珍惜我的微笑
        滔滔风雨浪心声相踫撞信将爱能力创
        心中的冀望终于都靠岸未曾绝望
        分开的眼泪伤心相挂累
        盼将重逢遇上心中只有梦
        一天终再聚未来在望

         

        July 11

        对论文没有贡献是不能署名的

        就在昨晚,老板授意要把我待发表的论文上添加几位本科生作者。老板糊涂,为了几个本科生需要论文保研,居然行此下策。
         
        老板知道我不会听他的,所以很晚了还打电话逼我就犯。
         
        记得当年我考研,在那所国内著名大学复试的时候或多或少受到过一些不公平不公正的待遇,最终很委屈的来到目前的这所大学。我讨厌招生的黑手,讨厌所谓的操作。
         
        凡是老板看上的学生,就如同被立了太子一样,大家都要围绕他转。电话里面什么美其名曰“你走了以后这里不能跨掉,必须加强学术梯队的建设”。多好的借口,多好的幌子。学术梯队是这样建设的?老板就不能给那些能力一般的学生一点点机会,就算很普通的学生就不能通过后来的努力迎头赶上?既然要保研,那么就更应该靠自己的实力发表论文。
         
        如果系里的每个教授(研究生导师)都有看好的学生,都这样操作,那其他学生还活不活啊。就算他们再努力再刻苦也是白搭啊。想起来就恶心。
         
        我也知道社会上这种现象有很多很多,但在象牙塔里我觉得应该保持一片净土。如果为这个事情,老板对我有很大意见,我也认了,至少我可以再清楚的认识他,那个我的老板。
         
        附上:
        IEEE Policies

        6.4 PUBLICATIONS STANDARDS POLICY AND PRINCIPLES FOR AUTHORS, REFEREES, AND EDITORS  

        IEEE Publications Standards Policy

        The IEEE supports the highest standards of intellectual discourse in its publications.  All members of the publication process -- authors, editors and reviewers -- should be treated with fairness and balance, and adhere to the principles in Section 6.4.1.  The principles in this document represent a minimum set of requirements. Individual publications may have additional requirements.  A publication with additional requirements shall have a publicly available statement of publication policies and procedures that has been endorsed by PSPB.

        6.4.1 PUBLICATION PRINCIPLES

        A.  Authorship

        Authorship credit should be based on a substantial intellectual contribution.  It is assumed that all authors have had a significant role in the creation of a manuscript that bears their names.  Therefore, the list of authors on an article serves multiple purposes; it indicates who is responsible for the work and to whom questions regarding the work should be addressed.  Moreover, the credit implied by authorship is often used as a measure of the contributors’ productivity when they are evaluated for employment, promotions, grants, and prizes.

        a)     The IEEE affirms that authorship credit must be reserved for individuals who have met each of the following conditions: 1) made a significant intellectual contribution to the theoretical development, system or experimental design, prototype development, and/or the analysis and interpretation of data associated with the work contained in the manuscript, 2) contributed to drafting the article or reviewing and/or revising it for intellectual content, and 3) approved the final version of the manuscript., including references. (Deceased persons deemed appropriate as authors should be so included with a footnote reporting their death.)

        b)     In papers with multiple authorship, the order of the authors shall be at the discretion of the authors.

        c)     Once the list and order of authors has been established, the list and order of authors should not be altered without permission of all living authors.

        d)     Any part of an article essential to its main conclusions must be the responsibility of at least one author.

        e)     In the case of papers with multiple authors, a “corresponding” author must be designated as having responsibility for overseeing the publication process and ensuring the integrity of the final document.  The corresponding author accepts the responsibility for:  1) including as co-authors all persons appropriate and none inappropriate; 2) obtaining from all co-authors their assent to be designated as such, as well as their approval of the final version of the manuscript; and 3) keeping all co-authors apprised of the current status of a manuscript submitted for publication, including furnishing all co-authors with copies of the reviewers’ comments and a copy of the published version, as appropriate.

        f)     Co-authors have responsibility for work submitted under their names. They should remain knowledgeable in so far as possible regarding the status of the manuscript, including the nature of any revisions.

        g)     If a manuscript is revised and resubmitted to the same journal, co-authors should be asked by the corresponding author to reaffirm their assent to be listed as co-authors and to approve the revised version.  In addition, if the manuscript is rejected or withdrawn from a journal and then submitted to a different IEEE journal, the co-authors should be asked again by the corresponding author to affirm their assent to authorship even if no substantive changes have been made.

        h)     Co-authors have the right to withdraw their names from a manuscript at any time before acceptance of the manuscript by the editor.  However, an author’s or co-author’s name should not be removed from a manuscript without his or her permission.  The responsible editor shall be notified of any change in authorship.

        B. Responsibilities of Manuscript Authors

        a)     Peer review is essential to scientific and technical discourse.  Authors are encouraged to have the first formal publication of their results be a peer-reviewed paper.

        b)     Financial support of the work being reported and of the authors should be clearly acknowledged, as should any potential conflict of interest.

        c)     Methods and materials should be described in sufficient detail to permit evaluation and replication.

        d)     All data should be presented upon request by the editor, to facilitate the review process.

        e)     Authors have an obligation to correct errors promptly.

        f)     IEEE defines plagiarism as the use of someone else’s prior ideas, processes, results, or words without explicitly acknowledging the original author and source. Plagiarism in any form is unacceptable and is considered a serious breach of professional conduct, with potentially severe ethical and legal consequences. The PSPB Operations Manual provides detailed guidelines for 1) handling allegations of plagiarism, 2) applying appropriate corrective actions when findings of plagiarism have been reached, and 3) referencing previously published material.

        g)     Fabrication and falsification are unacceptable.

        h)     Except as indicated in Section 6.3.4 (Multiple Publication of Original Technical Material in IEEE Periodicals), authors should only submit original work that has neither appeared elsewhere for publication, nor which is under review for another refereed publication. If authors have used their own previously published work(s) as a basis for a new submission, they are required to cite the previous work(s) and very briefly indicate how the new submission offers substantively novel contributions beyond those of the previously published work(s).

        i)      Authors should not discuss any aspect of a manuscript under evaluation with reviewers of the submitted manuscript. 

        j)      Only those articles of a researcher’s publication record that are directly relevant to the subject matter of the paper under consideration should be included in the bibliography. Furthermore, an article should be appropriately labeled as "submitted" when still in the review process or "in press" when it has been accepted for publication but has not yet appeared in print.

        k)     The IEEE assumes that the material submitted to its publications is properly available for general dissemination to the readership of those publications.  It is the responsibility of the authors, not the IEEE, to determine whether disclosure of their material requires the prior consent of other parties and, if so, to obtain it.  If authors make use of charts, photographs, or other graphical or textual material from previously published material, the authors are responsible for obtaining written permission to use the material in the manuscript.

        C.     Referees of Manuscripts

        a)     Referees should be chosen for their high qualifications and objectivity regarding a particular manuscript.

        b)     Reviews should be prompt and thorough.

        c)     Anonymity of referees should be preserved to the extent possible, unless the referee and editor agree to disclosure.

        d)      Information contained in a manuscript under review is confidential and must not be shared with others, nor should referees use non-public information contained in a manuscript to advance their own research or financial interests.

        D.     Editors of Scientific and Technical Journals

        a)     The sole responsibility for acceptance or rejection of a manuscript rests with the editor.

        b)     Editors should generally grant the request of an author who asks that particular individual(s) be excluded from the review of a particular manuscript.

        c)     Editors should establish a review process that minimizes bias.

        d)     Editors should subject all manuscripts of a given type to equivalent and unprejudiced reviews. Decisions about acceptance for publication should occur in a reasonable time frame, and (except for issues devoted to special topics) manuscripts should, to the editor’s best ability, be published in the chronological order of acceptance.

        e)     Editors should provide to the authors a written rationale for editorial decisions regarding a manuscript submitted for publication. This is especially important if the manuscript is being rejected.

        f)      Unpublished manuscripts must be treated as confidential documents by all individuals involved in the editorial process.

        g)     Editors should correct errors in a manuscript if the errors are detected or reported before publication, or publish corrections if they are detected afterward.

        h)     Editors should handle cases of alleged misconduct at the lowest possible organizational level, and should usually involve the institutions at which the research in question was performed (see below).

        i)      Papers submitted by an editor or associate editor should be handled by another member of the editorial board.

        The IEEE is grateful to the Society for Neuroscience for permission to adopt portions of its publication, “Guidelines: Responsible Conduct Regarding Scientific Communication”, to use in the preparation of the IEEE Publications Policy.

        July 10

        1996-2004“中创软件基金”获奖人员

        1996年度“中创软件基金”获奖人员简介

          王怀民
          863专家、国防科技大学计算机学院·博士。 王怀民博士在人工智能及分布式计算技术领域做出了多项创造性成果,在国内计算机界具有较大影响。特别是他系统地提出了以中间件为核心的“分布式Client/Server计算机系统”的设计方案,成功地开发了基于分布对象技术的新一代系统集成中间件StarBus,对Client/Server结构的开放系统具有重要的理论和实践价值。

          朱鸿
          南京大学软件研究所·博士。朱鸿博士一直致力于计算机软件理论、方法和技术研究,取得了一系列具有重要理论意义和应用价值的成果。他提出的函数式程序的综合方法被牛津大学出版的研究生教科书专章介绍,并被用于英国King’s College的研究生教学;在软件测试和软件安全性方面,他也做出了创新性的成果,著有《软件质量保障与测试》等专著。朱鸿博士曾多次为技术骨干参与了“八五”攻关、“863”高技术等重大科研项目。

          张松懋
          中科院数学所·博士。张松懋博士创造性地运用高维上下文有关文法为自然语言理解这一国际性课题开辟了一条新的途径,在国内外都得到了较高的评价。她作为第二负责人参与主持了中科院院长基金课题“全过程计算机辅助动画制作”,研制的“神笔马良”软件系统在国际上首次实现了真正的计算机动画自动制作,达到国际领先水平。张松懋博士曾多次参与或主持863项目、院长基金课题和国家自然科学基金项目。

         

        1997年度“中创软件基金”获奖人员简介

          王戟
          国防科技大学计算机学院·博士。王戟博士在软件方法学,特别是形式化方法和混成实时计算方面做出了诸多创新性成果。他提出了基于模型检验的实时系统形式化验证与分析方法;提出了混合实时系统层次化抽象模型;提出了基于对象间和对象内二级并发的实时系统形式模型;提出了基于CSP的混合系统设计语言HCSP及其时段语义;提出了基于时段演算的混合系统的归约推理和自动机综合设计框架。王戟博士多次参加了863、国防预研项目的研究工作。

          金芝
          中科院数学所·博士。金芝博士对逻辑程序和面向对象程序风范的结合、对非单调推理和逻辑程序的结合等方面有深入研究;并在知识工程和专家系统、软件工程和应用软件开发、自然语言理解和人机接口开发等方面做出了出色工作;曾在多项国家攻关科技项目中担任重要工作。

          金凌紫
          南京大学软件所·博士。金凌紫博士在软件自动化、软件复用、需求工程和软件质量保障与测试技术方面取得突出成果,并参加了《软件质量保障与测试》、《Software Without Frontiers》等专著的编写。她提出了一种基于知识的由输入/输出实例自动综合程序的方法与系统,已被英国伦敦大学用于研究生教学,并被英国学者Hutchinson编入其专著《Algorithmic Learning》;多次参加国家科技攻关和863科技项目开发,并主持一项国家自然科学基金及国家教委留学回国人员基金项目。

          梅宏
          北京大学计算机系·博士。梅宏博士的研究工作涉及到新型程序设计语言、软件工程和软件开环境、软件复用、面向对象技术方面,其工作具有基础性、系统性和创新性,受到学术界的重视,并在同行中产生了较大的影响。他设计实现了多种新型程序设计语言(合成型语言FOPL、BDOL);参与国家重点科技攻关项目北大“青鸟系统”开发,负责JB2环境的集成工作,创造性地解决了若干技术问题。

         

        1998年度“中创软件基金”获奖人员简介

          李宣东
          南京大学计算机系·博士。李宣东博士的研究方向为软件工程领域内的面向对象技术和形式化方法,曾在国际刊物、国际会议和国内一级学报上发表论文多篇,其中部分已被SCI或EI收录。在面向对象技术方面,他的研究工作立足于传统程序设计语言的面向对象扩充,在语言设计模型、语义模型、解决封装与继承的冲突问题以提高程序易复用性和易维护性等方面具有独到之处;在形式化方面,他主要从事实时和混成系统的模型验证这一前沿课题的研究,在混成自动机的模型验证算法方面的研究工作在国际上获得了相关领域专家的一致好评。

          林作铨
          北京大学信息科学系教授·博士生导师。林作铨博士在人工智能的非单调逻辑和常识推理领域做出了突出成绩,曾多次在国际期刊、国际学术会议、国内一级学报上多次发表论文,其工作成果受到国内外专家的重视,在国际上有很好的影响。林作铨教授曾多次主持完成国家863计划项目和国家自然科学基金项目等。96年被列入广东省10名跨世纪人才计划。

         

        1999年度“中创软件基金”获奖人员简介

          吕建
          863专家、南京大学计算机软件研究所副所长、软件技术国家重点实验室主任、博士生导师。吕建博士在软件自动化、面向对象语言与环境、基于Internet的软件Agent技术和并行程序的形式化方法等领域做出了一系列创新性的成就,得到国内外同行的好评。吕建博士曾多次荣获江苏省、国家教委科技进步奖、青年科技奖,1992年开始享受政府特殊津贴,1997年进入国家“百千万人才工程计划”。

          李波
          北京航空航天大学计算机系教授、中国计算机学会信息存储技术委员会副主任委员。李波博士在图像压缩、机器学习、推理技术领域做出了创新性的工作。他提出了一种基于自适应分块的三级分形图像压缩算法,取得了具有国际先进水平的分形压缩和小波压缩结果;设计实现了国内第一个功能完整的类比推理系统BHARS。李波博士多次主持863、国家自然科学基金、航空基金项目。

          周立
          国防科技大学计算机学院·博士。周立博士一直致力于分布式对象技术的研究,参加并主持了多项国家级重点科研项目的研制。作为863计划智能计算机主题重点项目“分布式Client/Server计算机系统集成平台和应用系统”的核心组织者,周立博士参与了基于CORBA标准的分布计算机软件平台StarBus的研制。StarBus是国内第一个能与国外公司推出的商用产品媲美的CORBA软件。

          傅育熙
          上海交通大学计算机系副主任、博士生导师。傅玉熙博士是留英归国博士,在类型理论、并行理论等方面造诣颇深,在国内外知学术杂志和著名会议论文集上发表论文50余篇,具有很高的学术水平。傅育熙博士曾多次主持863项目和国家自然科学基金项目。

         

        2000年度“中创软件基金”获奖人员简介

          庄越挺
          浙江大学信息学院,教授,博士生导师。庄越挺教授主持完成过国家自然科学基金、国家863计划项目等十多项,在人工智能、智能CAD、多媒体技术等领域,取得了突出的成绩,曾荣获中科院科技进步一等奖、国家科技进步二等奖,已在重要的刊物和国际会议上发表四十余篇、主编著作一部。近期,庄越挺教授研究方向主要集中在多媒体信息检索和分析、基于内容的视频/图像检索等方面,提出了若干新的思想和算法,对于面向Web的应用领域具有重要意义。

          李舟军
          国防科技大学计算机学院,副教授,欧洲理论计算机科学协会(EATCS)会员。李舟军副教授承担过多项国防预研基金、国家863计划项目、自然科学基金项目,在面向对象并发程序设计及其形式语义、形式化软件开发方法等方面取得了一系列具有重要意义的研究成果,获部委级科技成果二、三等奖各一次,已在国内外学术会议和核心期刊上发表论文二十多篇,编著的教材获电子部优秀教材二等奖。近年来,李舟军副教授在π-演算和传值CCS互模拟等价的语义理论、验证算法和公理化方面,取得了具有国际先进水平的创造性成果。

          应明生
          清华大学计算机系,教授。应明胜教授在计算机和软件理论上作出了较系统的贡献,提出并系统地研究了“基于剩余格值逻辑的模糊拓扑”和在证明论中引入近似方法的理论,受到国内外学术界的普遍重视,曾获得中国青年科技奖(1994),国家杰出青年基金(1997),在国内外学术期刊上发表论文四十多篇,被SCI收录三十余篇,主编专著一部。近年来,应明生教授在“基于剩余格值逻辑的模糊拓扑”方面的研究成果,被《Fuzzy Sets and System》的众多编委认为是该学科三个发展方向之一。

          张健
          中科院软件研究所,研究员。张健研究员主要研究方向集中在约束求解、自动推理技术及软件的测试与验证,实现了模型构造软件FALCON和SEM,解决了组合数学和代数学中一些未解决的问题,尤其将搜索技术用于拟群恒等式问题,得出一个新的结论,其后国外众多学者继续此项工作,取得不少成果。张健研究员曾获中科院青年科学家奖和院长奖学金,发表高水平学术论文十余篇,被发表于国外权威刊物上二十多篇论文引用,近年来应邀在澳洲、香港、欧洲讲学和开展合作研究。张健研究员坚持从事计算机软件和人工智能方面的基础研究,取得了突出成就,在国际上产生了广泛的影响。

         

        2001年度“中创软件基金”获奖人员简介

          冯登国
          中国科学院软件所博士。冯登国博士在计算机网络安全,特别是在密码算法的设计与分析、PKI技术以及安全认证协议的设计与分析方面成就突出,发表论文100余篇,出版著作8部,获奖多次。

          张 莉
          北京航空航天大学计算机科学与工程系博士。张莉博士在软件工程、过程可视化建模方面成就突出,发表论文20余篇,获奖多次。

          廖湘科
          国防科技大学计算机研究所研究员、副所长。该同志研究操作系统和并行处理技术多年,在国家高性能计算机系列软件系统的研制中贡献突出。主持多项国防预研项目和国家863项目,获奖多次。

         

        2002年度“中创软件基金”获奖人员简介

          孟小峰
          孟小峰博士在数据库理论研究与应用研究方面作出了创新性技术成果,作为技术骨干参加了国产系统软件“数据库管理系统COBASE”的研发工作,设计实现了国内第一个嵌入式数据库系统“小金灵”,并在食品卫生、保险、信息家电等领域得到应用。

          周志华
          周志华博士是历届“中创软件人才奖”获得者中最年轻的一位,他也是中国人工智能学会和机器学习学会最年轻的理事,在人工智能领域的研究成果得到了国际学术界的认可,先后在国际刊物和国际会议上发表论文30余篇,他的一项研究成果在国际人工智能界最高会议IJCAI-01发表。

          黄涛
          黄涛博士多年来一直从事对象技术、分布计算等方面的研究工作,先后在国内外重要学术刊物上发表论文40余篇,出版学术专著一部,他在中间件方面的研发成果已经成功应用于石化、保险、税务等国民经济领域。

         

        2003年度“中创软件基金”获奖人员简介

          王文平: 博士、香港大学副教授。王文平博士主要致力于计算机辅助几何设计和图形学等方面的研究,其成果已在病理教学、碰撞检测、骨科手术、环保以及建筑物浏览等领域得到应用。最近,他对 SARS病毒传播做了模拟和研究,在香港得到重视。他先后在国内外重要刊物上发表论文67篇,其中28篇被SCI收录。

          吴承勇 :博士、中科院计算所副研究员。吴承勇博士在编译技术方面做出了突出成绩,他作为技术骨干参加了多项国家自然科学基金、国家 863项目的研发,并作为项目负责人主持了与Intel公司的国际合作项目“IA-64开放源码编译器ORC”的研制工作,取得了世界领先的创新性软件成果。

          贾焰 :博士、国防科技大学教授、博士生导师。贾焰博士多年来一直从事数据库和分布软件技术研究,她作为负责人之一研制的“ StarBus系列中间件系统”,在容错、实时、异步消息机制以及CORBA构件技术等方面,达到了国内领先和世界先进水平,用户遍及全国31个省市自治区。近五年来,她先后在核心刊物和重要学术会议上发表论文近50篇,出版专著1部。

          徐宝文 :博士、东南大学教授、博士生导师。徐宝文博士在程序设计语言、程序分析技术、知识与信息获取技术等方面进行了长期研究,他负责完成了多项国家自然科学基金、国防重点基金项目,多次荣获省部级科技进步奖等。其学术论文已有 70多篇次被SCI、EI与ISTP三大检索刊物收录。   

         

        2004年度“中创软件基金”获奖人员简介

          王千祥:博士,北京大学信息学院软件所副教授。现任中国计算机学会、中国电子学会高级会员、 IEEE-CS会员,中国计算机学会软件工程专业委员会委员兼秘书长,中国计算机学会青年计算机工作者论坛学术委员会委员。

          王千祥博士作为技术骨干参加了国家“九五”重点科技攻关项目“青鸟 III型系统”的研发与实施工作,并作为骨干人员主持或参加了多项国家863项目、国家自然基金项目、教育部骨干教师资助项目等的科研工作。

          近五年来,王千祥博士在《软件学报》、《中国科学》等杂志及 IEEE COMPSAC(国际计算机与应用会议)、ICSM等会议发表论文20多篇,其中7篇被SCI、EI索引;同时,还撰写出关于应用服务器的专著《应用服务器原理与实现》。

          王千祥博士作为主要设计人员研发的自主应用服务器—— PKUAS目前正处于产品化的推广应用阶段。

          陈贵海:博士,南京大学计算机系教授、博士生导师。 1998年至2003年分别在香港大学、澳大利亚昆士兰大学、美国韦恩州立大学等担任访问教授。现任江苏省高校教师高级职称评审委员会委员、香港研究资助局(RGC)海外专家组成员、IEEE Computer Society会员。曾任全国开放式系统并行与分布式年会程序委员会主席、ICDCS2003等重要国际学术会议程序委员会委员。

          陈贵海博士主要从事并行与分布式系统、先进操作系统、网络计算等方面的研究工作。近 5年来,在国际重要刊物及国际学术会议上发表论文25篇,其中SCI收录11篇、IEEE Transactions发表4篇;在国内学术期刊发表论文近40篇。主持或参加了863项目、973项目等多项国家级重要科研项目;主持的NSF项目(69703005)于2003年获国家自然科学基金委员会项目特优评价;并获多项部级、省级奖励。主要包括教育部高校青年教师奖、江苏省科技成果二等奖等。

        July 08

        我认识的几位老师-贲可荣教授

        贲可荣,男,19868月入伍,现专业技术7级,文职4级。19837月毕业于苏州大学数学系,获理学学士学位,19867月毕业于南京大学数学系基础数学专业,获理学硕士学位,19946月毕业于国防科技大学计算机系计算机软件专业,获工学博士学位。学校首批培养的33名学科带头人之一。20012月,经教育部批准,被确定为海军首批十名骨干教师之一。20005月,经教育部批准,被武汉大学软件工程国家重点实验室聘为访问学者。学校学位评定委员会委员、科学技术委员会委员。中国计算机学会计算机理论专业委员会委员、中国造船工程学会电子技术委员会委员、武汉软件工程学会副理事长。海军工程大学学术研究中心研究员。《海军工程大学学报》、《舰船电子工程》编委。

            承担博士生的《人工神经网络》、硕士生的《软件测试技术》、《软件可靠性》、《算法设计与分析》、《人工智能》和本科生的《人工智能导论》、《软件工程导论》、《离散数学》、《软件能力成熟度模型》等课程的主讲任务。在软件可靠性、软件测试技术、软件质量保证技术、信息安全、程序理论及计算机应用等方面有较强的研究能力。承担了包括国家自然科学基金、国家863项目、高等学校骨干教师资助计划项目、国家重点实验室开放基金、国家重点实验室访问学者项目和海军装备部课题等国家级科研项目7项。在“中国科学”、“数学年刊”等刊物发表论文40余篇。 

        July 07

        我认识的几位老师-王振宇研究员

        王振宇,男,1936年8月生,1956年毕业于武汉大学数学系,博士生导师。中科院软件研究所研究员,IEEE计算机学会会员、ACM SIGADA会员,中国计算机学会软件分会委员,曾担任多届中船总和第七研究院学位评定委员会委员。从事科研工作40余年,早年进行函数论的研究。1970以来探索计算机科学和软件及计算机应用技术领域的研究,主攻方向是军用共性软件技术、Ada语言、软件工程、软件开发工具和环境、应用系统集成、算法复杂性分析及有关数学工具、软件复杂性度量。多次承担并完成了国防科技重点研究项目和国家自然科学基金项目,获得部级科技进步奖9项。近年来主要获奖项目有:Ada同SQL的接口系统、军用软件快速原型技术、Ada语言、工具与环境均获中船总科技进步三等奖。理论研究方面做了大量探索工作,出版专著多部。主要著述有《树的枚举与算法复杂性分析》、《程序复杂性度量》、《Ada软件开发技术》、《Ada语言与程序设计》、《C语言接口技巧与实例》等。并在《中国科学》、《科学通报》、《数学学报》、《计算机学报》等学术刊物和国内外学术会议上公开发表论文150多篇。近期发表的论文有:“递归树的若干枚举特征”、“关于软件标本重用技术的研究”、“ Automatically Generating Ada95 Codes for Concurrent Objects”、 “Ada Concurrent Complexity Metrics based on Rendezvous Relations”、 “软件体系结构在舰船指挥控制系统中的应用”、“程序树的快速定位法”、“基于CORBA的智能建筑管理系统IBMS的设计与实现”、“On Optimization of Ada Software Design Icons”、“为Ada95引入A对象”、“Remolding Diversified Objects in Ada95: Toward A-Object Pattern”、“Event-based Implicit Invocation Decentralized in Ada”。目前正在承担国家自然科学基金、国防预研课题等项目。自1979年开始培养硕士研究生,目前已毕业研究生30余人,1996年开始招收博士研究生。
         
        July 06

        [zz]把微笑留给伤你最深的人

             “把微笑留给伤害你最深的人。”这是我无意中看到的一句话,读后就深深的记住了。这是多么坚强而洒脱的人生,这其中要经历多少爱与恨的交织。
         
              男女之间从见面心跳到两情相悦,再到彼此间出神入化的心灵呼唤,也许要走很长的一段路程,而从一切不设防,连心带身都纯真地呈现给对方,再到万般柔情都化为一声震撼心灵的叹息,也只需短暂的一瞬。
         
              当昔日的真爱已不存在,当感情的繁花已被秋雨打得残红飘零时,人们总是习惯于久久地停息在爱情的树枝上低吟浅唱,不是心里仍眷恋那份早已随风而逝的柔情,企求伤害自己的人回心转意,就是下定决心以同样的方式实行报复,但这都是不明智,不潇洒,不可爱的。
         
              最恰当的方法就是微笑着向他道珍重。
         
              把微笑留给负于我们的人,把泪水留给自己;把祝福给有负于我们的人,把痛苦留给自己。没有较高的文化修养,没有对感情细微的洞察,没有对所爱的人发自内心的挚爱,谁能做到微笑告别?
           
              把微笑留给一般朋友已不易,给有负我们的人更是难上加难。因为最伤害我们的人往往就是我们最深爱的人,付出的越多,被伤害时心里越疼。然而我们不得不微笑,感情本身是个很玄很复杂的事。我们不能勉强他人,相爱的理由有千百条,不爱的千百条理由可能一条也站不住脚,这其中的奥秘又有谁能说得清?
         
             爱情无解,爱情无常。我们可以牺牲爱情,却不能牺牲人格和自尊,那是人活着的首要意义。
         
              以伤害来对付伤害固然是一种解恨的办法,但伤害的结果只能更加坚定你爱的人离去的决心。爱情是把双刃剑,一头对着对方,另一头直指自己。一时的宣泄虽淋漓,一世的悲怆更难耐。
         
              暂时的内心平衡只能加重自身的遍体鳞伤,何苦扰了别人,又伤了自己呢?
         
              还是把那微笑留给伤害你最深的人吧! 把微笑留给伤害你最深的人。

        写在最前的励志之篇--人生路口上的抉择

        一般文科的,除了很少部分人工作不错外,大多数工作相对来说都比较难找,包括硕士和博士。当然有关系的就不用我们操心了。理科的学生,要么出国,要么读博士留校。不过能达到愿望的也只是一少部分人。其他大部分人是走入社会,到公司、企业或其他单位。
         
        还有相当一部分人是选择转行。目前很多的大学毕业的从事的职业都于自己的专业无关。在这个扩招的年代,其实学工科的也同样面临这些问题,出国、留校、工作、转行的都有,只是现实条件下相对来说选择面宽点。很多工科学习内容比理科更多,理论加实践。
         
        没有选择是悲惨的,但有选择却又是痛苦的。
         
        其实有一点可以解决所有问题,如果你志愿为你选择的专业奉献一生的话,那什么都难不倒你,其他一切因素都不重要,你只需要专注于你的兴趣再选择专业,无论是文理工。各个领域都能出大家,而到了那个阶段就不会出现互相贬低的问题,因为一切事物都是相通互的。PHD就是哲学,关乎人生、自然、宇宙、芸芸众生等等。而不是互相攀比和排斥,也不是名利之争。不过现在很多PHD似乎都......真不想说了。
         
        现实和理想是有差距的,对于很多人来说,这种差距是一条很难逾越的鸿沟。
         
        每个人适合的道路是不同的,大家需要的是找到合适自己的人生规划。别人的意见可以听,但是别被纷扰的言论迷惑了你的心,毕竟没有人比你自己更了解你。只有你自己才能对你自己的生活负责,其他人都代替不了。文理工,没有高低好坏之分,区别只在于你的选择。就如同选择空气还是选择水,那是你 自己的决策。
         
        现在很多人争来争去的学校排名也是很虚的东西。也许会暂时增加一点虚无的满足感或虚荣心,但真要把这当回事将来只会给自己增加失落感,因为那玩艺儿对于你的人生和理想基本没有太大帮助,并且也不能反映出真实的情况。尤其是在中国现在的历史条件下。
         
        真正能够做到不已物喜,不已己悲的人又有多少呢。我自己试图做到,但是,觉得光有理想并为之不懈的努力远远不够,其实生存的压力好大,影响我前进的因素太多。