[CUSE] ผ่านไปแล้วหนึ่งเทอมสำหรับการเรียนปริญญาโท

วันนี้วันที่ 21 พ.ค. 2560 วันสุดท้ายของในการเรียน นำเสนอ ทำ Project ของเทอมที่ 1 แล้ว มาสรุปดีกว่า ผ่านไป 5 เดือน ได้ทำอะไรไปบ้างครับ เริ่มที่เรื่องการของการเรียนก่อนเลย สำรับการเรียนที่นี้ภาคนอก กับภาคใน เรียนเท่าๆกันครับ โดยสำหรับในเทอมนี้วิชาที่ผมลงทะเบียนไว้ 4 ตัว มีดังนี้

  • Software Design & Development (SDD)
    • สิ่งที่ควรรู้มาก่อน - แผนภาพ UML, พออ่าน Code รู้เรื่อง และเข้าใจ
    • สิ่งที่เรียน - เรียนจากภาพใหญ่ไปเล็ก โดยมีสิ่งที่สนใจ ดังนี้ครับ
      • Quality Attribute ที่มีผลกับการ Architecture ของระบบ จากนั้นมีดูกันว่า Architecture มีกี่แบบอันไหน เหมาะกับการอะไร
      • ลงลึกไปอีกนิด คือ ทำ Use Case Realization(ทำให้มันเป็นจริง) เพือที่ได้ ตอนนี้ เรารู้ว่าอะไรเป็น Boundary / Control หรือ Entity
      • มาสนใจ Entity และ โดยใช้ Analysis Pattern มาเสริม โดยดูจากชนิดของ Entity ว่า People / Places / Things หรือ Event และหา Pattern ที่เหมาะสม และเติมเต็มให้สมบูรณ์
      • เมื่อปรับปรุง Enity แล้วถัดมามองว่า Code จริง กับ Database ต้องเขียนอย่างไร
      • ตอนท้ายสุดนี้ลงมาที่ Level ที่ลึกสุด คือ ในระดับ Coding ที่เรารู้ถึง Bad Smell แล้วเราทำให้มันดีขึ้นอย่างไร Refactor จากนั้นดูว่ามีอะไรปัญหาเข้ากับรูปแบบของปัญหาไหม เอา Design Pattern มาใช้ได้ไหม และถ้ามันต้องใช้บ่อยมากๆ ทำเป็น Framework เลย
    • วิชานี้มีงานกลุ่มในลักษณะ Random ด้วยนะ ให้อ่านศึกษาบทความ แล้วนำเสนอ ซึ่งทำให้เรารู้จักกับคนหลายๆคน มากขึ้น
    • สำหรับวิชานี้มี Term Project โดยปีนี้ อาจารย์ให้ Requirement อย่างหยาบ ให้ทำระบบ Grader ชื่อ MyCodeVille โดยมี 4 System ย่อย ได้แก่ Assignment / Editor / Compiler และ Peer Review โดยให้แต่ละกลุ่มไปพูดคุยกันเองว่าเชื่อมกันอย่างไร ทำแล้วออกมาในทิศทางไหนครับ
    • Textbook -
  • Formal Verification (FV)
    • สิ่งที่ควรรู้มาก่อน - คณิตศาสตร์พื้นฐานครับ พวก Set, Domain-Range (เดี๋ยวคาบแรก อ มีทวนให้ครับ)
    • สิ่งที่เรียน - ทำให้เราเข้าใจมากขึ้นว่า Software ในการ Release แต่ละครับ นอกจากต้องผ่านการทดสอบ Testing แล้ว มีการทวนสอบ (Verificaltion) ซึ่งมีหลายแบบตั้งแต่การ Proof ทางคณิตศาสตร์ ไปจนถึงการทวนสอบจากแบบจำลอง (Model Checking) ทั้งฝั่ง Software และ Hardware ครับ โดยตอนเรียนเน้นอันหลักมากกว่า โดยมีแนวคิดของจากนักวิจัยหลายๆคนครับ เริ่มจาก FSM >> Moore , Morely >> Prepositional  Logic >> Temporal Logic >> Kripke >> Buchi >> Petri Net สำหรับในวิชานี้ผมยังมองว่าโลกอุตสาหกรรม หากใครทำ Formal Verification ระบบนั้นต้องสำคัญๆมาก มีผลกับชีวิต นอกจากว่ามีคนมาสร้าง Idea ในการทำมันง่ายขึ้นครับ โดย Tools สำหรับวิชานี้
      • Spin มาสร้าง Model โดยภาษา Promela (ตอนแรกเผมเข้าใจว่าชื่อโกเมร่า 555) ทวนสอบโดยการเขียน LTL
      • CPN Tools ให้ลองลากๆ ทำ Colours Petri Net
    • สำหรับวิชานี้มี Term Project ด้วยครับ อาจารย์มีโจทย์มาให้ ตอนนี้กำลังเผาอยู่ 5555
    • Textbook -
  • Software Metric (SM)
    • สิ่งที่ควรรู้มาก่อน - มีหลายตัวเลย เหมือนวิชานี้ หลักๆ เป็นเรื่องสถิติ และพวกแคลคูลลัส
    • สิ่งที่เรียน - ทำให้องค์ความรู้ต่างๆ ที่เรียนในสายของ Software Engineering มันสามารถวัดได้ ประเมินได้ เพื่อทำให้เราสามารถเข้าใจ และปรับปรุงได้ครับ เช่น ในวิชา SDD มีพูดว่า Coupling & Cohesion เป็นยังไง ลักษณะ Code ที่ควรเป็น แต่ในวิชานี้มันต้องมีวิธีการ อาจะมาแทนกราฟลงสูตรเพื่อให้มันออกเป็นตัวเลข และตีความได้ว่า ค่าCoupling เท่านี้ และค่า Cohesion เท่านั้นถึงดี หรือ ประเมินเวลาของโครงการแล้วตัวเลข Effort มันลอยมาได้อย่างไร วิชานี้มีที่มาครับ สำหรับวิชานี้สูตรเยอะครับ โดยอ้างอิงจากหลายๆ Paper มัดรวมใน Textbook เล่มเดียวนะครับ แต่เนื้อหาเยอะพอสมควรเลย สำหรับวิชานี้ ถ้าใช้ชีวิตจริงมันแฝงลงไปกับพวก Tools แล้วครับ ไม่จำเป็นต้องมาวัดเอง หรือ คิดเองครับ อย่างตัว SonarQube มี Metric ที่เกี่ยวกับ Source Code เยอะครับ
    • วิชานี้มีนำเสนอบทความด้วย และทำ Term Project (อันนี้อาจารย์ไม่กำหนด Scope ของหัวข้อมานะครับ อ ให้คิดเองเลย)
    • Textbook- Software metrics : a rigorous and practical approach Second Edition (หนังสือเล่มนี้ถูกเก็บใน archive.org เป็นหนังสือมรดกของโลก มาหาเจอตอนใกล้สอบ Final) แต่อาจารย์ใช้เล่ม Third Edition นะครับ ลองไปหาๆดู
  • Software Process Engineering and Process Improvement (SPI)
    • สิ่งที่ควรรู้มาก่อน - ควรอยู่ในสายการทำ Software ไม่ว่าจะเป็นตำแหน่งอะไรก็ตาม (เรียนแล้วมี Inner มาจากภายใน ถ้าคุ้นเคยกับ Process ครับมาก่อน)
    • สิ่งที่เรียน - ทุกอย่างต้องดีมาจากภายในครับ ภายในที่นี้ หมายถึง ตัวกระบวนการ (Process) ที่เป็นขั้นอะไรอะไรบางอยางที่ทำให้เราได้ตามเป้าหมายครับ ซึ่งหากคนที่เคยทำงานจริงพบว่าหลายองค์กรมี Process แต่ทำไมของที่ออกมาถึงไม่ดีหละ การเรียนวิชาทำให้เราเข้าใจว่าการวางกระบวนการ(Process) นั้นสำคัญแค่ไหน  และมีผลกับองค์กรอย่างไร โดยในวิชาอิงกับมาตรฐานหลายตัวครับ
      • ISO12207 เพื่อให้ได้ Process Reference Model
      • ISO15504 เพื่อให้เรามี Assesment Framework ทำให้เรารู้ Capability และ Maturity ขององค์กร
      • ISO15939 / ISO 9126 อันนี้มันไปเสริมกับฝั่งของวิชา Software Metric ที่ต้องทำให้มันวัดแล้ว เพื่อที่นำข้อมูลเหล่านี้ไปใช้งานต่อได้
      • และ มาตรฐานอื่นๆ อีกหลายตัวครับ
    • วิชานี้มีนำเสนอบทความด้วย และทำ Term Project (อาจารย์ให้เลือกบริษัทของเพื่อนที่เรียนด้วยกันมา และมีวิเคราห์ว่ามีส่วนไหนควรวาง Process เพื่อทำให้มันดีขึ้น และดีขึ้นแล้ว เราต้องวัดมันได้ด้วย)
    • Textbook - มีหลายเล่มครับ แต่ผมคิดว่าชีทของอาจารย์ดีที่สุดแล้ว ถ้าไปอ่านมาตรฐานเองคงมืนๆ ไม่รู้ว่าจะเริ่มต้นยังไง
  • หมายเหตุ: หากใครไปดูหลักสูตร มันเป็นวิชาของเทอม 2 นะครับ (พอดีผมเข้าเรียนตอนเทอม 2)

ถัดจากเรื่องเรียนไปแล้วเป็นเรื่องอาหารการกิน เนื่องจากเรียนนอกเวลาทางคณะมีทำอาหารของว่างมาให้ มาทางส่วน

  • ของว่างก่อน 99.99% เป็นขนมปัง (อยากกินอย่างอื่นบ้าง 555)
  • อาหารเที่ยงถ้าเป็นพวก เมนูยำ กับมัสมั่นไก่อร่อย ที่เหลือเฉยๆ แต่อยากให้เปลี่ยนแกงเขียวหวานลูกชิ้นเป็นแกงเขียวหวานไก่ (ความชอบส่วนตัว)
  • ที่นี่มีแก้วกระดาษ เอาไว้กดน้ำด้วยนะ (หลายๆที่ไม่ใช้แล้ว เปลี่ยนแก้วพลาสติกแทน)

หอสมุดคณะวิศวะ ตอนแรกคิดว่าจะไม่ได้เข้ามาใช้แล้ว 555 โดยแอร์ชั้นล่างหนาวมากกก / The Box ร้อนมาก และห้องประชุมกับโปรเจคเตอร์สุดล้ำ

This slideshow requires JavaScript.

ต่อไปเป็นเรื่องอื่นๆ ที่ได้เรียนรู้

  • รู้จักกับเพื่อนใหม่ในสายงานต่างๆ ครับ ^__^
  • การแบ่งเวลาเวลาในงานกลุ่มจัดเวลาดีๆ นะครับ มันมีจุด Critical แน่ๆ อย่างผมเองใช้วิธีเอา Course Syllibus ของแต่ละวิชามาวางเทียบชนกันครับ
  • กินข้าวกับเพื่อร่วมงานน้อยลง เพราะ เอาเวลาไปทำการบ้านแทน
  • เวลา vs เงิน
    • ก่อนเข้ามาเรียน ผมเป็นคนขี้งกครับ รอรถเมล์จนวินาทีสุดท้ายครับ อย่างตอนกลับบ้าน ถ้าจากที่ทำงาน ผมนั่ง 149 สายนี้ขึ้นชื่อเรื่อง การรอคอยอย่างยาวนานครับ ผมยอมรอรถประมาณ 1 ชม ผมดีใจมากถ้าได้ไป Site เพราะ รถเมล์ที่กลับบ้านได้มีเยอะกว่าครับ
    • หลังเรียน
      • Money Power ยอมนั่ง Taxi ยอมประหยัดเวลา
      • Stregnth Power ยอมเดิน เดินไปขึ้นป้ายรถเมล์ที่ไกลออกไป เพื่อให้มีโอกาสเจอรถเมล์ได้มากขึ้ย หรือยอมต่อรถครับ
  • หลุดจากความกลัวกับการเริ่มสิ่งใหม่
  • เรื่องนึงมันทำให้ฉุดคิดอีกเรื่องได้ เพื่อนที่ ป โท เคยถามว่ามีเรื่องที่ดีใจมากๆ กับเสียใจที่สุด หรือป่าว ซึ่วเราตอบว่าไม่มี อาจจะคงเราคิดมาก คิดเผื่อเตรียมใจในทั้งสองด้าน มันเลยทำให้ตัวผมเอง ดูไม่มีเรื่องอะไรที่เป็นพิเศษ
  • รถเมล์สาย 507 คันสีฟ้าหมองหม่น กับคันสีเหลือง ต้นทางเดียวกัน ปลายทางเดือนกันราคาไม่เท่ากันนะ
  • อ๋อ และเรื่องน้ำหนักตอนนี้ 76.7 kg ถ้าเทียบกับ Blog ที่เขียนไว้ ก่อนเปิดเทอมครับ ขึ้นมา 3 ขีด