Software engineering projects are complex sociotechnical systems whose behavior is the result of many technical and human factors, from personnel skills to development tools and processes to business goals. In many fi...
详细信息
Software engineering projects are complex sociotechnical systems whose behavior is the result of many technical and human factors, from personnel skills to development tools and processes to business goals. In many fields, project managers get support from sophisticated decision support systems, but these haven't yet entered the software engineering mainstream. A hybrid modeling approach can quickly produce process models that can provide project managers accurate predictions, help them design the desired project trajectory, and validate process changes. The NASA Software Engineering Laboratory process provides a case study.
The motivation for this work is derived from the current interest in speeding up development schedules. A key implication of the shift to more rapid development methods is the growing emphasis on fixed time and fixed ...
详细信息
The motivation for this work is derived from the current interest in speeding up development schedules. A key implication of the shift to more rapid development methods is the growing emphasis on fixed time and fixed effort delivered during such projects. However, there appears to be little work that addresses the impacts of dealing with bound effort levels. The result of binding time and effort is to deprive project managers of the normal parameters that are used in trade-offs. The paper attempts to introduce a quantitative analytical framework for modelling effort-boxed development in order to uncover the effects on the overall development effort and the potential leverage that can be derived from incremental delivery in such projects. Models that predict product size as an exponential function of the development effort are used in the paper to explore the relationships between effort and the number of increments, thereby providing new insights into the economic impact of incremental approaches to effort-boxed software projects.
Traditional software process models assume that software systems are developed largely by writing code from scratch, and thus fail to address many of the challenges associated with developing COTS-based applications. ...
详细信息
Traditional software process models assume that software systems are developed largely by writing code from scratch, and thus fail to address many of the challenges associated with developing COTS-based applications. This often leads to selecting best-of-breed but incompatible COTS products, without considering the increased costs and reduced benefits incurred by trying to glue these together. A value-based set of processes can help steer such projects toward avoiding or minimizing such value losses.
The use of formal verification to prove the correctness of software is increasingly being mandated by international standards for the development of safety critical systems. While formal development environments exist...
详细信息
The use of formal verification to prove the correctness of software is increasingly being mandated by international standards for the development of safety critical systems. While formal development environments exist to assist in formal software development, formal verification is still an extremely difficult and time-consuming task, requiring expert skills not possessed by the typical software engineer. The authors propose a component-based development approach, where the aim is not so much to make savings in the cost of implementation, but instead to reduce the amount of verification that the software engineer needs to perform, as well as reducing the complexity of any remaining verification. This is achieved by providing reusable design templates that have been verified offline by an expert in mathematical logic and theorem proving. An important feature of the template language is the presence of higher-order parameters, which enable templates to be defined that are more widely applicable, thus giving better value for the one-off verification effort.
The maturation of the technical infrastructure has enabled the emergence and growth of distributed software development. This has created tempting opportunities for companies to distribute their software development, ...
详细信息
The maturation of the technical infrastructure has enabled the emergence and growth of distributed software development. This has created tempting opportunities for companies to distribute their software development, for example, to economically favourable countries so as to gain needed expertise or to get closer to customers. Nonetheless, such distribution potentially creates problems that need to be understood and addressed in order to make possible the gains offered. To clarify and understand the most difficult problems and their nature, a survey of individuals engaged in distributed software development was conducted. The purpose of this survey was to gather and share lessons learned in order to better understand the nature of the software development process when operating in a distributed software development environment and the problems that may be associated with such distributed processes. Through a clear appreciation of the risks associated with distributed development it becomes possible to develop approaches for the mitigation of these risks. This paper presents the results of the survey, focusing on the most serious problems raised by the respondents. Some practical guidelines that have been developed by industry to overcome these problems are also briefly summarized. Copyright (C) 2005 John Wiley & Sons, Ltd.
A new software development process, called test-driven modeling, applies the XP test-driven paradigm in a model-driven development environment. TDM involves automatic testing through simulation and using executable mo...
详细信息
A new software development process, called test-driven modeling, applies the XP test-driven paradigm in a model-driven development environment. TDM involves automatic testing through simulation and using executable models as living software system architecture documents. Compared to traditional plan-driven methods, TDM can save a significant amount of time because it reuses message sequence charts and modeling diagrams.
Software analysts create many artifacts, and until recently, these have been cumbersome to reuse. Reuser is a CASE (computer-aided software engineering) tool that lets analysts automatically retrieve related artifacts...
详细信息
Software analysts create many artifacts, and until recently, these have been cumbersome to reuse. Reuser is a CASE (computer-aided software engineering) tool that lets analysts automatically retrieve related artifacts for reuse. Evaluations of Reuser suggest that its approach to UML artifact reuse is effective. This article reports on its effectiveness in assisting analysts to reuse UML sequence diagrams.
Software globalization affects build-versus-buy decisions at every level and phase of the software development process. One of the most interesting and controversial instances of software globalization is the expansio...
详细信息
Software globalization affects build-versus-buy decisions at every level and phase of the software development process. One of the most interesting and controversial instances of software globalization is the expansion of Linux, an open source operating system, into software development efforts in developing countries. This article examines the positive and negative effects of adopting Linux and ways to achieve the greatest overall benefits.
In recent years, large-scale software development has involved collaboration among teams of people whose members are dispersed around the globe. Software change and configuration management (SCCM) is an essential disc...
详细信息
In recent years, large-scale software development has involved collaboration among teams of people whose members are dispersed around the globe. Software change and configuration management (SCCM) is an essential discipline that affects all steps of the software development process, from the definition of requirements and prototyping to the final packaging and delivery of a product to a customer Particularly in a geographically distributed environment, a good SCCM process makes it possible to produce higher-quality software and to reduce time-to-market. The concurrent change management system (CCMS) provides an out-of-the-box, customizable SCCM process framework that allows teams of project managers, architects, developers, testers, and integrators to manage product defects that have been reported, features and enhancements that have been requested, and versions of product artifacts and third-party components that provide solutions for such defects and features over multiple releases in a geographically distributed environment. The CCMS, which uses Java*/Java Database Connectivity (JDBC*) and the database replication technologies of Oracle and Rational's ClearCase*/MultiSite,* was developed by Lucent Technologies over the past 7 years. In this paper we describe the high-level architecture and the process framework of the CCMS. The process framework will also be described with examples of the use of CCMS. (C) 2003 Lucent Technologies Inc.
暂无评论