299,653 research outputs found
Constraints and Opportunities in GCM Model Development
Over the past 30 years climate models have evolved from relatively simple representations of a few atmospheric processes to complex multi-disciplinary system models which incorporate physics from bottom of the ocean to the mesopause and are used for seasonal to multi-million year timescales. Computer infrastructure over that period has gone from punchcard mainframes to modern parallel clusters. Constraints of working within an ever evolving research code mean that most software changes must be incremental so as not to disrupt scientific throughput. Unfortunately, programming methodologies have generally not kept pace with these challenges, and existing implementations now present a heavy and growing burden on further model development as well as limiting flexibility and reliability. Opportunely, advances in software engineering from other disciplines (e.g. the commercial software industry) as well as new generations of powerful development tools can be incorporated by the model developers to incrementally and systematically improve underlying implementations and reverse the long term trend of increasing development overhead. However, these methodologies cannot be applied blindly, but rather must be carefully tailored to the unique characteristics of scientific software development. We will discuss the need for close integration of software engineers and climate scientists to find the optimal processes for climate modeling
Agile methods in biomedical software development: a multi-site experience report
BACKGROUND: Agile is an iterative approach to software development that relies on strong collaboration and automation to keep pace with dynamic environments. We have successfully used agile development approaches to create and maintain biomedical software, including software for bioinformatics. This paper reports on a qualitative study of our experiences using these methods. RESULTS: We have found that agile methods are well suited to the exploratory and iterative nature of scientific inquiry. They provide a robust framework for reproducing scientific results and for developing clinical support systems. The agile development approach also provides a model for collaboration between software engineers and researchers. We present our experience using agile methodologies in projects at six different biomedical software development organizations. The organizations include academic, commercial and government development teams, and included both bioinformatics and clinical support applications. We found that agile practices were a match for the needs of our biomedical projects and contributed to the success of our organizations. CONCLUSION: We found that the agile development approach was a good fit for our organizations, and that these practices should be applicable and valuable to other biomedical software development efforts. Although we found differences in how agile methods were used, we were also able to identify a set of core practices that were common to all of the groups, and that could be a focus for others seeking to adopt these methods
Towards a philosophical understanding of agile software methodologies : the case of Kuhn versus Popper
This dissertation is original in using the contrasting ideas of two leading 20th century philosophers of science, Karl Popper and Thomas Kuhn, to provide a philosophical understanding, firstly, of the shift from traditional software methodologies to the so-called Agile methodologies, and, secondly, of the values, principles and practices underlying the most prominent of the Agile methodologies, Extreme Programming (XP). This dissertation will take a revisionist approach, following Fullerâthe founder of social epistemologyâin reading Popper against Kuhn's epistemological hegemony. The investigations in this dissertation relate to two main branches of philosophyâ epistemology and ethics. The epistemological part of this dissertation compares both Kuhn and Popper's alternative ideas of the development of scientific knowledge to the Agile methodologists' ideas of the development of software, in order to assess the extent to which Agile software development resembles a scientific discipline. The investigations relating to ethics in this dissertation transfer concepts from social engineeringâin particular, Popper's distinction between piecemeal and utopian social engineeringâto software engineering, in order to assess both the democratic and authoritarian aspects of Agile software development and management. The use of Kuhn's ideas of scientific revolutions and paradigm shift by several leading figures of the Agile software methodologiesâmost notably, Kent Beck, the leader of the most prominent Agile software methodology, Extreme Programming (XP)âto predict a fundamental shift from traditional to Agile software methodologies, is critically assessed in this dissertation. A systematic investigation into whether Kuhn's theory as a whole, can provide an adequate account of the day-to-day practice of Agile software development is also provided. As an alternative to the use of Kuhn's ideas, the critical rationalist philosophy of Karl Popper is investigated. On the one hand, this dissertation assesses whether the epistemological aspects of Popper's philosophyâespecially his notions of falsificationism, evolutionary epistemology, and three worlds metaphysicsâprovide a suitable framework for understanding the philosophical basis of everyday Agile software development. On the other hand, the aspects of Popper's philosophy relating to ethics, which provide an ideal for scientific practice in an open society, are investigated in order to determine whether they coincide with the avowedly democratic values of Agile software methodologies. The investigations in this dissertation led to the following conclusions. Firstly, Kuhn's ideas are useful in predicting the effects of the full-scale adoption of Agile methodologies, and they describe the way in which several leaders of the Agile methodologies promote their methodologies; they do not, however, account for the detailed methodological practice of Agile software development. Secondly, several aspects of Popper's philosophy, were found to be aligned with several aspects of Agile software development. In relation to epistemology, Popper's principle of falsificationism provides a criterion for understanding the rational and scientific basis of several Agile principles and practices, his evolutionary epistemology resembles the iterative-incremental design approach of Agile methodologies, and his three worlds metaphysical model provides an understanding of both the nature of software, and the approach advocated by the Agile methodologists' of creating and sharing knowledge. In relation to ethics, Popper's notion of an open society provides an understanding of the rational and ethical basis of the values underlying Agile software development and management, as well as the piecemeal adoption of Agile software methodologies.Dissertation (MSc)--University of Pretoria, 2009.Computer Scienceunrestricte
Metode razvoja programske podrĆĄke, procesi i ĆŸivotni ciklus u projektno orijentiranoj tvrtci
With this paper, I would like to put on paper the whole lifecycle of Software Development. From the business case for a new software solution, business requirements creation, features creation to development, development methodologies, software testing methodologies and lastly software maintenance and software retiring. I will explain all this from the perspective of a project-oriented and heavily utilized company, which is working at full capacity requiring strict prioritization of projects and deliverables. I am using all available sources such as scientific articles and literature dealing with topics on software development methodologies, project and portfolio management and software release management available to me. Purpose for this paper is to paint a clear and concise picture on how project-oriented companies can tackle risks and issues managing software development in order to ensure the creation of added value to their products and customers
Learning e-Learning
What You Understand Is What Your Cognitive Integrates. Scientific research develops, as a native environment, knowledge. This environment consists of two interdependent divisions: theory and technology. First division occurs as a recursive research, while the second one becomes an application of the research activity. Over time, theories integrate methodologies and technology extends as infrastructure. The engine of this environment is learning, as the human activity of knowledge work. The threshold term of this model is the concepts map; it is based on Bloomâ taxonomy for the cognitive domain and highlights the notion of software scaffolding which is grounded in Vygotskyâs Social Development Theory with its major theme, Zone of Proximal Development. This article is designed as a conceptual paper, which analyzes specific structures of this type of educational research: the model reflects a foundation for a theory and finally, the theory evolves as groundwork for a system. The outcomes of this kind of approach are the examples, which are, theoretically, learning outcomes, and practically exist as educational objects, so-called e-learning.Assisted Instruction, Cognitive Infrastructure, Concepts Map, Software Scaffolding
Metode razvoja programske podrĆĄke, procesi i ĆŸivotni ciklus u projektno orijentiranoj tvrtci
With this paper, I would like to put on paper the whole lifecycle of Software Development. From the business case for a new software solution, business requirements creation, features creation to development, development methodologies, software testing methodologies and lastly software maintenance and software retiring. I will explain all this from the perspective of a project-oriented and heavily utilized company, which is working at full capacity requiring strict prioritization of projects and deliverables. I am using all available sources such as scientific articles and literature dealing with topics on software development methodologies, project and portfolio management and software release management available to me. Purpose for this paper is to paint a clear and concise picture on how project-oriented companies can tackle risks and issues managing software development in order to ensure the creation of added value to their products and customers
Overview and Guidance on Agile Development in Large Organizations
A continual debate surrounds the effectiveness of agile software development practices. Some organizations adopt agile practices to become more competitive, improve processes, and reduce costs. Other organizations are skeptical about whether agile development is beneficial. Large organizations face an additional challenge in integrating agile practices with existing standards and business processes. To examine the effects of agile development practices in large organizations, we review and integrate scientific literature and theory on agile software development. We further organize our theory and observations into a framework with guidelines for large organizations considering agile methodologies. Based on this framework, we present recommendations that suggest ways large organizations with established processes can successfully implement agile practices. Our analysis of the literature and theory provides new insight for researchers of agile software development and assists practitioners in determining how to adopt agile development in their organizations
Overview and Guidance on Agile Development in Large Organizations
A continual debate surrounds the effectiveness of agile software development practices. Some organizations adopt agile practices to become more competitive, improve processes, and reduce costs. Other organizations are skeptical about whether agile development is beneficial. Large organizations face an additional challenge in integrating agile practices with existing standards and business processes. To examine the effects of agile development practices in large organizations, we review and integrate scientific literature and theory on agile software development. We further organize our theory and observations into a framework with guidelines for large organizations considering agile methodologies. Based on this framework, we present recommendations that suggest ways large organizations with established processes can successfully implement agile practices. Our analysis of the literature and theory provides new insight for researchers of agile software development and assists practitioners in determining how to adopt agile development in their organizations
Agile and Evm for the Dod: a Review of the Challenges and a New Approach to Solve them
Department of Defense (DoD) acquisitions must improve program performance while working within budgetary constraints. The DoD community shows an interest in utilizing Agile methodologies, but struggles to reap Agile\u27s benefits. They encountered challenges including the historically built up processes that enforce heavy-weight oversight; the outdated, manufacturing focused Work Breakdown Structures (WBS) provided in DoD Handbook: Work Breakdown Structures (WBS) for Defense Material Items (MIL-STD-881C); and the inability of the traditional waterfall based processes to accommodate iterative development. The author used the scientific method to review the documented issues encountered when using Agile on a DoD program within the constraints of Earned Value Management (EVM). The author developed the hypothesis that the currently available WBS options in MIL-STD-881C are in conflict with attempts to implement Agile software development methodologies and Agile Earned Value Management (AgileEVM) on DoD acquisition activities. Modifying MIL-STD-881C to include an iterative-based software development focused WBS would provide the DoD environment with a foundation to begin an overhaul of the current procedures and best practices to better support Agile methodologies and increase the adoption of Agile techniques. Based on the findings in this paper, additional research topics include: developing and defining the new WBS structure, determining what modifications are needed to other military standards, documented procedures, and best practices, and discussing the cultural changes needed to support and encourage greater use of Agile development methodologies in the DoD
Software Development Process Modeling. Developers Perspective to Contemporary Modeling Techniques
Formal software development processes and well-defined development methodologies
are nowadays seen as the definite way to produce high-quality software within
time-limits and budgets. The variety of such high-level methodologies is huge
ranging from rigorous process frameworks like CMMI and RUP to more lightweight
agile methodologies. The need for managing this variety and the fact that
practically every software development organization has its own unique set of development
processes and methods have created a profession of software process
engineers. Different kinds of informal and formal software process modeling languages
are essential tools for process engineers. These are used to define processes
in a way which allows easy management of processes, for example process dissemination,
process tailoring and process enactment.
The process modeling languages are usually used as a tool for process engineering
where the main focus is on the processes themselves. This dissertation
has a different emphasis. The dissertation analyses modern software development
process modeling from the software developersâ point of view. The goal of the
dissertation is to investigate whether the software process modeling and the software
process models aid software developers in their day-to-day work and what are
the main mechanisms for this. The focus of the work is on the Software Process
Engineering Metamodel (SPEM) framework which is currently one of the most
influential process modeling notations in software engineering.
The research theme is elaborated through six scientific articles which represent
the dissertation research done with process modeling during an approximately
five year period. The research follows the classical engineering research discipline
where the current situation is analyzed, a potentially better solution is developed
and finally its implications are analyzed. The research applies a variety of different
research techniques ranging from literature surveys to qualitative studies done
amongst software practitioners.
The key finding of the dissertation is that software process modeling notations
and techniques are usually developed in process engineering terms. As a consequence
the connection between the process models and actual development work
is loose. In addition, the modeling standards like SPEM are partially incomplete
when it comes to pragmatic process modeling needs, like light-weight modeling
and combining pre-defined process components. This leads to a situation, where
the full potential of process modeling techniques for aiding the daily development
activities can not be achieved.
Despite these difficulties the dissertation shows that it is possible to use modeling
standards like SPEM to aid software developers in their work. The dissertation
presents a light-weight modeling technique, which software development teams
can use to quickly analyze their work practices in a more objective manner. The
dissertation also shows how process modeling can be used to more easily compare
different software development situations and to analyze their differences in a
systematic way. Models also help to share this knowledge with others.
A qualitative study done amongst Finnish software practitioners verifies the
conclusions of other studies in the dissertation. Although processes and development
methodologies are seen as an essential part of software development, the
process modeling techniques are rarely used during the daily development work.
However, the potential of these techniques intrigues the practitioners.
As a conclusion the dissertation shows that process modeling techniques, most
commonly used as tools for process engineers, can also be used as tools for organizing
the daily software development work. This work presents theoretical solutions
for bringing the process modeling closer to the ground-level software development
activities. These theories are proven feasible by presenting several case studies
where the modeling techniques are used e.g. to find differences in the work methods
of the members of a software team and to share the process knowledge to a
wider audience.Siirretty Doriast
- âŠ