HSML: design directed source code hot spots

HSML, the Hot Spot Markup Language, is an ultra-high level executable specification language designed for concisely specifying source code hot spots of all kinds. Each HSML rule specifies the abstract syntactic class of the items to be marked as hot using a nonterminal of the target language grammar, and the semantic conditions under which such items are to be marked using an algebraic expression on the design properties of the item. Conditions can include restrictions on abstract syntactic structure (patterns), design recovered semantic properties (queries on the design database), and semantic properties induced by other markup rules. HSML has been used in industrial practice to specify source code hot spots for the Year 2000 and a wide range of other application maintenance tasks on systems implemented in Cobol, PL/I and RPG. We introduce the basic concepts of HSML and demonstrate its use in real software maintenance tasks.

[1]  James R. Cordy,et al.  TuringTool: A User Interface to Aid in the Software Maintenance Task , 1990, IEEE Trans. Software Eng..

[2]  C. M. Sperberg-McQueen,et al.  eXtensible Markup Language (XML) 1.0 (Second Edition) , 2000 .

[3]  Loe Feijs,et al.  A relational approach to support software architecture analysis , 1998 .

[4]  Richard C. Holt,et al.  Software architecture transformations , 2000, Proceedings 2000 International Conference on Software Maintenance.

[5]  C. M. Sperberg-McQueen,et al.  Extensible Markup Language (XML) , 1997, World Wide Web J..

[6]  James R. Cordy,et al.  TXL: A Rapid Prototyping System for Programming Language Dialects , 1991, Comput. Lang..

[7]  James M. Purtilo,et al.  Parse tree annotations , 1989, CACM.

[8]  Katja Cremer,et al.  A tool supporting the re-design of legacy applications , 1998, Proceedings of the Second Euromicro Conference on Software Maintenance and Reengineering.

[9]  Ted J. Biggerstaff,et al.  Design recovery for maintenance and reuse , 1989, Computer.

[10]  Hausi A. Müller,et al.  The Software Bookshelf , 1997, IBM Syst. J..

[11]  Richard C. Holt Binary Relational Algebra Applied to Software Architecture , 1996 .

[12]  Andy Schürr,et al.  GXL: toward a standard exchange format , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[13]  Hausi A. Müller,et al.  Programmable Reverse Engineering , 1994, Int. J. Softw. Eng. Knowl. Eng..

[14]  Andy Schürr,et al.  Visual programming with graph rewriting systems , 1995, Proceedings of Symposium on Visual Languages.

[15]  Farhad Mavaddat,et al.  A pattern matching framework for software architecture recovery and restructuring , 2000, Proceedings IWPC 2000. 8th International Workshop on Program Comprehension.

[16]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[17]  T. Lethbridge,et al.  Understanding Software Maintenance Tools: Some Empirical Research , 1997 .