“Retrospective analytics” on existing codebases and corresponding bug repositories have the potential to reveal interesting “correlations” which can be leveraged for effective “predictive analytics”. This article explores this interesting idea.
The document discusses how to apply design principles like abstraction and modularization in practice. It proposes using "enabling techniques" to operationalize principles, like localizing related data and methods to apply modularization. An example shows how to apply the encapsulation principle to an encryption class by separating algorithms from clients using the Strategy pattern. This allows algorithms to vary independently and be extended without modification, following the open-closed principle. Enabling techniques help understand principles at a deeper level and apply them to real problems.
This document provides 8 quotes on refactoring from various experts. The quotes discuss how software complexity increases over time without refactoring, the need to refactor software systems periodically to meet changing needs, focusing on long-term health rather than just the initial release, and how "quick and dirty" code leads to technical debt that remains for a long time.
This document discusses the process of diffusion in materials. It defines diffusion as the movement of atoms within a material driven by a thermal or concentration gradient. There are several mechanisms by which diffusion can occur, including vacancy diffusion, interstitial diffusion, and substitutional diffusion. Factors that influence the rate of diffusion include the diffusing species, temperature, lattice structure, and presence of defects. Diffusion can be steady-state, where the flux is constant over time, or non-steady-state, where the flux varies with time as described by Fick's laws. During non-equilibrium cooling of materials, compositional gradients can lead to phenomena like segregation and coring.
Here is an introductory presentation on refactoring with lots of examples. It covers foundations of refactoring, principles, practices, and bad smells. Bonus: it covers tools for refactoring.
Are you preparing for taking the OCPJP 8 exam? If so, this article will come in handy to you - it answers the questions you may have on preparing for the OCPJP 8 exam.
OCP Java SE 8 Exam - Sample Questions - Exceptions and AssertionsGanesh Samarthyam
This document contains sample questions and explanations for the OCP Java SE 8 exam. The questions cover topics like exceptions and assertions. One question asks which exception would be thrown from a chained exception example. Another asks to identify the output of a try-catch-finally program. A third discusses the behavior of an auto-closeable resource in a try-with-resources block. The document provides explanations for each answer.
The document describes a quiz being held to test software engineering knowledge. It includes multiple choice questions about topics like design patterns, programming languages, principles, and terms. The teams earn points for correct answers and the winning team receives chocolates.
Are you a Java programmer having wrist pain typing a lot (yes, I have!)? Does your mind keep swinging from loving to hating Java? Do you want to become more productive without leaving your world of Java? If so, this presentation is for you. I have been experimenting with Groovy for the last three months and I'm loving it - I am not going back to programming in plan old Java anymore. Yes, I have become Groovy - have you?
The document discusses how to apply design principles like abstraction and modularization in practice. It proposes using "enabling techniques" to operationalize principles, like localizing related data and methods to apply modularization. An example shows how to apply the encapsulation principle to an encryption class by separating algorithms from clients using the Strategy pattern. This allows algorithms to vary independently and be extended without modification, following the open-closed principle. Enabling techniques help understand principles at a deeper level and apply them to real problems.
This document provides 8 quotes on refactoring from various experts. The quotes discuss how software complexity increases over time without refactoring, the need to refactor software systems periodically to meet changing needs, focusing on long-term health rather than just the initial release, and how "quick and dirty" code leads to technical debt that remains for a long time.
This document discusses the process of diffusion in materials. It defines diffusion as the movement of atoms within a material driven by a thermal or concentration gradient. There are several mechanisms by which diffusion can occur, including vacancy diffusion, interstitial diffusion, and substitutional diffusion. Factors that influence the rate of diffusion include the diffusing species, temperature, lattice structure, and presence of defects. Diffusion can be steady-state, where the flux is constant over time, or non-steady-state, where the flux varies with time as described by Fick's laws. During non-equilibrium cooling of materials, compositional gradients can lead to phenomena like segregation and coring.
Here is an introductory presentation on refactoring with lots of examples. It covers foundations of refactoring, principles, practices, and bad smells. Bonus: it covers tools for refactoring.
Are you preparing for taking the OCPJP 8 exam? If so, this article will come in handy to you - it answers the questions you may have on preparing for the OCPJP 8 exam.
OCP Java SE 8 Exam - Sample Questions - Exceptions and AssertionsGanesh Samarthyam
This document contains sample questions and explanations for the OCP Java SE 8 exam. The questions cover topics like exceptions and assertions. One question asks which exception would be thrown from a chained exception example. Another asks to identify the output of a try-catch-finally program. A third discusses the behavior of an auto-closeable resource in a try-with-resources block. The document provides explanations for each answer.
The document describes a quiz being held to test software engineering knowledge. It includes multiple choice questions about topics like design patterns, programming languages, principles, and terms. The teams earn points for correct answers and the winning team receives chocolates.
Are you a Java programmer having wrist pain typing a lot (yes, I have!)? Does your mind keep swinging from loving to hating Java? Do you want to become more productive without leaving your world of Java? If so, this presentation is for you. I have been experimenting with Groovy for the last three months and I'm loving it - I am not going back to programming in plan old Java anymore. Yes, I have become Groovy - have you?
In Java 8, the java.util.function has numerous built-in interfaces. Other packages in the Java library (notably java.util.stream package) make use of the interfaces defined in this package. Java 8 developers should be familiar with using key interfaces provided in this package. This presentation provides an overview of four key functional interfaces (Consumer, Supplier, Function, and Predicate) provided in this package.
This document contains sample questions and explanations for the OCP Java SE 8 exam related to lambda expressions and functional interfaces. It includes multiple choice questions testing knowledge of valid lambda expression syntax, lambda behavior and scoping, and proper usage of the @FunctionalInterface annotation. The explanations provide detailed reasoning for the correct answers and why the other options are incorrect.
This presentation attempts to answer one of the most pressing questions facing the software industry: how to develop and maintain high quality software.
This document summarizes and recommends 5 books for learning Docker. It provides details on each book such as their coverage of Docker topics, organization of content, and which would be most useful for developers, operations staff, and sysadmins. The books discussed are Docker: Up & Running, The Docker Book, Docker Cookbook, Docker in Action, and Using Docker.
How do some students manage to land high-paying jobs with ease? Why do most students find it difficult to kick-start their career and struggle to get their first job? What are some of the best practices for creating a strong foundation for a great career? What are some of the key aspects you have to keep in your mind for cracking your job interview? This talk answers these questions and more. If you are a student looking for starting a great career, this talk is certainly for you!
This document contains a collection of inspirational quotes about success, dreams, purpose, and overcoming obstacles. Some of the key ideas expressed are to follow your inner voice, pursue your dreams boldly, lose yourself in something bigger, take up one inspiring idea and devote yourself to it fully, and have confidence that if you live as you imagine you will meet with unexpected success. The quotes are attributed to notable figures like Oscar Wilde, Steve Jobs, Swami Vivekananda, and Henry David Thoreau.
The document provides an overview of various sea life found underwater, including creatures with fins and tails that feed on seaweed or prey, colorful coral reefs and plants on the ocean floor, sea turtles that lay eggs on beaches, schools of fish that swim together, colorful but sometimes poisonous fish like lionfish, giant whales larger than ships, pink krill that swarm in great numbers, glow in the dark plankton and fish, and sea horses where males give birth to about 150 babies that emerge from their stomachs. The concluding message is that the ocean is vast and should be protected from pollution to celebrate its freedom.
Technical debt refers to design decisions that are suboptimal or incorrect, accruing debt that must be paid back later. It includes code debt from violations of coding standards and design debt from design smells or violations of architecture rules. Refactoring is restructuring code without changing behavior to improve design quality and make future changes easier. A variety of tools can help explore code structure and detect technical debt to prioritize refactoring.
Please check out the workshop "AI meets Blockchain" at HIPC 2018, in Bangalore: http://hipc.org/ai-blockchain/
HIPC is a premier conference and hence getting a paper accepted in HIPC workshop would be quite an accomplishment for any blockchain/AI enthusiast. Check out the details in this poster on submissions.
I have been fortunate to have worked with some geeks with incredible coding skills. I felt amazed at how they can play games with compilers, perform magic with their incantations on the shell, and solve some insanely complex algorithm problems with ease. I naively assumed that they are going to achieve greatness in near future. Alas, I was wrong. Really wrong. [Read the rest of the article ... ]
Many students reach out to me asking for project ideas they can do as a summer project for learning. Here is an interesting project idea - implement your own java disassembler (and expand it to a VM later).
The document discusses various techniques for writing clean code, including formatting code consistently, using meaningful names, writing comments to explain intent, keeping functions focused on single tasks, limiting class and method complexity, and avoiding hardcoded values. It emphasizes habits like adhering to coding standards as a team and writing unit tests. Specific techniques mentioned include consistent formatting, searchable names, avoiding comments as a crutch, limiting function parameters and nesting depth, and preferring classes with cohesive responsibilities. The document recommends several coding standards and style guides.
Design Patterns - Compiler Case Study - Hands-on ExamplesGanesh Samarthyam
This presentation takes a case-study based approach to design patterns. A purposefully simplified example of expression trees is used to explain how different design patterns can be used in practice. Examples are in C#, but is relevant for anyone who is from object oriented background.
This presentation provides an overview of recently concluded Bangalore Container Conference (07-April-2017). See www.containerconf.in for more details.
Bangalore Container Conference 2017 (BCC '17) is the first conference on container technologies in India happening on 07th April. Organizations are increasingly adopting containers and related technologies in production.Hence, the main focus of this conference is “Containers in Production”. This one-day conference sets the perfect stage for container enthusiasts, developers, users and experts to meet together and learn from each others experiences.
Presented in Bangalore Open Java User Group on 21st Jan 2017
Awareness of design smells - Design comes before code. A care at design level can solve lot of problems.
Indicators of common design problems - helps developers or software engineers understand mistakes made while designing and apply design principles for creating high-quality designs. This presentation provides insights gained from performing refactoring in real-world projects to improve refactoring and reduce the time and costs of managing software projects. The talk also presents insightful anecdotes and case studies drawn from the trenches of real-world projects. By attending this talk, you will know pragmatic techniques for refactoring design smells to manage technical debt and to create and maintain high-quality software in practice. All the examples in this talk are in Java.
Bangalore Container Conference 2017 (BCC '17) is the first conference on container technologies in India. Organizations are increasingly adopting containers and related technologies in production. Hence, the main focus of this conference is “Containers in Production”. This one-day conference sets the perfect stage for container enthusiasts, developers, users and experts to meet together and learn from each others experiences.
Let's Go: Introduction to Google's Go Programming LanguageGanesh Samarthyam
This document introduces the Go programming language, which was announced by Google in 2009. It summarizes Go's key features, including being a concurrent, garbage-collected systems programming language. It also provides instructions on installing Go and a simple "Hello World" program example. The document highlights some of Go's novel features like interfaces and goroutines and concludes that Go shows promise as a useful systems language.
This document contains 5 quiz questions about Java generics with the corresponding answers. It was created by Ganesh Samarthyam from CodeOps to test knowledge of Java generics. Additional contact information for Ganesh and CodeOps is provided at the bottom, including email, social media profiles, phone number and website links.
In Java 8, the java.util.function has numerous built-in interfaces. Other packages in the Java library (notably java.util.stream package) make use of the interfaces defined in this package. Java 8 developers should be familiar with using key interfaces provided in this package. This presentation provides an overview of four key functional interfaces (Consumer, Supplier, Function, and Predicate) provided in this package.
This document contains sample questions and explanations for the OCP Java SE 8 exam related to lambda expressions and functional interfaces. It includes multiple choice questions testing knowledge of valid lambda expression syntax, lambda behavior and scoping, and proper usage of the @FunctionalInterface annotation. The explanations provide detailed reasoning for the correct answers and why the other options are incorrect.
This presentation attempts to answer one of the most pressing questions facing the software industry: how to develop and maintain high quality software.
This document summarizes and recommends 5 books for learning Docker. It provides details on each book such as their coverage of Docker topics, organization of content, and which would be most useful for developers, operations staff, and sysadmins. The books discussed are Docker: Up & Running, The Docker Book, Docker Cookbook, Docker in Action, and Using Docker.
How do some students manage to land high-paying jobs with ease? Why do most students find it difficult to kick-start their career and struggle to get their first job? What are some of the best practices for creating a strong foundation for a great career? What are some of the key aspects you have to keep in your mind for cracking your job interview? This talk answers these questions and more. If you are a student looking for starting a great career, this talk is certainly for you!
This document contains a collection of inspirational quotes about success, dreams, purpose, and overcoming obstacles. Some of the key ideas expressed are to follow your inner voice, pursue your dreams boldly, lose yourself in something bigger, take up one inspiring idea and devote yourself to it fully, and have confidence that if you live as you imagine you will meet with unexpected success. The quotes are attributed to notable figures like Oscar Wilde, Steve Jobs, Swami Vivekananda, and Henry David Thoreau.
The document provides an overview of various sea life found underwater, including creatures with fins and tails that feed on seaweed or prey, colorful coral reefs and plants on the ocean floor, sea turtles that lay eggs on beaches, schools of fish that swim together, colorful but sometimes poisonous fish like lionfish, giant whales larger than ships, pink krill that swarm in great numbers, glow in the dark plankton and fish, and sea horses where males give birth to about 150 babies that emerge from their stomachs. The concluding message is that the ocean is vast and should be protected from pollution to celebrate its freedom.
Technical debt refers to design decisions that are suboptimal or incorrect, accruing debt that must be paid back later. It includes code debt from violations of coding standards and design debt from design smells or violations of architecture rules. Refactoring is restructuring code without changing behavior to improve design quality and make future changes easier. A variety of tools can help explore code structure and detect technical debt to prioritize refactoring.
Please check out the workshop "AI meets Blockchain" at HIPC 2018, in Bangalore: http://hipc.org/ai-blockchain/
HIPC is a premier conference and hence getting a paper accepted in HIPC workshop would be quite an accomplishment for any blockchain/AI enthusiast. Check out the details in this poster on submissions.
I have been fortunate to have worked with some geeks with incredible coding skills. I felt amazed at how they can play games with compilers, perform magic with their incantations on the shell, and solve some insanely complex algorithm problems with ease. I naively assumed that they are going to achieve greatness in near future. Alas, I was wrong. Really wrong. [Read the rest of the article ... ]
Many students reach out to me asking for project ideas they can do as a summer project for learning. Here is an interesting project idea - implement your own java disassembler (and expand it to a VM later).
The document discusses various techniques for writing clean code, including formatting code consistently, using meaningful names, writing comments to explain intent, keeping functions focused on single tasks, limiting class and method complexity, and avoiding hardcoded values. It emphasizes habits like adhering to coding standards as a team and writing unit tests. Specific techniques mentioned include consistent formatting, searchable names, avoiding comments as a crutch, limiting function parameters and nesting depth, and preferring classes with cohesive responsibilities. The document recommends several coding standards and style guides.
Design Patterns - Compiler Case Study - Hands-on ExamplesGanesh Samarthyam
This presentation takes a case-study based approach to design patterns. A purposefully simplified example of expression trees is used to explain how different design patterns can be used in practice. Examples are in C#, but is relevant for anyone who is from object oriented background.
This presentation provides an overview of recently concluded Bangalore Container Conference (07-April-2017). See www.containerconf.in for more details.
Bangalore Container Conference 2017 (BCC '17) is the first conference on container technologies in India happening on 07th April. Organizations are increasingly adopting containers and related technologies in production.Hence, the main focus of this conference is “Containers in Production”. This one-day conference sets the perfect stage for container enthusiasts, developers, users and experts to meet together and learn from each others experiences.
Presented in Bangalore Open Java User Group on 21st Jan 2017
Awareness of design smells - Design comes before code. A care at design level can solve lot of problems.
Indicators of common design problems - helps developers or software engineers understand mistakes made while designing and apply design principles for creating high-quality designs. This presentation provides insights gained from performing refactoring in real-world projects to improve refactoring and reduce the time and costs of managing software projects. The talk also presents insightful anecdotes and case studies drawn from the trenches of real-world projects. By attending this talk, you will know pragmatic techniques for refactoring design smells to manage technical debt and to create and maintain high-quality software in practice. All the examples in this talk are in Java.
Bangalore Container Conference 2017 (BCC '17) is the first conference on container technologies in India. Organizations are increasingly adopting containers and related technologies in production. Hence, the main focus of this conference is “Containers in Production”. This one-day conference sets the perfect stage for container enthusiasts, developers, users and experts to meet together and learn from each others experiences.
Let's Go: Introduction to Google's Go Programming LanguageGanesh Samarthyam
This document introduces the Go programming language, which was announced by Google in 2009. It summarizes Go's key features, including being a concurrent, garbage-collected systems programming language. It also provides instructions on installing Go and a simple "Hello World" program example. The document highlights some of Go's novel features like interfaces and goroutines and concludes that Go shows promise as a useful systems language.
This document contains 5 quiz questions about Java generics with the corresponding answers. It was created by Ganesh Samarthyam from CodeOps to test knowledge of Java generics. Additional contact information for Ganesh and CodeOps is provided at the bottom, including email, social media profiles, phone number and website links.
This document provides an overview of Java generics through examples. It begins with simple examples demonstrating how generics can be used to define container classes (BoxPrinter) and pair classes (Pair). It discusses benefits like type safety and avoiding duplication. Further examples show generics with methods and limitations like erasure. Wildcard types are presented as a way to address subtyping issues. In general, generics provide flexibility in coding but their syntax can sometimes be complex to read.
The document describes an application with a pipe-and-filter architecture pattern where sensor data flows through multiple components that each transform the data before passing it to the next component and finally to a modeling and visualization unit. It then asks questions about software architecture patterns and styles like pipe-and-filter, lambda architecture, decorator pattern, Conway's law, architecture drift, REST, event sourcing, and recommends architecture refactoring when dependency analysis finds numerous cycles and tangles.
This presentation covers quiz questions prepared for the Core Java meetup on 1st October in Accion Labs. It has questions from "Java best practices", "bytecodes", and "elastic search".
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Łukasz Chruściel
No one wants their application to drag like a car stuck in the slow lane! Yet it’s all too common to encounter bumpy, pothole-filled solutions that slow the speed of any application. Symfony apps are not an exception.
In this talk, I will take you for a spin around the performance racetrack. We’ll explore common pitfalls - those hidden potholes on your application that can cause unexpected slowdowns. Learn how to spot these performance bumps early, and more importantly, how to navigate around them to keep your application running at top speed.
We will focus in particular on tuning your engine at the application level, making the right adjustments to ensure that your system responds like a well-oiled, high-performance race car.
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
What is Master Data Management by PiLog Groupaymanquadri279
PiLog Group's Master Data Record Manager (MDRM) is a sophisticated enterprise solution designed to ensure data accuracy, consistency, and governance across various business functions. MDRM integrates advanced data management technologies to cleanse, classify, and standardize master data, thereby enhancing data quality and operational efficiency.
8 Best Automated Android App Testing Tool and Framework in 2024.pdfkalichargn70th171
Regarding mobile operating systems, two major players dominate our thoughts: Android and iPhone. With Android leading the market, software development companies are focused on delivering apps compatible with this OS. Ensuring an app's functionality across various Android devices, OS versions, and hardware specifications is critical, making Android app testing essential.
Microservice Teams - How the cloud changes the way we workSven Peters
A lot of technical challenges and complexity come with building a cloud-native and distributed architecture. The way we develop backend software has fundamentally changed in the last ten years. Managing a microservices architecture demands a lot of us to ensure observability and operational resiliency. But did you also change the way you run your development teams?
Sven will talk about Atlassian’s journey from a monolith to a multi-tenanted architecture and how it affected the way the engineering teams work. You will learn how we shifted to service ownership, moved to more autonomous teams (and its challenges), and established platform and enablement teams.
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsPeter Muessig
The UI5 tooling is the development and build tooling of UI5. It is built in a modular and extensible way so that it can be easily extended by your needs. This session will showcase various tooling extensions which can boost your development experience by far so that you can really work offline, transpile your code in your project to use even newer versions of EcmaScript (than 2022 which is supported right now by the UI5 tooling), consume any npm package of your choice in your project, using different kind of proxies, and even stitching UI5 projects during development together to mimic your target environment.
Zoom is a comprehensive platform designed to connect individuals and teams efficiently. With its user-friendly interface and powerful features, Zoom has become a go-to solution for virtual communication and collaboration. It offers a range of tools, including virtual meetings, team chat, VoIP phone systems, online whiteboards, and AI companions, to streamline workflows and enhance productivity.
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
WWDC 2024 Keynote Review: For CocoaCoders AustinPatrick Weigel
Overview of WWDC 2024 Keynote Address.
Covers: Apple Intelligence, iOS18, macOS Sequoia, iPadOS, watchOS, visionOS, and Apple TV+.
Understandable dialogue on Apple TV+
On-device app controlling AI.
Access to ChatGPT with a guest appearance by Chief Data Thief Sam Altman!
App Locking! iPhone Mirroring! And a Calculator!!
Flutter is a popular open source, cross-platform framework developed by Google. In this webinar we'll explore Flutter and its architecture, delve into the Flutter Embedder and Flutter’s Dart language, discover how to leverage Flutter for embedded device development, learn about Automotive Grade Linux (AGL) and its consortium and understand the rationale behind AGL's choice of Flutter for next-gen IVI systems. Don’t miss this opportunity to discover whether Flutter is right for your project.
2. Leveraging Smells for Analytics
Software analytics has become a buzzword today and holds the promise of
increasing the efficiency of software development and processes. A number of people are
spending countless hours mining software repositories to garner retrospective and
predictive insights that can disrupt the way software projects are managed.
That brings us to the interesting question – can design smells be used for such
analytics i.e. can they be exploited to help improve software development and processes?
Let’s first talk about why we would want to do this. In our experience, many
managers are not convinced about the importance of refactoring and repaying technical
debt. They are only concerned with the product quality as perceived by the customer. This
is often quantified in terms of the number of field defects/bugs. As a result, managers
often relegate the improvement of design quality to a later release. We can, of course, wait
for them to realize their mistake eventually (when the technical debt becomes
humongous). But, maybe, there is a better way to convince managers to adopt refactoring
early on.
LEVERAGING SMELLS FOR ANALYTICS WWW.DESIGNSMELLS.COM
3. One option is to show that finding design smells and refactoring them actually leads
to a “reduction” in the amount of effort and time required to fix bugs or implement new
features. As an example, consider the “Insufficient Modularization” smell (see our book)
which occurs when a class has not been decomposed enough into more manageable (both
size and complexity-wise) classes. As a result, the class becomes difficult to understand –
its complexity impacts its understandability. Further, since the class may possibly have a
larger number of clients, extending the class may become a nightmare with a ripple effect
on all dependent clients – its complexity impacts its extensibility. When the
understandability and the extensibility of the class are reduced, we can intuit that it
becomes painful to modify the class when a bug fix or a new feature needs to be
accommodated. Every project manager who is true to his salt is extremely concerned
about the turn-around time for bugs and features. So, this “correlation” should really
catch his attention and motivate him to push for refactoring.
The other option (which is more of a question at this point) is - What if we can show
that finding design smells and refactoring them has a correlation with the product quality
as perceived by the customer? In other words, can finding and addressing smells lead to a
reduction in the number of defects that occur in the field? This is an open question at this
point and it would be great to find some data points that help reflect on this question.
In summary, such “retrospective analytics” on existing codebases and corresponding
bug repositories have the potential to reveal interesting “correlations” which can be
leveraged for effective “predictive analytics”.
About
the
Authors:
Ganesh
Samarthyam
(sgganesh@gmail.com)
is
an
Independent
Consultant
and
Corporate
Trainer
based
in
Bangalore.
Tushar
Sharma
(000.tushar@gmail.com)
is
a
Technical
Expert
at
Research
and
Technology
Centre,
Siemens
Technologies
and
Services
Pvt.
Ltd.,
Bangalore.
Girish
Suryanarayana
(girish.suryanarayana@gmail.com)
is
a
Senior
Research
Scientist
at
Research
and
Technology
Centre,
Siemens
Technologies
and
Services
Pvt.
Ltd.,
Bangalore.
LEVERAGING SMELLS FOR ANALYTICS WWW.DESIGNSMELLS.COM