คำถามสัมภาษณ์วิศวกรรมซอฟต์แวร์
เรียนผู้อ่านเหล่านี้ Software Engineering Interview Questions ได้รับการออกแบบมาโดยเฉพาะเพื่อให้คุณคุ้นเคยกับลักษณะของคำถามที่คุณอาจพบในระหว่างการสัมภาษณ์ในหัวข้อนี้ Software Engineering. จากประสบการณ์ของฉันผู้สัมภาษณ์ที่ดีแทบจะไม่ได้วางแผนที่จะถามคำถามใด ๆ โดยเฉพาะในระหว่างการสัมภาษณ์ของคุณโดยปกติคำถามจะเริ่มต้นด้วยแนวคิดพื้นฐานบางอย่างของหัวข้อและหลังจากนั้นพวกเขาจะดำเนินต่อไปตามการอภิปรายเพิ่มเติมและสิ่งที่คุณตอบ
Q.What is computer software?
A. ซอฟต์แวร์คอมพิวเตอร์เป็นแพ็คเกจที่สมบูรณ์ซึ่งรวมถึงโปรแกรมซอฟต์แวร์เอกสารประกอบและคู่มือผู้ใช้เกี่ยวกับวิธีใช้ซอฟต์แวร์
Q.Can you differentiate computer software and computer program?
A. โปรแกรมคอมพิวเตอร์เป็นส่วนหนึ่งของรหัสการเขียนโปรแกรมซึ่งทำหน้าที่กำหนดไว้อย่างดีโดยที่ซอฟต์แวร์มีรหัสการเขียนโปรแกรมเอกสารประกอบและคู่มือผู้ใช้
Q.What is software engineering?
A. วิศวกรรมซอฟต์แวร์เป็นสาขาวิศวกรรมที่เกี่ยวข้องกับการพัฒนาระบบซอฟต์แวร์
Q.When you know programming, what is the need to learn software engineering concepts?
A.คนที่รู้วิธีสร้างกำแพงอาจไม่เก่งในการสร้างบ้านทั้งหลัง ในทำนองเดียวกันผู้ที่สามารถเขียนโปรแกรมได้อาจไม่มีความรู้เกี่ยวกับแนวคิดอื่น ๆ ของวิศวกรรมซอฟต์แวร์ แนวคิดทางวิศวกรรมซอฟต์แวร์จะแนะนำโปรแกรมเมอร์เกี่ยวกับวิธีประเมินความต้องการของผู้ใช้ปลายทางออกแบบอัลกอริทึมก่อนเริ่มการเข้ารหัสจริงสร้างโปรแกรมด้วยการเข้ารหัสทดสอบโค้ดและเอกสารประกอบ
Q.What is software process or Software Development Life Cycle (SDLC)?
A.Software Development Life Cycle หรือกระบวนการซอฟต์แวร์คือการพัฒนาซอฟต์แวร์อย่างเป็นระบบโดยปฏิบัติตามทุกขั้นตอนในกระบวนการพัฒนา ได้แก่ การรวบรวมความต้องการการวิเคราะห์ระบบการออกแบบการเข้ารหัสการทดสอบการบำรุงรักษาและการจัดทำเอกสารตามลำดับนั้น
Q.What are SDLC models available?
A. มี SDLC หลายรุ่นเช่น Waterfall Model, Iterative Model, Spiral model, V-model และ Big-bang Model เป็นต้น
Q.What are various phases of SDLC?
A.ขั้นตอนทั่วไปของ SDLC ได้แก่ การรวบรวมความต้องการการวิเคราะห์และออกแบบระบบการเข้ารหัสการทดสอบและการนำไปใช้งาน ขั้นตอนต่างๆขึ้นอยู่กับรุ่นที่เราเลือกพัฒนาซอฟต์แวร์
Q.Which SDLC model is the best?
A.โมเดล SDLC ถูกนำมาใช้ตามความต้องการของกระบวนการพัฒนา อาจเป็นซอฟต์แวร์ต่อซอฟต์แวร์เพื่อให้แน่ใจว่ารุ่นใดเหมาะสม
เราสามารถเลือกรุ่น SDLC ที่ดีที่สุดได้หากคำตอบต่อไปนี้พอใจ -
- SDLC เหมาะสำหรับเทคโนโลยีที่เลือกเพื่อใช้งานซอฟต์แวร์หรือไม่
- SDLC เหมาะสมกับความต้องการและลำดับความสำคัญของลูกค้าหรือไม่?
- โมเดล SDLC เหมาะสมกับขนาดและความซับซ้อนของซอฟต์แวร์หรือไม่
- โมเดล SDLC เหมาะกับประเภทของโครงการและวิศวกรรมที่เราทำหรือไม่?
- SDLC เหมาะสมสำหรับนักพัฒนาที่อยู่ร่วมกันหรือแยกย้ายกันไปตามภูมิศาสตร์หรือไม่
Q.What is software project management?
A. การจัดการโครงการซอฟต์แวร์เป็นกระบวนการจัดการกิจกรรมทั้งหมดเช่นเวลาต้นทุนและการจัดการคุณภาพที่เกี่ยวข้องกับการพัฒนาซอฟต์แวร์
Q.Who is software project manager?
A. ผู้จัดการโครงการซอฟต์แวร์คือบุคคลที่รับผิดชอบในการดำเนินโครงการซอฟต์แวร์
Q.What does software project manager do?
A. ผู้จัดการโครงการซอฟต์แวร์มีส่วนร่วมกับกิจกรรมการจัดการซอฟต์แวร์ เขามีหน้าที่รับผิดชอบในการวางแผนโครงการติดตามความคืบหน้าการสื่อสารระหว่างผู้มีส่วนได้ส่วนเสียการจัดการความเสี่ยงและทรัพยากรการดำเนินการพัฒนาและส่งมอบโครงการอย่างราบรื่นภายในเวลาต้นทุนและคุณภาพ
Q.What is software scope?
A. ขอบเขตซอฟต์แวร์เป็นขอบเขตที่กำหนดไว้อย่างชัดเจนซึ่งครอบคลุมกิจกรรมทั้งหมดที่ทำเพื่อพัฒนาและส่งมอบผลิตภัณฑ์ซอฟต์แวร์
ขอบเขตของซอฟต์แวร์กำหนดฟังก์ชันและสิ่งประดิษฐ์ทั้งหมดที่จะส่งมอบเป็นส่วนหนึ่งของซอฟต์แวร์อย่างชัดเจน ขอบเขตจะระบุถึงสิ่งที่ผลิตภัณฑ์จะทำและสิ่งที่จะไม่ทำสิ่งที่ผลิตภัณฑ์สุดท้ายจะมีและสิ่งที่จะไม่มี
Q.What is project estimation?
A.เป็นกระบวนการในการประเมินด้านต่างๆของผลิตภัณฑ์ซอฟต์แวร์เพื่อคำนวณต้นทุนในการพัฒนาในแง่ของความพยายามเวลาและทรัพยากร การประมาณนี้ได้มาจากประสบการณ์ในอดีตโดยปรึกษาผู้เชี่ยวชาญหรือใช้สูตรที่กำหนดไว้ล่วงหน้า
Q.How can we derive the size of software product?
A. ขนาดของผลิตภัณฑ์ซอฟต์แวร์สามารถคำนวณได้โดยใช้วิธีใดวิธีหนึ่ง -
- การนับบรรทัดของรหัสที่จัดส่ง
- การนับคะแนนฟังก์ชันที่จัดส่ง
Q.What are function points?
A.จุดฟังก์ชั่นคือคุณสมบัติต่างๆที่มีให้โดยผลิตภัณฑ์ซอฟต์แวร์ ถือเป็นหน่วยวัดขนาดซอฟต์แวร์
Q.What are software project estimation techniques available?
A. มีเทคนิคการประมาณค่ามากมายที่ใช้กันอย่างแพร่หลายคือ -
- เทคนิคการสลายตัว (การนับบรรทัดของรหัสและจุดฟังก์ชัน)
- เทคนิคเชิงประจักษ์ (พัทและโคโคโม่)
Q.What is baseline?
A.พื้นฐานคือการวัดที่กำหนดความสมบูรณ์ของเฟส หลังจากกิจกรรมทั้งหมดที่เกี่ยวข้องกับเฟสใดเฟสหนึ่งเสร็จสิ้นเฟสจะเสร็จสมบูรณ์และทำหน้าที่เป็นพื้นฐานสำหรับเฟสถัดไป
Q.What is Software configuration management?
A. การจัดการการกำหนดค่าซอฟต์แวร์เป็นกระบวนการติดตามและควบคุมการเปลี่ยนแปลงของซอฟต์แวร์ในแง่ของข้อกำหนดการออกแบบฟังก์ชันและการพัฒนาผลิตภัณฑ์
Q.What is change control?
A. การควบคุมการเปลี่ยนแปลงเป็นหน้าที่ของการจัดการการกำหนดค่าซึ่งทำให้มั่นใจได้ว่าการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นกับระบบซอฟต์แวร์นั้นสอดคล้องและเป็นไปตามกฎและข้อบังคับขององค์กร
Q.How can you measure project execution?
A. เราสามารถวัดผลการดำเนินโครงการโดยใช้การตรวจสอบกิจกรรมรายงานสถานะและรายการตรวจสอบเหตุการณ์สำคัญ
Q.Mention some project management tools.
A.มีเครื่องมือการจัดการโครงการต่างๆที่ใช้ตามข้อกำหนดของโครงการซอฟต์แวร์และนโยบายองค์กร ซึ่งรวมถึงแผนภูมิแกนต์, แผนภูมิ PERT, ฮิสโตแกรมทรัพยากร, การวิเคราะห์เส้นทางวิกฤต, รายงานสถานะ, รายการตรวจสอบเหตุการณ์สำคัญเป็นต้น
Q.What are software requirements?
A.ข้อกำหนดซอฟต์แวร์คือคำอธิบายการทำงานของระบบซอฟต์แวร์ที่นำเสนอ ข้อกำหนดจะถือว่าเป็นคำอธิบายของระบบเป้าหมายฟังก์ชันการทำงานและคุณลักษณะต่างๆ ข้อกำหนดสื่อถึงความคาดหวังของผู้ใช้จากระบบ
Q.What is feasibility study?
A.เป็นการวัดผลเพื่อประเมินว่าการพัฒนาโครงการซอฟต์แวร์ในทางปฏิบัติและเป็นประโยชน์ต่อองค์กรจะเป็นอย่างไร นักวิเคราะห์ซอฟต์แวร์ทำการศึกษาอย่างละเอียดเพื่อทำความเข้าใจความเป็นไปได้ทางเศรษฐกิจเทคนิคและการดำเนินงานของโครงการ
Economic - การขนส่งทรัพยากรค่าใช้จ่ายในการฝึกอบรมค่าสาธารณูปโภคและเครื่องมือเพิ่มเติมและการประมาณต้นทุนและผลประโยชน์โดยรวมของโครงการ
Technical - เป็นไปได้ไหมที่จะพัฒนาระบบนี้? การประเมินความเหมาะสมของเครื่องและระบบปฏิบัติการที่ซอฟต์แวร์จะดำเนินการความรู้และทักษะของนักพัฒนาที่มีอยู่การฝึกอบรมยูทิลิตี้หรือเครื่องมือสำหรับโครงการ
Operational - องค์กรสามารถปรับเปลี่ยนได้อย่างราบรื่นตามความต้องการของโครงการหรือไม่? ปัญหาคุ้มค่าที่จะแก้หรือไม่?
Q.How can you gather requirements?
A. ข้อกำหนดสามารถรวบรวมได้จากผู้ใช้ผ่านการสัมภาษณ์การสำรวจการวิเคราะห์งานการระดมความคิดการวิเคราะห์โดเมนการสร้างต้นแบบการศึกษาซอฟต์แวร์เวอร์ชันที่ใช้งานได้ที่มีอยู่และโดยการสังเกต
Q.What is SRS?
A.SRS หรือ Software Requirement Specification คือเอกสารที่จัดทำขึ้นในช่วงเวลาของกระบวนการรวบรวมความต้องการ นอกจากนี้ยังสามารถมองว่าเป็นกระบวนการในการปรับแต่งข้อกำหนดและจัดทำเป็นเอกสาร
Q.What are functional requirements?
A. ข้อกำหนดด้านการใช้งานคือคุณสมบัติการทำงานและข้อกำหนดที่ผู้ใช้คาดหวังจากผลิตภัณฑ์ซอฟต์แวร์ที่นำเสนอ
Q.What are non-functional requirements?
A. ข้อกำหนดที่ไม่สามารถใช้งานได้นั้นมีความหมายโดยนัยและเกี่ยวข้องกับความปลอดภัยประสิทธิภาพรูปลักษณ์และความรู้สึกของส่วนต่อประสานกับผู้ใช้ความสามารถในการทำงานร่วมกันค่าใช้จ่ายเป็นต้น
Q.What is software measure?
A. การวัดซอฟต์แวร์สามารถเข้าใจได้ว่าเป็นกระบวนการในการหาปริมาณและเป็นสัญลักษณ์ของคุณลักษณะและลักษณะต่างๆของซอฟต์แวร์
Q.What is software metric?
A.Software Metrics ให้มาตรการสำหรับด้านต่างๆของกระบวนการซอฟต์แวร์และผลิตภัณฑ์ซอฟต์แวร์ พวกเขาแบ่งออกเป็น -
- เมตริกข้อกำหนด: ข้อกำหนดด้านความยาวความสมบูรณ์
- เมตริกผลิตภัณฑ์: บรรทัดของโค้ดเมตริกเชิงวัตถุเมตริกการออกแบบและการทดสอบ
- เมตริกกระบวนการ: ประเมินและติดตามงบประมาณกำหนดการทรัพยากรบุคคล
Q.What is modularization?
A. Modularization เป็นเทคนิคในการแบ่งระบบซอฟต์แวร์ออกเป็นโมดูลต่างๆที่รอบคอบซึ่งคาดว่าจะทำงานได้อย่างอิสระ
Q.What is concurrency and how it is achieved in software?
A.ภาวะพร้อมกันคือแนวโน้มของเหตุการณ์หรือการกระทำที่จะเกิดขึ้นพร้อมกัน ในซอฟต์แวร์เมื่อสองกระบวนการหรือมากกว่าดำเนินการพร้อมกันจะเรียกว่ากระบวนการพร้อมกัน
ตัวอย่าง
ในขณะที่คุณเริ่มคำสั่งพิมพ์และเริ่มการพิมพ์คุณสามารถเปิดแอปพลิเคชันใหม่ได้
การทำงานพร้อมกันถูกนำไปใช้โดยการแยกซอฟต์แวร์ออกเป็นหน่วยการดำเนินการที่เป็นอิสระหลายหน่วย ได้แก่ กระบวนการและเธรดและดำเนินการควบคู่กันไป
Q.What is cohesion?
A. การทำงานร่วมกันเป็นมาตรการที่กำหนดระดับของความสามารถในการพึ่งพาภายในระหว่างองค์ประกอบต่างๆของโมดูล
Q.What is coupling?
A. การเชื่อมต่อเป็นมาตรการที่กำหนดระดับของการพึ่งพาระหว่างโมดูลของโปรแกรม
Q.Mentions some software analysis & design tools?
A. DFDs (Data Flow Diagrams), Structured Charts, Structured English, Data Dictionary, HIPO (Hierarchical Input Process Process Output) ไดอะแกรม, ER (Entity Relationship) ไดอะแกรมและตารางการตัดสินใจ
Q.What is level-0 DFD?
A. DFD ระดับนามธรรมสูงสุดเรียกว่าระดับ 0 DFD หรือที่เรียกว่า DFD ระดับบริบทซึ่งแสดงถึงระบบข้อมูลทั้งหมดเป็นแผนภาพเดียวที่ปกปิดรายละเอียดพื้นฐานทั้งหมด
Q.What is the difference between structured English and Pseudo Code?
A. Structured English เป็นภาษาอังกฤษที่ใช้ในการเขียนโครงสร้างของโมดูลโปรแกรมโดยใช้คีย์เวิร์ดภาษาโปรแกรมในขณะที่ Pseudo Code มีความใกล้เคียงกับภาษาโปรแกรมมากกว่าและใช้คำหรือประโยคในภาษาอังกฤษเพื่อเขียนบางส่วนของโค้ด
Q.What is data dictionary?
A.พจนานุกรมข้อมูลเรียกว่า meta-data ความหมายเป็นที่เก็บข้อมูลเกี่ยวกับข้อมูล พจนานุกรมข้อมูลใช้เพื่อจัดระเบียบชื่อและการอ้างอิงที่ใช้ในระบบเช่นอ็อบเจ็กต์และไฟล์พร้อมกับรูปแบบการตั้งชื่อ
Q.What is structured design?
A.การออกแบบโครงสร้างเป็นการกำหนดแนวความคิดของปัญหาให้เป็นองค์ประกอบต่างๆของการแก้ปัญหา เป็นเรื่องที่เกี่ยวข้องกับการออกแบบโซลูชันและใช้กลยุทธ์ 'แบ่งและพิชิต'
Q.What is the difference between function oriented and object oriented design?
A.การออกแบบที่เน้นฟังก์ชันประกอบด้วยระบบย่อยขนาดเล็กจำนวนมากที่เรียกว่าฟังก์ชัน แต่ละฟังก์ชั่นสามารถทำงานที่สำคัญในระบบได้ การออกแบบเชิงวัตถุทำงานรอบ ๆ วัตถุในโลกแห่งความเป็นจริง (เอนทิตี) คลาส (ประเภท) และวิธีการที่ดำเนินการกับวัตถุ (ฟังก์ชัน)
Q.Briefly define top-down and bottom-up design model.
A. โมเดลจากบนลงล่างเริ่มต้นด้วยมุมมองทั่วไปของระบบและแยกย่อยไปเป็นแบบที่เฉพาะเจาะจงมากขึ้นในขณะที่โมเดลจากด้านล่างขึ้นบนเริ่มต้นด้วยส่วนประกอบที่เฉพาะเจาะจงและพื้นฐานที่สุดก่อนและทำการเรียบเรียงส่วนประกอบเพื่อให้ได้นามธรรมในระดับที่สูงขึ้น
Q.What is the basis of Halstead’s complexity measure?
A. การวัดความซับซ้อนของ Halstead ขึ้นอยู่กับการนำไปใช้จริงของโปรแกรมและจะพิจารณาโทเค็นที่ใช้ในโปรแกรมเป็นเกณฑ์ในการวัด
Q.Mention the formula to calculate Cyclomatic complexity of a program?
A. ความซับซ้อนของวงจรใช้สูตรของทฤษฎีกราฟ: V (G) = e - n + 2
Q.What is functional programming?
A.การเขียนโปรแกรมเชิงฟังก์ชันเป็นรูปแบบของภาษาโปรแกรมซึ่งใช้แนวคิดของฟังก์ชันทางคณิตศาสตร์ ให้วิธีการคำนวณเป็นฟังก์ชันทางคณิตศาสตร์ซึ่งให้ผลลัพธ์โดยไม่คำนึงถึงสถานะของโปรแกรม
Q.Differentiate validation and verification?
A. การตรวจสอบความถูกต้องจะตรวจสอบว่าผลิตภัณฑ์ทำตามข้อกำหนดของผู้ใช้หรือไม่ในขณะที่การตรวจสอบจะตรวจสอบว่ามีการปฏิบัติตามขั้นตอนที่เหมาะสมในการพัฒนาผลิตภัณฑ์หรือไม่
การตรวจสอบยืนยันผลิตภัณฑ์ที่ถูกต้องและการตรวจสอบยืนยันว่าผลิตภัณฑ์ถูกสร้างขึ้นด้วยวิธีที่ถูกต้องหรือไม่
Q.What is black-box and white-box testing?
A.การทดสอบแบล็คบ็อกซ์จะตรวจสอบว่าเอาต์พุตที่ต้องการถูกสร้างขึ้นเมื่อได้รับค่าอินพุตที่ถูกต้องหรือไม่ ไม่ได้ตรวจสอบการใช้งานจริงของโปรแกรม
การทดสอบกล่องขาวไม่เพียง แต่ตรวจหาเอาต์พุตที่ต้องการและถูกต้องเมื่อมีการป้อนข้อมูลที่ถูกต้อง แต่ยังตรวจสอบว่ามีการใช้รหัสอย่างถูกต้องหรือไม่
เกณฑ์ | การทดสอบกล่องดำ | การทดสอบกล่องสีขาว |
---|---|---|
ความรู้เกี่ยวกับโปรแกรมซอฟต์แวร์การออกแบบและโครงสร้างที่จำเป็น | ไม่ | ใช่ |
ความรู้เกี่ยวกับการใช้งานซอฟต์แวร์ที่จำเป็น | ไม่ | ใช่ |
ใครเป็นผู้ดำเนินการทดสอบซอฟต์แวร์นี้ | พนักงานทดสอบซอฟต์แวร์ | นักพัฒนาซอฟต์แวร์ |
ข้อมูลอ้างอิงพื้นฐานสำหรับผู้ทดสอบ | ข้อกำหนดข้อกำหนด | รายละเอียดการออกแบบและโครงสร้าง |
Q.Quality assurance vs. Quality Control?
A. การประกันคุณภาพจะตรวจสอบเพื่อตรวจสอบว่ามีการปฏิบัติตามกระบวนการที่เหมาะสมหรือไม่ในขณะที่ซอฟต์แวร์กำลังพัฒนาซอฟต์แวร์
การควบคุมคุณภาพเกี่ยวข้องกับการรักษาคุณภาพของผลิตภัณฑ์ซอฟต์แวร์
Q.What are various types of software maintenance?
A. ประเภทการบำรุงรักษา ได้แก่ แก้ไขปรับตัวสมบูรณ์แบบและเชิงป้องกัน
- Corrective
การลบข้อผิดพลาดที่พบโดยผู้ใช้
- Adaptive
การจัดการกับการเปลี่ยนแปลงในสภาพแวดล้อมฮาร์ดแวร์และซอฟต์แวร์ที่ซอฟต์แวร์ทำงาน
- Perfective maintenance
ดำเนินการเปลี่ยนแปลงข้อกำหนดที่มีอยู่หรือใหม่ของผู้ใช้
- Preventive maintenance
ใช้มาตรการที่เหมาะสมเพื่อหลีกเลี่ยงปัญหาในอนาคต
Q.What is software re-engineering?
A.การรีเอ็นจิเนียริ่งซอฟต์แวร์เป็นกระบวนการในการอัพเกรดเทคโนโลยีที่ซอฟต์แวร์ถูกสร้างขึ้นโดยไม่เปลี่ยนแปลงการทำงานของซอฟต์แวร์ สิ่งนี้ทำเพื่อให้ซอฟต์แวร์ได้รับการปรับแต่งด้วยเทคโนโลยีล่าสุด
Q.What are CASE tools?
A.CASE ย่อมาจาก Computer Aided Software Engineering เครื่องมือ CASE คือชุดโปรแกรมซอฟต์แวร์แอปพลิเคชันอัตโนมัติซึ่งใช้เพื่อสนับสนุนเร่งและทำให้กิจกรรม SDLC ราบรื่นขึ้น
Next คืออะไร?
นอกจากนี้คุณสามารถดูงานที่ได้รับมอบหมายที่ผ่านมาของคุณที่คุณทำกับหัวเรื่องและตรวจสอบให้แน่ใจว่าคุณสามารถพูดกับพวกเขาได้อย่างมั่นใจ หากคุณเป็นคนใหม่ผู้สัมภาษณ์ไม่คาดหวังว่าคุณจะตอบคำถามที่ซับซ้อนมากนัก แต่คุณต้องทำให้แนวคิดพื้นฐานของคุณแข็งแกร่งมาก
ประการที่สองมันไม่สำคัญมากนักหากคุณไม่สามารถตอบคำถามสองสามข้อได้ แต่สิ่งที่สำคัญคือสิ่งที่คุณตอบคุณต้องตอบด้วยความมั่นใจ ดังนั้นเพียงแค่รู้สึกมั่นใจในระหว่างการสัมภาษณ์ของคุณ พวกเราขอให้คุณโชคดีที่มีผู้สัมภาษณ์ที่ดีและสิ่งที่ดีที่สุดสำหรับความพยายามในอนาคตของคุณ ไชโย :-)