Hausarbeiten logo
Shop
Shop
Tutorials
De En
Shop
Tutorials
  • How to find your topic
  • How to research effectively
  • How to structure an academic paper
  • How to cite correctly
  • How to format in Word
Trends
FAQ
Zur Shop-Startseite › Informatik - Angewandte Informatik

Logging and Simulation using Aspect Oriented Software

AOP and AspectJ

Titel: Logging and Simulation using Aspect Oriented Software

Fachbuch , 2014 , 192 Seiten

Autor:in: Mutum Meetei (Autor:in)

Informatik - Angewandte Informatik

Leseprobe & Details   Blick ins Buch
Zusammenfassung Leseprobe Details

Software testing is a process designed to make sure computer code does what it is designed to do and that it doesn’t do anything unintended. It is used to achieve quality assurance, verification, validation and reliability estimation. It is a major quality control measure used during the software development. Testing is the process of operating a system or component under specified conditions, observing or recording the results, and making an evaluation of some aspect of system or a component.Testing of software is done at different levels of abstraction - unit, integration and system levels. During testing of software, there is a need to observe the internal and external execution details of the software. The internal execution details are required for the diagnosis of incorrect output during testing, and to ensure correctness of processing in case of a correct output. Without observing the internal execution details, the incorrect results may appear to be correct.
Logging is a systematic method of recording the internal information of software. It is one of the typical examples of crosscutting concern (concerns that are common to many of the core modules that span multiple modules). By examining the log, an unexpected system behavior can be identified and corrected. It acts as a diagnostic assistant to reveal the inner working of a system. Logging is also used for different purposes like debugging, testing, auditing, performance monitoring, code profiling, etc.
Besides logging, the theory of random phenomena has always had widespread appeal not least because of its application to games of chance and speculation. The fundamental notion is that of the expected value of a bet. The Monte Carlo method computes this expected value by simulating a large number of scenarios and averaging the observed payoff of the bet over all scenarios. The simulation of the scenarios is best performed by a computer program. Computational power is becoming cheap and programming languages more powerful and more elegant. Object orientation in particular represents a significant advance over procedural programming. Aspect-oriented programming (AOP) is a new programming paradigm [‎35]. It is popular for the use of modularizing concerns that that cross-cut the basic functionality of a program like logging. AOP has provided a new mechanism for encapsulating crosscutting concern in a module unit call aspect. The advantages of simulation techniques using AOP is discussed.

Leseprobe


Table of Contents

CHAPTER 1: Introduction

1.1 Introduction

1.2 Preliminary

1.2.1 Logging with AOP

1.2.3 Observability using AOP

1.2.4 Simulation using AOP

1.2.5 Aspect-based Testing Technique

1.2.6 Aspect Log – AutotraceAspect

1.2.7 Aspect execution

1.2.8 Logging Output

1.2.9 Test Coverage

CHAPTER 2: Aspect-Oriented Software

2.1 Object-Oriented Paradigm

2.2 Aspect-Oriented Paradigm

2.3 Weaving with AOP

2.4 Crosscutting concerns with AOP

2.5 Comparison of OOP and AOP

2.6 Advantage of using AOP

2.7 Implementation of AOP

CHAPTER 3: AspectJ

3.1 Introducing AspectJ

3.2 Dynamic Crosscutting Constructs

3.2.1 Join Point

3.2.2 Pointcut

3.2.3 Kinded Pointcuts

3.2.4 Non-kinded Pointcuts

3.2.5 Advice

3.2.6 Aspects

3.3 Static Crosscutting Constructs

CHAPTER 4: An Overview of Logging with AOP

4.1 Overview

4.2 Logging with Java

4.2.1 Apache Log4j

4.2.2 Java Logging API

4.2.3 An example of Logging using Java API and Log4j

4.3 Logging for Observability of software

4.4 Logging with AOP

4.3.1 Testing

4.3.2 Exception Handling

4.3.3 Tracing

4.3.4 Code Profiling

CHAPTER 5: Testing of Loop Join Points Using AspectJ

5.1 Overview

5.2 Unit testing

5.2.1 Unit testing using aspects

5.3 Loop Join Points

5.4 Aspect for Join Point

5.4.1 Checking Preconditions and Postconditions

5.4.2 Tracing Loop Joinpoint

5.4.3 Code Coverage

CHAPTER 6: Observability and Logging using AOP

6.1 Overview

6.2 Use of Aspect for Increasing Observability

6.3 Aspect-based Testing Technique

6.4 Aspect Log – AutotraceAspect

6.4.1 Methods in Aspect

6.4.2 Logging aspect

6.5 Aspect execution

6.6 Output Report

6.6.1 Level of Testing

6.6.2 Unit Testing

6.6.3 Integration Testing

6.6.4 System Testing

6.6.5 Inheritance Property

6.6.6 Dynamic Binding

6.6.7 Test Coverage

CHAPTER 7: Simulation with AOP

7.1 Random Variable

7.2 Stochastic process

7.2.1 Poisson Process

7.2.2 Markov Chains

7.2.3 Brownian Motion

7.3 Distribution Models

7.4 Monte Carlo Method

Objectives and Core Topics

This work explores the application of Aspect-Oriented Programming (AOP), specifically using the AspectJ framework, to improve software testing, observability, and simulation. The central research objective is to provide a non-intrusive, generic logging mechanism that can monitor internal execution details at different levels of abstraction without cluttering the core business logic of the software.

  • Aspect-Oriented Programming (AOP) concepts and their implementation in AspectJ.
  • Methods for modularizing crosscutting concerns such as logging, tracing, and profiling.
  • Techniques for increasing software observability during unit, integration, and system testing.
  • Application of AOP for simulating stochastic processes and random variables.
  • Approaches for calculating test coverage and monitoring internal execution flow in object-oriented programs.

Excerpt from the Book

Logging with AOP

Logging is a systematic method of recording the internal information of software. It is one of the typical examples of crosscutting concern (concerns that are common to many of the core modules that span multiple modules). By examining the log, an unexpected system behavior can be identified and corrected. It acts as a diagnostic assistant to reveal the inner working of a system. Logging is also used for different purposes like debugging, testing, auditing, performance monitoring, code profiling, etc.

Besides logging, the theory of random phenomena has always had widespread appeal not least because of its application to games of chance and speculation. The fundamental notion is that of the expected value of a bet. The Monte Carlo method computes this expected value by simulating a large number of scenarios and averaging the observed payoff of the bet over all scenarios.The simulation of the scenarios is best performed by a computer program.

Aspect-oriented programming (AOP) is a new programming paradigm [35]. It is popular for the use of modularizing concerns that cross-cut the basic functionality of a program, like, logging, exception handling, profiling, synchronization and tracing. AOP has provided a new mechanism for encapsulating crosscutting concern in a software system, in a module unit called aspect. When logging is used with AOP, aspect can be written for the logging concern. Aspect encapsulates the crosscutting concerns into a single unit; overcomes the tangling of code and modularizes the crosscutting concerns in better ways. AOP provides programming language support for logging. The code required for logging is written in a high level programming language, in an aspect, which spreads through the program automatically and generates logging information at run time. AspectJ [33][11]- an aspect oriented extension to Java, is a popular AOP programming language.

Summary of Chapters

CHAPTER 1: Introduction: Provides an overview of the challenges in software testing and introduces the role of AOP and observability in modern software development.

CHAPTER 2: Aspect-Oriented Software: Compares Object-Oriented and Aspect-Oriented paradigms, focusing on how AOP handles crosscutting concerns.

CHAPTER 3: AspectJ: Discusses the constructs of AspectJ, including dynamic and static crosscutting mechanisms used in Java programming.

CHAPTER 4: An Overview of Logging with AOP: Examines conventional logging limitations and presents AOP as a solution for effective software instrumentation and monitoring.

CHAPTER 5: Testing of Loop Join Points Using AspectJ: Details a specific technique for tracing internal execution within loops and conditional statements using AOP.

CHAPTER 6: Observability and Logging using AOP: Introduces the AutotraceAspect technique for monitoring software at unit, integration, and system levels.

CHAPTER 7: Simulation with AOP: Explores the use of AOP in implementing stochastic simulations and random variable generation models.

Keywords

Aspect-Oriented Programming, AOP, AspectJ, Software Testing, Observability, Logging, Crosscutting Concerns, Unit Testing, Integration Testing, System Testing, Code Profiling, AutotraceAspect, Software Simulation, Monte Carlo Method, Dynamic Binding.

Frequently Asked Questions

What is the core focus of this research?

The work primarily addresses the difficulty of modularizing crosscutting concerns—such as logging, testing, and debugging—in object-oriented software and proposes AOP as a clean, effective solution.

What are the central thematic areas covered?

The core themes include software observability, automated test instrumentation, crosscutting concern modularization, performance profiling, and simulation of stochastic processes.

What is the primary objective of this work?

The goal is to develop a generic "AutotraceAspect" that facilitates the observation of internal execution details across various levels of abstraction without needing to modify the underlying source code.

Which methodology is employed in this research?

The author uses Aspect-Oriented Programming (AOP), utilizing the AspectJ extension for Java, to dynamically weave crosscutting logic into target applications at compile time.

What topics are discussed in the main chapters?

The chapters cover AOP foundations, the AspectJ framework, detailed logging and observability techniques, testing loop join points, and applying AOP to stochastic simulation models.

Which keywords best characterize this work?

Key terms include Aspect-Oriented Programming, Software Testing, Observability, AutotraceAspect, Logging, and crosscutting concerns.

How does the proposed "AutotraceAspect" handle loop join points?

Since standard AspectJ does not expose loop constructs as join points, the author defines variables as static types to allow the aspect to capture iterations and execution details within loops.

What role does "AutotraceAspect" play in software testing?

It acts as a generic instrumentation layer that can be woven into existing software to collect execution logs at unit, integration, and system levels, which are then filtered to generate comprehensive test coverage reports.

Ende der Leseprobe aus 192 Seiten  - nach oben

Details

Titel
Logging and Simulation using Aspect Oriented Software
Untertitel
AOP and AspectJ
Veranstaltung
Applied Mathematics
Autor
Mutum Meetei (Autor:in)
Erscheinungsjahr
2014
Seiten
192
Katalognummer
V285596
ISBN (eBook)
9783656862123
ISBN (Buch)
9783656862130
Sprache
Englisch
Schlagworte
logging simulation aspect oriented software aspectj
Produktsicherheit
GRIN Publishing GmbH
Arbeit zitieren
Mutum Meetei (Autor:in), 2014, Logging and Simulation using Aspect Oriented Software, München, GRIN Verlag, https://www.hausarbeiten.de/document/285596
Blick ins Buch
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
Leseprobe aus  192  Seiten
Hausarbeiten logo
  • Facebook
  • Instagram
  • TikTok
  • Shop
  • Tutorials
  • FAQ
  • Zahlung & Versand
  • Über uns
  • Contact
  • Datenschutz
  • AGB
  • Impressum