มีทฤษฏีมากมาย นิยามความหมายของ Software Engineering ในแง่มุมต่างๆไว้ ซึ่งอาจพอยกตัวอย่างได้ดังนี้
- เป็นการศึกษาแขนงหนึ่งในเรื่องของหลักการและกรรมวิธีสำหรับการพัฒนาและบำรุงรักษาระบบ ซอฟต์แวร์
- วิศวกรรมซอฟต์แวร์เป็นการประยุกต์ความรู้ทางวิทยาศาสตร์ในการออกแบบและสร้างโปรแกรมคอมพิวเตอร์ และการทำเอกสารที่เกี่ยวข้องเพื่อพัฒนาดำเนินการบำรุงรักษาโปรแกรมเหล่านั้น
- วิศวกรรมซอฟต์แวร์ จะเกี่ยวกับการสร้างตามหลักการทางวิศวกรรมและวิธีการเพื่อให้ได้ซอฟต์แวร์ในลักษณะที่ประหยัดที่สุด(เสียค่าใช้จ่ายน้อยที่สุด) และสามารถทำงานได้จริง
- วิศวกรรมซอฟต์แวร์ เกี่ยวข้องกับวิธีการการผลิตซอฟต์แวร์ โดยมุ่งเน้นไปถึง วิธีการสร้างโดยรวมเทคนิควิธีการหลากหลายวิธีกาเข้าไปในการผลิตซอฟต์แวร์ใหม่ขึ้นมา
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 – เป็นการพัฒนาเป็นชิ้นย่อยๆ โดยแต่ละชิ้นมีการออกแบบที่กว้างพอให้นำไปใช้ใหม่ในภายหลังได้
Software คืออะไร ?
- คือ คอมพิวเตอร์โปรแกรมที่รวมถึง Documentation - Software ถูกพัฒนาขึ้นมา 2 ลักษณะ - Customize software – เป็น Software ที่ถูกพัฒนาขึ้นมาใช้ภายในองค์กร - Generic software – เป็น Software ที่ถูกพัฒนาขึ้นมาเพื่อขาย - Generic sw. มุมมองในการสร้างจะถูกเผื่อเอาไว้หมด แต่ Customize sw. จะทำเฉพาะที่ต้องการเท่านั้น - เช่น ระบบบัญชี ถ้าเราจะพัฒนาขึ้นมาใช้ในองค์กร เราจะพัฒนาขึ้นมาเท่าที่ระบบบัญชีในบริษัทใช้เท่านั้น แต่ตรงข้ามถ้าพัฒนาเพื่อขาย เราต้องพิจารณาให้กว้างมากกว่า ว่าถ้าเกิดกรณีอื่นๆจะเป็นไงบ้าง ทำให้ Software 2 ตัวนี้มีความต่างกันมาก แต่ที่ต่างกันมากที่สุด คือ Requirement