Module 06-25078 (2014)
ICY Software Engineering
Level 1/C I
|Rami Bahsoon||Semester 2||10 credits|
The module will explore some of the fundamentals of software engineering. Topics will include: an introduction to software engineering: the software life cycle and methodologies for software development.
The aims of this module are to:
- Introduce the software life-cycle and its main stages
- Demonstrate that the production of quality software in a cost-effective and productive way requires a systematic and disciplined approach
On successful completion of this module, the student should be able to:
- explain why the production of a large, quality-assured piece of software is a task demanding a disciplined approach to all stages, closely analogous to the methodology used in more traditional engineering activities
- explain the concept of the software lifecycle
- demonstrate knowledge of relevant concepts for each stage of the software life-cycle
- understand the application of software engineering approaches, both as an introduction to professional practice and as an aid to project work
- 06-21936 - Fundamentals Software Engineering
2 hrs lectures/tutorials per week
Contact Hours: 24
Sessional: 1.5hr examination (100%)
Supplementary (where allowed): 1.5hr examination (100%)
- Introduction: definitions and history of software engineering; models of the software lifecycle.
- Requirements definition: outline, documentation, validation.
- Design: general concepts of traditional designs (structure, modularity, hierarchy), inheritance; design methods; validation.
- Implementation: choice of language and coding strategies; testing and debugging, including white-box and black-box testing.
- Validation: techniques for each stage - informal reviews, formal reviews, testing, formal proofs.
- Documentation: quality, types, techniques for each stage.
- Management of software projects: principles; personnel issues; estimation, scheduling and costing