Software Engineering
Overview
Code: CS4101 Semester: 5 Credits: 6 Type: Compulsory
Lecturer
- Ovidiu Gheorghies
Hours per week
- Course - 2
- Laboratory - 2
Student evaluation
- written assignments, laboratory problems, whole-semester projects
- written exam
Objectives
Build a professional attitude towards developing software. Students learn techniques which enable them to develop quality software artifacts, observing the customer's demands for functionality, costs and deadline.
Contents
- Software process models: waterfall, prototyping, formal methods, spiral, RUP, XP.
- Requirements engineering
- Modeling and modeling languages. UML: use case, activity, class, sequence, collaboration, state.
- Design patterns: iterator, singleton, composite, decorator, observer, visitor, template method etc.
- Quality assurance. Functional testing. Structural testing
- Software metrics
- Project administration: cost estimate, team management etc.
- Ethics.
Previous courses
Compulsory: Programming I, II
Recommended: Operating Systems I, II. Programming III. Databases II. Computer Networks. User Interface Design
References
Ian Sommerville: Software Engineering, Addison Wesley, 2001
Douglas Bell: Software Engineering, A Programming Approach, Addison Wesley, 2000
Craig Larman: Applying UML and Patterns, Addison Wesley, 2002
Erich Gamma, Richard Helm, Ralph Johnson, John Vissides: Design Patterns, Elements of Reusable Object-Oriented Software, Addison Wesley, 1998

