ประมวลรายวิชา (Course Syllabus)

 

1.        รหัสรายวิชา

2301367  (2301473 เดิม)

2.        จำนวนหน่วยกิต (Course Credit)

3

3.        ชื่อวิชา (Course Title)

Software Engineering Methodology and Development

4.        คณะวิทยาศาสตร์

ภาควิชาคณิตศาสตร์

5.        ภาคการศึกษา

ปลาย

6.        ปีการศึกษา

2548

7.        ชื่อผู้สอน

ผู้ช่วยศาสตราจารย์ ดร. สมใจ  บุญศิริ

8.        เงื่อนไขรายวิชา

 

8.1.      รายวิชาที่ต้องเรียนมาก่อน

8.2.      รายวิชาบังคับร่วม

8.3.      รายวิชาควบ

2301365 หรือ 2301372

-

-

9.        สถานภาพของวิชา

วิชาเลือกของหลักสูตรวท.บ. สาขาวิชาวิทยาการคอมพิวเตอร์

10.     ชื่อหลักสูตร

วิทยาศาสตรบัณฑิต สาขาวิชาวิทยาการคอมพิวเตอร์

11.     วิชาระดับ

ปริญญาตรี

12.     จำนวนชั่วโมงที่สอนต่อสัปดาห์

3

 

 

13.     เนื้อหารายวิชา (Course Description) ตามที่ปรากฏในหลักสูตร

Software life-cycle; software requirements and specifications; software design; programming techniques; software development environment; software verification and validation; management including programming team organization; documentation.

14.     ประมวลการเรียนรายวิชา (Course Outline) กำหนดรายละเอียดเกี่ยวกับ

14.1.     วัตถุประสงค์ทั่วไป และ/หรือ วัตถุประสงค์เชิงพฤติกรรม เพื่อให้นิสิตสามารถ

1.        อธิบายหลักการและขั้นตอนของวงจรการพัฒนาซอฟต์แวร์

2.        อธิบายหลักการของการรวบรวมความต้องการซอฟต์แวร์ รวมถึงข้อกำหนดซอฟต์แวร์

3.        อธิบายหลักการและขั้นตอนในการออกแบบซอฟต์แวร์

4.        พัฒนาซอฟต์แวร์โดยใช้เทคนิคต่างๆ

5.        อธิบายผลกระทบของสภาพแวดล้อมในการพัฒนาซอฟต์แวร์

6.        วางแผนและบริหารจัดการโครงการพัฒนาซอฟต์แวร์ได้

7.        จัดทำเอกสารประกอบการพัฒนาซอฟต์แวร์แต่ละขั้นตอนได้อย่างมีประสิทธิภาพ

8.        ทำงานร่วมกันเป็นกลุ่มได้อย่างมีประสิทธิภาพ

 

 

14.2.     เนื้อหารายวิชาโดยละเอียด  และจำนวนชั่วโมงที่สอนโดยประมาณ

Software and Software Engineering

  • The nature of software
  • What is software engineering
  • Software quality
  • Software engineering projects

2 hours

Review of object orientation

  • What is object orientation
  • Classes and objects
  • Instance variables
  • Methods, operations and polymorphism
  • Concepts that define object orientation

3 hours

Basing software development on reusable technology

  • Reuse: building on the work and experience of others
  • Incorporating reusability and reuse into software engineering
  • Frameworks: reusable subsystems
  • The client-server architecture
  • The Object Client-Server Framework (OCSF)

4 hours

Developing requirements

  • Domain analysis
  • The starting point of software projects
  • Defining the problem and the scope
  • What is a requirement?
  • Types of requirements

4 hours

Modeling with classes

  • What is UML?
  • Essentials of UML class diagrams
  • Associations and multiplicity
  • Generalization
  • Object diagrams
  • More advance features of class diagrams
  • The basics of Object Constraint Language (OCL)
  • The process of developing class diagrams

6 hours

Using design patterns

  • Introduction to patterns
  • The Abstraction-Occurrence pattern
  • The General Hierarchy pattern
  • The Player-Role pattern
  • Etc.

4 hours

 

Focusing on users and their tasks

  • User-centered design
  • Characteristics of users
  • The basic of user interface design
  • Usability principles
  • Evaluating user interfaces

2 hours

 

 

 

 

 

Modeling interactions and behavior

  • Interaction diagrams
  • State diagrams
  • Activity diagrams
  • Implementing classes based on interaction and state diagrams

3 hours

Architecting and designing software

  • The process of design
  • Principles leading to good design
  • Techniques for making good design decisions
  • Software architecture
  • Architectural patterns
  • Writing a good design document

8 hours

 

 

 

 

Testing and inspecting to ensure high quality

  • Basic definitions
  • Effective and efficient testing
  • Defect in ordinary algorithms
  • Defect in numerical algorithms
  • Writing formal test cases and test plans
  • Strategies for testing large systems
  • Inspections
  • Quality assurance in general

5 hours

 

 

Managing the software process

  • What is project management?
  • Software process models
  • Cost estimation
  • Building software engineering teams
  • Project scheduling and tracking
  • Contents of project plan

4 hours

14.3.     วิธีการเรียนการสอน

·        บรรยาย อภิปราย และถาม- ตอบในชั้นเรียน

·        การบรรยายพิเศษโดยผู้เชี่ยวชาญด้านวิศวกรรมซอฟต์แวร์

·        การฝึกปฏิบัติโดยการทำโครงงาน

·        การทดสอบ 2 ครั้ง

14.4.     สื่อการสอน          เอกสารประกอบการสอนที่เตรียมโดย  Microsoft PowerPoint

14.5.     การวัดผลการเรียน

·        รายงานและ/หรือการมีส่วนร่วมในชั้นเรียน                              40 คะแนน

·        สอบกลางภาค                                                                                30 คะแนน

·        สอบปลายภาค                                                                               30 คะแนน

15.     รายชื่อเอกสารอ่านประกอบ

15.1.   หนังสืออ่านบังคับ

1.        Timothy C. Lethbridge and Robert Lagniere, Object-Oriented Software Engineering,  2nd ed., McGraw-Hill Companies, Inc., 2005.

15.2.   หนังสืออ่านประกอบ

1.        Roger S. Pressman, Software Engineering: A Practitioner’s Approach, 6th ed, McGraw-Hill  Companies, Inc., 2005.

2.        Ian Sommerville, Software Engineering, 6th ed., Addison-Wesley Publishing Company, 2001.

3.        Shari Lawrence Pfleeger, Software Engineering : The Product of Quality Software, 2nd ed., Macmillan Publishing Company, 1991.

4.        หนังสืออื่นๆที่เกี่ยวข้องทั้งภาษาไทยและต่างประเทศ

15.3.   รายชื่อบทความอ่านประกอบ

1.        Timothy C. Lethbridge et. al. SEAT: A Usable Analysis Tool, Proceedings of the 13th International Workshop on Program Comprehension (IWPC’05).

2.        Timothy C. Lethbridge et al. Challenges and Requirements for an Effective Trace Exploration Tool, Proceedings of the 12th International Workshop on Program Comprehension (IWPC’04).

3.        Michael S. Mahoney, Finding a History for Software Engineering, IEEE Annals of the History of Computing.

16.     การประเมินผลการเรียนการสอน

16.1.   ใช้แบบการประเมินการสอนรูปแบบการบรรยาย (รูปแบบที่ 4)