In Proceedings of the INTED2011 (International Technology, Education and Development Conference) held in Valencia (Spain) on the 7th, 8th and 9th of March, 2011.
AN INVESTIGATION OF SOFTWARE REQUIREMENTS PRACTICES AMONG SOFTWARE PRACTITION...ijseajournal
This paper presents the result of software requirements practices survey among software practitioners, a study in a city of Jeddah, Saudi Arabia. As software requirements are important and they lead to the successful of a software development project, it becomes interesting to investigate the current software requirements practices in the kingdom of Saudi Arabia. As an initial work, a survey was conducted in
Jeddah as a study before we conduct it in the Kingdom of Saudi Arabia software industry. The survey is conducted by distributing a set of questionnaire to the software practitioners. There are 17 respondents completed the questionnaire out of 50 distributed questionnaire, which is 34% of response rate. The result of this survey is promising and it has shown that requirements management area should be focused for
future improvement. In the future, the survey will focus on software engineering and requirements engineering practices over the entire Kingdom of Saudi Arabia software industry.
In Proceedings of the INTED2011 (International Technology, Education and Development Conference) held in Valencia (Spain) on the 7th, 8th and 9th of March, 2011.
AN INVESTIGATION OF SOFTWARE REQUIREMENTS PRACTICES AMONG SOFTWARE PRACTITION...ijseajournal
This paper presents the result of software requirements practices survey among software practitioners, a study in a city of Jeddah, Saudi Arabia. As software requirements are important and they lead to the successful of a software development project, it becomes interesting to investigate the current software requirements practices in the kingdom of Saudi Arabia. As an initial work, a survey was conducted in
Jeddah as a study before we conduct it in the Kingdom of Saudi Arabia software industry. The survey is conducted by distributing a set of questionnaire to the software practitioners. There are 17 respondents completed the questionnaire out of 50 distributed questionnaire, which is 34% of response rate. The result of this survey is promising and it has shown that requirements management area should be focused for
future improvement. In the future, the survey will focus on software engineering and requirements engineering practices over the entire Kingdom of Saudi Arabia software industry.
The Gap Between Academic Research and Industrial Practice in Software TestingZoltan Micskei
In software engineering, there is always a gap between the current research topics and the everyday industrial practice. However, in my experience this gap is much wider in software testing, e.g. advanced testing techniques seldom reach everyday testers. This gap can be attributed to several factors, the talk will highlight education and tools from the possible causes. In order to illustrate this gap the talk will collect and compere the topics of recent academic and industrial testing related conferences. My goal is to offer a glimpse into recent software testing research topics to practitioners, and start a discussion whether there is really a wide gap between academy and industry.
A study of various viewpoints and aspects software quality perspectiveeSAT Journals
Abstract The software quality is very important research of software engineering grown from the last two decades. The software engineering paradigm adopted by many organizations to develop the high quality software at affordable cost. The high quality software is considered as one of the key factor in the rapid growth of Global Software Development. The software metrics computes and evaluates the quality characteristics and used to take quantitative and qualitative decisions for risk assessment and reduction. The multiple stakeholders can view the software quality in multiple angles with various aspects. In this paper we present multiple views of the software quality with respect to various quality aspects. Key Words : Stakeholders, Functional aspect, Structural aspect, Process aspect, Metrics etc.
Code smells are symptoms of poor design solutions applied by programmers during the development of software systems. While the research community devoted a lot of effort to studying and devising approaches for detecting the traditional code smells defined by Fowler, little knowledge and support is available for an emerging category of Mobile app code smells. Recently, Reimann et al. proposed a new catalogue of Android- specific code smells that may be a threat for the maintainability and the efficiency of Android applications. However, current tools working in the context of Mobile apps provide limited support and, more importantly, are not available for developers interested in monitoring the quality of their apps. To overcome these limitations, we propose a fully automated tool, coined aDoctor, able to identify 15 Android-specific code smells from the catalogue by Reimann et al. An empirical study conducted on the source code of 18 Android applications reveals that the proposed tool reaches, on average, 98% of precision and 98% of recall. We made aDoctor publicly available.
DESQA a Software Quality Assurance FrameworkIJERA Editor
In current software development lifecycles of heterogeneous environments, the pitfalls businesses have to face are that software defect tracking, measurements and quality assurance do not start early enough in the development process. In fact the cost of fixing a defect in a production environment is much higher than in the initial phases of the Software Development Life Cycle (SDLC) which is particularly true for Service Oriented Architecture (SOA). Thus the aim of this study is to develop a new framework for defect tracking and detection and quality estimation for early stages particularly for the design stage of the SDLC. Part of the objectives of this work is to conceptualize, borrow and customize from known frameworks, such as object-oriented programming to build a solid framework using automated rule based intelligent mechanisms to detect and classify defects in software design of SOA. The implementation part demonstrated how the framework can predict the quality level of the designed software. The results showed a good level of quality estimation can be achieved based on the number of design attributes, the number of quality attributes and the number of SOA Design Defects. Assessment shows that metrics provide guidelines to indicate the progress that a software system has made and the quality of design. Using these guidelines, we can develop more usable and maintainable software systems to fulfill the demand of efficient systems for software applications. Another valuable result coming from this study is that developers are trying to keep backwards compatibility when they introduce new functionality. Sometimes, in the same newly-introduced elements developers perform necessary breaking changes in future versions. In that way they give time to their clients to adapt their systems. This is a very valuable practice for the developers because they have more time to assess the quality of their software before releasing it. Other improvements in this research include investigation of other design attributes and SOA Design Defects which can be computed in extending the tests we performed.
Testing desktop application police station information management systemSalam Shah
The police stations have adequate importance in the society to control the law and order situations of the country. In Pakistan, police stations manage criminal records and information manually. We have previously developed and improved a desktop application for the record keeping of the different registers of the police stations. The data of police stations is sensitive and that need to be handled within secured and fully functional software to avoid any unauthorized access. For the proper utilization of the newly developed software, it is necessary to test and analyze the system before deployment into the real environment. In this paper, we have performed the testing of an application. For this purpose, we have used Ranorex, automated testing tool for the functional and performance testing, and reported the results of test cases as pass or fail.
The Future of Coding: Exploring Next-Gen Software Development SolutionsTyrion Lannister
The future of coding is here, and it's driven by innovative tools, methodologies, and approaches that promise to reshape how we build and deliver software.
1. Emergence of Software EngineeringIn the software industry, we.docxjackiewalcutt
1. Emergence of Software Engineering
In the software industry, we have seen the complexity of computer-based systems increase dramatically over the past decades along with advances in technology. This new technology has increased the demand for computer-based systems to control many infrastructures with software. As a result, designing and building cost-effective, reliable, and high-quality software has become the focus of software engineering in the computer industry.
In the past the processes used for designing and developing software were very informal, which contributed to the rise in development and maintenance costs. The results of ad hoc development processes contributed to a higher percentage of unreliable and lesser quality products entering the marketplace. Many accidents resulted from failures in computer-based systems with hardware devices that were controlled with software. At the time, the industry was considered to be in a crisis state, which then led to the emergence of new practices and methods in software engineering.
Technological advances have had a big impact on the complexity level required in software systems. The emergence of new communication protocols, hardware devices, and graphical user interface components have placed a greater demand on software engineers to design quality, reliable, and safe software.
A Brief History of Software Engineering
In the 1950s and the early 1960s, the various engineering disciplines were beginning to analyze how aspects of the engineering field could be applied to methods used in developing software products. As computing power evolved over the decades, the demand increased along with the complexity of the problems that needed to be addressed in the design of software. The term software engineering was introduced in 1968 at the first international software engineering conference, held by the North Atlantic Treaty Organization (NATO) Science Committee (Mahoney 2004). Many practitioners believe this is the milestone that marked the emergence of the software engineering discipline.
Software was developed to control critical hardware devices in the mid- to late-1960s and early 1970s. During this time, cases emerged that involved operational errors and accidents resulting in the loss of human lives and damage to property. Defects in software were uncovered, which heightened public awareness to the need for better quality and reliability of software. The escalating cost of building quality and reliable software was on the rise in the computer industry and the demand for skilled programmers could not be met. The state of software development was viewed by practitioners as being in a "crisis" state and was commonly referred to as the software crisis.
In response to the software crisis, researchers and practitioners have been trying to develop a set of methodologies, processes, and tools as the "silver bullet" for building software. The combination of these methodologies, processes, and tools i ...
The Gap Between Academic Research and Industrial Practice in Software TestingZoltan Micskei
In software engineering, there is always a gap between the current research topics and the everyday industrial practice. However, in my experience this gap is much wider in software testing, e.g. advanced testing techniques seldom reach everyday testers. This gap can be attributed to several factors, the talk will highlight education and tools from the possible causes. In order to illustrate this gap the talk will collect and compere the topics of recent academic and industrial testing related conferences. My goal is to offer a glimpse into recent software testing research topics to practitioners, and start a discussion whether there is really a wide gap between academy and industry.
A study of various viewpoints and aspects software quality perspectiveeSAT Journals
Abstract The software quality is very important research of software engineering grown from the last two decades. The software engineering paradigm adopted by many organizations to develop the high quality software at affordable cost. The high quality software is considered as one of the key factor in the rapid growth of Global Software Development. The software metrics computes and evaluates the quality characteristics and used to take quantitative and qualitative decisions for risk assessment and reduction. The multiple stakeholders can view the software quality in multiple angles with various aspects. In this paper we present multiple views of the software quality with respect to various quality aspects. Key Words : Stakeholders, Functional aspect, Structural aspect, Process aspect, Metrics etc.
Code smells are symptoms of poor design solutions applied by programmers during the development of software systems. While the research community devoted a lot of effort to studying and devising approaches for detecting the traditional code smells defined by Fowler, little knowledge and support is available for an emerging category of Mobile app code smells. Recently, Reimann et al. proposed a new catalogue of Android- specific code smells that may be a threat for the maintainability and the efficiency of Android applications. However, current tools working in the context of Mobile apps provide limited support and, more importantly, are not available for developers interested in monitoring the quality of their apps. To overcome these limitations, we propose a fully automated tool, coined aDoctor, able to identify 15 Android-specific code smells from the catalogue by Reimann et al. An empirical study conducted on the source code of 18 Android applications reveals that the proposed tool reaches, on average, 98% of precision and 98% of recall. We made aDoctor publicly available.
DESQA a Software Quality Assurance FrameworkIJERA Editor
In current software development lifecycles of heterogeneous environments, the pitfalls businesses have to face are that software defect tracking, measurements and quality assurance do not start early enough in the development process. In fact the cost of fixing a defect in a production environment is much higher than in the initial phases of the Software Development Life Cycle (SDLC) which is particularly true for Service Oriented Architecture (SOA). Thus the aim of this study is to develop a new framework for defect tracking and detection and quality estimation for early stages particularly for the design stage of the SDLC. Part of the objectives of this work is to conceptualize, borrow and customize from known frameworks, such as object-oriented programming to build a solid framework using automated rule based intelligent mechanisms to detect and classify defects in software design of SOA. The implementation part demonstrated how the framework can predict the quality level of the designed software. The results showed a good level of quality estimation can be achieved based on the number of design attributes, the number of quality attributes and the number of SOA Design Defects. Assessment shows that metrics provide guidelines to indicate the progress that a software system has made and the quality of design. Using these guidelines, we can develop more usable and maintainable software systems to fulfill the demand of efficient systems for software applications. Another valuable result coming from this study is that developers are trying to keep backwards compatibility when they introduce new functionality. Sometimes, in the same newly-introduced elements developers perform necessary breaking changes in future versions. In that way they give time to their clients to adapt their systems. This is a very valuable practice for the developers because they have more time to assess the quality of their software before releasing it. Other improvements in this research include investigation of other design attributes and SOA Design Defects which can be computed in extending the tests we performed.
Testing desktop application police station information management systemSalam Shah
The police stations have adequate importance in the society to control the law and order situations of the country. In Pakistan, police stations manage criminal records and information manually. We have previously developed and improved a desktop application for the record keeping of the different registers of the police stations. The data of police stations is sensitive and that need to be handled within secured and fully functional software to avoid any unauthorized access. For the proper utilization of the newly developed software, it is necessary to test and analyze the system before deployment into the real environment. In this paper, we have performed the testing of an application. For this purpose, we have used Ranorex, automated testing tool for the functional and performance testing, and reported the results of test cases as pass or fail.
The Future of Coding: Exploring Next-Gen Software Development SolutionsTyrion Lannister
The future of coding is here, and it's driven by innovative tools, methodologies, and approaches that promise to reshape how we build and deliver software.
1. Emergence of Software EngineeringIn the software industry, we.docxjackiewalcutt
1. Emergence of Software Engineering
In the software industry, we have seen the complexity of computer-based systems increase dramatically over the past decades along with advances in technology. This new technology has increased the demand for computer-based systems to control many infrastructures with software. As a result, designing and building cost-effective, reliable, and high-quality software has become the focus of software engineering in the computer industry.
In the past the processes used for designing and developing software were very informal, which contributed to the rise in development and maintenance costs. The results of ad hoc development processes contributed to a higher percentage of unreliable and lesser quality products entering the marketplace. Many accidents resulted from failures in computer-based systems with hardware devices that were controlled with software. At the time, the industry was considered to be in a crisis state, which then led to the emergence of new practices and methods in software engineering.
Technological advances have had a big impact on the complexity level required in software systems. The emergence of new communication protocols, hardware devices, and graphical user interface components have placed a greater demand on software engineers to design quality, reliable, and safe software.
A Brief History of Software Engineering
In the 1950s and the early 1960s, the various engineering disciplines were beginning to analyze how aspects of the engineering field could be applied to methods used in developing software products. As computing power evolved over the decades, the demand increased along with the complexity of the problems that needed to be addressed in the design of software. The term software engineering was introduced in 1968 at the first international software engineering conference, held by the North Atlantic Treaty Organization (NATO) Science Committee (Mahoney 2004). Many practitioners believe this is the milestone that marked the emergence of the software engineering discipline.
Software was developed to control critical hardware devices in the mid- to late-1960s and early 1970s. During this time, cases emerged that involved operational errors and accidents resulting in the loss of human lives and damage to property. Defects in software were uncovered, which heightened public awareness to the need for better quality and reliability of software. The escalating cost of building quality and reliable software was on the rise in the computer industry and the demand for skilled programmers could not be met. The state of software development was viewed by practitioners as being in a "crisis" state and was commonly referred to as the software crisis.
In response to the software crisis, researchers and practitioners have been trying to develop a set of methodologies, processes, and tools as the "silver bullet" for building software. The combination of these methodologies, processes, and tools i ...
Mobile App Development and Management: Results from a Qualitative InvestigationMobileSoft
"Mobile App Development and Management: Results from a Qualitative Investigation" by Rita Francese, Carmine Gravino, Michele Risi, Giuseppe Scanniello and Genoveffa Tortora
MobileSoft'17, Buenos Aires, Argentina, 2017.
Android-manifest extraction and labeling method for malware compilation and d...IJECEIAES
Malware is a nuisance for smartphone users. The impact is detrimental to smartphone users if the smartphone is infected by malware. Malware identification is not an easy process for ordinary users due to its deeply concealed dangers in application package kit (APK) files available in the Android Play Store. In this paper, the challenges of creating malware datasets are discussed. Long before a malware classification process and model can be built, the need for datasets with representative features for most types of malwares has to be addressed systematically. Only after a quality data set is available can a quality classification model be obtained using machine learning (ML) or deep learning (DL) algorithms. The entire malware classification process is a full pipeline process and sub processes. The authors purposefully focus on the process of building quality malware datasets, not on ML itself, because implementing ML requires another effort after the reliable dataset is fully built. The overall step in creating the malware dataset starts with the extraction of the Android Manifest from the APK file set and ends with the labeling method for all the extracted APK files. The key contribution of this paper is on how to generate datasets systematically from any APK file.
Social Debt Analytics for Improving the Management of Software Evolution TasksFabio Palomba
The success of software engineering projects is in a large part dependent on social and organization aspects of the development community. Indeed, it not only depends on the complexity of the product or the number of requirements to be implemented, but also on people, processes, and how they impact the technical side of software development. Social debt represents patterns across the organizational structure around a software system that may lead to additional unforeseen project costs. Condescending behavior, disgruntlement or rage quitting are just some examples of social issues that may occur among the developers of a software project. While the research community has recently investigated the underlying dynamics leading to the introduction of social debt (e.g., the so-called “community smells” which represent symptoms of the presence of social problems in a community), as well as how such debt can be payed off, there is still a noticeable lack of empirical evidence on how social debt impacts software maintenance and evolution. In this paper, we present our position on how social debt can impacts technical aspects of source code by presenting a road map toward a deeper understanding of such relationship.
Software Development Today Everything You Need To Know.pdfchristiemarie4
Willing to develop software for your enterprise, but confused about where to start? Here is the blog that explains everything you need to know about software development.
Thorsignia - Custom software development services in indiacharan Teja
Thorsignia is a leading IT and Multimedia company that provides an integrated range of services. We render finest quality outputs to our clients through our domain expertise.
AI in software development can help developers increase productivity by 10X. Here are 4 ways AI improves software development processes. Read more https://www.weblineindia.com/blog/4-ways-ai-improves-software-development/
Saudi Arabia stands as a titan in the global energy landscape, renowned for its abundant oil and gas resources. It's the largest exporter of petroleum and holds some of the world's most significant reserves. Let's delve into the top 10 oil and gas projects shaping Saudi Arabia's energy future in 2024.
Overview of the fundamental roles in Hydropower generation and the components involved in wider Electrical Engineering.
This paper presents the design and construction of hydroelectric dams from the hydrologist’s survey of the valley before construction, all aspects and involved disciplines, fluid dynamics, structural engineering, generation and mains frequency regulation to the very transmission of power through the network in the United Kingdom.
Author: Robbie Edward Sayers
Collaborators and co editors: Charlie Sims and Connor Healey.
(C) 2024 Robbie E. Sayers
Cosmetic shop management system project report.pdfKamal Acharya
Buying new cosmetic products is difficult. It can even be scary for those who have sensitive skin and are prone to skin trouble. The information needed to alleviate this problem is on the back of each product, but it's thought to interpret those ingredient lists unless you have a background in chemistry.
Instead of buying and hoping for the best, we can use data science to help us predict which products may be good fits for us. It includes various function programs to do the above mentioned tasks.
Data file handling has been effectively used in the program.
The automated cosmetic shop management system should deal with the automation of general workflow and administration process of the shop. The main processes of the system focus on customer's request where the system is able to search the most appropriate products and deliver it to the customers. It should help the employees to quickly identify the list of cosmetic product that have reached the minimum quantity and also keep a track of expired date for each cosmetic product. It should help the employees to find the rack number in which the product is placed.It is also Faster and more efficient way.
Water scarcity is the lack of fresh water resources to meet the standard water demand. There are two type of water scarcity. One is physical. The other is economic water scarcity.
Final project report on grocery store management system..pdfKamal Acharya
In today’s fast-changing business environment, it’s extremely important to be able to respond to client needs in the most effective and timely manner. If your customers wish to see your business online and have instant access to your products or services.
Online Grocery Store is an e-commerce website, which retails various grocery products. This project allows viewing various products available enables registered users to purchase desired products instantly using Paytm, UPI payment processor (Instant Pay) and also can place order by using Cash on Delivery (Pay Later) option. This project provides an easy access to Administrators and Managers to view orders placed using Pay Later and Instant Pay options.
In order to develop an e-commerce website, a number of Technologies must be studied and understood. These include multi-tiered architecture, server and client-side scripting techniques, implementation technologies, programming language (such as PHP, HTML, CSS, JavaScript) and MySQL relational databases. This is a project with the objective to develop a basic website where a consumer is provided with a shopping cart website and also to know about the technologies used to develop such a website.
This document will discuss each of the underlying technologies to create and implement an e- commerce website.
Hierarchical Digital Twin of a Naval Power SystemKerry Sado
A hierarchical digital twin of a Naval DC power system has been developed and experimentally verified. Similar to other state-of-the-art digital twins, this technology creates a digital replica of the physical system executed in real-time or faster, which can modify hardware controls. However, its advantage stems from distributing computational efforts by utilizing a hierarchical structure composed of lower-level digital twin blocks and a higher-level system digital twin. Each digital twin block is associated with a physical subsystem of the hardware and communicates with a singular system digital twin, which creates a system-level response. By extracting information from each level of the hierarchy, power system controls of the hardware were reconfigured autonomously. This hierarchical digital twin development offers several advantages over other digital twins, particularly in the field of naval power systems. The hierarchical structure allows for greater computational efficiency and scalability while the ability to autonomously reconfigure hardware controls offers increased flexibility and responsiveness. The hierarchical decomposition and models utilized were well aligned with the physical twin, as indicated by the maximum deviations between the developed digital twin hierarchy and the hardware.
Welcome to WIPAC Monthly the magazine brought to you by the LinkedIn Group Water Industry Process Automation & Control.
In this month's edition, along with this month's industry news to celebrate the 13 years since the group was created we have articles including
A case study of the used of Advanced Process Control at the Wastewater Treatment works at Lleida in Spain
A look back on an article on smart wastewater networks in order to see how the industry has measured up in the interim around the adoption of Digital Transformation in the Water Industry.
About
Indigenized remote control interface card suitable for MAFI system CCR equipment. Compatible for IDM8000 CCR. Backplane mounted serial and TCP/Ethernet communication module for CCR remote access. IDM 8000 CCR remote control on serial and TCP protocol.
• Remote control: Parallel or serial interface.
• Compatible with MAFI CCR system.
• Compatible with IDM8000 CCR.
• Compatible with Backplane mount serial communication.
• Compatible with commercial and Defence aviation CCR system.
• Remote control system for accessing CCR and allied system over serial or TCP.
• Indigenized local Support/presence in India.
• Easy in configuration using DIP switches.
Technical Specifications
Indigenized remote control interface card suitable for MAFI system CCR equipment. Compatible for IDM8000 CCR. Backplane mounted serial and TCP/Ethernet communication module for CCR remote access. IDM 8000 CCR remote control on serial and TCP protocol.
Key Features
Indigenized remote control interface card suitable for MAFI system CCR equipment. Compatible for IDM8000 CCR. Backplane mounted serial and TCP/Ethernet communication module for CCR remote access. IDM 8000 CCR remote control on serial and TCP protocol.
• Remote control: Parallel or serial interface
• Compatible with MAFI CCR system
• Copatiable with IDM8000 CCR
• Compatible with Backplane mount serial communication.
• Compatible with commercial and Defence aviation CCR system.
• Remote control system for accessing CCR and allied system over serial or TCP.
• Indigenized local Support/presence in India.
Application
• Remote control: Parallel or serial interface.
• Compatible with MAFI CCR system.
• Compatible with IDM8000 CCR.
• Compatible with Backplane mount serial communication.
• Compatible with commercial and Defence aviation CCR system.
• Remote control system for accessing CCR and allied system over serial or TCP.
• Indigenized local Support/presence in India.
• Easy in configuration using DIP switches.
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)MdTanvirMahtab2
This presentation is about the working procedure of Shahjalal Fertilizer Company Limited (SFCL). A Govt. owned Company of Bangladesh Chemical Industries Corporation under Ministry of Industries.
Runway Orientation Based on the Wind Rose Diagram.pptx
Synopsis ( Code Smells)
1. AMITY SCHOOL OF ENGINEERING AND
TECHNOLOGY, DELHI
An institution of Ritnand Balved Education Foundation (RBEF)
Synopsis On
Android Smell Analysis using
Machine Learning
Branch: Computer Science and Engineering (CSE)
Team Members:-
Mentor:-
Ms. Aakanshi Gupta
Kritika Phulli 01610402716 kritika1298phulli@gmail.com 14
Nidhi Kumari
Chauhan
02110402716 nidhikchauhan0411@gmail.com 19
Deepanshu
Sharma
35210402716 ping.deepanshusharma@gmail.com 36
Vishal Bhat 41910402716 vishalbhat83@gmail.com 60
2.
3. INTRODUCTION
Research in software engineering is concerned with the enhancement and automation of the
processes of improving software designs. While there is a broad consensus on the problems
associated with software development, a specific understanding of the software engineering
problem and the appropriate solutions are inevitably driven by the target application domain
in software designing. In the software development community, there is a general belief that
such suboptimal design decisions, which can be identified in source code as code smells,
negatively impact software quality, e.g. the rate of identified bugs in post-release software.
Consequently, the presence of code smells in a software project could be a predictor of
upcoming issues related to low quality software. The methods and approaches applied to
control and eventually remedy source code affected by code smells, constitute an important
research field in software engineering. Developers are typically trained to look out for logical
errors that have been accidentally introduced to their code. Such errors will range from
forgotten edge cases that have not been handled to logical bugs that cause entire systems
to crash. But what about the other issues that don’t affect the way the system works?
Considering the design issues that make the system hard to maintain, and increase the
chance of bugs in the future contributes to increased maintenance costs. Code smells are
symptoms in source code that are indicative of bad style and/or design. They violate good
practices and design principles, affecting understanding, maintenance and promoting a
negative impact on software quality and ease of evolution. They are signals that your code
should be refactored in order to improve extendibility, readability, and supportability.
Code smells are usually not bugs – they are not technically incorrect and do not currently
prevent the program from functioning. They indicate weaknesses in design that may be
slowing down development or increasing risk of bugs or failure in the future. Code smells
can be an indicator of factors that contribute to technical debt.
In recent years, mobile applications have grown to become a large part of the software
industry. According to Gartner1, in 2016 more than 300 billion apps will be downloaded.
Another Gartner2 report shows that in 2015, Android had more than 78% of the world market
share of smart phones. Based on higher usage of Android Application, in this project, we
focus on Android Specific Code Smells that hamper the Android code to consume more
energy.
4. METHODOLOGY
Code smells are associated with poor coding practices that cause long-term maintainability
problems and mask bugs. Despite mobile being a fast growing software sector, code smells
in mobile applications have been understudied. We do not know how code smells in mobile
applications compare to those in desktop applications, and how code smells are affecting the
design of mobile applications. Without such knowledge, application developers, tool builders,
and researchers cannot improve the practice and state of the art of mobile development.
Researchers and practitioners widely recognized code smells as a harmful source of
maintenance issues which result in a lower productivity and higher rework for developers.
For these reasons, researchers have been particularly active in the definition of techniques
for detecting code smells as well as in the understanding of the analysis .These Android
specific smells may threat several non-functional attributes of mobile apps, such as security,
data integrity, and source code quality.
While the catalogue by Reimann et al. proposes a set of 30 design flaws related to both
implementation and UI design, in this project, we focus our attention solely on the smells
characterizing a problem in the source code. These Android specific code smells include:
Leaking Inner Class (LIC), Member Ignoring Method (MIM), No Low Memory Resolver
(NLMR), Slow Loop (SL), Unclosed Closable (UC), Debuggable Release (DR) etc.
The aim is to detect some of the smells in the Android Application’s source code which are
based on Java Programming Language and analyse the number and type of smells present
in each of its instances. Once smells are detected and analysed, we intend to apply Machine
Learning Algorithms to find a limiting criteria to the code smells that pose a threat in software
designing with the help of visualising the datasets and rule mining. The outcome is supposed
to minimize the potential threats in this growing era of software designing and Engineering
which would result in more efficient software systems.
5. REFERENCES
M. Abbes, F. Khomh, Y.-G. Gu´eh´eneuc, and G. Antoniol, “An empirical study
of the impact of two antipatterns, Blob and Spaghetti Code, on program
comprehension,” in 15th European Conference on Software Maintenance and
Reengineering, CSMR. IEEE, 2011, pp. 181–190.
A. Yamashita and L. Moonen, “Exploring the impact of inter-smell relations on
software maintainability: An empirical study,” in Proceedings of the International
Conference on Software Engineering (ICSE). IEEE, 2013, pp. 682–691.
Transactions on Software Engineering, vol. 36, no. 1, pp. 20–36, 2010.
F. Palomba, G. Bavota, M. Di Penta, R. Oliveto, D. Poshyvanyk, and A. De
Lucia, “Mining version histories for detecting code smells,” IEEE Transactions
on Software Engineering, vol. 41, no. 5, pp. 462–489, May 2015