{"title":"Abstraction - is it teachable? 'the devil is in the detail'","authors":"J. Kramer","doi":"10.1109/CSEET.2003.10005","DOIUrl":null,"url":null,"abstract":"Summary form only given, as follows. Abstraction is a key skill for software engineers. It is essential during requirements engineering to elicit the critical aspects of the environment and required system while neglecting the unimportant. At design time, we need to articulate the software architecture and component functionalities which satisfy functional and nonfunctional requirements while avoiding unnecessary implementation constraints. Even at the implementation stage we use data abstraction and classes so as to generalize solutions However, my experience is that abstraction is extremely difficult to teach and learn. How should we go about teaching this skill? Indeed, is it teachable? This talk discusses the difficulties and challenges in learning and using abstraction. In particular, we consider whether or not the standard engineering technique of model construction and analysis can help in this venture. The importance of having associated tool support is also considered.","PeriodicalId":250569,"journal":{"name":"Conference on Software Engineering Education and Training","volume":"441 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2003-03-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"16","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Conference on Software Engineering Education and Training","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CSEET.2003.10005","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 16
Abstract
Summary form only given, as follows. Abstraction is a key skill for software engineers. It is essential during requirements engineering to elicit the critical aspects of the environment and required system while neglecting the unimportant. At design time, we need to articulate the software architecture and component functionalities which satisfy functional and nonfunctional requirements while avoiding unnecessary implementation constraints. Even at the implementation stage we use data abstraction and classes so as to generalize solutions However, my experience is that abstraction is extremely difficult to teach and learn. How should we go about teaching this skill? Indeed, is it teachable? This talk discusses the difficulties and challenges in learning and using abstraction. In particular, we consider whether or not the standard engineering technique of model construction and analysis can help in this venture. The importance of having associated tool support is also considered.