Using Artificial Intelligence in Software Development: a case analysisPatricija Vrentuša
, 2023, master's thesis
Abstract: In this work, we talk about artificial intelligence and its impact on software development. We define the AI concept, the software development process, and the various uses of AI in programming. We put a special focus on the ethical aspects of AI. In the empirical part, we analyzed the AI pair programming tool created by Microsoft called GitHub Copilot. We examine several usage examples, as well as the opinions of developers that have been using GitHub Copilot. We found that the AI pair programmer tool helps programmers increase productivity and automate mundane tasks to concentrate on more complex and interesting parts of software development. However, some programmers raise concerns about unethical concepts connected to the development of GitHub Copilot, implying violations of original code author copyrights. We discuss current licenses, other possible solutions, and the morality of building AI on open-sourced repositories. Moreover, many believe that the future will be increasingly intertwined with AI in all industries and that the only way to preserve (software development) jobs is to keep learning and being innovative and creative. Programmers say that almost certainly their job will not vanish because of AI advancement; only the scope of their work will change.
Keywords: AI, software development, ethics, AI pair programming, GitHub Copilot.
Published in DKUM: 21.02.2023; Views: 309; Downloads: 68
Full text (1,49 MB)
Advantages and disadvantages of agile approach in software development : diplomsko deloDoroteja Minjovič
, 2019, undergraduate thesis
Abstract: The thesis touches on the agile manifesto, followed by a description of Scrum, where Roles, Ceremonies, Artifacts, and Sprints are described. In addition to Scrum, the thesis describes Extreme Programming, Kanban, and Lean. The last part of the chapter contains an analysis of the pros and cons of agile methods in software development. The thesis concludes with a review of survey results.
Keywords: Agile methods, Software development, Scrum
Published in DKUM: 21.11.2019; Views: 3692; Downloads: 229
Full text (803,77 KB)
Teaching Scrum in cooperation with a software development companyViljan Mahnič
, Strahil Georgiev
, Tomo Jarc
, 2010, original scientific article
Abstract: The increasing use of agile methods for software development creates the need for these methods to become part of the education of future computer and information science engineers. On the other hand, teaching these methods gives us an opportunity to verify individual agile concepts and their effectiveness. For that reason, project work is an appropriate and frequently used form of teaching that enables students to get acquainted with agile methods and, at the same time, provides case studies for evaluating individual agile concepts. We describe our approach to teaching the Scrum agile method, within the software technology course, in cooperation with a software development company. Students were taught through work on a real project for which a list of requirements was submitted by the company. A co-worker of this company participated throughout the teaching period playing the role of customer's representative. During their work, students consistently used the Scrum method and at the end of each iteration they evaluated their experience by means of a questionnaire. In the article, the Scrum method is presented first, then a description of work on the project is given and finally the results of the survey are described.
Keywords: agile methods, Scrum, software development, computer engineering education, university industry cooperation
Published in DKUM: 22.01.2018; Views: 917; Downloads: 365
Full text (974,55 KB)
This document has many files! More...
A programming language independent framework for metrics-based software evolution and analysisČrt Gerlec
, Gordana Rakić
, Zoran Budimac
, Marjan Heričko
, 2012, original scientific article
Abstract: Knowledge about different aspects of software quality during software evolution can be valuable information for developers and project managers. It helps to reduce the number of defects and improves the internal structure of software. However, determining softwarećs quality and structure in heterogeneous systems is a difficult task. In this paper, a programming language independent framework for evaluating software metrics and analyzing software structure during software development and its evolution will be presented. The framework consists of the SMIILE tool for calculation of software metrics, extended with an analysis of software structure. The data are stored in a central repository via enriched Concrete Syntax Tree (eCST) for universal source code representation. The framework is demonstrated in a case study. The development of such a framework is a step forward to consistent support for software evolution by providing a change analysis and quality control. The significance of this consistency is growing today, when software projects are more complex, consisting of components developed in diverse programming languages.[Acknowledgments. Work of the second and third author is partially supported by the Serbian Ministry of Science and Technological Development through project no. OI174023 ĆIntelligent Techniquesand Their Integration into Wide-Spectrum Decision SupportĆ. Bilateral project between Slovenian Research Agency and Serbian Ministry of Science and Technological Development (Grant BI-SR/10-11-027) enabled the exchange of visits and ideas between authors of this paper and their institutions.]
Keywords: software evolution, software development, quality, structure, metrics
Published in DKUM: 06.07.2017; Views: 1636; Downloads: 348
Full text (264,50 KB)
This document has many files! More...
Usage of agile SCRUM methodology on configuration management applicationŽeljko Stanojević
, 2017, master's thesis/paper
Abstract: The purpose of the master thesis is to research and determine how to successfully manage a project using agile methodology Scrum. Scrum methodology will be used to improve the functionality of existing internally developed software solutions.
Scrum, being an agile methodology, is an alternative approach to the traditional waterfall methodology, and is typically used in software development. Agile methodologies help teams respond to a project’s unpredictability by using incremental, iterative way of work known as sprints.
The first part of the master’s thesis presents a problem, defines goals and methods used, and the necessary tools required to achieve the objectives.
The following part of the thesis presents the foundations of agile methodologies and describes the used methodology – Scrum - in detail.
In the practical part, the thesis presents the existing software solution and opportunities for its improvement. We use Scrum for upgrading existing application, including all the attributes of the mentioned methodology, from team design to artifacts and events.
The thesis also presents a renewed application in detail. In conclusion, by using the SWOT analysis we observe suitability for use of the Scrum methodology in the case of renewal of application and propose further changes to improve the application.
Keywords: Project Management, Software Development, Agile Project Management, Scrum Implementation, Agile Methodologies
Published in DKUM: 28.06.2017; Views: 1134; Downloads: 123
Full text (3,43 MB)
Smart software instant reminder for interpersonal communication in foreign countryDejan Pukšič
, 2013, original scientific article
Abstract: Traveling to foreign countries is not a privilege of social elite these days and communication is the basic tool for business. Internet and contemporary schools curriculums have enable us to communicate in global language - English. But for those who is going to reside in other country for longer period of time some basic communication in resident country language is necessary. Every year a lot of foreign students come to our university as student exchange and these are not the only ones. For a period of one semester they do not only study but want to see the country and local tradition. Different language courses are offered and a lot of foreigners attend them. Huge amount of information often overwhelm them and some kind of smart instant reminder is much appreciated. We have attended multiple courses and analyse the most needed topics for smart instant reminder and how make it efficient for foreigners. A software program for portable devices is developed and helps as two ways assistant. It provides language and speech remindersince pronunciation is pinnacle of problems in ourlanguage.
Keywords: vzgoja in izobraževanje, učenje jezika, ečenje tujega jezika, razvoj programske opreme, language learning, m-learning, foreign language communication, software development, software requirements
Published in DKUM: 10.07.2015; Views: 1139; Downloads: 25
Link to full text