1st Semester.MTech - Rayat Bahra University

Annexure V
1st Semester: M.tech (CSE)
Subject Code: CS 6101
L T P C
4 0 0 4
Subject: Object Oriented Analysis And Design
Credits: 04
Course Objective: The main objective of the course is to expose the students to
model the software architecture using different UML diagrams.
UNIT-01
06
An Overview Of Object Oriented Systems Development
Introduction, Two Orthogonal Views Of The Software, Object Oriented Systems
Development Methodology, Why An Object Orientation.
UNIT-02
03
Object Oriented Modeling
Object Oriented Modelling : The Importance Of Modeling, Principles Of Modeling,
Object Oriented Modeling
UNIT-03
07
UML
Introducing The Uml: An Overview Of The Uml , A Conceptual Model Of The Uml,
Architecture, SDLC, Agile software.
UNIT-04
06
Basic Structural Modeling
Classes, Relationships, Common Mechanisms, and diagrams, class diagrams
Advanced Structural Modeling: Advanced classes, advanced relationships, Interfaces,
Types and Roles, Packages, Object diagrams.
UNIT-05
08
Basic Behavioral Modeling
Interactions, Interaction Diagrams, Use Cases, Use Case Diagrams, Activity
Diagrams Advanced Behavioral Modeling: Events And Signals, State Machines,
Processes And Threads, Time And Space, State Chart Diagrams.
UNIT-06
06
Architectural Modeling
Component, deployment, component diagrams and deployment diagrams,
Architectural modeling ii: Patterns and frameworks, collaborations, systems and
models.
UNIT-07
Case Study
Bank ATM Application, Railway Reservation System.
Learning Outcome
After completion of the course, student will be able to:
06
Annexure V
1.
2.
3.
4.
Demonstrate the Object Oriented Systems Development.
Design Basic & Advanced Structural Modeling.
Demonstrate Basic & Advanced Behavioral.
Design Architectural Modeling
Textbook: Grady Booch, James Rumbaugh, Ivar Jacobson, “The Unified Modeling
Language User Guide”, 2nd Edition, Pearson Education, 2007.
Reference Books:
1. Meilir Page-Jones, “Fundamentals of Object Oriented Design in UML”, 1st
Edition, Pearson Education, 2006.
2. Pascal Roques, “Modeling Software Systems Using UML2”, 1st Edition,
WILEY Dreamtech, 2007.
3. Atul Kahate, “Object Oriented Analysis & Design”, 1stEdition, TMH, 2007.
4. Mark Priestley, “Practical Object-Oriented Design with UML”, 2nd Edition,
TMH, 2005.
5. Craig Larman, “Appling UML and Patterns: An introduction to Object”,
Oriented Analysis and Design and Unified Process, 3rd Edition, Pearson
Education, 2007.
Annexure V
1st Semester: M.tech (CSE)
Subject Code: CS 6102
L T P C
4 0 0 4
Subject: Advanced Data Structures and Algorithms
Credits:4
Course Objective: The objective of this course is to study general computational
problems, with a focus on the principles used to design the algorithms.
UNIT-01
05
Overview
Algorithm concepts, asymptotic efficiency of algorithms, asymptotic notations and
their properties, Recurrence equations and method of solving recurrences, Searching
using hash tables, open addressing using linear probing, Medians and order statistics.
UNIT-02
06
Elementary Data Structures
Stacks and queues, Linked lists, Hash Tables, Binary Search Trees; Red-Black Trees:
Properties of red-black trees, Rotations, Insertion, Deletion; Augmenting Data
Structures: Dynamic order statistics, How to augment a data structure, Interval trees.
UNIT-03
06
Advanced Design and Analysis Technique
Dynamic Programming: Elements of dynamic programming, Optimal binary search
trees, Greedy Algorithms: Elements of the greedy strategy, Huffman codes,
Theoretical foundations for greedy methods, A task-scheduling problem, Amortized
Analysis: Aggregate analysis, the accounting method, the potential method, Dynamic
tables.
UNIT-04
06
Advanced Data Structures
B-Trees: Definition of B-trees, Basic operations on B-trees, deleting a key from a Btree Data Structures for Disjoint Sets: Disjoint-set operations, Linked-list
representation of disjoint sets, Disjoint-set forests.
UNIT-05
08
Advanced Graph Algorithms
Breadth First and Depth First Search, minimum spanning trees, shortest path
algorithms: single source and all pair, max flow problem and its solutions. linear
Programming - Standard and Slack forms, Formulating problems as linear programs,
simplex Algorithm, representation of polynomials, DFT and FFT.
UNIT-06
05
String Matching and Approximate Algorithms
Rabin Karp algorithm, String matching with finite automaton, Knuth-Morris-Pratt
algorithm. Approximate Algorithms - Approximate algorithms for vertex cover
problem, traveling sales person problem, sum-subset problem
Annexure V
UNIT-07
06
NP-Completeness Concepts
Polynomial time verification, NP-completeness and reducibility, showing problems to
be NP-complete like Clique problem, vertex cover problem.
.
Learning Outcome
After completion of the course, student will be able to:
1. Design and analysis techniques such as greedy algorithms, dynamic
programming
2. Use different computational models such as divide-and-conquer to analyze the
complexity/performance of different algorithms.
Textbook: Cormen, Leiserson, Rivest, Stein, “Introduction to Algorithms”, Prentice
Hall of India.
Reference Books:
1. Horowitz, Sahini, “Fundamentals of algorithms”, University Press.
2. Brassard, Bratley, “Fundamentals of algorithms”, Prentice Hall of India.
3. Knuth, “The Art of Computer Programming”, Vol. I-III, Pearson Education.
4. Kleinberg and Tardos, “Algorithm Design”, Pearson Addison-Wesley
Annexure V
1st Semester: M.tech (CSE)
Subject Code: CS 6103
Subject: Software Testing and Quality Assurance
L T P C
4 0 0 4
Credits:4
Course Objective: This course presents a comprehensive study of software testing and
quality control concepts, principles, methodologies, management strategies and
techniques. The emphasis here is on understanding software testing process, and testing
methods, as well as software quality assurance concepts.
UNIT 01
06
Introduction
Terminology, Evolving nature of area, Errors, Faults and Failures, Correctness and
reliability, Testing and debugging, Static and dynamic testing, Exhaustive testing:
Theoretical foundations: impracticality of testing all data, impracticality of testing all
paths, no absolute proof of correctness, Black Box Testing and White Box Testing.
UNIT 02
08
Software Testing Approaches And Their Applicability
Software technical reviews; Software testing: levels of testing module, integration,
system, regression; Testing techniques and their applicability-functional testing and
analysis, structural testing and analysis, error-oriented testing and analysis, hybrid
approaches, integration strategies, transaction flow analysis, stress analysis, failure
analysis, concurrency analysis, performance analysis; Proof of correctness; simulation
and prototyping; Requirement tracing.
UNIT 03
06
Test Generation
Test generations from requirements, Test generation paths, Data flow analysis, Finite
State Machines models for flow analysis, Regular expressions based testing, Test
Selection, Minimizations and Prioritization, Regression Testing, Web Testing.
UNIT 04
05
Object Oriented Testing
Object Oriented Testing Issues, OO Testing Methodologies, Analysis and Design
Testing-UML Based, Class Testing, Integration Testing, Testing Hierarchies.
UNIT 05
Software Quality Assurance Concepts And Standards
07
Annexure V
Quality Concepts, Quality Control, Quality Assurance, SQA Activities, Software
Reviews, Formal Technical Reviews, Review Guidelines, Software Reliability,
Software Safety, Quality Assurance Standards, ISO 9000, ISO 9001:2000, ISO 9126
Quality Factors, CMM, TQM, Six Sigma, SPICE, Software Quality Assurance Metrics.
UNIT 06
05
Risk Management And Change Management
Software Risks, Risk Identification, Risk Projection, Risk Refinement, The RMMM
Plan, Software Configuration Management, Baselines, Software Configuration Items,
UNIT 07
05
SCM Process
SCM Process: Version Control, Change Control, Configuration Audit, Configuration
Management for Web Engineering.
Learning Outcome
After completion of the course, student will be able to:
1. Demonstrate different software testing techniques.
2. Evaluate risk management and change management.
Textbook: 1. Boris Beizer, Software Testing Techniques, John Wiley & Dreamtech.
Reference Books:
1. William E. Perry, Effective Methods for Software Testing, John Wiley & Sons.
2. Aditya P. Mathur, Foundations of Software Testing, Pearson Education.
3. Glenford J. Myers, The Art of Software Testing, Wiley India Pvt. Ltd.
4. John D. McGregor & David A, A practical guide to testing object-oriented
software, Addison- Wesley object technology series.
5. R.S. Pressman, Software Engineering: A Practitioner's Approach, Sixth Edition,
Tata McGraw-Hill.
Annexure V
1st Semester: M.tech (CSE)
Subject Code: CS 6104
L T P C
4 0 0 4
Subject: Distributed Operating System
Credits: 4
Course Objective
This course provides an introduction to the fundamentals of distributed computer
systems, assuming the availability of facilities for data transmission. The structure of
distributed systems using multiple levels of software is emphasized.
UNIT-01
08
Architectures of Distributed Systems
System Architecture types - issues in distributed operating systems - communication
networks – communication primitives. Theoretical Foundations - inherent limitations
of a distributed system – lamp ports logical clocks – vector clocks – casual ordering
of messages – global state – cuts of a distributed computation – termination detection.
UNIT-02
04
Distributed Mutual Exclusion
Distributed Mutual Exclusion – introduction – the classification of mutual exclusion
and associated algorithms – a comparative performance analysis.
UNIT-03
05
Distributed Deadlock Detection
Introduction - deadlock handling strategies in distributed systems – issues in deadlock
detection and resolution – control organizations for distributed deadlock detection –
centralized and distributed deadlock detection algorithms –hierarchical deadlock
detection algorithms.
UNIT-04
06
Distributed shared memory-Architecture
Algorithms for implementing DSM – memory coherence and protocols – design
issues. Distributed Scheduling – introduction – issues in load distributing –
components of a load distributing algorithm – stability – load distributing algorithm –
performance comparison –
UNIT-05
08
Failure Recovery and Fault Tolerance
Failure Recovery and Fault tolerance: introduction– basic concepts – classification of
failures – backward and forward error recovery, backward error recovery- recovery in
concurrent systems – consistent set of check points – synchronous and asynchronous
check pointing and recovery – check pointing for distributed database systemsrecovery in replicated distributed databases.
UNIT-06
Protection and security
06
Annexure V
Preliminaries, the access matrix model and its implementations.-safety in matrix
model- advanced models of protection.
UNIT-07
08
Multiprocessor operating systems
Basic multiprocessor system architectures – inter connection networks for
multiprocessor systems – caching – hypercube architecture. Multiprocessor Operating
System - structures of multiprocessor operating system, operating system design
issues- threads- process synchronization and scheduling.
Learning Outcome
After completion of the course, student will be able to:
1. Demonstrate what a distributed system is, why one would design a system
as a distributed system, desired properties of such systems.
2. Evaluate the problems and challenges associated with these principles, and
evaluate the effectiveness and shortcomings of their solutions; recognise
how the principles are applied in contemporary distributed systems,
3. Demonstrate how they affect the software design, and be able to identify
features and design decisions that may cause problems.
4. Design a distributed system that fulfils requirements with regards to key
distributed systems properties (such as scalability, transparency,etc).
Textbook:
1. Andrew S.Tanenbaum, "Distributed operating system", Pearson education,
2003.
Reference Books:
2. Mukesh Singhal, Niranjan G.Shivaratri, "Advanced concepts in operating
systems: Distributed Database and multiprocessor operating systems",
TMH, 2001.
3. Andrew S.Tanenbaum, "Modern operating system", PHI, 2003
4. Pradeep K.Sinha, "Distributed operating system-Concepts and design", PHI,
2003.
Annexure V
1st Semester: M.tech (CSE)
Subject Code: CS 6105
L T P C
4 0 0 4
Subject: Advanced computer architecture
Credits:4
Course Objective
The main objective of this course is to provide students with an understanding and
appreciation of the fundamental issues and tradeoffs involved in the design and
evaluation of modern computers. Topics will include, design and evaluation of
instruction set architectures, pipelining techniques, multi-level memory hierarchies,
superscalar processor design, multi-threading and multi-processing.
UNIT 01
06
Basic organization and architectural techniques
RISC processors, Characteristics of RISC processors, RISC Vs CISC, Classification
of Instruction Set Architectures, Review of performance measurements.
UNIT 02
06
parallel processing techniques
Basic parallel processing techniques: instruction level, thread level and process level,
Classification of parallel architectures.
UNIT 03
10
Instruction level parallelism
Basic concepts of pipelining, Arithmetic pipelines, Instruction pipelines, Hazards in a
pipeline: structural, data, and control hazards, Overview of hazard resolution
techniques.
UNIT 04
06
Vector Pipelining, Dynamic instruction scheduling, Branch prediction techniques,
Instruction-level parallelism using software approaches, Superscalar techniques,
Speculative execution.
UNIT 05
06
Memory hierarchies
Inclusion, Coherence and locality properties; Cache memory organizations,
Techniques for reducing cache misses; Virtual memory organization, mapping and
management techniques, memory replacement policies.
UNIT 06
06
Thread level parallelism
Centralized vs. distributed shared memory, Interconnection topologies,
Multiprocessor architecture, Symmetric multiprocessors, Cache coherence problem,
Annexure V
Synchronization, Memory consistency, Multi-core architecture.
UNIT 07
Review of modern processors
Pentium Processor: IA 32 and P6 micro architectures, ARM Processor.
04
Learning Outcome
After completion of the course, student will be able to:
1. Design modern memory system techniques including single and multi-level
cache and virtual memory
2. Evaluate processor pipeline issues, including pipeline hazards and associated
mitigation techniques.
3. Demonstrate advanced scheduling techniques and instruction-level parallelism
used in modern super-scalar processors.
4. Analyze relevant design issues for multiprocessor systems, including cache
coherency issues
Textbook:
1. Advanced Computer Architectures – A Design space approach, Dezso Sima,
Terence Fountain, Peter Kacsuk, Pearson Education 1997.
Reference Books:
1. K Hwang, Advanced Computer Architecture, Tata McGraw-Hill Education,
2003
2. David E. Culler, Jaswider Pal, Parallel computer Architecture, Gulf
Professional Publishing, 1999
3. John L. Hennessy and David A. Patterson, Computer Architecture: A
Quantitative Approach, Third Edition, Morgan Kaufmann, May 2002.
Annexure V
1st Semester: M.tech (CSE)
Subject Code: CS 6106
L T P C
0 0 2 1
Subject: Object Oriented Analysis and Design Lab
Credits:01
Course Objective:
The main objective of this laboratory is to implement Object oriented Programming.
Students will be able to design various diagrams with rational rose.
1: To implement inheritance in OOP.
2: To implement polymorphism in OOP.
3: To prepare DSP for a case study.
4: To implement class diagram using rational rose.
5: To implement object diagram using rational rose.
6: To implement use case diagram using rational rose.
7: To implement activity diagram using rational rose.
8: To implement state chart diagram using rational rose.
9: To implement sequence diagram using rational rose.
10: To implement collaboration diagram using rational rose.
11: To implement component diagram using rational rose.
12: To implement deployment diagram using rational rose.
Learning Outcome
1. Design and implement object oriented programming.
2. Designing of various diagrams using rational rose.
Annexure V
1st Semester: M.tech (CSE)
Subject Code: CS 6107
L T P C
0 0 2 1
Subject: Advanced Data Structures and Algorithms Lab
Credits:01
Course Objective
The main objective of this laboratory is to design and implement various basics and
advanced data structure algorithms.
1. Implement singly and doubly linked lists.
2. Represent a polynomial as a linked list and write functions for polynomial addition.
3.Implement stack and use it to convert infix to postfix expression
4.Implement array-based circular queue and use it to simulate a producer-consumer
problem.
5. Implement an expression tree. Produce its pre-order, in-order, and post-order traversals.
6. Implement binary search tree.
7. Implement insertion in AVL trees.
8. Implement priority queue using heaps.
9. Implement hashing techniques.
10. Perform topological sort on a directed graph to decide if it is acyclic.
11. Implement Dijkstra's algorithm using priority queues.
12. Implement Prim's and Kruskal's algorithms.
13. Implement a backtracking algorithm for Knapsack problem.
14. Implement a branch and bound algorithm for traveling salesperson problem.
15. Implement any randomized algorithm.
16 Implement the following sorting methods:
a) Merge sort b) Quick Sort c) Selection Sort
Learning Outcome
1. Implement data structure algorithm using object oriented approach.
2. Designing of various data structure algorithm.
Annexure V
1st Semester: M.tech (CSE)
Subject Code: CS 6108
L T P C
0 0 2 1
Subject: Distributed Operating System Lab
Credits:01
Course Objective
The main objective of this laboratory is to design and implement various distributed
system programs using JAVA or object oriented code.
1. Write a program to simulate the functioning of Lamport’s logical clock in 'C’.
2. Write a program to simulate the Distributed Mutual Exclusion in ‘C’.
3. Write a program to implement a Distributed chat server using TCP sockets in
‘C’.
4. Implement RPC mechanism for a file transfer across a network in ‘C’.
5. Write a JAVA code to implement ‘Java RMI’ mechanism for accessing
methods of remote systems.
6. Write a code in ‘C’ to implement sliding window protocol
7. Implement corba mechanism by using c++ program at one end and java
program at the other
8. Write a Program to implement Concurrent Echo Client Server Application.
9. Write the Programs for Remote Procedure call.
10. Write the Programs for Remote Method Invocation.
11. Write the Programs for Thread Programming in JAVA.
12. Write a Program to Increment a Counter in Shared Memory.
Learning Outcome
1. Design algorithm for various distributed system programs.
2. Implementing various distributed system programs in JAVA code.