Free Essay

Analyzing Anti-Pattern Detection

In:

Submitted By phambir
Words 4918
Pages 20
Analyzing Anti-pattern Detection
Southern Methodist University

Abstract
A design pattern is a well-understood, reusable design fragment used to solve a commonly occurring problem in software development. Whereas, antipatterns are common design pitfalls that provide poor solutions to recurring design problems. Developers may unwillingly introduce anti-patterns in their software systems due to time pressure, lack of skills, communication or understanding. Anti-patterns have a negative effect on the comprehension and maintainability of a software system, and thus, understanding and detecting Anti-patterns provides the knowledge to prevent or recover from them.
This paper discusses the anti-patterns of object oriented design, their symptoms, and consequences and issues related to their detection. This study also discusses some of the tools and approaches that are currently being developed and used in the software industry to detect anti-pattern. Towards the end, this paper also highlights some of the problems that are still open, to drive future research direction in this field.

1. Introduction
Now-a-days, most of the software projects deal with large number of components that make the software more complicated and hard for novice designers to design. A design pattern is one of the most simple and powerful techniques used to improve the software design. Unfortunately, due to a number of market/customers constraints, anti-patterns may get introduced into the software systems and deteriorate its software quality. Hence, anti-patterns need to be carefully detected and monitored and, consequently, refactoring operations should be planned and performed to deal with them.
In this paper, we will focus to present the different types of anti-patterns in object-oriented design, their symptoms and consequences, and the challenges and issues in detecting these anti-patterns. In a positive sense, Anti-patterns provide real-world experience in recognizing recurring problems in the software industry and provide the tools to enable you to recognize these problems and to determine their underlying causes. It

also helps us to take protective measures at several levels to improve the developing of applications, designing of software and the effective management of software projects. We would support this hypothesis by an empirical evaluation. By analyzing these approaches, we will also discuss some of the tools that are currently being used to detect anti-patterns. In addition to this, we will also discuss the issues that are still open, to drive future direction in this field.

2. Related Work
Several approaches based on different techniques were proposed to detect design defects in object oriented design. Rahma et al. used quality metrics to identify antipatterns in UM. Langelier et al. proposed a visual approach to detect anti-patterns. Kessentini et al proposed an automated approach that was based on detection rules for detecting design defects in software source code. Xue Qing proposed an approach for UML specification of Object oriented anti-patterns.
Stoianov and Sora proposed a logic based detection method using Prolog technique. Abdou Maiga proposed use of Support Vector Machine for anti-pattern detection. A number of tools like AnalystAJ, PMDm and Hammurapi were developed to identify antipatterns.
The research work carried out so far has some amount of limitation. They have limited precision and recall and require extensive knowledge of anti-patterns.
Also, they cannot be applied to subsets of systems.

3. Object-Oriented Design Anti-patterns
It is essential to have a good software structure for system extension and maintenance. Software development is a complex activity, and thus, the implemented structure of systems tends to stray from the planned structure as determined by architecture, analysis and design.
The good part about anti-patterns is that they can be used to identify the common problems and negative effects of the design solution. They also show how to prevent or resolve these problems. Let us discuss a few

types of anti-patterns that we have identified in object oriented design. [2]
1) Anemic Domain Model:
This anti-pattern occurs when the software domain objects contain little or no business logic and when data and behavior are separated in the domain model. The fundamental idea of objectoriented design is to combine data and process together. In contrast, the anemic domain model implements the business logic in separate classes which transforms the state of the domain objects. One solution to this design problem is to combine attributes and processes in one class.
2) Boat Anchor:
A Boat Anchor is a piece of hardware or software in the system that serves no useful purpose [5]. This causes many problems for developers who attempt to maintain the program that contains the obsolete code. The programmers have a hard time in differentiating the working code from the obsolete one.
3) The Blob:
It is a procedural-style design that leads to one object with a lion’s share of responsibilities, whereas other objects only hold data or perform simple tasks or processes. [5] [11]
4) BaseBean:
It is a utility class from which concrete entities have been derived via sub-classing. A class should not inherit from another class just because it contains a function needed in the subclass, and the delegation method should be used instead.
5) Call super:
This anti-pattern occurs when a super class requires subclasses to call an overridden method. In this design pattern, a particular class stipulates that in a derived subclass, the user is required to override method and call back the overridden function itself at a particular point.
6) Spaghetti Code:
This type of anti-pattern occurs when you have an ad-hoc software structure that makes it

difficult to extend and optimize code. It consists of classes without any structure, that have long methods without parameters, and that utilize the global variables for processing [5] [1] [10].
7) Circular Dependency:
This type of ant-pattern occurs when two or more objects or modules, directly or indirectly depend on each other. They are also known as mutually recursive modules. Software engineers may inadvertently introduce circular dependencies if given a very large and complex software design [8]. This anti-pattern can be found and removed by using tools used to analyze software or by using the observer pattern. [14]
8) Cut and paste programming:
This type of anti-pattern occurs when code is reused by copying the source code and simply pasting it to fit with the codebase [5]. This might cause significant maintenance issues. To avoid this anti-pattern, use alternative forms of reuse like black-box reuse. This would reduce maintenance issues by having common source code, testing and documentation. [13]
9) Functional Decomposition:
This anti-pattern occurs when experienced, nonobject-oriented developers design and implement an application in an object-oriented language. The resulting code resembles a structural language like PASCAL, FORTRAN in a class structure. Translating these into objectoriented architecture causes problems. [1] [5]
10) Lava Flow:
This type of anti-pattern occurs when a code that is written under sub-optimal conditions is frozen and put into production while it is still in a developmental state. This is similar to a Lava
Flow with hardening globules of rocky material.
The refactored solution includes a configuration management process that removes dead code and refactors design to increase code quality. [6]
[7] [12]
11) Poltergeists:
These depict type of classes that have very limited responsibilities in the system function

and have very brief life cycle. Poltergeists often start processes for other objects. They are one of the most unwanted anti-patterns because they consume and waste unnecessary resources every time they appear. [5][7][14][17]
12) Golden Hammer:
This anti-pattern is based on the assumption that an architecture, a solution or a software tool is the best solution for every software problem or project. The common notion is that if you have learned to use a tool in one context (golden hammer), now that you are so proud of having learned how to use this complicated tool, all of a sudden you see golden nails everywhere. [18]

4. Symptoms and Consequences of antipatterns
In this section, we will describe some symptoms and consequences of the anti-patterns defined above.
The basic symptom of an Anemic Domain Model anti-pattern is that at first glance, it seems like the real thing. There might be a number of objects that are named after the nouns in the domain space, and these objects might be connected with the rich relationships and structure that true domains have. However, the real catch comes when you look at their behavior and realize that there is hardly any behavior on these objects.
The most common symptoms and consequences of having a Boat Anchor anti-pattern in the code are getting longer compile times and having the risk that programmers may accidentally link working code into the dead code, inadvertently resurrecting it. Also, even if a programmer comes across a dead code, he might waste valuable time before he realizes that the code that he is working with is never executed and thus is not part of the problem he is trying to solve.
The common symptoms of having Blob anti-pattern in a code are having a single class with many attributes and operations, having a single controller class that has simple, data-object classes associated with it, lack of object-oriented design, or having a migrated legacy design. The Blob class is usually too complex for reuse and testing. Also, since it uses excessive resources even for simple operations, it may be an expensive option to load into memory.
The main cause behind BaseBean anti-pattern is when a software developer confuses an IS-A relationship, with a HAS-A relationship. This can be used as a base in detecting this anti-pattern. Call Super is pretty easy to spot. The documentation asks the developers that in order to do your own thing, you

should just sub-class the process method. However, it is important to remember to start your method with a call to the super class. Thus, whenever you have to remember to do something every time, that’s a sign of a bad API.
There are many symptoms and consequences of using a Spaghetti anti-pattern in the code. In this antipattern, the methods are very process-oriented. Most of the times, objects are named as processes and a minimal relationship exists between objects. Also, it becomes easy to predict the pattern of use of objects. In this design pattern, many object methods have no parameters and utilize class or global variables for processing. Code becomes difficult to reuse. In some cases, code is never considered for reuse.
Circular dependencies can cause many unwanted effects in a software program like the tight coupling of the mutually dependent modules which makes separate re-use of a single module impossible. It might also cause a domino effect when a small local change in one module spreads into other modules and has unwanted global effects. Also, this anti-pattern may cause memory leaks. Due to cut-and-paste-programming, the same software bug might get duplicated and might reoccur throughout the software, despite many local fixes in the code. There may be unnecessary increase in the lines of code without adding overall productivity or without the expected reduction in the maintenance costs associated with other forms of reuse. Code is considered as selfdocumenting and can be re-used with a minimum effort.
The major consequence of using this anti-pattern is that since the same software bug occurs throughout the code, it becomes difficult to locate and fix all instances of a particular mistake.
The most obvious symptoms of Functional
Decomposition may be the presence of classes with function names such as Calculate_Interest or
Display_Table. There might be no way to clearly document or even explain how the system works that may lead to class models that absolutely make no sense.
Also, this anti-pattern might contain all class attributes that are private and are only used inside the class. All the classes used in this design pattern may only have a single action such as a function and an incredibly degenerate architecture that completely misses the point of object-oriented architecture. This anti-pattern has no leveraging of object-oriented principles such as inheritance and polymorphism. Thus, the use of this design pattern might lead to frustration and hopelessness on the part of testers.
Frequent, unjustifiable variables and code fragments in the system, whole blocks of commented code with no documentation may indicate the presence of a Lava
Flow anti-pattern. The software contains undocumented

complex, important-looking functions, classes or segments that do not clearly relate to the system architecture. Lots of “in flux” or “to be replaced” code areas, unused code just left in are additional symptoms of Lava Flow anti-pattern. This anti-pattern might have some serious consequences. If the process that leads to
Lava Flow is not checked, the problem might grow exponentially as succeeding developers might unknowingly introduce new flaws as they try to work around the original ones.
Poltergeists have unnecessary and redundant navigation paths, transient associations and stateless classes along with the occurrence of temporary and short duration objects or classes. Due to the transient nature of this anti-pattern, it is extremely difficult to understand and analyze such a system and hence impossible to reuse. [17]
When identical tools and products are used for wide array of conceptually diverse products, or when solutions have inferior performance, scalability etc. when compared to other solutions in the industry, they indicate the presence of the Golden Hammer antipattern. The developers become isolated from the industry and demonstrate a lack of knowledge and experience with alternative approaches. The main consequence of this anti-pattern is that the requirements are not fully met, in an attempt to leverage existing investment. As a result, the design and system architecture is dictated by existing products, and the new software development relies completely on a specific vendor product or technology [18].

and other technologies in high-risk areas to enable minimal software rework.
One solution to resolve the problem of Blob antipattern is by refactoring. The main principle used behind this solution is to move behavior away from the Blob by encapsulating data objects in a way that makes these objects more capable and the Blob less complex. We use the following steps in refactoring Blob.
Consider a library system architecture diagram represented with a Bob Class called Library as shown in figure 1.

Figure 1: Library system architecture diagram [11]

1.

Identify or categorize related attributes and operations according to contracts. As shown in figure 2, we would group operations related to

5. Anti-pattern refactoring solutions or approaches used currently
As discussed in the previous sections, the structure of a software plays an important role with respect to system extension and maintenance. One solution to improve the software structure is to use software refactoring. The resulting structure does not have to resemble the original planned structure.
As the programmers learn constraints and approaches that modify the context of the coded solutions, the structure of the software changes. Thus, when used properly, refactoring can be considered as a natural activity in the programming process. Let’s discuss a few refactored solutions that are used to improve the structure of the software in anti-patterns.
To deal with Boat Anchor anti-pattern, the correct solution is to remove them from the codebase and to place them in a separate location, so that they can be referred to if necessary, but will not be compiled or mistaken as working code. Also, technical backups should be identified for most infrastructure technologies

Figure 2: Identified cohesive set of operations and attributes [11] catalog management like Sort_Catalog,,
Search_Catalog, and also identify operations and attributes related to individual items like Print_Item,
Delete_Item, etc.

2.

Find “natural homes” for these contract-based collections of functionality and then migrate them there. As shown in figure 3, we gather related operations and migrate them from
Library class to Catalog class, and from Library class to Item class, thus making Catalog and
Item classes more than simple encapsulated data tables that result in a better object-oriented design. be implemented by the subclasses and have the original method call that method.
The steps involved in eliminating the Spaghetti Code and using a refactored solution are as follows:
 Refactor to generalize: An abstract superclass is created:
1. Subclass function signatures are made compatible 2. Function signatures to the superclass are added 3. Function bodies and variables are made compatible 4. Common code is migrated to the superclass
 Refactor to specialize: Conditionals are simplified: 1. A subclass with matching invariant is created for each condition
2. The code is coped into the subclass
3. Code is simplified based upon the invariant
4. The superclass constructor is specialized


Figure 3: Operations to be migrated to the catalog class [11]

3.

Finally, remove all transient associations, replacing them as appropriate with type specifiers to attributes and operations arguments. As shown in figure 4, we remove the
Item class that is far-coupled to the Library class and migrate Items to Catalogs.

Figure 4: Removing all transient associations [11]

To avoid BaseBean anti-pattern, the inherited functionality should be provided via delegation method.
Delegation (HAS-A relationship) should be used to obtain the business logic or data structure that is required. If applicable, in some cases, a Java utility class containing only static methods can be created to contain the necessary functionality.
One approach to solve the Call Super anti-pattern issue is to use the template method pattern where the superclass includes a purely abstract method that must

Refactor to combine: Aggregations and components are captured:
Type A. Members from an aggregate class are moved to a component class
Type B. Members from a component class are moved to an aggregate class
Type C. Inheritance is converted to aggregation

To avoid Circular Dependency anti-patterns, the developers should use tools to analyze software and to find unwanted circular dependencies. Generally, the circular dependencies are introduced by inexperienced programmers who need to implement some kind of callback functions. However, such unnecessary circular dependencies are avoided by experienced programmers by applying design patterns like observer pattern.
The most effective solution for Cut and Paste
Programming anti-pattern is to refactor the code base into reusable libraries or components that use Black Box reuse method. Black-box reuse reduces maintenance issues by having a common source code, testing and documentation for multiple reuses.

Since there is no direct way to refactor, we redesign using Object-Oriented principles to eliminate
Functional Decomposition. Let us discuss the solution approach used. First, an analysis model is defined for the software to explain the critical features of the software from the user’s point of view. Next, a design model is formulated that incorporates the essential features of the existing system. Here, the focus is to establish a basis for explaining the system as much as possible rather than improving the model. Ideally, the design model will justify or at least rationalize, most of the software modules. The new design model provides insight as to how the overall system fits together.
Finally, examine the design and find similar subsystems. Those would be our reuse candidates. Now, the program can be maintained by refactoring the code base to reuse code between similar subsystems.
The only sure-fire way to prevent Lava Flow antipattern is by ensuring sound architecture is preceding the production code development. This so-called sound architecture must be backed up by a configuration management process that ensures architectural compliance and accommodates the changing requirements (“mission creeps”). If Lava Flow antipattern already exists in the code, then architecture changes should be avoided during active development.
Thus, the management must postpone development until a clear architecture is defined and disseminated to developers. System discovery activities should be used while defining the architecture since it is required to locate the components that are really used and necessary to the system. It also identifies those lines of code that can be safely deleted. However, when suspected dead code is eliminated, bugs could be introduced. The cause of the error should be fully understood to immediately fix the symptoms. To avoid Lava Flow, it is important to establish system-level software interfaces that are stable, well-defined, and clearly documented. Tools that can are used to assist in configuration management are
Source-Code Control System (SCCS).
Poltergeists can be eliminated from the system by removing the class hierarchy altogether as suggested by
Ghostbusters. However, after their removal, the functionality that was provided by the poltergeists must also be replaced. The following steps illustrate the
Poltergeists Refactored Solution:
 Refactor to eliminate the irrelevant classes:
This can be achieved by deleting the external classes (classes that outside the system) and by deleting the classes with no domain relevance.
 Refactor to eliminate the transient “data classes”  Refactor to eliminate “operation classes”



Refactor other classes with short lifecycles or few responsibilities:
This can be achieved by moving into collaborating classes and regrouping into cohesive larger classes.
The key aspect is to move the controlling actions initially encapsulate in the Poltergeist into the related classes that they are invoked. Consider the Peach
Canning example shown in figure 5.
Figure 5: Peach_Canner_Controller is a Poltergeist [13]

As shown in Figure 5, the Peach_Canner_Controller class has redundant navigation paths to all other classes in the system, all of its associations are transient and it has no state. Also, it is a temporary, short-duration class that pops into existence only to invoke other classes through temporary associations.

Figure 6: The Poltergeist class is removed [13]

We remove the Poltergeist class so that the remaining classes lose the ability to interact and there is no longer any ordering of processes as shown in figure 6.
Golden Hammer anti-pattern can be avoided by using two approaches – philosophical and developmental. Philosophically, an organization needs to develop a commitment to an exploration of new technologies. Expanding a knowledge of developers through education, training and book study groups

would expose the developers to new solutions. Apart from that, software systems need to be designed and developed with well-defined boundaries that facilitate the replaceability of individual software components.
Apart from the solutions discussed in this paper, there are several other tools and techniques that are currently being used to detect and analyze the antipatterns in the software design.

6. Challenges and Issues in OOD antipatterns detection techniques
As discussed in the above sections, several techniques are proposed for detecting and preventing anti-patterns in software systems. However, these techniques have some critical issues and challenges that need to be dealt with.
If used appropriately, anti-patterns can be used in recognizing the recurring problems in the software industry and can help in implementing a better product or software.
Addressing the following issues may help antipatterns gain acceptance.
The strength of anti-patterns comes from an expanded knowledge base like that with design patterns.
For anti-patterns to become increasingly useful, it is important to enhance the presence of the online collaboration of resources like Wiki, blogs etc. The developers should be strongly encouraged to refer the knowledge base and follow the guidelines while developing any software code.
Different Design patterns and anti-patterns refer to many different pattern definition languages and corresponding templates. The overall lexicon of Design patterns is consistent. However, due to the lack of a single seminal work, the anti-pattern definitions seem to be inconsistent. Thus, a need for standard lexicon arises.
Since anti-patterns focus on mistakes in the design patterns, a logical extension of that investigation is to search for the person who is responsible for that mistake. However, this creates unwilling participants and threatens the effective use of anti-patterns. In such situations, the administrations usually tend to ignore the fact that anti-patterns can arise through no fault of an individual but might be a result of obsolescence of technology or similar reasons.
Apart from these, there are a number of critical issues with respect to the detection of anti-patterns in the software system. One major issue in anti-pattern detection is in extracting information from source code components in order to identify symptoms of poor design choices. Different sources of information have different design choices. Also, the type of information to be exploited depends on the kind of anti-pattern to be

detected. Thus, building a tool to detect anti-patterns in software system becomes difficult.
Another major issue is in defining the algorithm to identify candidate anti-patterns. Since each algorithm has its own strengths and weaknesses, an algorithm ensuring a fair compromise of strengths and weaknesses must be chosen depending on the anti-pattern that is under analysis.
Also, there are number of disadvantages in using manual and auto detection approaches in detecting antipatterns. Manual detection approach consumes a large amount of time and effort, and suffer from the anomaly detection, such as context-dependence and ambiguous definitions. In order to overcome time and effort problems, auto detection approaches were developed.
However, they suffer from the uncertainty problems that provide no indication of which set of candidate classes should be inspected first for confirmation and correction. Apart from these, there are a number of challenges with respect to using rule based detection technique or
BBN based detection technique and so on.

8. Conclusions
An anti-pattern is a pattern gone bad, and it represents symptoms of poor design and implementation choices. Anti-patterns may result in time-consuming maintenance operations due to their lower comprehensibility and maintainability and hence, seem to be complex [3]. It can be the result of a manager or developer not knowing any better or not having sufficient knowledge or experience in solving a particular type of problem, or having applied a perfectly good pattern in the wrong context. [16]
Anti-patterns
mostly generate negative consequences whereas refactored solution generates positive benefits. In this paper, we discussed a number of object-oriented design patterns, their symptoms and consequences. We also discussed the issues and challenges that have to be faced while detecting antipatterns.
Thus, anti-patterns can be used for refactoring, migration, upgrade and reengineering. Having said that, design patterns are widely accepted and have abundant resources, but the concept of anti-patterns is still relatively immature and should be discussed and used more frequently. There are still some open issues that need to be addressed and need more analysis and research. Some of them are - Are anti-patterns really harmful [4], providing a complete support for the identification of anti-patterns, use of historical and lexical analysis to detect anti-pattern, analyzing the usability of detection tools, and so on [1].

9. References
[1] Palomba, F., BAVOTA, G., OLIVETO, R., & DE LUCIA,
A. N. D. R. E. A. (2014). Anti-Pattern Detection: Methods,
Challenges, and Open Issues.ADVANCES IN COMPUTERS,
VOL 95, 95, 201-238.

[2] Din, J., Al-Badareen, A. B., & Jusoh, Y. Y. (2012,
December). Antipatterns detection approaches in ObjectOriented Design: A literature review. InComputing and
Convergence Technology (ICCCT), 2012 7th International
Conference on (pp. 926-931). IEEE.

[9] Design Patterns and Refactoring. (n.d.). Retrieved April
28, 2015, from https://sourcemaking.com/antipatterns
[10] Moha, N., Guéhéneuc, Y. G., Le Meur, A. F., Duchien,
L., & Tiberghien, A. (2010). From a domain analysis to the specification and detection of code and design smells. Formal
Aspects of Computing, 22(3-4), 345-361.
[11] Design Patterns and Refactoring. (n.d.). Retrieved April
28, 2015, from https://sourcemaking.com/antipatterns/theblob
[12] Design Patterns and Refactoring. (n.d.). Retrieved April
28, 2015, from https://sourcemaking.com/antipatterns/lavaflow

[3] Elaasar, M. E. (2012). An Approach to Design Pattern and
Anti-Pattern
Detection in MOF-Based
Modeling
Languages (Doctoral dissertation, Carleton University
Ottawa).

[13] What is Circular dependency and how do we resolve it?
(n.d.).
Retrieved
April
28,
2015,
from http://www.codeproject.com/Articles/616344/What-isCircular-dependency-and-how-do-we-resolve [4] Abbes, M., Khomh, F., Guéhéneuc, Y. G., & Antoniol, G.
(2011, March). An empirical study of the impact of two antipatterns, blob and spaghetti code, on program comprehension. In Software Maintenance and Reengineering
(CSMR), 2011 15th European Conference on (pp. 181-190).
IEEE.

[14] Design Patterns and Refactoring. (n.d.). Retrieved April
28,
2015, from [5] Mowbray, T. J., Brown, W. J., & McCornnick III, H. W.
(1998). AntiPatterns: Refactoring software, architectures, and projects in crisis. ed: John Wiley & Sons, Hoboken, NJ.
[6] Fowler, M. (1997). Refactoring: Improving the Design of
Existing Code.
[7] Stoianov, A., & Sora, I. (2010). Detecting patterns and antipatterns in software using Prolog rules. In Computational
Cybernetics and Technical Informatics (ICCC-CONTI), 2010
International Joint Conference on (pp. 253-258).
[8] Ballis, D., Baruzzo, A., & Comini, M. (2008, April). A minimalist visual notation for design patterns and antipatterns.
In Information Technology: New Generations, 2008. ITNG
2008. Fifth International Conference on (pp. 51-56). IEEE.

https://sourcemaking.com/antipatterns/poltergeists
[15] AntiPattern - Cut-And-Paste Programming. (n.d.).
Retrieved
April
28,
2015, from http://www.darxstudios.com/darxstudios/2014/9/7/antipattern-cut-and-paste-programming
[16] Development AntiPattern:. (n.d.). Retrieved April 28,
2015, from http://www.antipatterns.com/briefing/sld022.htm
[17] Poltergeist-the most unwanted antipattern. (n.d.).
Retrieved
April
28,
2015, from http://icmgworld.com/corp/news/Articles/RS/jan_0302.asp
[18] Software Antipatterns : The Golden Hammer. (n.d.).
Retrieved
April
28,
2015, from http://codebalance.blogspot.com/2010/10/softwareantipatterns-golden-hammer.html

Similar Documents

Premium Essay

Report to Nations

...that have each expanded our knowledge and understanding of the tremendous financial impact occupational fraud and abuse has on businesses and organizations. We are proud to say that the information contained in the original Report and its successors has become the most authoritative and widely quoted body of research on occupational fraud. The data presented in our 2012 Report is based on 1,388 cases of occupational fraud that were reported by the Certified Fraud Examiners (CFEs) who investigated them. These offenses occurred in nearly 100 countries on six continents, offering readers a view into the global nature of occupational fraud. As in previous years, what is perhaps most striking about the data we gathered is how consistent the patterns of fraud are around the globe and over time. We believe this consistency reaffirms the value of our research efforts and the reliability of our findings as truly representative of the characteristics of occupational fraudsters and their schemes. On behalf of the ACFE, and in honor of its founder, Dr. Wells, I am pleased to present the 2012 Report to the Nations on Occupational Fraud and Abuse. It is my hope that practitioners, business and government organizations, academics, the media and the general public throughout the world will find the information contained in this Report of value in their efforts to prevent,...

Words: 5423 - Pages: 22

Free Essay

Generic Security System with Thermal Imaging Technology

...control the access on private places and computer systems. The security system will maintain a database in which the thermogram of individuals will be kept. To get access on those places and computers, recent thermal image of the person will be matched with database in a systematic way. Here, I derived some equations for considering the dispersion of body temperature to match with the database in different physical and environmental condition. Key words: Thermogram, Thermal imager, Infrared radiator, Biometric system, Image processing, Image patterns recognition. 1 Introduction Thermal imaging system is the one of the most prominent and advanced technology to detect the radiated temperature (as image) from any objects or bodies by capturing it’s emitted infrared waves. Since almost every object radiate several volume of thermal energy, special type of device called thermal imager can be used to build the detailed temperature pattern of any object which is known as thermogram. Thermal image is varied from person to person and it’s unique [1]. So for ensuring true identification and correct authentication on different security system, thermal imaging technology can be kept in our general interest list. Recently different biometric parameters such as Fingerprint, Retinal, iris, palm print are being used in different security systems [2]. These parameters are also varied from person to person [3] but this can be stolen or copied or distorted. In some research, fingerprinting system...

Words: 2099 - Pages: 9

Premium Essay

Open Problems in Computer Virus Research

...and why computer viruses spread. Techniques have been developed to help us estimate the safety and effectiveness of anti-virus technology before it is deployed. Technology for dealing with known viruses has been very successful, and is being extended to deal with previously unknown viruses automatically. Yet there are still important research problems, the solution to any of which significantly improve our ability to deal with the virus problems of the near future. The goal of this paper is to encourage clever people to work on these problems. To this end, we examine several open research problems in the area of protection from computer viruses. For each problem, we review the work that has been done to date, and suggest possible approaches. There is clearly enough work, even in the near term, to keep researchers busy for quite a while. There is every reason to believe that, as software technology evolves over the next century or so, there will plenty of important and interesting new problems that must be solved in this field. Introduction Some people believe that there is no longer any interesting research to do in the field of protection from computer viruses - that all of the important technology has already been developed - that it is now a simple matter of programming to keep up with the problem. Others believe that "virus research" simply means "analyzing viruses." To dispel these misimpressions, we discuss...

Words: 6039 - Pages: 25

Premium Essay

Impact Supply Chain

...Report#1 Denial of Service as a Service - Asymmetrical Warfare at Its Finest Introduction Denial of service attack becomes a major problem against computers connected to the Internet. DoS attacks involves exploiting any bugs in such an operating system or any existed vulnerabilities in TCP/IP implementation. Tracking this attack becomes very serious problem, because the attacker uses many machines in order to lunch this kind of attack. On the other hand, since the attackers are human being at least one mistake will occurred by them, once the investigators discover such mistake will be very helpful to track such attacker. The attacker goal is to prevent the legitimate users from accessing their resources by taking down such a server. This report will discuss “Denial of Service as a Service Asymmetrical Warfare at Its Finest” which was given by Robert Masse, CEO of Swipe Identity Company. Robert Masse has explained the process of capturing the attacker who performed Denial of server attack (DoS) against mid-sized internet server provider (ISP). Actually, the attacker was working at Mid-sized ISP, which is considered to be the largest ISP in Canada. In addition, the attacker was one of the employees who’s working at the targeted ISP, which make the investigation process very difficult to identify him or to stop this attack. On November 25th 2012 the ISP received this attack for one week and then eventually escalate quickly. As a result, this attack cause to shut down the emergency...

Words: 3055 - Pages: 13

Premium Essay

Create

...The Design Space of Metamorphic Malware Andrew Walenstein†, Rachit Mathur‡, Mohamed R. Chouchane†, and Arun Lakhotia† University of Louisiana at Lafayette, Lafayette, LA, U.S.A. McAfee Avert Labs, Beaverton, OR, U.S.A. arun@louisiana.edu rachit_mathur@avertlabs.com mohamed@louisiana.edu walenste@ieee.org ‡ † Abstract: A design space is presented for metamorphic malware. Metamorphic malware is the class of malicious self-replicating programs that are able to transform their own code when replicating. The raison d'etre for metamorphism is to evade recognition by malware scanners; the transformations are meant to defeat analysis and decrease the number of constant patterns that may be used for recognition. Unlike prior treatments, the design space is organized according to the malware author's goals, options, and implications of design choice. The advantage of this design space structure is that it highlights forces acting on the malware author, which should help predict future developments in metamorphic engines and thus enable a proactive defence response from the community. In addition, the analysis provides effective nomenclature for classifying and comparing malware and scanners. Keywords: Metamorphic Malware, Virus Scanner. 1. Introduction Metamorphism is the ability of malware to transform its code. This ability was first introduced in viruses and was later used by worms, Trojans, and other malware. There now exist several metamorphic engines—programs that implement...

Words: 5825 - Pages: 24

Free Essay

Prevention of Breast Cancer

...cancer research has found no cure and treatments vary in effectiveness. Objectives This paper will review some of the various conventional and natural prevention methods of breast cancer and evaluate the effectiveness and risks of each. Methods/Design Published studies on early detection , non-steroidal anti-inflammatory drugs, physical activity and diet were reviewed. Opposing studies and risks of each were also sought and reviewed. Major Findings All methods were found to have a positive effect on reducing the risk of breast cancer except for early detection. All methods were also found to have a negative effect on breast cancer risk or have risks of other health problems except for physical activity and thermography. Conclusion Studies show that early detection does not prevent breast cancer and moderate physical activity can reduce the risk of breast cancer. All other methods have conflicting studies . Early Detection: Early detection is the most recommend method for the prevention of breast cancer, however it does not prevent breast cancer but studies show it can reduce the death rate of breast cancer. Mammography the most used and accurate form of non-evasive early detection will be examined in this paper as well as thermography, a new alternative to mammogram screenings. Mammography Mammography is a procedure that uses x-ray radiation to capture an image inside the body. Research has concluded that Mammograms can reduce the death rate from breast cancer...

Words: 2751 - Pages: 12

Free Essay

Wireless Lan Security

...The Physical Layer defines how data is transmitted over the physical medium. The IEEE assigned 802.11 two transmission methods for radio frequency (RF) and one for Infrared. The two RF methods are frequency hopping spread-spectrum (FHSS) and direct sequence spread-spectrum (DSSS). These transmission methods operate within the ISM (Industrial, Scientific, and Medical) 2.4 GHz band for unlicensed use. Other devices that operate on this band include remote phones, microwave ovens, and baby monitors. FHSS and DSSS are different techniques to transmit data over radio waves. FHSS uses a simple frequency hopping technique to navigate the 2.4GHz band which is divided into 75 sub-channels 1MHz each. The sender and receiver negotiate a sequence pattern over the sub-channels. DSSS, however,...

Words: 4933 - Pages: 20

Free Essay

Computer Intrusion Forensics

...computer intrusion forensics many methodologies have been designed to be used when conducting an investigation. A computer forensics investigator also needs certain skills to conduct the investigation. Along with this, the computer forensics investigator must be equipped with an array of software tools. With the birth of the Internet and networks, the computer intrusion has never been as significant as it is now. There are different preventive measures available, such as access control and authentication, to attempt to prevent intruders. Intrusion detection systems (IDS) are developed to detect an intrusion as it occurs, and to execute countermeasures when detected. Intrusion detection (ID) takes over where preventive security fails. In order to choose the best IDS for a given system, one should be aware of the advantages and disadvantages of the each IDS. This paper views a forensic application within the framework of Intrusion Detection and details the advantages and disadvantages of each IDS. Introduction In a perfect world the need for...

Words: 9608 - Pages: 39

Premium Essay

Use of Data Mining by Government Agencies and Practical Applications

...of such data and mining interesting knowledge from it. Data mining is a process of inferring knowledge from such huge data. It is a modern and powerful tool, automatizing the process of discovering relationships and combinations in raw data and using the results in an automatic decision support. This project provides an overview of data mining, how government uses it quoting some practical examples. Data mining can help in extracting predictive information from large quantities of data. It uses mathematical and statistical calculations to uncover trends and correlations among the large quantities of data stored in a database. It is a blend of artificial intelligence technology, statistics, data warehousing, and machine learning. These patterns play a very important role in the decision making because they emphasize areas where business processes require improvement. Using the data mining solutions, organizations can increase their profitability, can detect fraud, or may enhance the risk management activities. The models discovered by using data mining solutions are helping organizations to make better decisions in a shorter amount of...

Words: 4505 - Pages: 19

Premium Essay

Security Breach at Tjx

...Overview This case analysis report is about the IT security problems that Owen Richel, the Chief Security Officer of TJX should consider to improve by analyzing some security issues that TJX had faced during the 2005-2007 database intrusion. As technology advances, companies are facing some challenges regarding information privacy. “Information privacy concerns the legal right or general expectation of individuals, groups, or institutions to determine for themselves when, and to what extent, information about them is communicated to others.” (Lecture notes) One of the privacy problems includes unauthorized access, which violates the laws and company’s policies, can limit a person to access to his/her personal information, and threaten the company’s legitimacy in its interactions with its stakeholders. In this case, TJX experienced an information security breach, caused over 94 million of payment cards at risk, and paid $158 million for damages and losses. This serious problem was recognized by Owen and thus case discussion is carried out as follows. Stakeholders & Preferences Some of the important stakeholders are customers, financial institutions, vendors and distributors, shareholders, and the management and employees. The most important stakeholder is the customers that TJX has been long serving with because they are the very first group of people who were affected by the intrusion. It was the customers’ debit and credit cards information that were stolen which...

Words: 1948 - Pages: 8

Premium Essay

Forinsic Accounting

...A Project Report On “Forensic Accounting And Auditing” Submitted By Durvesh S. Naik Roll No: - 6025 MCOM PART-II (Advanced Accountancy) 2014-15 MULUND COLLEGE OF COMMERCE SAROJINI NAIDU ROAD, MULUND (W.) MUMBAI-80 SUBMITTED TO UNIVERSITY OF MUMBAI ACADEMIC YEAR 2014-15 DECLARATION I Durvesh Naik student of Mulund College of Commerce, S. N. Road, Mulund (W.) Mumbai – 80 of Mcom Part II (Advanced Accounting) Seat no: - 6025, hereby declare that I have completed the project on the title “Forensic Accounting and Auditing” during the academic year 2014-15. The information submitted is true and best of my knowledge and belief. Date of submission: - Signature Place:- Parle Tilak Vidyalaya Association's MULUND COLLEGE OF COMMERCE Sarojini Naidu Road, Mulund West, Mumbai 400080. Certificate This is to certify that Mr. __________________________________________________________ Of Mcom. Part II (Advanced Accountancy) Semester _______ has undertaken completed the project work titled _________________________ ______________________________ during the academic year __________ under the guidance of Prof. ______________________________________. Submitted on _________________ to this college on the fulfillment of the curriculum of Mcom (Advanced Accountancy) University of Mumbai. This is a bonafide project work & the information presented is true/ and original to the best of our knowledge...

Words: 8287 - Pages: 34

Premium Essay

Internet Security

...Internet Security. Abstract Online users today are faced with multitude of problems and issues. A typical online user is vulnerable to virus, worms, bugs, Trojan horses etc.; he/she is also exposed to sniffers, spoofing their private sessions; and they are also vulnerable to phishing of financial information. Not only this but users are also constantly subjected to invasion of privacy with the multitude of spy ware available for monitoring their surfing behaviours. If this is not all, users are also subjected to malwares that stop or totally destroy their machines render them helpless. These instances only indicate that the Internet is not a safe place for online users. Users are constantly vulnerable to hacked sessions, attacks and phishes that make them wary of going online. However, the trend does not stop at that. In fact corporations and government sector organizations are also faced with the same problems. Corporate information are being hacked; emails are read; government secret information are subject to security risks and banks are being hacked and millions stolen. Some of the reasons behind such attacks include the weaknesses inherent in the networks of the companies and government organizations; other reasons include carelessness of users. Whichever the case internet security issues have become one of the major concerns for technologists and users alike. There is a great need for understanding the nature of the attacks, the attackers, the networks, the loop holes...

Words: 10693 - Pages: 43

Free Essay

Applications of Electron Microscopy in Materials Science and Engineering

...APPLICATIONS OF ELECTRON MICROSCOPY IN MATERIALS AND METALLURGICAL ENGINEERING A TERM PAPER PRESENTED IN PARTIAL FULFILMENT OF THE REQUIREMENTS FOR THE POSTGRADUATE COURSE MME 604 [ELECTON OPTICS AND MICROSCOPY] BY MARK, UDOCHUKWU 20044449298 SUBMITTED TO ENGR. PROF. O. O. ONYEMAOBI [EXAMINER] DEPARTMENT OF MATERIALS AND METALLURGICAL ENGNEERING FEDERAL UNIVERSITY OF TECHNOLOGY, OWERRI AUGUST 2005 i Markudo [2005] PREFACE The electron microscope is an indispensable modern analytical and research tool. Microscopy is employed in all branches of science to identify materials, characterize unknown substances or study the properties of known materials. This term paper surveys the applications of electron microscopy in the field of materials and metallurgical engineering. I hereby acknowledge my lecturer on Electron Optics and Microscopy (MME 604), Engr. Prof. O. O. Onyemaobi. He has been sharpening my research and writing skills since my undergraduate days. This is the third term paper I will be submitting to him. ii TABLE OF CONTENTS Title Page Preface Table of Contents CHAPTER ONE 1.0 1.1 1.2 1.2.1 1.2.2 1.2.3 Introduction Materials and Metallurgical Engineering Microscopes and Microscopy Levels of Structure Methods of Structural and Compositional Elucidation Microscopy i ii iii-v 1-12 1 1 3 4 6 8 13-24 13 13 14 16 17 18 19 21 CHAPTER TWO 2.0 2.1 2.2 2.3 2.3.1 2.3.2 2.3.3 2.3.4 Transmission Electron Microscopy Interaction of Electrons...

Words: 11775 - Pages: 48

Premium Essay

Linux Security

...Securing Linux Platforms and Applications Project Project Part 1 Task 1: Outline Security Policy This security policy is essential to the First World Bank Savings and Loan. It is used to break up the security plan not measurable, specific, and testable goals and objectives. This security policy would be used to provide all current and prospective customers online banking services while keeping the First World Saing bank competitive in the financial marketplace. This solution is also an imperative due to an estimated revenue of $100,0000,000 flowing in by virtue of online credit card transactions specific to banking and loan application based services. This security policy will go on to outline the specific regulations and legislation that are in agreement with the statutory compliance criteria. Below is a recommended view of the characteristics and components of the recommended security based policy. Taking up the stake of the performance, cost, and security of maintaining the Linux, and open source infrastructure will be within the premise of the defined roles and responsibilities. Annual cost savings are estimated to amount to $4,000,000 (approx) by virtue of implementation of this solution. The ‘C’-‘I’-‘A’ triad will be a crucial requirement fo the First World Savings Bank and translates to Confidentiality, Integrity and Availability respectively. Confidentiality aspect with reference to First World Savings Bank – Confidentiality refers to the principle that states...

Words: 3404 - Pages: 14

Premium Essay

Financial Modelling

...Financial Reporting and Disclosure Corporate governance framework should ensure that timely and accurate disclosure is made on all material matters regarding the corporation, including the financial situation, performance, ownership, and governance of the company Importance of Corporate Governance Disclosures * Stakeholders are paying more attention to what is reported * The global financial crisis has sharpened the lens through which corporate governance structures are held to account and expectations around transparency. * To drive improvements in reputation * Public understanding of structure and activities * Relationships with the communities * Environmental issues Public disclosure is typically required, at a minimum, on an annual basis though some countries require periodic disclosure on a semi-annual or quarterly basis, or even more frequently in the case of material developments affecting the company. Companies often make voluntary disclosure that goes beyond minimum disclosure requirements in response to market demand. A strong disclosure regime that promotes real transparency is a pivotal feature of market-based monitoring of companies and is central to shareholders’ ability to exercise their ownership rights on an informed basis. Experience in countries with large and active equity markets shows that disclosure can also be a powerful tool for influencing the behaviour of companies and for protecting investors. A strong disclosure regime...

Words: 9232 - Pages: 37