Posted by: farmmie | กุมภาพันธ์ 21, 2009

วิศวกรรมซอฟต์แวร์

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

มีทฤษฏีมากมาย นิยามความหมายของ Software Engineering ในแง่มุมต่างๆไว้ ซึ่งอาจพอยกตัวอย่างได้ดังนี้

- เป็นการศึกษาแขนงหนึ่งในเรื่องของหลักการและกรรมวิธีสำหรับการพัฒนาและบำรุงรักษาระบบ ซอฟต์แวร์

- วิศวกรรมซอฟต์แวร์เป็นการประยุกต์ความรู้ทางวิทยาศาสตร์ในการออกแบบและสร้างโปรแกรมคอมพิวเตอร์ และการทำเอกสารที่เกี่ยวข้องเพื่อพัฒนาดำเนินการบำรุงรักษาโปรแกรมเหล่านั้น

- วิศวกรรมซอฟต์แวร์ จะเกี่ยวกับการสร้างตามหลักการทางวิศวกรรมและวิธีการเพื่อให้ได้ซอฟต์แวร์ในลักษณะที่ประหยัดที่สุด(เสียค่าใช้จ่ายน้อยที่สุด) และสามารถทำงานได้จริง

- วิศวกรรมซอฟต์แวร์ เกี่ยวข้องกับวิธีการการผลิตซอฟต์แวร์ โดยมุ่งเน้นไปถึง วิธีการสร้างโดยรวมเทคนิควิธีการหลากหลายวิธีกาเข้าไปในการผลิตซอฟต์แวร์ใหม่ขึ้นมา

Software คืออะไร ?

- คือ คอมพิวเตอร์โปรแกรมที่รวมถึง Documentation

- Software ถูกพัฒนาขึ้นมา 2 ลักษณะ

- Customized 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 – เป็นการพัฒนาเป็นชิ้นย่อยๆ โดยแต่ละชิ้นมีการออกแบบที่กว้างพอให้นำไปใช้ใหม่ในภายหลังได้

ไว้คราวหน้าจะมาชี้แจงแถลงไขแต่ละโมเดลนะครับ


Leave a response

Your response:

หมวดหมู่