SEL@KIT: O. Mizuno, Software Project Simulator for Effective Software Process Improvement, September 2001.
  • リスト
  •  表 
  • LaTeX
  • BibTeX
  • 統計情報
Detail view
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.},
}
  

Search

Tags

1 件の該当がありました. : このページのURL : HTML : RSS : XML

Language: 英語 | 日本語 || ログイン |

This site is maintained by o-mizuno.
PMAN 3.2.10 build 20181029 - Paper MANagement system / (C) 2002-2016, Osamu Mizuno
Time to show this page: 3.178658 seconds.