Ken Magel - Academia.edu (original) (raw)
Papers by Ken Magel
ACM SIGPLAN Notices, 1982
Small programs are those which are written and understood by one. person. Large software systems ... more Small programs are those which are written and understood by one. person. Large software systems usually consist of many small programs. The complexity of a small program is a prediction of how difficult it would be for someone to understand the program. This complexity depends of three factors: (1) the size and interelationships of the program itself; (2) the size and interelationships of the internal model of the program's purpose held by the person trying to understand the program; and (3) the complexity of the mapping between the model and the program. A theory of small program complexity based on these three factors is presented. The theory leads to several testable predictions. Experiments are described which test these predictions and whose results could verify or destroy the theory.
ACM SIGSOFT Software Engineering Notes, 1984
2019 IEEE First International Conference on Cognitive Machine Intelligence (CogMI), 2019
Object-oriented analysis is a significant step that plays a vital role in the success of software... more Object-oriented analysis is a significant step that plays a vital role in the success of software development. The planning and management stages, in particular, profoundly rely on the deliverance of an accurate estimate that takes the software's complexity and size into consideration. Today, several software industries are transforming their development methodologies to Agile due to its ability to deliver value in a short time and its cost efficiency. However, Agile methods prevent heavyweight modeling analysis and depend on user stories to drive the estimation process. Because user stories are descriptive language, they may not provide a clear picture for the implementation. Also, they may not help Agile developers give an accurate estimation due to their difficulty in measuring the complexity and size of a feature. Thus, this paper presents a new Agile artifact called developer story that allows the Agile developer to not only analyze and design software products but also predict the size of each feature, including its complexity. In this paper, a case study is presented that shows how the utilization of developer story is a practical approach in predicting the source code size of a feature and its complexity.
Shows that several open source and commercial coverage tools give different results on programs. ... more Shows that several open source and commercial coverage tools give different results on programs. These results differ more as the size of the programs grows.
The aim of the project presented here is the demonstration of a combined heat and power reformer ... more The aim of the project presented here is the demonstration of a combined heat and power reformer HT-PEM fuel cell system fuelled with bio-ethanol. The system combines the advantages of the fuel cell, i.e. high efficiency, low emissions, and low noise with those of bio-ethanol. This fuel represents a CO2-reduced approach to energy supply. It is non-toxic and commercially available worldwide. The technology significantly contributes to a move towards decentralization. In the system ethanol and water (at a steam to carbon ration of 2.5) are catalytically converted to a reformate gas with about 50 vol.-%dry H2 and 25 %dry CH4 and less than 1 %dry CO at temperatures of around 400 °C. This is achieved with an innovative catalyst. Due to the low CO content, the reformate gas can be fed directly to a HT-PEM fuel cell, where electricity and heat are produced. As opposed to conventional reformer fuel cell systems, no gas cleaning step is required. As a result, the system is much simpler. The ...
ACM SIGCSE Bulletin, 1981
Introductory programming courses have long been a popular topic of discussion. Often it is either... more Introductory programming courses have long been a popular topic of discussion. Often it is either the only computer course a student takes or it is the foundation upon which all further training in computer science is built. The usual goal of such a course is to introduce the student to the use of a computer to solve simple problems in his or her particular discipline. Generally the method of presenting the material may be separated into two distinct schools of thought, which we have termed the “Black Box School of Thought” and the “White Box School of Thought”. In this paper, we discuss the benefits and drawbacks associated with the two alternative approaches. Additionally, we present a suggested course outline using the “White Box” method.
In the last decade, we witnessed the dramatic transformation of software development processes. T... more In the last decade, we witnessed the dramatic transformation of software development processes. The transformation from single-site, mostly English-based into a multi-site, multilingual, multicultural, and globally distributed endeavor has marked the birth of Global Software Development (GSD). Based on an extensive review to the published literature we found that most of the attention has turned towards understanding the impact of
2013 10th International Conference on Information Technology: New Generations, 2013
International Journal of Computers and Applications, 2014
ABSTRACT Coupling, a measure of the interdependence among software entities, is an important prop... more ABSTRACT Coupling, a measure of the interdependence among software entities, is an important property for which many software metrics have been defined. It is widely agreed that the extent of coupling in an object-oriented system has implications for its external quality. Structural and semantic relations between classes can be measured directly from static source code. However, both have limitations. In order to understand which aspects of coupling affect quality or other external attributes of software, this paper presents a new coupling metric for object-oriented systems that analyze structural and semantic relationships between methods and classes. The paper investigates the use of the new proposed coupling metric during change impact analysis, predicting fault-prone and maintainable classes. By comparing the new metric to other coupling metrics, we show that the new metric is a better predictor for classes impacted by changes. The new metric also shows good promise in predicting both external qualities (fault proneness and maintainability).
2010 IEEE International Conference on Software Engineering and Service Sciences, 2010
proceeding of the International Conference on …, 2007
Method and apparatus used for continuous casting of copper alloy rods for obtaining a fine grain ... more Method and apparatus used for continuous casting of copper alloy rods for obtaining a fine grain size therein. Liquidus copper alloy material flows from a reservoir area or crucible into a continuous casting die. Devices are included to cause agitation of the liquidus material as it enters the die so that no thermal gradients are large enough at the liquidus-solid state transition zone to produce gross directional solidification of the alloy. Devices which may be used to obtain the desired liquidus material agitation include a particular configuration and location for the die inlet openings, electromagnetic stirring and mechanical stirring.
ACM SIGCSE Bulletin, 1984
Computer Science programs throughout the country have had to cope with rapid increases in student... more Computer Science programs throughout the country have had to cope with rapid increases in students during the last few years. These students cause additional problems beyond those arising from their n u m b e r s , T h i s paper presents one p r o p o s a l for handling the differing backgrounds of new students, both freshmen and transfers. A very different approach has been presented in {4}. Students enter Computer Science undergraduate programs with three different types of backgrounds: (a). the student who Knows nothing about programming a computer; (b) the student who has had at least one course in high school o r who has learned to program a m i c r o c o m p u t e r on h i s o w n ; a n d ( c ) t h e t r a n s f e r s tuden t who has had some computer science courses, but whose courses do not cor respond c l o s e l y to your own. The students in-the last two groups have similar needs which are significantly different from students in the first group, In one of our. introductory courses for the fall, 1983 quarter, out of one hundred and fifty students, twenty-three fit the (b) category and tdenty-one fit the (c) category. We expect these numbers to increase greatly as high school computer programming courses become more common. T h e s e e x p e r i e n c e d s t u d e n t s Know much of the material in your first few computer science courses, but are missing important pieces of what those courses cover. If they are forced to take those introductory courses, their boredom with material they already Know often will cause them to miss material they need to learn. A further p r o b l e m i s t h e d i f f i c u l t i e s i n d e t e r m i n i n g e x a c t l y what they Know and what they do not Know. Knowing how to program in Pascal means very different things at different schools, for example. Of course, widespread faculty shortages mean a program cannot o f f e r course sequences oriented towards each possible type of s tuden t background. The next s e c t i o n o f this paper discusses one possible solution
Software Engineering / 811: Parallel and Distributed Computing and Networks / 816: Artificial Intelligence and Applications, 2014
2009 International Conference on New Trends in Information and Service Science, 2009
Many of the requirements of Globalized (Internationalized ) software that have a crosscutting imp... more Many of the requirements of Globalized (Internationalized ) software that have a crosscutting impact are scattered through the entire software. The impact of these requirements presents many challenges that manifest themselves throughout the software development lifecycle. Inherent properties of crosscutting requirements, such as scattering (where their support is scattered across multiple classes) and tangling (where their support is tangled with elements supporting other requirements), reduce the reusability, extensibility, and traceability of the software artifacts . Scattering and tangling are evident in the design and code of internationalized software and must be addressed fully. To remove scattering and tangling properties, developers must first identify and then separate the design and code of crosscutting behavior into independent modules or components. This paper discusses two important issues; when developers should identify and document crosscutting requirements; and whe...
2009 Fifth International Joint Conference on …, 2009
... For example, a user of a Western keyboard can input Chinese, Japanese, Korean and Indic chara... more ... For example, a user of a Western keyboard can input Chinese, Japanese, Korean and Indic characters. ... A Framework For The Integration Of Internationalization And Localization Activities Into The Software Development Process. ... The Art of Multilingual Software Testing. ...
International Computer Software and Applications Conference, 2008
Testing global software differs from conventional software testing in that the test design approa... more Testing global software differs from conventional software testing in that the test design approach must consider the defined and implied issues of specific culture, language, date format, currency format, etc. In bi-directional software testing (software targeting Arabic, Hebrew, etc.) has many unique issues. Target users of Arabic software demand the same high quality standards as other users. Developers and localizers
[1991] Proceedings The Fifteenth Annual International Computer Software & Applications Conference, 1991
A description is presented of a performance evaluation study of three proposed distributed deadlo... more A description is presented of a performance evaluation study of three proposed distributed deadlock detection algorithms, namely, fully centralized, partially distributed, and fully distributed deadlock detection algorithms. The authors investigate and describe the extent to which these algorithms provide an increase in the level of multiprogramming, and an increase in the number of blocked, restarted transactions. A list of performance
ACM SIGPLAN Notices, 1982
Small programs are those which are written and understood by one. person. Large software systems ... more Small programs are those which are written and understood by one. person. Large software systems usually consist of many small programs. The complexity of a small program is a prediction of how difficult it would be for someone to understand the program. This complexity depends of three factors: (1) the size and interelationships of the program itself; (2) the size and interelationships of the internal model of the program's purpose held by the person trying to understand the program; and (3) the complexity of the mapping between the model and the program. A theory of small program complexity based on these three factors is presented. The theory leads to several testable predictions. Experiments are described which test these predictions and whose results could verify or destroy the theory.
ACM SIGSOFT Software Engineering Notes, 1984
2019 IEEE First International Conference on Cognitive Machine Intelligence (CogMI), 2019
Object-oriented analysis is a significant step that plays a vital role in the success of software... more Object-oriented analysis is a significant step that plays a vital role in the success of software development. The planning and management stages, in particular, profoundly rely on the deliverance of an accurate estimate that takes the software's complexity and size into consideration. Today, several software industries are transforming their development methodologies to Agile due to its ability to deliver value in a short time and its cost efficiency. However, Agile methods prevent heavyweight modeling analysis and depend on user stories to drive the estimation process. Because user stories are descriptive language, they may not provide a clear picture for the implementation. Also, they may not help Agile developers give an accurate estimation due to their difficulty in measuring the complexity and size of a feature. Thus, this paper presents a new Agile artifact called developer story that allows the Agile developer to not only analyze and design software products but also predict the size of each feature, including its complexity. In this paper, a case study is presented that shows how the utilization of developer story is a practical approach in predicting the source code size of a feature and its complexity.
Shows that several open source and commercial coverage tools give different results on programs. ... more Shows that several open source and commercial coverage tools give different results on programs. These results differ more as the size of the programs grows.
The aim of the project presented here is the demonstration of a combined heat and power reformer ... more The aim of the project presented here is the demonstration of a combined heat and power reformer HT-PEM fuel cell system fuelled with bio-ethanol. The system combines the advantages of the fuel cell, i.e. high efficiency, low emissions, and low noise with those of bio-ethanol. This fuel represents a CO2-reduced approach to energy supply. It is non-toxic and commercially available worldwide. The technology significantly contributes to a move towards decentralization. In the system ethanol and water (at a steam to carbon ration of 2.5) are catalytically converted to a reformate gas with about 50 vol.-%dry H2 and 25 %dry CH4 and less than 1 %dry CO at temperatures of around 400 °C. This is achieved with an innovative catalyst. Due to the low CO content, the reformate gas can be fed directly to a HT-PEM fuel cell, where electricity and heat are produced. As opposed to conventional reformer fuel cell systems, no gas cleaning step is required. As a result, the system is much simpler. The ...
ACM SIGCSE Bulletin, 1981
Introductory programming courses have long been a popular topic of discussion. Often it is either... more Introductory programming courses have long been a popular topic of discussion. Often it is either the only computer course a student takes or it is the foundation upon which all further training in computer science is built. The usual goal of such a course is to introduce the student to the use of a computer to solve simple problems in his or her particular discipline. Generally the method of presenting the material may be separated into two distinct schools of thought, which we have termed the “Black Box School of Thought” and the “White Box School of Thought”. In this paper, we discuss the benefits and drawbacks associated with the two alternative approaches. Additionally, we present a suggested course outline using the “White Box” method.
In the last decade, we witnessed the dramatic transformation of software development processes. T... more In the last decade, we witnessed the dramatic transformation of software development processes. The transformation from single-site, mostly English-based into a multi-site, multilingual, multicultural, and globally distributed endeavor has marked the birth of Global Software Development (GSD). Based on an extensive review to the published literature we found that most of the attention has turned towards understanding the impact of
2013 10th International Conference on Information Technology: New Generations, 2013
International Journal of Computers and Applications, 2014
ABSTRACT Coupling, a measure of the interdependence among software entities, is an important prop... more ABSTRACT Coupling, a measure of the interdependence among software entities, is an important property for which many software metrics have been defined. It is widely agreed that the extent of coupling in an object-oriented system has implications for its external quality. Structural and semantic relations between classes can be measured directly from static source code. However, both have limitations. In order to understand which aspects of coupling affect quality or other external attributes of software, this paper presents a new coupling metric for object-oriented systems that analyze structural and semantic relationships between methods and classes. The paper investigates the use of the new proposed coupling metric during change impact analysis, predicting fault-prone and maintainable classes. By comparing the new metric to other coupling metrics, we show that the new metric is a better predictor for classes impacted by changes. The new metric also shows good promise in predicting both external qualities (fault proneness and maintainability).
2010 IEEE International Conference on Software Engineering and Service Sciences, 2010
proceeding of the International Conference on …, 2007
Method and apparatus used for continuous casting of copper alloy rods for obtaining a fine grain ... more Method and apparatus used for continuous casting of copper alloy rods for obtaining a fine grain size therein. Liquidus copper alloy material flows from a reservoir area or crucible into a continuous casting die. Devices are included to cause agitation of the liquidus material as it enters the die so that no thermal gradients are large enough at the liquidus-solid state transition zone to produce gross directional solidification of the alloy. Devices which may be used to obtain the desired liquidus material agitation include a particular configuration and location for the die inlet openings, electromagnetic stirring and mechanical stirring.
ACM SIGCSE Bulletin, 1984
Computer Science programs throughout the country have had to cope with rapid increases in student... more Computer Science programs throughout the country have had to cope with rapid increases in students during the last few years. These students cause additional problems beyond those arising from their n u m b e r s , T h i s paper presents one p r o p o s a l for handling the differing backgrounds of new students, both freshmen and transfers. A very different approach has been presented in {4}. Students enter Computer Science undergraduate programs with three different types of backgrounds: (a). the student who Knows nothing about programming a computer; (b) the student who has had at least one course in high school o r who has learned to program a m i c r o c o m p u t e r on h i s o w n ; a n d ( c ) t h e t r a n s f e r s tuden t who has had some computer science courses, but whose courses do not cor respond c l o s e l y to your own. The students in-the last two groups have similar needs which are significantly different from students in the first group, In one of our. introductory courses for the fall, 1983 quarter, out of one hundred and fifty students, twenty-three fit the (b) category and tdenty-one fit the (c) category. We expect these numbers to increase greatly as high school computer programming courses become more common. T h e s e e x p e r i e n c e d s t u d e n t s Know much of the material in your first few computer science courses, but are missing important pieces of what those courses cover. If they are forced to take those introductory courses, their boredom with material they already Know often will cause them to miss material they need to learn. A further p r o b l e m i s t h e d i f f i c u l t i e s i n d e t e r m i n i n g e x a c t l y what they Know and what they do not Know. Knowing how to program in Pascal means very different things at different schools, for example. Of course, widespread faculty shortages mean a program cannot o f f e r course sequences oriented towards each possible type of s tuden t background. The next s e c t i o n o f this paper discusses one possible solution
Software Engineering / 811: Parallel and Distributed Computing and Networks / 816: Artificial Intelligence and Applications, 2014
2009 International Conference on New Trends in Information and Service Science, 2009
Many of the requirements of Globalized (Internationalized ) software that have a crosscutting imp... more Many of the requirements of Globalized (Internationalized ) software that have a crosscutting impact are scattered through the entire software. The impact of these requirements presents many challenges that manifest themselves throughout the software development lifecycle. Inherent properties of crosscutting requirements, such as scattering (where their support is scattered across multiple classes) and tangling (where their support is tangled with elements supporting other requirements), reduce the reusability, extensibility, and traceability of the software artifacts . Scattering and tangling are evident in the design and code of internationalized software and must be addressed fully. To remove scattering and tangling properties, developers must first identify and then separate the design and code of crosscutting behavior into independent modules or components. This paper discusses two important issues; when developers should identify and document crosscutting requirements; and whe...
2009 Fifth International Joint Conference on …, 2009
... For example, a user of a Western keyboard can input Chinese, Japanese, Korean and Indic chara... more ... For example, a user of a Western keyboard can input Chinese, Japanese, Korean and Indic characters. ... A Framework For The Integration Of Internationalization And Localization Activities Into The Software Development Process. ... The Art of Multilingual Software Testing. ...
International Computer Software and Applications Conference, 2008
Testing global software differs from conventional software testing in that the test design approa... more Testing global software differs from conventional software testing in that the test design approach must consider the defined and implied issues of specific culture, language, date format, currency format, etc. In bi-directional software testing (software targeting Arabic, Hebrew, etc.) has many unique issues. Target users of Arabic software demand the same high quality standards as other users. Developers and localizers
[1991] Proceedings The Fifteenth Annual International Computer Software & Applications Conference, 1991
A description is presented of a performance evaluation study of three proposed distributed deadlo... more A description is presented of a performance evaluation study of three proposed distributed deadlock detection algorithms, namely, fully centralized, partially distributed, and fully distributed deadlock detection algorithms. The authors investigate and describe the extent to which these algorithms provide an increase in the level of multiprogramming, and an increase in the number of blocked, restarted transactions. A list of performance