CCU Course Intro
Course Title (Chinese): 軟體架構 Teaching Unit: 電機工程研究所(Graduate Institute of Electrical Engineering)
Course Title (English) Software Architecture Course Code 4155297_01
Lecturer: 劉立頌 (Alan Liu) Number of Credits 3
Mandatory/Elective Elective Year Graduate level
Prerequisites:
Practical experiences or taking courses in software engineering
Course Introduction:
Software architecture is an important topic for those who are involved in system development by providing a broader view on the whole system and its environment from the quality prospective. The course introduces the concept of software architecture and provides the students with practical challenges through teamwork.
Learning Goals:
1. Obtaining the knowledge in software architecture
2. Applying quality attributes in practice
3. Evaluating architecture
Textbook:
Len Bass, Paul Clements, Rick Kazman, Software Architecture in Practice, Third Edition, Addison-Wesley, 2012

Course Syllabus Number of Hours Core Capabilities Remarks
Topic Content Lecture Demonstration Assignment Others
Introduction
1.What Is Software Architecture?
2.Why Is Software Architecture Important?
3.The Many Contexts of Software Architecture
6 1.11.21.32.12.23.13.24.14.24.34.4
Lecture and discussion
Quality Attributes
1.Understanding Quality Attributes
2.Availability, Interoperability, Modifiability, Performance, Security, Testability, Usability
3.Architectural Tactics and Patterns
4.Quality Attribute Modeling and Analysis
18 1.11.21.32.12.23.13.24.14.24.34.4
Lecture and discussion
Architecture in the Software Development Life Cycle
1.Architecture in Agile Projects
2.Architecture and Requirements
3.Designing an Architecture
4.Architecture, Implementation, and Testing
5.Architecture Reconstruction and Conformance
6.Architecture Evaluation
12 1.11.21.32.12.23.13.24.14.24.34.4
Lecture and discussion
Architecture in Practice
1.Documenting Software Architectures
2.Team Project
3.Case Study
15 1.11.21.32.12.23.13.24.14.24.34.4
Lecture and discussion

Education Goals
1.傳授學生電機工程專業領域知識,並能進一步結合理論與實務進行研究。
2.訓練學生發掘與分析解決問題的能力。
3.訓練學生良好的溝通技巧,並培養團隊合作的能力。
4.培養學生瞭解國內外學術與產業之發展與需求,並理解工程倫理及社會責任。

Core Capabilities
1.1.學習電機工程相關領域之理論基礎。
1.2.瞭解電機工程相關領域之實務技術。
1.3.訓練專業論文寫作與簡報的能力。
2.1.培養發掘與分析電機工程特定領域專題研究之能力。
2.2.培養規劃與執行電機工程特定領域專題研究之能力。
3.1.學習溝通與表達的能力。
3.2.運用個人專長,與團隊成員合作達成計畫目標。
4.1.瞭解國內外電機工程特定領域產業現況。
4.2.理解工程倫理及社會責任。
4.3.培養良好的國際觀。
4.4.培養科技英文能力。

Please respect to the intellectual property rights, do not photocopy the textbooks which assigned by professors.

Course Details:
1. Teaching Materials:Self DevelopedProvided by Textbook Authors
2. Teaching Method:Lecture SlidesBlackboard Teaching
3. Grading Method:Attendance 0%, Quiz0%, Assignment10%, Programming0%, Technical Report0%,
                       Project40%, Mid-Term Exam0%, Final Exam20%, Final Report20%, Others0%,
4. Teaching Resources:Course Web Site Downloadable Electronic Materials Lab Web Site
5. Other requirements:

Relationship between course education goals and core capabilities        
Please select:1.11.21.32.12.23.13.24.14.24.34.4
1.1 學習電機工程相關領域之理論基礎。()
Why is it related:
The basic theory and advanced topics of software engineering will be covered.
Achieving indicators:
Obtaining the knowledge and skills of an software architect
Grading Method:
exams and projects
1.2 瞭解電機工程相關領域之實務技術。()
Why is it related:
Some practical skills and tools of software architecture will be covered.
Achieving indicators:
Obtaining the knowledge and skills of an software architect
Grading Method:
exams and projects
1.3 訓練專業論文寫作與簡報的能力。()
Why is it related:
Students will be required to submit report and give presentations.
Achieving indicators:
Producing practical documents and giving clear presentation
Grading Method:
projects and progress report
2.1 培養發掘與分析電機工程特定領域專題研究之能力。()
Why is it related:
The analysis and design will be stressed through the term project.
Achieving indicators:
Identifying and developing the quality attributes
Grading Method:
projects
2.2 培養規劃與執行電機工程特定領域專題研究之能力。()
Why is it related:
The project management with software process will be carried out in the term project.
Achieving indicators:
Using effective software development process like Unified Process and Scrum
Grading Method:
projects
3.1 學習溝通與表達的能力。()
Why is it related:
The presentation and progress reported will be conducted regularly.
Achieving indicators:
Giving progress report and final report
Grading Method:
projects
3.2 運用個人專長,與團隊成員合作達成計畫目標。()
Why is it related:
Teamwork will be stressed in the term project.
Achieving indicators:
Using software practices in developing projects with team members
Grading Method:
projects
4.1 瞭解國內外電機工程特定領域產業現況。()
Why is it related:
The examples from international and domestic industries will be given as assignments
Achieving indicators:
Being aware of the needs in software architect through case studies
Grading Method:
responses in discussion
4.2 理解工程倫理及社會責任。()
Why is it related:
The social responsibility and ethics of an engineer will be discussed along with examples.
Achieving indicators:
Being aware of social responsibility in being an software architect
Grading Method:
responses in discussion
4.3 培養良好的國際觀。()
Why is it related:
The current advances in international and domestic cases will be discussed.
Achieving indicators:
Being aware of the trend in the technical field
Grading Method:
responses in discussion
4.4 培養科技英文能力。()
Why is it related:
The textbook and lecture notes will be given in English. The lecture will be conducted in English if there is an international student in the class.
Achieving indicators:
Able to know and use the technical terms
Grading Method:
exams and projects