คำถามติดแท็ก software

ซอฟต์แวร์คอมพิวเตอร์หรือเพียงซอฟต์แวร์คือชุดของโปรแกรมคอมพิวเตอร์และข้อมูลที่เกี่ยวข้องซึ่งให้คำแนะนำในการบอกคอมพิวเตอร์ว่าต้องทำอะไรและต้องทำอย่างไร

6
การสร้างเอกสารการออกแบบซอฟต์แวร์หลังจากการพัฒนานั้นเป็นธรรม
ปัจจุบันฉันกำลังศึกษาเรื่อง "การพัฒนาซอฟต์แวร์" ซึ่งฉันต้องพัฒนาซอฟต์แวร์ที่ซับซ้อนเป็นรายบุคคลใน บริษัท ภายนอก ทั้งหมดนี้จะต้องทำในลักษณะที่มีโครงสร้างการสร้างเอกสารที่เกี่ยวข้องทั้งหมด สำหรับโครงการนี้ฉันเลือกทำงานกับเอกสารมาตรฐาน IEEE: เอกสารข้อกำหนดซอฟต์แวร์ (SRS), เอกสารสถาปัตยกรรมซอฟต์แวร์ (SAD) และเอกสารออกแบบซอฟต์แวร์ (SDD) แม้ว่าจะสอนเป็นอย่างอื่นในโรงเรียนสำหรับโครงการนี้ฉันเลือกที่จะสร้าง SDD หลังการพัฒนา (แทนที่จะเป็นก่อนหน้านี้) เหตุผลของฉันคือ บริษัท ที่ฉันฝึกงานได้ให้คำแนะนำฉันในการสร้างซอฟต์แวร์ที่ซับซ้อนขึ้นซึ่งเป็นไปตามข้อกำหนดที่กำหนดในแบบทดลอง เนื่องจากจำนวนเสรีภาพที่พวกเขาให้แก่ฉันในคำจำกัดความของโครงการแทบไม่มีอะไรแน่นอนและสามารถพบได้ดีที่สุดในขณะที่ทดลองในกระบวนการพัฒนา นอกจากนี้ฉันกำลังสร้างซอฟต์แวร์ในลักษณะส่วนบุคคลมันจะไม่มีประโยชน์กับคนอื่น ๆ ใน บริษัท สำหรับฉันที่จะทำให้การออกแบบซอฟต์แวร์นี้มาก่อน ทำมันก่อนก็จะเสียค่าใช้จ่ายเป็นจำนวนมากเวลาที่จะเปลี่ยนมันในภายหลังที่ผมสามารถแน่ใจได้ว่ามีความไม่แน่นอนในโครงการการออกแบบที่ฉันทำก่อนจะต้องมีการเปลี่ยนแปลงไปมาก สิ่งนี้รู้สึกต่อต้านฉัน นี่เป็นเหตุผลที่ดีในการสร้าง SDD หลังจากการพัฒนาหรือไม่? ถ้าไม่จะมีเหตุผลที่ดีสำหรับสิ่งนั้นหรือไม่? แก้ไข: เหตุผลในการสร้าง SDD หลังจากนั้นจะทำให้นักพัฒนาในอนาคตสามารถดำเนินโครงการต่อไปได้ ฉันจะไม่สามารถทำโครงการทั้งหมดให้เสร็จในช่วงเวลาที่สำเร็จการศึกษาดังนั้นนักพัฒนาซอฟต์แวร์รายอื่นจะต้องดำเนินการตามรหัสฐานปัจจุบันต่อไป

2
ฉันควรทำตามแนวทางใดในขณะออกแบบห้องสมุด?
ฉันกำลังทำงานในโครงการ Arduino โดยใช้ Uno โครงการมีรหัสจำนวนมาก ฉันต้องการสร้างห้องสมุดและฉันสามารถแชร์ในภายหลังได้ ฉันควรทำตามแนวทางใดในขณะออกแบบห้องสมุด?

4
วิธีที่ดีที่สุดในการจัดการผู้จัดการที่ไม่ใช่ด้านเทคนิคที่ผิดพลาดและยังคงทำงานที่ดีได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน7 ปีที่ผ่านมา คำถามนี้อาจถูกพิจารณาว่าเป็นอัตนัย (ฉันได้รับคำเตือน) และถูกปิด แต่ฉันจะเสี่ยงเพราะฉันต้องการคำแนะนำ / ประสบการณ์ที่ดีเกี่ยวกับเรื่องนี้ ฉันอ่านต่อไปนี้ที่หน้า'เกี่ยวกับ'ของFog Creek Softwareบริษัท ที่Joel Spolskyก่อตั้งขึ้นและเป็น CEO ของ: ย้อนกลับไปในปี 2000 ผู้ก่อตั้ง Fog Creek, Joel Spolsky และ Michael Pryor กำลังมีปัญหาในการหาที่ทำงานที่โปรแกรมเมอร์มีสภาพการทำงานที่ดีและมีโอกาสได้ทำงานที่ยอดเยี่ยมโดยไม่ต้องหยุดงาน ทาง บริษัท เทคโนโลยีชั้นสูงทุกคนอ้างว่าพวกเขาต้องการโปรแกรมเมอร์ที่ยอดเยี่ยม แต่พวกเขาจะไม่เอาเงินของพวกเขาไปที่ปาก มันเริ่มต้นด้วยสภาพแวดล้อมทางกายภาพ (ที่มีหลายสิบ cubicles ติดอยู่ในห้องมืดเสียงดังที่พนักงานขายตะโกนบนโทรศัพท์ทำให้เป็นไปไม่ได้สำหรับนักพัฒนาที่จะมีสมาธิ) แต่มันลึกกว่านั้นมาก ผู้จัดการที่หวาดกลัวต่อการเปลี่ยนแปลงได้ปฏิบัติต่อความคิดใหม่ ๆ ว่าเป็นไวรัสที่แปลกประหลาดที่ถูกกักกัน ผู้จัดการจูเนียร์ที่มีความซับซ้อนของนโปเลียนยืนยันว่าสิ่งต่าง ๆ จะเกิดขึ้นอย่างแน่นอนหรือคุณถูกไล่ออก …

2
จะขาย / แจกจ่ายซอฟต์แวร์ของฉันได้อย่างไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ฉันกำลังทำงานในโครงการส่วนบุคคล (แอปพลิเคชันเดสก์ท็อป Windows) และเริ่มคิดที่จะพยายามหารายได้จากแอปพลิเคชัน (ไม่ใช่แหล่งที่มา) ฉันไม่ได้คาดหวังว่าจะทำเงินหนึ่งพันล้านเหรียญ แต่ใครจะรู้ล่ะ วิธีที่ง่ายที่สุดที่ฉันเห็นคือแจกฟรีและอนุญาตให้คนบริจาค แต่ฉันไม่แน่ใจว่าทำงานได้ดีเพียงใดหรือระบบชำระเงินใดที่ง่ายที่สุด / ดีที่สุด (Paypal) ถ้าฉันจะขายมันจะไปได้อย่างไร การกระจายบุคคลที่สาม? ขายจากเว็บไซต์ของฉันเองด้วย Paypal และตรวจสอบผู้รับเงิน สร้าง "ร้านค้า" ของฉันเองสำหรับแอปพลิเคชันหรือไม่ เป็นหลัก: คุณใช้วิธีใดในการทำเงินจากโครงการส่วนบุคคล (การบริจาคการขายและอื่น ๆ ) และคุณทำยังไงต่อ เคล็ดลับ? ขอบคุณสำหรับคำตอบของคุณ

1
การสร้างคำแถลงปัญหาที่ดี
<backstory> ฉันคว้าหนังสือที่ชื่อว่า Code Complete ที่ร้านหนังสือมือสองในวันก่อนเพราะฉันได้ยินว่ามันเป็นหนังสือที่ยอดเยี่ยมและเริ่มอ่านมัน หลังจากผ่านไปประมาณ 10 หน้าฉันก็รู้ว่าฉันโง่มากเกี่ยวกับโปรเจ็กต์ล่าสุดที่ฉันทำงานอยู่ ความกระจ่างเล็กน้อยที่ฉันควรใส่ในจุดนี้: ฉันไม่ได้ทำงานและนี่ไม่ใช่โรงเรียน มันเป็นเรื่องที่ไม่เป็นทางการเท่าที่จะได้รับ (ฉันก็เป็นคนเดียวที่ทำงานกับมันแม้ว่าฉันจะได้ถามคำถามเกี่ยวกับ SO เป็นครั้งคราว) ฉันอยู่มัธยมและพยายามสร้างชิ้นส่วนของซอฟต์แวร์ เรื่องสั้นสั้นฉันกระโดดเข้าไปในการเข้ารหัส (และตอนนี้กำลังตั้งคำถามกับการตัดสินใจบางอย่างที่ฉันทำในจุดที่ว่าโค้ดทำงานอย่างไร) ดังนั้นฉันจึงพยายามเริ่มต้นใหม่อย่างถูกวิธี </ backstory> ตกลงดังนั้นฉันพยายามสร้างคำแถลงปัญหาและฉันต้องการรู้ว่าเคล็ดลับดี ๆ นั้นควรรู้ว่าฉันมีดีหรือไม่ โค้ดสมบูรณ์กล่าวว่ามันควรจะไม่ใช่ทางเทคนิคและจากมุมมองของผู้ใช้ซึ่งฉันพยายามทำ คำแนะนำใด ๆ ที่จะได้รับการชื่นชมในการทำให้ดีขึ้น เท่าที่ฉันรู้ขณะนี้ยังไม่มีวิธีที่ดีในการจำลองวงจรคำนวณควอนตัมขนาดใหญ่ที่ซับซ้อนรวมถึงคุณลักษณะเช่น decoherence การแก้ไขข้อผิดพลาดการพัวพันและอัลกอริทึมบนคอมพิวเตอร์แบบคลาสสิคปล่อยให้อยู่คนเดียว เป็นที่รู้จักและเข้าถึงได้ง่าย ขออภัยถ้ามันแย่จริง ๆ นี่เป็นครั้งแรกที่ฉันทำสิ่งนี้ แก้ไข - ร่าง 2: ฉันเขียนใหม่โดยใช้คำแนะนำในความคิดเห็นและคำตอบ ไม่มีทางสำหรับนักทฤษฎีนักวิจัยและนักเรียนในสาขาการคำนวณควอนตัมเพื่อจำลองและทดสอบวงจรควอนตัมขนาดใหญ่ในวิธีที่ง่ายและมีประสิทธิภาพโดยไม่ต้องสร้างรหัสสำหรับการสมัคร เว็บแอปพลิเคชันที่ทำงานในเบราว์เซอร์ยอดนิยมที่มีส่วนต่อประสานที่เรียบง่ายซึ่งสามารถสร้างผลลัพธ์ได้อย่างแม่นยำเกี่ยวกับผลลัพธ์ของอัลกอริธึมควอนตัมรหัสการแก้ไขข้อผิดพลาดพัวพัน decoherence และด้านอื่น ๆ ทดสอบแนวคิดของพวกเขาและทำความเข้าใจกับการคำนวณควอนตัมให้ดีขึ้น

6
คำจำกัดความที่ดีที่สุดสำหรับการพึ่งพาการฉีดคืออะไร?
ทุกครั้งที่มีคนมาถึงฉันและขอให้ฉันกำหนด Dependency Injection ตามแนวคิดและอธิบายข้อดีข้อเสียของการใช้ DI ในการออกแบบซอฟต์แวร์ ฉันยอมรับว่าฉันมีปัญหาในการอธิบายแนวคิดของ DI ทุกครั้งที่ฉันต้องบอกพวกเขาเกี่ยวกับประวัติศาสตร์เกี่ยวกับหลักการความรับผิดชอบเดียวองค์ประกอบการสืบทอด ฯลฯ ใครสามารถช่วยฉันอธิบายวิธีที่ดีที่สุดในการอธิบาย DI สำหรับนักพัฒนา

4
แทนที่เงื่อนไขด้วยความหลากหลายในวิธีที่เหมาะสม?
พิจารณาสองคลาสDogและCatทั้งสองสอดคล้องกับAnimalโปรโตคอล (ในแง่ของภาษาการเขียนโปรแกรม Swift นั่นคืออินเทอร์เฟซใน Java / C #) เรามีหน้าจอที่แสดงรายการสุนัขและแมวที่หลากหลาย มีInteractorคลาสที่จัดการตรรกะเบื้องหลัง ตอนนี้เราต้องการที่จะนำเสนอการแจ้งเตือนการยืนยันให้กับผู้ใช้เมื่อเขาต้องการที่จะลบแมว อย่างไรก็ตามสุนัขจะต้องถูกลบทันทีโดยไม่มีการแจ้งเตือนใด ๆ วิธีที่มีเงื่อนไขจะมีลักษณะเช่นนี้: func tryToDeleteModel(model: Animal) { if let model = model as? Cat { tellSceneToShowConfirmationAlert() } else if let model = model as? Dog { deleteModel(model: model) } } รหัสนี้จะถูก refactored ได้อย่างไร? เห็นได้ชัดว่ามันมีกลิ่น

5
การแก้ไขข้อบกพร่องที่จะให้ผลประโยชน์คุ้มค่าที่สุด [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันต้องการทราบแนวคิดของการจัดหมวดหมู่ข้อบกพร่องโดยพิจารณาจากความง่ายในการแก้และประโยชน์ที่จะได้รับ ตัวอย่างเช่นหากมีข้อผิดพลาดซึ่งจะใช้เวลาหนึ่งชั่วโมง (ปิดไฟล์สองครั้งและอื่น ๆ ) เพื่อแก้ปัญหา vs อีกอันหนึ่งซึ่งใช้เวลาหนึ่งวัน แต่ถ้าการแก้ไขข้อผิดพลาดครั้งแรกนั้นไม่สำคัญมากฉันก็คงจะแก้ไขข้อที่สองได้ มีงานวิจัยใดบ้างที่จัดกลุ่มข้อบกพร่องโดยพิจารณาจากประโยชน์ด้านต้นทุนหรือตัวชี้วัดที่คล้ายคลึงกัน สมมติว่าเป็นไปได้ที่จะจัดหมวดหมู่บั๊กตามลักษณะของข้อบกพร่องเช่นความเสี่ยงด้านความปลอดภัยข้อผิดพลาดของหน่วยความจำข้อผิดพลาดเชิงตรรกะ ฯลฯ ในมิติอื่น ๆ อาจมีพารามิเตอร์เช่นความยากลำบาก (ง่ายปานกลางยาก) มีมิติอื่น ๆ ที่ฉันควรมองหาหรือไม่ เพื่อให้สิ่งต่าง ๆ ง่ายขึ้นฉันสามารถสรุปได้สองสิ่ง: โปรแกรมเมอร์ทุกคนในทีมมีความสามารถเท่าเทียมกันในการแก้ไขข้อบกพร่องใด ๆ ไม่มีกำหนด


3
การกำหนดราคาสำหรับรหัสแหล่งที่มาและผลิตภัณฑ์ซอฟต์แวร์เชิงปริมาณ
ต้องการปรับปรุงโพสต์นี้หรือไม่? ให้คำตอบโดยละเอียดสำหรับคำถามนี้รวมถึงการอ้างอิงและคำอธิบายว่าทำไมคำตอบของคุณถึงถูกต้อง คำตอบที่ไม่มีรายละเอียดเพียงพออาจแก้ไขหรือลบออกได้ ฉันกำลังจะทำโครงการ สิ่งนี้ต้องการให้ฉันเขียนโค้ดและตันของมัน ความต้องการของลูกค้าคือการส่งมอบซอร์สโค้ดทั้งหมดเมื่อสิ้นสุดโครงการ คำถามของฉันคือฉันจะหาจำนวนราคาสำหรับซอร์สโค้ดและผลิตภัณฑ์ซอฟต์แวร์ได้อย่างไร มีการวัดใดที่ตามมาเพื่อกำหนดราคาหรือไม่ ฉันจะหาปริมาณผลิตภัณฑ์ซอฟต์แวร์ได้อย่างไร ข้อมูลเพิ่มเติม:แอปพลิเคชันต้องทำงานทุกที่ในระบบปฏิบัติการใด ๆ รวมถึงแท็บเล็ต (iPad, แท็บ Galaxy, ฯลฯ ), สมาร์ทโฟน (iPhone, โทรศัพท์ Android, ฯลฯ ) และบนเว็บ (ตอนนี้คิดเท่าใดรหัสนี้จะเป็น)

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