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

ถาม - ตอบสำหรับมืออาชีพนักวิชาการและนักเรียนที่ทำงานในวงจรการพัฒนาระบบ

5
แนะนำการพัฒนาแบบ Agile หลังจากการลงทะเบียนโครงการแบบดั้งเดิม
ประมาณหนึ่งปีครึ่งที่ผ่านมาฉันเข้าทำงานที่อ้างว่าทำแบบ Agile development สิ่งที่ฉันได้เรียนรู้คือสถานที่แห่งนี้มีการปฏิบัติที่คล่องแคล่วหลายอย่าง (เช่น standups รายวัน plannings plunings และ sprint review) แต่ไม่มีหลักการใด ๆ (ในเวลา / มีความคิดที่ดีพอ ตอนนี้ฉันได้รับมอบหมายให้ทำให้ทีมมีความคล่องตัวมากขึ้นและฉันมั่นใจว่าฉันมีการบายอินอย่างสมบูรณ์จากทีม dev และทีมธุรกิจ ในฐานะโปรแกรมนำร่องพวกเขาให้โครงการที่เพิ่งรวบรวมความต้องการครบ 15 เดือนมีเอกสารวิเคราะห์และออกแบบหน้า 110 (ถือว่าเป็น "หิน") และที่ฉันไม่สามารถเข้าถึงจุดสิ้นสุดได้ ผู้ใช้ (สำหรับคณะกรรมการที่ประกอบด้วยผู้จัดการของผู้ใช้ที่ไม่ได้ใช้ผลิตภัณฑ์) ฉันเริ่มเล็กให้พวกเขามีรายการสิ่งของที่คาดหวังสำหรับ 5 sprints แรก (ปล่อย sprints ในอนาคตที่ไม่ได้กำหนด) รายการเป้าหมายของ sprint แรกและฉันก็แยกเอกสาร A & D เพื่อให้เรื่องราวของผู้ใช้เพียงพอที่จะบรรลุเป้าหมายของ sprint แรก . ตั้งแต่นั้นมาพวกเขาถามว่าทำไมเราถึงไม่มีข้อกำหนดทั้งหมดสำหรับ sprints ทั้งหมดทำไมฉันไม่เริ่มทำงานกับสิ่งของสำหรับ sprint …

7
ความแตกต่างระหว่างการวิเคราะห์รหัสคงที่และการตรวจสอบรหัสคืออะไร?
ฉันแค่อยากรู้ว่าอะไรคือความแตกต่างระหว่างการวิเคราะห์โค้ดแบบสแตติกและการตรวจสอบโค้ด แต่ละคนทำกันอย่างไร โดยเฉพาะอย่างยิ่งมีเครื่องมืออะไรบ้างสำหรับการตรวจสอบโค้ด / การวิเคราะห์แบบคงที่ของ PHP ในวันนี้? ฉันต้องการทราบเกี่ยวกับเครื่องมือที่ดีสำหรับการตรวจสอบโค้ดสำหรับภาษาใด ๆ

6
โซลูชันซอฟต์แวร์จากปี 2000 ฉันควรพยายามแก้ไขหรือสร้างสิ่งใหม่ทั้งหมดหรือไม่
ฉันถูกส่งออกไปเพื่อหารือเกี่ยวกับระบบที่ บริษัท หนึ่งกำลังใช้งานอยู่และสิ่งที่ควรทำกับ บริษัท บริษัท ผู้ผลิตกล่องแสดงต่างๆ ระบบนี้พัฒนาขึ้นเพื่อติดตามลูกค้าคำสั่งซื้อและราคา มีหลายสิ่งเกิดขึ้นตั้งแต่สร้างระบบและระบบอยู่ในขณะนี้ตามที่ผู้จัดการอธิบายว่า " ล็อค " และ " มีปัญหา " ซึ่งฉันแปลว่า "ไม่ใช่ไดนามิก" และ "ไม่เสถียร" ข้อมูลบางอย่างเกี่ยวกับระบบ มันได้รับการพัฒนาประมาณปี 2000 ระบบขนาดเล็กพอสมควรผู้ใช้ 2-5 คน 6 รูปแบบ ~ 8 ตารางพร้อมปริมาณข้อมูลโดยเฉลี่ย สร้างขึ้นใน Visual Basic รุ่นแรกสร้างด้วยการลากและวาง อินเตอร์เฟสนั้นเป็นเพียงหน้าต่างที่มีเมนูและบางรูปแบบ ใช้ฐานข้อมูล MSSQL (เซิร์ฟเวอร์ SQL2005) เพื่อเก็บข้อมูลและโปรแกรมควบคุม ODBC เพื่อทำการสืบค้นข้อมูลถูกย้ายจาก excel ก่อนระบบนี้และก่อนที่ excel จะถูกจัดการคำนวณและเขียนด้วยมือและกระดาษ ผู้ใช้ทำงานในสภาพแวดล้อม Microsoft XP (และสูงกว่า) …

2
เราควรสร้างแบบจำลองความสัมพันธ์เอนทิตีหรือการสร้างแบบจำลองเชิงวัตถุก่อนหรือไม่
เมื่อสร้างแอปพลิเคชันจากศูนย์ฉันควรเริ่มต้นด้วยโมเดลเชิงวัตถุ (OO) หรือโมเดลเอนทิตีสัมพันธ์ (ER) หรือไม่

5
มีหลักฐานว่านักพัฒนาที่ทำงานจากระยะไกลมีประสิทธิผลน้อยลงหรือไม่เมื่อพวกเขาทำงานนอกสถานที่? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ดังนั้นฉันจึงพูดกับคนที่ฉันทำงานด้วยที่นี่เมื่อไม่กี่วันที่ผ่านมาและพวกเขาก็บ่นว่า บริษัท ของพวกเขาไม่อนุญาตให้คนงานทำงานจากระยะไกลอีกต่อไปเนื่องจากการลดลงของผลผลิต ในฐานะที่เป็นคนที่เคยได้ยินข้อแก้ตัวนี้ที่ใช้ในการให้เหตุผลเฉพาะพนักงานในการค้นหาโอกาสระยะไกลฉันสงสัยว่ามีหลักฐานเชิงประจักษ์ที่ยืนยันสิ่งนี้ได้ทั้งหมดหรือถ้าฉันและคนอื่น ๆ ที่ฉันรู้ว่าในอุตสาหกรรมกำลังถูกเล่านิทาน .

7
วิธีจัดการกับความต้องการที่เปลี่ยนแปลงบ่อยๆ
ฉันกำลังจัดการกับสถานการณ์เครียด (ในความคิดของฉัน) สวยในที่ทำงานปัจจุบันของฉัน เราได้เริ่มพัฒนาโครงการใหม่รับข้อกำหนดบางประการนำไปใช้แล้วนำเสนอต่อบุคคลที่คุณสามารถเรียกว่า 'ที่ปรึกษาทางธุรกิจ' (ผู้ที่ทราบความต้องการทางธุรกิจ แต่จะไม่ใช้โปรแกรม) บุคคลนั้นควรประเมินแอปพลิเคชันจากมุมมองของลูกค้าทดสอบ ฯลฯ นี่คือลักษณะ 'กระบวนการ': ที่ปรึกษาธุรกิจพูดในตอนเย็นกับเจ้านายของฉันเป็นเวลาหนึ่งหรือสองชั่วโมงใน windows messenger ในวันถัดไปฉันจะได้รับอีเมลพร้อมสำเนาการสนทนานั้น ฉันควรจะเลือกงานจากนั้นตรวจสอบรายงานข้อบกพร่อง (ซึ่งมักจะไม่ใช่ข้อบกพร่องการทดสอบที่ไม่ดีและลืมเกี่ยวกับสถานประกอบการในอดีต) ฉันใช้การเปลี่ยนแปลงการใช้งานได้รับการยอมรับและจากนั้นในหนึ่งหรือสองสัปดาห์ปรากฎว่าไม่ต้องการพวกเขา (พวกเขาพูดคุยกับลูกค้าที่มีศักยภาพที่ได้เห็นซอฟต์แวร์เป็นเวลา 5 นาทีและเขาแนะนำการเปลี่ยนแปลง) - ฉันต้องทำการเปลี่ยนแปลงใหม่ อย่าเข้าใจฉันผิดฉันเข้าใจว่าบางครั้งความต้องการเปลี่ยนไป สิ่งที่ทำให้ฉันไม่พอใจคือการเปลี่ยนแปลงที่เกิดขึ้นบ่อยครั้งในที่ทำงานของฉันและความง่ายในการ 'จัดการ' สองอย่างคือให้ข้อกำหนดใหม่หรือบางครั้งการเปลี่ยนแปลงพื้นฐานของคุณสมบัติที่มีอยู่ ในขณะเดียวกันเราก็ทำงานตามกำหนดเวลาที่แน่นหนาและฉันก็รู้สึกว่าแทนที่จะก้าวไปข้างหน้ากับซอฟต์แวร์ของเรา ฉันขอคำแนะนำจากคุณวิธีจัดการกับสถานการณ์นี้? นี่เป็นสถานการณ์ปกติหรือไม่และฉันแค่มีความรู้สึกไวกับมัน

7
ฉันควรจะใส่ใจไหมถ้าอัตราส่วน LOC ต่อวันของฉันสูงเกินไป [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ขณะนี้ฉันกำลังทำงานในโครงการอินดี้ดังนั้นฉันจึงไม่ได้มีความหรูหราตลอดการทดสอบของมนุษย์หรือการตรวจสอบรหัสภายนอก - อย่างไรก็ตามฉันไม่เห็นข้อผิดพลาดที่ยากในรหัสปัจจุบันของฉัน (ฉันแก้ไขได้ตามที่เห็น และส่วนใหญ่พวกเขาเพียงแค่ชื่อฟิลด์ผิดและสิ่งที่คุณแก้ไขในหนึ่งหรือสองนาที) และฉันทดสอบหลังจากใช้งานคุณลักษณะใด ๆ ก่อนที่จะผลักดันมัน เมื่อเร็ว ๆ นี้หมายเลข LOC ของฉันอยู่ที่ประมาณ 400 ต่อวัน (สำหรับบันทึกเป็น C #) และฉันไม่เพียง แต่ใช้ระบบใหม่ แต่ยังเขียนสิ่งที่ฉันเขียนไปแล้วและแก้ไขข้อบกพร่องบางอย่าง ฉันควรจะใส่ใจไหม มันเป็นสัญญาณที่ฉันต้องหยุดและตรวจสอบรหัสทั้งหมดที่ฉันได้เขียนถึงวันนี้และ refactor มันได้หรือไม่
9 c#  refactoring 

3
ฉันควรใช้ประเภทวันที่ใน JAX-RS @PathParam หรือไม่
นี่คือสิ่งที่ฉันคิดเกี่ยวกับการทำบนเซิร์ฟเวอร์ JEE Glassfish โดยใช้ Jersey @GET @Path("/{name}/{date}") public String getMessages(@PathParam("name") String name, @PathParam("date") Date date) ฉันชอบความคิดที่จะบอกผู้คนที่ใช้บริการเว็บ RESTful นี้ว่า "วันที่นี่คือทุกอย่างที่ทำงานกับคลาส Date ใน Java" นั่นง่ายมากจากมุมมองที่พวกเขาสามารถดูข้อมูลจำเพาะของวันที่และพวกเขาจะมีรูปแบบการทำงานที่สามารถทดสอบได้แล้ว ปัญหาที่ฉันกังวลคือเมื่อฉันทำสิ่งนี้ JAX-RS ไม่ค่อยดีนักเมื่อ Date () ไม่ชอบสิ่งที่ได้รับในตัวสร้าง เนื่องจาก Date () ส่งข้อผิดพลาดหากไม่สามารถแยกวิเคราะห์สิ่งที่ได้รับ (เช่นถ้าคุณส่งสตริง "วันนี้" แทนที่จะเป็นวันที่จริง) เซิร์ฟเวอร์ JEE จะส่งกลับข้อผิดพลาด 404 นี่เป็นวิธีปฏิบัติที่ดีหรือไม่? มีวิธีที่ดีกว่าในการทำสิ่งนี้ที่ฉันไม่ได้คิด?

5
เคล็ดลับ / เทคนิคในการจัดการทีมใหม่ด้วยรหัสใหม่ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา คุณจัดการตัวเองอย่างไรในทีมใหม่ที่ซึ่งคุณเป็นนักพัฒนาอาวุโสที่สุดและคนอื่น ๆ ในทีมเป็นรองคุณหลายปี ภารกิจล่วงหน้าของทีมคือสิ่งที่ไม่มีใครรวมถึงคุณเคยทำมาก่อนในอาชีพของพวกเขา ฝ่ายบริหารยืนยันในการเพิ่มผลผลิตของทีมทั้งหมดและในฐานะนักพัฒนาอาวุโสคุณมีความรับผิดชอบ เคล็ดลับสำหรับการออกมาสำคัญกว่าในสถานการณ์เช่นนี้? เห็นได้ชัดว่าทีมทั้งหมดต้องการเวลาในการเรียนรู้และอย่าลืมทีมใหม่ อย่างไรก็ตามกำหนดเวลาจะขึ้นไปข้างหน้าเช่นกัน ...

7
โฮสติ้งเว็บไซต์จากที่บ้าน [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน8 ปีที่ผ่านมา ถ้าฉันต้องการโฮสต์เว็บไซต์จากบ้านของฉันฉันซื้อชื่อโดเมน จากนั้นฉันจะได้รับ IP คงที่จาก ISP ของฉัน ต่อไปฉันจะชี้ไปที่ที่อยู่ IP ของระบบที่บ้านของฉัน ฉันยังสามารถใช้เซิร์ฟเวอร์ SQL ที่ติดตั้งในระบบของฉันและไม่ต้องกังวลกับขนาด ฉันไม่ได้พูดถึงกองเซิร์ฟเวอร์ที่นี่ เซิร์ฟเวอร์เดียว ฉันสงสัยว่ามันง่ายขนาดนั้นทำไมไม่ทำอย่างนั้น? มีบางอย่างที่ฉันขาดหายไปที่นี่หรือไม่? ฉันกำลังพูดถึงเว็บไซต์ที่เรียบง่ายปานกลาง แต่มันสำคัญหรือไม่

6
วิธีการพัฒนาแอพแท็บเล็ตสายธุรกิจให้เป็นนักพัฒนา. NET [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว บริษัท ของฉันมีประสบการณ์มากมายในการพัฒนา. NET และเป็นหนึ่งในผลิตภัณฑ์ของเราในระบบ ERP เมื่อเร็ว ๆ นี้ลูกค้าคนหนึ่งถามเราว่าจะให้ส่วนต่อประสานแท็บเล็ตกับระบบนั้นหรือไม่นั่นคือซอฟต์แวร์ที่อนุญาตให้ลูกค้าดูข้อมูลผลิตภัณฑ์และสร้างคำสั่งซื้อบนแท็บเล็ต แน่นอนว่าเราไม่ได้ตื่นเต้นกับความคิดของการลงทุนเวลาและเงินจำนวนมากในการเรียนรู้ Objective-C, ซื้อเวิร์คสเตชั่การพัฒนา Mac, การจ่ายค่าบริการให้กับ Apple และอื่น ๆ สำหรับโครงการนี้ (เราอาจขายแอปได้ สำหรับลูกค้าเพิ่มเติมไม่กี่รายในภายหลัง แต่ตลาดมีขนาดเล็กมากเนื่องจากจะเป็นประโยชน์สำหรับลูกค้าปัจจุบันของระบบ ERP ของเราเท่านั้น) ดังนั้นเราควรทำอย่างไร เท่าที่ฉันเห็นเรามีตัวเลือกดังต่อไปนี้: เขียน " แอปพลิเคชัน Windows แบบเก่าธรรมดา " (WPF) และเรียกใช้บนแท็บเล็ต Windows 7 เช่น Samsung Slate หรือ Acer Iconia ข้อเสีย: อุปกรณ์หนักราคาแพงที่มีเวลาทำงานสั้น (เมื่อเทียบกับแท็บเล็ต …

1
ทำไม Iterator ของ Java และ ListIterator ชี้ไปที่องค์ประกอบต่าง ๆ
Javadoc สำหรับ ListIteratorพูดว่า: A ListIteratorไม่มีองค์ประกอบปัจจุบัน ตำแหน่งเคอร์เซอร์เสมออยู่ระหว่างองค์ประกอบที่จะถูกส่งกลับโดยเรียกร้องให้และองค์ประกอบที่จะถูกส่งกลับโดยเรียกร้องให้previous()next() เหตุใด Java จึงถูกListIteratorนำไปใช้เพื่อชี้ให้เห็นองค์ประกอบระหว่างองค์ประกอบแทนที่จะเป็นองค์ประกอบปัจจุบัน มันดูเหมือนว่านี้จะทำให้รหัสลูกค้าสามารถอ่านได้น้อยลงเมื่อจะมีการเรียกซ้ำ ๆgetNext(), getPrevious()ดังนั้นผมถือว่าต้องมีเหตุผลที่ดีสำหรับการเลือก ตามบันทึกข้างฉันเพียงแค่เขียนห้องสมุดเล็ก ๆ ที่เรียก peekable-arraylistที่ขยายArrayList, IteratorและListIteratorที่ให้peekAtNext()และpeekAtPrevious()วิธีการดำเนินการที่ชอบ: @Override public synchronized T peekAtNext() { T t = next(); previous(); return t; }
9 java  iterator 

5
เปลี่ยนวิธีคิดในการเตรียมการสำหรับการเขียนโปรแกรมการทำงาน
เมื่อเปลี่ยนเป็นรูปแบบการทำงานของการเขียนโปรแกรมหลังจากมาจากขั้นตอนและ OOP ฉันจำเป็นต้องรู้อะไรบ้างเกี่ยวกับ "วิธีคิดแบบใหม่นี้" คุณจะเตรียมตัวสำหรับการดำน้ำในโลก FP และทำให้เป็นครั้งแรกได้อย่างไร พื้นฐานในการเรียนรู้และการตั้งค่าตรงก่อนคืออะไร?


6
ฉันควรใช้ตัวพิมพ์ชื่อเรื่องใน URL หรือไม่
ขณะนี้เรากำลังตัดสินใจเรื่องการตั้งชื่อที่สอดคล้องกันในเว็บไซต์ที่มีเว็บแอปพลิเคชั่นหลายตัว ในอดีตฉันได้รับการสนับสนุนจาก 'อักษรตัวเล็กทั้งหมด!' เมื่อสร้าง URL: http://example.com/mysystem/account/view/1551 อย่างไรก็ตามในปีที่แล้วหรือสองปีโดยเฉพาะตั้งแต่ฉันเริ่มใช้ ASP.NET MVC และมีการติดต่อกับ URL ที่ใช้ REST มากขึ้นฉันกลายเป็นแฟนตัวยงของการใช้อักษรตัวแรกของแต่ละส่วน / คำภายใน URL เนื่องจากมันทำให้ อ่านง่ายกว่า (imho) http://example.com/MySystem/Account/View/1551 เราไม่ได้อยู่ในสถานการณ์ที่ผู้คนจำเป็นต้องอ่านหรือสามารถเข้าใจ URL ดังนั้นจึงไม่ใช่ไดรเวอร์ต่อ se สิ่งสำคัญที่เราตามมาคือแนวทางที่สอดคล้องกันซึ่งมีเหตุผลและสมเหตุสมผล มีมาตรฐานใดบ้างที่ประกาศว่าเป็นการดีที่จะทำอย่างใดอย่างหนึ่งหรืออีกวิธีหนึ่งหรือปัญหาที่เราอาจพบในการตั้งค่า (อย่างน้อยทันสมัยในปัจจุบัน) ที่จะเลือกการตั้งค่ามากกว่าอีกหรือไม่? ฉันทามติทั่วไปสำหรับการอภิปรายครั้งนี้คืออะไร?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.