ABSTRACT
During the last few decades a number of software development
models have been proposed and discussed within the Software
Engineering community. Examples of such models are Waterfall,
Spiral, V Model, and Prototyping. The introduction of different
models and their subsequent adoption by practitioners motivates
the need to compare them. Comparisons are defined to i) find the
best fit for a particular software development project; ii) improve
the models themselves; iii) facilitate dissemination and education
on development best practices and iv) find relevant information to
define new models. However, existing comparisons are often
largely based on the experience of practitioners and the intuitive
understandings of the authors. Consequently, they tend to be
subjective and inaccurate. The lack of a systematic way of
comparing development models reduces understanding of such
models and their overall acceptance by practitioners. We propose
a systematic way of comparing software development models
based on a formal technique originally proposed to compare
design methodologies. The use of one well-defined formal
technique provides a more consistent and efficient way to compare
software development models and could be used to fine-tune the
software development process of a software development
organization. We present the results of a case study conducted to
compare two well known and largely used development models.
Results of such comparisons could be used by Information
Technology educators to show their students the advantages and
disadvantages of each model and instruct them on how and when
to apply each model or variations of them.
Categories and Subject Descriptors
I.6.5 [Model Development]: Model Development Comparison –
life cycle, documentation, risk analysis.
General Terms:
Design, Standardization.
Keywords
Comparison of Development Models, Software Engineering, IT
Education.
1. INTRODUCTION
The overall cost of computer-based systems is associated to the
hardware where the system will be deployed and to the cost of
software development and maintenance. The cost of hardware has
systematically decreased over the last few decades. Moreover it
represents an initial and well-defined fixed cost. This scenario
indicates that the main restrictive factor for the development of
computer-based systems tends to be the cost of software. Software
represents a great share in the total cost of systems development.
Thus, the production of cost-effective quality software is essential
for the future of computer-based systems.
Software Engineering discipline has the cost-effective planning
and development of software as a goal [11]. Software is abstract
and intangible. It is not composed of materials, governed by
physical laws or constructed within manufacturing processes.
Software processes are complex and, like every intellectual
process, dependent on human judgment.
Software Engineering embraces a group of three fundamental
elements: methods, tools and procedures [7]. Together they allow
the software manager to control the software development process
and provide the practitioner with a base for the construction of
high quality productive software. The sequence of phases or
stages that the software has to go through from its initial
conceptualization to its final deployment and subsequent
maintenance life is called Software Paradigm or Software
Development Model.
The human aspect of software development emphasizes the
importance teaching the appropriate techniques, methods, models
and tools to future practitioners. Software development models are
especially important in this scenario since they provide the
structural framework where all the other activities involved in
developing professional software unleash [2].
During the last few decades several software development
models have been discussed in the context of Software
Engineering. Several comparisons have been performed and
published by different specialists in order to identify weaknesses
and strengths of different models. According to Song, et. al [12],
the existing comparisons are often largely based upon the
experiences of the practitioners and the intuitive understandings of
the authors. Consequently these comparisons tend to be subjective
and inaccurate. The use of a formal and well-defined technique
provides an effective way to compare development models.
Currently an immense diversity of software development
models exists. There is no ideal model, and different organizations
have developed approaches that are entirely different from one
another.
The objective of this work is to identify the main characteristics
of development models and compare them. We propose to adapt
the technique called CDM [12] (Compare Design Methodologies)
to compare models. The adapted technique is called CDMod
Permission to make digital or hard copies of all or part of this work for
personal or classroom use is granted without fee provided that copies are
not made or distributed for profit or commercial advantage and that copies
bear this notice and the full citation on the first page. To copy otherwise, or
republish, to post on servers or to redistribute to lists, requires prior
specific permission and/or a fee.
SIGITE’05, October 20–22, 2005, Newark, New Jersey, USA.
Copyright 2005 ACM 1-59593-252-6/05/0010...$5.00.
บทคัดย่อในช่วงไม่กี่ทศวรรษที่ผ่านมาจำนวนของการพัฒนาซอฟต์แวร์รุ่นที่ได้รับการเสนอและอภิปรายในซอฟท์แวชุมชนวิศวกรรม ตัวอย่างของรูปแบบดังกล่าวเป็นน้ำตก, Spiral, V รุ่นและต้นแบบ การแนะนำของที่แตกต่างกันรูปแบบและภายหลังการนำไปใช้โดยผู้ปฏิบัติงานของพวกเขากระตุ้นความต้องการที่จะเปรียบเทียบพวกเขา การเปรียบเทียบจะถูกกำหนดให้ i) หาแบบที่ดีที่สุดสำหรับโครงการการพัฒนาซอฟต์แวร์เฉพาะ ii) การปรับปรุงรูปแบบตัวเอง iii) การอำนวยความสะดวกในการเผยแพร่และการศึกษาเกี่ยวกับการปฏิบัติที่ดีที่สุดในการพัฒนาและ iv) การหาข้อมูลที่เกี่ยวข้องกับการกำหนดรูปแบบใหม่ แต่การเปรียบเทียบที่มีอยู่มักจะเป็นส่วนใหญ่ขึ้นอยู่กับประสบการณ์ของผู้ปฏิบัติงานที่ใช้งานง่ายและความเข้าใจของผู้เขียน ดังนั้นพวกเขามีแนวโน้มที่จะอยู่ในใจและไม่ถูกต้อง ขาดอย่างเป็นระบบของการเปรียบเทียบรูปแบบการพัฒนาจะช่วยลดความเข้าใจเช่นรูปแบบและการยอมรับโดยรวมของพวกเขาโดยผู้ปฏิบัติงาน เรานำเสนออย่างเป็นระบบของการเปรียบเทียบรูปแบบการพัฒนาซอฟต์แวร์ขึ้นอยู่กับเทคนิคที่เป็นทางการมาเสนอเพื่อเปรียบเทียบวิธีการออกแบบ การใช้อย่างใดอย่างหนึ่งอย่างเป็นทางการดีที่กำหนดเทคนิคมีวิธีการที่สอดคล้องกันมากขึ้นและมีประสิทธิภาพเพื่อเปรียบเทียบรูปแบบการพัฒนาซอฟต์แวร์และสามารถใช้ในการปรับแต่งกระบวนการพัฒนาซอฟต์แวร์ของการพัฒนาซอฟต์แวร์องค์กร เรานำเสนอผลการศึกษากรณีการดำเนินการที่จะเปรียบเทียบทั้งสองที่รู้จักกันดีและใช้รูปแบบการพัฒนาส่วนใหญ่ผลของการเปรียบเทียบดังกล่าวสามารถนำมาใช้โดยข้อมูลการศึกษาเทคโนโลยีที่จะแสดงให้นักเรียนของพวกเขาข้อดีและข้อเสียของแต่ละรุ่นและสั่งให้พวกเขาเกี่ยวกับวิธีการและเมื่อที่จะ ใช้แต่ละรุ่นหรือรูปแบบของพวกเขาหมวดหมู่และอธิบายเรื่องI.6.5 [รูปแบบการพัฒนา]: รุ่นเปรียบเทียบการพัฒนา - วงจรชีวิตเอกสารการวิเคราะห์ความเสี่ยงข้อกำหนดทั่วไป: การออกแบบมาตรฐานคำเปรียบเทียบของการพัฒนาแบบจำลองวิศวกรรมซอฟแวร์ไอทีการศึกษา . 1 บทนำค่าใช้จ่ายโดยรวมของระบบคอมพิวเตอร์ที่มีการเชื่อมโยงไปยังฮาร์ดแวร์ที่ระบบจะใช้งานและค่าใช้จ่ายในการพัฒนาซอฟต์แวร์และการบำรุงรักษา ค่าใช้จ่ายของฮาร์ดแวร์ได้ลดลงอย่างเป็นระบบในช่วงไม่กี่ทศวรรษที่ผ่านมา นอกจากนี้มันแสดงให้เห็นถึงค่าใช้จ่ายคงที่เริ่มต้นและดีที่กำหนด สถานการณ์นี้แสดงให้เห็นว่าปัจจัยที่เป็นข้อ จำกัด ที่สำคัญในการพัฒนาระบบคอมพิวเตอร์ที่ใช้มีแนวโน้มที่จะเป็นค่าใช้จ่ายของซอฟต์แวร์ ซอฟแวร์แสดงให้เห็นถึงส่วนแบ่งที่ดีในการใช้จ่ายทั้งหมดของการพัฒนาระบบดังนั้นการผลิตของค่าใช้จ่ายที่มีประสิทธิภาพซอฟต์แวร์ที่มีคุณภาพเป็นสิ่งสำคัญสำหรับอนาคตของระบบคอมพิวเตอร์ที่ใช้ระเบียบวินัยวิศวกรรมซอฟต์แวร์มีการวางแผนค่าใช้จ่ายที่มีประสิทธิภาพและการพัฒนาซอฟต์แวร์เป็นเป้าหมาย [11] ซอฟต์แวร์เป็นนามธรรมและไม่มีตัวตน มันไม่ได้ประกอบด้วยวัสดุควบคุมโดยกฎหมายทางกายภาพหรือสร้างกระบวนการผลิตภายในกระบวนการซอฟแวร์มีความซับซ้อนและเช่นเดียวกับทุกทางปัญญากระบวนการขึ้นอยู่กับการตัดสินใจของมนุษย์วิศวกรรมซอฟต์แวร์รวบรวมกลุ่มของสามขั้นพื้นฐานองค์ประกอบ: วิธีการเครื่องมือและขั้นตอน [7 ] พวกเขาช่วยกันช่วยให้ผู้จัดการซอฟต์แวร์ในการควบคุมกระบวนการพัฒนาซอฟต์แวร์และให้ผู้ประกอบการที่มีฐานในการก่อสร้างที่มีคุณภาพสูงผลิตซอฟต์แวร์ ลำดับขั้นตอนหรือขั้นตอนว่าซอฟต์แวร์ที่มีการผ่านจากเริ่มต้นของแนวความคิดที่จะใช้งานเป็นครั้งสุดท้ายและต่อมาชีวิตการบำรุงรักษาที่เรียกว่าซอฟท์แวกระบวนทัศน์หรือซอฟแวร์รูปแบบการพัฒนาด้านมนุษย์ของการพัฒนาซอฟต์แวร์ที่เน้นความสำคัญการเรียนการสอนที่เหมาะสมเทคนิควิธีการ รูปแบบและเครื่องมือในการปฏิบัติงานในอนาคต รูปแบบการพัฒนาซอฟแวร์มีความสำคัญโดยเฉพาะอย่างยิ่งในสถานการณ์นี้ตั้งแต่พวกเขาให้กรอบโครงสร้างที่ทุกกิจกรรมอื่น ๆ ที่เกี่ยวข้องในการพัฒนาซอฟต์แวร์มืออาชีพปล่อย [2] ในช่วงไม่กี่ทศวรรษที่ผ่านมาหลายการพัฒนาซอฟต์แวร์รุ่นที่ได้รับการกล่าวถึงในบริบทของซอฟท์แววิศวกรรม หลายเปรียบเทียบได้รับการดำเนินการและเผยแพร่โดยผู้เชี่ยวชาญที่แตกต่างกันในการที่จะระบุจุดอ่อนและจุดแข็งของรูปแบบที่แตกต่างกัน ตามเพลง, et อัล [12], การเปรียบเทียบที่มีอยู่มักจะขึ้นอยู่ส่วนใหญ่อยู่กับประสบการณ์ของผู้ปฏิบัติงานและเข้าใจง่ายของผู้เขียน ดังนั้นการเปรียบเทียบเหล่านี้มีแนวโน้มที่จะอยู่ในใจและไม่ถูกต้อง การใช้เทคนิคที่เป็นทางการและดีที่กำหนดให้วิธีที่มีประสิทธิภาพเพื่อเปรียบเทียบรูปแบบการพัฒนาในปัจจุบันความหลากหลายอันยิ่งใหญ่ของการพัฒนาซอฟต์แวร์รูปแบบที่มีอยู่ ไม่มีรูปแบบที่เหมาะและเป็นองค์กรที่แตกต่างกันได้มีการพัฒนาวิธีการที่มีทั้งแตกต่างจากคนอื่นวัตถุประสงค์ของงานนี้คือการระบุลักษณะสำคัญของรูปแบบการพัฒนาและเปรียบเทียบพวกเขา เรานำเสนอในการปรับเทคนิคที่เรียกว่า CDM [12] (เปรียบเทียบการออกแบบระเบียบวิธี) เพื่อเปรียบเทียบรูปแบบ เทคนิคการปรับตัวที่เรียกว่า CDMod ได้รับอนุญาตให้ทำสำเนาดิจิตอลหรือยากทั้งหมดหรือส่วนหนึ่งของผลงานนี้ใช้งานส่วนบุคคลหรือห้องเรียนจะได้รับโดยไม่เสียค่าธรรมเนียมให้สำเนาจะไม่ได้ทำหรือจำหน่ายเพื่อหวังผลกำไรหรือประโยชน์เชิงพาณิชย์และที่สำเนาแบกนี้และแจ้งให้ทราบล่วงหน้า อ้างอิงเต็มในหน้าแรก ในการคัดลอกอย่างอื่นหรือเผยแพร่เพื่อโพสต์บนเซิร์ฟเวอร์หรือเพื่อแจกจ่ายไปยังรายการต้องใช้ก่อนได้รับอนุญาตที่เฉพาะเจาะจงและ / หรือค่าธรรมเนียมSIGITE'05, 20-22 ตุลาคม 2005, นวร์กในรัฐนิวเจอร์ซีย์, สหรัฐอเมริกาลิขสิทธิ์ 2005 ACM 1 - 59593-252-6/05/0010 ... $ 5.00
การแปล กรุณารอสักครู่..
นามธรรม
ช่วงทศวรรษที่ผ่านมาจำนวนของโมเดลการพัฒนาซอฟต์แวร์ได้รับการเสนอและปรึกษา
วิศวกรรมซอฟต์แวร์ภายในชุมชน ตัวอย่าง เช่น รุ่นเกลียวน้ำตก
V รุ่นและต้นแบบ . การแนะนำของรุ่นที่แตกต่างกันและการยอมรับของผู้ปฏิบัติงาน
ตามมาให้ต้องเปรียบเทียบ การเปรียบเทียบจะไว้ผม ) หา
พอดีกับที่ดีที่สุดสำหรับโครงการพัฒนาซอฟต์แวร์เฉพาะ ; 2 ) ปรับปรุง
รุ่นตัวเอง ; 3 ) ความสะดวกในการเผยแพร่ และการศึกษา
ต่อการปฏิบัติการพัฒนาที่ดีที่สุดและ 4 ) ค้นหาข้อมูลที่เกี่ยวข้องกับ
กำหนดรูปแบบใหม่ อย่างไรก็ตาม การเปรียบเทียบที่มีอยู่มักจะ
ส่วนใหญ่ขึ้นอยู่กับประสบการณ์ของผู้ปฏิบัติงาน และเข้าใจง่าย
ของผู้ประพันธ์ จึง , พวกเขามีแนวโน้มที่จะ
อัตนัย และไม่ถูกต้อง ขาดวิธีการเปรียบเทียบรูปแบบการพัฒนาความเข้าใจ
ลดรุ่นดังกล่าวและการยอมรับโดยรวมของพวกเขา โดยกลุ่มผู้ประกอบการ เราเสนอ
วิธีการเปรียบเทียบการพัฒนาซอฟต์แวร์แบบเป็นทางการ
ขึ้นอยู่กับเทคนิคเสนอเดิมเพื่อเปรียบเทียบ
วิธีการออกแบบ การใช้
เป็นทางการหนึ่งรูปเทคนิคมีวิธีการที่สอดคล้องกันมากขึ้นและมีประสิทธิภาพเพื่อเปรียบเทียบ
โมเดลการพัฒนาซอฟต์แวร์และสามารถใช้เพื่อปรับแต่ง
กระบวนการพัฒนาซอฟต์แวร์ขององค์กรการพัฒนา
ซอฟต์แวร์ เรานำเสนอผลของกรณีศึกษา
เปรียบเทียบสองที่รู้จักกันดีและส่วนใหญ่ใช้รูปแบบการพัฒนา .
ผลเปรียบเทียบดังกล่าวสามารถใช้ข้อมูล
โดยเทคโนโลยีด้านการแสดงนักเรียน ข้อดี และข้อเสียของแต่ละรูปแบบและ
สั่งให้พวกเขาเกี่ยวกับวิธีการและเมื่อใช้แต่ละรุ่นหรือรูปแบบต่าง ๆ ของพวกเขา และประเภทวิชาใน i.6.5
[ รูปแบบ ] : การพัฒนารูปแบบการพัฒนาเปรียบเทียบ–
วงจรชีวิตเอกสารการวิเคราะห์ความเสี่ยง ทั่วไป :
เรื่องการออกแบบ มาตรฐาน
ของคำหลัก การเปรียบเทียบรูปแบบการพัฒนาวิศวกรรมซอฟต์แวร์การศึกษา ,
.
1 บทนำ
ต้นทุนโดยรวมของระบบคอมพิวเตอร์ที่เกี่ยวข้องกับ
ฮาร์ดแวร์ที่ระบบจะต้องใช้งานและค่าใช้จ่ายของการพัฒนาซอฟต์แวร์และการบำรุงรักษา ต้นทุนของฮาร์ดแวร์ได้
รับลดลงกว่าสองสามทศวรรษที่ผ่านมา ยิ่งไปกว่านั้นมัน
เป็นเริ่มต้นและต้นทุนคงที่ต่อ .
สถานการณ์นี้พบว่า ปัจจัยหลักที่เข้มงวดสำหรับการพัฒนา
ระบบคอมพิวเตอร์มีแนวโน้มที่จะเป็นค่าใช้จ่ายซอฟต์แวร์ ซอฟต์แวร์
หมายถึงการแบ่งปันที่ยิ่งใหญ่ในต้นทุนรวมของการพัฒนาระบบ
ดังนั้นการผลิตซอฟต์แวร์ที่มีคุณภาพที่มีประสิทธิภาพเป็นสิ่งจำเป็นสำหรับอนาคตของระบบคอมพิวเตอร์
.
วินัยวิศวกรรมซอฟต์แวร์มี
วางแผนประหยัดต้นทุนและการพัฒนาซอฟต์แวร์ที่เป็นเป้าหมาย [ 11 ] ซอฟต์แวร์ที่เป็นนามธรรม
และไม่มีตัวตน . มันไม่ประกอบด้วยวัสดุ , ควบคุมโดยกฎหมายหรือสร้าง
ทางกายภาพภายในกระบวนการผลิต กระบวนการ
ซอฟต์แวร์ที่ซับซ้อนและกระบวนการทางปัญญา ทุกคน
ขึ้นอยู่กับการตัดสินใจของมนุษย์ วิศวกรรมซอฟต์แวร์รวบรวมกลุ่มสามองค์ประกอบพื้นฐาน
: วิธีการ เครื่องมือ และวิธีการ [ 7 ]ร่วมกันพวกเขาให้
ผู้จัดการซอฟต์แวร์เพื่อควบคุมกระบวนการพัฒนาซอฟต์แวร์
และให้ผู้ประกอบการ มีฐาน สำหรับการก่อสร้าง
คุณภาพสูงซอฟต์แวร์ที่มีประสิทธิภาพ ลำดับของขั้นตอนหรือ
ขั้นตอนซอฟต์แวร์ที่ต้องผ่านจากการเริ่มต้นของตำแหน่งสุดท้าย
รักษาชีวิตและต่อมาเรียกว่ากระบวนทัศน์ซอฟต์แวร์หรือซอฟต์แวร์
รูปแบบการพัฒนา ด้านมนุษย์ของการพัฒนาซอฟต์แวร์
สอนเน้นความสำคัญที่เหมาะสมเทคนิค วิธีการ รูปแบบ
และเครื่องมือประกอบในอนาคต โมเดลการพัฒนาซอฟต์แวร์ที่สำคัญในสถานการณ์นี้โดยเฉพาะ
เนื่องจากพวกเขาให้โครงสร้างกรอบที่ทุกกิจกรรมอื่น ๆที่เกี่ยวข้องในการพัฒนาซอฟต์แวร์มืออาชีพปล่อย
[ 2 ]ในช่วงไม่กี่ทศวรรษที่ผ่านมาหลายรุ่นได้รับการพัฒนา
ซอฟต์แวร์กล่าวถึงในบริบทของวิศวกรรมซอฟต์แวร์
การเปรียบเทียบจำนวนมากได้รับการตีพิมพ์โดยผู้เชี่ยวชาญ
แตกต่างกันเพื่อระบุจุดอ่อนและจุดแข็งของ
คนละรุ่นกัน จากเพลง , et al [ 12 ] ,
เปรียบเทียบที่มีอยู่มักจะไปตาม
ประสบการณ์ของผู้ปฏิบัติงาน และความเข้าใจง่ายของ
ผู้เขียน ดังนั้นการเปรียบเทียบเหล่านี้มักจะเป็นอัตนัย
และที่ไม่ถูกต้อง การใช้อย่างเป็นทางการและกำหนดเทคนิค
ให้วิธีที่มีประสิทธิภาพเพื่อเปรียบเทียบรูปแบบการพัฒนาในปัจจุบันมีความหลากหลายอันยิ่งใหญ่ของรุ่น
การพัฒนาซอฟต์แวร์ที่มีอยู่ ไม่เหมาะแบบ , และองค์กรที่แตกต่างกัน
ได้มีการพัฒนาวิธีการที่แตกต่างกันอย่างสิ้นเชิงจากอีก
.
วัตถุประสงค์ของงานนี้คือการระบุคุณลักษณะหลัก
รูปแบบการพัฒนาและเปรียบเทียบพวกเขา เราเสนอที่จะปรับตัว
เทคนิคที่เรียกว่า CDM [ 12 ] ( เปรียบเทียบวิธีการออกแบบ )
เปรียบเทียบรุ่น ปรับปรุงเทคนิคที่เรียกว่า cdmod
อนุญาตให้สำเนาดิจิตอลหรือฮาร์ดดิสก์ทั้งหมดหรือบางส่วนของงานนี้
ใช้ส่วนตัวหรือในชั้นเรียนจะได้รับโดยไม่เสียค่าธรรมเนียมให้เสมือน
ไม่ได้หรือจำหน่ายกำไรหรือประโยชน์เชิงพาณิชย์ และสำเนา
หมีแจ้งให้ทราบนี้และการอ้างอิงเต็มในหน้าแรก เพื่อคัดลอกหรือเผยแพร่หรือ
เพื่อโพสต์บนเซิร์ฟเวอร์หรือเพื่อแจกจ่ายไปยังรายการที่ต้องการก่อน
เฉพาะอนุญาตและ / หรือค่า
sigite สินค้า เมื่อวันที่ 20 – 22 , 2005 , Newark , New Jersey , USA
ลิขสิทธิ์ 2005 ACM 1-59593-252-6 / 05 / 0010 . . . $ 5.00
การแปล กรุณารอสักครู่..