SOFTWARE DEVELOPMENT PRINCIPLES
Course Name Software Development Principles
Course Level Year 1 semester 1
Course Credit 4CU
Contact hours 60 Hours
Course code SWE 1104
Course Objectives
The goal of this course is to study and apply advanced software engineering best practices,
principles, and patterns that concern different phases of the software development lifecycle
and different aspects of the software itself. In particular, we will study in detail the
fundamental GoF object-oriented design patterns, object-oriented reengineering patterns, and
patterns that facilitate the evolution of databases.
Course Objectives Upon successful completion, the student should be able to:
1. Demonstrate mastery of the software development process, describing core
activities at various levels of software development;
2. Perform requirement analysis of a simple software systems;
3. Manage a team of developers;
4. (iv) Demonstrate knowledge of at least one tool of software documentation;
5. Work in a team; and
6. Design, develop, test and valid a software product.
Course Content
Topics covered include:
Introduction: What is software engineering? Phases in the development of software. 12hrs
Software Management: Planning and controlling a software development project. 12hrs
Requirements analysis: Requirements specifi- cation, humans as information sources, tools
for documenting the requirements (SADT, PSL/PSA, Ada-based analysis methods). 12hrs
Software design: Abstraction, modularity, information hiding, design methods, design
documentation. 12hrs
Testing: Test objectives, verification and validation, manual test techniques, techniques for
functional and structural testing. 12hrs
Reading materials
1. Balancing Agility and Discipline: A Guide for the Perplexed; by Barry Boehm and
Richard Turner, Addison Wesley Professional, 2003, ISBN-10: 0321186125.
2. 201 Principles of Software Development, by Alan M. Davis, McGraw-Hill, March,
1995, ISBN-10:
Modes of assessment:
Tests 20%
Assignments 20%
Examination 60%