34,719 research outputs found
An Introduction to Slice-Based Cohesion and Coupling Metrics
This report provides an overview of slice-based software metrics. It brings together information about the development of the metrics from Weiserâs original idea that program slices may be used in the measurement of program complexity, with alternative slice-based measures proposed by other researchers. In particular, it details two aspects of slice-based metric calculation not covered elsewhere in the literature: output variables and worked examples of the calculations. First, output variables are explained, their use explored and standard reference terms and usage proposed. Calculating slice-based metrics requires a clear understanding of âoutput variablesâ because they form the basis for extracting the program slices on which the calculations depend. This report includes a survey of the variation in the definition of output variables used by different research groups and suggests standard terms of reference for these variables. Our study identifies four elements which are combined in the definition of output variables. These are the function return value, modified global variables, modified reference parameters and variables printed or otherwise output by the module. Second, slice-based metric calculations are explained with the aid of worked examples, to assist newcomers to the field. Step-by-step calculations of slice-based cohesion and coupling metrics based on the vertices output by the static analysis tool CodeSurfer (R) are presented and compared with line-based calculations
Using Counts as Heuristics for the Analysis of Static Models
The upstream activities of software development are often viewed as both the most
important, in terms of cost, and the yet the least understood, and most problematic, particularly in terms of satisfying customer requirements. Business process modelling is
one solution that is being increasingly used in conjunction with traditional software
development, often feeding in to requirements and analysis activities. In addition,
research in Systems Engineering for Business Process Change, highlights the importance
of modelling business processes in evolving and maintaining the legacy systems that
support those processes. However, the major use of business process modelling, is to
attempt to restructure the business process, in order to improve some given aspect, e.g.,
cost or time. This restructuring may be seen either as separate activity or as a pre-cursor
to the development of systems to support the new or improved process. Hence, the
analysis of these business models is vital to the improvement of the process, and as a
consequence to the development of supporting software systems. Supporting this analysis
is the focus of this paper.
Business processes are typically described with static (diagrammatic) models. This paper
proposes the use of measures (counts) to aid analysis and comparison of these static
process descriptions. The proposition is illustrated by showing how measures can be
applied to a commonly used process-modelling notation, Role Activity Diagrams (RADs).
Heuristics for RADs are described and measures suggested which support those
heuristics. An example process is used to show how a coupling measure can be used to
highlight features in RADs useful to the process modeller.
To fully illustrate the proposition the paper describes and applies a framework for the
theoretical validation of the coupling measure. An empirical evaluation follows. This is
illustrated by two case studies; the first based on the bidding process of a large
telecommunications systems supplier, and the second a study of ten prototyping processes
across a number of organisations.
These studies found that roles of the same type exhibited similar levels of coupling across
processes. Where roles did not adhere to tentative threshold values, further investigation
revealed unusual circumstances or hidden behaviour. Notably, study of the prototyping
roles, which exhibited the greatest variation in coupling, found that coupling was highly
correlated with the size of the development team. This suggests that prototyping in large
projects had a different process to that for small projects, using more mechanisms for
communication. Hence, the empirical studies support the view that counts (measures)
may be useful in the analysis of static process models
An Empirical Study of a Repeatable Method for Reengineering Procedural Software Systems to Object- Oriented Systems
This paper describes a repeatable method for reengineering a procedural
system to an object-oriented system. The method uses coupling metrics to assist a domain
expert in identifying candidate objects. An application of the method to a simple program
is given, and the effectiveness of the various coupling metrics are discussed. We perform
a detailed comparison of our repeatable method with an ad hoc, manual reengineering
effort based on the same procedural program. The repeatable method was found to be
effective for identifying objects. It produced code that was much smaller, more efficient,
and passed more regression tests than the ad hoc method. Analysis of object-oriented
metrics indicated both simpler code and less variability among classes for the repeatable
method
A Model for Measuring Cognitive Complexity of Software
This paper proposes a model for calculating cognitive complexity of a code. This model considers all major factors responsible for (cognitive) complexity. The practical applicability of the measure is evaluated through experimentation, test cases and comparative study
An integrated approach to indoor contaminant modelling
Air pollutants are those chemicals that are not generally present in the atmosphere because of natural causes but are disseminated into the air by human activity. In most parts of Europe, outdoor pollutants are principally the products of combustion from space heating, power generation, chemical industry waste, or from motor vehicle traffic (McGinlay 1997). Indoor air environments contain a myriad of inorganic and organic gases and vapors typically in trace (parts-per-billion) quantities. The chemical composition of air varies widely between particular locations as well as between measurements taken at different times for the same location. The nature of these variations is such that it is difficult to definitively characterize a typical indoor air environment with respect to specific contaminants present and concentration levels. A large number of air pollutants have known or suspected harmful effects that can be manifested on plant or animal life and/or the environment. Pollutants may not only prove a problem in the immediate vicinity of their emission, but they can travel long distances and react with other species present in the atmosphere to produce secondary pollutants (Weschler 2004)
Should I Bug You? Identifying Domain Experts in Software Projects Using Code Complexity Metrics
In any sufficiently complex software system there are experts, having a
deeper understanding of parts of the system than others. However, it is not
always clear who these experts are and which particular parts of the system
they can provide help with. We propose a framework to elicit the expertise of
developers and recommend experts by analyzing complexity measures over time.
Furthermore, teams can detect those parts of the software for which currently
no, or only few experts exist and take preventive actions to keep the
collective code knowledge and ownership high. We employed the developed
approach at a medium-sized company. The results were evaluated with a survey,
comparing the perceived and the computed expertise of developers. We show that
aggregated code metrics can be used to identify experts for different software
components. The identified experts were rated as acceptable candidates by
developers in over 90% of all cases
Empirical exploration of air traffic and human dynamics in terminal airspaces
Air traffic is widely known as a complex, task-critical techno-social system,
with numerous interactions between airspace, procedures, aircraft and air
traffic controllers. In order to develop and deploy high-level operational
concepts and automation systems scientifically and effectively, it is essential
to conduct an in-depth investigation on the intrinsic traffic-human dynamics
and characteristics, which is not widely seen in the literature. To fill this
gap, we propose a multi-layer network to model and analyze air traffic systems.
A Route-based Airspace Network (RAN) and Flight Trajectory Network (FTN)
encapsulate critical physical and operational characteristics; an Integrated
Flow-Driven Network (IFDN) and Interrelated Conflict-Communication Network
(ICCN) are formulated to represent air traffic flow transmissions and
intervention from air traffic controllers, respectively. Furthermore, a set of
analytical metrics including network variables, complex network attributes,
controllers' cognitive complexity, and chaotic metrics are introduced and
applied in a case study of Guangzhou terminal airspace. Empirical results show
the existence of fundamental diagram and macroscopic fundamental diagram at the
route, sector and terminal levels. Moreover, the dynamics and underlying
mechanisms of "ATCOs-flow" interactions are revealed and interpreted by
adaptive meta-cognition strategies based on network analysis of the ICCN.
Finally, at the system level, chaos is identified in conflict system and human
behavioral system when traffic switch to the semi-stable or congested phase.
This study offers analytical tools for understanding the complex human-flow
interactions at potentially a broad range of air traffic systems, and underpins
future developments and automation of intelligent air traffic management
systems.Comment: 30 pages, 28 figures, currently under revie
- âŠ