Aspect-Oriented Programming evaluated: A Study on the Impact that Aspect-Oriented Programming can have on Software Development Productivity

Anchor Academic Publishing (aap_verlag)
Free sample

Aspect-oriented-programming is a relatively new technique that has evolved on top of the already well-established approach of object-oriented programming. When it is used correctly, it promises to remove many redundant parts of a code that appear repeatedly in an application, essentially untangling the original code. Thus, it can lead to a cleaner, more separated software design, to greater modularity and maintainability. Time-savings in software engineering can also be huge cost-savings, and anything that increases software quality is a welcome sight in an industry that in parts, still suffers from a bad reputation concerning the quality of its products. But, used in the wrong way or with insufficient knowledge, aspect-oriented programming can result in the opposite. Unintended side effects may introduce new bugs into an application, and therefore, it may be just one of the many negative consequences. In any case, there is a huge lack of empirical research on the subject, and in software engineering in general. Due to that fact, the question arises in how far hard facts can be drawn. This book deals with part of that problem by evaluating the aspect-oriented approach in a carefully designed and controlled experiment. On the basis of different tasks that were solved by participants of this study, the aspect-oriented approach (represented by AspectJ) is compared with a plain object-oriented approach (represented by Java). The book starts with an introduction to the topic, and further, it provides on the one hand, the survey’s motivation and on the other hand, some background information. A short chapter on aspect-oriented programming and empirical research may help readers who are unfamiliar with any of the subjects. Then, the survey itself is described in detail, i.e. its design, its implementation, and its evaluation, followed by a thorough discussion of the results. And the answer to the question ‘Can aspect-orientated programming keep its promise in productivity?’ is given.
Read more

About the author

Sebastian Kleinschmager is a software engineer from Germany who has a special interest in creating a scientific foundation for his field. During his studies in applied computer science (Bachelor’s degree), and business information systems (Master), he focused his research on conducting empirical experiments to evaluate programming techniques. Apart from his academic research, he specializes in software development where he uses the .NET Framework and the newest web technologies, and where he stands a chance to put theory into practice.
Read more

Reviews

Loading...

Additional Information

Publisher
Anchor Academic Publishing (aap_verlag)
Read more
Published on
Jun 1, 2013
Read more
Pages
95
Read more
ISBN
9783954895397
Read more
Read more
Best For
Read more
Language
English
Read more
Genres
Computers / Computer Science
Computers / Information Technology
Read more
Content Protection
This content is DRM free.
Read more
Eligible for Family Library

Reading information

Smartphones and Tablets

Install the Google Play Books app for Android and iPad/iPhone. It syncs automatically with your account and allows you to read online or offline wherever you are.

Laptops and Computers

You can read books purchased on Google Play using your computer's web browser.

eReaders and other devices

To read on e-ink devices like the Sony eReader or Barnes & Noble Nook, you'll need to download a file and transfer it to your device. Please follow the detailed Help center instructions to transfer the files to supported eReaders.
Sebastian Kleinschmager
Programming languages that use the object-oriented approach have been around for quite a while now. Most of them use either a static or a dynamic type system. However, both types are very common in the industry. But, in spite of their common use in science and practice, only very few scientific studies have tried to evaluate the two type systems' usefulness in certain scenarios. There are arguments for both systems. For example, static type systems are said to aid the programmer in the prevention of type errors, and further, they provide documentation help for, there is an explicit need to annotate variables and methods with their respective types. This book describes a controlled experiment that was conducted to shed some light into the presented matter. Which of the type systems can live up to its promises? Is one of these better suited for a particular task? And which type system is the most supportive in a problem solving? The main hypothesis claims that a static type system is faster in a problem solving in use of an undocumented API. Thus, in the study, the participants need to solve different programming tasks in an undocumented API environment with the help of the static type system (Java), and the dynamic type system (Groovy). The author starts with a short introduction to the topic, the experimentation, and the motivation. Then, he describes a list of related works, and proceeds to the description of the experiment, its evaluation, and finally, the discussion of the results. This book should prove interesting reading for anyone who is interested in the mechanics that drive programmer productivity and performance that depend on the kind of technology used, as well as for anyone who might be interested in empirical research in software engineering, in general.
Clive W. Humphris
Electronics, Mechanics, Maths and Computing V10. eBook covers all the topics of this popular software title used in schools and colleges worldwide for over twenty years.
See Additional Notes for instructions to download the highly interactive PC software. Used in thousands of schools and colleges worldwide the software is designed to work as an interactive textbook on your PC screen.
Comprising hundreds of menu selected colourful topics where the graphic images (from your eBook) are brought to life for every value change along with many additional learning software features.
A combined eBook and educational software package at a tiny fraction of the previously published price.
Chapters (958 topics): - Introduction, Electronics, Basic Electronics, DC Current Flow, Resistor Value Test, Simple DC Circuits, Types of Switching, Variable Voltages, Ohm's Law, DC Voltage, DC Current, Series/Parallel Resistors, AC Measurements, AC Voltage and Current, AC Theory, RCL Series Circuits, RCL Parallel Circuits, Capacitance, Capacitors, Inductance, Inductors, Impedance, Radio and Communication, Tuned Circuits, Attenuators, Passive Filters, Active Filters, Oscillators, Circuit Theorems, Complex Numbers, DC Power, AC Power, Silicon Controlled Rectifier, Power Supplies, Voltage Regulation, Magnetism, Electric Machines, Transformers, Three Phase Systems, Energy Transfer and Cost, Atomic Structures, Diode Theory, Diode Applications, Transistor Theory, Bipolar Transistor, Transistor Configurations, Active Transistor Circuits, Field Effect Transistors, Basic Operational Amplifier, Op-Amp Theory, Op-Amp Applications, Sum and Difference Amp, Analogue Multi-meter, Measurement, Component Testing, PIC Micro, PICa(R) Microcontroller, PICa(R) Architecture, PICa(R) Analogue to Digital, PICa(R) Byte Orientated Instructions, PICa(R) Bit Orientated Instructions, PICa(R) Literal and Control Instructions, Mechanics, Area, Surface Area and Symmetry, Volume, Compound Measures, Geometry, Motion, Machines, Optics, Computing, Hardware Devices, Data Structures, Data Files, Computer Systems, Data Handling, System Development, Computer Programming, Data Analysis, Binary Numbers, Binary Arithmetic, Digital, Logic Gates 1., Logic Gates 2., Logic Families, Flip Flops, Combinational Logic, Counters, Counting, Shift Registers, 555 Timer, Logic Interfacing, Boolean and DeMorgan's, Microprocessor, Micro-Computer, Data/Address Bus, Memory Addressing, Arithmetic and Logic Unit, Clock and Reset, Instructions and Control, Memory Cells, Microprocessor Memory, Addressing Modes, Instructions Set 1., Instructions Set 2., Instructions Set 3., Mathematics, Number Systems, Number Conversion, Number Types, Compound Measures, Roots, Angles and Parallels, Triangle Ratios, Triangle Angles, Percentages, Ratios, Fractions, Vectors, Circle Angles, Laws, Algebra 0., Algebra 1., Algebra 2., Mathematical Rules, Powers and Indices, Simplifying, Equations, Graphing, Slope and Translation, Curves and Angle Conversion, Personal Finance, Additional Notes.
Brian Christian
Sebastian Kleinschmager
Programming languages that use the object-oriented approach have been around for quite a while now. Most of them use either a static or a dynamic type system. However, both types are very common in the industry. But, in spite of their common use in science and practice, only very few scientific studies have tried to evaluate the two type systems' usefulness in certain scenarios. There are arguments for both systems. For example, static type systems are said to aid the programmer in the prevention of type errors, and further, they provide documentation help for, there is an explicit need to annotate variables and methods with their respective types. This book describes a controlled experiment that was conducted to shed some light into the presented matter. Which of the type systems can live up to its promises? Is one of these better suited for a particular task? And which type system is the most supportive in a problem solving? The main hypothesis claims that a static type system is faster in a problem solving in use of an undocumented API. Thus, in the study, the participants need to solve different programming tasks in an undocumented API environment with the help of the static type system (Java), and the dynamic type system (Groovy). The author starts with a short introduction to the topic, the experimentation, and the motivation. Then, he describes a list of related works, and proceeds to the description of the experiment, its evaluation, and finally, the discussion of the results. This book should prove interesting reading for anyone who is interested in the mechanics that drive programmer productivity and performance that depend on the kind of technology used, as well as for anyone who might be interested in empirical research in software engineering, in general.
©2017 GoogleSite Terms of ServicePrivacyDevelopersArtistsAbout Google
By purchasing this item, you are transacting with Google Payments and agreeing to the Google Payments Terms of Service and Privacy Notice.