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
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.
- 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
- 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