banner เว็บนี้เป็นเว็บส่วนตัวนะครับ ไม่ใช่ทางการอะไรมากมายแค่อยากทำ และไม่แน่ใจข้อมูลเท่าไหร่แต่กลั่นกรองมาแล้วผิดพลาดขออภัย.

Updates: Currently I'm testing on wordpress 2.5. I hope to release this theme real soon. So stay tune and dont forget to subscribe my blog. You can add more text here. Overflown text will be hidden, so make sure to end your text just right here. More...
Jul
12th

Software Development Life Cycle

Author: Mentor | Files under Introduction to Software Engineering

Software Development Life Cycle หรืก Software Development Process
คือ โครงสร้างการพัฒนาซอฟต์แวร์โดยการพัฒนาพวกนี้นะจะมีโมเดลเป็ฯตัวกำกับ แต่โมเดลนี่ไม่ใช่อะไรที่สำคัญมากมายหรอกนะ เพียงแต่เป็นตัวให้เห็นรุปที่ชัดขึ้นเท่านั้นว่ารูปแบบการทำงานของการพัฒนา ส่วนนี้เป็นอย่างไรซึ่งส่วนมากจะเป็นทฤษฏีที่เราจะต้องเอาไป ประยุกต์เอาเองนะ และการพัฒนาซอฟต์แวร์จริงๆแล้วอะนะ ไม่จำเป็นที่จะยึดหลักของโมเดลตัวใดตัวหนึ่งตัวเดี๋ยวนะครับ อาจจะเป็นการรวมกันของหลาย
โมเดลได้เช่น ถ้าเราจะทำโดยใช้ Waterfall Model เป็นหลักในแต่ละตัวของ Waterfall Model เราอาจจะใช้ V-Shaped เข้ามาช่วยก็ได้นะ แต่ส่วนมากเค้าจะบรรยายออกมาเป็นโมเดลหลักและย่อยก่อนนะ ดังนั้นการจะใช้โมเดลได้นั้นเราต้องเป็นพวกที่มีการวิเคราะห์ดีซึ่งจะไปอยู่ ในระดับของProject Manager นะครับ
ส่วนต่างๆของการ พัฒนซอฟต์แวร์ หรือ สเต็ปการพัฒนาซอฟต์แวร์นะ หลักมีดังนี้(บอกไว้ก่อนนะว่าบางตำราอาจไม่ใช่งี้แต่นี่อ้างอิงมาจากวิกินะ)
Domain Analysis
ภาษา ไทยเรียกว่าไรไม่รู้ คริๆ  ไอ้ตัวนี้นะส่วนมากมันจะเป็นตัวแรกของการพัฒนาเลยไม่ว่าจะเป็นการตอ่เติม ระบบที่มีอยู่แล้วหรือว่าจะเห็นการสร้างระบบใหม่ขึ้นมาเลย หัวข้อนี้นะมันจะอยู่ในวิชา Requirement Analysis ด้วยนะครับ อ้าาาาจะอธิบายยังไงดีนะ อืม เอาเป็นว่า ในส่วนนี้นะคือทำความคุ้นเคยกับระบบ และการเก็บความต้องการของลูกค้า(user)ว่าลูกค้าของเราต้องการระบบแบบไหน อะในส่วนแรกก่อนนะครับคือว่าทำความคุ้นเคยกับระบบ คือ เวลาเราจะพัฒนาซอฟต์แวร์ ขึ้นมานั้นเราจะพัฒนาได้เลยใหม ในเมื่อซอฟต์แวร์ที่เราจะพัฒนานั้นไม่ได้อยู่ในสายงานของเราเช่น เราเป็น Software Engineer [...]


Jul
12th

Software Principles

Author: Mentor | Files under Introduction to Software Engineering

Principle ของ Software อันที่จริงมันก็เป็นสิ่งที่ผมเรียนมาตอนปี 1 แล้วนะ มา ณ ตอนนี้ก็ปี 3 แล้วล่ะ ไงก็จะลองอธิบายเพื่อให้น้องๆได้เข้าใจแล้วกันนะ ใครมีข้อเสนออะไรก็ comment เลยนะครับ ช่วยๆกันผมเองก็หาข้อมูลอยู่หลายที่นะกว่าจะเข้าใจแต่ละตัวได้ อืมไปลองดูกันเลยละกันเนอะ
1. Rigor and formality
Rigor นี่จะช่วยให้การพัฒนาซอฟต์แวร์ของเราน่ะมีแนวโน้มไปในทางที่ถูกต้องมากขึ้น หรือเหมือนกับเป็นตัวที่ทำให้เราสามารถมั่นใจได้ว่านี่คือสิ่งที่ถูกสิ่งที่ ดีในการพัฒนาซอฟต์แวร์ มันจะสัมพันธ์กับคำว่า Formality หรือ สิ่งที่เป็นทางการ คือตัวนี้จะเป็น Rigor ด้วยเหมือนกันแต่จะเป็น Rigor ในระดับที่สูงที่สุดคือมีการ พิสูจน์ออกมาเป็นทางสมการคณิตศาสตร์ หรือออกมาในรูปมาตรวัดต่างๆที่ใช้คณิตศาสตร์เข้ามาเกี่ยวข้อง ความแตกต่างของ Rigor กับ Formality นะครับ ง่ายๆเลยคือว่าดูว่า Formality จะมี คณิตศาสตร์เข้ามาเกี่ยวข้องเพื่อให้เป็นทางการมากที่สุด
ตัวอย่าง : ลิฟต์
Rigor and formality : ความเป็น Formality ของตัวนี้คือบอกได้ว่าลิฟต์จะจุผู้โดยสายได้กี่คนโดยหน่วยเป็นน้ำหนักรวม, ลิฟต์จะหยุดด้วยความเร็วเท่าไหร่มีระยะการเบรคเท่าไหร่ นี่เป็นตัวอย่างของ ลิฟต์ ที่ใช้ [...]


Jul
12th

Software Quality ISO:9126

Author: Mentor | Files under Introduction to Software Engineering

Functionality
Suitability: ตรงกับงานนั้นเช่น ATM ต้องกดเงินได้ก็คือต้องจ่ายเงินออกมาได้ ไม่ใช่กดไปดันได้น้ำปั่นออกมา
Accurateness:ทำหน้าที่ได้ถูกต้อง เช่น ATM ง่ะ กดเงินไป 30000 ก็ต้องได้ 30000 ไม่ใช่ได้มา 300 งั้นถือว่าไม่ถูก
Interoperability:ความสามารถในการที่จะติดต่อกับระบบอื่นได้โดยไม่มีปัญหาหรือปัญหาน้อยที่สุด
Compliance:ความสามารถของซอฟต์แวร์เป็นไปตามข้อกำหนดของที่ต่างๆเช่น ราชการ หรือว่า บริษัทนั้นๆ(?_?)
Security:จะต้องมีความปลอดถัยจากพวกที่ไม่มีสิทธิ์ หรือที่เรียกว่า unauthorized user ทำการ unauthorized access
Reliability
Maturity: ให้ความสำคัญกับ failure ของ ซอฟต์แวร์ที่เกิดขึ้นว่าบ่อยแค่ไหน
Fault tolerance: คือจะต้องมีการจัดการเกี่ยวกับข้อผิดพลาดที่เกิดขึ้นเช่นถ้าระบบล้มไปจะมีการทำอย่างไรมีการสำรองใหม?
Recoverability: คือความสามารถที่จะเรียกระบบที่ล้มไปนั้นกลับคืนมาได้ในเวลารวดเร็วและรวมไปถึงข้อมูลที่อาจหายไป
Usability
Understandability:ความง่ายของซอฟต์แวร์ที่ใช้งานความง่ายในการเรียนรู้การใช้
Learnability:ความ สามารถในการเรียนรุ้ของผู้ใช้ต่อซอฟต์แวร์ว่าง่ายแค่ไหนหรือว่าซอฟต์แวร์นี้ เหมาะกับบุคคลระดับไหนเช่น เรื่อง ควบคุม ดาวเทียมก็ต้องกับพวกที่มีความรู้จริงๆไม่ใช่ให้นักบัญชีไปใช้
Operabilty:ง่ายต่อการใช้งานแบบว่าถ้าต้องให้มีการกรอกข้อมูลอะไรหลายๆอันกับการกรอกนิดหน่อยแล้วใช้ได้หมดเลยเป็นต้น
Efficiency
Time behavior: ความสามารถในเรือ่งของเวลาว่าทำงานไว
Resource behavior:จะเน้นเรือ่งการใช้ทรัพยากรต่างๆเช่น HD หรือพวก bandwidth
Maintainability
Analyzabiltiy:สามารถที่จะบอกต้นตอของความเสียหายได้ว่าเกิดมาจากไหน
Changeability:รองรับการเปลี่ยนแปลงได้
Stability:ต้องมีความเป็นอิสระคือว่าคงทนไม่โดนผลกระทบง่ายๆจากการเปลี่ยนแปลง
Testability: ต้องสามารถตรวจสอบได้ง่าย
Portability
Adaptability:ความสามารถที่จะนำซอฟต์แวร์นี้ไปใช้ในระบบอื่นได้
Installability:สามารถที่จะเอาไปลงในระบบได้ไม่ใช่ว่าทำงานได้แต่ไม่สามารถติดตั้งได้นะ
Conformance:เหมือนเป็นมาตรฐานที่ใช้ร่วมกันได้เช่น ฐานข้อมูลก็ต้องขึ้นตรงกับพวก sql น่ะ
Replaceabilty:เป็นคุณสมบัติที่สามารถต่อเติมซอฟต์แวร์ได้ และมีการเปลี่ยนแปลงได้ง่ายด้วย

The full table of Characteristics [...]


Jul
9th

Hello world!

Author: Mentor | Files under Uncategorized

Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!