103 research outputs found

    Educational approach of refactoring in facilitating reverse engineering

    Get PDF
    Refactoring improves software codes and design.This activity often neglected by software developers because they need time to decide tactically where and when to refactor codes.Although the concepts theoretically instilled in the developer’s mind, this activity is not easy to apply and visualize.This situation became more problematic when deals with inexperienced developers. Therefore, there is a need to develop an educational approach to comprehend refactoring activity.This activity was applied through reverse engineering tasks.The software engineering (SE) teams were required to apply reverse engineering activity in order to check the consistency between codes and design.The teams were encouraged to apply Model-View-Controller (MVC) pattern architecture in order to facilitate the activities.Findings revealed that Extreme Programming (XP) teams managed to complete reverse engineering tasks earlier than Formal teams.This study found that the approach is important to increase understanding of refactoring activities in reverse engineering process.This approach will be furthered applied for others SE teams to gain more insight and perceptions towards improving SE course

    Refactoring middleware with aspects

    Full text link

    An Approach to Invariant-based Program Refactoring

    Get PDF
    Refactoring tools include checking of an object-oriented program for the fulfillment of preconditions, for ensuring correctness. However, program invariants â semantic information about classes and fields assumed valid during program execution â are not considered by this precondition checking. As a result, applicability of automated refactorings is constrained in these cases, as refactorings that would be applicable considering the invariants get rejected, usually requiring manual changes. In this paper, we describe initial work on the use of program invariants (declared as code annotations) to increase applicability of automated refactoring. We propose an approach that uses primitive program transformations that employ the invariant to make the program syntactically amenable to the desired refactoring, before applying the refactoring itself

    Blended learning internationalization from the commonwealth: An Australian and Canadian collaborative case study

    Get PDF
    This case depiction addresses the contentious issue of providing culturally and globally accessible teaching and learning to international students in universities in the Commonwealth nations of Australia and Canada. The chapter describes the university systems and cultures, the barriers to authentic higher education internationalization, and the problems frequently experienced by international students. Two university cases are presented and analysed to depict and detail blended learning approaches (face-toface combined with e-learning) as exemplars of culturally and globally accessible higher education and thereby ideologically grounded internationalization. Lessons learned are presented at the systems level and as teaching and learning solutions designed to address pedagogical problems frequently experienced by international students in the areas of communication, academic skills, teaching and learning conceptualization, and moving from rote learning to critical thinking. The blended learning solutions are analysed through the lens of critical theory

    Variational Inference for Learning Representations of Natural Language Edits

    Full text link
    Document editing has become a pervasive component of the production of information, with version control systems enabling edits to be efficiently stored and applied. In light of this, the task of learning distributed representations of edits has been recently proposed. With this in mind, we propose a novel approach that employs variational inference to learn a continuous latent space of vector representations to capture the underlying semantic information with regard to the document editing process. We achieve this by introducing a latent variable to explicitly model the aforementioned features. This latent variable is then combined with a document representation to guide the generation of an edited version of this document. Additionally, to facilitate standardized automatic evaluation of edit representations, which has heavily relied on direct human input thus far, we also propose a suite of downstream tasks, PEER, specifically designed to measure the quality of edit representations in the context of natural language processing.Comment: Thirty-Fifth AAAI Conference on Artificial Intelligence (AAAI-21

    Estimating Possible Subsidy Effects in Broadband Services and Deployment

    Get PDF
    In this work, the dynamic competition between firms providing internet services is studied. The framework is Markov equilibrium whereby structural parameters are obtained using two-step estimations, allowing for analyzing the situation in case of subsidies for service upgrade. The results show that such subsidy has little effect on the number of firms while increasing the number of fast firms

    A System for Personality and Happiness Detection

    Get PDF
    This work proposes a platform for estimating personality and happiness. Starting from Eysenck's theory about human's personality, authors seek to provide a platform for collecting text messages from social media (Whatsapp), and classifying them into different personality categories. Although there is not a clear link between personality features and happiness, some correlations between them could be found in the future. In this work, we describe the platform developed, and as a proof of concept, we have used different sources of messages to see if common machine learning algorithms can be used for classifying different personality features and happiness

    Refactoring proofs

    Get PDF
    Refactoring is an important Software Engineering technique for improving the structure of a program after it has been written. Refactorings improve the maintainability, readability, and design of a program without affecting its external behaviour. In analogy, this thesis introduces proof refactoring to make structured, semantics preserving changes to the proof documents constructed by interactive theorem provers as part of a formal proof development. In order to formally study proof refactoring, the first part of this thesis constructs a proof language framework, Hiscript. The Hiscript framework consists of a procedural tactic language, a declarative proof language, and a modular theory language. Each level of this framework is equipped with a formal semantics based on a hierarchical notion of proof trees. Furthermore, this framework is generic as it does not prescribe an underlying logical kernel. This part contributes an investigation of semantics for formal proof documents, which is proved to construct valid proofs. Moreover, in analogy with type-checking, static well-formedness checks of proof documents are separated from evaluation of the proof. Furthermore, a subset of the SSReflect language for Coq, called eSSence, is also encoded using hierarchical proofs. Both Hiscript and eSSence are shown to have language elements with a natural hierarchical representation. In the second part, proof refactoring is put on a formal footing with a definition using the Hiscript framework. Over thirty refactorings are formally specified and proved to preserve the semantics in a precise way for the Hiscript language, including traditional structural refactorings, such as rename item, and proof specific refactorings such as backwards proof to forwards proof and declarative to procedural. Finally, a concrete, generic refactoring framework, called Polar, is introduced. Polar is based on graph rewriting and has been implemented with over ten refactorings and for two proof languages, including Hiscript. Finally, the third part concludes with some wishes for the future

    Web 2.0 Technologies in the Software Development Process.

    Get PDF
    Software engineers must communicate with many different people, likely in different locations, in order to create a successful piece of software. Social media can be used to communicate quickly and efficiently to minimize miscommunications and facilitate collaboration in the software development process. Research in this area has been sparse but significant because initial findings show that social media is being used in innovative ways to improve software development. Surveys of what social media some companies are currently using along with information about new social media systems indicate possible uses for these technologies on future software development projects such as documentation maintenance, employee training, and predicting and thus preventing build failures
    corecore