Ken Magel - Profile on Academia.edu (original) (raw)

Papers by Ken Magel

Research paper thumbnail of Dealing with dates: solutions for the Year 2000

Research paper thumbnail of A theory of small program complexity

A theory of small program complexity

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.

Research paper thumbnail of The user-definable interface project

The user-definable interface project

ACM SIGSOFT Software Engineering Notes, 1984

Research paper thumbnail of Applying Software Design Metrics to Developer Story: A Supervised Machine Learning Analysis

Applying Software Design Metrics to Developer Story: A Supervised Machine Learning Analysis

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.

Research paper thumbnail of Experimental Evaluation of Static Source Code Analysis Tools

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.

Research paper thumbnail of Bio-Ethanol Reformer with HT-PEM Fuel Cell for Residential Combined Heat and Power Generation

Bio-Ethanol Reformer with HT-PEM Fuel Cell for Residential Combined Heat and Power Generation

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 ...

Research paper thumbnail of A suggested course in introductory computer programming

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.

Research paper thumbnail of The impact of global software cultural and linguistic aspects on Global Software Development process (GSD): Issues and challenges

The impact of global software cultural and linguistic aspects on Global Software Development process (GSD): Issues and challenges

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

Research paper thumbnail of Towards Test Focus Selection for Integration Testing Using Method Level Software Metrics

2013 10th International Conference on Information Technology: New Generations, 2013

The aim of integration testing is to uncover errors in the interactions between system modules. H... more The aim of integration testing is to uncover errors in the interactions between system modules. However, it is generally impossible to test all the interactions between modules because of time and cost constraints. Thus, it is important to focus the testing on the connections presumed to be more errorprone. The goal of this research is to guide quality assurance team wherein a software system to focus when they perform integration testing to save time and resources. In this work, we use method level metrics that capture both dependencies and internal complexity of methods. In addition, we build a tool that calculates the metrics automatically. We also propose an approach to select the test focus in integration testing. The main goal is to reduce the number of test cases needed while still detecting at least 80% of integration errors. We conducted an experimental study on several Java applications taken from different domains. Error seeding technique have been used for evaluation. The experimental results showed that our proposed approach is very effective for selecting the test focus in integration testing. It reduces considerably the number of required test cases while at the same time detects at least 80% of integration errors.

Research paper thumbnail of Empirical Evaluation of a New Coupling Metric: Combining Structural and Semantic Coupling

Empirical Evaluation of a New Coupling Metric: Combining Structural and Semantic Coupling

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).

Research paper thumbnail of Understanding requirement engineering (REQ) from a software agent modeling perspective

2010 IEEE International Conference on Software Engineering and Service Sciences, 2010

The requirements for modeling a software product are growing in size and increasingly getting com... more The requirements for modeling a software product are growing in size and increasingly getting complex, interdependent and to understand them requires the availability of simple representational requirement engineering tools and measures to evaluate them. Requirements engineering still remains a key factor to guarantee stakeholders involvement, facilitating their understanding and participation. The paper presents an overview of agent based modeling requirements engineering (REQ) from a software agent point of view via a JADE platform. It describes the main areas of RE practice, tools for requirement management, conflict between goals of different agents and highlights some key open research issues for the future. The paper addresses how to model requirements engineering problem model using a proposed Prioritization Agent matrix Scheduling (PAMS) as a use-case example.

Research paper thumbnail of Applying software complexity metrics to program maintenance

Research paper thumbnail of GUI Test Automation Framework

GUI Test Automation Framework

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.

Research paper thumbnail of Handling the incoming freshman and transfer students in computer science

Handling the incoming freshman and transfer students in computer science

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

Research paper thumbnail of A New Coupling Metric: Blending Structural and Semantic Relations

Software Engineering / 811: Parallel and Distributed Computing and Networks / 816: Artificial Intelligence and Applications, 2014

Coupling metrics represent the relationships between source code artifacts in software systems. C... more Coupling metrics represent the relationships between source code artifacts in software systems. Coupling is considered an important concept in measuring design quality and maintainability. Many coupling measures have been proposed in the context of object-oriented systems. A popular way to measure coupling is through structural properties and static code analysis. Another way to measure coupling is through semantic information encoded in identifiers and comments. However, there is still much to be understood about 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 both structural and semantic relationships between methods and classes. A study is performed on open source software systems to compare the new metric with existing structural and semantic coupling metrics. The study shows that the new metric captures new dimensions of coupling, which are not captured by existing coupling metrics. This paper investigates the use of the new proposed coupling metrics during change impact analysis. By comparing our new metric to other coupling metrics, we show that our new metric is a better predictor for classes impacted by changes.

Research paper thumbnail of Software Internationalization: Crosscutting Concerns across the Development Lifecycle

Software Internationalization: Crosscutting Concerns across the Development Lifecycle

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...

Research paper thumbnail of Software Internationalization: Testing Methods for Bidirectional Software

Software Internationalization: Testing Methods for Bidirectional Software

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. ...

Research paper thumbnail of QA/Testing Bidirectional Languages Software: Issues and Challenges

QA/Testing Bidirectional Languages Software: Issues and Challenges

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

Research paper thumbnail of The internet, intranets, and the AI renaissance

Research paper thumbnail of Test Case Selection Based on a Spectrum of Complexity Metrics

Quality continues to be a significant issue for software, and testing is a key activity in ensuri... more Quality continues to be a significant issue for software, and testing is a key activity in ensuring the quality of software. Unfortunately, since testing usually was near the end of software development, it is often rushed and frequently not done well. Thus, this paper suggests an approach that can address some of these issues and examine ways to reduce the software testing costs by selecting test cases based on a Spectrum of Complexity Metrics (SCM). We have developed a comprehensive taxonomy of product metrics based on two dimensions, the product level (class, method, statement) and the characteristics of the product. To evaluate these metrics, we have developed a tool which uses these metrics to target test cases. This tool enables us to identify three sample metric combinations. We have conducted a series of experiments based on three applications. The combinations of metrics were applied to test case selection on each of the applications. To investigate the efficiency of our test case selection, we have created a significant number of mutants using MuJava, and a series of a significant number of seeded errors inserted independently by a third party. Our experiments show that our test case selections discover at least 60 % of seeded errors and mutants. For further evaluation, we compared our approach to the boundary value analysis. Our experiments indicate that our testing approach is highly effective in the detection of the mutants as well as the seeded errors.

Research paper thumbnail of Dealing with dates: solutions for the Year 2000

Research paper thumbnail of A theory of small program complexity

A theory of small program complexity

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.

Research paper thumbnail of The user-definable interface project

The user-definable interface project

ACM SIGSOFT Software Engineering Notes, 1984

Research paper thumbnail of Applying Software Design Metrics to Developer Story: A Supervised Machine Learning Analysis

Applying Software Design Metrics to Developer Story: A Supervised Machine Learning Analysis

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.

Research paper thumbnail of Experimental Evaluation of Static Source Code Analysis Tools

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.

Research paper thumbnail of Bio-Ethanol Reformer with HT-PEM Fuel Cell for Residential Combined Heat and Power Generation

Bio-Ethanol Reformer with HT-PEM Fuel Cell for Residential Combined Heat and Power Generation

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 ...

Research paper thumbnail of A suggested course in introductory computer programming

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.

Research paper thumbnail of The impact of global software cultural and linguistic aspects on Global Software Development process (GSD): Issues and challenges

The impact of global software cultural and linguistic aspects on Global Software Development process (GSD): Issues and challenges

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

Research paper thumbnail of Towards Test Focus Selection for Integration Testing Using Method Level Software Metrics

2013 10th International Conference on Information Technology: New Generations, 2013

The aim of integration testing is to uncover errors in the interactions between system modules. H... more The aim of integration testing is to uncover errors in the interactions between system modules. However, it is generally impossible to test all the interactions between modules because of time and cost constraints. Thus, it is important to focus the testing on the connections presumed to be more errorprone. The goal of this research is to guide quality assurance team wherein a software system to focus when they perform integration testing to save time and resources. In this work, we use method level metrics that capture both dependencies and internal complexity of methods. In addition, we build a tool that calculates the metrics automatically. We also propose an approach to select the test focus in integration testing. The main goal is to reduce the number of test cases needed while still detecting at least 80% of integration errors. We conducted an experimental study on several Java applications taken from different domains. Error seeding technique have been used for evaluation. The experimental results showed that our proposed approach is very effective for selecting the test focus in integration testing. It reduces considerably the number of required test cases while at the same time detects at least 80% of integration errors.

Research paper thumbnail of Empirical Evaluation of a New Coupling Metric: Combining Structural and Semantic Coupling

Empirical Evaluation of a New Coupling Metric: Combining Structural and Semantic Coupling

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).

Research paper thumbnail of Understanding requirement engineering (REQ) from a software agent modeling perspective

2010 IEEE International Conference on Software Engineering and Service Sciences, 2010

The requirements for modeling a software product are growing in size and increasingly getting com... more The requirements for modeling a software product are growing in size and increasingly getting complex, interdependent and to understand them requires the availability of simple representational requirement engineering tools and measures to evaluate them. Requirements engineering still remains a key factor to guarantee stakeholders involvement, facilitating their understanding and participation. The paper presents an overview of agent based modeling requirements engineering (REQ) from a software agent point of view via a JADE platform. It describes the main areas of RE practice, tools for requirement management, conflict between goals of different agents and highlights some key open research issues for the future. The paper addresses how to model requirements engineering problem model using a proposed Prioritization Agent matrix Scheduling (PAMS) as a use-case example.

Research paper thumbnail of Applying software complexity metrics to program maintenance

Research paper thumbnail of GUI Test Automation Framework

GUI Test Automation Framework

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.

Research paper thumbnail of Handling the incoming freshman and transfer students in computer science

Handling the incoming freshman and transfer students in computer science

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

Research paper thumbnail of A New Coupling Metric: Blending Structural and Semantic Relations

Software Engineering / 811: Parallel and Distributed Computing and Networks / 816: Artificial Intelligence and Applications, 2014

Coupling metrics represent the relationships between source code artifacts in software systems. C... more Coupling metrics represent the relationships between source code artifacts in software systems. Coupling is considered an important concept in measuring design quality and maintainability. Many coupling measures have been proposed in the context of object-oriented systems. A popular way to measure coupling is through structural properties and static code analysis. Another way to measure coupling is through semantic information encoded in identifiers and comments. However, there is still much to be understood about 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 both structural and semantic relationships between methods and classes. A study is performed on open source software systems to compare the new metric with existing structural and semantic coupling metrics. The study shows that the new metric captures new dimensions of coupling, which are not captured by existing coupling metrics. This paper investigates the use of the new proposed coupling metrics during change impact analysis. By comparing our new metric to other coupling metrics, we show that our new metric is a better predictor for classes impacted by changes.

Research paper thumbnail of Software Internationalization: Crosscutting Concerns across the Development Lifecycle

Software Internationalization: Crosscutting Concerns across the Development Lifecycle

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...

Research paper thumbnail of Software Internationalization: Testing Methods for Bidirectional Software

Software Internationalization: Testing Methods for Bidirectional Software

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. ...

Research paper thumbnail of QA/Testing Bidirectional Languages Software: Issues and Challenges

QA/Testing Bidirectional Languages Software: Issues and Challenges

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

Research paper thumbnail of The internet, intranets, and the AI renaissance

Research paper thumbnail of Test Case Selection Based on a Spectrum of Complexity Metrics

Quality continues to be a significant issue for software, and testing is a key activity in ensuri... more Quality continues to be a significant issue for software, and testing is a key activity in ensuring the quality of software. Unfortunately, since testing usually was near the end of software development, it is often rushed and frequently not done well. Thus, this paper suggests an approach that can address some of these issues and examine ways to reduce the software testing costs by selecting test cases based on a Spectrum of Complexity Metrics (SCM). We have developed a comprehensive taxonomy of product metrics based on two dimensions, the product level (class, method, statement) and the characteristics of the product. To evaluate these metrics, we have developed a tool which uses these metrics to target test cases. This tool enables us to identify three sample metric combinations. We have conducted a series of experiments based on three applications. The combinations of metrics were applied to test case selection on each of the applications. To investigate the efficiency of our test case selection, we have created a significant number of mutants using MuJava, and a series of a significant number of seeded errors inserted independently by a third party. Our experiments show that our test case selections discover at least 60 % of seeded errors and mutants. For further evaluation, we compared our approach to the boundary value analysis. Our experiments indicate that our testing approach is highly effective in the detection of the mutants as well as the seeded errors.