{"title":"Towards a framework for software navigation techniques","authors":"Andrew Sutherland, Kevin A. Schneider","doi":"10.1145/1370114.1370140","DOIUrl":null,"url":null,"abstract":"Making a change to a large software system requires investing time in understanding the system first. In the context of programming, navigation refers to the process of finding one's way through a complex network of programming constructs and other software artifacts. The process consists of answering questions such as \"What am I looking at?\" and \"What do I want to look at next?\", along with the question of \"How do I get there?\". This paper looks at the range of techniques used to aid navigation, and categorizes them using three perspectives: perceptual techniques, which use graphical representations and exploit spatial memory to aid navigation; filtering techniques, which operate by automatically reducing the amount of information provided so that the appropriate pieces of information are easy to find; and enrichment techniques, which involve augmenting the view of the software with peripheral information, so that the relative information can be more easily identified.","PeriodicalId":107901,"journal":{"name":"Proceedings of the 2008 international workshop on Cooperative and human aspects of software engineering","volume":"34 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2008-05-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 2008 international workshop on Cooperative and human aspects of software engineering","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1370114.1370140","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2
Abstract
Making a change to a large software system requires investing time in understanding the system first. In the context of programming, navigation refers to the process of finding one's way through a complex network of programming constructs and other software artifacts. The process consists of answering questions such as "What am I looking at?" and "What do I want to look at next?", along with the question of "How do I get there?". This paper looks at the range of techniques used to aid navigation, and categorizes them using three perspectives: perceptual techniques, which use graphical representations and exploit spatial memory to aid navigation; filtering techniques, which operate by automatically reducing the amount of information provided so that the appropriate pieces of information are easy to find; and enrichment techniques, which involve augmenting the view of the software with peripheral information, so that the relative information can be more easily identified.