Course Code
|
SWE211
|
Course Name
|
Introduction to Software Engineering
|
Credit
|
3(3+0+1)
|
Pre-requisites
|
MATH151 + CSC 111
|
Co-requisites
|
|
Course Description
|
This is a central course, presenting the basic principles and concepts of software engineering and giving a firm foundation for many other courses in the field. It gives a broad coverage of the most important terminology and concepts in software engineering.
|
Course Code
|
SWE312
|
CourseName
|
Software Requirements Engineering
|
Credit
|
3(3+0+1)
|
Pre-requisites
|
CSC 113 + SWE 211
|
Co-requisites
|
|
Course Description
|
The course covers requirements engineering in depth including the followings: requirements Engineering Process - Elicitation of requirements - Functional and non-functional requirements - System services and constraints – Quality of Requirements - Requirements traceability matrix - Metrics for non-functional requirements - Use case description - Use case and context diagrams - Software Requirements Specification -IEEE Standard - Requirements for agile developments - Requirements for various systems: embedded systems, web-based systems, business systems, etc. – Requirements management.
Ethical behavior of software analysts with respect to stakeholders when gathering the requirements will be also discussed. This course gives also a brief introduction to formal specifications using specification languages such as Z or B. Students participate in a group project on software requirements analysis and specification and requirements management case tools.
|
Course Code
|
SWE313
|
Course Name
|
Software Process and Modeling
|
Credit
|
3(3+0+1)
|
Pre-requisites
|
|
Co-requisites
|
S230
|
Course Description
|
This course aims to provide a comprehensive presentation of the key concepts, modeling techniques, and development methodologies used in object-oriented approaches in software engineering. This includes a review of Object-Oriented concepts and modeling with UML: Structural Modeling, Behavioral Modeling – System architecture design, – User Interface Design – Object Persistence Design - Class and Method Design - Object-Oriented Testing – Unified Process development cycle – Use case analysis – Sequence diagrams – Encapsulation – Inheritance – Polymorphism – Design principles of coupling and cohesion – Design patterns. Students will be also exposed to OO case tools, UML Generating tools, standard templates, Quality control, and other SWE related standards. Students will participate in a group project on object-oriented software methodologies and modeling using OO case tools.
|
Course Code
|
SWE314
|
Course Name
|
Software Security Engineering
|
Credit
|
3(3+0+1)
|
Pre-requisites
|
CEN 303
|
Co-requisites
|
|
Course Description
|
This course mainly deals with engineering techniques for developing secure software systems. It covers Security fundamentals of Information assurance concepts (confidentiality, integrity, and availability); Nature of threats (e.g., natural, intentional, and accidental); Encryption, digital signatures, message authentication, and hash functions; Common cryptographic protocols (applications, strengths, and weaknesses) relevant to buffer overflows, SQL injections, format string bugs, integer overflows, heap attacks, race conditions, concurrency vulnerabilities, access control, and malicious code; and Nontechnical security issues (e.g., social engineering). The course also covers Computer and Network security issues relevant to Network security threats and attacks; Use of cryptography for network security; and Protection and defense mechanisms and tools. Furthermore, the course focuses on developing secure software by covering topics such as Building security into the software development life cycle, Security in requirements analysis and specification, Secure design principles and patterns, and Secure software construction techniques. A course project is included in a demonstration of different techniques.
|
Course Code
|
SWE321
|
Course Name
|
Software Design and Architecture
|
Credit
|
3(3+0+1)
|
Pre-requisites
|
SWE 312 + SWE 314
|
Co-requisites
|
|
Course Description
|
This course covers the fundamental design principles and strategies for software architecture and design. Architectural styles, quality attributes notations and documents, reference architecture, domain-specific architecture in architecture process and pattern-oriented design, component-oriented design, aspect-oriented design, and interface design in detail design process are discussed. Software evolution, flexibility, Middleware architectures such as COM and .NET are also discussed. An introduction to SOA is also presented. An overview of design issues in user interfaces and the concepts of reusability, portability, and robustness in the design are also given in the course. Students participate in a group project on software design and architecture and design tools.
|
Course Code
|
SWE333
|
Course Name
|
Software Quality Assurance
|
Credit
|
2(2+0+1)
|
Pre-requisites
|
SWE312
|
Co-requisites
|
|
Course Description
|
This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software industry: Measurements of product, process, and resource attributes -Planning a measurements program -Goal/Question/Metric-Collection & analysis of software empirical measurements -Building software metrics -Quality concepts –Software quality assurance -Software quality management -Quality planning and control -Quality manual -Product and process standards -Internal and external software quality attributes -Software reviews, walkthrough and inspection -Statistical software quality assurance –Software configuration management -Software reliability – International Software quality models, e.g. ISO 9000 Quality standards and ISO 9000-3, etc..-Software process improvement –The Capability Maturity Model (CMM), Balanced scorecards. Ethical responsibility to produce high-quality software is also discussed. Students participate in a group project on Software quality assurance.
|
Course Code
|
SWE381
|
Course Name
|
Web Applications Development
|
Credit
|
3(3+0+1)
|
Pre-requisites
|
SWE211
|
Co-requisites
|
|
Course Description
|
This course is a basic introduction to the Internet and WWW. It covers the following topics Static web page development using HTML. Formatting web pages with tables, images, frames and CSS (Cascading Style sheets). Introduction to client-side scripting such as JavaScript. Dynamic web content generation and use of DHTML. Introduction to server-side programming such as PHP, JSP, Java Servlets, and ASP .NET. Database connectivity to web applications. Fundamentals of Web 2.0 – the modern web applications. Basics of other relevant concepts and technologies such as XHTML, XML, Web Services, and Ajax. Students participate in a group project on web design and development.
|
Course Code
|
SWE434
|
Course Name
|
Software Testing and Validation
|
Credit
|
3(3+0+1)
|
Pre-requisites
|
SWE333
|
Co-requisites
|
|
Course Description
|
The course covers software testing and validation in details and include the following topics: Introduction to testing - Software validation and verification – Test cases – Managing the testing process: developing test plans, test scripts and test cases, reports - Unit, functional, and acceptance testing - Black-box and white-box testing - Equivalence partitioning - Path testing – Cyclomatic complexity - Integration testing – System Testing: Regression testing; Interface testing; Stress testing; Incremental testing; Interaction and Usability testing ... etc. - Object-oriented testing - Software testing tools - Alpha, beta, and user acceptance testing – Testing in agile development environment - Automated testing. Students participate in a group project on software testing. Students participate in a group project on software testing.
|
Course Code
|
SWE444
|
Course Name
|
Software Construction Laboratory
|
Credit
|
2(0+4+0)
|
Pre-requisites
|
SWE321 + SWE333
|
Co-requisites
|
|
Course Description
|
This is a course offered as a laboratory where students practice the material learned in previous courses through directed study and supervision. The focus will be mainly on analysis, design, and implementation. Some concepts related to project planning and to quality assurance will also be considered. The class is an ongoing project in which students register to participate as engineers in a specific role in accordance with individual levels of expertise and profile. More emphases should be given in producing a small software application using various tools including case tools, database systems, and programming environments.
|
Course Code
|
SWE455
|
Course Name
|
Software Maintenance and Evolution
|
Credit
|
2(2+0+1)
|
Pre-requisites
|
SWE434
|
Co-requisites
|
|
Course Description
|
This course will introduce the four types of maintenance: corrective, adaptive, perfective, and preventive maintenance; economic implications of maintenance; managerial issues related to system maintenance such as maintenance organizational structure; quality measurement, processes related to change requests and configuration management. Topics including: Website maintenance; the role of CASE tools; reverse engineering, reengineering; code restructuring and amenability measures. Release and configuration management will be also discussed. Students will also learn different maintenance process models such as: Boehm, Osborne, Iterative enhancement and reuse-oriented modes. Students participate in a group project in Software Maintenance and Evolution.
|
Course Code
|
SWE466
|
Course Name
|
Software Project Management
|
Credit
|
3(3+0+1)
|
Pre-requisites
|
SWE333
|
Co-requisites
|
|
Course Description
|
This course covers the main knowledge areas of project management (time, cost, quality, scope, risk, human resources, communications, etc.) by focusing on software projects. Project planning, cost estimation (using COCO and FPs), earned-value analysis techniques and scheduling. Project management tools. Factors influencing productivity and success. Productivity metrics, Analysis of options, risk management and dynamic adjusting of project plans. Planning for change. Management of expectations. Software contracts and intellectual property. Approaches to maintenance and long-term software development. Standards in project management, such as ISO10006 (project management quality) and ISO12207 (software development process) along with CMM model will be also discussed. Case studies of real industrial projects. Ethical behavior of project managers with respect to clients, employers, products, etc. will be also discussed. Students participate in a group project on software project planning and management.
|
Course Code
|
SWE477
|
Course Name
|
Software Engineering Code of Ethics & Professional Practice
|
Credit
|
2(2+0+0)
|
Pre-requisites
|
Passing 95 CH
|
Co-requisites
|
|
Course Description
|
This course is an introduction to information ethics in general and to the professional and ethical aspects of the profession of software engineers in order to be able to fulfill their duties and succeed in their mission. Ethics of Software Engineers and ethical behavior is covered in depth through the IEEE-CS/ACM software engineering code of ethics (with the respect to Public Interest, Client and Employer, Product, Judgment, Management, professional, Colleagues, and Self). The course covers also other important topics: Software Engineering as an engineering and computing discipline; Professional aspects of the Software Engineer profession: certification, licensing, professional engineering societies, employment contracts, etc.; Group Dynamics, interaction with peers, stakeholders, and managers; Communication and presentation skills; Economic impact of Software systems; legal, social, etc. issues in Software Engineering; The profession of Software Engineer in Saudi Arabia and the Gulf region.
|
Course Code
|
SWE479
|
Course Name
|
Practical Training
|
Credit
|
1(++)
|
Pre-requisites
|
Passing 95 CH
|
Co-requisites
|
|
Course Description
|
Training is an important aspect of the educational process in the College of Computer and Information Sciences. Students are required to join an IT center in a government or private sector as a full time for at least 8 weeks during summer prior to their graduation. The aim of the student training is to allow students acquiring the experience and knowledge of real-world work environment (as far as this is possible) as well as applying knowledge and skills they learned in classes in real life and in team working. The student training is evaluated through both his training advisor in the workplace as well as the training committee through the report students write about their training.
|
Course Code
|
SWE481
|
Course Name
|
Advanced Web Applications Engineering
|
Credit
|
3(3+0+1)
|
Pre-requisites
|
SWE381 + SWE312
|
Co-requisites
|
|
Course Description
|
This course covers technical aspects as well as business aspects, market drivers, and site design reflecting interdisciplinary influences on web applications development. The course explains how Web Engineering differs from software engineering, detailing the rapid prototyping and agile development methods mandated by short lead times, emphasis on interactivity and multimedia, and the increased importance of user interfaces and human-computer interaction. It covers: the systematic development of Web applications; requirement engineering for Web applications; modeling; Architectures of Web Applications; technology-driven design; testing, operation, and maintenance of Web applications. Special emphasis should be given to: Web project management, development processes, usability, performance and security of Web applications. The course covers also Web services. Students participate in group projects on advanced web design and development.
|
Course Code
|
SWE482
|
Course Name
|
Human-Computer Interaction
|
Credit
|
3(3+0+1)
|
Pre-requisites
|
SWE381
|
Co-requisites
|
|
Course Description
|
This course helps to build competence, knowledge, and skills in the field of Human-Computer Interaction Design. The goal is to shape new media and tools that will support a human use, augment human learning, enhance communication, and lead to more acceptable technological developments at the individual and the social levels. The course covers the following: Introduction to (HCI) and Human Cognitive Systems. Understanding Users. Interaction Frameworks, Paradigm, and Styles. Evaluation of User Interfaces: Heuristic Evaluation and Usability Testing. Underlying Design Principles and Designing Interaction: Interaction Design Process, User-Centered Design, and Prototyping, Conceptual and Physical Design, Interface Design Standards, Task Analysis and Discovery, Design Principles. Different Features of Interaction and User Interfaces: Color, Interface Components (e.g. Windows, Icons, Menus, Pointers, etc., Icons, Text, Speech, Touch, Augmented Reality, and Haptics. Students participate in in-group projects on the design, development, and evaluation of user interfaces.
|
Course Code
|
SWE483
|
Course Name
|
Mobile Web Development
|
Credit
|
3(3+0+1)
|
Pre-requisites
|
CSC113
|
Co-requisites
|
|
Course Description
|
This course is an introduction to mobile application design and implementation. Through this course, students will be able to design and implement applications for the Android and iOS-based devices. The presented topics cover the essential of the mobile development, mainly: mobile GUI design and implementation, data saving, DB access, network access, use of API features (contacts, file system, Accelerometer, etc.), and security of mobile applications.
|
Course Code
|
SWE484
|
Course Name
|
Multimedia Computing
|
Credit
|
3(3+0+1)
|
Pre-requisites
|
SWE314
|
Co-requisites
|
|
Course Description
|
This course will focus on providing the knowledge and skills about how multimedia information is represented, processed, stored in computers and communicated. The specific topics will include: characteristics of the human visual system; input/output, representation, and processing of different media types like text, image, graphics, video, and speech; multimedia compression and compression standards like JPEG, MPEG etc.
|
Course Code
|
SWE485
|
Course Name
|
Selected Topics in Software Engineering
|
Credit
|
3(3+0+1)
|
Pre-requisites
|
Passing 95 CH
|
Co-requisites
|
|
Course Description
|
This course is designed to enable students to study different special topics of interest, which are carefully selected from software engineering topics. The contents of such a course are to be determined by the department council each time the course is offered. Topics of interest could be one or several from the following: Formal specifications using formal languages (Z, B, etc.), design patterns, component-based development, Agile and eXtreme programming, Aspect-oriented architecture, Service-oriented computing, and architecture, etc. Other topics can be added as needed. Students participate in group projects related to the special topic(s) selected.
|
Course Code
|
SWE486
|
Course Name
|
Cloud Computing And Big Data
|
Credit
|
3(3+0+1)
|
Pre-requisites
|
CEN303 + IS230
|
Co-requisites
|
|
Course Description
|
Cloud computing and related technologies; development status and trends of Cloud computing; Cloud computing applications; main features and technical challenges of Cloud computing; Advanced Topics: Resource Modeling and Definitions for Cloud Data Centers, Cloud Resource Scheduling Strategies, Load Balance Scheduling for Cloud Data Centers. Introduction to big data; Big data problems; The relationship between Cloud computing and big data; Big data technologies; Ontologies and Semantics; Data integration; Measurement and analysis; Legalities and societal issues.
|
Course Code
|
SWE488
|
Course Name
|
Complex Systems Engineering
|
Credit
|
3(3+0+1)
|
Pre-requisites
|
Passing 95 CH
|
Co-requisites
|
|
Course Description
|
This course represents an introduction to complex systems and the methods and tools currently under consideration and uses towards a better understanding of such systems and the development of a complex engineered systems theory. Topics include concepts such as emergence, self-organization, learning and adaptation, and various quantitative and computational intelligence techniques and algorithms that are considered for modeling, analysis, and evaluation of such complex systems. The system-of-systems concept will be also presented. Students will be able to work on a small project in which they have to design and implement a small part of a complex system.
|
Course Code
|
SWE496
|
Course Name
|
Graduation Project I
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
SWE321 + Passing 95 CH
|
Co-requisites
|
|
Course Description
|
The graduation project is the first part of a senior design and development software project that will give the chance to students to apply the knowledge they acquired in the curriculum on a real project. The outcome of this project must be a significant software system, employing knowledge gained from courses throughout the curriculum. The project should cover most phases of the software lifecycle. In this part of the project, the focus will be on software process and development methodologies, requirements analysis & specification, high-level design, quality assurance, as well as on the management of the project. Students must use software case tools to realize their work. They also need to implement a “hello world” version of their software.
|
Course Code
|
SWE497
|
Course Name
|
Graduation Project II
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
SWE496
|
Co-requisites
|
|
Course Description
|
This is a continuation of the graduation project started in SWE496. The focus will be in this part on low-level design, implementation, testing, and quality assurance as well as management of the project. The outcome of this project must be a significant software system, employing knowledge gained from courses throughout the curriculum. Students must use software case tools as well as programming environments to do their work. Students must deliver the code, a final report, and must do a presentation of their work as well as a demo of the software realized.
|
Course Code
|
SWE501
|
Course Name
|
Object-Oriented Software Engineering
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Software construction using a modern object-oriented language with support for graphical user interfaces and complex data structures. Specifications, design patterns, and abstraction techniques, including polymorphic. Information hiding. classes, objects, and inheritance procedural, data, iteration, type, and polymorphic. Information hiding, classes, objects, and inheritance
|
Course Code
|
SWE502
|
Course Name
|
Software Design and Architecture
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Concepts and methods for the architectural design of large-scale software systems. Fundamental design concepts and design notations. Design strategies and methods. Object-oriented analysis and design modeling using the Unified Modeling Language (UML) notation. Project on object-oriented software design.
|
Course Code
|
SWE503
|
Course Name
|
Software Requirements Engineering
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Basics of Requirement Engineering, Requirement Engineering process. Methods, tools, notations, and validation techniques for the analysis, specification, prototyping, and maintenance of software requirements. In-depth study of object-oriented requirements modeling, including use case modeling, static modeling and dynamic modeling using the Unified Modeling Language (UML) notation. Project on software requirements and specifications using a modern method.
|
Course Code
|
SWE504
|
Course Name
|
Distributed Software Engineering
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Techniques and programming interfaces for distributed software engineering. Networking protocols at several layers. Construction of distributed and concurrent software using network protocol services. Applications of Internet and Web-based layer
|
Course Code
|
SWE505
|
Course Name
|
Software Testing and Quality
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Quality Assurance. Software quality factors. Development standards, models and methodologies. Process and product quality assurance. Software reviews and inspections Verification and validation. Software configuration management. Software quality metrics. Concepts and techniques for testing software and assuring its quality. Equivalence partitioning. Test tools and automated testing. Verification and validation methods. Different Testing Framework: The JUnit, DBunit, Web unit testing framework (will cover one or two). Black-box (functional) test design methods white-box (structural) verification methods: code-directed methods; static testing techniques; program proving; code inspection; symbolic execution; data flow anomaly analysis. Dynamic white-box test design techniques control flow/data flow; Instrumentation/Code Coverage ; a-priori testing; adaptive testing; mutation testing; Grey-box (object-directed) test design methods: design & verification; fsm-based methods; checking platform dependencies; object-oriented test planning. testing distributed s/w and protocols. test description languages (ttcn3). Theoretical foundations of testing: computability. Summary - comprehensive software quality engineering.
|
Course Code
|
SWE506
|
Course Name
|
Software Project Management
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Project Management of software engineering projects. Software system engineering and organization methods; work breakdown structure and task determination; effort, duration and cost estimation; scheduling and planning. Monitoring and control; analysis of options; management of risks, change, and expectations. Process and product metrics, post-performance analysis, process improvement, and maturity. Management of Agile Programming methodologies such as Extreme Programming; Case studies.
|
Course Code
|
SWE507
|
Course Name
|
Formal Methodologies in Software Engineering
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Formal mechanisms for specifying, validating, and verifying software systems. Program verification through Hoare's method and Dijkstra's weakest preconditions. Formal specification via algebraic specifications and abstract model specifications, including initial specification and refinement towards implementation. Integration of formal methods with existing programming languages, and the application of formal methods to requirements analysis, testing, safety analysis, and object-oriented approaches. Formal methods using the Object Constraint Language (OCL).
|
Course Code
|
SWE508
|
Course Name
|
Object-based Design Patterns
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Principles of object-oriented design through design patterns. A study of the selection of appropriate object-oriented structure after the system requirements or requirements specification of the software system have been developed. Design patterns are created in the logic view of the software system. A study of generalized design solutions for generalized software design problems. A study of the reuse of design patterns.
|
Course Code
|
SWE509
|
Course Name
|
Software Usability Engineering
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Introduction and background of Software Usability engineering concepts. This includes measuring usability, Heuristic evaluation, Video recorded evaluation, Task analysis, Cognitive walkthroughs and ethics, Experimentation, Internationalization, Accessibility - Usability for the Disabled, use of the different state-of-the-art tools for usability evaluation, and finally, integration of usability engineering into the software engineering lifecycle. This course will also focus on the different aspects of Human-Computer Interaction from the perspective of user interface design and analysis. Group or individual project needs to be completed highlighting both practical as well as research aspects.
|
Course Code
|
SWE510
|
Course Name
|
Special Topics in Software Engineering
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Topics not occurring in existing courses. Topics normally assume knowledge in one or more existing MS SWE courses.
|
Course Code
|
SWE511
|
Course Name
|
Reusable Software Architectures
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
An in-depth study of software concepts that promote the reuse of software architectures. The influence of object technology on software design and reuse is studied. Domain Modeling methods, which model the application domain as a software product family from which target systems can be configured, are investigated. The course also covers reusable software patterns including architecture patterns and design patterns, software components, and object-oriented frameworks.
|
Course Code
|
SWE512
|
Course Name
|
Real-Time and Embedded Systems
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
The topics covered are: Real-time systems and principles supporting design and implementation. Emphasizes fundamental results from real-time scheduling theory and relevance to computer system design - System design issues for real-time applications involving communication networks, operating systems, databases, and multimedia.
|
Course Code
|
SWE513
|
Course Name
|
Enterprise System Architecture
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
An in-depth study of the basic concepts and methodologies for the discipline known as Enterprise IT architecting within a framework, structure, and methodology - Enterprise IT Architecting as a step for designing and developing a system of information systems - Definition of the business, work, functional, information and technical perspectives - Development of complex information systems.
|
Course Code
|
SWE514
|
Course Name
|
Software Engineering Process and Construction
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Basics of Software construction, Formal methods for software construction, managing construction, Tools for model-driven construction. Software process definition, assessment, and measurement. Practical consideration or group project: design of real-time systems and language analyzers using CASE tools, Design, and verification of programs with concurrency, in the context of languages like UML State Machines (SDL) and Java.
|
Course Code
|
SWE515
|
Course Name
|
Software maintenance and Configuration
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Basics of Software maintenance and configuration. Key issues, Maintenance process, processes related to change requests and configuration management, Configuration control SWE release management, Maintenance techniques: reverse engineering, reengineering; code restructuring. Group or individual Project on the state of art research.
|
Course Code
|
SWE516
|
Course Name
|
Software Engineering for the World Wide Web
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Topics to be covered in this course: Architectural frameworks for Ecommerce, Banking, etc. WEB 2.0, Web 3.0 and above – tags, RSS, authoring, web services, XML, Web APIs. Software usability – web accessibility initiative, multimodal interfaces for ease of use. Web application reliability–modeling, testing. Security–Standards and technologies. Scalability–issues, and approaches to the scalable web application. Maintainability– Metrics for maintainability estimates, maintainability models, etc. Client-server architecture. Multi-tier architecture. Event-driven architecture. Database-centric architecture. Middleware–web servers, application servers
|
Course Code
|
SWE517
|
Course Name
|
Component-Based Software Development
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Introduction to the concepts and foundations of the software component and component-based software. A detailed study of the engineering principles of modeling, designing, implementing, testing, and deploying component-based software. State-of-the-art component technologies will also be explored
|
Course Code
|
SWE518
|
Course Name
|
Multimedia Systems
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Introduction to multimedia enabling technologies, services and applications; basic Internet concepts and protocols, compression and networking technology in multimedia systems, Multimedia, and the Internet, Quality of Service (QoS) and Resource Management, Scheduling and synchronization, conferencing and collaboration tools, and security.
|
Course Code
|
SWE519
|
Course Name
|
Web Engineering Methods and Tools
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Web Engineering course topics include but not limited to: Design methodologies to support customizable systems. Development and maintenance models for Web Systems. Documents oriented system development. Server-Side Programming: JSP, Java Beans, JDBC, etc. System security signed applets and encrypted communications. Introduction to programming distributed web architectures. End-User application development and cultural aspects. Techniques for supporting mobile Web devices.
|
Course Code
|
SWE520
|
Course Name
|
Complex Systems Engineering
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Complex systems engineering course topics include but are not limited to: Universality and unification: Complexity paradigms in nonlinear dynamics, networks, and computation. Complexity concepts – universality, emergence, self-organization, nonlinearity, order, criticality, evolution, modularity, competition and cooperation, feedback and adaptation - Interactions and Patterns. - Complex Systems Theories and Models: Mean-field theory and approximation. - Tools of complex systems modeling – simulation techniques; Monte Carlo, cellular automata, agent-based, power-law and heavy-tailed distributions, Networks: genetic networks, neural networks, scientific computing in Practice. - Applications in Biology, Business, Finance, Social and Environmental
|
Course Code
|
SWE521
|
Course Name
|
Service Oriented Computing – SOC
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
This course will cover recent papers and research results for Web Services, including: Web Services, Service-Oriented Architecture (SOA), Service Selection, Service Composition, Service Management, QoS Issues, traditional, and nature-inspired techniques for service computing, Security and Dependability for Web Services, P2P Services, and Service Cloud.
|
Course Code
|
SWE522
|
Course Name
|
Operations Research for Software Intensive Systems
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
This course provides a perspective on the analysis of systems that are stochastic in nature. Topics to be covered are: Probability Theory - Decision Making Under Uncertainty - Deterministic Inventory Models - Probabilistic Inventory Models - Markov Chains - Queueing Theory – Forecasting – Simulation.
|
Course Code
|
SWE523
|
Course Name
|
Principles of C4I Systems
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
This course provides a broad introduction to fundamental principles of Command, Control, Communication, Computing, and Intelligence (C4I). The main topics to be covered are: Target Detection, Tracking, and Identification - Data Fusion, Situation Assessment - Communication & Networking - Combat Modeling - Decision Making – C4ISR Architectures – Queuing Theory and Applications. Case studies, assignments and group projects.
|
Course Code
|
SWE524
|
Course Name
|
Modeling and Simulation for C4I systems
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
This course will focus on the use and characteristics of combat simulations as aids to decision-making. The main topics to be covered are: Combat models - Principles of good analysis using combat models - Attrition algorithms for High-Resolution models: Physical models of attrition - Attrition algorithms for aggregated models - Target detection algorithms: glimpse, continuous- observation, DYNTACS, and ACQUIRE models - Battlefield environment representations - Command-and-control - Modeling Other Battlefield Functions: Force representation, Fire Support, Air Defense, Air Combat models, Logistics - The future of combat models: Object-oriented design, parallelism, and distributed combat simulations - High-Level Architecture overview - High-Level Architecture case studies
|
Course Code
|
SWE525
|
Course Name
|
Sensor Data Fusion
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Investigate common fusion architecture, levels of fusion, well-known data fusion algorithms and look into the recent developments in the area. Study estimation algorithms and hypothesis-testing criteria for multisensory fusion. Analyze the adoption of sensor fusion approaches into different application areas. Topics to be covered in the course: Introduction to sensor data fusion - Basics of different sensors and data formats - Design issues of data fusion systems - JDL data fusion levels - Revised data fusion levels - Algorithms for sensor data fusion: Estimation algorithms for entity parameters or attributes, Identity estimation algorithms for recognition, and Several hypothesis-testing criteria such as data-entity association, situation analysis, etc. - Analyze the adoption of sensor fusion in the following application areas: Military, monitoring and tracking, Pervasive environment, Environment monitoring, Surveillance, Critical infrastructure protection, Intelligent transportation system.
|
Course Code |
SWE526 |
Course Name
|
Estimation and Tracking: Principles and Techniques
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Topics to be covered: Principles and estimation techniques for static and dynamic systems, linear and nonlinear, discrete and continuous time. Estimation for kinematic models, track initiation, bearing-only tracking, tracking maneuvering targets with adaptive filtering, MM (Multiple Model) and interactive MM algorithms. Tracking single target in clutter, nearest neighbor algorithm, tracking and data association, Multiple hypothesis tracking. Tracking performance evaluation.
|
Course Code
|
SWE527
|
Course Name
|
Introduction to Medical Software Engineering
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
The tentative topics may cover: Introduction and overview of basic concepts of Medical Informatics, Online Medical Resources and Search Engines, Patient Informatics, Electronic Health Records, Interoperability, Ubiquitous Technology, Clinical Practice Guidelines, Disease Management, Patient Safety and Information Technology and E-prescribing: Telemedicine and Medical Image Archiving and Communication Systems: Bioinformatics and Public Health Informatics (Public Health Information Network), Emerging Trends in Medical Informatics and Information Technology (Emerging technologies such as voice recognition, artificial intelligence, Service Computing, SOA, Re-HAVE, VoWiFi and biometrics).
|
Course Code
|
SWE528
|
Course Name
|
Analysis, design and development of medical/health information Systems
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Systems development methodologies; the systems development life cycle, and the concepts, tools, and techniques. The fundamentals of database modeling, technologies, and design such as entity-relationship, semantic data modeling, database technologies, and normalization. Basic knowledge of SQL. Case study on medical information systems (hospital, outpatient, nursing, laboratory, pharmacy, etc.), decision-support systems, clinical research and health-assessment systems, technology assessment and healthcare accounting. Course project on the design and development of a DBMS related to one or more of the following: Medical health record and/or medical information system, disease management and drug utilization.
|
Course Code
|
SWE529
|
Course Name
|
Software Project Management in Medical Informatics
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Project management (PM) methods and skills for healthcare. The latest project management techniques for medical informatics projects. Project initiation, planning, implementation, and project termination. Issues related to project leadership, human resources, budgeting, and scheduling, risk identification and risk mitigation tactics. Case discussions highlight the state-or-the-art for project management practices as applied to health informatics in contemporary environments. Case study and practice with some Project management software related to medical informatics. Group project on SPM in medical informatics.
|
Course Code
|
SWE530
|
Course Name
|
E-health
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
The basic concepts such as privacy and security, language and terminologies, standards and interoperability, decision support systems, health informatics specialties. The concepts of organizing health information in a logical way to interface with an electronic information system. The design and role of various health classification systems such as the International Classification of Diseases (ICD), the International Classification of Primary Care (ICPC) and casemix systems (AR-DRGs, AN-SNAP, MH-CASC). Review of technology applications such as Telemedicine and health in the home, web-based applications, cyber-consultations, and wireless technology
|
Course Code
|
SWE531
|
Course Name
|
Software Reliability Engineering
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Software Reliability topics include but not limited to: cleanroom software development, fault avoidance, fault tolerance, exception handling, N-version programming, reliability metrics, recovery blocks, formal methods, functional specifications, and Z Notation.
|
Course Code
|
SWE598
|
Course Name
|
Graduate Project -I
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Students in the non-thesis option will normally complete their project in the last two terms of the program. Students should apply to the non-thesis option in their initial application rather than attempting to transfer to this option once registered in the program. The project supervisor must be a member of SWE dept. The project must represent a significant contribution to the state-of-the-art BUT does not involve the writing up of a dissertation. However, a project report summarizing the work is to be submitted to the project supervisor for grading. This part is dedicated to the literature review, analysis, and design of the project.
|
Course Code
|
SWE599
|
Course Name
|
Graduate Project-II
|
Credit
|
3(3+0+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Students in the non-thesis option will normally complete their project in the last two terms of the program. Students should apply to the non-thesis option in their initial application rather than attempting to transfer to this option once registered in the program. The project supervisor must be a member of SWE dept. The project must represent a significant contribution to the state-of-the-art BUT does not involve the writing up of a dissertation. However, a project report summarizing the work is to be submitted to the project supervisor for grading. This second part is more dedicated to detailed design, implementation, and validation issues.
|
Course Code
|
SWE600
|
Course Name
|
Thesis
|
Credit
|
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
A dissertation thesis that is accomplished via the formal, academic, and scientific approach under the supervision of an academic advisor.
|
Course Code
|
SWE601
|
Course Name
|
Empirical and Data Analysis Methods for Software Engineering
|
Credit
|
3(3+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
The course will first introduce, discuss, and classify various software engineering research methods and approaches. Then the course will focus on the principles, main practices and technologies relevant to using data and statistical analysis to address various software engineering research problems. This course will put emphasis on grasping statistical concepts and interpretation of the outcome of analysis of the statistical data gathered during the different stages of software development lifecycle. Application of statistical methods to empirical software engineering will be in particular covered in-depth. Additionally, students will review different articles, case studies and research papers to have a practical understanding of the use of statistical and data analysis techniques in relevant software engineering.
|
Course Code
|
SWE602
|
Course Name
|
Modeling and Optimization for Software Engineering
|
Credit
|
3(3+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
This course will introduce advanced modeling and optimization techniques from the software engineering perspective. It encompasses relevant methods, models, and techniques from graph theory, operations research, mathematical logic, and discrete mathematics. It will include discussions on modeling principles, model analysis and software engineering methods. It will also focus on formalizing decision making problems affected by uncertainties at different stages of a software development, solving the models with different optimization techniques, and interpreting the results. An important part of the course will be devoted to reading, presentation, and discussion of relevant research papers.
|
Course Code
|
SWE696
|
Course Name
|
Independent study (1)
|
Credit
|
2(2+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
The student registers in this course under a faculty member. The student selects a research topic, with the approval of his adviser, and conduct a research study on the topic. The student submits a detailed report at the end of the course.
|
Course Code
|
SWE697
|
Course Name
|
Independent study (2)
|
Credit
|
2(2+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
The student registers in this course under a faculty member. The student selects a research topic, with the approval of his adviser, and conduct a research study on the topic. The student submits a detailed report at the end of the course
|
Course Code
|
SWE698
|
Course Name
|
Research Seminar
|
Credit
|
1(1+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
The student registers in the Research Seminar course. The student should present their work in research seminars. He should present at least twice (2) on a topic given by the supervisor, and attend at least three (3) research seminars. The research seminars can be organized inside the department, college, or University, or outside the University. Participation in national or international conferences can be counted also up to 50% of the total research seminar requirements.
|
Course Code
|
COM700
|
Course Name
|
Comprehensive Exam
|
Credit
|
(0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
The comprehensive exam will cover three courses. One of the courses must be from one of the research fundamentals courses (SWE 601 or SWE 602). The two other courses will be decided by the department council in coordination with the department graduate studies committee (taking into consideration the research area of the student). The comprehensive exam will have a written part and an oral part.
|
Course Code
|
SWE699
|
Course Name
|
Thesis Proposal Preparation
|
Credit
|
One study unit
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
The student prepares a PhD thesis proposal describing the research problem(s) to be addressed by the proposed research, a thorough literature review of the related works, the objectives, the methodology to be followed, the results and contributions expected from the proposed research, as well as timeline and schedule of the proposed research. The research proposal must be approved by the adviser, the department and the college. The proposal will be defended orally in front of a committee (the advisor and two members). The thesis proposal starts in the third semester after the student finished successfully 50% of coursework and shall be defended successfully by the end of the 6th semester at the latest.
|
Course Code
|
SWE700
|
Course Name
|
Thesis
|
Credit
|
(24) study unit
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
The student writes a detailed thesis dissertation report describing in detail all aspects of the research work accomplished and defends publicly his work in front of a Jury according to the university regulations.
|
List of Elective Courses (1)
Course Code
|
SWE603
|
Course Name
|
Advanced Topics in Software Architecture
|
Credit
|
3(3+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
This course covers concepts and methods for the architectural design of large-scale software systems. Fundamental design concepts, notations, strategies, and methods. This includes architectural patterns and styles, qualitative and quantitative assessment of architectures, quantitative modeling using architecture description languages such as AADL and MARTE, and qualitative architecture evaluation methods, e.g., ATAM. Finally, the course will also address the specific research challenges related to deployment, mobility, and QoS.
|
Course Code
|
SWE604
|
Course Name
|
Software Verification and Validation
|
Credit
|
|
Pre-requisites
|
|
Co-requisites
|
3(3+0)
|
Course Description
|
The objectives of this course are to explore and evaluate the verification and validation theories and practices from a software engineering perspective. The course covers the concepts and techniques for testing software and assuring its quality at the unit, module, subsystem, and system levels. Topics covered include criteria-based test design, test design, test automation, test coverage criteria, Test plan, Various types of tests including white-box, black-box, unit, integration, functional. Regression testing and mutation testing will also be covered. Testing processes, as well as automatic versus manual techniques for generating and validating test data, will also be covered. Various quality assurance techniques including inspections, reviews, consistency checks, quality metrics, etc. will be also part of the course. Software testing best practices (patterns), as well as bad practices (anti-patterns or smells), will be discussed as well as test-driven development (TDD) will also be discussed. Part of the course will be devoted to reading, presentation, and discussion of relevant research papers as well as depicting research trends in software verification and validation.
|
Course Code
|
SWE605
|
Course Name
|
Software Dependability
|
Credit
|
3(3+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Modern Software systems have extended in its distribution, mobility, and complexity. They are failure-prone and difficult to manage and thus hardly dependable. The dependability problems are hard to solve but must be dealt with regularly in order to detect, isolate and recover systems from these problems. This advanced graduate-level course focuses on dependability in software systems and covers different dimensions of software dependability including software availability, software reliability, software survivability/resilience, and software safety. The course will also address current research aiming at addressing challenges caused by software and hardware bugs and software misconfiguration. Students are expected to read and comment on recent research papers related to software dependability. Students are expected to work on a relevant research project during the course.
|
Course Code
|
SWE606
|
Course Name
|
Software Process and Project Management
|
Credit
|
3(3+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
This course covers software process development as well as software project management issues, models, methods, and techniques. Topics covered include software development processes, software development methodologies with a special focus on agile methodologies; Software project management aspects include the key concepts and techniques in software project management knowledge areas including Time management, Cost management, Quality management, Risk management, etc. In addition, software engineering decision support techniques are covered in this course. A special focus will be on models and techniques used in cost, effort, and time estimation and management as well as patterns and anti-patterns in software project management. Relevant research papers will be discussed as part of the course.
|
Course Code
|
SWE607
|
Course Name
|
Software Analytics
|
Credit
|
3(3+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
This course covers analytics models and techniques relevant to the area of Software Systems by analyzing software repositories data. Data in software repositories include various software artifacts such as source code, software bugs, bug reports, test cases, execution traces, user feedback, developers’ comments, programming forums questions and answers, etc. The course covers models and techniques from various domains in order to analyze software repositories data, and gain insights to help software developers and software managers do their work properly and efficiently (improve quality and productivity). Furthermore, the course will also focus on how to predict useful information about new software projects based on the completed projects, gather insight, and make recommendations in light of related literature and research trends.
|
Course Code
|
SWE608
|
Course Name
|
Search-based Software Engineering
|
Credit
|
3(3+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
A large number software engineering problems, in many areas of software engineering, can be viewed and treated as a computational search problem. This course introduces the techniques that can be used to address such problems. Topics covered include: Overview on Search-based Software engineering, large-scale software engineering problems as an optimization problem, Computational search-based approaches, heuristics and meta-heuristics, Applications of search-based approaches to various areas of software engineering including software testing, software project management, and software maintenance. Relevant evaluation techniques and metrics to search-based solutions will also be covered. Students will be exposed to current research trends.
|
Course Code
|
SWE609
|
Course Name
|
Advanced Topics in Software Requirements Engineering
|
Credit
|
3(3+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
This course focuses on advanced software requirements models, methods, techniques, and issues. Topics covered include methods, tools and processes for software requirements elicitation, analysis; notations and models for requirements specification; quality assurance techniques and quality metrics for requirements; formal versus non-formal specifications, patterns and anti-patterns in requirements, requirements traceability, and requirements prioritization techniques. Requirements management in the case of agile methodologies versus traditional methodologies will be also discussed. Part of the course will be devoted to reading, presenting, and discussing relevant research papers in this area.
|
Course Code
|
SWE610
|
Course Name
|
Advanced Topics in Software Maintenance and Evolution
|
Credit
|
3(3+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
This course focuses on advanced software maintenance and evolution issues, models, methods, techniques, and processes. Topics covered include software evolution processes, change impact analysis models and techniques, change propagation techniques, program comprehension and visualization for maintenance purposes, code smells and refactoring techniques for software maintainability, design versus code refactoring, managing technical debt, program evolution and automatic program repair, and software re-engineering. Student will go through the state-of-the-art research in this field.
|
Course Code
|
SWE611
|
Course Name
|
Advanced Topics in Interaction Design
|
Credit
|
3(3+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Nowadays, we are surrounded by cutting edge technology that bridges the digital and physical worlds and then revolutionized the User eXperience (UX). This course gives an insight into some innovative technologies and discusses how they have contributed tremendously to the Human Machine Interaction design and evaluation. It develops deeply into the impact of the evolution of Touch-screen based interfaces, Wearable devices as well as Tangible User Interfaces (TUI), the advent of Augmented Reality (AR) and Virtual Reality (VR) technology, the potential of Gaze-controlled (eye tracking) and Brain-controlled interfaces (BCI), the direct interaction of Human with Artificially Intelligent (AI) machines or Robots... This course covers concepts and techniques that might be used throughout the whole software development process with special focus on the Interaction Design and User-Centered Design (UCD): starting from user needs finding and going through User experience design to usability evaluation. The course work will be supplemented with relevant research papers.
|
Course Code
|
SWE612
|
Course Name
|
Formal Methods for Software Engineering
|
Credit
|
3(3+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
This course studies the formal specification, verification, and synthesis of software. The course will first introduce formal mechanisms for specifying software systems using a variety of specification notations, e.g., Z and UML/OCL, and discuss corresponding analysis techniques, e.g., theorem proving, constraint checking, and model checking, using existing commercial and research tools. In addition, the course covers the integration of formal methods with existing programming languages, and the application of formal methods to requirements analysis, testing, safety analysis, and object-oriented approaches. Also, recent research advances will be covered in the course.
|
List of Elective Courses (2)
Course Code
|
SWE620
|
Course Name
|
Software Mining and Intelligence
|
Credit
|
3(3+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
This course is designed to help researchers in software engineering develop critical thinking, skills, and tools necessary to understand and apply different mining techniques to various real-world software engineering data, in addition to utilizing these concepts and techniques to manage, maintain and evolve complex software systems and projects. Topics covered include Data preprocessing (selection, cleaning, and transformation), Supervised/unsupervised learning, data mining and processing techniques (e.g. classification, clustering, association rules, decision-trees, etc.), Text mining approaches, applied to various software artifacts. Various machine learning techniques will be discussed with enough depth including deep learning approaches, and their potential applications in Software Engineering. The emerging and promising field of software intelligence, which relies on the advances in mining software engineering data, will also be introduced and discussed from the perspective of supporting decision-making processes throughout the lifetime of a software system.
|
Course Code
|
SWE621
|
Course Name
|
Data Science and Engineering
|
Credit
|
3(3+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
This course provides a solid view on data science and engineering, in the context of big data, including scientific methods, processes, techniques, and tools to extract process and analyze the data, and extract new knowledge and insights from data in various forms. The successful deployment of data science in any organization depends on how data is stored and processed. We cover in this course also the fundamentals and architecture of data storage, retrieval and processing, and visualization. A special attention will be given to analyzing and interpreting data, and applying reasoning techniques for tactical as well as strategic decision making. Advanced hands-on data visualization techniques for data exploration, pattern discovery, data interpretation and explanation of data results will also be covered in this course. Reading and presenting research papers will be also part of this course.
|
Course Code
|
SWE622
|
Course Name
|
Advanced Topics in Multimedia Software Systems
|
Credit
|
3(3+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Tِhis course will tackle Multimedia Software Systems from two complementary angles: 1) apply multimedia computing to the practice of software engineering; and 2) apply software engineering principles to the development of multimedia software systems. In fact, developing multimedia software systems entails understanding a variety of advanced technologies; in addition, multimedia software systems design and programming poses a significant challenge in terms of handling a variety of hardware devices, multimedia data formats, or communication protocols. This course will cover multimedia enabling technologies to understand, analyze, and build multimedia software systems. Topics covered include multimedia content analysis and processing, services and applications, Internet concepts and protocols, compression and networking technology in multimedia system, Multimedia and the Internet, Quality of Service (QoS) and Resources Management, Scheduling and synchronization, conferencing and collaboration tools and Security, and multimedia information retrieval. Research trends related to this field will be covered.
|
Course Code
|
SWE623
|
Course Name
|
Mobile and Pervasive Software Systems
|
Credit
|
3(3+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
This course will focus on the understanding of mobility, ubiquity, and the pervasiveness of modern software systems. The students will explore and research different software engineering aspects in this paradigm. More specifically, this course will investigate different design issues of mobility and pervasiveness of modern smart systems, like IoT systems, cyber-physical systems and smart city services. Part of the course will be devoted to reading, presentation, and discussion of relevant research papers.
|
Course Code
|
SWE624
|
Course Name
|
Cybersecurity and Software Systems
|
Credit
|
3(3+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
This course teaches the principles of cyber-security aspects, with a particular emphasis upon the security properties and implications on software and information technologies. It provides the opportunity to focus on the application of these principles, the best practices and the current advances in the field. More specifically this course will provide the knowledge and skills that will support the development of secure, robust, and reliable software systems by detecting fraud, upholding the trust, and safeguarding privacy. The traditional information, computer, and network security constitutes the basics on which we rely, but go further in studying research approaches, models, and methodologies for the design, implementation, and testing of secure software systems. The course will also expose the students to the research trends in the area.
|
Course Code
|
SWE625
|
Course Name
|
Cloud-based Software Systems
|
Credit
|
3(3+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
This course will give the students a comprehensive view of the cloud computing landscape. It will explore the software defined architecture of cloud and the approaches of defining and configuring highly available cloud services. Also will be explored the different service models of the cloud: IAAS, PAAS, SAAS. The course will further elaborate on the techniques of developing enterprise software solutions on cloud platform. The students will conduct research and implement cloud computing services as part of project work to get further understanding of the concept.
|
Course Code
|
SWE626
|
Course Name
|
Select Topics in Software Engineering
|
Credit
|
3(3+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
This course teaches the principles of modern software engineering that arise in the area, together with the tools, methods and techniques that support their application. It aims to refine the understanding of foundational topics and to explore the state-of-the-art and new trends in software engineering research. Examples of topics that can be covered in this course for now include theoretical concepts around Agent Oriented Software Engineering or Service Oriented Architecture (SOA) are growing in importance in industrial application. Practical tools and methods around Big Data, Cloud computing and Virtualization, Artificial Intelligence and Internet of Things (IoT) have become topics of keen interest to software engineers and researchers. This course combines the investigation of theory and practical aspects in software engineering and discusses its flourishing research directions.
|
Course Code
|
SWE627
|
Course Name
|
Simulation and Modelling of Distributed Software Systems
|
Credit
|
3(3+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
The aim of the course is to provide an understanding of methods, techniques and tools for modeling, simulation and performance analysis of large-scale distributed software systems. This includes studying Distributed Interactive Simulation (DIS), High-Level Architecture (HLA) and Test & Training Enabling Architecture (TENA) Standards. The course discusses issues related to simulation interoperability and composability execution and explores the time management algorithms and approaches to synchronization. Part of the course will be devoted to reading, presentation, and discussion of relevant research papers.
|
Course Code
|
SWE628
|
Course Name
|
Text Retrieval and Analysis for Software Engineering
|
Credit
|
3(3+0)
|
Pre-requisites
|
|
Co-requisites
|
|
Course Description
|
Text Retrieval (TR) and Natural Language Processing (NLP) have a large number of applications in almost all areas of Software Engineering including Use case analysis, Traceability Link Recovery, Feature or bug location, Program comprehension, Defect prediction and debugging, Automatic documentation, Requirements, Refactoring, Change Impact analysis, etc. The bottom line is to formulate a given software engineering task as a text retrieval problem and find the software artifacts that satisfy a particular information need. The main NLP and TR concepts and techniques presented will be relevant to Software Engineering problems and will cover the whole retrieval lifecycle including corpus preprocessing, corpus indexing, query formulation, document similarity and ranking, and Performance evaluation. Techniques include tokenization, stemming, Vector Space Model (VSM), Latent Semantic Indexing (LSI), Latent Dirichlet Allocation (LDA), Term Frequency-Inverse Document Frequency (TF-IDF), Relevance feedback, Scoring and Thresholding, Precision and recall and F-measure metrics, etc. The corpus used to illustrate these concepts and techniques will be a collection of software engineering documents including the code, use case narratives, programming forums’ questions, and answers, etc. The course introduces also the use of semantic computing/technologies (e.g., ontologies, text mining, and knowledge integration techniques) in diverse tasks such as traceability and impacts analysis, system comprehension, software artifact analysis, etc. The course will cover research trends in this domain.
|