ITSE422 : Software Reuse and Component-Based Software Engineering (CBSE)

Department

Department of Software Engineering

Academic Program

Bachelor in Software Engineering

Type

Compulsory

Credits

03

Prerequisite

ITGS211

Overview

The course aims at introducing the students to the methods and techniques for constructing large-scale software systems from preexisting components; Topics include: Market versus technology; Component standards; component definition; Components interfaces and re-entrance; Aspects of scale and granularity; Patterns, frameworks, architectures; Reusing design patterns; Common Object Request Broker Architecture (CORBA); Java Beans; Enterprise Java Beans (EJB); Component development; Component distribution, acquisition and assembly.

Intended learning outcomes

Knowledge &understand

  • List the basic CBSE Standards and structures.
  • List the concept of CBSE Process, and main models.
  • Demonstrate knowledge of technologies and standards for component-based software.
  • List advanced concepts of CBSE modeling, analysis and testing.
  • List the concept of Quality of CBSE..

mental skills

  • Compare various kinds of software reuse.
  • Analyze and compare different CBSE models.
  • Conclude requirements and specifications.
  • Develop of systems architecture design.
  • Evaluate the quality of CBSE.

Practical & professional skills

  • Grasp knowledge of UML notation: to give the ability to produce UML documentation.
  • Implement solutions of a range of software tools in support of the CBSE.
  • Implement solutions using web service examples.
  • Applying testing strategies (Ex: Unit testing)
  • Wiring standards in CBSE.

General and transferable skills

  • . Using knowledge and sources effectively
  • Searching capabilities. (Identify best practices in CBSE)
  • Group-working & presentation skills (real-life practical requirement).
  • Discuss and work in a group in order to design and implement CBS system.
  • Hand in assignments, reports and projects in time.

Teaching and learning methods

  • Lectures.
  • Seminars.
  • Tutorials.
  • Problem-based/enquiry-based learning.
  • Laboratory and practical learning.
  • Projects.

Methods of assessments

  • Midterm Exam = 25
  • Project (Practical, Presentation and Documentation) = 40
  • Final Exam = 35

Course contents

  • Software Reuse Fundamentals
  • Introduction to CBSE
  • Modeling Components with UML
  • Basic Concepts in CBSE
  • Component Specification
  • Component Composition and Integration
  • Architecting Component-Based Systems
  • Component Engineering Process:
  • Domain Engineering
  • Domain Engineering: Pattern-based Design, Component Repositories, Qualification and
  • Adaptation.
  • Reuse and Composition in Service Computing
  • Existing
  • Component Techniques
  • Component-Based Development Models
  • Component testing in CBSE
  • Major Issues in Component-Based Software Engineering and its Available Techniques

Networks Programming (ITSE405)
Mobile Applications Development (ITSE304)
Cryptographic Algorithms and Protocols (ITSE306)
Information Retrieval Systems (ITSE307)
Mobile Operating System (ITSE308)
Programming Paradigms (ITSE309)
Principles of Games Developments (ITSE401)
Multimedia Systems (ITSE404)
Cloud Computing (ITSE406)
Web Services (ITSE407)
Web Applications Development (ITSE408)
Modelling of Complex Systems (ITSE303)
Data Mining/Business Intelligence (ITSE302)
Social Networking (ITSE409)
Logic Programming (ITSE301)
Mathematics I (ITMM111)
Physics (ITPH111)
Problem solving Technic (ITGS113)
Intro to Information Technology (ITGS111)
General English1 (ITEL111)
Arabic language 1 (ITAR111)
Mathematics II (ITMM122)
Arabic language 2 (ITAR122)
General English2 (ITEL122)
Introduction to Programming (ITGS122)
System Analysis and Design (ITGS124)
logic Circuit Design (ITGS126)
Introduction to Networking (ITGS215)
Introduction to Statistics (ITST211)
Object Oriented Programmin (ITGS211)
Introduction to Software Engineering (ITGS213)
Discrete Structures (ITGS217)
Numerical analysis (ITGS219)
Introduction to Databases (ITGS228)
Data Structure (ITGS220)
Foundation of Information Systems (ITGS222)
Introduction to Internet Programming (ITGS226)
Computer Architucture & Organization (ITGS223)
Information Security (ITGS224)
Design and Analysis algorithms (ITGS301)
IT Project Management (ITGS303)
Software Requirements Analysis (ITSE311)
Advanced Databases (ITSE312)
Scientific Writing (ITGS304)
Modern Programming Language (ITSE322)
Software Construction (ITSE321)
Operating System (ITGS302)
Software Design and Architecture (ITSE411)
Advanced Internet Programming (ITSE412)
Human Computer Interaction (ITSE413)
Software Engineering Ethics (ITSE414)
Software Quality Assurance and Testing (ITSE421)
Software Reuse and Component-Based Software Engineering (CBSE) (ITSE422)
Visual Programing (ITSE423)
software design models (ITSE424)