2,229 research outputs found
A heuristic-based approach to code-smell detection
Encapsulation and data hiding are central tenets of the object oriented paradigm. Deciding what data and behaviour to form into a class and where to draw the line between its public and private details can make the difference between a class that is an understandable, flexible and reusable abstraction and one which is not. This decision is a difficult one and may easily result in poor encapsulation which can then have serious implications for a number of system qualities. It is often hard to identify such encapsulation problems within large software systems until they cause a maintenance problem (which is usually too late) and attempting to perform such analysis manually can also be tedious and error prone. Two of the common encapsulation problems that can arise as a consequence of this decomposition process are data classes and god classes. Typically, these two problems occur together – data classes are lacking in functionality that has typically been sucked into an over-complicated and domineering god class. This paper describes the architecture of a tool which automatically detects data and god classes that has been developed as a plug-in for the Eclipse IDE. The technique has been evaluated in a controlled study on two large open source systems which compare the tool results to similar work by Marinescu, who employs a metrics-based approach to detecting such features. The study provides some valuable insights into the strengths and weaknesses of the two approache
Information Systems Skills Differences between High-Wage and Low-Wage Regions: Implications for Global Sourcing
Developing Information Systems (IS) skills for a company’s workforce has always been challenging, but global sourcing growth has caused the determination of needed IS skills to be more complex. The increased use of outsourcing to an IS service provider and from high-wage regions to low-wage regions has affected what IS skills are required globally and how to distribute the workforce to meet these needs. To understand what skills are needed in locations that seek and those that provide outsourcing, we surveyed IS service provider managers in global locations. Results from 126 reporting units provide empirical evidence that provider units in low-wage regions value technical skills more than those in high-wage regions. Despite the emphasis on commodity skills in low-wage areas, high- and low-wage providers value project management skills. Low-wage regions note global and virtual teamwork more than high-wage regions do. The mix of skills and the variation by region have implications for domestic and offshore sourcing. Service providers can vary their staffing models in global regions which has consequences for recruiting, corporate training, and curriculum
On the Effect of Semantically Enriched Context Models on Software Modularization
Many of the existing approaches for program comprehension rely on the
linguistic information found in source code, such as identifier names and
comments. Semantic clustering is one such technique for modularization of the
system that relies on the informal semantics of the program, encoded in the
vocabulary used in the source code. Treating the source code as a collection of
tokens loses the semantic information embedded within the identifiers. We try
to overcome this problem by introducing context models for source code
identifiers to obtain a semantic kernel, which can be used for both deriving
the topics that run through the system as well as their clustering. In the
first model, we abstract an identifier to its type representation and build on
this notion of context to construct contextual vector representation of the
source code. The second notion of context is defined based on the flow of data
between identifiers to represent a module as a dependency graph where the nodes
correspond to identifiers and the edges represent the data dependencies between
pairs of identifiers. We have applied our approach to 10 medium-sized open
source Java projects, and show that by introducing contexts for identifiers,
the quality of the modularization of the software systems is improved. Both of
the context models give results that are superior to the plain vector
representation of documents. In some cases, the authoritativeness of
decompositions is improved by 67%. Furthermore, a more detailed evaluation of
our approach on JEdit, an open source editor, demonstrates that inferred topics
through performing topic analysis on the contextual representations are more
meaningful compared to the plain representation of the documents. The proposed
approach in introducing a context model for source code identifiers paves the
way for building tools that support developers in program comprehension tasks
such as application and domain concept location, software modularization and
topic analysis
Coalition based approach for shop floor agility – a multiagent approach
Dissertation submitted for a PhD degree in Electrical Engineering, speciality of Robotics and Integrated Manufacturing from the Universidade Nova de Lisboa, Faculdade de Ciências e TecnologiaThis thesis addresses the problem of shop floor agility. In order to cope with the disturbances and uncertainties that characterise the current business scenarios faced by manufacturing companies, the
capability of their shop floors needs to be improved quickly, such that these shop floors may be adapted, changed or become easily modifiable (shop floor reengineering).
One of the critical elements in any shop floor reengineering process is the way the control/supervision architecture is changed or modified to accommodate for the new processes and equipment. This thesis,
therefore, proposes an architecture to support the fast adaptation or changes in the control/supervision architecture. This architecture postulates that manufacturing systems are no more than compositions of
modularised manufacturing components whose interactions when aggregated are governed by
contractual mechanisms that favour configuration over reprogramming.
A multiagent based reference architecture called Coalition Based Approach for Shop floor Agility – CoBASA, was created to support fast adaptation and changes of shop floor control architectures with minimal effort. The coalitions are composed of agentified manufacturing components (modules), whose relationships within the coalitions are governed by contracts that are configured whenever a coalition is established. Creating and changing a coalition do not involve programming effort because it only requires changes to the contract that regulates it
Business rules based legacy system evolution towards service-oriented architecture.
Enterprises can be empowered to live up to the potential of becoming dynamic, agile and real-time. Service orientation is emerging from the amalgamation of a number of key business, technology and cultural developments. Three essential trends in particular are coming together to create a new revolutionary breed of enterprise, the service-oriented enterprise (SOE): (1) the continuous performance management of the enterprise; (2) the emergence of business process management; and (3) advances in the standards-based service-oriented infrastructures.
This thesis focuses on this emerging three-layered architecture that builds on a service-oriented architecture framework, with a process layer that brings technology and business together, and a corporate performance layer that continually monitors and improves the performance indicators of global enterprises provides a novel framework for the business context in which to apply the important technical idea of service orientation and moves it from being an interesting tool for engineers to a vehicle for business managers to fundamentally improve their businesses
Same Words, Different Meanings: Are Basic IS/IT Concepts Our Self-Imposed Tower Of Babel?
This article began as a response to an exchange of letters concerning the need for more vs. less user participation in IS projects. It grew into an exploration of whether and how ten 1999 CAIS articles use basic IS/IT terms with different meanings and connotations related to the different perspectives of their authors. The article characterizes differences between an IT perspective and a business perspective and categorizes the ten articles accordingly. It then presents numerous quotes from the articles to illustrate differences across the articles in terms of their use of eight basic concepts: system, user, stakeholder, IS project, implementation, reengineering, requirements, and solution. To help understand the differences and their significance, the article makes extensive use of distinctions between work systems, information systems, and projects. When applied to the articles these distinctions raise questions such as whether the term system refers to a work system, information system, or software, and whether the term user refers to hands-on users, people who receive information, or managers whose organizations use information systems. An underlying theme throughout is that the lack of conscious attention to the meaning of basic terms and points of reference may be a significant impediment to effective communication and to our ability to make sense out of research findings and even journalistic anecdotes about what seemed to work or not work in particular situations. NOTE: THIS ARTICLE IS A FOLLOW UP TO ALTER\u27S ARTICLE 13 IN VOLUME 1 OF CAIS ON THE THEORY OF I
- …