software

Activity Oriented Teaching Strategy for Software Engineering Course: An Experience Report

Aim/Purpose: This paper presents the findings of an Activity-Oriented Teaching Strategy (AOTS) conducted for a postgraduate level Software Engineering (SE) course with the aim of imparting meaningful software development experience for the students. The research question is framed as whether the activity-oriented teaching strategy helps students to acquire practical knowledge of Software Engineering and thus bridge the gap between academia and software industry. Background: Software Engineering Education (SEE) in India is mainly focused on teaching theoretical concepts rather than emphasizing on practical knowledge in software development process. It has been noticed that many students of CS/IT background are struggling when they start their career in the software industry due to inadequate familiarity with the software development process. In the current context of SE education, there is a knowledge gap between the theory learned in the classroom and the actual requirement demanded by the software industry. Methodology: The methodology opted for in this study was action research since the teachers are trying to solve the practical problems and deficiencies encountered while teaching SE. There are four pedagogies in AOTS for fulfilling the requirements of the desired teaching strategy. They are flipped classroom, project role-play for developing project artifacts, teaching by example, and student seminars. The study was conducted among a set of Postgraduate students of the Software Engineering programme at Cochin University of Science and Technology, India. Contribution: AOTS can fulfil both academic and industrial requirements by actively engaging the students in the learning process and thus helping them develop their professional skills. Findings: AOTS can be molded as a promising teaching strategy for learning Software Engineering. It focuses on the essential skill sets demanded by the software industry such as communication, problem-solving, teamwork, and understanding of the software development processes. Impact on Society: Activity-oriented teaching strategies can fulfil both academic and industrial requirements by actively engaging the students in the SE learning process and thus helping them in developing their professional skills. Future Research: AOTS can be refined by adding/modifying pedagogies and including different features like an online evaluation system, virtual classroom etc.




software

Collaborative Approach in Software Engineering Education: An Interdisciplinary Case

Aim/Purpose: This study was aimed at enhancing students’ learning of software engineering methods. A collaboration between the Computer Science, Business Management, and Product Design programs was formed to work on actual projects with real clients. This interdisciplinary form of collaboration simulates the realities of a diverse Software Engineering team. Background: A collaborative approach implemented through projects has been the established pedagogy for introducing the Software Engineering course to undergraduate Computer Science students. The collaboration, however, is limited to collaboration among Computer Science students and their clients. This case study explored an enhancement to the collaborative approach to project development by integrating other related disciplines into the project development framework; hence, the Interdisciplinary Approach. Methodology: This study adopted the case method approach. An interdisciplinary service innovation activity was proposed to invite other disciplines in the learning process of the computer science students. The agile methodology Scrum was used as the software development approach during project development. Survey data were collected from the students to establish (a) their perception of the interdisciplinary approach to project development; (b) the factors that influenced success or failure of their team to deliver the project; and (c) the perceived skills or knowledge that they acquired from the interdisciplinary approach. Analysis of data followed a mixed method approach. Contribution: The study improved the current pedagogy for Software Engineering education by integrating other related disciplines into the software project development framework. Findings: Data collected showed that the students generally accepted the interdisciplinary approach to project development. Factors such as project relevance, teamwork, time and schedule, and administration support, among others, affect team performance towards project completion. In the case of the Computer Science students, results show that students have learned skills during the experience that, as literature reveal, can only be acquired or mastered in their future profession as software engineers. Recommendations for Practitioners: The active collaboration of the industry with the University and the involvement of the other related courses in teaching software engineering methods are critical to the development of the students, not only in learning the methodology but also as a working professional. Recommendation for Researchers: It is interesting to know and eventually understand the interactions between interdisciplinary team members in the conduct of Software Engineering practices while working on their projects. More specifically, what creative tensions arise and how do the interdisciplinary teams handle the discourse? Impact on Society: This study bridges the gap between how Software Engineering is taught in the university and how Software Engineering teams work in real life. Future Research: Future research is targeted at refining and elaborating the elements of the interdisciplinary framework presented in this paper towards an integrated course module for Software Engineering education.




software

Novice Programmers’ Coping with Multi-Threaded Software Design

Aim/Purpose: Multi-threaded software design is considered to be difficult, especially to novice programmers. In this study, we explored how students cope with a task that its solution requires a multi-threaded architecture to achieve optimal runtime. Background: An efficient exploit of multicore processors architecture requires computer programs that use parallel programming techniques. However, parallel programming is difficult to understand and apply by novice programmers. Methodology: The students had to address a two-stage problem: (1) design an optimal runtime solution to a given problem with no additional instructions; and (2) provide an optimal runtime multi-threaded design to the same problem. Interviews were conducted with a representative group of students to understand the underlying causes of their provided designs. We used qualitative research methods to gain refined insights regarding the students’ decision making during the design process. To analyze the gained data, we used content analysis tools. Contribution: The case study presented in this paper will help the teacher to stress the merits and limitations of various parallel architectures and confront students with the consequences of their solutions via performances’ benchmark. Findings: Analysis of the student’s solutions to the first stage revealed that the majority of them did not provide a multi-threaded solution ignoring the optimal runtime requirement. At the second stage, seven various architectures were provided differing in the number of involved threads, the data structures used, and the synchronization mechanism employed. The majority of the solutions were sub-optimal and only a few students provided an optimal one. Recommendations for Practitioners: We recommend conducting class discussions that will follow a task similar to the one used in this study. Recommendation for Researchers: To be able to generalize the received results this research should be repeated with larger study participant groups from various academic institutions. Impact on Society: Understanding the difficulties of novice programmers may lead to quality software systems. Future Research: To be able to generalize the received results this research should be repeated with larger study participant groups from various academic institutions.




software

Using Design-Based Research to Layer Career-Like Experiences onto Software Development Courses

Aim/Purpose: This research aims to describe layering of career-like experiences over existing curriculum to improve perceived educational value. Background: Feedback from students and regional businesses showed a clear need to increase student’s exposure to career-like software development projects. The initial goal was to develop an instructor-optional project that could be used in a single mid-level programming course; however, the pilot quickly morphed into a multi-year study examining the feasibility of agile projects in a variety of settings. Methodology: Over the course of four years, an agile project was honed through repeated Design Based Research (DBR) cycles of design, implementation, testing, communication, and reflective analysis. As is common with DBR, this study did not follow single methodology design; instead, analysis of data coupled with review of literature led to exploration and testing of a variety of methodologies. The review phase of each cycle included examination of best practices and methodologies as determined by analysis of oral and written comments, weekly journals, instructor feedback, and surveys. As a result of participant feedback, the original project was expanded to a second project, which was tested in another Software Engineering (SE) course. The project included review and testing of many academic and professional methodologies, such as Student Ownership of Learning, Flipped Classroom, active learning, waterfall, agile, Scrum, and Kanban. The study was homogenous and quasi-experimental as the population consisted solely of software engineering majors taking required courses; as based on validity of homogenous studies, class sizes were small, ranging from 8 to 20 students. Close interactions between respondents and the instructor provided interview-like settings and immersive data capture in a natural environment. Further, the iterative development practices of DBR cycles, along with the inclusion of participants as active and valued stakeholders, was seen to align well with software development practitioner practices broadly known as agile. Contribution: This study is among the first to examine layering a career-like software development project on top of a course through alteration of traditional delivery, agile development, and without supplanting existing material. Findings: In response to industry recommendations for additional career-like experiences, a standalone agile capstone-like project was designed that could be layered over an existing course. Pilot data reflected positive perceptions of the project, although students did not have enough time to develop a working prototype in addition to completing existing course materials. Participant feedback led to simultaneous development of a second, similar project. DBR examination of both projects resulted in a simplified design and the ability to develop a working prototype, if and only if the instructor was willing to make adjustments to delivery. After four years, a solution was developed that is both stable and flexible. The solution met the original charge in that it required course delivery, not course material, to be adjusted. It is critical to note that when a working prototype is desired, a portion of the lecture should be flipped allowing more time for guided instruction through project-focused active learning and study group requirements. The results support agile for standalone software development projects, as long as passive delivery methods are correspondingly reduced. Recommendations for Practitioners: Based on the findings, implementation of a career-like software development project can be well received as long as active learning components are also developed. Multiple cycles of DBR are recommended if future researchers wish to customize instructional delivery and develop complex software development projects. Programming instructors are recommended to explore hybrid delivery to support development of agile career-like experiences. Small class sizes allowed the researchers to maintain an interview-like setting throughout the study and future studies with larger classes are recommended to include additional subject matter experts such as graduate students as interaction with a subject matter expert was highly valued by students. Recommendation for Researchers: Researchers are recommended to further examine career-like software development experiences that combine active learning with agile methods; more studies following agile and active learning are needed to address the challenges faced when complex software development is taught in academic settings. Further testing of standalone agile project development has now occurred in medium sized in person classes, online classes, independent studies, and creative works research settings; however, further research is needed. Future research should also examine the implementation of agile projects in larger class sizes. Increasing class size should be coupled with additional subject matter experts such as graduate students. Impact on Society: This study addresses professional recommendations for development of agile career-like experiences at the undergraduate level. This study provides empirical evidence of programming projects that can be layered over existing curriculum, with no additional cost to the students. Initial feedback from local businesses and graduates, regarding agile projects with active learning, has been positive. The area business that refused to hire our underprepared SE graduates has now hired several. Future Research: Future research should explore layering agile projects over a broader range of software development courses. Feedback from hiring professionals and former students has been positive. It is also recommended that DBR be used to develop career-like experiences for online programming courses.




software

Generating a Template for an Educational Software Development Methodology for Novice Computing Undergraduates: An Integrative Review

Aim/Purpose: The teaching of appropriate problem-solving techniques to novice learners in undergraduate software development education is often poorly defined when compared to the delivery of programming techniques. Given the global need for qualified designers of information technology, the purpose of this research is to produce a foundational template for an educational software development methodology grounded in the established literature. This template can be used by third-level educators and researchers to develop robust educational methodologies to cultivate structured problem solving and software development habits in their students while systematically teaching the intricacies of software creation. Background: While software development methodologies are a standard approach to structured and traceable problem solving in commercial software development, educational methodologies for inexperienced learners remain a neglected area of research due to their assumption of prior programming knowledge. This research aims to address this deficit by conducting an integrative review to produce a template for such a methodology. Methodology: An integrative review was conducted on the key components of Teaching Software Development Education, Problem Solving, Threshold Concepts, and Computational Thinking. Systematic reviews were conducted on Computational Thinking and Software Development Education by employing the Preferred Reporting Items for Systematic Reviews and Meta-Analyses (PRISMA) process. Narrative reviews were conducted on Problem Solving and Threshold Concepts. Contribution: This research provides a comprehensive analysis of problem solving, software development education, computational thinking, and threshold concepts in computing in the context of undergraduate software development education. It also synthesizes review findings from these four areas and combines them to form a research-based foundational template methodology for use by educators and researchers interested in software development undergraduate education. Findings: This review identifies seven skills and four concepts required by novice learners. The skills include the ability to perform abstraction, data representation, decomposition, evaluation, mental modeling, pattern recognition, and writing algorithms. The concepts include state and sequential flow, non-sequential flow control, modularity, and object interaction. The teaching of these skills and concepts is combined into a spiral learning framework and is joined by four development stages to guide software problem solving: understanding the problem, breaking into tasks, designing, coding, testing, and integrating, and final evaluation and reflection. This produces the principal finding, which is a research-based foundational template for educational software development methodologies. Recommendations for Practitioners: Focusing introductory undergraduate computing courses on a programming syllabus without giving adequate support to problem solving may hinder students in their attainment of development skills. Therefore, providing a structured methodology is necessary as it equips students with essential problem-solving skills and ensures they develop good development practices from the start, which is crucial to ensuring undergraduate success in their studies and beyond. Recommendation for Researchers: The creation of educational software development methodologies with tool support is an under-researched area in undergraduate education. The template produced by this research can serve as a foundational conceptual model for researchers to create concrete tools to better support computing undergraduates. Impact on Society: Improving the educational value and experience of software development undergraduates is crucial for society once they graduate. They drive innovation and economic growth by creating new technologies, improving efficiency in various industries, and solving complex problems. Future Research: Future research should concentrate on using the template produced by this research to create a concrete educational methodology adapted to suit a specific programming paradigm, with an associated learning tool that can be used with first-year computing undergraduates.




software

Honeybrid method for network security in a software defined network system

This research introduces a hybrid honeypot architecture to bolster security within software-defined networks (SDNs). By combining low-interaction and high-interaction honeypots, the proposed solution effectively identifies and mitigates cyber threats, including port scanning and man-in-the-middle attacks. The architecture is structured into multiple modules that focus on detecting open ports using Vilhala honeypots and simulating targeted and random attack scenarios. This hybrid approach enables comprehensive monitoring and detailed packet-level analysis, providing enhanced protection against advanced online threats. The study also conducts a comparative analysis of different attack detection methods using tools like KFSensor and networking shell commands. The results highlight the hybrid honeypot system's efficacy in filtering malicious traffic and detecting security breaches, making it a robust solution for safeguarding SDNs.




software

Investigation of user perception of software features for software architecture recovery in object-oriented software

A well-documented architecture can greatly improve comprehension and maintainability. However, shorter release cycles and quick delivery patterns results in negligence of architecture. In such situations, the architecture can be recovered from its current implementation based on considering dependency relations. In literature, structural and semantic dependencies are commonly used software features, and directory information along with co-change/change history information are among rarely utilised software features. But, they are found to help improve architecture recovery. Therefore, we consider investigating various features that may further improve the accuracy of existing architecture recovery techniques and evaluate their feasibility by considering them in different pairs. We compared five state-of-the-art methods under different feature subsets. We identified that two of them commonly outperform others but surprisingly with low accuracy in some evaluations. Further, we propose a new subset of features that reflects more accurate user perceptions and hence, results in improving the accuracy of architecture recovery techniques.




software

A Computer Hardware/Software/Services Planning and Selection Course for the CIS/IT Curriculum




software

Behavioural Issues in Software Development: The Evolution of a New Course Dealing with the Psychology of Computer Programming




software

Software Development: Informing Sciences Perspective




software

Making a CASE for Using the Students Choice of Software or Systems Development Tools




software

Accommodating Soft Skills in Software Project Management




software

An Assessment of Software Project Management Maturity in Mauritius




software

Software Quality Management supported by Software Agent




software

Talking Past Each Other - Staff and Student Reflection in Undergraduate Software Projects




software

Integrating Industrial Practices in Software Development through Scenario-Based Design of PBL Activities: A Pedagogical Re-Organization Perspective




software

Towards Building Secure Software Systems




software

Software Agents for Managing Learning Plans




software

The Development, Use and Evaluation of a Program Design Tool in the Learning and Teaching of Software Development




software

The Concept of an Unstructured Book and the Software to Publish and Read it




software

An Exploratory Survey in Collaborative Software in a Graduate Course in Automatic Identification and Data Capture




software

Introducing Students to Business Intelligence: Acceptance and Perceptions of OLAP Software




software

Accreditation of Monash University Software Engineering (MUSE) Program




software

Evaluation of a Suite of Metrics for Component Based Software Engineering (CBSE)




software

Innovation and Scaling up Agile Software Engineering Projects




software

IT Systems Development: An IS Curricula Course that Combines Best Practices of Project Management and Software Engineering




software

Cross-Departmental Collaboration for the Community: Technical Communicators in a Service-Learning Software Engineering Course




software

Student Marketability: Enhancing Software Skills




software

Collaboration of Two Service-Learning Courses: Software Development and Technical Communication




software

Demographic Factors Affecting Freshman Students' Attitudes towards Software Piracy: An Empirical Study




software

A Framework for Using Cost-Benefit Analysis in Making the Case for Software Upgrade




software

Software Engineering Frameworks: Perceptions of Second-Semester Students




software

Cross-Platform Mobile App Software Development in the Curriculum




software

Teaching Undergraduate Software Engineering Using Open Source Development Tools




software

An Effective Development Environment Setup for System and Application Software




software

Software Development Using C++: Beauty-and-the-Beast




software

Cloud Computing as an Enabler of Agile Global Software Development

Agile global software development (AGSD) is an increasingly prevalent software development strategy, as organizations hope to realize the benefits of accessing a larger resource pool of skilled labor, at a potentially reduced cost, while at the same time delivering value incrementally and iteratively. However, the distributed nature of AGSD creates geographic, temporal, socio-cultural distances that challenge collaboration between project stakeholders. The Cloud Computing (CC) service models of Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS) are similar to the aspirant qualities of AGSD as they provide services that are globally accessible, efficient, and stable, with lower predictable operating costs that scale to meet the computational demand. This study focused on the 12 agile principles upon which all agile methodologies are based, therein potentially increasing the potential for the findings to be generalized. Domestication Theory was used to assist in understanding how cloud technologies were appropriated in support of AGSD. The research strategy took the form of case study research. The findings suggest that some of the challenges in applying the agile principles in AGSD may be overcome by using CC.




software

Using Office Simulation Software in Teaching Computer Literacy Using Three Sets of Teaching/Learning Activities

The most common course delivery model is based on teacher (knowledge provider) - student (knowledge receiver) relationship. The most visible symptom of this situation is over-reliance on textbook’s tutorials. This traditional model of delivery reduces teacher flexibility, causes lack of interest among students, and often makes classes boring. Especially this is visible when teaching Computer Literacy courses. Instead, authors of this paper suggest a new active model which is based on MS Office simulation. The proposed model was discussed within the framework of three activities: guided software simulation, instructor-led activities, and self-directed learning activities. The model proposed in the paper of active teaching based on software simulation was proven as more effective than traditional.




software

The Use of Kanban to Alleviate Collaboration and Communication Challenges of Global Software Development

Aim/Purpose: This paper aims to describe how various Kanban elements can help alleviate two prominent types of challenges, communication and collaboration in Global Software Development (GSD). Background: Iterative and Lean development methodologies like Kanban have gained significance in the software development industry, both in the co-located and globally distributed contexts. However, little is known on how such methodologies can help mitigate various challenges in that occur in a globally distributed software development context. Methodology: The study was conducted using a single-case study based on a general inductive approach to analysis and theory development. Through the literature review, collaboration and communication challenges that GSD teams face were identified. Data collected through semi-structured interviews was then inductively analyzed to describe how the case-study teams employed various Kanban elements to mitigate communication and collaboration challenges they face during GSD. Findings: The study found that some Kanban elements, when properly employed, can help alleviate collaboration and communication challenges that occur within GSD teams. These relate to Inclusion Criteria, Reverse Items, Kanban Board, Policies, Avatars, and Backlog. Contribution: The paper contributes to knowledge by proposing two simple concept maps that detail the specific types of communication and collaboration challenges which can be alleviated by the aforementioned Kanban elements in GSD. Recommendations for Practitioners: This paper is relevant to GSD teams who are seeking ways to enhance their team collaboration and communication as these are the most important elements that contribute to GSD project success. It is recommended that relevant Kanban elements be used to that effect, depending on the challenges that they aim to alleviate. Future Research: Future research can investigate the same research questions (or similar ones) using a quantitative approach.




software

An Improved Assessment of Personality Traits in Software Engineering




software

A Generic Agent Framework to Support the Various Software Project Management Processes




software

An Evolutionary Software Project Management Maturity Model for Mauritius




software

Secure Software Engineering: A New Teaching Perspective Based on the SWEBOK




software

Software as a Service (SaaS) Cloud Computing: An Empirical Investigation on University Students’ Perception

Aim/Purpose: This study aims to propose and empirically validate a model and investigates the factors influencing acceptance and use of Software as a Services cloud computing services (SaaS) from individuals’ perspectives utilizing an integrative model of Theory of Planned Behavior (TPB) and Technology Acceptance Model (TAM) with modifications to suit the objective of the study. Background: Even though SaaS cloud computing services has gained the acceptance in its educational and technical aspects, it is still expanding constantly with emerging cloud technologies. Moreover, the individual as an end-user of this technology has not been given the ample attention pertaining to SaaS acceptance and adoption (AUSaaS). Additionally, the higher education sector needs to be probed regarding AUSaaS perception, not only from a managerial stance, but also the individual. Hence, further investigation in all aspects, including the human factor, deserves deeper inspection. Methodology: A quantitative approach with probability multi-stage sampling procedure conducted utilizing survey instrument distributed among students from three public Malaysian universities. The valid collected responses were 289 Bachelor’s degree students. The survey included the demographic part as well as the items to measure the constructs relationships hypothesized. Contribution: The empirical results disclosed the appropriateness of the integrated model in explaining the individual’s attitude (R2 = 57%), the behavior intention (R2 = 64%), and AUSaaS at the university settings (R2 = 50%). Also, the study offers valuable findings and examines new relationships that considered a theoretical contribution with proven empirical results. That is, the subjective norms effect on attitude and AUSaaS is adding empirical evidence of the model hypothesized. Knowing the significance of social effect is important in utilizing it to promote university products and SaaS applications – developed inside the university – through social media networks. Also, the direct effect of perceived usefulness on AUSaaS is another important theoretical contribution the SaaS service providers/higher education institutes should consider in promoting the usefulness of their products/services developed or offered to students/end-users. Additionally, the research contributes to the knowledge of the literature and is considered one of the leading studies on accepting SaaS services and applications as proliferation of studies focus on the general and broad concept of cloud computing. Furthermore, by integrating two theories (i.e., TPB and TAM), the study employed different factors in studying the perceptions towards the acceptance of SaaS services and applications: social factors (i.e., subjective norms), personal capabilities and capacities (i.e., perceived behavioral control), technological factors (i.e., perceived usefulness and perceived ease of use), and attitudinal factors. These factors are the strength of both theories and utilizing them is articulated to unveil the salient factors affecting the acceptance of SaaS services and applications. Findings: A statistically positive significant influence of the main TPB constructs with AUSaaS was revealed. Furthermore, subjective norms (SN) and perceived usefulness (PU) demonstrated prediction ability on AUSaaS. Also, SN proved a statically significant effect on attitude (ATT). Specifically, the main contributors of intention are PU, perceived ease of use, ATT, and perceived behavioral control. Also, the proposed framework is validated empirically and statistically. Recommendation for Researchers: The proposed model is highly recommended to be tested in different settings and cultures. Also, recruiting different respondents with different roles, occupations, and cultures would likely draw more insights of the results obtained in the current research and its generalizability Future Research: Participants from private universities or other educational institutes suggested in future work as the sample here focused only on public sector universities. The model included limited number of variables suggesting that it can be extended in future works with other constructs such as trialability, compatibility, security, risk, privacy, and self-efficacy. Comparison of different ethnic groups, ages, genders, or fields of study in future research would be invaluable to enhance the findings or reveal new insights. Replication of the study in different settings is encouraged.




software

Predicting Software Change-Proneness From Software Evolution Using Machine Learning Methods

Aim/Purpose: To predict the change-proneness of software from the continuous evolution using machine learning methods. To identify when software changes become statistically significant and how metrics change. Background: Software evolution is the most time-consuming activity after a software release. Understanding evolution patterns aids in understanding post-release software activities. Many methodologies have been proposed to comprehend software evolution and growth. As a result, change prediction is critical for future software maintenance. Methodology: I propose using machine learning methods to predict change-prone classes. Classes that are expected to change in future releases were defined as change-prone. The previous release was only considered by the researchers to define change-proneness. In this study, I use the evolution of software to redefine change-proneness. Many snapshots of software were studied to determine when changes became statistically significant, and snapshots were taken biweekly. The research was validated by looking at the evolution of five large open-source systems. Contribution: In this study, I use the evolution of software to redefine change-proneness. The research was validated by looking at the evolution of five large open-source systems. Findings: Software metrics can measure the significance of evolution in software. In addition, metric values change within different periods and the significance of change should be considered for each metric separately. For five classifiers, change-proneness prediction models were trained on one snapshot and tested on the next. In most snapshots, the prediction performance was excellent. For example, for Eclipse, the F-measure values were between 80 and 94. For other systems, the F-measure values were higher than 75 for most snapshots. Recommendations for Practitioners: Software change happens frequently in the evolution of software; however, the significance of change happens over a considerable length of time and this time should be considered when evaluating the quality of software. Recommendation for Researchers: Researchers should consider the significance of change when studying software evolution. Software changes should be taken from different perspectives besides the size or length of the code. Impact on Society: Software quality management is affected by the continuous evolution of projects. Knowing the appropriate time for software maintenance reduces the costs and impacts of software changes. Future Research: Studying the significance of software evolution for software refactoring helps improve the internal quality of software code.




software

Agile Practices and Their Impact on Agile Maturity Level of Software Companies in Nepal

Aim/Purpose: Using the Agile Adoption Framework (AAF), this study aims to examine the agile potential of software development companies in Nepal based on their agile maturity level. In addition, this study also examines the impact of various basic agile practices in determining the maturity level of the agile processes being implemented in the software industry of Nepal. Background: Even if most organizations in the software sector utilize agile development strategies, it is essential to evaluate their performance. Nepal’s software industry did not adopt agile techniques till 2014. The Nepalese industry must always adapt to new developments and discover ways to make software development more efficient and beneficial. The population of the study consists of 1,500 and 2,000 employees of software companies in Nepal implementing agile techniques. Methodology: The sample size considered was 150 employees working in software companies in Nepal. However, only 106 respondents responded after three follow-ups. The sample was collected with purposive sampling. A questionnaire was developed to gain information on Customer Adaptive, Customer Collaboration, Continuous Delivery, Human Centric, and Technical Excellence related to agile practices along with the Agile Maturity Level. Contribution: This research contributes to the understanding of agile practices adopted in software companies in developing countries like Nepal. It also reveals the determinants of the agility of software companies in developing countries. Findings: The results suggest that some of the basic principles of agile have a very significant role in Agile Maturity Level in the Nepali context. In the context of Nepal, human-centered practices have a very high level of correlation, which plays a vital role as a major predictor of the agile maturity level. In addition, Technical Excellence is the variable that has the highest level of association with the Agile Maturity Level, making it the most significant predictor of this quality. Recommendations for Practitioners: As Nepali software companies are mostly offshore or serve outsourcing companies, there is a very thin probability of Nepali developers being able to interact with actual clients and this might be one of the reasons for the Nepali industry not relying on Customer Adaptation and Collaboration as major factors of the Agile methodologies. Continuous Delivery, on the other hand, has a significant degree of correlation with Agile Maturity Level. Human-centric practices have a very high level of correlation as well as being a major predictor in determining the Agile Maturity Level in the context of Nepal. Technical Excellence is the most significant predictor and the variable which has the highest level of correlation with Agile Maturity Level. Practitioners should mainly focus on technical excellence as well as human-centric practices to achieve a higher level of Agile Maturity. Recommendation for Researchers: There has not been any such research in the Nepali context that anyone could rely on, to deep dive into their organizational concerns regarding agile strategies and plans. Researchers will need to focus on a more statistical approach with data-driven solutions to the issues related to people and processes. Researchers will need to cover freelancers as well as academics to get a different perspective on what can be the better practices to achieve a higher level of agile maturity. Impact on Society: This study on Agile work is accessible not only to the software industry but also to the general public. The Agile technique has had a huge impact on society’s project management. It has revolutionized how teams approach project planning, development, and execution. The paper’s findings will further information regarding the Agile methodology, which emphasizes collaboration and communication, fosters teamwork and higher quality work, and promotes the exchange of knowledge, ideas, and the pursuit of common goals. Future Research: Owing to the limitations of this study, it is necessary to analyze agile practices in the Nepalese software sector using additional factors that influence agile maturity. The conclusion that years of agile experience do not serve as a balancing factor for both agile practices and the Agile Maturity Level requires additional research. Whether a software outsourcing firm or not, the organization type had no bearing on the degree of maturity of agile methods; this leaves space for further research.




software

An Approach toward a Software Factory for the Development of Educational Materials under the Paradigm of WBE




software

Software Quality and Security in Teachers' and Students' Codes When Learning a New Programming Language

In recent years, schools (as well as universities) have added cyber security to their computer science curricula. This topic is still new for most of the current teachers, who would normally have a standard computer science background. Therefore the teachers are trained and then teaching their students what they have just learned. In order to explore differences in both populations’ learning, we compared measures of software quality and security between high-school teachers and students. We collected 109 source files, written in Python by 18 teachers and 31 students, and engineered 32 features, based on common standards for software quality (PEP 8) and security (derived from CERT Secure Coding Standards). We use a multi-view, data-driven approach, by (a) using hierarchical clustering to bottom-up partition the population into groups based on their code-related features and (b) building a decision tree model that predicts whether a student or a teacher wrote a given code (resulting with a LOOCV kappa of 0.751). Overall, our findings suggest that the teachers’ codes have a better quality than the students’ – with a sub-group of the teachers, mostly males, demonstrate better coding than their peers and the students – and that the students’ codes are slightly better secured than the teachers’ codes (although both populations show very low security levels). The findings imply that teachers might benefit from their prior knowledge and experience, but also emphasize the lack of continuous involvement of some of the teachers with code-writing. Therefore, findings shed light on computer science teachers as lifelong learners. Findings also highlight the difference between quality and security in today’s programming paradigms. Implications for these findings are discussed.




software

The Characteristics of Successful MOOCs in the Fields of Software, Science, and Management, According to Students’ Perception

The characteristics of successful MOOCs were explored in this study. Thousands of student reviews regarding five xMOOCs (Massive Open Online Course) in the fields of software, science, and management were extracted from the Coursetalk website and analyzed by quantitative and qualitative methods using the Garrison, Anderson, and Archer (2000) Community of Inquiry (CoI) model. The 14 characteristics found to contribute to the success of MOOCs (e.g., teacher, atmosphere, exercise) were partitioned into the teaching, social, and cognitive presence elements. In addition, cluster analysis revealed five types of learners, based on the characteristics they mentioned for course success: atmosphere, exercise, teacher, exam, and unspecified. This divides learners into groups that may prefer social, cognitive, or teaching presence. The findings of this study negate the perception that xMOOCs mostly contain teaching presence elements. This research contributes to the understanding of characteristics that contribute to successful MOOCs and sheds light on the students, too. Listening to the voices of the students and the types of characteristics that they chose to mention, enables further exploration of their preferences and expectations regarding MOOCs and, accordingly, to future adaptation between students’ preferences and MOOC characteristics.




software

A Model for Mandatory Use of Software Technologies: An Integrative Approach by Applying Multiple Levels of Abstraction of Informing Science