Syllabus: Subject: Software Engineering
Syllabus: Subject: Software Engineering
1. Lecturers’ information:
2. Subject information:
- Subject name: Software Engineering
- Subject code: INT2208
- Number of credits: 3
- Credit hour distribution (lectures/practicals/self-studies): 45/0/0
- Prerequisites: INT1006 – Basic Informatics 4
- Other requirements (if needed):
- Coordinated by (Department/Faculty): Software Engineering Department, Faculty of
Information Technology, VNU-UET
3. Subject objectives:
Students will know the general concepts of software engineering process and
techniques to carry out various tasks in software development from requirements
gathering, design process and patterns, writing quality code, validation techniques, to
software evolution and project management. Student will work in group to build a
small software using modern process such as agile methods and practice various skills,
including team work, and CASE tools.
4. Expected learning outcomes:
5. Subject description:
The course provides basic knowledge in software engineering and techniques that students
can use to carry out tasks in development a software solution, from analyzing requirements to
design solutions as well as in implementation, testing, and software evolution. Students will
practice in a group project to build a small software to apply learnt knowledge and learning to
use CASE tools to support software development. The course also introduces some latest/up-
to-date development process, techniques, tools, and technologies.
6. Subject contents
The content will be based on Chapter 1 to 9 of Ian Sommerville book [1]. Some weeks are
reserved for discussion of student’s projects.
Chapter 1: Couse introduction and plan. Introduction to software engineering, FAQ,
and ethical issues.
Chapter 2: Common software processes: waterfall, spiral, RUP
Chapter 4: Requirement engineering: feasibility study; gathering techniques;
Chapter 5: System modeling: basic UML models.
Chapter 6: Architecture design: common design and architecture patterns.
Chapter 7: Design and implementation: design process, prototype, and evaluation,
code quality, refactoring
Chapter 8: Software testing: testing process; unit testing, intergration testing; system
testing; acceptance testing, test automation;
Chapter 22: Project management: basic concepts; process; time risk management; risk
management, HR risk management; v.v.
Group discussion: Student projects report and lessons learnt.
7. Teaching materials:
7.1. Textbook(s):
1. Ian Sommerville, Software Engineering. 9th Ed., Addison-Wesley, 2010.
2. Roger S. Pressman - Software Engineering: A Practitioner's Approach - 6th Ed.,
McGraw Hill, 2005.
3. Nguyễn Văn Vỵ, Nguyễn Việt Hà, Giáo trình Công nghệ phần mềm, NXB ĐHQG
Hà Nội 2008.
7.2.Reference books/materials:
4. Robert C. Martin, Agile Software Development, Principles, Patterns, and Practices.
Prentice Hall; 2002.
5. Steve McConnell, Code Complete: A Practical Handbook of Software Construction,
Second Edition.
6. Ivar Jacobson, Pan-Wei Ng, Paul E. McMahon, Ian Spence, Svante Lidman. The
Essence of Software Engineering: Applying the SEMAT Kernel. Addison-Wesley
Professional; 1 edition. 2013.
8. Teaching schedule
8.1. Overall schedule (for 15 weeks)