software developer performance measurement based on code ...twittie/classes/... · cu ithesis...

74
CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 การวัดประสิทธิภาพของนักพัฒนาซอฟต์แวร์โดยอิงร่องรอยที่ไม่ดีในโค้ดในระบบควบคุมเวอร์ชันแบบ กระจายศูนย์ นายณทัศน์ จงประสิทธิสารนิพนธ์นี้เป็นส่วนหนึ่งของการศึกษาตามหลักสูตรปริญญาวิทยาศาสตรมหาบัณฑิต สาขาวิชาวิศวกรรมซอฟต์แวร์ ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ จุฬาลงกรณ์มหาวิทยาลัย ปีการศึกษา 2561 ลิขสิทธิ์ของจุฬาลงกรณ์มหาวิทยาลัย 120341112

Upload: others

Post on 18-Aug-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

การวดประสทธภาพของนกพฒนาซอฟตแวรโดยองรองรอยทไมดในโคดในระบบควบคมเวอรชนแบบกระจายศนย

นายณทศน จงประสทธ

สารนพนธนเปนสวนหนงของการศกษาตามหลกสตรปรญญาวทยาศาสตรมหาบณฑต สาขาวชาวศวกรรมซอฟตแวร ภาควชาวศวกรรมคอมพวเตอร

คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย ปการศกษา 2561

ลขสทธของจฬาลงกรณมหาวทยาลย

12

03

41

11

2

Page 2: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

Software Developer Performance Measurement Based on Code Smells in Distributed Version Control System

Mr. Natach Jongprasit

An Independent Study Submitted in Partial Fulfillment of the Requirements for the Degree of Master of Science in Software Engineering

Department of Computer Engineering Faculty of Engineering

Chulalongkorn University Academic Year 2018

Copyright of Chulalongkorn University

12

03

41

11

2

Page 3: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

หวขอสารนพนธ การวดประสทธภาพของนกพฒนาซอฟตแวรโดยองรองรอย

ทไมดในโคดในระบบควบคมเวอรชนแบบกระจายศนย โดย นายณทศน จงประสทธ สาขาวชา วศวกรรมซอฟตแวร อาจารยทปรกษาหลก รองศาสตราจารย ดร.ทวตย เสนวงศ ณ อยธยา

คณะวศวกรรมศาสตร จฬาลงกรณมหาวทยาลย อนมตใหนบสารนพนธฉบบนเปนสวนหนงของการศกษาตามหลกสตรปรญญาวทยาศาสตรมหาบณฑต

คณะกรรมการสอบสารนพนธ

ประธานกรรมการ (รองศาสตราจารย ดร.พรศร หมนไชยศร) อาจารยทปรกษาหลก (รองศาสตราจารย ดร.ทวตย เสนวงศ ณ อยธยา) กรรมการ (ผชวยศาสตราจารย ดร.วระ เหมองสน)

12

03

41

11

2

Page 4: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

บทค ดยอ ภาษาไทย ณทศน จงประสทธ : การวดประสทธภาพของนกพฒนาซอฟตแวรโดยองรองรอยทไมดในโคด

ในระบบควบคมเวอรชนแบบกระจายศนย. ( Software Developer Performance Measurement Based on Code Smells in Distributed Version Control System) อ.ทปรกษาหลก : รศ. ดร.ทวตย เสนวงศ ณ อยธยา

การจดทมนกพฒนาซอฟตแวรใหเหมาะสมกบโครงการซอฟตแวรนนมความส าคญตอการ

พฒนาโปรแกรมภายใตโครงการ ซงประสทธภาพของนกพฒนาซอฟตแวรนนสามารถวดไดจากคณภาพของซอฟตแวรทพฒนาขนซงรองรอยทไมดในโคดเปนปจจยหนงทสงผลถงคณภาพของซอฟตแวร อยางไรกตามในการพฒนาซอฟตแวรปจจบนมการใชระบบควบคมเวอรชนแบบกระจายศนย ซงนกพฒนาซอฟตแวรในโครงการเดยวกนจะรวมกนพฒนาซอฟตแวรทอยบนระบบ ดงนนคณภาพของซอฟตแวรและปรมาณรองรอยทไมดในโคดนจงเปนผลรวมจากประสทธภาพในการพฒนาซอฟตแวรของทงทม ท าใหการพจารณาประสทธภาพของนกพฒนาซอฟตแวรรายคนท าไดยาก โครงงานมหาบณฑตจงจดท าขนเพอน าเสนอวธการและเครองมอสนบสนนการวดประสทธภาพของนกพฒนาซอฟตแวรรายคนทรวมอยในโครงการทมการพฒนาซอฟตแวรบนระบบควบคมเวอรชนแบบกระจายศนยโดยองรองรอยทไมดในโคด โดยจะน าเครองมอดไซนไนตมาตรวจหาจ านวนรองรอยทไมดในโคดแตละเวอรชนทนกพฒนาซอฟตแวรแตละรายในทมคอมมตเขาสระบบส าหรบแตละโครงการ หลงจากนนจะน าผลลพธจากการตรวจหาจ านวนรองรอยทไมดในโคดมาค านวณคาประสทธภาพของนกพฒนาซอฟตแวรแตละราย โดยใชคาเฉลยเบยเซยนและน ามาประเมนความสอดคลองในการจดอนดบประสทธภาพของนกพฒนาซอฟตแวร โดยการเปรยบเทยบกบการจดอนดบโดยนกพฒนาซอฟตแวรทมประสบการณโดยใชวธการวดคาสมประสทธสหสมพนธอนดบทของสเปยรแมน ผลการทดลองพบวามความสอดคลองกนในเชงบวก ดงนนวธการทเสนอจงสามารถชวยสนบสนนใหกบผจดการโครงการในการวดประสทธภาพของนกพฒนาซอฟตแวรแตละรายรวมกบการใชวธอน ๆ

สาขาวชา วศวกรรมซอฟตแวร ลายมอชอนสต ................................................ ปการศกษา 2561 ลายมอชอ อ.ทปรกษาหลก ..............................

12

03

41

11

2

Page 5: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

บทค ดยอ ภาษาองกฤษ # # 5970921721 : MAJOR SOFTWARE ENGINEERING KEYWORD: Software Developer Performance, Code Smell, Distributed Version

Control System, Bayesian Average Natach Jongprasit : Software Developer Performance Measurement Based on

Code Smells in Distributed Version Control System. Advisor: Assoc. Prof. TWITTIE SENIVONGSE

Effectively staffing a software development team for a software project is

important to the development of software under the project. Performance of software developers can be measured by the quality of the produced software and the number of code smells is one factor that indicates software quality. However, modern software development uses distributed version control systems in which different software developers collaborate to develop the software on the systems. The quality and number of code smells in the software are hence the result of the aggregate performance of the whole team. This makes it difficult to measure the performance of individual developers. This master project proposes a method and a supporting tool for measuring the performance of individual software developers under a project in a distributed version control system based on code smells. A tool called Designite is used to detect code smells in each version of the code that is committed to the project by each developer. Then the number of code smells is used to calculate the performance of individual developers using Bayesian Average. Spearman’s Rank Correlation Coefficients are calculated between ranking of software developers by the proposed tool and ranking by the evaluators who have experiences in software development. The result shows that there is positive correlation. Hence the proposed method can be used with other means to support project managers in measuring the performance of software developers

Field of Study: Software Engineering Student's Signature ............................... Academic Year: 2018 Advisor's Signature ..............................

12

03

41

11

2

Page 6: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

กตตกรรมประกาศ

กตตกรรมประกาศ

ขอกราบขอบพระคณทาน รศ. ดร.ทวตย เสนวงศ ณ อยธยา อาจารยทปรกษาโครงงานมหาบณฑตของขาพเจา เปนอยางยงททานไดเสยสละเวลาอนมคาใหค าปรกษาแนะน าทางดานการศกษาหาความร คณธรรม จรยธรรมและแนวทางส าหรบการท าโครงงานมหาบณฑตน ตลอดจนคอยดแลและประสานงานใหความชวยเหลอแกนสตทท าโครงงานมหาบณฑตทกคน

ขอขอบพระคณ เพอนๆ พๆ ทบรษท แอดวานซ อนโฟร เซอรวส จ ากด (มหาชน) ทกทานทใหค าปรกษาแนะน า รวมทงท าแบบสอบถามการประเมนประสทธภาพของนกพฒนาซอฟตแวรทง 2 โครงการ เพอน าไปประเมนผลความสอดคลองในการจดอนดบประสทธภาพของนกพฒนาซอฟตแวรทไดจากเครองมอ

ขอขอบคณ เพอน ๆ หลกสตรวศวกรรมซอฟตแวร ส าหรบก าลงใจและค าปรกษาแนะน าในการจดท าโครงงานมหาบณทต

สดทายน ขอกราบขอบพระคณ บดา มารดา และสมาชกในครอบครวทกทานทคอยใหก าลงใจและใหการชวยเหลอสนบสนนมาโดยตลอด

ณทศน จงประสทธ

12

03

41

11

2

Page 7: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

สารบญ

หนา บทคดยอภาษาไทย ............................................................................................................................ ค

บทคดยอภาษาองกฤษ ........................................................................................................................ ง

กตตกรรมประกาศ............................................................................................................................. จ

สารบญ .............................................................................................................................................. ฉ

สารบญตาราง ................................................................................................................................... ฌ

สารบญรปภาพ ................................................................................................................................. ญ

บทท 1 บทน า .................................................................................................................................. 1

1.1. ความเปนมาและความส าคญของปญหา ................................................................................ 1

1.2. วตถประสงคของโครงงาน ...................................................................................................... 2

1.3. ขอบเขตของโครงงาน ............................................................................................................ 2

1.4. ขนตอนการด าเนนงาน ........................................................................................................... 3

1.5. ประโยชนทคาดวาจะไดรบ..................................................................................................... 3

1.6. โครงสรางของเนอหาโครงงาน ............................................................................................... 3

บทท 2 เอกสารและงานวจยทเกยวของ ........................................................................................... 4

2.1 แนวคดและทฤษฎ ................................................................................................................. 4

2.1.1. ระบบควบคมเวอรชนแบบกระจายศนย ...................................................................... 4

2.1.2. รองรอยทไมดในโคด .................................................................................................... 5

2.1.3. คาเฉลยเบยเซยน ......................................................................................................... 7

2.2 เอกสารและงานวจยทเกยวของ ............................................................................................. 9

2.2.1. House of Cards: Code Smells in Open-source C# Repositories .................... 9

12

03

41

11

2

Page 8: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

2.2.2. Analysis of Software Developer Activity on a Distributed Version Control System 10

2.2.3. The Application of the Function Point Analysis in Software Developers’ Performance Evaluation ...................................................................................... 12

2.2.4. TopCoder ............................................................................................................... 14

บทท 3 การวดประสทธภาพของนกพฒนาซอฟตแวรโดยองรองรอยทไมดในโคดในระบบควบคมเวอรชนแบบกระจายศนย ................................................................................................................ 15

3.1 การก าหนดสภาพแวดลอมทจะใชในการวดประสทธภาพของนกพฒนาซอฟตแวร ............... 15

3.1.1. การก าหนดภาษาของโครงการทจะน ามาวดประสทธภาพของนกพฒนาซอฟตแวร ... 15

3.1.2. การก าหนดระบบควบคมเวอรชนทใชในโครงการทจะน ามาวดประสทธภาพของนกพฒนาซอฟตแวร .................................................................................................. 15

3.2 การก าหนดประเภทของรองรอยทไมดในโคดทจะน ามาวดประสทธภาพ ............................. 15

3.3 การก าหนดเครองมอทจะใชในการวเคราะหเพอหารองรอยทไมดในโคด .............................. 15

3.4 การก าหนดวธการวดประสทธภาพ ...................................................................................... 16

3.4.1. การตรวจหารองรอยทไมดในเวอรชนคอมมต ............................................................ 16

3.4.2. การค านวณหาความหนาแนนของรองรอยทไมดในโคด ............................................. 17

3.4.3. การค านวณหาคาประสทธภาพของนกพฒนาซอฟตแวรทเวอรชนคอมมตปจจบนเมอเทยบกบเวอรชนคอมมตกอนหนา ............................................................................. 18

3.4.4. การค านวณหาประสทธภาพโดยรวมของนกพฒนาซอฟตแวรโดยใชสมการหาคาเฉลยเบยเซยน ................................................................................................................... 20

3.5 การออกแบบและพฒนาเครองมอ ....................................................................................... 22

3.6 การทดสอบและประเมนผล ................................................................................................. 23

บทท 4 การออกแบบและพฒนาเครองมอ ..................................................................................... 24

4.1 ภาพรวมการออกแบบและพฒนาเครองมอ .......................................................................... 24

4.2 การวเคราะหและออกแบบเครองมอ .................................................................................... 25

12

03

41

11

2

Page 9: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

4.2.1. การออกแบบแผนภาพยสเคส ................................................................................... 25

4.2.2. การออกแบบแผนภาพคลาส ..................................................................................... 26

4.2.3. การออกแบบแผนภาพล าดบ ..................................................................................... 27

4.2.4. การออกแบบฐานขอมล ............................................................................................ 33

4.3 เครองมอทใชในการพฒนาระบบ ......................................................................................... 33

4.3.1. ฮารดแวรทใชในการพฒนาระบบ .............................................................................. 33

4.3.2. ซอฟตแวรทใชในการพฒนาระบบ ............................................................................ 34

4.4 ขนตอนการพฒนาระบบ ...................................................................................................... 34

4.4.1. การจดเตรยมฐานขอมลเพอใชในการจดเกบขอมลของโครงการทท าการวดประสทธภาพของนกพฒนาซอฟตแวร ....................................................................... 34

4.4.2. การเรยกใชงานเอพไอและรปแบบของขอมลจากเวบไซต Github ............................ 34

4.4.3. การเรยกใชดวยบรรทดค าสง (Command line) ...................................................... 35

4.5 การพฒนาสวนตอประสานผใชของเครองมอ ....................................................................... 36

บทท 5 การทดสอบและประเมนผล ............................................................................................... 42

5.1 การประเมนผลความสอดคลองในการจดอนดบประสทธภาพของนกพฒนาซอฟตแวร ........ 42

5.2 ผลการทดลอง ...................................................................................................................... 43

บทท 6 บทสรปโครงงานและขอเสนอแนะ ..................................................................................... 47

6.1 สรปผลโครงงานมหาบณฑต ................................................................................................. 47

6.2 ปญหาและขอจ ากดในการท าโครงงาน ................................................................................. 47

6.3 ขอเสนอแนะ ........................................................................................................................ 48

ภาคผนวก........................................................................................................................................ 49

บรรณานกรม ................................................................................................................................... 59

ประวตผเขยน .................................................................................................................................. 62

12

03

41

11

2

Page 10: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

สารบญตาราง

หนา ตารางท 2.1 รายละเอยดของรองรอยทไมดในดานการพฒนา ........................................................... 6

ตารางท 2.2 รายละเอยดของรองรอยทไมดในดานการออกแบบ ....................................................... 6

ตารางท 3.1 รายละเอยดการค านวณคาความหนาแนนของรองรอยทไมดในโคดเวอรชนปจจบน .... 18

ตารางท 3.2 รายละเอยดการค านวณคาประสทธภาพของนกพฒนาซอฟตแวรทเวอรชนคอมมตปจจบนเมอเทยบกบเวอรชนคอมมตกอนหนา ................................................................................. 19

ตารางท 3.3 รายละเอยดการค านวณคาประสทธภาพโดยรวมของนกพฒนาซอฟตแวรทคอมมตโคดในเวอรชนปจจบน ........................................................................................................................... 21

ตารางท 5.1 ขอมลรายละเอยดของผประเมนแบบสอบถาม ............................................................ 42

ตารางท 5.2 ขอมลรายละเอยดของโครงการทน ามาประเมน .......................................................... 42

ตารางท 5.3 ผลการประเมนของโครงการท 1 ................................................................................. 44

ตารางท 5.4 ผลการประเมนของโครงการท 2 ................................................................................. 45

ตารางท 5.5 สมประสทธสหสมพนธระหวางการจดอนดบโดยเครองมอและผประเมนทง 4 ราย ..... 46

12

03

41

11

2

Page 11: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

สารบญรปภาพ

หนา รปท 2.1 การควบคมเวอรชนแบบกระจายศนย................................................................................. 5

รปท 2.2 ตารางการวดรองรอยทไมดในโคด ...................................................................................... 9

รปท 2.3 ตวอยางผลการวเคราะหของโครงการ P1 ......................................................................... 10

รปท 2.4 ประวตการสรางสภาพแวดลอมของโครงการ P1 .............................................................. 10

รปท 2.5 ตวอยางการแยกแยะลกษณะของนกพฒนาซอฟตแวร ..................................................... 11

รปท 2.6 ตวแปรของคาความซบซอน .............................................................................................. 13

รปท 3.1 ขนตอนการวดประสทธภาพของนกพฒนาซอฟตแวรรายคนทรวมอยในโครงการทมการพฒนาโดยใชระบบควบคมเวอรชนแบบกระจายศนย ...................................................................... 16

รปท 3.2 ตวอยางโครงสรางการคอมมตบนระบบควบคมเวอรชนแบบกระจายศนย ........................ 17

รปท 3.3 ขนตอนในการท างานของเครองมอวดประสทธภาพของนกพฒนาซอฟตแวรรายคนทมการพฒนาโดยใชระบบควบคมเวอรชนแบบกระจายศนย ...................................................................... 22

รปท 4.1 ภาพรวมแนวคดการท างานของเครองมอ ......................................................................... 24

รปท 4.2 แผนภาพยสเคสแสดงหนาทการท างานของเครองมอ ....................................................... 26

รปท 4.3 แผนภาพคลาสแสดงหนาทการท างานของเครองมอ ......................................................... 27

รปท 4.4 แผนภาพล าดบแสดงขนตอนการเพมโครงการ .................................................................. 28

รปท 4.5 แผนภาพล าดบแสดงขนตอนการปรบปรงโครงการ ........................................................... 30

รปท 4.6 แผนภาพล าดบแสดงขนตอนการแสดงคะแนนของนกพฒนาซอฟตแวรในโครงการ .......... 31

รปท 4.7 แผนภาพล าดบแสดงขนตอนการแสดงคะแนนของนกพฒนาซอฟตแวรรายหนงในทกโครงการทนกพฒนาซอฟตแวรเขารวม ............................................................................................ 32

รปท 4.8 แผนภาพล าดบแสดงขนตอนการลบโครงการ ................................................................... 32

รปท 4.9 แผนภาพความสมพนธของแตละตารางในฐานขอมล ........................................................ 33

รปท 4.10 เอพไอของเวบไซต Github ............................................................................................ 35

12

03

41

11

2

Page 12: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

รปท 4.11 การเรยกใชดวยบรรทดค าสง .......................................................................................... 35

รปท 4.12 การออกแบบสวนตวประสานของสวนการจดการโครงการทจะน ามาวดประสทธภาพของนกพฒนาซอฟตแวร ........................................................................................................................ 36

รปท 4.13 การออกแบบสวนตวประสานของสวนการเพมโครงการทจะน ามาวดประสทธภาพของนกพฒนาซอฟตแวร ........................................................................................................................ 37

รปท 4.14 การออกแบบสวนตวประสานของการแสดงแผนภมความหนาแนนของรองรอยทไมดในโคดในแตละคอมมต ........................................................................................................................ 38

รปท 4.15 การออกแบบสวนตวประสานของการแสดงแผนภมคะแนนประสทธภาพของนกพฒนาซอฟตแวรแตละรายในโครงการ ....................................................................................................... 38

รปท 4.16 แผนภมจ านวนคอมมตของนกพฒนาซอฟตแวร ............................................................. 39

รปท 4.17 ตารางคะแนนประสทธภาพของนกพฒนาซอฟตแวรแตละราย ....................................... 40

รปท 4.18 การออกแบบสวนตวประสานของการแสดงผลของการวดประสทธภาพจากทกโครงการทนกพฒนาซอฟตแวรรายนน ๆ มสวนรวมอยในโครงการ .................................................................. 41

12

03

41

11

2

Page 13: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

1

บทท 1 บทน า

1.1. ความเปนมาและความส าคญของปญหา การจดทมนกพฒนาซอฟตแวรใหเหมาะสมกบโครงการซอฟตแวรนนมความส าคญตอการ

พฒนาโปรแกรมภายใตโครงการ และยงถอวาเปนการจดสรรบคลากรไดอยางมประสทธภาพ วธการจดทมนกพฒนาซอฟตแวรใหเหมาะสมนนสามารถพจารณาจากประสทธภาพของนกพฒนาซอฟตแวร แตในปจจบนไมไดมการก าหนดวธการวดประสทธภาพอยางชดเจน และในหลาย ๆ หนวยงานนนมวธการจดทมนกพฒนาซอฟตแวรอยหลากหลายวธ เชน ตดสนใจจากประสบการณการพฒนา การท าการทดสอบ หรอ การปรกษากนภายในทมพฒนาซอฟตแวรวานกพฒนาซอฟตแวรรายใดมความสามารถหรอเหมาะสมกบโครงการมากนอยกวากน โดยอาจจะไมไดมผลการวดอยางแนชด จงอาจท าใหทางโครงการไมสามารถจดทมนกพฒนาซอฟตแวรทมประสทธภาพตามทตองการมารวมในโครงการไดอยางเหมาะสมนก และอาจท าใหประสทธภาพของโครงการมระดบต ากวาทตองการ

ประสทธภาพของนกพฒนาซอฟตแวรนนสามารถวดไดจากคณภาพของซอฟตแวรทพฒนาขนซงรองรอยทไมดในโคด (Code Smells) [1] [2] เปนปจจยหนงทสงผลถงคณภาพของซอฟตแวร โดยรองรอยทไมดในโคดคอโคดทมการพฒนาขนมาและมแนวโนมทจะกอปญหาหรอขอผดพลาด ซงซอฟตแวรทมรองรอยทไมดปรมาณมากจะสงผลตอการบ ารงรกษา และสะทอนถงประสทธภาพของนกพฒนาซอฟตแวรในดานการพฒนาโคดทมคณภาพ อยางไรกตามในการพฒนาซอฟตแวรปจจบนมการใชระบบควบคมเวอรชนแบบกระจายศนย (Distributed Version Control System) [3] ซงนกพฒนาซอฟตแวรในโครงการเดยวกนจะรวมกนพฒนาซอฟตแวรทอยบนระบบ ดงนนคณภาพของซอฟตแวรและปรมาณรองรอยทไมดในโคดนจงเปนผลโดยรวมจากประสทธภาพในการพฒนาซอฟตแวรของทงทม ท าใหการพจารณาประสทธภาพของนกพฒนาซอฟตแวรรายคนท าไดยาก

งานวจยนจงจดท าขนเพอน าเสนอวธการและเครองมอสนบสนนการวดประสทธภาพของนกพฒนาซอฟตแวรรายคนทรวมอยในโครงการทมการพฒนาซอฟตแวรบนระบบควบคมเวอรชนแบบกระจายศนยโดยองรองรอยทไมดในโคด ผวจยจะน าเครองมอทชอวา Designite [4] มาท าการตรวจหาจ านวนรองรอยทไมดในโคดในแตละเวอรชนทนกพฒนาซอฟตแวรแตละรายในทมคอมมต (Commit) เขาสระบบส าหรบแตละโครงการ โดยงานวจยนจะน ารองรอยทไมดในโคด ประเภทรองรอยท ไมดด านการออกแบบ (Design Smells) [5] และรองรอยท ไมดด านการพฒนา (Implementation Smells) [6] มาเปนตววดประสทธภาพของนกพฒนาซอฟตแวร เนองจากรองรอยทไมดทงสองประเภทนมแนวโนมทจะเกดสงทสด หลงจากนนจะน าผลลพธจากการตรวจหา

12

03

41

11

2

Page 14: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

2 จ านวนรองรอยทไมดในโคดมาค านวณคาประสทธภาพของนกพฒนาซอฟตแวรแตละราย โดยใชคาเฉลยเบยเซยน (Bayesian Average) [7] [8] ซงวธนจะท าใหคาประสทธภาพทไดมความนาเชอถอเพมมากขนหากจ านวนเวอรชนของซอฟตแวรทนกพฒนาซอฟตแวรรายนคอมมตเขาสระบบมจ านวนมากขน ซงเปนการสะทอนถงปรมาณการมสวนรวมของนกพฒนาซอฟตแวรรายนตอการพฒนาซอฟตแวรของโครงการ การวดประสทธภาพของนกพฒนาซอฟตแวรโดยวธทเสนอจะชวยสนบสนนการตดสนใจในการจดทมนกพฒนาซอฟตแวรตามความตองการทไดรบมอบหมายในโครงการ และยงเปนขอมลสนบสนนส าหรบการพฒนาศกยภาพของนกพฒนาซอฟตแวรในโครงการ โดยทวธทเสนอนสามารถน าไปใชรวมกบวธวดประสทธภาพนกพฒนาซอฟตแวรวธอนทหนวยงานใชอยได

1.2. วตถประสงคของโครงงาน 1. เพอน าเสนอวธการวดประสทธภาพของนกพฒนาซอฟตแวรรายคนทรวมอยในโครงการทม

การพฒนาโดยใชระบบควบคมเวอรชนแบบกระจายศนย 2. สรางเครองมอสนบสนนวธการวดประสทธภาพของนกพฒนาซอฟตแวรรายคนทรวมอยใน

โครงการทมการพฒนาโดยใชระบบควบคมเวอรชนแบบกระจายศนย

1.3. ขอบเขตของโครงงาน 1. พจารณารองรอยทไมดในดานการออกแบบและดานการพฒนาทวดไดจากเครองมอ

Designite เทานน 2. วดประสทธภาพของนกพฒนาซอฟตแวรทพฒนาโดยใชภาษาซชารปเทานนโดยใชคาเฉลย

เบยเซยน 3. ใชระบบควบคมเวอรชน GitHub เทานน 4. พฒนาเครองมอดวยภาษาซชารป 5. แสดงคะแนนของการวดประสทธภาพรายคนภายในโครงการ 6. ประเมนผลความสอดคลองในการจดอนดบประสทธภาพของนกพฒนาซอฟตแวรกบผล

การประเมนจากนกพฒนาซอฟตแวรทมประสบการณ 4 คน โดยจะท าการประเมนทงหมด 2 โครงการ

12

03

41

11

2

Page 15: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

3 1.4. ขนตอนการด าเนนงาน

1. ศกษาองคความรและทฤษฎทเกยวของกบงานวจย 2. ศกษาเครองมอทจะน ามาใชวเคราะห 3. ก าหนดสภาพแวดลอมทจะใชในการวเคราะห 4. ก าหนดประเภทของรองรอยทไมดในโคดทจะน ามาวเคราะห 5. ออกแบบและก าหนดสมการส าหรบการวดประสทธภาพ 6. ออกแบบและพฒนาเครองมอ 7. ทดสอบและประเมนผล 8. สรปผลการวจย 9. จดท าบทความวชาการและเลมโครงงาน

1.5. ประโยชนทคาดวาจะไดรบ 1. ไดวธการวดประสทธภาพของนกพฒนาซอฟตแวรรายคนทรวมอยในโครงการทมการ

พฒนาโดยใชระบบควบคมเวอรชนแบบกระจายศนยเพอสนบสนนการตดสนใจในการจดทมนกพฒนาซอฟตแวรตามความตองการทไดรบมอบหมายในโครงการ

2. ไดเครองมอส าหรบวดประสทธภาพของนกพฒนาซอฟตแวรรายคนทรวมอยในโครงการทมการพฒนาโดยใชระบบควบคมเวอรชนแบบกระจายศนย

1.6. โครงสรางของเนอหาโครงงาน โครงสรางของเนอหารายงานโครงงานมหาบณฑตประกอบดวยรายละเอยด 6 บท และ

ภาคผนวก ดงตอไปน บทท 1 กลาวถงความเปนมาและความส าคญของปญหา วตถประสงคของโครงงาน ขอบเขต

ของโครงงาน ขนตอนและวธด าเนนโครงงาน และประโยชนทคาดวาจะไดรบจากโครงงานมหาบณฑต บทท 2 กลาวถงทฤษฎ งานวจย และเครองมอทเกยวของ บทท 3 กลาวถงแนวคดและวธวดประสทธภาพของนกพฒนาซอฟตแวร บทท 4 กลาวถงการออกแบบและการพฒนาเครองมอ บทท 5 กลาวถงการทดสอบและประเมนผล บทท 6 กลาวถงบทสรปของโครงงานมหาบณฑต และขอเสนอแนะ

12

03

41

11

2

Page 16: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

4

บทท 2 เอกสารและงานวจยทเกยวของ

2.1 แนวคดและทฤษฎ 2.1.1. ระบบควบคมเวอรชนแบบกระจายศนย

ระบบควบคมเวอรชนแบบกระจายศนย (Distributed Version Control System) [3] เปนระบบทจดเกบการเปลยนแปลงทเกดขนกบไฟลหนงหรอหลายไฟลของซอฟตแวร เพอทจะสามารถเรยกเวอรชนใดเวอรชนหนงของซอฟตแวรกลบมาใชงานเมอใดกได และสามารถกระจายไฟลของซอฟตแวรไปส าเนาไวบนเครองคอมพวเตอรของนกพฒนาซอฟตแวรแตละรายได นอกจากนนยงจะชวยในการเปรยบเทยบและแกไขสงทเกดขนในอดต ดวาใครเปนคนแกไขคนสดทายทอาจท าใหเกดปญหา แกไขเมอใด และยงสามารถกคนไฟลทถกลบหรอท าใหเสยหายโดยไมไดตงใจไดอยางงายดาย ในการควบคมเวอรชนแบบกระจายศนยจะมการคดลอกประวตชนงานทงหมดมาไวทเครองของผใชดงรปท 2.1 เพอใหผใชสามารถเขาถงประวตงานไดตลอดเวลา และยงลดจ านวนครงทตองการตดตอกบเซรฟเวอรลง เหลอเพยงเมอตองการสงงานทปรบปรงแกไขไปใหเพอนรวมงานเทานนซงการท างานแบบนท าใหในกรณทเซรฟเวอรหลกมปญหา เกดความเสยหาย จะไมท าใหงานของผใชเสยหายไปดวย และยงสามารถคดลอกงานทอยในเครองของผใชขนไปบนเซรฟเวอรเพอกขอมลหลงจากทเซรฟเวอรไดรบการซอมแซม ในปจจบนมผใหบรการระบบควบคมเวอรชนแบบกระจายศนยหลายราย เชน GitHub, Team Foundation Server, Bitbucket ในงานวจยนจะพจารณาเฉพาะ GitHub เนองจากเปนทนยมอยางแพรหลายในหมนกพฒนาซอฟตแวร

12

03

41

11

2

Page 17: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

5

รปท 2.1 การควบคมเวอรชนแบบกระจายศนย [3]

2.1.2. รองรอยทไมดในโคด รองรอยทไมดในโคด (Code Smell) [1] [2] คอ ลกษณะของโคดทท าการพฒนาขน

มาแลวมแนวโนมกอปญหาหรอขอผดพลาดทอาจจะเกดขนได ซงท าใหเวลาการพฒนาลาชาขนไปอก และสามารถเพมความเสยงทจะเกดปญหาตาง ๆ ในอนาคตได เชน โคดในสวนนนมแนวโนมทจะเออตอการเกดจดบกพรอง (Bug) ในอนาคตเปนตน อยางไรกตามการมรองรอยทไมดในโคดอาจจะไมกอใหเกดความผดพลาดเลยกได แตสามารถใชวดคณภาพของการออกแบบและคณภาพของโคดวาอยในระดบทไมดนก ซงหมายถงโคดทยากตอการแกไขและน ามาใชใหม

ในปจจบนมเครองมอตาง ๆ ทใชวดรองรอยทไมดในโคด เชน NDepend, SonarQube และDesignite ซงในงานวจยนจะใชเครองมอทมชอวา Designite [4] ทสามารถบอกประเภทของรองรอยทไมดในโคดและท าการจดกลมรองรอยทไมดในโคดไดอกดวย รองรอยทไมดในโคดทวดไดโดย Designite สามารถแบงไดเปน 3 กลม ไดแก รองรอยทไมดในดานสถาปตยกรรม (Architecture Smells [9], รองรอยทไมดในดานการออกแบบ (Design Smells) [5] และรองรอยทไมดในดานการพฒนา (Implementation Smells) [6]

ในงานวจยน ผวจยพจารณาเฉพาะรองรอยทไมดในดานการพฒนาและการออกแบบโดยรายละเอยดของรองรอยทไมดเหลานแสดงดงตารางท 2.1 และตารางท 2.2

12

03

41

11

2

Page 18: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

6

ตารางท 2.1 รายละเอยดของรองรอยทไมดในดานการพฒนา [10] Implementation Smell Brief Description Complex Conditional a complex conditional statement

Complex Method a method with high cyclomatic complexity Duplicate Code a code clone within a method

Empty Catch Block a catch block of an exception is empty Long Identifier an identifier with excessive length

Long Method a method is excessively long Long Parameter List a method has long parameter list

Long Statement an excessively long statement Magic Number an unexplained number is used in an expression

Missing Default a switch statement does not contain a default case Virtual Method Call from Constructor

a constructor calls a virtual method

ตารางท 2.2 รายละเอยดของรองรอยทไมดในดานการออกแบบ [10]

Design Smell Brief Description Broken Hierarchy a supertype and its subtype conceptually do not share an

“IS-A” relationship Broken Modularization data and/ or methods that ideally should have been

localized into a single abstraction are separated and spread across multiple abstractions

Cyclically-dependent Modularization

two or more abstractions depend on each other directly or indirectly

12

03

41

11

2

Page 19: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

7

ตารางท 2.2 รายละเอยดของรองรอยทไมดในดานการออกแบบ [10] (ตอ) Design Smell Brief Description Cyclic Hierarchy a supertype in a hierarchy depends on any of its subtypes

Deep Hierarchy an inheritance hierarchy is “excessively” deep Deficient Encapsulation the declared accessibility of one or more members of an

abstraction is more permissive than actually required

Duplicate Abstraction two or more abstractions have identical names or identical implementation

Hub-like Modularization an abstraction has high incoming and outgoing dependencies

Imperative Abstraction an operation is turned into a class

Insufficient Modularization an abstraction exists that has not been completely decomposed, and a further decomposition could reduce its size, or implementation complexity

Missing Hierarchy conditional logic to explicitly manage variation in behaviour Multifaceted Abstraction an abstraction has more than one responsibility assigned to

it

Multipath Hierarchy a subtype inherits both directly as well as indirectly from a supertype

Rebellious Hierarchy a subtype rejects the methods provided by its supertype(s) Unexploited Encapsulation client code uses explicit type checks Unfactored Hierarchy there is unnecessary duplication among types in a hierarchy

Unnecessary Abstraction an abstraction that is actually not needed Unutilized Abstraction an abstraction is left unused Wide Hierarchy an inheritance hierarchy is “too” wide

2.1.3. คาเฉลยเบยเซยน

คาเฉลยเบยเซยน (Bayesian Average) [7] [8] เปนคาเฉลยแบบหนงทนยมใชในเวบไซตทมการจดอนดบสงตาง ๆ จากการใหคะแนนของผใชเชน BoardGameGeek และ IMDB เปนตน คาเฉลยเบยเซยนสามารถแกปญหาทเกดขนจากการคดคะแนนเฉลยตามปกตหรอคาเฉลยเลขคณต (Arithmetic Mean) ของสงทจะจดอนดบซงการหาคาเฉลยเลขคณตจะมหลกการงาย ๆ คอการน าคะแนนทงหมดมารวมกนแลวหารดวยจ านวนครงทใหคะแนน จากนนจงท าการจดอนดบโดยเรยงจากคาเฉลยทหาได แตวธการดงกลาวจะมขอเสยตามตวอยางดงน

12

03

41

11

2

Page 20: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

8

สมมตวาสงทจะจดอนดบหรอไอเทม P1 มคะแนนเฉลย 0.8 จากการใหคะแนน 100 ครง (ผใช 80 คน ใหคะแนน 1 และผใช 20 คน ใหคะแนน 0) แลวมไอเทมใหม P2 ซงมคะแนนเฉลย 1 จากการใหคะแนน 1 ครง (มผใชเพยง 1 คน และใหคะแนน 1) ในสถานการณนจะท าใหไอเทม P2 ขนไปอยอนดบทหนงทนท จงท าใหการค านวณคาเฉลยเลขคณตในรปแบบปกตมความนาเชอถอนอย สวนคาเฉลยเบยเซยนนนจะเชอถอคะแนนของไอเทมทมจ านวนครงในการใหคะแนนนอย นอยกวาคะแนนของไอเทมทมจ านวนครงในการใหคะแนนมาก ซงหมายความวายงมจ านวนครงในการใหคะแนนมากเทาใด น าหนกของคะแนนเสยงเหลานจะมากยงขนเทานน ซงการค านวณคาเฉลยเบยเซยนนนไดแกไขขอเสยของการหาคาเฉลยเลขคณตตามปกตดงทกลาวมาโดยการใชจ านวนครงในการใหคะแนนมาพจารณาดวย ดงน

1) ถาไอเทมนนยงมจ านวนครงในการใหคะแนนมากเทาใด คาเฉลยทค านวณไดจะ

ใกลเคยงกบคาเฉลยทไมไดมการปรบคาดวยน าหนกคะแนนเสยง (Uncorrected Rating Value)

2) ถาไอเทมนนมจ านวนครงในการใหคะแนนทนอย คาเฉลยทค านวณไดควรจะใกลกบ

คาเฉลยของไอเทมทงหมด

ดงนนเมอมการใหคะแนนใหม คาเฉลยทไดจากการค านวณจะถกท าใหหางจากคาเฉลยของ

ไอเทมทงหมด และเขาสคาเฉลยทไมไดมการปรบคาดวยน าหนกคะแนนเสยง คาเฉลยเบยเซยนม

สมการดงน

(1)

โดยท b(r) คอ คาเฉลยเบยเซยนของไอเทมนนๆ (คะแนนเฉลยของไอเทมนน ๆ เพอการ

จดอนดบ ค านวณเมอมการใหคะแนนใหมแกไอเทมนน ๆ ) a คอ คาเฉลยเลขคณตของคะแนนทงหมดทกไอเทม

W(a) คอ คาเฉลยเลขคณตของจ านวนครงในการใหคะแนนทงหมดทกไอเทม r คอ คาเฉลยเลขคณตของคะแนนในไอเทมนน ๆ

W(r) คอ จ านวนครงในการใหคะแนนในไอเทมนน ๆ

12

03

41

11

2

Page 21: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

9 2.2 เอกสารและงานวจยทเกยวของ

2.2.1. House of Cards: Code Smells in Open-source C# Repositories งานวจยของ Tusher Sharma และคณะ [10] ไดท าการวเคราะหรองรอยทไมดในแตละ

ชนด เพอหาวารองรอยทไมดแบบใดมมากทสดในคลงของซอฟตแวรโอเพนซอรซภาษาซชารป โดยใชโปรแกรม Designite [4] ซงโปรแกรมมการแบงรองรอยทไมดในโคดเปน 3 ประเภท ไดแก รองรอยทไมดในดานสถาปตยกรรม (Architecture Smells) รองรอยทไมดในดานการออกแบบ (Design Smells) และรองรอยทไมดในดานการพฒนา (Implementation Smells) โดยโคดทใชในการวดมจ านวนมากกวา 49 ลานบรรทด จากผลลพธทแสดงออกมาดงรปท 2.4 บงบอกวารองรอยทไมดแบบ Magic Number ซงอยในประเภทรองรอยทไมดในดานการพฒนามจ านวนมากทสด คอจ านวน 2,993,353 จด หากคดเปนความหนาแนน (Density) ของรองรอยทไมดประเภทนจะไดคาสงถง 55.8 จดตอหนงพนบรรทด สวนรองรอยทไมดในดานการออกแบบ พบวามจ านวนมากเชนกน แตนอยกวารองรอยทไมดในดานการพฒนา และพบในรปแบบทหลากหลาย

รปท 2.2 ตารางการวดรองรอยทไมดในโคด [10] ผวจยไดน าเครองมอทใชในงานวจยเรองนมาใชตรวจหารองรอยทไมดในโคด และท า

การเลอกรองรอยทไมดในโคดดานการออกแบบและรองรอยทไมดในโคดดานการพฒนามาใชเปน

12

03

41

11

2

Page 22: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

10 ตววดประสทธภาพของนกพฒนาซอฟตแวร เนองจากรองรอยทไมดทงสองประเภทนมแนวโนมทจะเกดสงทสด

2.2.2. Analysis of Software Developer Activity on a Distributed Version Control System งานวจยของ Shu Li และคณะ [11] ไดท าการวเคราะหซอฟตแวรทมอยระบบควบคม

เวอรชนแบบกระจายศนยส าหรบการพฒนาซอฟตแวร GitHub โดยวเคราะหซอฟตแวรทมการพฒนาในรปแบบ MVC Framework เพอวเคราะหผพฒนาแตละคนวามทกษะทางดาน View, Model หรอ Controller มากทสด และสามารถแยกแยะลกษณะของนกพฒนาซอฟตแวรวามคณลกษณะในดาน การพฒนาขนสง การมสวนรวม การมความคดรเรม การสนบสนน และความเปนผน า ตามตวอยางรปท 2.3-2.5

รปท 2.3 ตวอยางผลการวเคราะหของโครงการ P1 [11]

รปท 2.4 ประวตการสรางสภาพแวดลอมของโครงการ P1 [11]

12

03

41

11

2

Page 23: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

11

รปท 2.5 ตวอยางการแยกแยะลกษณะของนกพฒนาซอฟตแวร [11]

จากผลลพธของการวเคราะหของโครงการ P1 ดงรปท 2.3 มนกพฒนาซอฟตแวร

จ านวน 6 คนทท าการพฒนาโครงการน โดยจะแบงผลลพธออกเปน 3 ประเภทคอ สวนทพฒนาใหม

(New), สวนทท าการปรบปรงแกไข (Others) และสวนทมทงการพฒนาใหมและปรบปรงแกไข (New

+ Others) ซงจะสามารถสรปไดวานกพฒนาซอฟตแวร P1-6 มสดสวนการสรางและแกไขโคดของ

โครงการนมากกวา 50 เปอรเซนต ท าใหระดบการมสวนรวมนนสงมาก นอกจากนนกพฒนา

ซอฟตแวร P1-6 ยงมคณลกษณะในดานการสนบสนนและความคดรเรม เนองจากไดมการสราง

สภาพแวดลอมของโครงการและใชเครองมอในการจดการหลายคร งดงรปท 2.4 ดงนนนกพฒนา

ซอฟตแวร P1-6 จงมลกษณะความเปนผน า ในขณะเดยวกนนกพฒนาซอฟตแวร P1-4 มท ง

คณลกษณะในดานการมสวนรวมและการสนบสนน แตนกพฒนาซอฟตแวร P1-4 ไมไดมสวนรวมใน

การสรางสภาพแวดลอมของโครงการ ดงนนจงไมมคณลกษณะด านความเปนผน า นอกจากน

นกพฒนาซอฟตแวร P1-2 มสวนเกยวของในพนทการพฒนาในชนของ MVC อยบางแตถอวานอย

มาก และผลงานของนกพฒนาซอฟตแวรอยในระดบต า ซงสะทอนวานกพฒนาซอฟตแวร P1-2 ได

เขารวมโครงการหลงจากทโครงการไดด าเนนการไปแลว เนองจากโครงการ P1 เปนโครงการของ

ผวจยในงานวจยเรองนจงสามารถยนยนไดวาผลลพธทแสดงในรป 2.5 สอดคลองกบคณลกษณะท

แทจรงของนกพฒนาซอฟตแวรในโครงการ

ผวจยไดน าแนวคดของงานวจยดงกลาวในการน าระบบควบคมเวอรชนแบบกระจาย

ศนยมาใชเพอท าการแยกแยะคณลกษณะของนกพฒนาซอฟตแวร แตจะพจารณาในแงใชในการวด

ประสทธภาพของนกพฒนาซอฟตแวรโดยองรองรอยทไมดในโคดในระบบควบคมเวอรชนแบบ

กระจายศนย

12

03

41

11

2

Page 24: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

12

2.2.3. The Application of the Function Point Analysis in Software Developers’ Performance Evaluation งานวจยของ Chen Ting และคณะ [12] ไดน าเสนอขนตอนการวเคราะหฟงกชนพอยต

(Function Point Analysis) เพอค านวณหาปรมาณงานส าหรบนกพฒนาซอฟตแวร โดยผลการประเมนสามารถใชเปนขอมลอางองในการประเมนภาระงานและประสทธภาพในการท างานของผพฒนาซอฟตแวร การวเคราะหฟงกชนพอยตเปนวธหนงในการวดปรมาณงานในการพฒนาซอฟตแวรผานรปแบบของการคาดการณตามฟงกชนของซอฟตแวร เมอท าการวเคราะหความตองการของโครงการและมการค านวณฟงกชนพอยตทสอดคลองกน ฟงกชนพอยตจะแสดงเปนขนาดของซอฟตแวรและเปลยนเปนขนาดของภาระงาน ประเภทของฟงกชนแบงออกเปน 5 ประเภท ไดแก 1) Internal Logical File (ILF) คอขอมลเชงตรรกะทประมวลผลภายในระบบ เชนการประมวลผลของขอมลในฐานขอมล 2) External Interface File (EIF) คอขอมลทตองการซงถกสงมาจากภายนอก เพอมาประมวลผลในระบบ 3) External Input (EI) คอขอมลทเขามาจากภายนอก เชนขอมลทมาจากผ ใช 4) External Output (EO) คอขอมลทสงออกสภายนอกและ 5) External Inquery คอขอมลทถกประมวลผลจากภายนอกแลวสงมาในระบบ ขนตอนในการวเคราะหมดงน

1) ก าหนดขอบเขตของการค านวณ ท าการก าหนดบรรทดฐานการค านวณของจดฟงกชน และขอบเขตของระบบ

2) วเคราะหฟงกชนพอยต ท าการแยกแยะและคาดการณองคประกอบตาง ๆ ทตองมการประเมนของซอฟตแวรเชน จ านวนขอมลเขา จ านวนขอมลออก จ านวนตารางขอมล จ านวนไฟลขอมลเชงตรรกะภายในและภายนอก เพอก าหนดจ านวนฟงกชนพอยต

i. ค านวณฟงกชนพอยต หลงจากไดจ านวนของฟงกชนทง 5 ประเภท จงน าแตละประเภทไปคณกบคาน าหนกของความซบซอน (Weighting Factor) เพอใหไดคาฟงกชนพอยตทยงไมไดปรบคา (Unadjusted Function Point: UFP) โดยคาน าหน กของความซบซอนจะถ กก าหนดด วย International Function Point Users Group (IFPUG) โดยในแตละประเภทของฟงกชนจะมคาน าหนกของความซบซอนอย 3 ระดบตามความซบซอนของฟงกชนโดยรวมแตละประเภท

ii. ก าหนดความซบซอนของการพฒนาซอฟตแวร ท าการหาคาความซบซอนของตวแปรทมผลกระทบ (Technical Complexity

Factor: TCF) โดยประกอบดวยตวแปร 14 คา ดงรปท 2.6 โดยคาความซบซอนของตวแปรทมผลกระทบจะมคาระหวาง 0 ถง 5

12

03

41

11

2

Page 25: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

13

รปท 2.6 ตวแปรของคาความซบซอน [12]

หลงจากใหคาตวแปรทงหมดแลวจะตองน ามารวมกนทงหมดเพอทจะไดคาค วามซบซอนของตวแปรทมผลกระทบ และน าคาดงกลาวมาค านวณหาคาความซบซอนของการพฒนาซอฟตแวร (Value Adjustment Factor: VAF) โดยมสมการดงน VAF = 0.65+0.01×TCF (2)

1. ค านวณหาคาฟงกชนพอยตทปรบคา หลงจากไดคาฟงกชนพอยตทยงไมไดปรบคาและคาความซบซอนของการพฒนาซอฟตแวรมาแลว กจะสามารถค านวณหาคาฟงกชนพอยตทปรบคา (Adjusted Function Point: AFP) ไดตามสมการดงน AFP = UFP×VAF (3) งานวจยนอภปรายวาคาฟงกชนพอยตทปรบคานนนอกจากจะระบขนาดของซอฟตแวรทจะพฒนาไดแลว ยงแสดงถงขนาดของภาระงานในการพฒนาซอฟตแวรและยงบอกถงประสทธภาพในการท างานของนกพฒนาซอฟตแวรจากขนาดของภาระงานในการพฒนาซอฟตแวรดวยโดยนกพฒนาซอฟตแวรทสามารถพฒนาซอฟตแวรขนาดใหญ จงเปนผมประสทธภาพ

12

03

41

11

2

Page 26: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

14

ผวจยไดน าแนวคดของงานวจยดงกลาวในการวดประสทธภาพของนกพฒนาซอฟตแวรจากการวเคราะหตวซอฟตแวรโดยตรงพจารณาจากภาระงานในการพฒนาซอฟตแวร แตจะพจารณาโดยองรองรอยทไมดซงอยในระบบควบคมเวอรชนแบบกระจายศนย

2.2.4. TopCoder TopCoder [13] เปนชมชนของคนทมความสามารถมารวมกนเพอท าการแขงขน ท างาน

รวมกน และแลกเปลยนความรดานการพฒนาซอฟตแวร Topcoder จะมสามแทรกของการแขงขนคอ การออกแบบ การพฒนา และวทยาศาสตรขอมล และในแทรกเหลาน ผทเขารวมแขงขนจะท างานททาทายตามโจทยทเกดขนจรงในปจจบนเพอแกปญหาแกลกคาทอยในอนดบ Global 2000 โจทยระบบจรงซงมความซบซอนจะถกแบงออกเปนประเภทการแขงขนเพอใหผเขาแขงขนสามารถท างานตามความช านาญ เชน การออกแบบกราฟฟก การสรางตนแบบ การออกแบบโซลชน อลกอรทม หรอการเขยนโคด และนอกจากนจะมการแขงขนกนภายในชมชน TopCoder เพอทดสอบทกษะดานวทยาศาสตรขอมลในประเภทตาง ๆ และการเขยนโปรแกรม โดยผลงานทผเขารวมไดท ามานนจะมการตรวจสอบโดยคณะกรรมการตรวจสอบของ TopCoder วาผลงานทท ามามคณภาพสง TopCoder ยงไดพฒนาระบบการใหคะแนนของผเขารวมการแขงขนโดยองจากวธการหาคาเฉลย Elo ซงเปนการค านวณระดบทกษะของผเลนเมอเทยบกบคแขงในเกมคแขง เชน หมากรก เปนตน จากนนจะมการใหรางวลเปนเหรยญและสงของอน ๆ กบผเขารวมการแขงขนในทกแทรก และท าใหคะแนนของผเขาแขงขนดขน

นกวจยไดน าแนวคดในการใหคะแนนจากการเขาแขงขนของผเขารวมแขงขนในเวบไซตดงกลาว แตจะใชวธการใหคะแนนโดยวธการหาคาเฉลยเบยเซยนแทนโดยองจากรองรอยทไมดในโคดของนกพฒนาซอฟตแวรแตละราย

1

20

34

11

12

Page 27: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

15

บทท 3 การวดประสทธภาพของนกพฒนาซอฟตแวรโดยองรองรอยทไมดในโคดในระบบ

ควบคมเวอรชนแบบกระจายศนย

งานวจยนไดน าเสนอวธการวดประสทธภาพของนกพฒนาซอฟตแวรโดยองรอยรอยทไมด

ในโคดในระบบควบคมเวอรชนแบบกระจายศนย โดยมแนวทางการด าเนนงานทงหมด 6 ขนตอน

ดงน

3.1 การก าหนดสภาพแวดลอมทจะใชในการวดประสทธภาพของนกพฒนาซอฟตแวร ในขนตอนการก าหนดสภาพแวดลอมทจะใชในการวเคราะหนน มจดประสงคเพอทจะ

จ ากดสภาพแวดลอมส าหรบการวดประสทธภาพของซอฟตแวร โดยจะก าหนดสภาพแวดลอมทใชในการวเคราะหดงน

3.1.1. การก าหนดภาษาของโครงการทจะน ามาวดประสทธภาพของนกพฒนาซอฟตแวร ในขนตอนก าหนดภาษาของโครงการทจะน ามาวดประสทธภาพของนกพฒนาซอฟตแวรนน

จะก าหนดใหน าโครงการทใชภาษาซชารปในการพฒนามาท าการวดประสทธภาพเทานน

3.1.2. การก าหนดระบบควบคมเวอรชนทใชในโครงการทจะน ามาวดประสทธภาพของนกพฒนาซอฟตแวร

ในขนตอนก าหนดระบบควบคมเวอรชนทใชในโครงการทจะน ามาวดประสทธภาพนน จะก าหนดใหใชไดกบระบบควบคมเวอรชน GitHub เทานน

3.2 การก าหนดประเภทของรองรอยทไมดในโคดทจะน ามาวดประสทธภาพ ในขนตอนก าหนดประเภทของรองรอยทไมดในโคดทจะน ามาวดประสทธภาพนน ม

จดประสงคเพอจ ากดประเภทของรองรอยทไมดในโคดทจะน ามาวดประสทธภาพของนกพฒนาซอฟตแวร โดยประเภทของรองรอยทไมดในโคดทผวจยจะน ามาวดประสทธภาพของนกพฒนาซอฟตแวรไดแก รองรอยทไมดในโคดดานการออกแบบ และรองรอยทไมดในโคดดานการพฒนา เนองจากรองรอยทไมดในโคดของสองประเภทนมแนวโนมทจะเกดสงสด ซงรายละเอยดรองรอยทไมดในโคดสองประเภทนไดนยามแสดงไวในหวขอท 2.1.2 3.3 การก าหนดเครองมอทจะใชในการวเคราะหเพอหารองรอยทไมดในโคด

ในขนตอนก าหนดเครองมอทจะใชในการวเคราะห เพอหารองรอยทไมดในโคดนน มจดประสงคเพอทจะน าเครองมอทใชในการวเคราะหเพอหารองรอยทไมดในโคดมาตรวจหารองรอยทไมดในโคดและแยกประเภทของรองรอยทไมดในโคด เพอจะน าไปวดประสทธภาพของซอฟตแวร โดย

12

03

41

11

2

Page 28: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

16 จะก าหนดใหใชเครองมอทมชอวา Designite ในการวเคราะหเพอหารองรอยทไมดในโคด โดยเครองมอนสามารถแยกแยะประเภทของรองรอยทไมดในโคดตามทนยามไวในหวขอท 2.1.2 นอกจากนนเครองมอนยงสามารถสงผลลพธออกมาในรปแบบไฟลเอกเซล

3.4 การก าหนดวธการวดประสทธภาพ ในขนตอนการก าหนดวธการวดประสทธภาพนน มจดประสงคเพอใชเปนขนตอนใน

การวดประสทธภาพของนกพฒนาซอฟตแวรรายคนทรวมอยในโครงการทมการพฒนาโดยใชระบบควบคมเวอรชนแบบกระจายศนย ซงจะประกอบดวยขนตอนดงรปท 3.1 โดยมรายละเอยดดงน

รปท 3.1 ขนตอนการวดประสทธภาพของนกพฒนาซอฟตแวรรายคนทรวมอยในโครงการทมการ

พฒนาโดยใชระบบควบคมเวอรชนแบบกระจายศนย 3.4.1. การตรวจหารองรอยทไมดในเวอรชนคอมมต

ในระบบควบคมเวอรชนแบบกระจายศนยนอกจากสามารถใหนกพฒนาซอฟตแวรท าการคอมมต (Commit) โคดทนกพฒนาซอฟตแวรเพมหรอแกไขแลว ยงสามารถสรางสาขาใหม (New Branch) หรอรวมสาขาเขาดวยกน (Pull Request) โดยจะแสดงโครงสรางการคอมมตบนระบบควบคมเวอรชนแบบกระจายศนยตามตวอยางในรปท 3.2

12

03

41

11

2

Page 29: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

17

รปท 3.2 ตวอยางโครงสรางการคอมมตบนระบบควบคมเวอรชนแบบกระจายศนย

งานวจยนจะน าเฉพาะการกระท าของนกพฒนาซอฟตแวรทเปนการคอมมตโคดมายงเซรฟเวอรของระบบควบคมเวอรชนแบบกระจายศนยมาวดประสทธภาพเทานน เนองจากการคอมมตเปนการกระท าโดยทนกพฒนาซอฟตแวรท าการสรางหรอแกไขโคดภายในโครงการ แ ตในการกระท าอน ๆ นนไมใชการกระท าทท าการสรางหรอแกไขโคดภายในโครงการเชน การสรางสาขาใหม เปนตน หรออาจจะมบางการกระท าทท าการสรางหรอแกไขโคดภายในโครงการโดยทางออมเชน การรวมสาขาเขาดวยกน เปนตน แตการรวมสาขาเขาดวยกนนน ผ รวมอาจไมใชผพฒนากไดจงไมน ามาพจารณา

ผวจยจะยกตวอยางการวดประสทธภาพในแตละขนตอนจากทแสดงในรปท 3.1 มาเพอแสดงการวดประสทธภาพของนกพฒนาซอฟตแวร โดยจะยกตวอยางจากตวอยางโครงสรางการคอมมตจากรปท 3.2 ผวจยจะท าการเลอกเฉพาะการกระท าทเปนการคอมมตมาวดประสทธภาพไดแก C1, C2, C3 และ C4 เทานน ซงในตวอยางทจะแสดงในหวขอท 3.4.2-3.4.4 ดงตอไปน จะท าการวดประสทธภาพนกพฒนาซอฟตแวร D2 โดยจะค านวณจากคอมมต C4 ซงเปนคอมมตลาสดทนกพฒนาซอฟตแวรรายนคอมมตเขามาในระบบควบคมเวอรชนแบบกระจายศนย

3.4.2. การค านวณหาความหนาแนนของรองรอยทไมดในโคด

การค านวณหาความหนาแนนของรองรอยทไมดในโคด (Code Smell Density) [10] เปนขนตอนหนงในการวดประสทธภาพของนกพฒนาซอฟตแวร โดยจะใชจ านวนของรองรอยทไมดในโคดมาท าการค านวณกบจ านวนของบรรทดของโคด โดยมสมการดงน

12

03

41

11

2

Page 30: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

18

SDj =

Number of Smells in Codej

KLOCj (4)

โดยให j คอ เวอรชนปจจบน

SDj คอ คาความหนาแนนของรองรอยทไมดในโคดเวอรชนปจจบน

Number of Smells in Codej คอ จ านวนรองรอยทไมดในโคดเวอรชนปจจบน

KLOCj คอ จ านวนตอหนงพนบรรทดของโคดเวอรชนปจจบน

จากรปท 3.2 ก าหนดใหจ านวนของรองรอยท ไม ดในโคดเวอรชนปจจบ นซ งกค อเวอรชน C4 ทน ามายกตวอยางมคาเปน 25 และก าหนดใหคาจ านวนตอหนงพนบรรทดของโคดเวอรชนปจจบนมคาเปน 2.38 ดงนนจากสมการท (4) คาความหนาแนนของรองรอยทไมดในโคด (Code Smell Density) ในเวอรชนปจจบนมคาเปน 10.50 จดตอหนงพนบรรทด โดยจะแสดงตวอยางการค านวณในตารางท 3.1 และก าหนดให C1, C2, C3 มคาความหนาแนนของรองรอยทไมดในโคดมคาเปน 13.33, 10, 11.36 จดตอหนงพนบรรทดตามล าดบ

ตารางท 3.1 รายละเอยดการค านวณคาความหนาแนนของรองรอยทไมดในโคดเวอรชนปจจบน

Number of Smells in Codej 25

KLOCj 2.38

SDj 25

2.38= 10.50

3.4.3. การค านวณหาคาประสทธภาพของนกพฒนาซอฟตแวรทเวอรชนคอมมตปจจบนเมอ

เทยบกบเวอรชนคอมมตกอนหนา การค านวณหาคาประสทธภาพของนกพฒนาซอฟตแวรทเวอรชนคอมมตปจจบนเมอ

เทยบกบเวอรชนคอมมตกอนหนา เปนขนตอนทค านวณจากคาความหนาแนนของรองรอยทไมดทเปลยนแปลงไป โดยผวจยจะเรยกคานวา คาประสทธภาพของนกพฒนาซอฟตแวรทเวอรชนคอมมตปจจบนเมอเทยบกบเวอรชนคอมมตกอนหนา โดยมสมการดงน

12

03

41

11

2

Page 31: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

19

PPij = SDi-SDj (5) โดยให i คอ เวอรชนคอมมตกอนหนา

j คอ เวอรชนคอมมตปจจบน

PPij คอ คาประสทธภาพของนกพฒนาซอฟตแวรทเวอรชนคอมมตปจจบนเมอเทยบกบเวอรชนคอมมตกอนหนา (พจารณาจากคาความหนาแนนของรองรอยทไมดทเปลยนแปลงไป)

SDi คอ คาความหนาแนนของรองรอยทไมดในโคดเวอรชนคอมมตกอนหนา

SDj คอ คาความหนาแนนของรองรอยทไมดในโคดเวอรชนคอมมตปจจบน

จากรปท 3.2 SDi จะแทนดวยคาความหนาแนนของรองรอยทไมดในโคดเวอรชนซงม

คากอนหนา 11.36 จดตอหนงพนบรรทด และ SDj จะแทนดวยคาความหนาแนนของรองรอยทไมดในโคดเวอรชนปจจบนซ งมคา 10.50 จด ซ งคาความหนาแนนของรองรอยท ไมดในโคด

เวอรชนปจจบนมคาลดลงจากเวอรชนกอนหนา ดงนนจากสมการท (5) PPij จะมคาเทากบ 0.86 โดยจะแสดงตวอยางการค านวณในตารางท 3.2 ซ งหมายความวานกพฒนาซอฟตแวร D2

สามารถท าใหโคดเวอรชนปจจบนนนมคณภาพทดขนจากเวอรชนกอนหนา (แตถาคา PPij จากการค านวณเทากบ 0 หมายความวานกพฒนาซอฟตแวรไมไดท าใหโคดเวอรชนปจจบนมคณภาพ

ดขนหรอแยลง หรอถาคา PPij จากการค านวณนอยกวา 0 หมายความวา นกพฒนาซอฟตแวรท า

ใหโคดเวอรชนปจจบนมคณภาพแยลง ) ดงนนคา PPij ของ C1, C2 และ C3 จะมคาเทากบ -3.33, 3.33 และ -1.36 ตามล าดบ

ตารางท 3.2 รายละเอยดการค านวณคาประสทธภาพของนกพฒนาซอฟตแวรทเวอรชนคอมมต

ปจจบนเมอเทยบกบเวอรชนคอมมตกอนหนา

SDi 11.36

SDj 10.50

PPij 11.36 - 10.50 = 10.50

12

03

41

11

2

Page 32: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

20

3.4.4. การค านวณหาประสทธภาพโดยรวมของนกพฒนาซอฟตแวรโดยใชสมการหาคาเฉลยเบยเซยน การค านวณหาคาประสทธภาพโดยรวมของนกพฒนาซอฟตแวรโดยใชสมการหาคาเฉลย

เบยเซยน เปนขนตอนทใชค านวณหาคาประสทธภาพโดยรวมของนกพฒนาซอฟตแวรทคอมมตโคดในเวอรชนปจจบน โดยใชสมการดงน

PBr =

((Na×Aa)+(Nr×Ar))

(Na+Nr)

(6)

โดยให PBr คอคาประสทธภาพโดยรวมของนกพฒนาซอฟตแวรทคอมมตโคดในเวอรชนปจจบน

r คอ นกพฒนาซอฟตแวรทคอมมตโคดในเวอรชนปจจบน a คอ นกพฒนาซอฟตแวรทงหมดในโครงการ

Na คอ คาเฉลยเลขคณตของจ านวนครงในการวดประสทธภาพของนกพฒนาซอฟตแวรทงหมดแตละรายในโครงการ โดยหาจากสมการดงน

Na = No. of all commits in project

No. of all software developers in project

(7)

Aa คอ คาเฉลยเลขคณตของคาประสทธภาพทค านวณเทยบกบเวอรชนกอนหนาของนกพฒนาซอฟตแวรทงหมดในโครงการ โดยหาจากสมการดงน

Aa = ∑ PPij of all commits in project

No. of all commits in project

(8)

Nr คอ จ านวนครงในการวดประสทธภาพของนกพฒนาซอฟตแวรทคอมมตโคดในเวอรชนปจจบน (คอ No. of commits in project by software developer r)

Ar คอ คาเฉลยเลขคณตของคาประสทธภาพของนกพฒนาซอฟตแวรทคอมมต โคดในเวอรชนปจจบนทค านวณเทยบกบเวอรชนกอนหนา โดยหาจากสมการดงน

Ar =∑ PPij of commits in project by software developer r

No. of all commits in project by software developer r

(9)

12

03

41

11

2

Page 33: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

21

ดงนน Na จะแทนดวยคาเฉลยเลขคณตของจ านวนครงในการวดประสทธภาพทงหมดตอ

นกพฒนาซอฟตแวรทงหมดแตละรายในโครงการ คอ 2 (4/2) และ Aa จะแทนดวยคาเฉลยเลขคณต

ของคาประสทธภาพทค านวณเทยบกบเวอรชนกอนหนา คอ -0.13 และ Nr จะแทนดวยคาของจ านวนครงในการวดประสทธภาพทงหมดของนกพฒนาซอฟตแวรทคอมมตโคดในเวอรชนปจจบน

คอ 2 และ Ar จะแทนดวยคาเฉลยเลขคณตของคาประสทธภาพของนกพฒนาซอฟตแวรทคอมมตโคดในเวอรชนปจจบนทค านวณเทยบกบเวอรชนกอนหนา คอ 2.1 หลงจากค านวณตามสมการทก าหนด

ไว ดงนน PB จะมคา เทากบ 0.99 โดยจะแสดงตวอยางการค านวณในตารางท 3.3

ตารางท 3.3 รายละเอยดการค านวณคาประสทธภาพโดยรวมของนกพฒนาซอฟตแวรทคอมมตโคดในเวอรชนปจจบน

C1 C2 C3 C4

PP -3.33 3.33 -1.36 0.86

Na 4

2 = 2

Aa (-3.33)+3.33+(-1.36)+0.86

4 = -0.13

Nr 2

Ar 3.33+0.86

2 = 2.1

PBr (2×(-0.13))+(2×2.1)

4 = 0.99

จากตวอยางขางตนซงค านวณตามขนตอนการวดประสทธภาพของนกพฒนาซอฟตแวรรายคนทรวมอยในโครงการทมการพฒนาโดยใชระบบควบคมเวอรชนแบบกระจายศนยดงรปท 3.1 นน จะท าใหนกพฒนาซอฟตแวร D2 มคะแนนในการวดประสทธภาพโดยองรองรอยทไมดในโคดของโครงการนเทากบ 0.99 คะแนน เมอพจารณาถงคอมมต C4 จากทกลาวมาแลวในหวขอท 3.4.1 วาในการวดประสทธภาพของนกพฒนาซอฟตแวรจะไมน าการรวมสาขา (Pull Request) มาค านวณคาประสทธภาพของผรวมสาขา เชน จากรปท 3.2 การวดประสทธภาพของนกพฒนา D1 จะไมพจารณาโคดทไดจากการรวมสาขา เนองจาก

12

03

41

11

2

Page 34: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

22

D1 ไมไดแกไขโคดแตท าการรวมสาขาเทานน อยางไรกตามยงมการค านวณคา SDij และ PPij ณ จดทเปนการรวมสาขาอย เพอใชค านวณคาประสทธภาพของนกพฒนาซอฟตแ วร ณ จดคอมมดถดไป

3.5 การออกแบบและพฒนาเครองมอ ในขนตอนออกแบบและพฒนาเครองมอนน มจดประสงคเพอใช เครองมอเปนตนแบบ

ในการสนบสนนขนตอนของวธการทเสนอ โดยผลลพธของเครองมอนจะสามารถแสดงถงคะแนนของการวดประสทธภาพรายคนทงภายในโครงการหนงและทกโครงการทนกพฒนาซอฟตแวรรายนนเขารวม การท างานของเครองมอทผ วจยจะท าการพฒนามข นตอนการท างานดงรปท 3.3 รายละเอยดการออกแบบและพฒนาดไดในบทท 4

รปท 3.3 ขนตอนในการท างานของเครองมอวดประสทธภาพของนกพฒนาซอฟตแวรรายคนทมการพฒนาโดยใชระบบควบคมเวอรชนแบบกระจายศนย

12

03

41

11

2

Page 35: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

23

จากรปท 3.3 สามารถอธบายการท างานของเครองมอวดประสทธภาพของนกพฒนาซอฟตแวรรายคนทมการพฒนาโดยใชระบบควบคมเวอรชนแบบกระจายศนย โดยเรมจากนกพฒนาซอฟตแวรท าการคอมมตโคดเวอรชนปจจบนเขาไปใน Github จากนนนกพฒนาซอฟตแวรจะใชเครองมอเพอดงคอมมตเวอรชนลาสดจาก Github มาหาคารองรอยทไมดในโคดโดยใชเครองมอ Designite ซงเครองมอ Designite จะท าการสงคารองรอยทไมดในโคดออกมาในรปแบบไฟลเอกเซล จากนนเครองมอจะท าการอานคาจากไฟลเอกเซลและน าคาไปค านวณหาคาความหนาแนนของรองรอยทไมดในโคดเวอรชนปจจบน จากนนจะน าคารองรอยทไมดในโคดเวอรชนปจจบนไปเทยบกบเวอรชนกอนหนา และน าคาทไดไปค านวณหาคาเฉลยโดยใชสมการหาคาเฉลยเบยเซยนจงไดออกมาเปนคาประสทธภาพของนกพฒนาซอฟตแวรโดยองรองรอยทไมดในโคด

3.6 การทดสอบและประเมนผล ในขนตอนการประเมนผล มจดประสงคเพอตรวจสอบวาการวดประสทธภาพของ

นกพฒนาซอฟตแวรโดยองรองรอยทไมดในโคดบนระบบควบคมเวอรชนแบบกระจายศนยนนท าใหสามารถจดอนดบนกพฒนาซอฟตแวรไปในแนวทางเดยวกนกบการจดอนดบโดยผเชยวชาญหรอไม

การประเมนผลท าโดยใชโคดอยางนอย 2 โครงการและจะใชนกพฒนาซอฟตแวรทม

ประสบการณและไมไดอยในโครงการอยางนอยจ านวน 4 คน มาท าการรวววาโคดทนกพฒนา

ซอฟตแวรแตละรายไดท าการพฒนาในโครงการเดยวกนนนมคณภาพมากนอยเพยงใด โดยจะท าการ

จดอนดบวานกพฒนารายใดพฒนาโคดไดมประสทธภาพมากกวากน และน าคะแนนทไดจากเครองมอ

ทผวจยสรางมาจดอนดบ แลวจงน ามาทดสอบสมมตฐานทางสถตวามอนดบทสอดคลองกนมากนอย

เพยงใด รายละเอยดการทดสอบและประเมนผลดไดในบทท 5

12

03

41

11

2

Page 36: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

24

บทท 4 การออกแบบและพฒนาเครองมอ

4.1 ภาพรวมการออกแบบและพฒนาเครองมอ รปท 4.1 เปนภาพรวมแนวคดการท างานของเครองมอ เรมตนจากผใชงานเขาสเวบแอป

พลเคชนทเปนระบบในการวดประสทธภาพนกพฒนาซอฟตแวรโดยองรองรอยทไมดในโคดทโครงงานมหาบณฑตนไดพฒนาขน หลงจากนนผใชสามารถท าการเพมขอมลของโครงการทตองการจะน ามาวดประสทธภาพของนกพฒนาได ระบบจะท าการสงชอโครงการและชอเจาของโครงการโดยการเรยกใชงานสวนตอประสานโปรแกรมประยกตหรอเอพไอ (Application program interface: API) ของ Github ซงนกพฒนาสามารถเรยกใชงานได หลงจากไดขอมลของโครงการกลบมาจาก Github ระบบจะท าการจดเตรยมขอมลเพอน าไปวดประสทธภาพของนกพฒนาซอฟตแวรแตละรายในทมทคอมมตเขาสระบบในโครงการนน ๆ ซงผลลพธทไดจากเครองมอคอคะแนนประสทธภาพของนกพฒนาซอฟตแวรแตละรายในโครงการนน ๆ แลวแสดงผลลพธใหผใชงานเหนทางหนาจอ โดยภาพรวมแนวคดการท างานของเครองมอมรายละเอยดดงน

รปท 4.1 ภาพรวมแนวคดการท างานของเครองมอ

1) ผใชท าการเพมโครงการทจะน ามาวดประสทธภาพ โดยระบชอโครงการและเจาของโครงการ

2) ระบบท าการเรยกฟงกชนเพอดงขอมลโครงการทจะน ามาวดประสทธภาพ 3) ระบบท าการดงขอมลโครงการจาก Github 4) ระบบน าขอมลโครงการมาจดเกบไวในรปแบบส าหรบบนทกลงฐานขอมล

12

03

41

11

2

Page 37: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

25

5) ระบบน าขอมลโครงการทจดเกบไวมาเพมลงในฐานขอมล 6) ระบบน าขอมลโครงการไปใชเปนพารามเตอรเพอดงโคดแตละเวอรชน 7) ระบบเตรยมโคดแตละเวอรชนเพอน าไปค านวณประสทธภาพของนกพฒนาซอฟตแวร 8) ระบบน าโคดไปค านวณหาคารองรอยทไมดโดยใชเครองมอ Designite 9) ระบบน าคารองรอยทไมดทไดมาค านวณคะแนนประสทธภาพของนกพฒนาซอฟตแวร

โดยใชสมการหาคาเฉลยเบยเซยน 10) ระบบน าคะแนนประสทธภาพของนกพฒนาซอฟตแวรมาเพมลงในฐานขอมล 11) ระบบน าคะแนนประสทธภาพของนกพฒนาซอฟตแวรมาแสดงบนเครองมอ 12) ผใชน าผลลพธทไดมาสนบสนนการตดสนใจในการจดทมนกพฒนาซอฟตแวร

4.2 การวเคราะหและออกแบบเครองมอ การวเคราะหและออกแบบเคร องมอ ซ งแสดงถงการวเคราะหและออกแบบดวย

แผนภาพตาง ๆ แบงเปน 4 สวนหลก ดงน

4.2.1. การออกแบบแผนภาพยสเคส

จากรปท 4.2 แผนภาพยสเคสแสดงหนาทการท างานของเครองมอมรายละเอยดดงน 1) เพมโครงการ (Add Project) ท าหนาทในการเพมโครงการทจะน ามาวดประสทธภาพของนกพฒนาซอฟตแวร 2) แสดงโครงการ (View Project) ท าหนาทในการแสดงคะแนนของนกพฒนาซอฟตแวรในโครงการทน ามาวดประสทธภาพ 3) แสดงคะแนนของนกพฒนาซอฟตแวรรายหนง (View Developer Score) ท าหนาทในการแสดงคะแนนของนกพฒนาซอฟตแวรรายหนงในทกโครงการทนกพฒนาซอฟตแวรรายนนเกยวของ 4) ปรบปรงโครงการ (Refresh Project) ท าหนาทในการปรบปรงโครงการโดยจะท าการตรวจสอบวา ถามคอมมตเวอรชนใหมใหน ามาค านวณหาคะแนนประสทธภาพของนกพฒนาซอฟตแวร 5) ลบโครงการ (Delete Project) ท าหนาท ในการลบโครงการทไมตองการน ามาวดประสทธภาพของนกพฒนาซอฟตแวร

12

03

41

11

2

Page 38: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

26

รปท 4.2 แผนภาพยสเคสแสดงหนาทการท างานของเครองมอ

4.2.2. การออกแบบแผนภาพคลาส จากรปท 4.3 แผนภาพคลาสแสดงหนาทการท างานของเครองมอมรายละเอยดดงน

1) คลาส CalScoreService ท าหนาทเปนคลาสในการค านวณประสทธภาพของนกพฒนาซอฟตแวร ตดตอ Github และเรยกใชงาน Designite 2) คลาส Project ท าหนาทจดการโครงการ ไดแก เพมโครงการ ลบโครงการ และดงขอมลโครงการ เปนตน 3) คลาส Commit ท าหนาทจดการคอมมตของโครงการนน ๆ ไดแก เพมคอมมต แกไขคอมมต และดงขอมลคอมมต เปนตน 4) คลาส Score ท าหนาทจดการคะแนนของนกพฒนาซอฟตแวรแตละรายของแตละโครงการ ไดแก เพมคะแนน แกไขคะแนน และดงคะแนนของนกพฒนาซอฟตแวร เปนตน

12

03

41

11

2

Page 39: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

27

รปท 4.3 แผนภาพคลาสแสดงหนาทการท างานของเครองมอ

4.2.3. การออกแบบแผนภาพล าดบ จากรปท 4.4 แผนภาพล าดบแสดงขนตอนการเพมโครงการมล าดบการท างานดงน

- ผใช (ผจดการโครงการ) ท าการกรอกชอโครงการและเจาของโครงการเขาสระบบ - คลาส Project จะรบขอมลของโครงการมาบนทกลงในฐานขอมล - คลาส CalScoreService จะรบขอมลของโครงการมาค านวณหาคะแนนประสทธภาพ

ของนกพฒนาซอฟตแวรแตละรายในโครงการ โดยจะมการตดตอกบคลาส Commit และ Score เพอท าการเพม แกไข และดงขอมลมาใชในการค านวณ

- คลาส Commit จะถกเรยกจาก CalScoreService เพอท าการเพม แกไข และดงขอมลมาใชในการค านวณ

- คลาส Score จะถกเรยกจาก CalScoreService เพอท าการเพม แกไข และดงขอมลมาใชในการค านวณ

12

03

41

11

2

Page 40: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

28

รปท 4.4 แผนภาพล าดบแสดงขนตอนการเพมโครงการ

12

03

41

11

2

Page 41: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

29

จากรปท 4.5 แผนภาพล าดบแสดงขนตอนการปรบปรงโครงการมล าดบการท างานดงน - ผใช (ผจดการโครงการ) ท าการเลอกโครงการทตองการปรบปรงในระบบ - คลาส CalScoreService จะรบขอมลของโครงการมาค านวณหาคะแนนประสทธภาพ

ของนกพฒนาซอฟตแวรแตละรายในโครงการ โดยจะมการตดตอกบคลาส Commit และ Score เพอท าการเพม แกไข และดงขอมลมาใชในการค านวณ

- คลาส Commit จะถกเรยกจาก CalScoreService เพอท าการเพม แกไข และดงขอมลมาใชในการค านวณ

- คลาส Score จะถกเรยกจาก CalScoreService เพอท าการเพม แกไข และดงขอมลมาใชในการค านวณ

12

03

41

11

2

Page 42: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

30

รปท 4.5 แผนภาพล าดบแสดงขนตอนการปรบปรงโครงการ

12

03

41

11

2

Page 43: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

31

จากรปท 4.6 แผนภาพล าดบแสดงขนตอนการแสดงคะแนนของนกพฒนาซอฟตแวรในโครงการมล าดบการท างานดงน

- ผใช (ผจดการโครงการ) ท าการเลอกโครงการทตองการดคะแนนของนกพฒนาซอฟตแวรในโครงการ

- คลาส Project จะถกเรยกเพอดงขอมลโครงการไปแสดงในระบบ - คลาส Score จะถกเรยกเพอดงขอมลคะแนนของนกพฒนาซอฟตแวรในโครงการไป

แสดงในระบบ

รปท 4.6 แผนภาพล าดบแสดงขนตอนการแสดงคะแนนของนกพฒนาซอฟตแวรในโครงการ จากรปท 4.7 แผนภาพล าดบแสดงขนตอนการแสดงคะแนนของนกพฒนาซอฟตแวรหนงในทก

โครงการทนกพฒนาซอฟตแวรเขารวมมล าดบการท างานดงน - ผใช (ผจดการโครงการ) ท าการเลอกนกพฒนาซอฟตแวรทตองการเพอดคะแนนทงหมด

ทกโครงการทนกพฒนาคนนเกยวของ - คลาส Project จะถกเรยกเพอดงขอมลโครงการท งหมดเพอน าขอมลไปใช เปน

พารามเตอรส าหรบดงขอมลคะแนนทงหมดทกโครงการทนกพฒนาคนนเกยวของ - คลาส Score จะถกเรยกเพอดงขอมลคะแนนทงหมดทกโครงการทนกพฒนาคนน

เกยวของไปแสดงในระบบ

12

03

41

11

2

Page 44: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

32

รปท 4.7 แผนภาพล าดบแสดงขนตอนการแสดงคะแนนของนกพฒนาซอฟตแวรรายหนงในทก

โครงการทนกพฒนาซอฟตแวรเขารวม จากรปท 4.8 แผนภาพล าดบแสดงขนตอนการลบโครงการมล าดบการท างานดงน

- ผใช (ผจดการโครงการ) ท าการเลอกโครงการทตองการลบ - คลาส Project จะถกเรยกเพอลบโครงการทถกเลอกออกจากระบบ

รปท 4.8 แผนภาพล าดบแสดงขนตอนการลบโครงการ

12

03

41

11

2

Page 45: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

33

4.2.4. การออกแบบฐานขอมล จากรปท 4.9 แสดงใหเหนถงความสมพนธของแตละตารางในฐานขอมลโดยใชแผนภาพ

ฐานขอมล และไดแสดงรายละเอยดโครงสรางของแตละตารางรวมถงประเภทของขอมลทจดเกบโดยแตละตารางมรายละเอยดดงน 1) ตาราง Project จะท าการเกบขอมลของโครงการทจะน ามาวดประสทธภาพ 2) ตาราง Commit จะท าการเกบขอมลของคอมมตทงหมดของโครงการทจะน ามาวดประสทธภาพ รวมถงคะแนนของรองรอยทไมดในโคดทจะน าไปค านวณเปนคะแนนประสทธภาพของนกพฒนาซอฟตแวร 3) ตาราง Score จะท าการเกบขอมลของคะแนนประสทธภาพของนกพฒนาซอฟตแวรแตละรายทไดจากการค านวณโดยแยกแตละโครงการ

รปท 4.9 แผนภาพความสมพนธของแตละตารางในฐานขอมล

4.3 เครองมอทใชในการพฒนาระบบ 4.3.1. ฮารดแวรทใชในการพฒนาระบบ

1) เครองคอมพวเตอรทใชในการพฒนาระบบ - หนวยประมวลผล อนเทล คอรไอ 7 ความเรว 3.4 กกะเฮรทซ - หนวยความจ า ดดอาร 4 ขนาด 8 กกะไบต

12

03

41

11

2

Page 46: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

34 - ฮารดดสก ความจ 1 เทราไบต

4.3.2. ซอฟตแวรทใชในการพฒนาระบบ 1) ระบบปฏบตการ - ระบบปฏบตการไมโครซอฟทวนโดวส 10 (Microsoft Windows 10) 2) เครองมอทใชในการออกแบบและจดท าเอกสารของกระบวนการ - ไมโครซอฟทออฟฟซ รน 2013 (Microsoft Office 2013) - ไมโครซอฟทวสโอ รน 2013 (Microsoft Visio 2013) 3) เครองมอทใชในการพฒนาเครองมอ - ไมโครซอฟทวชวลสตดโอ รน 2015 (Microsoft Visual Studio 2015)

4.4 ขนตอนการพฒนาระบบ ในสวนนจะกลาวถงขนตอนการพฒนาสวนของเครองมอวดประสทธภาพของนกพฒนา

ซอฟตแวรแตละรายโดยองรองรอยทไมดในโคดในระบบควบคมเวอรชนแบบกระจายศนยซงมรายละเอยดดงน

4.4.1. การจดเตรยมฐานขอมลเพอใชในการจดเกบขอมลของโครงการทท าการวดประสทธภาพของนกพฒนาซอฟตแวร ในสวนจดเตรยมฐานขอมลเพอใช ในการจดเกบขอมลของโครงการทท าการวด

ประสทธภาพของนกพฒนาซอฟตแวรนน จะอยในรปแบบของฐานขอมล เอสควแอล เซรฟเวอร 2017 (SQL Server 2017)

4.4.2. การเรยกใชงานเอพไอและรปแบบของขอมลจากเวบไซต Github ในสวนของการเรยกใชงานเอพไอและรปแบบของขอมลจากเวบไซต Github นน ทาง

เวบไซต Github ไดจดเตรยมเอพไอส าหรบใหนกพฒนา สามารถเรยกใชขอมลตาง ๆ ภายในเวบไซต Github ได เชน ดงขอมลของโครงการ รายการคอมมตภายในโครงการ รวมถงความคดเหนตาง ๆ ภายในโครงการ เปนตน ตวอยางของเอพไอบางสวนจากเวบไซต Github แสดงดงรปท 4.10

12

03

41

11

2

Page 47: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

35

รปท 4.10 เอพไอของเวบไซต Github

โดยหลงจากเรยกใชงานเอพไอของเวบไซต Github แลว ขอมลทจะไดรบกลบมาจะอยในรปแบบเจสน (Json) จากนนจะน าขอมลไปวเคราะหผานเครองมอของโครงการน

4.4.3. การเรยกใชดวยบรรทดค าสง (Command line) ในสวนของการเรยกใชดวยบรรทดค าสงนน มการใชงานอย 2 สวน ไดแก สวนของการดง

โคดจาก Github เพอน ามาเตรยมไวส าหรบขนตอนการตรวจหารองรอยทไมดในโคด และสวนของการเรยก Designite เพอท าการตรวจหารองรอยทไมดในโคดทเตรยมไว โดยทง 2 สวนนอยในขนตอนของการวดคาประสทธภาพของนกพฒนาซอฟตแวร ตวอยางการเรยกใชดวยบรรทดค าสงดงรปท 4.11

รปท 4.11 การเรยกใชดวยบรรทดค าสง

12

03

41

11

2

Page 48: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

36 4.5 การพฒนาสวนตอประสานผใชของเครองมอ

การพฒนาสวนตอประสานผ ใช ของเคร องมอการวดประสทธภาพของนกพฒนาซอฟตแวรโดยองรองรอยทไมดในโคดในระบบควบคมเวอรชนแบบกระจายศนยนนพฒนาขนในรปแบบเวบแอปพลเคชนซงประกอบดวย 4 สวนดงตอไปน

1) สวนของการจดการโครงการทจะน ามาวดประสทธภาพของนกพฒนาซอฟตแวร ส าหรบท าการลบ/ปรบปรงขอมลโครงการเปนตามรปท 4.12

รปท 4.12 การออกแบบสวนตวประสานของสวนการจดการโครงการทจะน ามาวดประสทธภาพของ

นกพฒนาซอฟตแวร จากรปท 4.12 การออกแบบสวนตวประสานของสวนการจดการโครงการทจะน ามาวด

ประสทธภาพของนกพฒนาซอฟตแวรมการน าโครงการในระบบมาแสดงซงประกอบดวย ชอโครงการ เจาของโครงการ วนทสรางโครงการ วนลาสดในการปรบปรงโครงการ และยงมสวนของการจดการแตละโครงการซงไดแก การปรบปรงโครงการ และการลบโครงการ ซงนอกจากนยงสามารถเพมโครงการใหมทตองการจะน าไปวดประสทธภาพได

12

03

41

11

2

Page 49: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

37

2) สวนของการเพมโครงการทจะน ามาวดประสทธภาพของนกพฒนาซอฟตแวร ท าหนาทเพมขอมลโครงการตามรปท 4.13

รปท 4.13 การออกแบบสวนตวประสานของสวนการเพมโครงการทจะน ามาวดประสทธภาพของ

นกพฒนาซอฟตแวร จากรปท 4.13 การออกแบบสวนตอประสานของสวนการเพมโครงการทจะน ามาวด

ประสทธภาพของนกพฒนาซอฟตแวรมสวนของการกรอกขอมล ไดแก ชอโครงการ และเจาของโครงการ รวมถงยงมปมส าหรบเพมโครงการและยกเลกการเพมโครงการอกดวย

3) สวนของการแสดงผลของการวดประสทธภาพของนกพฒนาแตละรายในโครงการนน ๆ แบงเปน 4 สวน ดงน

(1) แผนภมความหนาแนนของรองรอยทไมดในโคดในแตละคอมมต โดยแกน X จะแสดงถงเวอรชนคอมมต และแกน Y จะแสดงถงความหนาแนนของรองรอยทไมดในโคด โดยจะแบงรองรอยทไมดในโคดออกเปน 3 ประเภท ไดแก รองรอยทไมดประเภทการพฒนา รองรอยทไมดประเภทการออกแบบ และผลรวมของรองรอยทไมดทงสองประเภท ตามรปท 4.14

12

03

41

11

2

Page 50: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

38

รปท 4.14 การออกแบบสวนตวประสานของการแสดงแผนภมความหนาแนนของรองรอยทไมดใน

โคดในแตละคอมมต (2) แผนภมคะแนนประสทธภาพของนกพฒนาซอฟตแวรแตละรายในโครงการ โดยแกน X

แสดงถงชอของนกพฒนาซอฟตแวร และแกน Y แสดงถงคะแนนประสทธภาพของนกพฒนาซอฟตแวร โดยจะแบงคะแนนประสทธภาพทค านวณจากรองรอยทไมดในโคดออกเปน 3 ประเภท ไดแก รองรอยทไมดประเภทการพฒนา รองรอยทไมดประเภทการออกแบบ และผลรวมของรองรอยทไมดทงสองประเภท ซงเปนคาประสทธภาพโดยรวมของนกพฒนาซอฟตแวรแตละรายโดยค านวณจากคอมมต โคดในเวอรชนปจจบน ตามสมการท 6 ซงจะแสดงตามรปท 4.15

1 รปท 4.15 การออกแบบสวนตวประสานของการแสดงแผนภมคะแนนประสทธภาพของนกพฒนา

ซอฟตแวรแตละรายในโครงการ

12

03

41

11

2

Page 51: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

39

(3) แผนภมจ านวนคอมมตของนกพฒนาซอฟตแวร 6 อนดบทมการคอมมตมากทสด และผลรวมของการคอมมตของอนดบถดไป ตามรปท 4.16

รปท 4.16 แผนภมจ านวนคอมมตของนกพฒนาซอฟตแวร

(4) ตารางคะแนนประสทธภาพของนกพฒนาซอฟตแวรแตละราย โดยจะประกอบดวย ชอของนกพฒนา จ านวนคอมมต คะแนนเฉลยของรองรอยทไมดในโคดประเภทการพฒนา คะแนนเฉลยของรองรอยทไมดในโคดประเภทการออกแบบ และคะแนนเฉลยของรองรอยทไมดในโคดรวมทงสองประเภท ตามรปท 4.17

12

03

41

11

2

Page 52: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

40

รปท 4.17 ตารางคะแนนประสทธภาพของนกพฒนาซอฟตแวรแตละราย

4) สวนของการแสดงผลของการวดประสทธภาพจากทกโครงการทนกพฒนาซอฟตแวร

รายนน ๆ มสวนรวมอยในโครงการ โดยจะประกอบไปดวยสวนของแผนภมการเปรยบเทยบคะแนนของโครงการตาง ๆ โดยแกน X แสดงถงโครงการทน ามาเปรยบเทยบ และแกน Y แสดงถงคะแนนประสทธภาพของนกพฒนาซอฟตแวร โดยจะแบงคะแนนประสทธภาพทค านวณจากรองรอยทไมดในโคดออกเปน 3 ประเภท ไดแก รองรอยทไมดประเภทการพฒนา รองรอยทไมดประเภทการออกแบบ และผลรวมของรองรอยทไมดทงสองประเภท และสวนของตารางคะแนนของทกโครงการทนกพฒนาซอฟตแวรรายนน ๆ เขารวม ตามรปท 4.18

12

03

41

11

2

Page 53: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

41

รปท 4.18 การออกแบบสวนตวประสานของการแสดงผลของการวดประสทธภาพจากทกโครงการท

นกพฒนาซอฟตแวรรายนน ๆ มสวนรวมอยในโครงการ

จากรปท 4.18 การออกแบบสวนตอประสานของการแสดงผลของการวดประสทธภาพจากทกโครงการทนกพฒนาซอฟตแวรรายนน ๆ มสวนรวมอยในโครงการมสวนของแผนภมการเปรยบเทยบคะแนนของโครงการตาง ๆ และสวนของตารางคะแนนของทกโครงการทนกพฒนาซอฟตแวรรายนน ๆ เขารวม โดยจะประกอบดวย ชอโครงการ จ านวนคอมมต คะแนนเฉลยของรองรอยทไมดในโคดประเภทการพฒนา คะแนนเฉลยของรองรอยทไมดในโคดประเภทการออกแบบ และคะแนนเฉลยของรองรอยทไมดในโคดรวมทงสองประเภท และยงสามารถเลอกเปรยบเทยบโครงการไดโดยการท าเครองหมายถกในสวนของการเปรยบเทยบ ซงระบบจะน าคะแนนของโครงการไปเพมในแผนภมการเปรยบเทยบคะแนนของโครงการตาง ๆ ทงนในการเปรยบเทยบผใชเครองมอจะตองค านงถงสภาพแวดลอม ความซบซอน ขนาดของโครงการ และผรวมโครงการ ซงควรจะเปนแบบเดยวกนหรอใกลเคยงกนจงจะสามารถเปรยบเทยบกนได เนองจากปจจยเหลานมผลตอคะแนนประสทธภาพของนกพฒนาในโครงการนน ๆ ทงสน โดยถาผใชเครองมอไมค านงถงความแตกตางระหวางปจจยเหลานอาจท าใหการตความผลการเปรยบเทยบระหวางโครงการทเลอกมาผดพลาดได

หากโครงการทเลอกมาเปรยบเทยบกนไดแลว ถาคะแนนประสทธภาพของนกพฒนาซอฟตแวรรายนในโครงการใหมมคานอยกวาคะแนนในโครงการเกา หมายความวานกพฒนาซอฟตแวรรายนมการพฒนาซอฟตแวรทมคณภาพลดลง ในทางตรงกนขาม ถาคะแนนประสทธภาพของนกพฒนาซอฟตแวรรายนในโครงการใหมมคามากกวาคะแนนในโครงการเกา จะหมายความวานกพฒนาซอฟตแวรรายนมการพฒนาซอฟตแวรทมคณภาพมากขน

12

03

41

11

2

Page 54: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

42

บทท 5 การทดสอบและประเมนผล

การประเมนผลและทดสอบการท างานของเครองมอวดประสทธภาพนกพฒนาซอฟตแวร

รายคนโดยองรองรอยทไมดในโคดในระบบควบคมเวอรชนแบบกระจายศนยมดงน

5.1 การประเมนผลความสอดคลองในการจดอนดบประสทธภาพของนกพฒนาซอฟตแวร ในสวนนจะใชการเปรยบเทยบระหวาง ผลลพธจากการทดลองจดอนดบตามคะแนน

การวดประสทธภาพของนกพฒนาซอฟตแวรโดยใชเครองมอทน าเสนอกบผลลพธการจดอนดบประสทธภาพของนกพฒนาซอฟตแวรท ได จากการตอบแบบสอบถามโดยผ ประเมนท เป นนกพฒนาซอฟตแวรทมประสบการณจ านวน 4 คน ดงขอมลในตารางท 5.1 ผประเมนแตละคนจะตองตรวจสอบโคดของโครงการจ านวน 2 โครงการ ดงตารางท 5.2 และน าขอมลจากการตรวจสอบมาท าแบบสอบถามประสทธภาพของนกพฒนาซอฟตแวรจ านวน 10 ขอ แตละขอมคะแนน 1-5 ซงแสดงถงประสทธภาพของนกพฒนาซอฟตแวรในระดบตองปรบปรง -ระดบดมาก จากนนท าการรวมคะแนนทนกพฒนาซอฟตแวรแตละคนไดแลวน ามาจดอนดบประสทธภาพของนกพฒนาซอฟตแวรในโครงการ (ดรายละเอยดแบบสอบถามในภาคผนวก ก.)

ตารางท 5.1 ขอมลรายละเอยดของผประเมนแบบสอบถาม

ผประเมนคนท 1 ผประเมนคนท 2 ผประเมนคนท 3 ผประเมนคนท 4 ต าแหนงงาน Senior

Programmer Senior Programmer

Senior Programmer

Senior Programmer

ป ระสบ การณท างาน

6 ป 6 ป 6 ป 2 ป

ตารางท 5.2 ขอมลรายละเอยดของโครงการทน ามาประเมน

โครงการท 1 โครงการท 2

จ านวนคอมมต 292 คอมมต 82 คอมมต จ านวรบรรทดของโคด 5482 บรรทด 3396 บรรทด

จ านวนผคอมมต 18 คน 7 คน

การวดผลความแมนในการจดอนดบประสทธภาพของนกพฒนาซอฟตแวรจะใชมาตรวดส มประสทธ สหส มพ นธอ นด บท ของสเป ยร แมน (Spearman’s Rank Correlation Coefficient) ซ งเปนคาดชนการวดความสมพนธระหวางการจด อนดบสองชดบนขอมลชด

12

03

41

11

2

Page 55: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

43 เดยวกนโดยจะวดครงละคอนดบ คาจะอยในชวง -1 ถง 1 โดย -1 หมายถงการจดอนดบสองชดมอนดบท ตรงขามกน และ 1 หมายถงการจดอนดบสองชดมล าดบท ตรงกน ในการจดอนดบ

ประสทธภาพของนกพฒนาซอฟตแวรแตละรายในโครงการ i คาดชน จะค านวณไดจากสมการ (10)

𝐢

=∑ (𝒙𝒊 − ��)(𝒚𝒊 − ��)𝒊

√∑ (𝒙𝒊 − ��)𝟐 ∑ (𝒚𝒊 − ��)𝟐𝒊𝒊

(10)

โดยท

𝒙𝒊 คอ อนดบทของคะแนนประสทธภาพของนกพฒนาซอฟตแวรจากเครองมอ

𝒚𝒊 คอ อนดบทของคะแนนประสทธภาพของนกพฒนาซอฟตแวรจากผประเมน

5.2 ผลการทดลอง ผลการประเมนโดยเครองมอและผประเมนทง 4 ราย ส าหรบโครงการท 1 และ 2 แสดงใน

ตารางท 5.3 และ 5.4 ตามล าดบ สวนคาสมประสทธสหสมพนธทวดไดแสดงไวในตารางท 5.5

12

03

41

11

2

Page 56: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

44 ตารางท 5.3 ผลการประเมนของโครงการท 1 (ดรายละเอยดคะแนนการประเมนไดในภาคผนวก ข)

โครงการท 1 เครองมอ ผประเมน 1 ผประเมน 2 ผประเมน 3 ผประเมน 4

นกพฒนาซอฟตแวร

คะแนน อนดบ คะแนน อนดบ คะแนน อนดบ คะแนน อนดบ คะแนน อนดบ

1 0.87 1 37 1 41 1 40 1 38 1

2 -0.0476 2 35 2 33 2 33 2 29 12

3 -0.0574 3 30 7 31 3 29 13.5 30 7

4 -0.0606 4 30 7 30 7 31 3.5 32 2

5 -0.0611 5 30 7 30 7 31 3.5 31 3

6 -0.0728 6.5 30 7 30 7 30 8 30 7

7 -0.0728 6.5 30 7 30 7 30 8 30 7

8 -0.0776 8 30 7 30 7 30 8 30 7

9 -0.0796 9 30 7 30 7 30 8 30 7

10 -0.0857 10 30 7 30 7 30 8 30 7

11 -0.0873 11 30 7 28 16 30 8 30 7

12 -0.1162 12 28 14 29 13 28 16.5 28 14

12

03

41

11

2

Page 57: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

45 ตารางท 5.3 ผลการประเมนของโครงการท 1 (ดรายละเอยดคะแนนการประเมนไดในภาคผนวก ข)

[ตอ]

โครงการท 1

เครองมอ ผประเมน 1 ผประเมน 2 ผประเมน 3 ผประเมน 4

นกพฒนาซอฟตแวร

คะแนน อนดบ คะแนน อนดบ คะแนน อนดบ คะแนน อนดบ คะแนน อนดบ

13 -0.1172 13 28 14 29 13 29 13.5 29 12

14 -0.1232 14 28 14 29 13 29 13.5 29 12

15 -0.1236 15 27 17 27 17 28 16.5 27 15.5

16 -0.154 16 28 14 29 13 30 8 27 15.5

17 -0.2126 17 28 14 29 13 29 13.5 26 17

18 -0.4783 18 23 18 24 18 24 18 21 18

ตารางท 5.4 ผลการประเมนของโครงการท 2 (ดรายละเอยดคะแนนการประเมนไดในภาคผนวก ข)

โครงการท 2

เครองมอ ผประเมน 1 ผประเมน 2 ผประเมน 3 ผประเมน 4

นกพฒนาซอฟตแวร

คะแนน อนดบ คะแนน อนดบ คะแนน อนดบ คะแนน อนดบ คะแนน อนดบ

1 0.0149 1 38 1 37 1 37 1 37 1

2 0.0133 2 32 2.5 32 2.5 31 5 32 2.5

3 0.0099 4 30 7 31 5.5 31 5 31 5.5

4 0.0099 4 31 5 31 5.5 31 5 31 5.5

5 0.0099 4 31 5 31 5.5 31 5 31 5.5

6 0.0073 6 31 5 31 5.5 31 5 31 5.5

7 -0.0066 7 32 2.5 32 2.5 35 2 32 2.5

12

03

41

11

2

Page 58: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

46

ตารางท 5.5 สมประสทธสหสมพนธระหวางการจดอนดบโดยเครองมอและผประเมนทง 4 ราย การจดอนดบ คา ของโครงการท 1 คา ของโครงการท 2 เครองมอ-ผประเมน 1 0.912 0.3689

เครองมอ-ผประเมน 2 0.911 0.4341 เครองมอ-ผประเมน 3 0.7538 0.1387 เครองมอ-ผประเมน 4 0.8256 0.4341 คาเฉลย 0.8506 0.344

จากผลการทดลองแสดงใหเหนวาคาสมประสทธสหสมพนธอนดบทของสเปยร

แมน ของทงสองโครงการมคา เปนบวก คอ 0.8506 และ 0.344 ซ งแสดงวาการจดอนดบของสองโครงการมความสอดคลองในเชงบวกกบการจดอนดบโดยผประเมนทเปน

นกพฒนาซอฟตแวรท มประสบการณ ทงน โครงการท 1 มคา มากกวาโครงการท 2 เนองจากโครงการท 1 มนกพฒนาซอฟตแวรหลายรายทมการคอมมตนอยและมการเพมหรอปรบปรง โคดน อย จงท า ให ในแบบสอบถามผ ป ระเมนท าการ ใหคาป านกลางแกนกพฒนาซอฟตแวรรายนน และท าใหเมอจดอนดบนกพฒนากลมนจะอยในอนดบกลาง ๆ ในขณะเดยวกนการวดประสทธภาพนกพฒนากลมนโดยเครองมอจะจดอนดบใหนกพฒนากล มน อย ในอนดบกลาง ๆ เชนกน เน องจากเม อมการคอมมตนอยและมการเพมหรอปรบปรงโคดนอย ท าใหการเปลยนแปลงของความหนาแนนของรองรอยทไมดมคานอยไปดวย คาเฉลย เบยเซยนจงใหคาทอยอนดบกลาง ๆ ไม สงหรอต ามาก เมอท าการค านวณสมประสทธสหสมพนธจงไดคาความสอดคลองสงในเชงบวก ส าหรบโครงการท 2 แมคา

เปนบวกแตกมคาไมสงนก ซงอาจเปนผลมาจากการทจ านวนคอมมตในโครงการมคอนขางมาก ผประเมนอาจไมสามารถพจารณาจากทกคอมมตในโครงการไดโดยละเอยด แตเครองมอสามารถวเคราะหและค านวณคาประสทธภาพจากทกคอมมตไดเลยโดยตรง ผลการประเมนประสทธภาพจง

อาจมความแตกตางกนอย ท าใหการค านวณคา จงไดคาทไมสงนก อยางไรกตามจากการทคาเฉลย

ของทงสองโครงการมคาบวก จงสรปไดวาวธการทผวจยเสนอมาสามารถใชเปนสวนเสรมในการพจารณาประสทธภาพของนกพฒนาซอฟตแวรรายคนรวมกบการพจารณาดวยวธอน ๆ ได

12

03

41

11

2

Page 59: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

47

บทท 6 บทสรปโครงงานและขอเสนอแนะ

6.1 สรปผลโครงงานมหาบณฑต โครงงานมหาบณฑตนไดน าเสนอวธการและเครองมอสนบสนนการวดประสทธภาพของนกพฒนาซอฟตแวรรายคนโดยองรองรอยทไมดในโคดในระบบควบคมเวอรชนแบบกระจายศนย โดยเครองมอทผวจยพฒนาสามารถวดประสทธภาพของนกพฒนาซอฟตแวรของโครงการทผใชเครองมอเลอกมาจากเวบไซต Github โดยระบบจะเรยกใชเครองมอ Designite ในการวเคราะหหาคารองรอยทไมดในโคดในแตละเวอรชน จากนนน าคาทไมดในโคดแตละเวอรชนมาหาคาความหนาแนนของรองรอยทไมดในโคด และน าไปเปรยบเทยบกบเวอรชนกอนหนาเพอทจะไดคาทเปลยนแปลงในแตละเวอรชน สดทายจะน าคาท เปลยนแปลงในแตละเวอรชนมาหาคาประสทธภาพของนกพฒนาซอฟตแวรแตละรายโดยใชสมการหาคาเฉลยเบยเซยน ซงผลการทดลองพบวาการค านวณคะแนนประสทธภาพของนกพฒนาซอฟตแวรแตละรายโดยองรองรอยทไมดในโคดในระบบควบคมเวอรชนแบบกระจายศนยกบผลการประเมนของนกพฒนาซอฟตแวรทมประสบการณมคาสมประสทธสหสมพนธอนดบทของสเปยรแมนของทงสองโครงการทน ามาทดลองมคาเปนบวก คอ 0.8506 กบ 0.344 ซงแสดงวาการจดอนดบทงสองวธมความสอดคลองกนพอควร ผจดการโครงการสามารถน าวธการและเครองมอมาใชเปนสวนเสรมในการพจารณาประสทธภาพของนกพฒนาซอฟตแวรรายคนรวมกบการพจารณาดวยวธอน

6.2 ปญหาและขอจ ากดในการท าโครงงาน (1) เครองมอ Designite ไมสามารถวเคราะหโครงการทมการน าไลบรารทพฒนาขนมาเองมาใชรวมกบในโครงการได (2) เครองมอ Designite ไมสามารถวเคราะหโคดทมากกวา 50,000 บรรทดไดในเวอรชนทดลอง ซงเปนเวอรชนทใชในโครงงานมหาบณฑตน (3) เครองมอ Designite ไมสามารถวเคราะหโคดทมการใชไลบรารของ C# นอกเหนอจากเวอรชนท Designite สนบสนนได (4) การคอมมตอาจจะไมใชการคอมมตโคดอยางเดยว อาจเปนการคอมมตเพอน าเอกสารตาง ๆ (Documentation) เขาสโครงการ จงท าใหการดงขอมลโครงการเขามาวดประสทธภาพจะตองคดกรองการคอมมตเอกสารออกไป ซงท าใหคอมมตทน ามาค านวณมจ านวนลดลง สงผลใหจ านวนคอมมตทแสดงผลโดยเครองมอมจ านวนนอยกวาทปรากฎจรงบน Github

12

03

41

11

2

Page 60: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

48 (5) ในการวดประสทธภาพนกพฒนาซอฟตแวรทสนใจรายหนงในหลายโครงการในระบบควบคมเวอรชนแบบกระจายศนย Github ผวจยพบวามความเปนไปไดยากเนองจากขอมลใน Github บอกเพยงวานกพฒนารายน เปนเจาของโครงการใดบาง แตไมสามารถหาขอมลไดวานกพฒนารายนเกยวของกบโครงการใดบาง อกทงโครงการตาง ๆ ทนกพฒนารายนเปนเจาของอาจใชภาษาอนทไมใชซชารป หรอมการใชไลบรารท Designite ไมรองรบจงท าใหไมมขอมลโครงการเพยงพอส าหรบค านวณเปรยบเทยบประสทธภาพของนกพฒนารายนแบบขามโครงการได อยางไรกตามหากผใชเครองมอมขอมลของหลายโครงการบน Github เอง และมทมนกพฒนาทรวมอยในหลายโครงการนดวยกน กจะสามารถใชเครองมอในการวดและเปรยบเทยบประสทธภาพของนกพฒนารายทสนใจแบบขามโครงการได

6.3 ขอเสนอแนะ (1) โครงงานมหาบณฑตนไดน าเสนอการวดประสทธภาพของนกพฒนาซอฟตแวรโดยอง

รองรอยทไมดในโคดในระบบควบคมเวอรชนแบบกระจายศนย โดยน าเครองมอ Designite มาเปนสวนหนงในการหารองรอยทไมดในโคด จงควรมการพฒนาสวนของการหารองรอยทไมดในโคดเพอแกไขปญหาและขอจ ากดของ Designite ทมอยในโครงงานมหาบณฑตน

(2) วธหาคาเฉลยเอโล (Elo) [13] เปนอกวธหนงทใชวดประสทธภาพนกพฒนาซอฟตแวรเนองจากคาเฉลยเอโลเปนวธการค านวณคาเฉลยโดยจะค านวณเปรยบเทยบนกพฒนาซอฟตแวรเปนคจนไดคาเฉลยของแตละราย จงสามารถน าวธหาคาเฉลยเอโลนไปพฒนาเปนอกวธในการค านวณหาคาประสทธภาพของนกพฒนาซอฟตแวรได

(3) การหาคาประสทธภาพของนกพฒนาซอฟตแวรสามารถพจารณาจากคาคณลกษณะทดตาง ๆ ของนกพฒนาซอฟตแวรไดเชนกน เชน อาจน าคาคณลกษณะทดในดานการเขยนโคด มาพจารณารวมกบปรมาณความหนาแนนของรองรอยทไมดทเสนอ ซงอาจชวยใหผลลพธของการค านวณมความเหมาะสมยงขน

12

03

41

11

2

Page 61: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

49

ภาคผนวก

12

03

41

11

2

Page 62: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

50

ภาคผนวก ก. แบบทดสอบเพอวดประสทธภาพของนกพฒนาซอฟตแวรโดยองรองรอยทไมดในโคดในระบบ

ควบคมเวอรชนแบบกระจายศนย

วธท าแบบสอบถาม ผท าแบบสอบถามอานค าถามและน าไปพจารณารวมกบโคดของนกพฒนาซอฟตแวรทจะน ามา

วดประสทธภาพ โดยค าตอบม 5 ตวเลอก ซงแตละค าตอบจะมคะแนนแตกตางกนดงน ดมาก 5 คะแนน ด 4 คะแนน ปานกลาง 3 คะแนน พอใช 2 คะแนน ปรบปรง 1 คะแนน หากผท าแบบสอบถามไมสามารถพจารณาค าถามบางขอ เนองมาจากขอมลทจะน ามา

พจารณาไมเพยงพอ ใหผท าแบบสอบถามใหคะแนน “ปานกลาง” ส าหรบค าถามขอนนๆ ขอมลทผตอบแบบสอบถามตองระบ

1. ชอ-นามสกล 2. ต าแหนงงาน 3. ประสบการณท างาน

ค าถาม 1. มการวางโครงสรางของโครงการใหเขาใจไดงาย 2. ตงชอคลาสและฟงกชนใหสอถงการท างานและเขาใจงาย 3. แยกการท างานของแตละฟงกชนอยางชดเจน 4. มการจดการคลาสและฟงกชนใหเลกและท าความเขาใจงาย 5. มการจดกลมของฟงกชนทมการท างานทสอดคลองกนใหอยในรปแบบคลาส 6. มการจดการโคดทมการท าไปใชซ าไดอยางเหมาะสม 7. มการจดการในการก าหนดตวแปรแบบคงท 8. มการอธบายโคดทตองท าความเขาใจ 9. มการจดการค าโคดเกา หรอโคดทไมไดใช 10. มการจดการกบโคดทมความเสยงทจะเกดขอผดพลาด

12

03

41

11

2

Page 63: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

51

ภาคผนวก ข. ค าตอบของแบบสอบถาม

ค าตอบจากผท าแบบสอบถาม ผท าแบบสอบถามคนท 1 ต าแหนงงาน: Senior Programmer ประสบการณท างาน: 6 ป โครงการท 1

ค าถาม คะแนนของนกพฒนาซอฟตแวรแตละราย

1 2 3 4 5 6 7 8 9

1 5 3 3 3 3 3 3 3 3 2 4 3 2 3 3 3 3 3 3 3 4 3 3 3 3 3 3 3 3 4 2 3 2 3 3 3 3 3 3 5 4 3 3 3 3 3 3 3 3 6 4 4 3 3 3 3 3 3 3 7 2 4 3 3 3 3 3 3 3 8 4 3 3 3 3 3 3 3 3 9 4 5 4 3 3 3 3 3 3 10 4 4 4 3 3 3 3 3 3

คะแนนรวม 37 35 30 30 30 30 30 30 30

12

03

41

11

2

Page 64: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

52

ค าถาม คะแนนของนกพฒนาซอฟตแวรแตละราย

10 11 12 13 14 15 16 17 18

1 3 4 3 3 2 3 3 2 2 2 3 3 3 2 3 3 3 4 3 3 3 2 2 3 3 3 3 3 3 4 3 2 2 3 3 2 2 2 2 5 3 4 3 3 3 3 3 4 3 6 3 3 3 3 3 3 3 3 2 7 3 1 3 2 2 2 2 2 1 8 3 3 3 3 3 2 3 3 2 9 3 4 3 3 3 3 3 3 3 10 3 4 3 3 3 3 3 2 2

คะแนนรวม 30 30 28 28 28 27 28 28 23

โครงการท 2

ค าถาม คะแนนของนกพฒนาซอฟตแวรแตละราย

1 2 3 4 5 6 7

1 3 3 3 3 3 3 4 2 4 3 3 3 3 3 3 3 4 3 3 3 3 3 3 4 4 3 3 3 3 3 3 5 3 3 3 3 3 3 3 6 4 3 3 3 3 3 3 7 3 3 3 4 4 4 3 8 4 4 3 3 3 3 4 9 4 3 3 3 3 3 3 10 5 4 3 3 3 3 3

คะแนนรวม 38 32 30 31 31 31 32

12

03

41

11

2

Page 65: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

53 ผท าแบบสอบถามคนท 2 ต าแหนงงาน: Senior Programmer ประสบการณท างาน: 6 ป โครงการท 1

ค าถาม คะแนนของนกพฒนาซอฟตแวรแตละราย

1 2 3 4 5 6 7 8 9

1 5 3 3 3 3 3 3 3 3 2 5 3 3 3 3 3 3 3 3 3 4 3 3 3 3 3 3 3 3 4 3 3 2 3 3 3 3 3 3 5 5 3 3 3 3 3 3 3 3 6 4 3 3 3 3 3 3 3 3 7 3 4 3 3 3 3 3 3 3 8 5 3 3 3 3 3 3 3 3 9 3 4 4 3 3 3 3 3 3 10 4 4 4 3 3 3 3 3 3

คะแนนรวม 41 33 31 30 30 30 30 30 30

12

03

41

11

2

Page 66: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

54

ค าถาม คะแนนของนกพฒนาซอฟตแวรแตละราย

10 11 12 13 14 15 16 17 18

1 3 4 3 3 2 3 3 2 2 2 3 3 3 3 3 3 3 4 3 3 3 2 2 3 3 3 3 3 3 4 3 2 2 3 3 2 2 2 3 5 3 3 3 3 3 3 3 4 3 6 3 3 4 3 3 3 3 3 2 7 3 1 3 2 3 2 2 2 1 8 3 3 3 3 3 2 3 3 2 9 3 3 3 3 3 3 4 4 3 10 3 4 3 3 3 3 3 2 2

คะแนนรวม 30 28 29 29 29 27 29 29 24

โครงการท 2

ค าถาม คะแนนของนกพฒนาซอฟตแวรแตละราย

1 2 3 4 5 6 7

1 3 3 3 3 3 3 5 2 4 3 3 3 3 3 3 3 4 3 3 3 3 3 2 4 4 3 3 3 3 3 3 5 3 3 3 3 3 3 3 6 3 3 3 3 3 3 3 7 3 3 3 4 4 4 3 8 4 4 3 3 3 3 4 9 4 3 4 3 3 3 3 10 5 4 3 3 3 3 3

คะแนนรวม 37 32 31 31 31 31 32

12

03

41

11

2

Page 67: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

55 ผท าแบบสอบถามคนท 3 ต าแหนงงาน: Senior Programmer ประสบการณท างาน: 6 ป โครงการท 1

ค าถาม คะแนนของนกพฒนาซอฟตแวรแตละราย

1 2 3 4 5 6 7 8 9

1 5 3 3 3 3 3 3 3 3 2 5 3 2 3 3 3 3 3 3 3 4 3 3 3 3 3 3 3 3 4 3 4 2 3 4 3 3 3 3 5 4 3 3 3 3 3 3 3 3 6 4 3 3 3 3 3 3 3 3 7 2 4 3 3 3 3 3 3 3 8 5 3 3 3 3 3 3 3 3 9 4 3 4 3 3 3 3 3 3 10 4 4 3 4 3 3 3 3 3

คะแนนรวม 40 33 29 31 31 30 30 30 30

12

03

41

11

2

Page 68: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

56

ค าถาม คะแนนของนกพฒนาซอฟตแวรแตละราย

10 11 12 13 14 15 16 17 18

1 3 4 3 3 1 3 3 2 2 2 3 3 3 3 3 3 3 4 3 3 3 2 3 3 3 3 3 3 3 4 3 2 2 3 3 2 3 2 2 5 3 4 3 3 3 3 3 4 3 6 3 3 3 3 3 3 3 3 2 7 3 2 3 2 3 2 2 2 2 8 3 3 2 3 3 3 3 3 2 9 3 3 3 3 3 3 4 3 3 10 3 4 3 3 3 3 3 3 2

คะแนนรวม 30 30 28 29 29 28 30 29 24

โครงการท 2

ค าถาม คะแนนของนกพฒนาซอฟตแวรแตละราย

1 2 3 4 5 6 7

1 3 3 3 3 3 3 5 2 4 3 3 3 3 3 3 3 4 3 3 3 3 3 3 4 4 3 3 3 3 3 3 5 3 3 3 3 3 3 3 6 4 3 3 4 4 4 3 7 3 3 3 3 3 3 4 8 4 4 3 3 3 3 5 9 4 3 4 3 3 3 3 10 4 3 3 3 3 3 3

คะแนนรวม 37 31 31 31 31 31 35

12

03

41

11

2

Page 69: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

57 ผท าแบบสอบถามคนท 4 ต าแหนงงาน: Senior Programmer ประสบการณท างาน: 2 ป โครงการท 1

ค าถาม คะแนนของนกพฒนาซอฟตแวรแตละราย

1 2 3 4 5 6 7 8 9

1 5 3 3 3 3 3 3 3 3 2 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 3 3 2 4 3 3 3 3 3 5 4 3 3 3 3 3 3 3 3 6 4 4 3 3 3 3 3 3 3 7 1 4 3 3 3 3 3 3 3 8 5 4 3 3 3 3 3 3 3 9 5 4 4 3 3 3 3 3 3 10 4 4 3 4 4 3 3 4 3

คะแนนรวม 38 29 30 32 31 30 30 30 30

1

20

34

11

12

Page 70: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

58

ค าถาม คะแนนของนกพฒนาซอฟตแวรแตละราย

10 11 12 13 14 15 16 17 18

1 3 3 3 3 1 3 3 2 2 2 3 4 3 3 3 3 3 4 3 3 3 2 3 3 3 3 3 3 3 4 3 2 2 3 3 2 2 1 1 5 3 4 3 3 3 3 3 4 3 6 3 3 3 3 3 3 3 2 1 7 3 2 3 2 3 2 1 2 1 8 3 3 3 3 3 2 3 3 2 9 3 3 3 3 3 3 3 3 3 10 3 4 2 3 4 3 3 2 2

คะแนนรวม 30 30 28 29 29 27 27 26 21

โครงการท 2

ค าถาม คะแนนของนกพฒนาซอฟตแวรแตละราย

1 2 3 4 5 6 7

1 3 3 3 3 3 3 4 2 4 3 3 3 3 3 3 3 4 3 3 3 3 3 3 4 4 3 3 3 3 3 2 5 3 3 3 3 3 3 3 6 4 3 3 3 3 3 3 7 3 3 3 4 4 4 3 8 4 4 3 3 3 3 4 9 4 3 4 3 3 3 3 10 4 4 3 3 3 3 4

คะแนนรวม 37 32 31 31 31 31 32

12

03

41

11

2

Page 71: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

บรรณานกรม

บรรณานกรม

1. Aiko Yamashita, S.C., Code smells as system-level in dictators of maintainability: An empirical study. 2013: p. 2639-2640.

2. Refactoring for Architecture Smells: An Introduction. Available from: http://www.designsmells.com/articles/refactoring-for-architecture-smells-an-introduction/.

3. Documentation: Getting Started - About Version Control. Available from: https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control.

4. Sharma, T., Designite: A Customizable Tool for Smell Mining in C# Repositories, in 10th Seminar on Advanced Techniques and Tools for Software Evolution. 2017: Madrid, Spain.

5. G. Suryanarayana, G.S., and T. Sharma, Refactoring for Software Design Smells: Managing Technical Debt, M. Kaufmann, Editor.

6. Fowler, M., Refactoring: Improving the Design of Existing Programs, ed. A.-W. Professional. 1999.

7. Bayesian Rating – how to implement a weighted rating system. Available from: http://www.thebroth.com/blog/118/bayesian-rating.

8. Collective Choice: Rating Systems. Available from: http://www.lifewithalacrity.com/2005/12/collective_choi.html.

9. J. Garcia, D.P., G. Edwards, and N. Medvidovic, Identifying Architectural Bad Smells, in European Conference on Software Maintenance and Reengineering. 2009 p. 255-258.

10. Tusher Sharma, M.F.a.D.S., House of Cards: Code Smells in Open-source C# Repositories, in Empirical Software Engineering and Measurement. 2017.

11. Shu Li, H.T., and Kosuke Takano, Analysis of Software Developer Activity on a Distributed Version Control System, in Advanced Information Networking and Applications Workshops (WAINA). 2016. p. 701-707.

12. Ting, C., The Application of the Function Point Analysis in Software Developers’ Performance Evaluation, in Wireless Communications, Networking and Mobile

12

03

41

11

2

Page 72: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

60

Computing. 2008. p. 1-4. 13. TopCoder. Available from: https://www.topcoder.com/community/how-it-

works/.

12

03

41

11

2

Page 73: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

12

03

41

11

2

Page 74: Software Developer Performance Measurement Based on Code ...twittie/classes/... · CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5 ง บทคัดย่อภาษาอังกฤษ

CU iThesis 5970921721 independent study / recv: 20122561 15:49:52 / seq: 5

ประวตผเขยน

ประวตผเขยน

ชอ-สกล ณทศน จงประสทธ วน เดอน ป เกด 12 กรกฎาคม 2534 สถานทเกด โรงพยาบาลรามาธบด วฒการศกษา วทยาศาสตรบณฑต ทอยปจจบน 273 หมบานอยเจรญ ซอยลาดพราว 101 ถนนลาดพราว เขตวงทองหลาง

แขวงคลองเจาคณสงห กรงเทพฯ 10310

12

03

41

11

2