4,145 research outputs found

    Towards using online portfolios in computing courses

    Get PDF
    The direct experience we had with teaching a summer pre-college computing course in which we adopted an online portfolio approach has led us to consider the use of online portfolios in our regular computer science undergraduate courses. The technical challenges we foresee include: the necessary support from the college\u27s IT department; the use of Microsoft-based web authoring technologies vs. the use of Open Source / freeware counterparts; the need for adequate technical knowledge on the part of our faculty; the need for server-side hardware and software resources

    A heuristic-based approach to code-smell detection

    Get PDF
    Encapsulation and data hiding are central tenets of the object oriented paradigm. Deciding what data and behaviour to form into a class and where to draw the line between its public and private details can make the difference between a class that is an understandable, flexible and reusable abstraction and one which is not. This decision is a difficult one and may easily result in poor encapsulation which can then have serious implications for a number of system qualities. It is often hard to identify such encapsulation problems within large software systems until they cause a maintenance problem (which is usually too late) and attempting to perform such analysis manually can also be tedious and error prone. Two of the common encapsulation problems that can arise as a consequence of this decomposition process are data classes and god classes. Typically, these two problems occur together – data classes are lacking in functionality that has typically been sucked into an over-complicated and domineering god class. This paper describes the architecture of a tool which automatically detects data and god classes that has been developed as a plug-in for the Eclipse IDE. The technique has been evaluated in a controlled study on two large open source systems which compare the tool results to similar work by Marinescu, who employs a metrics-based approach to detecting such features. The study provides some valuable insights into the strengths and weaknesses of the two approache

    Catalogue of unexpected interactions between aspects

    Get PDF
    Tese de mestrado integrado. Engenharia Informática e Computação. Faculdade de Engenharia. Universidade do Porto. 200

    Smart home power management system for electric vehicle battery charger and electrical appliance control

    Get PDF
    This paper presents a power management system (PMS) designed for smart homes aiming to deal with the new challenges imposed by the proliferation of plug-in electric vehicles (EVs) and their coexistence with other residential electrical appliances. The PMS is based on a hybrid wireless network architecture composed by a local hub/gateway and several Bluetooth Low Energy (BLE) and Wi-Fi sensor/actuator devices. These wireless devices are used to transfer information inside the smart home using the MQTT (Message Queuing Telemetry Transport) protocol. Based on the proposed solution, the current consumption of the EV battery charger and other residential electrical appliances are dynamically monitored and controlled by using a configurable algorithm, ensuring that the total current consumption does not cause the tripping of the home circuit breaker. An Android client application allows the user to monitor and configure the system operation in real-time, a developed Wi Fi smart plug permits to measure the RMS values of current of the connected electrical appliance and change its state of operation remotely, and an EV battery charger may be controlled in terms of operating power according to set-points received from the Android client application. Experimental tests are used to evaluate the quality of service provided by the developed smart home platform in terms of communication delay and reliability. An experimental validation for different conditions of operation of the proposed smart home PMS concerning the power operation of the EV battery charger with the proposed control algorithm is also presented.info:eu-repo/semantics/acceptedVersio

    Lightweight and static verification of UML executable models

    Get PDF
    Executable models play a key role in many development methods (such as MDD and MDA) by facilitating the immediate simulation/implementation of the software system under development. This is possible because executable models include a fine-grained specification of the system behaviour using an action language. Executable models are not a new concept but are now experiencing a comeback. As a relevant example, the OMG has recently published the first version of the “Foundational Subset for Executable UML Models” (fUML) standard, an executable subset of the UML that can be used to define, in an operational style, the structural and behavioural semantics of systems. The OMG has also published a beta version of the “Action Language for fUML” (Alf) standard, a concrete syntax conforming to the fUML abstract syntax, that provides the constructs and textual notation to specify the fine-grained behaviour of systems. The OMG support to executable models is substantially raising the interest of software companies for this topic. Given the increasing importance of executable models and the impact of their correctness on the final quality of software systems derived from them, the existence of methods to verify the correctness of executable models is becoming crucial. Otherwise, the quality of the executable models (and in turn the quality of the final system generated from them) will be compromised. Despite the number of research works targetting the verification of software models, their computational cost and poor feedback makes them difficult to integrate in current software development processes. Therefore, there is the need for efficient and useful methods to check the correctness of executable models and tools integrated to the modelling tools used by designers. In this thesis we propose a verification framework to help the designers to improve the quality of their executable models. Our framework is composed of a set of lightweight static methods, i.e. methods that do not require to execute the model in order to check the desired property. These methods are able to check several properties over the behavioural part of an executable model (for instance, over the set of operations that compose a behavioural executable model) such as syntactic correctness (i.e. all the operations in the behavioural model conform to the syntax of the language in which it is described), non-redundancy (i.e. there is no another operation with exactly the same behaviour), executability (i.e. after the execution of an operation, the reached system state is -in case of strong executability- or may be -in case of weak executability- consistent with the structural model and its integrity constraints) and completeness (i.e. all possible changes on the system state can be performed through the execution of the operations defined in the executable model). For incorrect models, the methods that compose our verification framework return a meaningful feedback that helps repairing the detected inconsistencies

    Comparison of composition engines and identification of shortcomings with respect to cloud computing

    Get PDF
    Most workflow engines are currently not Cloud-aware. This is due to multiple reasons like no support for transparent scalability, no multi-tenancy support, no ability to store process related data in a Cloud storage, or no support for quality of service enforcements. Recently Cloud based workflow services appeared in the workflow landscape and promise to run workflows in the Cloud. This student reports evaluates current state of the art BPEL and BPMN workflow engines and Cloud based workflow services according to their Cloud- awareness and general workflow functionalities. Identified shortcomings are described and prioritized. As a result of this evaluation the workflow engine WSO2 Stratos is best suited for running workflows in the Cloud, but it lacks native clustering support and quality of service enforcement
    • …
    corecore