The main objective of this course is to provide students with the knowledge and necessary skills for building software with focus on analysis, design, and building models. It covers a range of topics including: concepts and terminology, the software development process, software planning and management, software requirements specifications, system modeling, software prototyping, quality specifications, program specifications, system and software design approaches (function-oriented design, object-oriented design, distributed systems design), software engineering CASE tools. This course is supplemented by a practical component covered in CIS245 (concurrently).
The main objective of this course is to provide students with basic concepts, knowledge, and necessary skills in analysis and design of object oriented systems with emphasis on the models offered by the Unified Modeling Language (UML) and the system life cycle using the Rational Unified Process (RUP). It covers a range of topics including: Object-oriented design concepts, foundations and elements of the object-oriented model, classes and objects, relationships among classes, relationships among objects, approaches to identifying classes and objects, object-oriented design and modeling methodologies using UML (class and object diagrams, interaction diagrams, state transition diagrams, component diagrams, deployment diagrams, etc.), the object-oriented software development process (analysis, design and implementation as presented in the RUP), CASE tools. This course is supplemented by a practical component covered in CIS445 (concurrently).
The main objective of this course is to provide students with the main principles that are needed to understand and deal with different kinds of files, their structures, and techniques. It covers a range of topics including: file concepts, basic file operations, physical file organization, file compression techniques, sequential file structures, hashing and direct organization structures, indexed structures, list file structures (inverted, multi-key, etc.), tree structures (B trees, B+ trees,... etc.), external sorting techniques, searching techniques. The practical part for this course is covered through exercises and writing programs using one of the programming languages.
|CIS_641_Advanced Software Enginieering|
Architectural Design. Software Reusability. Software Reliability, Safety, and Security. Fault Minimization and Tolerance. Verification &Validation. Testing Methodologies. Cost Estimation Techniques. Quality Assurance. Software Evolution and Change.
|CIS_103_ Introduction to Information Technology|
The main objective of this course is to provide students with the main concepts of information and communications technologies, their applications, and infrastructure. It covers a range of topics including: data processing technologies, I/O and storage technologies, multimedia technologies, emerging telecommunications and network technologies, IT applications (such as: e-mail, e-publishing, e-commerce, e-learning, e-government, money transfer and banking systems, robotics and factory control systems), selection criteria of hardware and software, the software and hardware market, social and global issues of IT, future trends.
|CIS 644: Software Testing and Performance Assessment|
Defect Testing Techniques. Integration Testing Techniques. Object-Oriented Testing. Software Measurement and Metrics. Process and Product Quality. Legacy System Assessment. Performance Evaluation.
|CIS 646: Advanced Object-Oriented Design|
The Object Model. Software Complexity and the object oriented (O.O) Paradigm. Abstraction, Encapsulation and Information Hiding. Inheritance and Polymorphism. Object Communication Model. Classification and Object Identification. Object-Based Modular Decomposition. Concurrent Objects. Design Patterns. Static and Dynamic Design Models. Architectural Design. Reusable Objects. Object Interface Specification. Design Evolution. Distributed Object Architectures. O.O. Databases. O.O. Software Metrics. Competing Methodologies. Benefits and Risks of O.O. Development. Applications and Case Studies.