46 research outputs found
CloudScent: a model for code smell analysis in open-source cloud
The low cost and rapid provisioning capabilities have made open-source cloud
a desirable platform to launch industrial applications. However, as open-source
cloud moves towards maturity, it still suffers from quality issues like code
smells. Although, a great emphasis has been provided on the economic benefits
of deploying open-source cloud, low importance has been provided to improve the
quality of the source code of the cloud itself to ensure its maintainability in
the industrial scenario. Code refactoring has been associated with improving
the maintenance and understanding of software code by removing code smells.
However, analyzing what smells are more prevalent in cloud environment and
designing a tool to define and detect those smells require further attention.
In this paper, we propose a model called CloudScent which is an open source
mechanism to detect smells in open-source cloud. We test our experiments in a
real-life cloud environment using OpenStack. Results show that CloudScent is
capable of accurately detecting 8 code smells in cloud. This will permit cloud
service providers with advanced knowledge about the smells prevalent in
open-source cloud platform, thus allowing for timely code refactoring and
improving code quality of the cloud platforms
Automating Source Code Refactoring in the Classroom
Refactoring is the practice of improving software quality without altering
its external behavior. Developers intuitively refactor their code for multiple
purposes, such as improving program comprehension, reducing code complexity,
dealing with technical debt, and removing code smells. However, no prior
studies have exposed the students to an experience of the process of
antipatterns detection and refactoring correction, and provided students with
toolset to practice it. To understand and increase the awareness of refactoring
concepts, in this paper, we aim to reflect on our experience with teaching
refactoring and how it helps students become more aware of bad programming
practices and the importance of correcting them via refactoring. This paper
discusses the results of an experiment in the classroom that involved carrying
out various refactoring activities for the purpose of removing antipatterns
using JDeodorant, an Eclipse plugin that supports antipatterns detection and
refactoring. The results of the quantitative and qualitative analysis with 171
students show that students tend to appreciate the idea of learning refactoring
and are satisfied with various aspects of the JDeodorant plugin's operation.
Through this experiment, refactoring can turn into a vital part of the
computing educational plan. We envision our findings enabling educators to
support students with refactoring tools tuned towards safer and trustworthy
refactoring
Supporting the Maintenance of Identifier Names: A Holistic Approach to High-Quality Automated Identifier Naming
A considerable part of the source code is identifier names-- unique lexical tokens that provide information about entities, and entity interactions, within the code. Identifier names provide human-readable descriptions of classes, functions, variables, etc. Poor or ambiguous identifier names (i.e., names that do not correctly describe the code behavior they are associated with) will lead developers to spend more time working towards understanding the code\u27s behavior. Bad naming can also have detrimental effects on tools that rely on natural language clues; degrading the quality of their output and making them unreliable. Additionally, misinterpretations of the code, caused by poor names, can result in the injection of quality issues into the system under maintenance. Thus, improved identifier naming increases developer effectiveness, higher-quality software, and higher-quality software analysis tools. In this dissertation, I establish several novel concepts that help measure and improve the quality of identifiers. The output of this dissertation work is a set of identifier name appraisal and quality tools that integrate into the developer workflow. Through a sequence of empirical studies, I have formulated a series of heuristics and linguistic patterns to evaluate the quality of identifier names in the code and provide naming structure recommendations. I envision and working towards supporting developers in integrating my contributions, discussed in this dissertation, into their development workflow to significantly improve the process of crafting and maintaining high-quality identifier names in the source code
An anti-malware product test orchestration solution for multiple pluggable environments
The term automation gets thrown around a lot these days in the software industry. However, the recent change in test automation in the software engineering process is driven by multiple factors such as environmental factors, both external and internal as well as industry-driven factors. Simply, what we all understand about automation is - the use of some technologies to operate a task. The choice of the right tools, be it in-house or any third-party software, can increase effectiveness, efficiency and coverage of the security product testing.
Often, test environments are maintained at various stages in the testing process. Developer’s test, dedicated test, integration test and pre-production or business readiness test are some common phrases in software testing. On the other hand, abstraction is often included between different architectural layers, ever-changing providers of virtualization platforms such as VMWare, OpenStack, AWS as test execution environments and many others with a different state of maintainability. As there is an obvious mismatch in configuration between development, testing and production environment; software testing process is often slow and tedious for many organizations due to the lack of collaboration between IT Operations and Software Development teams. Because of this, identifying and addressing test environmentrelated compatibility becomes a major concern for QA teams.
In this context, this thesis presents a DevOps approach and implementation method of an automated test execution solution named OneTA that can interact with multiple test environments including isolated malware test environments. The study was performed to identify a common way of preparing test environments in in-house and publicly available virtualization platforms where distributed tests can run on a regular basis. The current solution allows security product testing in multiple pluggable environments in a single setup utilizing the modern DevOps practice to result minimum efforts.
This thesis project was carried out in collaboration with F-Secure, a leading cyber security company in Finland. The project deals with the company’s internal environments for test execution. It explores the available infrastructures so that software development team can use this solution as a test execution tool
High Energy Physics Forum for Computational Excellence: Working Group Reports (I. Applications Software II. Software Libraries and Tools III. Systems)
Computing plays an essential role in all aspects of high energy physics. As
computational technology evolves rapidly in new directions, and data throughput
and volume continue to follow a steep trend-line, it is important for the HEP
community to develop an effective response to a series of expected challenges.
In order to help shape the desired response, the HEP Forum for Computational
Excellence (HEP-FCE) initiated a roadmap planning activity with two key
overlapping drivers -- 1) software effectiveness, and 2) infrastructure and
expertise advancement. The HEP-FCE formed three working groups, 1) Applications
Software, 2) Software Libraries and Tools, and 3) Systems (including systems
software), to provide an overview of the current status of HEP computing and to
present findings and opportunities for the desired HEP computational roadmap.
The final versions of the reports are combined in this document, and are
presented along with introductory material.Comment: 72 page
Design, implementation and experimental evaluation of a network-slicing aware mobile protocol stack
Mención Internacional en el título de doctorWith the arrival of new generation mobile networks, we currently observe a paradigm
shift, where monolithic network functions running on dedicated hardware are now
implemented as software pieces that can be virtualized on general purpose hardware
platforms. This paradigm shift stands on the softwarization of network functions and
the adoption of virtualization techniques. Network Function Virtualization (NFV)
comprises softwarization of network elements and virtualization of these components.
It brings multiple advantages: (i) Flexibility, allowing an easy management of the virtual
network functions (VNFs) (deploy, start, stop or update); (ii) efficiency, resources can be
adequately consumed due to the increased flexibility of the network infrastructure; and
(iii) reduced costs, due to the ability of sharing hardware resources. To this end, multiple
challenges must be addressed to effectively leverage of all these benefits.
Network Function Virtualization envisioned the concept of virtual network, resulting in
a key enabler of 5G networks flexibility, Network Slicing. This new paradigm represents
a new way to operate mobile networks where the underlying infrastructure is "sliced"
into logically separated networks that can be customized to the specific needs of the
tenant. This approach also enables the ability of instantiate VNFs at different locations
of the infrastructure, choosing their optimal placement based on parameters such as the
requirements of the service traversing the slice or the available resources. This decision
process is called orchestration and involves all the VNFs withing the same network slice.
The orchestrator is the entity in charge of managing network slices. Hands-on experiments
on network slicing are essential to understand its benefits and limits, and to validate the
design and deployment choices. While some network slicing prototypes have been built
for Radio Access Networks (RANs), leveraging on the wide availability of radio hardware
and open-source software, there is no currently open-source suite for end-to-end network
slicing available to the research community. Similarly, orchestration mechanisms must
be evaluated as well to properly validate theoretical solutions addressing diverse aspects
such as resource assignment or service composition.
This thesis contributes on the study of the mobile networks evolution regarding its
softwarization and cloudification. We identify software patterns for network function
virtualization, including the definition of a novel mobile architecture that squeezes the virtualization architecture by splitting functionality in atomic functions.
Then, we effectively design, implement and evaluate of an open-source network
slicing implementation. Our results show a per-slice customization without paying the
price in terms of performance, also providing a slicing implementation to the research
community. Moreover, we propose a framework to flexibly re-orchestrate a virtualized
network, allowing on-the-fly re-orchestration without disrupting ongoing services. This
framework can greatly improve performance under changing conditions. We evaluate
the resulting performance in a realistic network slicing setup, showing the feasibility and
advantages of flexible re-orchestration.
Lastly and following the required re-design of network functions envisioned during
the study of the evolution of mobile networks, we present a novel pipeline architecture
specifically engineered for 4G/5G Physical Layers virtualized over clouds. The proposed
design follows two objectives, resiliency upon unpredictable computing and parallelization
to increase efficiency in multi-core clouds. To this end, we employ techniques such as tight
deadline control, jitter-absorbing buffers, predictive Hybrid Automatic Repeat Request,
and congestion control. Our experimental results show that our cloud-native approach
attains > 95% of the theoretical spectrum efficiency in hostile environments where stateof-
the-art architectures collapse.This work has been supported by IMDEA Networks InstitutePrograma de Doctorado en Ingeniería Telemática por la Universidad Carlos III de MadridPresidente: Francisco Valera Pintor.- Secretario: Vincenzo Sciancalepore.- Vocal: Xenofon Fouka
Reaaliaikaisen verkon monitorointiohjelman pilveytys
Currently, almost all applications are wanted to move to the cloud. There are many reasons to move applications to the cloud, for example decreasing costs and scaling capabilities of the cloud. In this thesis the real time network monitoring product is until now installed on physical servers, but customers are requesting the possibility to install it into their own cloud in their datacentres. This is the reason why this network monitoring product and components belonging to it are now cloudified.
In the beginning of this thesis the theory of the cloud and virtualisation is explained. Then the virtualisation of network functions driven by ETSI NFV ISG is explained. After this the basics of the network monitoring product is described with the evaluation of its characteristics. Finally the programs used for the cloudification are described and the cloudification itselt is explained. Cloudification included installation of the monitoring product and verification of the functionalities on the OpenStack cloud operating system. Cloud image creation was automated during the thesis to help in the future development. Possible improvements to benefit more from using a cloud environment were developed and analysed.
The target in this thesis was achieved because the monitoring product is now functional in cloud environment. All of the benefits of the cloud are not achieved because the architecture of the product does not fulfil all the properties of a cloud product. The maturity and the size of the product make it complex to achieve all of the benefits of the cloud in a fast schedule. The product size is about 500 000 lines of code.Nykyään lähes kaikki ohjelmistot halutaan siirtää pilveen. Syitä ohjelmien siirtämiseen pilveen on monia, kuten kulujen pienentäminen ja skaalautuvuus. Työssä käsiteltävä reaaliaikainen verkon monitorointiohjelma on tähän asti asennettu fyysisille servereille, mutta asiakkaat haluavat ohjelmistojensa toimivan heidän omien konesaliensa pilvissä. Tässä työssä tämä monitorointiohjelma ja siihen kuuluvia komponentteja pilveytettiin.
Tämän työn alussa käsitellään ensin teoriaa pilvestä ja virtualisoinnista. Seuraavaksi käsitellään kommunikaatioverkkojen toimintojen virtualisointia ajavan ETSI NFV ISG:in ajamaa VNF konseptia. Tämän jälkeen käydään läpi pilveytettävän verkkojen monitorointiohjelman perustoiminnat ja ominaisuuksien evaluointi. Lopuksi käsitellään pilveytyksessä käytetyt ohjelmistot ja itse pilveytys. Pilveytykseen kuului monitorointiohjelman asennus ja toiminnallisuuden varmistus OpenStack-pilvialustalla. Pilveen asennettavan virtuaalikoneen asennuskuvan teko automatisoitiin tulevan kehitystyön helpottamiseksi. Mahdollisia jatkotoimenpiteitä kehitettiin ja analysoitiin, jotta tulevaisuudessa saataisiin mahdollisimman suuri hyöty pilven käytöstä.
Työn tavoitteeseen päästiin, koska monitorointiohjelma toimii nyt pilviympäristössä. Pilviympäristön kaikkia hyötyjä ei päästä käyttämään, koska ohjelmiston arkkitehtuuri ei nykyisessä muodossaan toteuta pilviohjelmiston tyypillisiä ominaisuuksia. Ohjelmiston kypsyys ja koko, joka on noin 500 000 riviä koodia, ei nopealla aikataululla pystytä muuttamaan niin että pilviympäristön kaikki hyödyt pystyttäisiin ottamaan käyttöön