Course code | CSCI3100 |
Course title | Software Engineering 軟件工程 |
Course description | This course introduces software life-cycles: system modelling, requirements analysis and specifications, design techniques, implementation methodology, testings, maintenance and engineering laboratory. Analytical tools: software metrics, system performance measurement and evaluation. Management techniques: estimations, planning, project management, communication skills and documentations. Introductions to CASE tools and security. 本科介紹軟件生命週期:系統模型化、要求分析及規格、設計技術、實踐方案、測試、維護及工程實驗。分析工具:軟件度量、系統性能之測量及評價。管理技術:估計、規劃、計劃之管理、通信技巧及文件編制。計算機輔助系統工程(CASE)導論及保密性。 |
Unit(s) | 3 |
Course level | Undergraduate |
Pre-requisite | CSCI1110 or 1120 or 1130 or 1510 or 1520 or 1530 or 1540 or ESTR1100 or 1102 |
Exclusion | ENGG3820 or ESTR3308 or IERG3080 |
Semester | 2 |
Grading basis | Graded |
Grade Descriptors | A/A-: EXCELLENT – exceptionally good performance and far exceeding expectation in all or most of the course learning outcomes; demonstration of superior understanding of the subject matter, the ability to analyze problems and apply extensive knowledge, and skillful use of concepts and materials to derive proper solutions. B+/B/B-: GOOD – good performance in all course learning outcomes and exceeding expectation in some of them; demonstration of good understanding of the subject matter and the ability to use proper concepts and materials to solve most of the problems encountered. C+/C/C-: FAIR – adequate performance and meeting expectation in all course learning outcomes; demonstration of adequate understanding of the subject matter and the ability to solve simple problems. D+/D: MARGINAL – performance barely meets the expectation in the essential course learning outcomes; demonstration of partial understanding of the subject matter and the ability to solve simple problems. F: FAILURE – performance does not meet the expectation in the essential course learning outcomes; demonstration of serious deficiencies and the need to retake the course. |
Learning outcomes | 1. Students will know how to apply state of the art methodology in software design, development, measurement and evaluation for large-scale software systems; 2. Students will know what are the following software engineering techniques: – software management; – software requirement engineering; – specification techniques; – structured design; – Unified Modeling Language (UML); – Design Patterns; – structured programming; – top-down design and development; – segmentation and modularization techniques; – information hiding; – iterative enhancement; – design and code inspection techniques; – correctness; – software validation and verification techniques; – software metrics; – software reliability measurement; – data collection and analysis; 3. Students will learn how to apply software engineering techniques for the development of large software projects. |
Assessment (for reference only) |
Final Exam: 40% Project: 30% Mid-term exam: 20% Assignments: 10% |
Recommended Reading List | 1. Fundamentals of Software Engineering, Ghezzi, Jazayeri, and Mandrioli, Prentice Hall, 2nd Edition, 2003. 2. Software Engineering: A Practitioner’s Approach, Pressman, McGraw-Hill, 6th Edition, 2005. 3. Software Engineering, Sommerville, Pearson/Addison Wesley, 7th Edition, 2004. 4. Software Engineering: Theory and Practice, Pfleeger, Prentice Hall, 2nd Edition, 2001. 5. Object-Oriented Software Engineering – Using UML, Patterns, and Java, Bruegge and Dutoit, Pearson/Prentice Hall, 2nd Edition, 2004. 6. Handbook of Software Reliability Engineering, Lyu (ed.), McGraw-Hill, 1996. |
CSCIN programme learning outcomes | Course mapping |
Upon completion of their studies, students will be able to: | |
1. identify, formulate, and solve computer science problems (K/S); | T |
2. design, implement, test, and evaluate a computer system, component, or algorithm to meet desired needs (K/S); |
TPM |
3. receive the broad education necessary to understand the impact of computer science solutions in a global and societal context (K/V); | T |
4. communicate effectively (S/V); |
P |
5. succeed in research or industry related to computer science (K/S/V); |
TP |
6. have solid knowledge in computer science and engineering, including programming and languages, algorithms, theory, databases, etc. (K/S); | TP |
7. integrate well into and contribute to the local society and the global community related to computer science (K/S/V); | P |
8. practise high standard of professional ethics (V); | P |
9. draw on and integrate knowledge from many related areas (K/S/V); |
|
Remarks: K = Knowledge outcomes; S = Skills outcomes; V = Values and attitude outcomes; T = Teach; P = Practice; M = Measured |