Software Engineering – 2012


Islamic University of Gaza                      Department of Computer Engineering

ECOM 3324 – Software Engineering

Syllabus – Spring 2012


Instructor: Dipl.-Ing. Abdelnasser Abdelhadi


Room: B231, phone: 2878

Lecture time: Sat, Mon, Wed M: 12:00 – 13:00 in K507  F: 13:00 – 14:00 in L504


Facebook group:


Textbook:  Software Engineering 8th Edition.   Author:  Ian Somerville



ECOM 3324, Software Engineering, is a graduate-level introductory survey course on the fundamental concepts and principles that underlie current and emerging methods, tools, and techniques for the cost-effective engineering of high-quality software systems.  Software engineering (SE) is concerned with all aspects of soft- ware development, from the early stages of system specification to maintaining the system after it has gone into use. This includes technical processes of software development as well as activities such as software project man- agement and the development of tools, methods, and theories to support software development.  ECOM 3324 is NOT a "programming" course; it focuses instead on surveying some of the critical aspects of SE that may be less familiar to students of computer science, such as identifying a development process appropriate to the circum- stances, eliciting and documenting requirements, identifying appropriate design techniques, employing effective verification and validation strategies (e.g., reviews and inspections, formal methods) throughout the software development lifecycle, software maintenance, and software project management

The course will cover chapters 1,4,5,6,7,8,11,12,13,14,15,16, 22 and 23. However the student is encouraged to read all of the chapters. Time does not permit us to cover all topics in this book in just one semester. It is particularly important that the student place a great deal of emphasis in understanding the different design models and the sections covering requirements analysis and system specification. As it turns out, developing a complete set of requirements and specifications is one of the more difficult and critical tasks in software engineering.

The topics mentioned in the title of the course are Software Engineering, Software Processes, Project Management, Software Requirements, Prototyping, Specifications, OOD, Verification and Validation, Testing, Management of People, Cost Estimation, Legacy Systems, Reengineering, Formal Specifications, User Interfaces, Distributed Systems, and Requirements. 




Familiarity with programming using a high-level language (C++, Java, etc.); basic knowledge of algorithms, data structures, and discrete math.




At the end of this course, the student should understand the following concepts:

  • Follow a Software Design to Code Development
  • Software Processes and Models
  • Requirements, specification, Architectural Design, and OOD
  • Verification and Validation
  • Testing
  • Object Oriented Design
  • Patterns
  • Rapid Development
  • Software Reuse.  




During the course of this term the students will be involved with a real problem solving/software requirements and design situation.  Students will be required to gather functional requirements, identify the problem, form a solution and present this solution to a prospective customer.  The problems will be assigned in class




COURSE Outline:



Reading Assignment


Introduction to Software Engineering

Chapter1, 2.2.1 – 2.2.5

Problems 2.11

Software Processes

Chapter 4

Problems 4.1, 4.2, 4.5

Software Requirements

Chapter 6


Requirements Engineering

Chapter 7

Problems 7.2

System Models

Chapter 8


Architectural Design

Distributed Systems Architectures Application Architectures

Chapter 11,12,13


Object Oriented Design

Chapter 14

Problems 14.2, 14.4

Real-time Software Design

Chapter 15


User Interface Design

Chapter 16


Testing, Validation, Verification

Chapter 22/23

Problems 22.1, 22.5

Problems 23.1, 23.5





Midterm Exam


Final Exam




Homework and Quizzes


Final Project