182,675 research outputs found
Pembelajaran Pemrograman Berorientasi Objek (Object Oriented Programming) Berbasis Project Based Learning
Learning aims to help to gain experience both knowledge, skills, and values in order to become increasing quantity and quality. For that education should be able to prepare human resources creative. The problems found in learning require creative thinking especially in programming learning, the ability to think algorithm is needed to make the program made as expected. Object oriented programming or Object Oriented Programming (OOP) provides convenience in making a program, because OOP programming has been using the concept of modularity of objects and classes. Java is an object oriented programming (OOP) programming language that can run on various operating system platforms, both on computers and on mobile phones. Alice can be used for Object-based programming learning, as Alice is a program designed to learn the basic concepts of computer programs while creating story telling and simple 3D interactive games. Alice can introduce the concept of fun programming through learning to create animations and games. Simply project-based learning using Alice can be applied with learning using animation technology with daily life problems. Project-based learning (project based learning) methods make it more active, creative and successful in solving problems with good and correct algorithms. The project-based learning model has advantages in improving learning outcomes and motivation.
Keywords: Alice, Object oriented programming, Project based learnin
Planning and financing in the social development
Purpose: Determining the purpose, content, appropriation, features of the program-target and design-target methods of planning and financing in the social sphere and the ways of their further development.
Design/Methodology /Approach: In modern conditions of economic and financial uncertainty in the social sphere, reform changes, aimed at improving the quality of public finance management are in progress. These transformations were launched by the Ministry of Finance of Russia in 2004, when the main directions of budget sector reform were identified, including the transition to new forms of financial support for the provision of state (municipal) services, the introduction of result-oriented budgeting methods. The presented article is devoted to the methods of a programmatic approach to planning and financing in the social sphere development.
Findings: An integrated approach to the implementation of planning, financing and management of budgetary resources in the social sphere will make it possible to consider the program-target and project-target methods as the key tools for the distribution of labor, material and financial resources to achieve the goals and objectives, while the levels of goals achievement must have measurable indexes (indicators) that have the ability to influence the managed object.
Practical implications: The results of the study can be applied in the management activities of the state and municipal authorities, social institutions with the aim of developing the program-targeted and design-targeted methods of planning and financing.
Originality /value: The main idea of the modern stage in the development of program methods for planning and financing in the social sphere is that a new quality of public and municipal finance management, optimization of budget expenditures requires the inclusion in the state programs of measures aimed at achieving the goals stated in the relevant national and federal projectspeer-reviewe
A heuristic-based approach to code-smell detection
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
Using Modularity Metrics to assist Move Method Refactoring of Large System
For large software systems, refactoring activities can be a challenging task,
since for keeping component complexity under control the overall architecture
as well as many details of each component have to be considered. Product
metrics are therefore often used to quantify several parameters related to the
modularity of a software system. This paper devises an approach for
automatically suggesting refactoring opportunities on large software systems.
We show that by assessing metrics for all components, move methods refactoring
an be suggested in such a way to improve modularity of several components at
once, without hindering any other. However, computing metrics for large
software systems, comprising thousands of classes or more, can be a time
consuming task when performed on a single CPU. For this, we propose a solution
that computes metrics by resorting to GPU, hence greatly shortening computation
time. Thanks to our approach precise knowledge on several properties of the
system can be continuously gathered while the system evolves, hence assisting
developers to quickly assess several solutions for reducing modularity issues
Structured Review of the Evidence for Effects of Code Duplication on Software Quality
This report presents the detailed steps and results of a structured review of code clone literature. The aim of the review is to investigate the evidence for the claim that code duplication has a negative effect on code changeability. This report contains only the details of the review for which there is not enough place to include them in the companion paper published at a conference (Hordijk, Ponisio et al. 2009 - Harmfulness of Code Duplication - A Structured Review of the Evidence)
Improving Prolog programs: Refactoring for Prolog
Refactoring is an established technique from the object-oriented (OO)
programming community to restructure code: it aims at improving software
readability, maintainability and extensibility. Although refactoring is not
tied to the OO-paradigm in particular, its ideas have not been applied to Logic
Programming until now.
This paper applies the ideas of refactoring to Prolog programs. A catalogue
is presented listing refactorings classified according to scope. Some of the
refactorings have been adapted from the OO-paradigm, while others have been
specifically designed for Prolog. The discrepancy between intended and
operational semantics in Prolog is also addressed by some of the refactorings.
In addition, ViPReSS, a semi-automatic refactoring browser, is discussed and
the experience with applying ViPReSS to a large Prolog legacy system is
reported. The main conclusion is that refactoring is both a viable technique in
Prolog and a rather desirable one.Comment: To appear in Theory and Practice of Logic Programming (TPLP
Refactorings of Design Defects using Relational Concept Analysis
Software engineers often need to identify and correct design defects, ıe} recurring design problems that hinder development and maintenance\ud
by making programs harder to comprehend and--or evolve. While detection\ud
of design defects is an actively researched area, their correction---mainly\ud
a manual and time-consuming activity --- is yet to be extensively\ud
investigated for automation. In this paper, we propose an automated\ud
approach for suggesting defect-correcting refactorings using relational\ud
concept analysis (RCA). The added value of RCA consists in exploiting\ud
the links between formal objects which abound in a software re-engineering\ud
context. We validated our approach on instances of the <span class='textit'></span>Blob\ud
design defect taken from four different open-source programs
Using FCA to Suggest Refactorings to Correct Design Defects
Design defects are poor design choices resulting in a hard-to- maintain software, hence their detection and correction are key steps of a\ud
disciplined software process aimed at yielding high-quality software\ud
artifacts. While modern structure- and metric-based techniques enable\ud
precise detection of design defects, the correction of the discovered\ud
defects, e.g., by means of refactorings, remains a manual, hence\ud
error-prone, activity. As many of the refactorings amount to re-distributing\ud
class members over a (possibly extended) set of classes, formal concept\ud
analysis (FCA) has been successfully applied in the past as a formal\ud
framework for refactoring exploration. Here we propose a novel approach\ud
for defect removal in object-oriented programs that combines the\ud
effectiveness of metrics with the theoretical strength of FCA. A\ud
case study of a specific defect, the Blob, drawn from the\ud
Azureus project illustrates our approach
- …