EN813 306 วิศวกรรมซอฟต์แวร์ Software Engineering

Prerequisite : EN811301 หรือ 198130

จุดมุ่งหมายของรายวิชา

  1. สามารถวิเคราะห์รายละเอียดและความต้องการของซอฟต์แวร์ที่พัฒนา
  2. สามารถออกแบบซอฟต์แวร์และพัฒนาส่วนต่างๆ ของซอฟต์แวร์

คำอธิบายรายวิชา

วิศวกรรมซอฟต์แวร์ขั้นแนะนำ กระบวนการพัฒนาซอฟต์แวร์ เครื่องมือที่ช่วยในงานวิศวกรรมซอฟต์แวร์ การกำหนดความต้องการและข้อกำหนดของซอฟต์แวร์ การแปลภาษา การออกแบบซอฟต์แวร์ การบริหารโครงการพัฒนาซอฟต์แวร์ การทดสอบและการตรวจสอบความสมเหตุสมผลของซอฟต์แวร์ ความทนทานต่อข้อผิดพลาดของซอฟท์แวร์ พัฒนาการซอฟท์แวร์ จรรยาบรรณวิศวกรรมซอฟท์แวร์

Introduction to software engineering, software processes, software tools and environments, software requirements and specifications, language translation, software design, software project management, software testing and validation, software fault tolerance, software evolution, software engineering ethic

ตำราและเอกสารหลัก

Sommerville, Ivan: "Software Engineering", 10th ed., Pearson Addison Wesley,2016.
Supplementary material for textbook

Pressman, Roger S.: "Software Engineering, A Practitioner's Approach", 5th ed., McGRAW-Hill, 2001.

เอกสารประกอบการสอน


เนื้อหา

Introduction วิศวกรรมซอฟต์แวร์ขั้นแนะนำ จรรยาบรรณ วิศวกรรมซอฟท์แวร์ Introduction to software engineering • History of software engineering • Overview of software engineering • Software engineering ethic • Software engineering ethic and codes
Ch 1: Introduction อุตสาหกรรมซอฟต์แวร์ไทย 2560
Software processes กระบวนการพัฒนาซอฟต์แวร์ Software process models • Process activities • Coping with change • Process improvement
Ch 2: Software Processes
Agile software development Agile methods • Agile development techniques • Agile project management • Scaling agile methods
Ch 3: Agile Software Development
Requirements engineering การกำหนดความต้องการและ ข้อกำหนดของซอฟต์แวร์ Functional and non-functional requirements • Requirements engineering processes • Requirements elicitation • Requirements specification • Requirements validation • Requirements change
Ch 4: Requirements Engineering
System modeling Context models • Interaction models • Structural models • Behavioral models • Model-driven architecture
Ch 5: System Modeling
Architectural design Architectural design decisions • Architectural views • Architectural patterns • Application architectures
Ch 6: Architectural Design
Design and implementation Object-oriented design using the UML • Design patterns • Implementation issues • Open-source development
Ch 7: Design and implementation
Software testing Development testing • Test-driven development • Release testing • User testing
Ch 8: Software testing
Software evolution Evolution processes • Legacy systems • Software maintenance
Ch 9: Software evolution
Dependable systems Dependability properties • Sociotechnical systems • Redundancy and diversity • Dependable processes • Formal methods and dependability
Ch10 Dependable systems
Reliability Engineering Availability and reliability • Reliability requirements • Fault-tolerant architectures • Programming for reliability • Reliability measurement
Ch11 Reliability Engineering
Project planning Software pricing • Plan-driven development • Project scheduling • Agile planning • Estimation techniques • COCOMO cost modeling
Ch23 Project planning
Service-oriented Software Engineering Service-oriented architectures • RESTful services • Service engineering • Service composition
Ch18 Service-oriented Software Engineering