Food FocusThailand
OCTOBER 2015
46
SOURCE
OF ENGINEER
การพั
ฒนาและการประยุ
กต์
ใช้
ซอฟต์
แวร์
เพื่
ออุ
ตสาหกรรมอย่
างยั่
งยื
น
Applicationof Industrial Software
SustainableDevelopment and
Rayi ChristianWicaksono
โครงการสารานุ
กรมไทยส�
ำหรั
บเยาวชน
โดยพระราชประสงค์
ในพระบาทสมเด็
จพระเจ้
าอยู่
หั
ว
Thai Junior EncyclopediaProject
ByRoyal Commandof H.M. theKing
1. พั
ฒนาต้
นแบบซอฟต์
แวร์
ก่
อน
การเน้
นการพั
ฒนาต้
นแบบ (Prototype)
ของซอฟต์
แวร์
เหมาะส�
ำหรั
บซอฟต์
แวร์
ที่
ผู
้
ใช้
ก็
ไม่
ค่
อยจะแน่
ใจว่
า ตนเอง
ต้
องการอะไร หรื
อซอฟต์
แวร์
ประเภทใหม่
ที่
อยู
่
ในช่
วงการท�
ำวิ
จั
ย และพั
ฒนา หรื
อ
ซอฟต์
แวร์
ที่
เน้
นการออกแบบวิ
ธี
การติ
ดต่
อกั
บผู
้
ใช้
(User interface) เป็
นหลั
ก
เมื่
อผู
้
ใช้
เห็
นต้
นแบบแล้
วจึ
งเริ่
มวิ
เคราะห์
ได้
ว่
า เขาชอบส่
วนใดหรื
อไม่
ชอบส่
วนใด
ประสิ
ทธิ
ภาพของวิ
ธี
การที
่
ใช้
ในซอฟต์
แวร์
มี
ข้
อดี
หรื
อข้
อเสี
ยอย่
างไรผู
้
พั
ฒนาต้
นแบบ
อาจลองผิ
ดลองถู
กจนกว่
าข้
อก�
ำหนดซอฟต์
แวร์
จะเกิ
ดความชั
ดเจนได้
ในที่
สุ
ด ปั
ญหาคื
อ
ต้
นแบบประเภทนี
้
ดู
แลยาก เพราะการลองผิ
ดลองถู
กมั
กท�
ำให้
ชุ
ดค�
ำสั่
งภายใน
ซั
บซ้
อน ดั
งนั้
นถ้
าใช้
วิ
ธี
นี้
ก็
ต้
องทิ้
งซอฟต์
แวร์
ต้
นแบบแล้
วเริ่
มต้
นพั
ฒนาซอฟต์
แวร์
ขึ้
นมาใหม่
2. พั
ฒนาซอฟต์
แวร์
แบบต่
อเติ
ม
การพั
ฒนาซอฟต์
แวร์
แบบต่
อเติ
ม
(Incremental model) เป็
นวิ
ธี
ที่
จะท�
ำให้
ได้
รั
บซอฟต์
แวร์
โดยเร็
ว ถ้
าผู
้
ใช้
ต้
องการ
ซอฟต์
แวร์
ที่
ท�
ำงานได้
10 หน้
าที่
ก็
อาจเริ่
มพั
ฒนาซอฟต์
แวร์
ที่
ท�
ำงานได้
1-2 หน้
าที่
ก่
อนแล้
วจึ
งน�
ำไปทดลองใช้
ถ้
ายั
งไม่
พอใจก็
ค่
อยๆแก้
ไขจนกว่
าจะพอใจแล้
วจึ
งเพิ่
ม
หน้
าที่
อื่
นๆสลั
บกั
บการทดลองใช้
เป็
นระยะๆซอฟต์
แวร์
ที่
ได้
มั
กได้
รั
บการยอมรั
บจาก
ผู
้
ใช้
แต่
ไม่
สามารถก�
ำหนดเวลาที่
จะเสร็
จได้
แน่
นอน เพราะความต้
องการของผู
้
ใช้
เปลี่
ยนแปลงไปได้
ทุ
กระยะ
3. พั
ฒนาซอฟต์
แวร์
แบบวนเวี
ยน
วิ
ธี
การพั
ฒนาแบบ “วนเวี
ยน” (Spiral
model) นี้
จะวนเวี
ยนอยู
่
ระหว่
าง (1) ตั
้
งเป้
าหมาย ดู
ทางเลื
อก และข้
อจ�
ำกั
ด
(2) ทดลองท�
ำและวิ
เคราะห์
แม่
แบบแบบวนเวี
ยนความเสี่
ยง (3) ท�
ำจริ
ง และ
(4) ประเมิ
นผลและวางแผนช่
วงต่
อไป
วิ
ธี
นี้
จะเน้
นเรื่
องการวิ
เคราะห์
ความเสี่
ยงในช่
วงที่
2 ซึ่
งการวิ
เคราะห์
ความเสี่
ยง
(Risk-analysis) เป็
นการวิ
เคราะห์
ว่
าในการพั
ฒนาซอฟต์
แวร์
มี
ปั
ญหาอะไรบ้
าง
แต่
ละปั
ญหาอาจส่
งผลกระทบรุ
นแรงในระดั
บใดและมี
โอกาสเกิ
ดขึ้
นได้
มากเพี
ยงใด
แล้
วรี
บจั
ดการกั
บปั
ญหาที่
มี
โอกาสเกิ
ดขึ้
นและมี
ผลกระทบสู
งก่
อน ปั
ญหาดั
งกล่
าว
ไม่
จ�
ำเป็
นว่
าจะต้
องเป็
นปั
ญหาทางด้
านเทคนิ
ค แต่
อาจจะเป็
นปั
ญหาในการบริ
หาร
งานโครงการปั
ญหาเรื่
องคน ฯลฯ เพื่
อให้
โครงการประสบความส�
ำเร็
จได้
มากขึ้
น
1. Software Prototyping
Prototype is suitable for a user who is
uncertain of what one needs from the applications or for new
applications under the process of research and development or user
interface software. Once the user sees the prototype, he can then
analyzewhichever parts he likes or dislikes, what are its advantages
anddisadvantages.Developerof aprototypemaygo through trial and
error until finallygetting the certain requirements. Theproblem is that
themaintenance of prototypemodel is difficult because the program
is often complicated as a result of trial and error. Thus, if using this
approach, theprototypemodelmust bediscardedandbeginningwith
anew software development.
2. Incremental Development
Incremental model is anapproach
used toget softwarequickly. If auserwould like tohavesoftwarewith
10 functions, thedevelopmentmaybe startedwith1-2 functions first,
and taken for a test, withmodificationmade gradually until reaching
satisfaction. Then, other functionswill beaddedand tested from time
to time. The software is mostly acceptable to users but there is no
certain date of completion because the user needs can be changed
all the time.
3. Spiral Development
Spiral model will go around between (1)
determineobjectives, alternativesandconstraints; (2) testingand risk
analysis; (3) implementation, and; (4) evaluationandplanning for the
next phase.
This approachwill place emphasis on risk analysis in the second
phase. It is toanalyzeproblemsduringsoftwaredevelopment and the
severityof impact toeachproblem, aswell as thepossibilityof arising.
Theproblemwithgreat possibilityand impact will bedealt with first. It
is not necessary that such problemmust be technical problem, but
might be project management problem, personnel problem, etc. The
purpose is for greater achievement of the project.
This form of development will have great flexibility because the
software development in a single project might combine prototyping
model and incremental development or reinforced by the waterfall
model, goingaroundplanning, testing, implementing, evaluating. Any
errors can be found in the initial stages.
ในสมั
ยแรกๆการผลิ
ตซอฟต์
แวร์
มั
กไม่
มี
ขั้
นตอนคื
อ เริ่
มต้
นด้
วยการเขี
ยนซอฟต์
แวร์
เลย เมื่
อมี
ปั
ญหาก็
แก้
ไข เขี
ยนแล้
วแก้
สลั
บกั
นไปจนกว่
าจะได้
คุ
ณลั
กษณะ
ที่
ต้
องการ ผลก็
คื
อจะได้
ซอฟต์
แวร์
ที่
ซั
บซ้
อนมาก หากต้
องมี
การปรั
บปรุ
งแก้
ไขในภายหลั
ง และผู
้
ที่
แก้
ไขไม่
ใช่
ผู
้
เขี
ยนซอฟต์
แวร์
นั้
นเองก็
จะมี
ปั
ญหามาก
มั
กท�
ำให้
ต้
องเสี
ยค่
าใช้
จ่
ายในการท�
ำนุ
บ�
ำรุ
งซอฟต์
แวร์
เกิ
นกว่
างบประมาณที่
ก�
ำหนดไว้
ในทางปฏิ
บั
ติ
ผู
้
พั
ฒนาซอฟต์
แวร์
ทั้
งหลายจึ
งหั
นมาหาแนวทางใหม่
ๆที่
จะ
ท�
ำให้
การพั
ฒนาซอฟต์
แวร์
ตรงตามที่
ผู้
ใช้
ต้
องการ มี
ความยื
ดหยุ่
น และสอดคล้
องกั
บวิ
วั
ฒนาการของซอฟต์
แวร์
มากขึ้
น ดั
งตั
วอย่
างต่
อไปนี้
Initially, there had no software process. It started forthwith by writing software and solving any problems arising until
obtaining thespecifications required.Theoutcome receivedwouldbe thesoftwarewithgreat complication.Should there
isanyneed for furthermodificationandnot doneby thepersonwriting such software, it will causea lot of problemsand
the cost for software maintenance often goes over the budget. In practice, software developers have sought for new
approachesso that itsdevelopment canmeetuser requirementswithgreaterflexibilityand in linewithsoftwareevolution,
as per the followingexamples.