You are on page 1of 3

software engineering

วิชาการ # cstu20
เอกสารอานประกอบสไลดชุดที่ 2 ( 01Software_Process.ppt)
http://course.cs.tu.ac.th

Introduction to software engineering

3. formal system development

formal specification เปนการเปลี่ยนความตองการของลูกคาใหเปนสมการทางคณิตศาสตร


formal transformation เปนการเปลี่ยนสมการทางคณิตศาสตรใหเปน code
integration and system testing คือการทดสอบระบบสุดทาย หลังจากเปลี่ยนมาเปน code เรียบรอยแลว
โดยมากหากพัฒนามาดวยวิธีนี้ การ testing มักจะไมพบขอผิดพลาดหรือผิดพลาดนอยมาก

ปญหาของ formal system development


1.ตองการทีมงานพัฒนาที่มีความสามารถมาก
2.ในบางระบบไมสามารถใช formal system development ในการพัฒนาได เชน ระบบ user interface
หรือระบบที่ไมมีรูปแบบตายตัว
4.Reuse – oriented development

Requirement Component Requirement


Specification Analysis modification

System design Development and


System validation
with reuse integration

requirement specification กําหนดความตองการของลูกคา


component analysis คือ การวิเคราะหวาเราจะใช component ใดบางในการพัฒนาระบบที่ตรงกับความ
ตองการของลูกคา ขั้นตอนนี้จะรวมขั้นตอนการคน component ที่มีรวมอยูดว ย ( component search )
requirement modification ในบางครั้งเมื่อรวบรวม component ไดไมครบตามตองการ ก็ตองทําการ
เปลี่ยนแปลง specification ใหเหมาะสมกับ component ที่มีอยู หรือ component มีความสามารถในการ
ทํางานหลากหลายกวา spec ที่กําหนดไว อาจจะมีการเพิ่ม spec ใหมากกวา spec เดิม การเปลี่ยนแปลง spec ใน
ขั้นตอนนี้เรียกวา requirement specification
System design with reuse คือ การออกแบบระบบโดยการ reuse เปนหลัก

Process iteration

iteration คือการทําซ้าํ ในปจจุบันการพัฒนา software มักจะไมไดทําตาม process เพียงรอบเดียว แตมักจะใช


การทําซ้าํ เพื่อพัฒนา software เพื่อใหตรงกับความตองการมากที่สดุ และในกรณีที่มีการเปลี่ยนแปลงความตองการ
จากลูกคาในระหวางการพัฒนา ก็จําเปนที่จะตองสามารถยอนกลับไปพัฒนาจากจุดที่ตองการความเปลี่ยนแปลงได
ดังนั้น process iteration จึงมีบทบาทมาก
process iteration สามารถดัดแปลงใชไดกบ ั generic process model ไดทั้ง 4 ชนิด
process iteration ที่สําคัญมี 2 รูปแบบ คือ incremental development และ Spiral development
1. incremental development เปนการดัดแปลง evolutionary development แบบ
prototyping ใหเหมาะสมกับการพัฒนาระบบขนาดใหญ โดยแบงความตองการของระบบออกเปนสวน ๆ และ
เลือกพัฒนาระบบ
สวนที่มีความสําคัญที่สุดกอน โดยยึดความตองการของลูกคากอนเปนหลัก เมื่อเริ่มพัฒนาระบบยอยระบบแรกจะไมมี
การเปลี่ยนแปลง requirement อีก จนกวาระบบดังกลาวจะถูกพัฒนาจนเสร็จสิ้น และสงใหลูกคาตรวจสอบ
หลังจากนั้นลูกคาจะระบุความตองการเพิ่มเติม ( สวนนี้เปนสวนที่เหมือนกับ evolutionary development) เมื่อ
ทําการพัฒนาสวนใดสวนหนึ่งจนเสร็จสิ้นแลว จากนั้นจึงทําการพัฒนาตอไปในสวนอื่น ๆ

ขอไดเปรียบของการพัฒนาแบบ incremental development


1. ในการพัฒนาแบบนี้สามารถสงมอบบางสวนของระบบใหลูกคาไดกอน ซึ่งจะทําใหไดรับการเชื่อถือมากขึ้น
2. สวนที่ถูกพัฒนาในสวนแรก ๆ จะกลายเปนตนแบบ หรือ phototype ใหกับสวนตอ ๆ ไป ที่จะไดรับการพัฒนา
ในภายหลัง
3. โอกาสที่จะลมเหลวในการพัฒนาระบบมีนอย
4. ระบบแรก ๆ ที่ถูกพัฒนาซึ่งเปนระบบที่ความสําคัญมากทีส
่ ุด มีโอกาสที่จะถูกทดสอบหลาย ๆ ครั้งในการพัฒนา
ดังนั้นจึงมีความผิดพลาดนอย

2. spiral development การพัฒนาแบบนี้จะมีขั้นตอนในการพัฒนาวนเปน loop ในแตละ loop อาจจะมี


จํานวนขั้นตอนไมเทากัน ขึ้นอยูกบั software engineer จะเลือกใช อยางไรก็ตามสามารถแบงขั้นตอนออกเปน
4 สวนใหญ ๆ คือ

1. objective setting คือการตั้งเปาหมายวาใน loop นี้เราจะทําอะไรบาง


2.Rist assessment and reduction ระบุปจจัยที่จะทําใหเกิดความเสี่ยงที่การพัฒนาจะลมเหลว
และหาทางแกไข
3. Development and validation หลังจากที่ประเมินความเสี่ยงตาง ๆ แลวก็เลือก model ในการที่
จะพัฒนา เชน ถาใน loop ตองการพัฒนาในสวนของ user interface ก็เลือก evolutionary development
ในการพัฒนา แตถา ใน loop นี้ตองการพัฒนาในสวนของ security ก็เลือก formal development สวน
waterfall model เหมาะกับการพัฒนา system ยอย ๆ ที่ทํางานในสวนตาง ๆ ของระบบ
4. planning จะทําการวางแผนวาใน loop ตอไปเราจะทําอยางไร และทําการสรุปปญหาทีเกิดขึ้น เพื่อ
ไมใหเกิดปญหาอีกใน loop ตอไป

You might also like