Sign In

 SWE 311: Principles Of Software Engineering

​Course Information

Class/Laboratory Schedule: 

Three 50 minutes lectures, One 180 minutes lab per week (3-3-4)

Designation:   Required Course

Course Level:   Undergraduate


Prerequisite(s) by Topic: 

  • Fundamental programming constructs
  • Fundamental data structures

Prerequisite Courses: 

Catalog Description: 

History and overview of software engineering. Software processes. Software project management. Software requirements and specification. Software design. Software testing and validation. Software metrics. Software quality assurance. Software evolution. Using APIs. Software tools and environments.


Somerville, Ian. Software Engineering, 8th Edition, Addison-Wesley, 2006.
Reference(s) and Other Material: 
Pressman, R. S. Software Engineering: A Practitioner's Approach, 6th Ed., McGraw- Hill Companies, Inc., 2005.

Course Outcomes: 

  • After completion of this course, the student shall be able to:
  • Select an appropriate and effective software process of a given project.
  • Develop clear, concise, and sufficiently formal software requirements specification (SRS) based on the true needs of users and other stakeholders.
  • Apply design principles and architectures in designing software.
  • Create a number of different UML models such as class model, use-cases, sequence diagram, activity diagram, and state charts.
  • Develop a project plan for software development project and apply management techniques and work as a team leader and a member of a team

Topics Covered: 

  • Software design
  • Software tools and environments
  • Software processes
  • Software requirements and specifications
  • Software Validation
  • Software Evolution
  • Software project management
  • Component-based Computing
  • Foundations of human-computer interaction​