SOFTWARE ENGINEERING - 0681307
Course Title
SOFTWARE ENGINEERING
Course Number
0681307
Instructor Name
EMAD SAADEH
Contact Information
[email protected]
Semester(s) and academic year(s)
Compulsory / Elective
Compulsory
Course Description

This course covers the main concepts of software engineering. It gives an introduction to methods for analysis, design, and implementation of software systems. To illustrate these concepts, three realistic case studies will be used throughout the course. In addition, a capstone software project will be used to gain experience applying software engineering practices in a realistic development setting.  Students will work in six groups (five students in each group) that required designing and implementing this project. Each group will work under the supervision of the course teacher and one private sector company tutor from the industry. Traditional lectures will be used for illustration of basic concepts, essential techniques, maintenance and quality assurance techniques with live demonstrations of software development and deployment on a real software information system.

Course Objectives

The department of computerized information system (CIS) at An-Najah National University offers interdisciplinary courses in computer information technology, leading to a Bachelor’s degree of 125 credit hours in Computerized Information System (CIS). This course on “Software Engineering” is a course at the intermediate level and gives 3 credit hours. The course will provide the students with the kinds of activities that are necessary for production of software systems.

According to the department’s-published advisory plan the course supposed to be taken by the students on their first semester of the third year. The course has the following pre-request course: Database design & Programming (0681220), on the other hand, it will be a pre-request for the following list of courses: Human Computer Interactions (0681306), Object Oriented Analysis and Design (0681440), New Trends in Programming (0681420), Software Testing and Quality Assurance (0681407), Software Project Management (0681408), Health Information Systems (0681471).

The course with its two parts (theoretical and practical) will be taught in English.

Intended learning Outcomes and Competences
  1. Get an overview of the major process frameworks, techniques and notations in software engineering (analysis, specification, design, coding and testing).
  2. Know the main characteristics agile development methodologies.
  3. Being able to use management techniques, modelling and agile development in a software project.
  4. Being able to analyse software development processes existing in organizations and suggest improvements to them based on the processes, techniques and tools in the subject studied.
  5. Understand the concept of pattern, and some of the best-known design and architectural patterns, and learn to identify their advantages and disadvantages.
  6. Being able to apply mechanisms of abstraction for requirements and design modelling, such as UML.
  7. Assess the suitability of software requirements and design specifications.
  8. Design software systems of small size through academic and realistic case studies.

Understand the role of software engineering in addressing each stage in software system development and the associated difficulties

Textbook and References

 SOFTWARE ENGINEERING (Main Text Book)

Ian Sommerville

Tenth Edition (10th Edition) (2014)

ISBN-10: 0137035152

ISBN-13: 9780137035151

 

 

 

UML IN PRACTICE (Additional Resources)

Pascal Roques

First Edition

0-470-84831-6

 

 

Assessment Criteria
Activity Percent (%)