This course offers an introduction to software engineering. Topics covered: Software Engineering fundamentals; Software processes; Object-oriented concepts and UML; Requirements analysis; System modeling and specification; Software design models; from design to implementation; Software testing; Software tools; Emerging software development methods; Teamwork.
Intended learning outcomes
Knowledge &understand
Knowing what software engineering is and why it is important
Learn about software development life cycle
To explains the activities of each phase of building the software
Learn about high quality software features.
Describes software development models
mental skills
To choose suitable cost estimation tool for a project
To choose suitable time estimation tool for a project
To compare between Functional and Nonfunctional requirements
To choose requirement elicitation methods for the project
Linking between the analysis and design tools used in system development.
Distinguish between different software process models.
Practical & professional skills
Be able to use cost and time estimation tools
Use different requirement elicitation methods
Be able to create a number of different UML models
Selects appropriate tools for each software development method.
Use various scientific sources to write research.
General and transferable skills
Works within a team
To be able to use modern technological tools
Be able to writing assignments and reports
Able to using internet and scientific references for independent study
To be able to do presentations
Teaching and learning methods
Lectures
Tutorials
discussions
Methods of assessments
Midterm exam = 40
Assignment = 10
Final exam = 50
Course contents
Introduction of software engineering
Project planning
Cost estimation techniques
Project scheduling
software Requirements engineering
functional and non-functional requirements
Requirements elicitation
Requirements analysis
UML Language
Use case diagram
Requirements specification , validation , and management