Prerequisite : EN811301 หรือ 198130
วิศวกรรมซอฟต์แวร์ขั้นแนะนำ กระบวนการพัฒนาซอฟต์แวร์ เครื่องมือที่ช่วยในงานวิศวกรรมซอฟต์แวร์ การกำหนดความต้องการและข้อกำหนดของซอฟต์แวร์ การแปลภาษา การออกแบบซอฟต์แวร์ การบริหารโครงการพัฒนาซอฟต์แวร์ การทดสอบและการตรวจสอบความสมเหตุสมผลของซอฟต์แวร์ ความทนทานต่อข้อผิดพลาดของซอฟท์แวร์ พัฒนาการซอฟท์แวร์ จรรยาบรรณวิศวกรรมซอฟท์แวร์
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 |