Course
code | SE291 |
credit_hours | 3 |
title | Introduction to Software Engineering |
arbic title | |
prequisites | CS243, IS171 |
credit hours | 3 |
Description/Outcomes | Software engineering is a critically important area for the future of application and/or systems development. Students must learn about software engineering to be able to create more complex software systems. Software engineering is now such a huge area. This course provides an introduction to software engineering disciplines with emphasis on: software life cycle, process models, requirements specification, architecture requirements, software design, rapid software development, verification, validation and testing of software. Thus, it gives students a broad view on the whole software development life cycle, and introduces techniques and standard documents used in each stage of the cycle. Moreover, during the course students undergo a team-based project with emphasis on the requirements, analysis and design phase. They use the unified modeling language as a method to model their systems. |
arabic Description/Outcomes | |
objectives | 1. Knowledge of basic SW engineering methods and practices, and their appropriate application. 2. Describe software engineering layered technology and Process frame work. 3. A general understanding of software process models such as the waterfall and evolutionary models. 4. Understanding of software requirements and the SRS documents. 5. Understanding of the role of project management including planning, scheduling, risk management, etc. 6. Describe data models, object models, context models and behavioral models. 7. Understanding of different software architectural styles. 8. Understanding of implementation issues such as modularity and coding standards. 9. Understanding of approaches to verification and validation including static analysis, and reviews. 10. Understanding of software testing approaches such as unit testing and integration testing. 11. Describe software measurement and software risks. 12. Understanding of software evolution and related issues such as version management. 13. Understanding on quality control and how to ensure good quality software. |
arabic objectives | |
ref. books | Roger Pressman, Software Engineer: A practitioner Approach, McGraw–Hill. |
arabic ref. books | |
textbook | Ian Summerville, Software Engineering, Pearson. |
arabic textbook | |
objective set | |
content set | |
course file |
530_SE291_SE291.pdf |