Topic outline

  • General description

    The course "Software Engineering (2)" addresses advanced ideas in software engineering such as software quality management, Component-based and reuse software engineering, Distributed software engineering, Service-oriented software engineering, Software Engineering of Embedded and Real-Time Systems, and Systems dependability and security. This course enables the student to specifically: First: designing software and software systems according to the required quality standards known globally. Realizing the importance of software quality management standards. Second: Understanding the intended program component that can be included in the program as an executable component. Understand the key elements of the software component models and the support provided by the intermediaries for these models. Familiar with the main activities in the Component Based Software Engineering (CBSE) process for reuse and the CBSE process with reuse. Third: Knowing the basic functions that the version control system should provide, and how this is accomplished in centralized and distributed systems. Understanding the challenges of building a system and the benefits of continuous integration and system building. Fourth: Understanding the basic concepts of web service, web service standards and service-oriented architecture. Fifth: Understanding the concept of embedded software, which is used to control systems that interact with external events in their environment. Understanding the concept of Real-Time Systems Sixth: Understanding why reliability and security are important features of all software systems. Understand the five critical dimensions of reliability: availability, reliability, safety, security, and resiliency.