Programmes

BACHELOR OF SCIENCE IN SOFTWARE ENGINEERING

CMPT 21102

SOFTWARE CONSTRUCTION TECHNOLOGIES AND TOOLS

Status : Core Pre-requisite : SENG 11512, SENG 12533 Co-requisite : None

 

On completion of this course, the student should be able to:

  • Recognize the advantages of using APIs in software development
  • Recognize the importance of good programming conventions
  • Design and develop APIs
  • Implement software systems using APIs
  • Use different software construction tools in software development.

Introduction to software construction, design challenges, key design concepts, design building blocks: heuristics, design practices, class foundation: abstract data types (ADTs), design and implementation issues, routines, protecting program from invalid inputs, assertions, error handling techniques, exceptions, debugging aids, the pseudocode programming process, alternatives to pseudocode programming, recursion, general consideration in using table driven methods, direct access tables, indexed access tables, stair steps access tables.

Characteristics of software quality, techniques for improving software quality, relative effectiveness of quality techniques, pair programming, formal inspection.

Refactoring, code tuning strategies and techniques, how program size affects construction, managing construction, importance of an integration approach, integration frequency-phased or incremental, incremental integration strategies, design tools, source code tools, executable code tools, tool oriented environments.

Layout and style, self-documenting code, personal characteristics, use of APIs, qualities of APIs.

Lectures, practical sessions, case discussions and assignments.

End of course unit examination, case study presentations and group assignments.

  1. McConnell, S (2004).Code complete: A practical handbook of software construction. John Wiley & Sons
  2. Reddy, M (2011). API design for C++. Elsevier.

Back