Course Description

Software Engineering concepts,  software development methodologies, phases of software developmet from gathering requirements to testing.  Topics such as project and configuration management are also discussed. 

Students will focus on fundamentals of software engineering using an iterated team project. All introductory topics covered including but not limited to the software crisis, managing software complexity, software requirements analysis and specification, architectural and detailed software design, software testing, agile and traditional software process, and tools and environments. 

Objectives

The students completing this course will learn what software engineering entails.  Students will understand how to gather requirements, how to design and implement an application, and how to assure the quality of software products.  An understanding of project management and configuration management is also provided.  The students will become familiar with various tools used in software development.

After the successful completion of this course, the students will

  1. Understand the key concepts of software engineering.
  2. Assess, analyze and specify software requirements.
  3. Gain ability to apply software design techniques to a set of potentially observable software project issues.
  4. Evaluate (compare and contrast) the pros and cons of plan-driven and agile development methodologies such as Waterfall, Iterative development, Scrum, Kanban, and XP.
  5. Gain knowledge about new trends, topics and technologies in software engineering.

Requirements

The attendance list will be kept for the course.  As per the university regulation, attendance for lectures is compulsory. If a student does not attend 30% or more lecture hours, he/she fails the course. It is strongly recommended that students attend all lectures.

 

Class Sessions

Class meetings include a mixture of lecture and discussion. You will find some concepts are easily learned from the lecture notes. However, many topics such as agile development, DevOps, cohesion and coupling are difficult to learn on your own so they will be exercised in lecture hours. You will get the most out of the class if you participate in the class discussions.

Further Details

Please check Webonline.