59 research outputs found

    An Improved & Adaptive Software Development Methodology

    Get PDF
    The methods of software development have increased a lot from the beginning. From the first waterfall to current agile methodology there still have some drawbacks. For this reason, the software delivery is still a very challenging and heavy-duty work. In this paper, we proposed a new software development methodology which is easy to implement and will help software development companies a secure and robust software releases. The proposed SDLC process is known as 4A. The empirical result shows that the proposed methodology is more adaptive and flexible for developers and project managers

    Empirical assessment of the adoption, use, and effects of pair programming

    Get PDF
    Developing large software systems requires team work, which in turn calls for lots of communication within the team. However, programming is typically conducted alone by individual software developers. Pair programming, where two persons actively collaborate in the implementation of a single task, is an alternative way of developing software. It has been proposed as a means to increasing software quality, knowledge transfer and learning, among other things. This research studied the adoption, use, and effects of pair programming through a literature study and three empirical studies. The literature study was a systematic mapping study of the previous pair programming research in the industry. The empirical studies consisted of two long industry case studies and an experiment where project teams consisting of experienced students conducted a moderately large software development project. The systematic mapping study analyzed the content of 154 papers. It identified industrially relevant aspects of pair programming and organized them as a pair programming framework containing additional and more detailed aspects of pair programming over the previously published frameworks. The framework grouped all the identified aspects under eighteen factors of pair programming, for which their state of research was analyzed. The analysis showed that of many factors, only a few or no studies had been conducted using rigorous research approaches and data collection methods. The adoption and use of pair programming were analyzed in the two case studies. In the larger, more established organization, there were issues with adoption, related to both infrastructure and organizing of pair programming. A separate pair programming room was a successful solution to the infrastructural issues. However, lack of time for pair programming due to insufficient organizing of its use, remained an issue at the end of the study. The effects of pair programming on software quality and developers' knowledge were positive in all three empirical studies, but the development effort for individual tasks increased. The increase in effort occurred mainly when using pair programming for simple tasks or during the beginning of a project, when the developers were learning pair programming and getting to know one another

    Hierarchical categorisation of web tags for Delicious

    Get PDF
    In the scenario of social bookmarking, a user browsing the Web bookmarks web pages and assigns free-text labels (i.e., tags) to them according to their personal preferences. The benefits of social tagging are clear – tags enhance Web content browsing and search. However, since these tags may be publicly available to any Internet user, a privacy attacker may collect this information and extract an accurate snapshot of users’ interests or user profiles, containing sensitive information, such as health-related information, political preferences, salary or religion. In order to hinder attackers in their efforts to profile users, this report focuses on the practical aspects of capturing user interests from their tagging activity. More accurately, we study how to categorise a collection of tags posted by users in one of the most popular bookmarking services, Delicious (http://delicious.com).Preprin

    The Agile Web Engineering (AWE) process

    Get PDF
    Abstract available : p.

    Product and program management : battling the strangler trees of system and social complexity in the software market jungle

    Get PDF
    Thesis (S.M.)--Massachusetts Institute of Technology, System Design and Management Program, 2006.Includes bibliographical references (p. 108-109).An exploration of Software Product and Program Management as recently emergent roles in the information technology sector is presented. The exploration is presented in six sections divided into two major parts. The first part, in four sections, explores Product Management from a primarily anthropological and managerial perspective, while the second part, in two sections, explores major engineering issues related to the role. The first part gives a synopsis of the history and economics of software products, demonstrating the rapid evolution of a field facing unprecedented problems with product complexity and motivating the need for Product Management. The role of Product Manager is explored in detail using both extant literature and interviews conducted with current practitioners in industry. The related role of Program Manager is briefly discussed. Finally, an extended historical case study is presented demonstrating the struggles and pitfalls of Product Management in software product companies. The second part explores two major engineering issues related to the Product Management role: Project Management and Requirements Engineering.(cont.) A survey of major Software Project Management methods in use is given along with critiques of their effectiveness. Finally, the emerging field of Requirements Engineering is studied, with the conclusion that purely analytical methods such as semi-formal modeling cannot obviate the need for social process methods. Such methods take into account the tendency for human communication problems both to sabotage and to become embedded within software systems.by John A. Hempe.S.M

    Combining over- and under-approximating program analyses for automatic software testing

    Get PDF
    This dissertation attacks the well-known problem of path-imprecision in static program analysis. Our starting point is an existing static program analysis that over-approximates the execution paths of the analyzed program. We then make this over-approximating program analysis more precise for automatic testing in an object-oriented programming language. We achieve this by combining the over-approximating program analysis with usage-observing and under-approximating analyses. More specifically, we make the following contributions. We present a technique to eliminate language-level unsound bug warnings produced by an execution-path-over-approximating analysis for object-oriented programs that is based on the weakest precondition calculus. Our technique post-processes the results of the over-approximating analysis by solving the produced constraint systems and generating and executing concrete test-cases that satisfy the given constraint systems. Only test-cases that confirm the results of the over-approximating static analysis are presented to the user. This technique has the important side-benefit of making the results of a weakest-precondition based static analysis easier to understand for human consumers. We show examples from our experiments that visually demonstrate the difference between hundreds of complicated constraints and a simple corresponding JUnit test-case. Besides eliminating language-level unsound bug warnings, we present an additional technique that also addresses user-level unsound bug warnings. This technique pre-processes the testee with a dynamic analysis that takes advantage of actual user data. It annotates the testee with the knowledge obtained from this pre-processing step and thereby provides guidance for the over-approximating analysis. We also present an improvement to dynamic invariant detection for object-oriented programming languages. Previous approaches do not take behavioral subtyping into account and therefore may produce inconsistent results, which can throw off automated analyses such as the ones we are performing for bug-finding. Finally, we address the problem of unwanted dependencies between test-cases caused by global state. We present two techniques for efficiently re-initializing global state between test-case executions and discuss their trade-offs. We have implemented the above techniques in the JCrasher, Check 'n' Crash, and DSD-Crasher tools and present initial experience in using them for automated bug finding in real-world Java programs.Ph.D.Committee Chair: Smaragdakis, Yannis; Committee Member: Dwyer, Matthew; Committee Member: Orso, Alessandro; Committee Member: Pande, Santosh; Committee Member: Rugaber, Spence

    A Framework for Linking Projects and Project Management Methods

    Get PDF
    Software development processes such as the Waterfall process and Extreme Programming are project management methods (PMMs) which are well known and widely used. However, conventional project management (PM) lacks the process concepts expressed in PMMs, and the connection between PMMs and PM is not much explored in the literature. We present data models for PM and PMM, in a framework that can articulate the PM-to-PMM relationship, illustrating with simple examples. A java/XML implementation of this framework can create and then revise a "PMM aware" project, conforming to a specified PMM. In terms of the framework, we describe a simple project data visualization and associated method that can be used to synthesize a PMM for a project instance that was initially created without reference to any PMM

    A Serendipitous Software Framework for Facilitating Collaboration in Computational Intelligence

    Get PDF
    A major flaw in the academic system, particularly pertaining to computer science, is that it rewards specialisation. The highly competitive quest for new scientific developments, or rather the quest for a better reputation and more funding, forces researchers to specialise in their own fields, leaving them little time to properly explore what others are doing, sometimes even within their own field of interest. Even the peer review process, which should provide the necessary balance, fails to achieve much diversity, since reviews are typically performed by persons who are again specialists in the particular field of the work. Further, software implementations are rarely reviewed, having as a consequence the publishing of untenable results. Unfortunately, these factors contribute to an environment which is not conducive to collaboration, a cornerstone of academia | building on the work of others. This work takes a step back and examines the general landscape of computational intelligence from a broad perspective, drawing on multiple disciplines to formulate a collaborative software platform, which is flexible enough to support the needs of this diverse research community. Interestingly, this project did not set out with these goals in mind, rather it evolved, over time, from something more specialised into the general framework described in this dissertation. Design patterns are studied as a means to manage the complexity of the computational intelligence paradigm in a flexible software implementation. Further, this dissertation demonstrates that releasing research software under an open source license eliminates some of the deficiencies of the academic process, while preserving, and even improving, the ability to build a reputation and pursue funding. Two software packages have been produced as products of this research: i) CILib, an open source library of computational intelligence algorithms; and ii) CiClops, which is a virtual laboratory for performing experiments that scale over multiple workstations. Together, these software packages are intended to improve the quality of research output and facilitate collaboration by sharing a repository of simulation data, statistical analysis tools and a single software implementation.Dissertation (MSc)--University of Pretoria, 2006.Computer ScienceUnrestricte

    Factors impacting on tacit knowledge transfer within Scrum software development teams

    Get PDF
    Over time, there has been a high failure rate of information systems development (ISD) projects, although Agile development has brought recent improvements. Knowledge management is also known to be one of the critical factors to Agile and project success; however, there are some knowledge transfer studies in Agile development. Therefore, the purpose of this research is to present a theoretical model examining what makes individuals successful at transferring knowledge in teams using Scrum, Agile’s most popular methodology. Twelve semi-structured interviews were conducted at two Scrum companies in Cape Town. Participants interviewed ranged from project managers and Scrum masters to software developers, business analyst and testers. The interviews were all transcribed, then analysed using thematic analysis. The findings produced new relationships between characteristics already well known to impact knowledge transfer as well as newly defined characteristics impacting knowledge transfer in Scrum teams: empathy and articulation skills of the source. The results have shown that the recipient should perceive the person wanting to transfer knowledge as having these characteristics to enable successful knowledge transfer: empathy, motivation, capability, credibility, articulate and ability to communicate enough. The contribution of this study to practice is a list of attributes for HR managers to help improve the knowledge transfer of Scrum team members. The contribution to Scrum research is a new theoretical model that suggests which characteristics a person needs to transfer knowledge successfully in Scrum teams, adapted from Joshi, Sarker and Sarker’s (2007) knowledge transfer model. This model can also be extended in the future by looking more deeply into the new relationships between constructs, such as how motivation together with capability of the source affect knowledge transfer in Scrum teams
    • 

    corecore