วันจันทร์ที่ 17 กันยายน พ.ศ. 2555

คณะที่ไฝ่ฝัน


วิศวกรรมซอฟต์แวร์ (Software Engineering)

มีทฤษฏีมากมาย  นิยามความหมายของ Software Engineering  ในแง่มุมต่างๆไว้  ซึ่งอาจพอยกตัวอย่างได้ดังนี้
 -  เป็นการศึกษาแขนงหนึ่งในเรื่องของหลักการและกรรมวิธีสำหรับการพัฒนาและบำรุงรักษาระบบ ซอฟต์แวร์
 -  วิศวกรรมซอฟต์แวร์เป็นการประยุกต์ความรู้ทางวิทยาศาสตร์ในการออกแบบและสร้างโปรแกรมคอมพิวเตอร์ และการทำเอกสารที่เกี่ยวข้องเพื่อพัฒนาดำเนินการบำรุงรักษาโปรแกรมเหล่านั้น
-   วิศวกรรมซอฟต์แวร์ จะเกี่ยวกับการสร้างตามหลักการทางวิศวกรรมและวิธีการเพื่อให้ได้ซอฟต์แวร์ในลักษณะที่ประหยัดที่สุด(เสียค่าใช้จ่ายน้อยที่สุด) และสามารถทำงานได้จริง
-  วิศวกรรมซอฟต์แวร์ เกี่ยวข้องกับวิธีการการผลิตซอฟต์แวร์ โดยมุ่งเน้นไปถึง วิธีการสร้างโดยรวมเทคนิควิธีการหลากหลายวิธีกาเข้าไปในการผลิตซอฟต์แวร์ใหม่ขึ้นมา 

หัวข้อ
  • Software คืออะไร ?

  • Software Process คืออะไร ?

Software คืออะไร ? 

- คือ คอมพิวเตอร์โปรแกรมที่รวมถึง Documentation
- Software ถูกพัฒนาขึ้นมา 2 ลักษณะ
Customize software – เป็น Software ที่ถูกพัฒนาขึ้นมาใช้ภายในองค์กร
Generic software – เป็น Software ที่ถูกพัฒนาขึ้นมาเพื่อขาย
- Generic sw. มุมมองในการสร้างจะถูกเผื่อเอาไว้หมด แต่ Customize sw. จะทำเฉพาะที่ต้องการเท่านั้น
- เช่น ระบบบัญชี ถ้าเราจะพัฒนาขึ้นมาใช้ในองค์กร เราจะพัฒนาขึ้นมาเท่าที่ระบบบัญชีในบริษัทใช้เท่านั้น แต่ตรงข้ามถ้าพัฒนาเพื่อขาย เราต้องพิจารณาให้กว้างมากกว่า ว่าถ้าเกิดกรณีอื่นๆจะเป็นไงบ้าง ทำให้ Software 2 ตัวนี้มีความต่างกันมาก แต่ที่ต่างกันมากที่สุด คือ Requirement

Software Process คืออะไร ? 

คือกระบวนการที่ทำการพัฒนา Software ให้ประสบผลสำเร็จ แบ่งเป็น 4Process ใหญ่ๆ
- Specification – เป็นกระบวนการกำหนดคุณสมบัติของ software ที่พัฒนา
- Development – เป็นขั้นตอนการพัฒนา software
- Validation – เป็นขั้นตอนการตรวจสอบความถูกต้องของ software ให้ตรงกับความต้องการ
- Evolution – เป็นกระบวนการทำให้ software มีวิวัฒนาการ เป็นการปรับเปลี่ยนเพิ่มสิ่งดีๆเข้ามาและเอาสิ่งที่ไม่ดีหรือไม่จำเป็นออกไป ซึ่งจะเปลี่ยนแปลงไปตามเทคโนโลยีหรือตามความต้องการของผู้ใช้

Software Process Model คืออะไร ?
คือแบบจำลองของกระบวนการการพัฒนา software ของ 4 ขั้นตอนที่กล่าวมา เราสามารถเขียนเป็นแผนภูมิหรือรูปภาพที่อ่านแล้วเข้าใจง่ายซึ่งจะเป็นแล้วแต่มุมมองของผู้ทำการพัฒนา
มุมมองที่น่าสนใจ
1. Work Flow - เป็นการให้ความสำคัญกับลำดับการทำงานเป็นหลัก ว่าจะทำงานโปรเซสอะไรก่อนหลัง
2. Data Flow – เป็นการให้ความสนใจกับข้อมูลเป็นหลัก ( นิยมใช้ DFDในการเขียน )
3. Role / Action – เป็นการสนใจว่าใคร ทำหน้าที่อะไรบ้าง , ก่อนหรือหลังหรือพร้อมกัน
วิธีการที่ใช้ในการพัฒนา
- Waterfall Model – เป็นการทำงานเหมือนน้ำตกเป็นขั้นๆลงมา
- Evolution Model – เป็นการทำไปปรับปรุงไปให้ดีขึ้นเรื่อยๆ
- Formal Transformation Model – เป็นการพัฒนาอย่างเป็นทางการและเข้มงวด มีการวัดผลที่ชัดเจนและรัดกุม ส่วนใหญ่ใช้กับงานความปลอดภัยที่สำคัญ มีผลกระทบที่รุนแรง เช่น software ควบคุมการจราจรทางอากาศ , software ที่ใช้ติดตามอัตราการหายใจของคนไข้
- Reusable Object Model – เป็นการพัฒนาเป็นชิ้นย่อยๆ โดยแต่ละชิ้นมีการออกแบบที่กว้างพอให้นำไปใช้ใหม่ในภายหลังได้

ตัวอย่างภาพ Spiral Model


ตัวอย่างภาพ V and V Model


Waterfall Model


ที่มา : วิศวกรรมซอฟต์แวร์ (Software Engineering) 

ไม่มีความคิดเห็น:

แสดงความคิดเห็น