Tweet | |
O. Mizuno, "Software Project Simulator for Effective Software Process Improvement," Ph.D. thesis, Graduate School of Engineering Science, Osaka University, 2001. | |
ID | 271 |
分類 | 学位論文 |
タグ | effective improvement process project simulator software |
表題 (title) |
Software Project Simulator for Effective Software Process Improvement |
表題 (英文) |
|
著者名 (author) |
Osamu Mizuno |
英文著者名 (author) |
Osamu Mizuno |
キー (key) |
Osamu Mizuno |
学校名 (school) |
Graduate School of Engineering Science, Osaka University |
出版社住所 (address) |
|
刊行月 (month) |
9 |
出版年 (year) |
2001 |
URL |
|
付加情報 (note) |
Chief examiner: Prof. Tohru Kikuno. |
注釈 (annote) |
|
内容梗概 (abstract) |
Assuring software quality and productivity is a major problem facing
software engineering. In general, software quality affects productivity, since software products with higher quality require less rework and maintenance. To develop and maintain the software products, developers may use various activities, methods, practices and transformations. A software process is defined as a set of such activities, methods, practices and transformations that people use to develop and maintain software and the associated products, e.g., project plans, design documents, code, test cases, and user manuals. Software process improvement is a deliberate methodology for improving software processes, and it includes understanding, definition, measurement, and optimization of the processes. Process improvement is indispensable for improving the quality of software products and the productivity of the development process. In a certain company (hereafter, called Company A) that develops software embedded in social infrastructure systems, low quality and low productivity became major problems about 10 years ago. Since such problems were primarily caused by disorganized projects, that is, the projects were executed under loose management, the company recognized the necessity of improving the software process for such disorganized projects. To promote process improvement, Company A then established a group called the Software Engineering Process Group (SEPG). The SEPG collected data on software metrics from software development projects, and faced the challenge of identifying disorganized projects based on the statistical analysis of the collected data. By means of such activities, the SEPG succeeded in clearly identifying disorganized projects. As a result, the SEPG's objective was shifted from the identification of disorganized projects to the improvement of their processes. However, even if process improvement activities were devised, they were seldom applied to actual projects, since those activities require a large amount of resources, and software developers were skeptical about the effectiveness of improvement activities. This kind of problem is common to other software organizations, and a cost-effective approach for software process improvement is strongly required. Simulation techniques have been introduced to answer such a requirement, and software process simulation is known to be one of the most cost-effective solutions for facilitating process improvement activities. Our goal has been to establish a new software simulation technique with a high simulation accuracy. We have also aimed at investigating its applicability to actual software process improvement in Company A. In this paper, we propose a new model for describing software processes and a simulation method for software projects that aims at effective software process improvement. A formal model is developed based on experience and data from software development processes at Company A. The model consists of a Project model and a Process model. The Project model focuses on three key components: activities, products, and developers of a project. The Process model includes a set of Activity models, each specifying design, coding, review, test, and debug activities using a Generalized Stochastic Petri Net (GSPN). The new model handles the effect of human factors by introducing the concept of ``workload''. Next, we develop a simulator that supports the description of a software process, and executes the software process according to the description. As a result of its execution, we obtain estimated values for the quality, cost and delivery date of the target process. Experimental results show the applicability of the proposed simulator. Based on the developed simulator, we simulate 3 process improvements: (1) improvement of parallel execution of activities, (2) improvement of test phase planning, and (3) application to risk prediction. First, we investigate experimentally the influence of ``parallel execution'' of activities in a development process. Parallel execution is a situation where an activity, such as coding, begins before the previous activity, such as module design, finishes. In a standard waterfall model, the situation should be avoided because it tends to cause confusion in a project. However, in actual development projects in Company A, such parallel executions frequently occur in order to reduce the development schedule. We thus try to show the effect of the parallel execution, and to improve parallel execution in Company A. To do so, we simulate two cases: a case without any parallel execution and a case with parallel execution between module design and coding activities. The results of two cases are compared and evaluated. Next, we try to apply the proposed simulator to update a project plan. Generally, a development plan should be updated according to the actual progress of a project. However, some of the solutions for updating a development plan are less than optimal. Hence, project plans are updated based on the experience and intuition of developers. We thus apply the proposed simulator to support updating a development plan. To do so, we consider a simple development process consisting of design and debug phases, which is derived from the actual development process in Company A. We then propose a two-phase project control method that examines the initial development plan at the end of the design phase, updates it to current status of the development process, and executes a debug phase under a new (updated) plan. In order to show its usefulness, we define 3 imaginary projects: a project that executes the debug phase under the initial plan, a project that applies the proposed approach, and a project that follows a uniform (that is, trivial) plan. Finally, we present an extension of the proposed simulator in order to apply risk prediction with a cost estimating capability. We have developed a risk predicting system to find ``risky'' projects by statistical analyses on risk questionnaires from project managers in Company A. In this approach, only a probability of riskiness was calculated for a project. The managers, however, wanted to be given concrete proof why a software project becomes risky. To present proof that a software project is becoming risky, we try to extend the simulator so that it can deal with risk factors. To do so, fluctuation in skill level and deadline pressure are represented by modifying parameters in the simulator. A case study confirms that the extended simulator can estimate the development cost under some typical risks. This dissertation is organized as follows: The first and second chapters are introductory. In Chapter 1, we briefly summarize related progress and topics in software process simulation and describe the outline of the dissertation. In Chapter 2, we describe the background for software process improvement and we also show process improvement activities performed in the targeted organization. In Chapter 3, we define a model to describe a software process using Generalized Stochastic Petri Nets (GSPN). Examples describing typical activities in a development process are also shown. we then implement a simulator based on the proposed model, and evaluate the simulator experimentally based on actual project data. In Chapter 4, we describe the first application of the simulator to process improvement. In this chapter, we show that the parallel execution of development activities (such as executing module design and coding activities simultaneously) increase project costs and residual faults. In Chapter 5, we show the second process improvement example. In this application, we use several simulations to investigate the effect of dynamic updating of a project plan. In Chapter 6, we extend the application of the simulator to risk prediction. We adopt some extensions to the simulator to manage risk factors in software projects. Finally, I conclude this dissertation with a summary and directions for future work in Chapter 7. |
論文電子ファイル | thesis (application/pdf) [一般閲覧可] |
BiBTeXエントリ |
@phdthesis{id271, title = {Software project simulator for effective software process improvement}, author = {Osamu Mizuno}, school = {Graduate School of Engineering Science, Osaka University}, month = {9}, year = {2001}, note = {Chief examiner: Prof. Tohru Kikuno.}, } |