|Aim of Subject:
||To provide the students with a understanding of theoretical and practical
foundation of software engineering.
|Learning Outcome of Subject:
At the completion of the subject, students should be able to :
- Explain the software development life cycle.
- Endentify the difference between software engineering and system engineering.
- Explain the importance of requirements and specification of a project.
- Organize and specify requirements in a software project.
- Explain the basic concept in software design.
- Apply testing, assessing and recovering of software errors.
- Manage and monitor project cost, schedule and quality.
- Ability to acquire and apply fundamental principles of science and engineering.(50%)
- Capability to communicate effectively.(10%)
- Acquisition of technical competence in specialised areas of engineering discipline.(10%)
- Ability to identify, formulate and model problems and find engineering solutions based on a systems approach.(10%)
- Ability to conduct investigation and research on engineering problems in a chosen fields of study.(5%)
- Understanding of the importance of sustainability and cost-effectiveness in design and development of engineering solutions.(5%)
- Understanding and commitment to professional and ethical responsibilities.(10%)
- Tutorial / Assignment - group assignment,focus group discussion at tutorial,to enhance understanding of basic concepts in lecture
- Test/Quiz - written exam(10%)
- Final Exam - written exam(60%)
|Teaching and Learning Activities:
||45 hours (lectures and tutorials)
||ECP1026: Algorithm and Data Structure
- Roger S. Pressman, “Software Engineering: A Practitioner’s Approach”, 7th ed., McGraw Hill, 2009. (Textbook)
- Ivan Jacobson, “Software Engineering”, Addision Wesley, 1992
- Andrew Topper et. Al., “Structure Methods: Merging Models, Techniques and CASE”, McGraw Hill, 1992
- Ian Sommerville, “Software Engineering”, 4th ed., Addision Wesley, 1992
Principles of software engineering. Software life cycle. Project management.
Computer based system engineering.
Requirements and Specification
Analysis, definition, specification, software prototyping, formal specification,
algebraic specification and model-based specification.
Architectural design. Object-oriented design. Function-oriented design.
Real-time system design. User interface design. Dependable Systems. Reliability
and reusability. Safety-critical consideration. Good programming practice.
Computer-aided Software Engineering (CASE)
Verification and Validation
Validation and testing. Problems of assessing and quantifying the system
reliability. Test case and test data design.
People and organization issues. Cost estimation. Quality management.
Process improvement. Maintenance, configuration and re-engineering of software.