CENG 316

Software Engineering

Software engineering, role of software engineers; evaluation of software and principles thereof, software lifecycle models; notions of requirements, specification, design implementation; main techniques; importance of maintenance; quality concerns at all stages of the software development process; important benefits of and good practice in software re-use; verification and validation; the use of metrics; structure of teams; human computer interface as a software engineering activity.

Learning Outcomes:

  1. To be able to identify requirements for a given project topic.
  2. To be able to find difference between functional and non-functional requirements in a project.
  3. To be able to make software design with an object-oriented approach.
  4. To be able to write project definition.
  5. To be able to use and apply software process model.
Topics
Introduction to Software Engineering, Process View
Process Models, Agile Process Model
Software Engineering Practice, Systems Engineering
Requirements Engineering, Analysis Model
The Object-oriented Approach
Design Model, Design Architecture
Testing Strategies and Techniques
Computer Aided Software Development Tools
Product Metrics
Project Management, Metrics Measurement
Software Quality Management
Formal Methods
Project Technical Review Meetings
Project Presentations and Demonstrations