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

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

2
เกิดอะไรขึ้นกับ Defense Software Reuse System (DSRS)? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันได้อ่านบาง เอกสารจากช่วงต้นยุค 90 ที่เกี่ยวกับกระทรวงกลาโหมสหรัฐฯคิดริเริ่มนำมาใช้ซอฟต์แวร์ที่เรียกว่าซอฟต์แวร์ระบบการป้องกันการใช้ซ้ำ (DSRs) การกล่าวถึงครั้งล่าสุดที่ฉันพบได้คือในกระดาษจากปี 2000 - การสำรวจที่เก็บซอฟท์แวร์นำกลับมาใช้ใหม่ ระบบจัดเก็บซอฟต์แวร์ป้องกัน (DSRS) DSRS เป็นที่เก็บข้อมูลอัตโนมัติสำหรับการจัดเก็บและการเรียกคืนซอฟต์แวร์สินทรัพย์ที่ใช้ซ้ำได้ (RSAs) [14] ตอนนี้ซอฟต์แวร์ DSRS จะจัดการสินค้าคงเหลือของสินทรัพย์ที่นำกลับมาใช้ใหม่ได้ที่ศูนย์สนับสนุนการใช้ซ้ำซอฟต์แวร์เจ็ดแห่ง (SRSC) DSRS ทำหน้าที่เป็นจุดรวบรวมศูนย์กลางสำหรับ RSAs ที่มีคุณภาพและอำนวยความสะดวกในการนำซอฟต์แวร์กลับมาใช้ใหม่โดยมอบโอกาสให้นักพัฒนาในการจับคู่ความต้องการกับผลิตภัณฑ์ซอฟต์แวร์ที่มีอยู่ บัญชี DSRS มีให้สำหรับพนักงานของรัฐและบุคลากรผู้รับเหมาที่กำลังสนับสนุนโครงการของรัฐบาล ... ... ชุมชนซอฟต์แวร์ DoD กำลังพยายามที่จะเปลี่ยนรูปแบบวิศวกรรมซอฟต์แวร์จากวัฏจักรซอฟต์แวร์ปัจจุบันไปเป็นกระบวนการที่ขับเคลื่อนด้วยโดเมนเฉพาะสถาปัตยกรรมที่ยึดตามพื้นที่เก็บข้อมูลช่วยในการสร้างซอฟต์แวร์ [15] ในสภาพแวดล้อมที่เปลี่ยนแปลงนี้ DSRS มีศักยภาพสูงสุดในการเป็นพื้นที่เก็บข้อมูลที่นำมาใช้ซ้ำของ DoD เนื่องจากเป็นพื้นที่เก็บข้อมูลที่ใช้งานได้เฉพาะที่มีอยู่แล้วเท่านั้นที่มีอยู่ในสถานที่ปฏิบัติงานร่วมกันหลายแห่งทั่ว DoD ที่ตั้ง DSRS ทั้งเจ็ดแห่งรองรับผู้ใช้งานเกือบ 1,000 รายและแสดงรายการสินทรัพย์ที่นำกลับมาใช้ใหม่ได้เกือบ …

5
มันทำงานได้เมื่อผู้พัฒนาเป็นหัวหน้าผู้จัดการโครงการหรือไม่
ฉันอยู่ในช่วงการวางแผนของโครงการและฉันกำลังมองหาผู้จัดการโครงการ ฉันต้องการเขียนโค้ดและจับตาดูทุกส่วนของโครงการ อย่างไรก็ตามฉันมีความรู้สึกว่าผู้จัดการโครงการจะได้ผลลัพธ์ที่ดีกว่า ฉันมีตัวเลือกดังต่อไปนี้: 1) จัดการโครงการและไม่ใช่รหัส 2) จ้างผู้จัดการโครงการและรหัสด้วยตัวเอง ฉันกังวลว่าผู้จัดการโครงการจะรู้สึกถูกขัดขวางจากการมีเจ้าของโครงการในทีมพัฒนา ถ้าฉันทำโครงการทีมอาจล้มเหลวทำให้โครงการล้มเหลว เพื่อให้อยู่ในงบประมาณที่ฉันต้องมีส่วนร่วมในความสามารถอย่างใดอย่างหนึ่ง ไม่มีใครมีประสบการณ์กับสถานการณ์นี้คำแนะนำใด ๆ ข้อมูลเพิ่มเติม: นักพัฒนา 4 คนแต่ละคนรับผิดชอบพื้นที่เฉพาะ นักพัฒนาสามารถทำงานภายนอกได้ถ้าตกลงโดยผู้จัดการโครงการ

3
วิธีจัดการประมาณการสำหรับโปรแกรมเมอร์ที่เข้าร่วมทีม?
Iteration ได้เริ่มขึ้นแล้วโปรแกรมเมอร์ใหม่เข้าร่วมทีมงาน task X ได้รับการประเมินว่าใช้เวลา 30 ชั่วโมงโดยนักพัฒนาซอฟต์แวร์รายอื่น การปฏิบัติที่ดีที่สุดในสถานการณ์นี้คืออะไร? นักพัฒนาใหม่ทำงานโดยใช้การประมาณที่กำหนด (ความคิดที่ว่าความคลาดเคลื่อนใด ๆ จะได้รับการแก้ไขเมื่อมีการคำนวณความเร็ว) ใหม่ประมาณงานของนักพัฒนาหรือไม่ (ถ้าเป็นเช่นนั้นจะเกิดอะไรขึ้นถ้ามันสูงขึ้นอย่างมากและไม่เหมาะกับการทำซ้ำอีกต่อไป?) โยนมือของเราขึ้นแล้วกลับไปที่น้ำตก? อย่างอื่นอย่างสิ้นเชิง?
11 agile  estimation 

3
คุณจะวางฐานข้อมูลออนไลน์ได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ฉันมีคำถามเริ่มต้นเกี่ยวกับการพัฒนาเว็บ ฉันเคยมีประสบการณ์กับ JSP, Hibernate และ MAMP เพื่อสร้างระบบอย่างง่ายสำหรับการติดตามสินค้าคงคลังและการขาย แต่ทั้งหมดนี้ทำในเครื่องคอมพิวเตอร์เดียว ครั้งนี้ฉันต้องการสร้างระบบที่สามารถเข้าถึงได้ทางออนไลน์ มันจะช่วยให้แม่ของฉันติดตามธุรกิจของเธอทุกที่ที่เธอไป ดังนั้นจะมีลักษณะที่คล้ายกันเช่นการติดตามสินค้าคงคลังและการขาย ฉันเข้าใจว่าคุณต้องมีเซิร์ฟเวอร์ที่ต้องโฮสต์ไฟล์ทั้งหมดไว้ แต่ฉันไม่เข้าใจว่าคุณสามารถเข้าถึงฐานข้อมูลออนไลน์ได้อย่างไร หรือควรใช้แอปพลิเคชันหรือผลิตภัณฑ์ประเภทใด ปัจจุบันโฮสต์ของฐานข้อมูลของฉันคือ localhost จะทำให้มันออนไลน์เช่นที่คุณยังสามารถทำการ CRUD ได้อย่างไร มีคำแนะนำในการทำเช่นนี้?

8
แลปท็อปที่มีความละเอียดสูงแสดงว่าสำคัญสำหรับโปรแกรมเมอร์หรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ปิดให้บริการใน5 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันกำลังซื้อแล็ปท็อปเครื่องใหม่ที่ฉันจะใช้เป็นหลักในการเขียนโปรแกรม สองตัวเลือกที่น่าสนใจจริงๆสำหรับฉันคือAsus Zenbook UX31AและRetina Macbook Proใหม่ เห็นได้ชัดว่าจอแสดงผลความละเอียดสูงบนแล็ปท็อปเหล่านี้มีประโยชน์สำหรับความบันเทิงการแก้ไขภาพและอื่น ๆ คำถามของฉันคือ: จอแสดงผลเหล่านี้มีประโยชน์สำหรับโปรแกรมเมอร์หรือไม่? จอแสดงผลเหล่านี้สร้างรหัสให้อ่านง่ายขึ้นหรือไม่ พวกเขาจะสบายตาหรือหลังจากมองไปที่หน้าจอทั้งวัน?

5
เหตุใดจึงไม่มีภาษาที่มุ่งเน้นบริการ
แก้ไข: เพื่อหลีกเลี่ยงความสับสนเพิ่มเติม: ฉันไม่ได้พูดถึงบริการเว็บและเช่นนั้น ฉันกำลังพูดถึงการจัดโครงสร้างแอปพลิเคชันภายในไม่ใช่การสื่อสารของคอมพิวเตอร์ มันเกี่ยวกับการเขียนโปรแกรมภาษาคอมไพเลอร์และการขยายกระบวนทัศน์การเขียนโปรแกรมที่จำเป็น เดิม: ในฟิลด์การเขียนโปรแกรมที่จำเป็นเราเห็นกระบวนทัศน์สองรายการในช่วง 20 ปีที่ผ่านมา (หรือมากกว่า): object-oriented (OO) และ service-oriented (SO) ส่วนประกอบตาม (CB) กระบวนทัศน์ทั้งสองขยายกระบวนทัศน์การเขียนโปรแกรมที่จำเป็นโดยการแนะนำแนวคิดของโมดูล OO เรียกวัตถุเหล่านี้ (และคลาส) และให้พวกเขาสรุปข้อมูล (ฟิลด์) และโพรซีเดอร์ (เมธอด) เข้าด้วยกัน ดังนั้นในทางตรงกันข้ามแยกข้อมูล (บันทึก, ถั่ว, ... ) จากรหัส (ส่วนประกอบบริการ) อย่างไรก็ตามมีเพียง OO เท่านั้นที่มีภาษาการเขียนโปรแกรมซึ่งสนับสนุนกระบวนทัศน์ของมัน: Smalltalk, C ++, Java และอื่น ๆ ทั้งหมดที่เข้ากันได้กับ JVM, C # และอื่น ๆ ที่รองรับ NET., …

6
ทำไมเบราว์เซอร์ไม่รองรับ haml และ sass
เวลาที่ใช้ในการดาวน์โหลดเว็บไซต์จะลดลงอย่างมากและการแยกวิเคราะห์จะง่ายขึ้นเช่นกัน ทำไมภาษาเหล่านี้จึงไม่ถูกกำหนดให้เป็นมาตรฐาน? เห็นได้ชัดว่าพวกเขาดีกว่า raw html และ CSS ... เบราว์เซอร์เป็นสิ่งเดียวที่ทำให้เราห่างจากการกำจัดรหัส HTML / CSS ขั้นกลาง
11 html  css 

9
การออกแบบ OO ใดที่จะใช้ (มีรูปแบบการออกแบบ)
ฉันมีวัตถุสองชิ้นที่แสดงถึง 'บาร์ / คลับ' (สถานที่ที่คุณดื่ม / สังสรรค์) ในสถานการณ์หนึ่งฉันต้องการชื่อบาร์ที่อยู่ระยะทางสโลแกน ในสถานการณ์อื่นฉันต้องการชื่อบาร์, ที่อยู่, URL เว็บไซต์, โลโก้ ดังนั้นฉันจึงมีวัตถุสองชิ้นที่เป็นตัวแทนของสิ่งเดียวกัน แต่มีเขตข้อมูลที่แตกต่างกัน ผมชอบที่จะใช้วัตถุที่ไม่เปลี่ยนรูปเพื่อให้ทุกสาขามีการตั้งค่าจากตัวสร้าง ตัวเลือกหนึ่งคือการมีสองคอนสตรัคเตอร์และโมฆะสาขาอื่น ๆ เช่น: class Bar { private final String name; private final Distance distance; private final Url url; public Bar(String name, Distance distance){ this.name = name; this.distance = distance; this.url = null; } public …

5
การรับข้อมูลจากหน้าเว็บด้วยวิธีที่มั่นคงและมีประสิทธิภาพ
เมื่อเร็ว ๆ นี้ฉันได้เรียนรู้ว่าการใช้ regex เพื่อแยก HTML ของเว็บไซต์เพื่อรับข้อมูลที่คุณต้องการไม่ใช่วิธีการที่ดีที่สุด ดังนั้นคำถามของฉันง่าย: อะไรคือสิ่งที่ดีที่สุด / มีประสิทธิภาพมากที่สุดและเป็นวิธีที่มีเสถียรภาพโดยทั่วไปในการรับข้อมูลนี้ ฉันควรทราบว่า: ไม่มี API ไม่มีแหล่งข้อมูลอื่นที่ฉันสามารถรับข้อมูลได้ (ไม่มีฐานข้อมูลฟีดและอื่น ๆ ) ไม่สามารถเข้าถึงไฟล์ต้นฉบับได้ (ข้อมูลจากเว็บไซต์สาธารณะ) สมมติว่าข้อมูลเป็นข้อความปกติแสดงในตารางในหน้า html ตอนนี้ฉันใช้ python สำหรับโปรเจคของฉัน แต่ภาษา / การแก้ปัญหา / เคล็ดลับก็ดี เป็นคำถามด้าน: คุณจะไปเกี่ยวกับมันอย่างไรเมื่อหน้าเว็บถูกสร้างโดย Ajax สาย? แก้ไข: ในกรณีของการแยกวิเคราะห์ HTML ฉันรู้ว่าไม่มีวิธีที่มั่นคงในการรับข้อมูล ทันทีที่มีการเปลี่ยนแปลงหน้าตัวแยกวิเคราะห์ของคุณจะทำเพื่อ สิ่งที่ฉันหมายถึงด้วยความเสถียรในกรณีนี้คือ: วิธีที่มีประสิทธิภาพในการแยกวิเคราะห์หน้าเว็บที่ส่งผลลัพธ์เดียวกันให้ฉันเสมอ (สำหรับชุดข้อมูลชุดเดียวกันอย่างชัดเจน) โดยที่หน้าไม่เปลี่ยนแปลง
11 data  parsing 

7
สรุปการใช้ตัวแปรภายในโค้ด
ฉันอยากจะรู้ว่ามันเป็นการปฏิบัติที่ดีที่จะทำให้ตัวแปรทั่วไป (ใช้ตัวแปรเดียวเพื่อเก็บค่าทั้งหมด) ลองพิจารณาตัวอย่างง่ายๆ Strings querycre,queryins,queryup,querydel; querycre = 'Create table XYZ ...'; execute querycre ; queryins = 'Insert into XYZ ...'; execute queryins ; queryup = 'Update XYZ set ...'; execute queryup; querydel = 'Delete from XYZ ...'; execute querydel ; และ Strings query; query= 'Create table XYZ ... '; execute …

4
อัลกอริธึมเวลาแบบเอ็กซ์โพเนนเชียลกรณีทั่วไปในซอฟต์แวร์การผลิตเป็นอย่างไร
ฉันรู้ว่าอัลกอริธึมเวลาเอ็กซ์โปเนนเชียลควรหลีกเลี่ยงโดยทั่วไป แต่บางครั้งก็จำเป็น กรณีเป็นพนักงานขายเดินทาง อัลกอริทึมดังกล่าวพบได้บ่อยแค่ไหนในซอฟต์แวร์การผลิต? โดยทั่วไปแล้วกรณีเหล่านี้จำเป็นหรือเป็นผลมาจากงานเร่งด่วนหรือไม่? ฉันเข้าใจว่าหลายคนสามารถแก้ไขได้ด้วยการแก้ปัญหาที่ดี โดยทั่วไปแล้วจะทำอะไรกับสิ่งที่ไม่สามารถทำได้?
11 algorithms 

3
แนวทางปฏิบัติที่ดีที่สุดของ Scala หรือ Clojure Functional Programming
ฉันทำการเข้ารหัสด้วยตนเองจำนวนมากได้รับประสบการณ์จากโมเดลการเขียนโปรแกรมแบบขนาน: นักแสดงซอฟต์แวร์หน่วยความจำทรานแซคชันซอฟต์แวร์การไหลของข้อมูล เมื่อฉันพยายามใช้สถาปัตยกรรมเหล่านี้กับชีวิตจริง - ลงในเว็บแอปพลิเคชันที่โหลดสูง - โมเดลใด ๆ ไม่สนับสนุนความทนทานและความคงทนของข้อมูล ภารกิจในชีวิตจริงต้องการบันทึกข้อมูลในตอนท้าย ซึ่งหมายความว่าฉันยังต้องใช้ DB และดักการซิงค์ฐานข้อมูลคอขวดที่ปรับขยายได้ที่เป็นไปได้เป็นต้น ไม่มีใครรู้ตัวอย่างที่ดีของสถาปัตยกรรม (src หรือข้อความหรือไดอะแกรมหรือพิมพ์เขียว) ที่ใช้Akka Actors หรือ Software Transaction Memory และใช้ความคงทนในตอนท้าย? ตัวอย่าง / ความคิดที่ดีสำหรับ Transactional Memory, Actors, Dataflow, Tuple ช่องว่างในแอปพลิเคชันในชีวิตจริงยินดีต้อนรับ

7
มีความคิดเห็นเพิ่มเติมดีกว่าในสภาพแวดล้อมที่มีการหมุนเวียนสูงหรือไม่
วันนี้ฉันกำลังคุยกับเพื่อนร่วมงาน เราทำงานกับโค้ดสำหรับสองโครงการที่แตกต่างกัน ในกรณีของฉันฉันเป็นคนเดียวที่ทำงานกับรหัสของฉัน ในกรณีของเธอหลาย ๆ คนทำงานใน codebase เดียวกันรวมถึงนักเรียนที่เข้าร่วมและเดินทางมาเป็นประจำ (ระหว่าง 8-12 เดือน) เธอบอกว่าเธอเป็นคนใจกว้างกับความคิดเห็นของเธอทำให้พวกเขาไปทั่วสถานที่ เหตุผลของเธอคือช่วยให้เธอจำได้ว่าสิ่งต่างๆอยู่ที่ไหนและทำอะไรเนื่องจากรหัสส่วนใหญ่ไม่ได้เขียนโดยเธอและอาจมีการเปลี่ยนแปลงโดยคนอื่นที่ไม่ใช่เธอ ในขณะเดียวกันฉันพยายามลดความคิดเห็นในรหัสของฉันให้เล็กที่สุดในที่ที่มีวิธีแก้ไขปัญหาหรือข้อบกพร่อง อย่างไรก็ตามฉันมีความเข้าใจที่ดีขึ้นเกี่ยวกับรหัสโดยรวมและสามารถควบคุมได้โดยตรง ความคิดเห็นของฉันในความคิดเห็นนั้นควรน้อยที่สุดและรหัสควรบอกเล่าเรื่องราวส่วนใหญ่ แต่เหตุผลของเธอก็สมเหตุสมผลเช่นกัน มีเหตุผลอะไรบ้างในการให้เหตุผลของเธอ? มันอาจทำให้โค้ดยุ่งเหยิง แต่ท้ายที่สุดมันก็มีประโยชน์ทีเดียวหากมีหลายคนกำลังทำมันในระยะสั้นถึงปานกลาง

2
มีการศึกษาทางวิทยาศาสตร์เกี่ยวกับ TDD ที่ใช้ต้นทุนการเป็นเจ้าของโดยรวมสำหรับผลิตภัณฑ์ในการวัดหรือไม่?
เมื่อฉันอ่านบทสรุปของงานก่อนหน้านี้ในDogsa T, Batic D. ประสิทธิผลของการพัฒนาด้วยการทดสอบ: กรณีศึกษาอุตสาหกรรม วารสารคุณภาพซอฟต์แวร์ 2011; 19 (4): 643-661 มันทำให้ฉันหลงไหลว่าการวัดที่ใช้ในการศึกษาจำนวนมากรอบ ๆ TDD นั้นขึ้นอยู่กับสิ่งต่าง ๆ เช่นบรรทัดของรหัสข้อบกพร่องและเวลาที่ใช้ในการพัฒนา มีการศึกษาใดบ้างที่มุ่งเน้นไปที่ต้นทุนการเป็นเจ้าของโดยรวมสำหรับผลิตภัณฑ์ที่ได้รับการพัฒนาโดยใช้ TDD กับการพัฒนาแบบดั้งเดิมหรือการทดสอบแบบดั้งเดิมหรือไม่? ฉันสนใจเป็นพิเศษในค่าใช้จ่ายทั้งหมดในการได้มาและต้นทุนการดำเนินงาน

5
แปลงรายการค่าเร่งรัด 24 ชั่วโมงเป็นทั้งหมดโดยชั่วโมง
สมมติว่าฉันมีรายการค่าการตกตะกอนเป็นชั่วโมงแต่ละคนแสดงว่าฝนตกมากแค่ไหนใน 24 ชั่วโมงก่อนเรียงตามวันที่ ตัวอย่างเช่น: { '2012-05-24 12:00': 0.5, // .5" of rain from 5/23 12:00 - 5/24 11:59 '2012-05-24 11:00': 0.6, // .6" of rain from 5/23 11:00 - 5/24 10:59 '2012-05-24 10:00': 0.6, // .6" of rain from 5/23 10:00 - 5/24 09:59 ... '2012-05-23 10:00': 0 } มีกลยุทธ์ …

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