電機工程研究所(Graduate Institute of Electrical Engineering)
課程名稱(英文)
Object-Oriented Software Engineering
課程代碼
4158815_01
授課教師:
劉立頌 (Alan Liu)
學分數
3
必/選修
選修
開課年級
Graduate level
先修科目或先備能力:
Programming skills
課程概述:
This course introduces object-oriented software engineering through understanding the concept of software engineering and object-oriented analysis and design. The focus is on learning the object-oriented way of developing software while performing the practices that are introduced in software engineering. Development processes and design techniques like software architecture and design patterns will be introduced. The students are required to participate in a team project to practice the knowledge learned in the course. At the same time, the students will be able to enhance the ability in problem solving, communication, cooperation, and presentation.
學習目標:
1. To understand what object-orientation is about
2. To practice software engineering in software development
3. To learn and perform object-oriented analysis and design
教科書:
Collection of lecture notes and papers.
Good references:
1. Ivan Sommerville, Software Engineering, 10th edition, Pearson, 2016. http://iansommerville.com/software-engineering-book/
2. Roger Pressman and Bruce Maxim, Software Engineering: A Practitioner's Approach, 9th edition, McGraw-Hill, 2020. http://www.rspa.com/about/sepa.html
課程大綱
分配時數
核心能力
備註
單元主題
內容綱要
講授
示範
隨堂作業
其他
Introduction to software engineering and object-orientation
1. Review the basics of software engineering
2. Learn how to view things through an object-oriented way
6
1.11.21.32.12.23.13.24.14.24.34.4
Software development process
Learn the details of typical process like the waterfall model, the incremental model, or the spiral model.
6
1.11.21.32.12.23.13.24.14.24.34.4
Requirements analysis
Analyze a problem trough problem understanding, requirements elicitation through modeling, abstraction, and inheritance.
6
1.11.21.32.12.23.13.24.14.24.34.4
Design and reuse
1. Design a system through abstract design, architectural design, and detail design.
2. Design a system through planning and creating reusable components.
3. Understand design patterns
9
1.11.21.32.12.23.13.24.14.24.34.4
Introduction to UML and Unified Process
1. Know what the Unified Modeling Language is about.
2. Review and practice the user of the use-case driven, architectural centric, and iterative and incremental process.
6
3
1.11.21.32.12.23.13.24.14.24.34.4
Software testing
Understand what typical the goal and details of blackbox and whitebox testing.
6
1.11.21.32.12.23.13.24.14.24.34.4
Agile methods and modeling
1. Understand the purpose and advantages of a test-driven and light-weight process.
2. Perform modeling and keep documents for the agile method.
6
1.11.21.32.12.23.13.24.14.24.34.4
Advanced topics
1. Component-Based Development and
2. Modeling-driven development