85
INDIAN INSTITUTE OF INFORMATION TECHNOLOGY SRIRANGAM, TIRUCHIRAPPALLI M.Tech (SOFTWARE ENGINEERING) CURRICULUM AND SYLLABUS 1

2. IIIT M.tech SE Syllabus

Embed Size (px)

Citation preview

Page 1: 2. IIIT M.tech SE Syllabus

INDIAN INSTITUTE OF INFORMATION TECHNOLOGY

SRIRANGAM, TIRUCHIRAPPALLI

M.Tech (SOFTWARE ENGINEERING)CURRICULUM AND SYLLABUS

1

Page 2: 2. IIIT M.tech SE Syllabus

M.Tech SOFTWARE ENGINEERING

CURRICULUM I TO IV SEMESTERS

SEMESTER I

SL.

NO

COURSE

CODECOURSE TITLE L T P C

1. Applied Probability and Statistics 3 1 0 4

2. Advanced Data Structures and Algorithms 3 0 2 4

3. Object Oriented Software Engineering 3 0 2+ 1 week

industry training

5*

4.Formal Methods in Software Engineering

3 0 0 3

5. Software Project Management 3 0 0 3

6, Professional Ethics and Business Language Communication 1 0 1 1

TOTAL CREDITS 16 1 5 20

SEMESTER II

SL.

NO

COURSE

CODECOURSE TITLE L T P C

1. Enterprise Software Architecture and Design 3 0 2 4

2. Software Testing and Quality Assurance 3 0 2+ 1 week

industry training

5*

3. Elective I 3 0 0 3

4. Elective II 3 0 0 3

5. Elective III 3 0 0 3

6. Entrepreneurship Development 1 0 1 1

TOTAL CREDITS 16 0 5 19

2

Page 3: 2. IIIT M.tech SE Syllabus

* A one week industrial visit in order to enhance their interdisciplinary learning, product design and IT enabled service skills.

SEMESTER III

SL.

NO

COURSE

CODECOURSE TITLE L T P C

1. Graduate Seminar / Term Paper 0 0 2 1

2 Phase –I Project Work 12 Credits

TOTAL CREDITS 13 Credits

SEMESTER IV

SL.

NO

COURSE

CODE

COURSE TITLEL T P C

1 Phase –II Project Work 18 Credits

TOTAL CREDITS 18 Credits

3

Page 4: 2. IIIT M.tech SE Syllabus

Elective - I

Requirements for Real-time Systems

Human Computer Interface for Software Designers

Software Agents

Aspect oriented programming for software development

Open Source software

Elective - II

Software Documentation

Software Reuse

Software Maintenance and Evolution

Software Refactoring

Metrics and Models in Quality Engineering

Elective - III

Mobile And Pervasive Computing

Image Processing and Pattern Recognition

Big data analytics

Web services

Enterprise Cloud Computing

M.Tech ( SOFTWARE ENGINEERING ) ELECTIVES

4

Page 5: 2. IIIT M.tech SE Syllabus

M.Tech SOFTWARE ENGINEERING

FIRST SEMESTER

APPLIED PROBABILITY AND STATISTICS

Course Objectives:

To introduce the basic concepts of one dimensional and two dimensional Randomvariables.

To provide information about Estimation theory, Correlation, Regression and Testingof hypothesis.

To enable the students to use the concepts of multivariate normal distribution andprinciple components analysis.

ONE DIMENSIONAL RANDOM VARIABLES: Random variables - Probability function – Moments – Moment generating functions and their properties – Binomial, Poisson, Geometric, Uniform, Exponential, Gamma and Normal distributions – Functions of a Random Variable.

TWO DIMENSIONAL RANDOM VARIABLES: Joint distributions – Marginal and Conditional distributions – Functions of two dimensional random variables – Regression Curve – Correlation.

ESTIMATION THEORY: Unbiased Estimators – Method of Moments – Maximum Likelihood Estimation - Curve fitting by Principle of least squares – Regression Lines.

TESTING OF HYPOTHESES: Sampling distributions - Type I and Type II errors - Testsbased on Normal, t, 2 and F distributions for testing of mean, variance and proportions – Tests for Independence of attributes and Goodness of fit.

MULTIVARIATE ANALYSIS: Random Vectors and Matrices - Mean vectors and Covariance matrices – Multivariate Normal density and its properties - Principal components Population principal components - Principal components from standardized variables.

REFERENCES:1. Jay L. Devore, “Probability and Statistics for Engineering and the Sciences”, Thomson andDuxbury, 2002.2. Richard Johnson. ”Miller & Freund’s Probability and Statistics for Engineer”, Prentice – Hall,Seventh Edition, 2007.3. Richard A. Johnson and Dean W. Wichern, “Applied Multivariate Statistical Analysis”,Pearson Education, Asia, Fifth Edition, 2002.4. Gupta S.C. and Kapoor V.K.”Fundamentals of Mathematical Statistics”, Sultan and Sons,2001.5. Dallas E Johnson, “Applied Multivariate Methods for Data Analysis”, Thomson and Duxburypress, 1998.

5

L T P C3 1 0 4

Page 6: 2. IIIT M.tech SE Syllabus

ADVANCED DATA STRUCTURES AND ALGORITHMS

Course objectives: To understand the principles of iterative and recursive algorithms. To learn the graph search algorithms. To study network flow and linear programming problems. To learn the hill climbing and dynamic programming design techniques. To develop recursive backtracking algorithms. To get an awareness of NP completeness and randomized algorithms. To learn the principles of shared and concurrent objects. To learn concurrent data structures.

ITERATIVE AND RECURSIVE ALGORITHMS : Iterative Algorithms:Measures of Progress and Loop Invariants-Paradigm Shift: Sequence of Actions versus Sequence of Assertions- Steps to Develop an Iterative Algorithm-Different Types of Iterative Algorithms--Typical Errors-Recursion-Forward versus Backward- Towers of Hanoi- Checklist for Recursive Algorithms-The Stack Frame-Proving Correctness with Strong Induction- Examples of Recursive Algorithms-Sorting and Selecting Algorithms-Operations on Integers- Ackermann’s Function- Recursion on Trees-Tree Traversals- Examples- Generalizing the Problem - Heap Sort and Priority Queues-Representing Expressions.

OPTIMISATION ALGORITHMS : Optimization Problems-Graph Search Algorithms-Generic Search-Breadth-First Search-Dijkstra’s Shortest-Weighted-Path -Depth-First Search-Recursive Depth-First Search-Linear Ordering of a Partial Order- Network Flows and Linear Programming-Hill Climbing-Primal Dual Hill Climbing- Steepest Ascent Hill Climbing-Linear Programming-Recursive Backtracking- Developing Recursive Backtracking Algorithm- Pruning Branches-Satisfiability.

DYNAMIC PROGRAMMING ALGORITHMS : Developing a Dynamic Programming Algorithm-Subtle Points- Question for the Little Bird- Subinstances and Subsolutions-Set of Subinstances-Decreasing Time and Space-Number of Solutions-Code. Reductions and NP-Completeness-Satisfiability-Proving NP-Completeness- 3- Coloring- Bipartite Matching. Randomized Algorithms-Randomness to Hide Worst Cases- Optimization Problems with a Random Structure.

SHARED OBJECTS AND CONCURRENT OBJECTS: Shared Objects and Synchronization -Properties of Mutual Exclusion-The Moral- The Producer– Consumer Problem -The Readers–Writers Problem-Realities of Parallelization-Parallel Programming- Principles- Mutual Exclusion-Time- Critical Sections--Thread Solutions-The Filter Lock-Fairness-Lamport’s Bakery Algorithm-Bounded Timestamps-Lower Bounds on the Number of Locations-Concurrent Objects- Concurrency and Correctness-Sequential Objects- Quiescent Consistency- Sequential Consistency-Linearizability- Formal Definitions- Progress Conditions- The Java Memory Model

CONCURRENT DATA STRUCTURES: Practice-Linked Lists-The Role of Locking-List-Based Sets-Concurrent Reasoning- Coarse- Grained Synchronization-Fine-Grained

6

L T P C3 0 2 4

Page 7: 2. IIIT M.tech SE Syllabus

Synchronization-Optimistic Synchronization- Lazy Synchronization-Non-Blocking Synchronization-Concurrent Queues and the ABA Problem- Queues-A Bounded Partial Queue-An Unbounded Total Queue-An Unbounded Lock-Free Queue-Memory Reclamation and the ABA Problem- Dual Data Structures- Concurrent Stacks and Elimination- An Unbounded Lock-Free Stack- Elimination-The Elimination Backoff Stack.

LAB COMPONENTS:

The students are expected to implement assigned lab exercises.

Implementation of graph search algorithms. Implementation and application of network flow and linear programming problems. Implementation of algorithms using the hill climbing and dynamic programming design techniques. Implementation of recursive backtracking algorithms. Implementation of randomized algorithms. Implementation of various locking and synchronization mechanisms for concurrent linked lists, concurrent queues, and concurrent stacks. Developing applications involving concurrency.

REFERENCES: 1. Jeff Edmonds, “How to Think about Algorithms”, Cambridge University Press, 2008.2. M. Herlihy and N. Shavit, “The Art of Multiprocessor Programming”, Morgan Kaufmann,2008.3. Steven S. Skiena, “The Algorithm Design Manual”, Springer, 2008.4. Peter Brass, “Advanced Data Structures”, Cambridge University Press, 2008.5. S. Dasgupta, C. H. Papadimitriou, and U. V. Vazirani, “Algorithms”, McGrawHill, 2008.6. J. Kleinberg and E. Tardos, "Algorithm Design“, Pearson Education, 2006.7. T. H. Cormen, C. E. Leiserson, R. L. Rivest and C. Stein, “Introduction to Algorithms“, PHILearning Private Limited, 2012.8. Rajeev Motwani and Prabhakar Raghavan, “Randomized Algorithms”, Cambridge UniversityPress, 1995.9. A. V. Aho, J. E. Hopcroft, and J. D. Ullman, “The Design and Analysis of Computer Algorithms”, Addison-Wesley, 1975.10. A. V. Aho, J. E. Hopcroft, and J. D. Ullman,”Data Structures and Algorithms”, Pearson, 2006.

7

Page 8: 2. IIIT M.tech SE Syllabus

OBJECT ORIENTED SOFTWARE ENGINEERING

Course Objectives:

To learn what the object-oriented (OO) approach to software development is, through OO principles and design patterns.

To learn UML (Unified Modeling Language) that is part of most CASE (Computer Aided Software Engineering) tools and the benefits of visual modelling / diagramming.

To practice the application of principles of object-oriented software development through the course group project.

Develop teamwork and communication skills through the course group project.

SOFTWARE AND SOFTWARE ENGINEERING: The nature of software - software engineering - Software engineering as a branch of the engineering profession - Stakeholders in software engineering - Software quality - Software engineering projects - Activities common to software projects - Difficulties and risks in software engineering as a whole.

OBJECT ORIENTATION: Classes and objects - Instance variables - Methods, operations and polymorphism - Organizing classes into inheritance hierarchies - The effect of inheritance hierarchies on polymorphism and variable declarations - Concepts that define object orientation - A program for manipulating postal codes - Classes for representing geometric points - Measuring the quality and complexity of a program - Difficulties and risks in programming language choice and OO programming.

REUSABLE TECHNOLOGY: Reuse: building on the work and experience of others - Incorporating reusability and reuse into software engineering - Frameworks: reusable subsystems - The client-server architecture - Technology needed to build client-server systems - The Object Client-Server Framework (OCSF) - Basic description of OCSF - client side - Basic description of OCSF-server side - An instant messaging application using the OCSF - Difficulties and risks when considering reusable technology and client-server systems.

REQUIREMENTS: Domain analysis - The starting point for software projects - Defining the problem and the scope - Types of requirements - Use cases: describing how the user will use the system - Some techniques for gathering requirements - Types of requirements document - Reviewing requirements - Managing changing requirements - GPS-based Automobile Navigation Assistant (GANA) - Requirements for a feature of the Simple Chat instant messaging program - Difficulties and risks in domain and requirements analysis.

MODELING WITH CLASSES: Essentials of UML class diagrams - Associations and multiplicity - Generalization - Object diagrams - More advanced features of class diagrams - The basics of Object Constraint Language (OCL) - A class diagram for genealogy - The process of developing class diagrams - Implementing class diagrams in Java - Difficulties and risks when creating class diagrams.

8

L T P C3 0 2 5

Page 9: 2. IIIT M.tech SE Syllabus

DESIGN PATTERNS: Introduction to patterns - The Abstraction- Occurrence pattern - The General Hierarchy pattern - The Player-Role pattern - The Singleton pattern - The Observer pattern - The Delegation pattern - The Adapter pattern - The Facade pattern - The Immutable pattern - The Read-Only Interface pattern - The Proxy pattern - The Factory pattern - Enhancing OCSF to employ additional design patterns - Difficulties and risks when using design patterns.

USER INTERFACE DESIGN: User-centered design - Characteristics of users - The basics of user interface design - Usability principles - Evaluating user interfaces - Implementing a simple Graphical User Interface in Java - Difficulties and risks in user-centered design.

INTERACTIONS AND BEHAVIOR MODEL: Interaction diagrams - State diagrams - Activity diagrams - Implementing classes based on interaction and state diagrams - Difficulties and risks in modeling interactions and behavior.

SOFTWARE ARCHITECTURE AND DESIGN: The process of design - Principles leading to good design - Techniques for making good design decisions - Model Driven Development - Software architecture - Architectural patterns - Writing a good design document - Design of a feature for the Simple Chat instant messaging application - Difficulties and risks in design.

TESTING AND INSPECTION: Basic definitions - Effective and efficient testing - Defects in ordinary algorithms - Defects in numerical algorithms - Defects in timing and co-ordination: deadlocks, livelocks and critical races - Defects in handling stress and unusual situations - Documentation defects - Writing formal test cases and test plans - Strategies for testing large systems - Inspections - Quality assurance in general - Test cases for phase 2 of the Simple Chat instant messaging system - Difficulties and risks in quality assurance.

SOFTWARE PROJECT MANAGEMENT: Software process models - Cost estimation - Building software engineering teams - Project scheduling and tracking - Contents of a project plan - Difficulties and risks in project management.

LAB COMPONENTS:1. The students should develop all the necessary requirements based on IEEE

standards or any other standardized standards and should prepare requirement document and design document after completion.

2. Use any open source software for requirements elicitation, requirements analysis and requirements validation (RequisitePro).

3. Use any open source software for performing software design based on the requirements obtained in 2 for each system.

4. The students are expected to carry out one or two case studies.

1. ONLINE SHOPPING MALL

PROJECT DESCRIPTION:

The Online Shopping Mall (OSM) application enables vendors to set up online shops, customers to browse through the shops, and a system administrator to approve and reject

9

Page 10: 2. IIIT M.tech SE Syllabus

requests for new shops and maintain lists of shop categories. Also on the agenda is designing an online shopping site to manage the items in the shop and also help customers purchase them online without having to visit the shop physically.

The online shopping mall will showcase a complete shopping experience in a small package. This project envisages bridging the gap between the seller, the retailer and the customer. A very high flexibility is being maintained in the design process so that this project can take the following path: -

A multiple merchant venue with each merchant having his/her own window which the customer can visit to browse and subsequently buy the products.

Maintaining the deliverable goods as well as services through single or multiple windows is also on the agenda.

Target Users:

Mall Administrator: The Mall Administrator is the super user and has complete control over all the activities that can be performed. The application notifies the administrator of all shop creation requests, and the administrator can then approve or reject them. The administrator also manages the list of available product categories. The administrator can also view and delete entries in the guestbook.

Shop Owner: Any user can submit a shop creation request through the application. When the request is approved by the Mall Administrator, the requester is notified, and from there on is given the role of Shop Owner. The Shop Owner is responsible for setting up the shop and maintaining it. The job involves managing the sub-categories of the items in the shop. Also, the shop owner can add or remove items from his shop. The Shop Owner can view different reports that give details of the sales and orders specific to his shop. The Shop Owner can also decide to close shop and remove it from the mall.

Mall Customer/Guests: A Mall Customer can browse through the shops and choose products to place in a virtual shopping cart. The shopping cart details can be viewed and items can be removed from the cart. To proceed with the purchase, the customer is prompted to login. Also, the customer can modify personal profile information (such as phone number and shipping address) stored by the application. The customer can also view the status of any previous orders.

EMPLOYEES: Purchase department under a Purchase manager to overlook purchasing activities if

warehousing needs arise. Sales department under a Sales manager who will look after the sale of products and services.

Accounts department under an Accounts manager to look after the accounting activities of the enterprise.

2. BANKING SYSTEM

PROJECT DESCRIPTION:

10

Page 11: 2. IIIT M.tech SE Syllabus

A bank has several automated teller machines (ATMs), which are geographically distributed and connected via a wide area network to a central server. Each ATM machine has a card reader, a cash dispenser, a keyboard/display, and a receipt printer. By using the ATM machine, a customer can withdraw cash from either checking or savings account, query the balance of an account, or transfer funds from one account to another. A transaction is initiated when a customer inserts an ATM card into the card reader. Encoded on the magnetic strip on the back of the ATM card is the card number, the start date, and the expiration date.

Assuming the card is recognized, the system validates the ATM card to determine that the expiration date has not passed, that the user-entered PIN (personal identification number) matches the PIN maintained by the system, and that the card is not lost or stolen. The customer is allowed three attempts to enter the correct PIN; the card is confiscated if the third attempt fails. Cards that have been reported lost or stolen are also confiscated.

If the PIN is validated satisfactorily, the customer is prompted for a withdrawal, query, or transfer transaction. Before withdrawal transaction can be approved, the system determines that sufficient funds exist in the requested account, that the maximum daily limit will not be exceeded, and that there are sufficient funds available at the local cash dispenser.

If the transaction is approved, the requested amount of cash is dispensed, a receipt is printed containing information about the transaction, and the card is ejected. Before a transfer transaction can be approved, the system determines that the customer has at least two accounts and that there are sufficient funds in the account to be debited. For approved query and transfer requests, a receipt is printed and card ejected.

A customer may cancel a transaction at any time; the transaction is terminated and the card is ejected. Customer records, account records, and debit card records are all maintained at the server.

3. CAMPUS MANAGEMENT SYSTEM

PROJECT DESCRIPTION:

The Campus Management System; is fully computerized information organization, storage and retrieval system that could provide us any information about an Institute just at the click of a mouse. The most fascinating asset about a computerized College fee Manager is that it enables us to explore any institute related information at any time on demand and that too in an absolutely user friendly environment that could be accessed even by a layman very easily

OBJECTIVES AND GOALS:

To automate the functions at a Higher Education Institute, the main missions of this software are as under

To provide user-friendly interface to the college administrator To minimize the typing errors during data entry To search record of a particular object (course, student, faculty etc.) To update the record of an object

11

Page 12: 2. IIIT M.tech SE Syllabus

To generate various reports for management To print various reports To reduce the typing work by keeping maximum information available on the screen To reduce the expenditure involving stationery items such as paper, ledgers, fee receipt

book etc. To provide consistent, updated and reliable data at any time on demand. To analyse, plan and forecast the inflation or recession graph of the in college in the near

future based on the college’s record of revenue sources and expenditure. To provide the most important feature of maintaining the valuable back-up of the critical

data. To be bestowed with the latest security facilities provided by the modern computerized

DBMS.

PROJECT BUILDING BLOCKS:

Enrolment Management , Portal management , Admissions/Recruiting , Faculty Information, Student Services, Student Portal, Hostel management, Parking and Security, Student Health , Student Placement ,Campus Incidents, Faculty Portal , Forum Portal , Student Billing ,Alumni Portal.

4. AIR TRAFFIC CONTROL SYSTEM

Air traffic control is a closed loop activity in which pilots state the intent by filing flight plans. Controllers then plan traffic flow based on the total number of flight plans and, when possible, given clearance to pilots to fly according to their plans. When planning conflicts arise, controllers resolve them by clearing pilots to fly alternatives to their plans to avoid the conflicts. If unpredicted atmospheric conditions (e.g., wind speed or direction) or pilot actions cause deviations from conflict-free planned routings, controllers issue clearances for tactical maneuvers that solve any resultant problem, albeit not necessarily in a way that furthers the pilot's goal of reaching the planned destination at a certain time.

PROBLEM FORMULATION:

Design an air traffic control system (ATCS) that is fault tolerant and scalable, according to the specific requirements listed in the following sections. The primary objective of the ATCS is to provide separation services for aircraft that are flying in controlled air space, or where poor visibility prevents from maintaining visual separation. Aircraft are separated from one another and from terrain hazards.

SPECIFIC SOFTWARE REQUIREMENTS:

The requirements of ATCSs include real-time aspects. The ATCS is a "dynamic" real-time system. Its loading will vary significantly over time, and has no upper bound. Loading scenarios can vary significantly, hence the average loading of the ATCS is not a highly useful metric for schedulability and other analyses. Although an upper bound could possibly be imposed artificially, this may not be a cost-effective solution, since pre-allocation of computing

12

Page 13: 2. IIIT M.tech SE Syllabus

resources for such a worst case would lead to very poor resource utilization. A dynamic resource management policy is thus preferred.

5. CAFETERIA ORDERING SYSTEM

The Cafeteria Ordering System is a new system that replaces the current manual and telephone processes for ordering and picking up lunches in the Process Impact cafeteria.

Patron: A Patron is a Process Impact employee at the corporate campus in TidalPark, Chennai, who wishes to order meals to be delivered from the company cafeteria.

There are about 600 potential Patrons, of which an estimated 400 are expected to use the Cafeteria Ordering System .Patrons will sometimes order multiple meals for group events or guests. An estimated 90 percent of orders will be placed using the corporate Intranet, with 10 percent of orders being placed from home. All Patrons have Intranet access from their offices. Some Patrons will wish to set up meal subscriptions, either to have the same meal to be delivered every day or to have the day’s meal special delivered automatically. A Patron must be able to override a subscription for a specific day.

Cafeteria Staff: The Process Impact cafeteria currently employs about 20 Cafeteria Staff, who will receive orders from the Cafeteria Ordering System, prepare meals, and package them for delivery, print delivery instructions, and request delivery. Most of the Cafeteria Staff will need to be trained in the use of the computer, the Web browser, and the Cafeteria Ordering System.

Menu Manager: The Menu Manager is a cafeteria employee, perhaps the cafeteria manager, who is responsible for establishing and maintaining daily menus of the food items available from the cafeteria and the times of day that each item is available. Some menu items may not be available for delivery. The Menu Manager will also define the cafeteria’s daily specials. The Menu Manager will need to edit the menus periodically to reflect planned food items that are not available or price changes.

Meal Deliverer: As the Cafeteria Staff prepare orders for delivery, they will print delivery instructions and issue delivery requests to the Meal Deliverer, who is either another cafeteria employee or a contractor. The Meal Deliverer will pick up food and delivery instructions for each meal and deliver it to the Patron. The Meal Deliverer’s primary interactions with the system will be to reprint the delivery instructions on occasion and to confirm that a meal was (or was not) delivered.

REFERENCES: 1. Timothy C. Lethbridge and Robert Laganiere, “Object oriented Software Engineering:

Practical software Development using UML and Java”, Tata McGraw Hill, 2010.2. Bernd Bruegge, Alan H Dutoit, Object-Oriented Software Engineering, 2nd ed, Pearson

Education, 2004. 3. Martin Fowler, “UML Distilled”, 3rd edition, Addison Wesley, 2004.

13

Page 14: 2. IIIT M.tech SE Syllabus

4. Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, “Design Patterns: Elements of Reusable Object-Oriented Software”, Addison Wesley. October 1994. 

5. Craig Larman, Applying UML and Patterns 3rd ed, Pearson Education, 2005. 6. Stephen Schach, Software Engineering 7th ed, McGraw-Hill, 2007. 7. Ivar Jacobson, Grady Booch, James Rumbaugh, The Unified Software Development

Process, Pearson Education, 1999.

14

Page 15: 2. IIIT M.tech SE Syllabus

FORMAL METHODS IN SOFTWARE ENGINEERING

Course Objectives:

To introduce students to the use of formal methods in software development. To examine software-engineering techniques across the development life cycle

that are appropriate for high assurance systems. To analyze the nature of the evidence provided by various techniques To specify a simple system using VDM and Z. To learn about the formal semantics

INTRODUCTION Need for Formal methods – Problems in Natural Language Specifications, Formal Versus Informal Programming – Advantages of Formal Methods – Requirements of Formal System – Types – Prepositional Logic – Predicate Logic – Relationships and Functions.

FORMAL SPECIFICATION STYLE

Model-Oriented – Specifications – Concurrency-Based Specifications –Example Specification Languages.

VDM

Introduction to VDM – Basic Types – Quote Types – Compound Types – Optional Types – Functions – Operations – Additional Constructs – Modules.

THE Z NOTATION

The Interchange Language – User-Defined Identifiers – Data Types – Basic Types – Compound Types – Schemas – Additional Constructs.

FORMAL SEMANTICS AND TOOLS

Operational Semantics – Denotational Semantics – Axiomatic Semantics Proof Editors – Proof Analyser – Symbolic Simulators –Translators – Test Generation Tools.

REFERENCES:

15

L T P C3 0 0 3

Page 16: 2. IIIT M.tech SE Syllabus

1. Andrew Harry, “ Formal Methods: Fact File VDM and Z”, John Wiley and Sons, 1996.

2. Jim Woodcock, Jim Davies, “Using Z Specification, Refinement and Proof”, Prentice Hall International, 1996.

16

Page 17: 2. IIIT M.tech SE Syllabus

SOFTWARE PROJECT MANAGEMENT

Course Objectives:

To deliver successful software projects that support  organization's strategic goals To match organizational needs to the most effective software development model To plan and manage projects at each stage of the software development life cycle To create project plans that address real-world management challenges To develop the skills for tracking and controlling software deliverables

SOFTWARE PROCESS: Process Maturity – Capability Maturity Model (CMM) – Variations in CMM - Productivity improvement process.

PEOPLE MANAGEMENT: Organization structure – Difficulties in people management - Effective team building – Role of Project manager - Team structures – Comparison of different team structures.

SOFTWARE METRICS: Role of metrics in software development - Project metrics – Process metrics – Data gathering - Analysis of Data for measuring correctness, integrity, reliability and maintainability of Software products.

PROJECT MANAGEMENT: Project initiation – Feasibility study - Planning - Estimation - Resource allocation - Root Cause Analysis.

RISK MANAGEMENT: Risk analysis and management - Types of Risk involved - RMM plan.

PROJECT SCHEDULING AND TRACKING: Scheduling - Critical path – Tracking - Timeline chart – Earned value chart.

SOFTWARE CONFIGURATION MANAGEMENT: Baselines - Software configuration items - The SCM process- Version control- Change control -Configuration audit - SCM standards.

Case Study: Identify 15 tools of SPM used in industry 5 of each type with their differences - Identify Open source SPM tools - Study of SLIMSUITE 6.0 tool - Preparation of Software Project Management Plan IEEE Std 1058-1998 - Getting familiar with Microsoft Project program - Creating a management plan using MS Project 2010 - Developing a WBS using MS Project 2010 - Using MS Project 2010 for establishing a timeline and arranging tasks - Managing the tasks in MS Project 2010 - Critical Path Management in MS Project 2010 - Drawing Gannt Chart and Network Diagram using MS Project 2010 - Case study of cost estimation models and cost estimation tools - Study of SCM tools like Visual source safe 6.0

17

L T P C3 0 0 3

Page 18: 2. IIIT M.tech SE Syllabus

REFERENCES:

1. Roger S Pressman, “Software Engineering, A Practitioner’s Approach” McGraw Hill Edition, New Delhi, 2008.

2. Watts Humphrey, “Managing the Software Process “, Pearson Education, New Delhi, 2000.3. Pankaj Jalote, “Software Project Management in practice”, Pearson Education, New Delhi,

2002.

18

Page 19: 2. IIIT M.tech SE Syllabus

PROFESSIONAL ETHICS AND BUSINESS LANGUAGE COMMUNICATION

Course Objectives:

To inculcate professional ethics To design and write effective managerial communication messages To produce professional documents and reports To communicate complex material and messages to a variety of professional audiences To develop skill in argument and persuasion To increase communication effectiveness through strategic analysis To articulate points of view clearly, cohesively, and succinctly To gain an understanding of the importance of corporate communication in a variety of

managerial situations To utilize communication skills in professional settings To advance professional competence and establish professional credibility in

organizational settings Professional Skills: Concepts of profession and highlights its difference from occupation or job – The vital role of ethics in profession – The importance of ethical codes and the prerequisites of an ethical professional – The nature of engineering ethics – The value of ethical practices in engineering and the virtues of an ethical engineer

Communicative Skills:  Remedial grammar – essentials of Business English – Corporate culture – Routine Business Correspondence – Oral business communication – Telephone etiquettes – Interview meetings – Group Discussions – Negotiations – Oral Presentations.

References: 1. Velasquez. M. G, Business Ethics and Cases, 5 Edn, Prentice Hall, 2002. 2. Harris. et al., Engineering Ethics: Concepts and Cases, Belmont Wadsworth, 1995. 3. Sekha. R.C, Ethical Choices in Business Response, Sage Publication, 2002. 4. Mike Martin and Roland Schinzinger, Ethics in Engineering, McGraw Hill, 1996. 5. Fleddermann. C. D, Engineering Ethics, Prentice Hall, 1999. 6. Sharon. J. Gerson and Steven M. Gerson, Technical Writing – Process and Product, Pearson Education Pvt. Ltd., 2004. 7. Wood, A Remedial Grammar of English, Macmillan India, 1969. 8. Thomson and Martinet , Practical English Grammar, Oxford University Press, 1986. 9. Allen and Stannard. W, Living English Structure, Orient Longman, 1997. 10. Leech, Geoffrey & Jan Svartvik, A Communicative Grammar of English,Longman, 2003. 11. Guy Brook-Hart, Norman Whitby and Cambridge ESOL, Business Benchmark, Cambridge University Press, 2006.12. John Naunton, Head for Business Intermediate student's Book, Oxford University Press, 2011.13. Fiona Talbot, “How to write Effective Business English, Kogan Page Ltd, 2009.

19

L T P C1 0 1 1

Page 20: 2. IIIT M.tech SE Syllabus

SECOND SEMESTER

ENTERPRISE SOFTWARE ARCHITECTURE AND DESIGN

Course Objectives:

To address the important engineering issues in building large-scale enterprise software systems.

To emphasize service-oriented architectures (SOA) and best practices for building service-oriented enterprises in a vendor-neutral fashion.

To understand the domain-driven architecture, service-oriented architecture and resource-oriented architecture.

Middleware: Enterprise Information Systems - Communication - System and Failure Models - Remote Procedure Call - Message-Oriented Middleware - Web Services and Service-Oriented Architecture (SOA) - Cloud Computing - Naming and Discovery.

Data Modeling: Entities and Relationships - Concepts and Entities - Attributes and Relationships - Properties of Relationship Types - Special Relationship Types - XML Schemas - Defining New Types - Defining Simple Types - Defining Complex Types - Derived Types – Derived Simple Types - Derived Complex Types - Document Hierarchies - Relationship Types in XML Schemas - Meta schemas and Meta models.

Data Processing: Processing XML Data - Tree Processing - Schema Binding - Stream Processing - External Processing - Query Languages and XQuery - XML Databases - Storage as Relational Tables - Storage as Large Strings - Native XML Storage - Web Services - Simple Object Access Protocol - WSDL: Web Services Description Language - Web Service Policy - Presentation Layer: JSON and JQUERY.

Domain-Driven Architecture: Software Architecture - Domain-Driven Design - Application Frameworks - Domain-Specific Languages (DSLs) - An Example API for Persistent Domain Objects - Domain-Driven Architecture.

Service-Oriented Architecture: Services and Procedures - Service-Oriented Architecture (SOA) - Service Design Principles - Service-Oriented Architecture (SOA) Governance - Standardized Service Contract - Operations Contract - Data Contract - Policy Contract - Binding Contract - Contract Versioning - Service Loose Coupling - Motivation for Loose Coupling - Contract Development - Loose Coupling Patterns - Cost of Loose Coupling - Service Abstraction - Platform Abstraction - Protocol Abstraction - Procedural Abstraction - State Abstraction - Data Abstraction - Endpoint Abstraction - Service Reusability - Parameterization and Bounded Polymorphism - Subtyping, Inheritance, and Contracts - Does Service-Oriented Architecture Require Subtyping - Patterns for Service Reusability - Service Autonomy - Replicating Computation - Replicating State - Sources of Errors and Rejuvenation - Caching -

20

L T P C3 0 2 4

Page 21: 2. IIIT M.tech SE Syllabus

Service Statelessness - Contexts and Dependency Injection - Service Discoverability - Global Discovery - Local Discovery - Layered Naming - Further Patterns.

Resource-Oriented Architecture: Representational State Transfer - RESTful Web Services - Resource-Oriented Architecture (ROA) - Interface Description Languages - Web Services Description Language (WSDL) - Web Application Description Language (WADL) - An Example Application Program Interface (API) for Resource-Oriented Web Services - Hypermedia Control and Contract Conformance.

LAB COMPONENTS:

The students are expected to carry out one or two case studies.

CASE Study 1: Create a web page with the following using HTML5

(i) To embed an image map in a web page

(ii) To fix the hot spots

(iii) Show all the related information when the hot spots are clicked.

CASE Study 2: Create a web page with all types of Cascading style sheets.

CASE Study 3: Implement Client Side Scripts for Validating Web Form Controls using JavaScript.

CASE Study 4: Designing Quiz Application Personal Information System Using JavaScript

CASE Study 5: Write a JavaScript for Loan Calculation.

CASE Study 6: Develop and demonstrate a HTML file that includes JavaScript that uses functions for the following problems: a) Parameter: A string Output: The position in the string of the left-most vowel

b) Parameter: A number Output: The number with its digits in the reverse order

CASE Study 7: Develop PHP program using Arrays, control structures, looping structures and Form Handling

CASE Study 8: Using PHP and MySQL, develop a program to accept book information viz. Accession number, title, authors, edition and publisher from a web page and store the information in a database and to search for a book with the title specified by the user and to display the search results with proper headings.

CASE Study 9: Write an AJAX program for parsing a JSON file and formatting the output.

CASE Study 10: Develop a web application for Airline Reservation System using PHP & AJAX.

21

Page 22: 2. IIIT M.tech SE Syllabus

CASE Study 11: Develop a web application for Airline Reservation System using EJB.

CASE Study 12: Develop a web application for Airline Reservation System using JSP.

CASE Study 13: Writing an RMI application for Airline Reservation System to access a remote method

CASE Study 14: Writing an application for Airline Reservation System using CORBA

CASE Study 15: Writing an application for Airline Reservation System using COM

CASE Study 16: Writing an application for Airline Reservation System using DCOM

CASE Study 17: Writing a Servlet program with database connectivity for a web based application such as students result status checking, PNR number enquiry etc

CASE Study 18: XML document creation.

CASE Study 19: Importing and Exporting XML document in database.

CASE Study 20: XSL Transformation

CASE Study 21: Internal and External DTD creation

CASE Study 22: XML Schema creation

CASE Study 23: Parsing XML document using DOM/SAX parser.

CASE Study 24: Web Service creation using JAX-WS

CASE Study 25: Web Service creation using JAX-RS

CASE Study 26: Web Service creation using .NET

CASE Study 27: JAXB Marshaling and Unmarshaling

CASE Study 28: Implementation of RESTful services

CASE Study 29: Design of simple cloud services

REFERENCES:1. Dominic Duggan , Enterprise Software Architecture and Design , Wiley, 20122. Dominic Duggan , Enterprise and Cloud Computing , Wiley, 2013.

22

Page 23: 2. IIIT M.tech SE Syllabus

SOFTWARE TESTING AND QUALITY ASSURANCE

Course Objectives:

To provide students with the knowledge, skill and in-depth technical understanding of the key concepts required to design and build dependable software systems.

To achieve the gap between the theory and practice of software development and, in particular, through the transfer of knowledge from the classroom via research driven and commercially relevant project.

Introduction to Software Testing - Purpose of Testing - A model for testing - A taxonomy of Bugs - Software Safety - Software Testing Realities - Testing Software Specifications – The Need for Levels of Testing-Levels of Testing and Software Development Paradigms.

Black-box Testing – Test Case Design Strategies-Using the Black box Approach to Test Case Design- random Testing-Equivalence Class Partitioning-Boundary Value Analysis-An Example of the Application of Equivalence Class Partitioning and Boundary Value Analysis- Other Black Box Test Design Approaches-Cause and Effect Graphing-State Transition Testing- Error Guessing.

White-box Testing : Test Adequacy Criteria-Coverage and Control Flow Graphs-Covering Code Logic- Paths: Their Role in White Box-Based Test design-Additional White Box Test Design Approaches-Data Flow and White Box Test Design-Loop Testing-Mutation Testing and Program Perturbation.

Other testing techniques: Website Testing - Usability Testing - Code Inspections - Testing the Documentation -Testing for Security - Program Slicing - Syntax Testing - Object-Oriented Protocol Testing 

Software Metrics: Linguistic Metrics - Structural Metrics - Hybrid Metrics - Metrics Implementation

Reliability: reliability metrics, fault avoidance, Cleanroom software development, fault tolerance, exception handling, N-version programming, recovery blocks, formal methods, functional specifications, and Z notation.

Software quality assurance: SQA basics-Software quality in business context – Planning for software quality assurance – Product quality and process quality – Software process models -Total Quality Management- 7 QC Tools and Modern Tools.

23

L T P C3 0 2 5

Page 24: 2. IIIT M.tech SE Syllabus

Quality assurance models : Models for Quality Assurance-ISO-9000 – Series- CMM- CMMI-Test Maturity Models, SPICE, Malcolm Baldrige Model- P-CMM.

Software quality assurance trends: Software Process- PSP and TSP - OO Methodology, Clean-room software engineering, Defect injection and prevention -Internal Auditing and Assessments-Inspections & Walkthroughs.

LAB COMPONENTS:

The students are expected to carry out one or two case studies.

CASE STUDY 1: Cause Effect Graph Testing for a Triangle Program

Perform cause effect graph testing to find a set of test cases for the following program specification: Write a program that takes three positive integers as input and determine if they represent three sides of a triangle, and if they do, indicate what type of triangle it is. To be more specific, it should read three integers and set a flag as follows:

If they represent a scalene triangle, set it to 1. If they represent an isosceles triangle, set it to 2. If they represent an equilateral triangle, set it to 3. If they do not represent a triangle, set it to 4.

CASE STUDY 2: Boundary Value Analysis for a Software Unit

The following is a specification for a software unit. The unit computes the average of 25 floating point numbers that lie on or between bounding values which are positive values from 1.0 (lowest allowed boundary value) to 5000.0 (highest allowed boundary value). The bounding values and the numbers to average are inputs to the unit. The upper bound must be greater than the lower bound. If an invalid set of values is input for the boundaries an error message appears and the user is reported. If the boundary values are valid the unit computes the sum and the average of the numbers on and within the bounds. The average and sum are output by the unit, as well as the total number of inputs that lie within the boundaries. Derive a set of equivalence classes for the averaging unit using the specification, and complement the classes using boundary value analysis. Be sure to identify valid and invalid classes.

Design a set of test cases for the unit using your equivalence classes and boundary values. For each test case, specify the equivalence classes covered, input values, expected outputs, and test case identifier. Show in tabular form that you have covered all the classes and boundaries. Implement this module in the programming language of your choice. Run the module with your test cases and record the actual outputs. Save an uncorrected version of the program for future use.

24

Page 25: 2. IIIT M.tech SE Syllabus

CASE STUDY 3: Cyclomatic Complexity for Binary Search

Draw a control flow graph for the given binary search code and clearly label each node so that it is linked to its corresponding statement. Calculate its cyclomatic complexity.

intbinsearch (intx,int v[], int n)

{

int low, high, mid;

low =0;

high = n-1;

while (low <=high) {

mid =(low+high)/2

if (x < v[mid]

high = mid&ndash;1;

else if (x > v[mid])

low = mid+1;

else /* found match*/

return mid;

}

return–1; /* no match*/

}

CASE STUDY 4: Data Flow Testing for Gregorian Calendar

A program was written to determine if a given year in the Gregorian calendar is a leap year. The well-known part of the rule, stipulating that it is a leap year if it is divisible by 4, is implemented correctly in the program. The programmer, however, is unaware of the exceptions: A centenary year, although divisible by 4, is not a leap year unless it is also divisible by 400. Thus, while year 2000 was a leap year, the years 1800 and 1900 were not. Determine if the following test-case selection criteria are reliable or valid.

25

Page 26: 2. IIIT M.tech SE Syllabus

(a) C1(T ) ≡ (T = {1, 101, 1001, 10001})

(b) C2(T ) ≡ (T = {t|1995 ≤ t ≤ 2005})

(c) C3(T ) ≡ (T = {t|1895 ≤ t ≤ 1905})

(d) C4(T ) ≡ (T = {t} ∧ t ∈ {400, 800, 1200, 1600, 2000, 2400})

(e) C5(T ) ≡ (T = {t, t + 1, t + 2, t + 3, t + 4} ∧ t ∈ {100, 200, 300, 400,500})

(f) C6(T ) ≡ (T = {t, t + 1, t + 2, . . . , t + 399} ∧ t ∈ D)

(g) C7(T ) ≡ (T = {t1, t2, t3} ∧ t1, t2, t3 ∈ D)

CASE STUDY 5: State based Testing for an Assembler

Suppose you were developing a simple assembler whose syntax can be described as follows :

<statement_ :: = <label field><op code><address>

<label field> :: = ‘‘none’’ | <identifier> :

<op code> :: = MOVE | JUMP

<address> :: = <identifier> | <unsigned integer>

A stream of tokens is input to the assembler. The possible states for such an assembler are:

S1, prelabel; S2, label; S3, valid op code; S4, valid address; S5, valid numeric address. Start, Error, and Done. A table that describes the inputs and actions for the assembler is as follows:

Inputs Actions

no more tokens A1: Put the label in the symbol table.

Identifier A2: Look up the op code and store its binary value in op code field.

MOVE, JUMP A3: Look up symbol in symbol table and store its value in address field.

colon A4: Convert number to binary, and store that value in address field.

Integer A5: Place instruction in the object module, and print a line in the listing.

A6: Print error message and put all zeroes in the instruction.

Using this information and any assumptions you need to make, develop a state transition diagram for the assembler. From the state transition diagram develop a set of test cases that will cover all

26

Page 27: 2. IIIT M.tech SE Syllabus

of the state transitions. Be sure to describe the exact sequence of inputs as well as the expected Sequence of state changes and actions.

CASE STUDY 6: Stress Testing of a Map-Aided Vehicle Tracking and Scheduling System

The American package courier and freight business faced the double pressures of consolidation and unstoppable increases in fuel costs. In mid-2008, pump prices were already double those prevailing in early 2007. As well, the recent decision of long-time price leader DHL to “co-locate” dozens of routes with erstwhile competitor UPS revealed just how fragile are market positions built through decades of promotions.

In Omaha, regional freight leader Red Ball Trucking1 was keener than most to maximize operating efficiencies out of its substantial fleet of trucks and vans and thereby maintain margins in the face of low-cost rivals. In March 2008, a brand-new map-based adjunct to the company’s proprietary logistics and routing system neared rollout. Extensive “white box”, line-by-line testing had eliminated most of the gross errors but the Red Ball CEO was concerned about the scalability of the program test bed.

Find out whether the map-enhanced vehicle tracking and scheduling system would remain stable at benchmarks of 50, 100 and 1000 concurrent users. Clean up any remaining bugs not caught by in-house.

CASE STUDY 7: Model Based Testing

Design and develop a scientific calculator program using various GUI components and events. Build the test model for the same. Determine the inputs that can be given to the model. Calculate expected output for the model. Run the test cases. Compare the actual output with the expected output. Any model based technique can be used for building the test model.

CASE STUDY 8: Web Application Testing for Student Grade System

With educational organizations under increasing pressure to improve their performance to secure funding for future provision of programmes, it is vital that they have accurate, up-to-date information. For this reason, they have MIS systems to record and track student enrolment and results on completion of a learning programme. In this way they can monitor achievement statistics. All student assignment work is marked and recorded by individual module tutors using a spreadsheet, or similar, of their own design. In the computing department these results are input into a master spreadsheet to track a student’s overall progress throughout their programme of study. This is then made available to students through the web portal used in college. Perform web application testing for this scenario.

27

Page 28: 2. IIIT M.tech SE Syllabus

CASE STUDY 9: Consider an Web based Loan application system http://www.mortgagecalculator.org/ , which calculates the total interest, Monthly payment etc., to be paid based on the Loan term, loan interest, loan amount etc.,

a) Write down the requirement specification for the above application.b) Design the test cases and perform Validation testing for the above application using any automated tool.

CASE STUDY 10: Consider an Web based Tax application http://finotax.com/itax/itax1011.htm, which calculates the Total tax to be paid for the academic year based on Total income, total deductions etc.,

a) Write down the requirement specification for the above application.b) Design test cases and perform Functional testing.

CASE STUDY 11: Develop a Java program for student marks analyzing system.a) The System obtains following information’s from the faculty generates report RollNo, Name, Department, Semester, Marks obtained in each subject.b) The total for each student should be calculated and ranked based on total and passin all the subject appeared.c) The Final report should display rank, percentage, Class, Pass/Fail Status for eachstudent.Perform Unit testing for the above program using Junit feature.

CASE STUDY 12: Consider an Web based Loan application system http://www.mortgagecalculator.org/, which calculates the total interest, Monthly payment etc., to be paid based on the Loan term, loan interest, loan amount etc.,

a) Write down the requirement specification for the above application.b) Design the test cases and perform Function testing for the above applicationusing any automated tool.

CASE STUDY 13: Consider an Web based Tax application http://finotax.com/itax/itax1011.htm, which calculates the Total tax to be paid for the academic year based on Total income, total deductions etc.,

a) Write down the requirement specification for the above application.b) Design test cases and perform performance testing, using any automated tool.

CASE STUDY 14: Consider the ticket reservation scenario of online Air ticket reservation system and perform Load testing and analyze its metrics like response time, through put,Maximum user load, resource utilization.CASE STUDY 15: Consider the browse catalog scenario of Library management system and perform stress testing and verify whether the system is able to recover itself after stress testing.CASE STUDY 16: Develop a java GUI for Login scenario of course registration system. Implement encryption technique in the above scenario.

a) Perform manual security testing to crack the above program.b) Calculate the response time in the above scenario.

CASE STUDY 17:Write a Java program for sorting the input in ascending order.a) Calculate cyclomatic complexityb) Perform Manual testing to see whether all the paths are covered or not.c) Perform Manual testing to see whether all the decision braches are covered or not.

CASE STUDY 18: Consider an Web based Tax application http://finotax.com/itax/itax1011.htm, which calculates the Total tax to be paid for the academic year based on Total income, total deductions etc.,

28

Page 29: 2. IIIT M.tech SE Syllabus

a) Write down the requirement specification for the above application.b) perform Performance testing and measure its metrics.

CASE STUDY 19: Develop a Java program for student marks analyzing system.a) The System obtains following information’s from the faculty generates report RollNo, Name, Department, Semester, Marks obtained in each subject.b) The total for each student should be calculated and ranked based on total and passin all the subject appeared.c) The Final report should display rank, percentage, Class, Pass/Fail Status for eachstudent.Perform Functionality testing using manual techniques.

CASE STUDY 20: Develop a Java program for student marks analyzing system.a) The System obtains following information’s from the faculty generates report RollNo, Name, Department, Semester, Marks obtained in each subject.b) The total for each student should be calculated and ranked based on total and passin all the subject appeared.c) The Final report should display rank, percentage, Class, Pass/Fail Status for eachstudent.Calculate response time and the memory used by the program.

CASE STUDY 21: Consider an purchasing of product scenario of online shopping system,a) Perform Validation testing of the GUIb) Perform Security testing using any automated tool.

CASE STUDY 22: Develop a Java program for student marks analyzing system.a) The System obtains following information’s from the faculty generates report RollNo, Name, Department, Semester, Marks obtained in each subject.b) The total for each student should be calculated and ranked based on total and passin all the subject appeared.c) The Final report should display rank, percentage, Class, Pass/Fail Status for eachstudent.Perform Integration testing for the above program.

CASE STUDY 23: Consider any Online Air reservation system websitePerform HTML code validation and CSS validation Testing using any automated tool.

CASE STUDY 24: Consider an online course registration system website. Perform Link checking and HTML validation using any automated tool.CASE STUDY 25: Consider an online movie booking system. A customer can book any number of tickets either for the same day or different days. Customers can also modify or cancel the booked tickets. Payments are made through a secured gateway system. Design a webpage for booking the ticket scenario using HTML language and perform HTML validation.CASE STUDY 26: Consider an online movie booking system. A customer can book any number of tickets either for the same day or different days. Customers can also modify or cancel the booked tickets. Payments are made through a secured gateway system. Design a webpage for booking the ticket scenario using HTML language andperform validation testing.CASE STUDY 27: Design a simple online chat application which can transfer text messages using java. Calculate its response time.CASE STUDY 28: Consider any online shopping system website. Perform Validation testing and functionality testing.

29

Page 30: 2. IIIT M.tech SE Syllabus

CASE STUDY 29: Prepare test plan and develop test case hierarchy

CASE STUDY 30: Generate Test cases and Test Documentation in the following applications Library System, Course Registration System, Implement a Quiz System, Student Marks Analyzing System, Online Ticket Reservation System, Stock Management System, Real-Time Scheduler

REFERENCES:

1. Boris Beizer, “Software Testing Techniques”, 2nd Edition, Dream tech press, New Delhi, 2003.

2. Edward Kit, “Software Testing in the Real World - Improving the Process”, Pearson Education, 2004.

3. William E. Perry, “Effective methods for software testing”, 2nd Edition, John Wiley, 2000.

4. Stephen H.Kan,”Metric and Models in software Quality Engineering”, Addison QWesley 1995.

5. S.A.Kelkar,”Software quality and Testing, PHI Learing, Pvt, Ltd., New Delhi 2012.

30

Page 31: 2. IIIT M.tech SE Syllabus

ENTREPRENEURSHIP DEVELOPMENT

Er.-Entrepreneurship-Enterprise: Conceptual issues - Entrepreneurship vs. Management - Roles and functions of Er in relation to the enterprise and in relation to the economy - Entrepreneurship is an interactive process between the individual and the environment - Small business as seedbed of Entrepreneurship - Entrepreneur competencies - Entrepreneur motivation - performance and rewards.

The teachers should emphasize to students the desirability as well as feasibility of a career in Entrepreneurship in the Indian scenario.

The teachers may make use of Entrepreneurship Development Institute of India’s Inventory of Entrepreneur Competencies and National Institute of Entrepreneur ship, Developments training kit for arousing Entrepreneur motivation and capacity and capability building.

Opportunity scouting and idea generation: role of creativity and innovation and business research - Sources of business ideas - Entrepreneur opportunities in contemporary business environment, for example opportunities in net-work marketing, franchising, business process outsourcing in the early 21 century.

The students may be advised to visit various product/service franchises, BPO concerns and meet up/down links in the net-work marketing.

Launching of Micro, Small and Medium Enterprises (MSMEs): Decision to be self employed-Selection of product and process technology – Location of Enterprise- Forms of Business organization- Preparation of Project Report- Registration/ Statutory Licenses- Clearances

The students may be advised to develop a structured instrument [questionnaire] for conducting surveys of the various aspects of entrepreneur/enterprise. They may also be advised to prepare a comprehensive business plan. The desirability and feasibility of liaison with relevant funding and non-funding agencies may also be explored.

REFERENCES:

1. Brandt, Steven C., The 10 Commandments for Building a Growth Company,

Third Edition, Macmillan Business Books, Delhi, 1977.

31

L T P C1 0 1 1

Page 32: 2. IIIT M.tech SE Syllabus

2. Bhide, Amar V., The Origin and Evolution of New Business, Oxford University

Press, New York, 2000.

3. Dollinger M.J., ‘Entrepreneurship strategies and Resources’, 3rd edition, Pearson

Education, New Delhi 2006.

4. Desai, Vasant Dr. (2004) Management of small scale enterprises New Delhi: Himalaya Publishing House,

5. Taneja, Gupta, Entrepreneur Development New Venture Creation,: 2nd ed. Galgotia Publishing Company

6. Holt, David H., Entrepreneurship: Strtegies and Resources, Illinois, Irwin, 1955.

7. Panda, Shiba Charan, Entrepreneurship Development, New Delhi, Anmol Publications.

8. Patel, V.G., The Seven Business Crises and How to Beat Them, Tata-Mcgraw, New Delhi, 1995.

9. SIDBI Report n Small Scale Industries Sector[latest edition]

10. Verma, J.C.., and Gurpal Singh, Small Business and Industry-A Handbook for

Entrepreneurs, Sage, New Delhi, 2002

11. Vesper, Karl H., New Venture Strategies, [Revised Edition], New Jersy, Prentice Hall, 1990. 12. Hisrich, Entrepreneurship, Tata McGraw Hill, New Delhi, 2001.

13. S.S.Khanka, Entrepreneurial Development, S.Chand and Company Limited, New Delhi, 2001.

14. Mathew Manimala, Entrepreneurship Theory at the Crossroads, Paradigms & Praxis, Biztrantra , 2ndEdition , 2005.

15. Prasanna Chandra, Projects –Planning, Analysis, Selection, Implementation and Reviews,

Tata McGraw-Hill, 1996.16. P.Saravanavel, Entrepreneurial Development, Ess Pee kay Publishing House, Chennai -1997.17. Arya Kumar, Entrepreneurship, Pearson. 2012.18. Donald F Kuratko, T.V Rao, Entrepreneurship: A South Asian perspective, Cengage Learning, 2012.

32

Page 33: 2. IIIT M.tech SE Syllabus

GRADUATE SEMINAR / TERM PAPER

Guidelines: Seminar should be based on thrust areas in Software Engineering Students should do literature survey and identify the topic of seminar and finalize in

consultation with Guide/Supervisor. Students should use multiple literatures and understand the topic and compile the report in standard format and present in front of Panel of Examiners appointed by the Head of the Department/Institute of respective Programme.

Seminar should be assessed based on following points:Quality of Literature survey and Novelty in the topicRelevance to the specializationUnderstanding of the topicQuality of Written and Oral Presentation

33

L T P C0 0 2 1

Page 34: 2. IIIT M.tech SE Syllabus

PHASE (I & II) PROJECT WORK

Guidelines:

Students should do literature survey and identify the problem for Dissertation and finalize in consultation with Guide/Supervisor. Students should use multiple literatures and understand the problem. Students should attempt solution to the problem by analytical/simulation/experimental methods. The solution to be validated with proper justification and compile the report in standardformat.

Guidelines for Assessment of Phase - I

Dissertation -I should be assessed based on following points:Quality of Literature survey and Novelty in the problemClarity of Problem definition and Feasibility of problem solutionRelevance to the specializationClarity of objective and scope

Dissertation -I should be assessed through a presentation by a panel of Internalexaminers appointed by the Head of the Department/Institute of respective Programme

Guidelines for Assessment of Phase - II Dissertation II should be assessed based on following points:

Quality of Literature survey and Novelty in the problemClarity of Problem definition and Feasibility of problem solutionRelevance to the specialization or current Research / Industrial trendsClarity of objective and scopeQuality of work attemptedValidation of resultsQuality of Written and Oral Presentation

Dissertation II should be assessed through a presentation jointly by Internal and ExternalExaminers

Students should publish at least one paper based on the work in reputed International / National Conference (desirably in Refereed Journal)

34

Credits12

Credits18

Page 35: 2. IIIT M.tech SE Syllabus

ELECTIVE - I

REQUIREMENTS FOR REAL TIME SYSTEMS

Course Objectives:

To understand the fundamental concepts and terminology of real-time systems; To address the fundamental problems of real-time systems;

To analyze real-time systems designs;

To design a real-time system (at least partially); and

REAL TIME CONCEPTS AND HARDWARE CONSIDERATIONS

System concept – Real time definitions – Events and Determinations – CPU utilization – real time system design issues – Basic architecture – hardware interfacing – central processing unit memory – input output – enhancing performance – other special devices

SOFTWARE CONSIDERATIONS

Real time Kernel – Polled loop systems – phase/ state – driven systems – co routines – interrupt driven systems – full featured real time operating systems – inter task communication and synchronization – memory management

SYSTEM PERFORMANCE AND OPTIMIZATION

Response time calculation – interrupt latency – time – loading and its measurements – reducing

response times and time – loading – analysis of memory requirements – reducing memory loading – queuing models

RELIABILITY TESTING AND FAULT TOLERANCE

Faults – fault types – fault detection – fault and error containment – fault tolerance – redundancy – data diversity – failures – bugs and effects – reliability – testing

HARDWARE/SOFTWARE INTEGRATION AND REAL TIME APPLICATION

Goals of real time system integration – tools for integration – methodology – the software Heisenberg uncertainly principles – real time applications – real time databases – real time image processing

REFERENCES

1. Phillip A. Laplante, “Real – time Systems Design and Analysis : An Engineer's Handbook:”,

35

L T P C3 0 0 3

Page 36: 2. IIIT M.tech SE Syllabus

Prentice – Hall of India.

2. C.M.Krishna, Kangg.Shin, “Real – Time Systems”, McGraw Hill

3. Kotonya G. and Sommerville I, “Requirements Engineering Processes and Techniques”, John

Wiley and Sons, 1998.

4. Skidmore S. and Eva M, “Introducing Systems Development”, Palgrave Macmillan, 2004.

5. Yeates D. and Wakefield T, “Systems Analysis and Design”, FT Prentice Hall, 2003

6. Alexander I. and Stevens R, “Writing Better Requirements”, Addison Wesley, 2002.

7. Alexander I. and Maiden N, “Scenarios, Stories and Use Cases”, John Wiley and Sons, 2004.

8. Paul D., Yeates D. et al, “Business Analysis”, British Computer Society, 2006.

9. Andrew Stellman and Jennifer Greene, “Applied Software Project Management”, Cambridge,

MA: O'Reilly Media, 2005.

10. Hassan Gomaa, “Software Development of Real time systems”, Edgar H. Sibley, 1996.

11. Derek J.Hatley, Imtiaz A. Pirbhai, “Strategies for Real – time Systems Specification”, Dorset

House Publishing

36

Page 37: 2. IIIT M.tech SE Syllabus

HUMAN COMPUTER INTERFACE FOR SOFTWARE DESIGNERS

Course Objectives:

To provide complimentary programming skills to those who have been trained in software engineering.

To acquire the user-centered approach to software design.

To know how humans interact with physical and information environments, and how to design software with human's information needs and their cognitive capacities in mind.

To introduce several evaluation methods which help software designers discover usability problems in software systems and web applications.

INTRODUCTION AND HISTORICAL PERSPECTIVE:

Historical Developments: HCI - A Historical and Intellectual Perspective.

Communication: Types and issues – Control – perception – learning – bandwidth – channel capacity – information quantification – Physiology: human sense modalities.

Hardware: Keyboards – pointing devices – screens – Speech synthesis – speech recognition hardware - PDAs – Smart Phones – Smart Environments – Display devices – Devices for Virtual Reality and 3 D interaction - – Peripheral Displays – Toolkits for Peripheral Displays – Evaluating Peripheral Displays.

Interaction Paradigms: Models of interaction – Interaction Framework – Ergonomics – Software/interface guidelines – Interaction Styles – Context of Interaction – Interaction Paradigms – Mobile device interaction paradigms.

DESIGN PROCESS

Task analysis: Difference between task analysis and other techniques – text decomposition – knowledge based analysis - Entity – Relationship – based techniques – Source of information and data collection – Use of task analysis.

Dialog notation and design: Dialog design and Diagrammatic of notation – Dialog semantic analysis and design.

37

L T P C3 0 0 3

Page 38: 2. IIIT M.tech SE Syllabus

Interaction design: Process of design – Task – centered and user – centered design – Functionality and usability – Design guidelines – The use of models in interface design – Iteration – prototyping – formal methods – Task and user analysis – Specifying usability requirements – Interface style and design guides – Prototyping tools.

Universal design: Universal design principles – Multi – modal interaction for pervasive computing environments.

HCI in the software process : Software life cycle – Iterative and prototyping – Principles of support usability – standards – guide lines – HCI patterns – golden rules and heuristics.

IMPLEMENTATION AND EVALUATION

Implementation issues: Elements of windowing systems – user interface management systems – Response time – Colors – Short cuts – Symbols – Adaptable interfaces – self configuring systems for mobile devices.

Evaluation techniques: Evaluation through expert analysis and user participation – Evaluation methodologies – Evaluation criteria: functionality – usability – learnability – initiative.

MODELS AND THEORIES

Cognitive models – Communication and collaboration models: Models of the system: Standard formalisms – Interaction models – continuous behavior.

Modeling rich interaction: Status – event analysis – Rich context – low intention and sensor – based interaction.

APPLICATIONS

Socio – organization issues and stakeholder requirements: Organizational issues – capturing requirements.

Ubiquitous Computing: Introduction of Ubiquitous computing – Virtual and augmented reality.

Context – aware User Interfaces: Augmented reality – context – aware systems – context – aware toolkits and architectures.

Hypertext, multimedia and the World Wide Web: Understanding hyper test – Web technology and issues – static and dynamic web content.

REFERENCES:

1. Dix, Finlay, Abowd and Beale. “Human – Computer Interaction”, Second edition, Prentice Hall, 1998.

2. J. Preece, Y. Rogers, H. Sharp, D. Benyon, S. Holland and T. Carey. “Human – Computer Interaction”, Addison Wesley, 1994.

38

Page 39: 2. IIIT M.tech SE Syllabus

3. Linda Mcaulay, “HCI for Software Designers”,International Thompson Computer Press, USA,1998.

4. Ben Schneiderman, "Designing the User Interface", Pearson Education, New Delhi,2005.5. Alan Cooper, "The Essentials of User Interface Design", IDG Books, New Delhi,1995.6. Jacob Nielsen, "Usability Engineering", Academic Press, 1993.

39

Page 40: 2. IIIT M.tech SE Syllabus

SOFTWARE AGENTS

Course Objectives:

To familiar with the concepts and design principles of software agents To develop applications with a standard agent development tool.

AGENTS – OVERVIEW Agent Definition – Agent Programming Paradigms – Agent Vs Object – Aglet – Mobile Agents – Agent Frameworks – Agent Reasoning.

JAVA AGENTS Processes – Threads – Daemons – Components – Java Beans – ActiveX – Sockets – RPCs – Distributed Computing – Aglets Programming – Jini Architecture – Actors and Agents – Typed and proactive messages.

MULTIAGENT SYSTEMS Interaction between agents – Reactive Agents – Cognitive Agents – Interaction protocols – Agent coordination – Agent negotiation – Agent Cooperation – Agent Organization – Self-Interested agents in Electronic Commerce Applications.

INTELLIGENT SOFTWARE AGENTS

Interface Agents – Agent Communication Languages – Agent Knowledge Representation – Agent Adaptability – Belief Desire Intension – Mobile Agent Applications.

AGENTS AND SECURITYAgent Security Issues – Mobile Agents Security – Protecting Agents against Malicious Hosts – Untrusted Agent – Black Box Security – Authentication for agents – Security issues for Aglets.

REFERENCES:

1. Bigus & Bigus, " Constructing Intelligent agents with Java ", Wiley, 1997.

2. Bradshaw, " Software Agents ", MIT Press, 2000.

3. Russel, Norvig, "Artificial Intelligence: A Modern Approach", Second Edition, Pearson Education, 2003.

4. Richard Murch, Tony Johnson, "Intelligent Software Agents", Prentice Hall, 2000.5. JADE (Java Agent DEvelopment Framework) available from http://jade.tilab.com/

40

L T P C3 0 0 3

Page 41: 2. IIIT M.tech SE Syllabus

ASPECT ORIENTED PROGRAMMING FOR SOFTWARE DEVELOPMENT

Course Objectives:

To understand the historical roots of aspect-oriented software development. To gain familiarity with current research and state of the art in aspect-oriented design. To become proficient in using the most important aspect-oriented language and tools. To develop a critical understanding of the strengths and weaknesses of the current work.

ASPECT-ORIENTED PROGRAMMING CONCEPTS: Introduction to Aspect-Oriented programming – From OO to Aspects – A First Look at AspectJ – Strategies for a Real Application: Application Description – Implementation Details – Crosscutting by Design.

FUNDAMENTALS OF ASPECTS: Extension – Reflection – Instantiation – Domination – Picking Join Points: Point cuts – Types of Point cuts.

ADVICES AND STATIC CROSSCUTTING: Fundamentals – The before Advice – The after Advice – Around Advice – Precedence Rules – Text Case – Field Introduction – Method Introduction – Constructor Introduction – Access Rules and Privileged Aspects.

USES OF ASPECTJ AND ASPECTJ TOOLS: Adopting AspectsJ – Development Uses – Product Aspects – AspectJ Compiler Options – The Structure Browser for Aspects – Using AspectJ IDE Extensions – Debugging with AspectJ.

ERROR HANDLING AND COMMON PROBLEMS: Compilation Errors – Extended Runtime Error Handling – Exception Throwing and Catching – Using TraceJoinPoints.java – Differentiating between Call and Execution Designators – Aspect – Oriented Examples: Patterns and Reuse.

REFERENCES:1. Ivan Kiselev, “Aspect-Oriented Programming with AspectJ”, Sams , 2002. 2. D.Joseph Gradecki , Nicholas Lesiecki , “Mastering AspectJ: Aspect-Oriented

Programming in Java “, Wiley, First Edition, 2003.3. Vladimir Safonov, “Using Aspect-Oriented Programming for Trustworthy Software

Development”, John Wiley & Sons, 2008.

41

L T P C3 0 0 3

Page 42: 2. IIIT M.tech SE Syllabus

OPEN SOURCE SOFTWARE

Course Objectives:

1. To analyze and understand the differences between the open source model and the commercial proprietary model2. To gain hands-on skills and experience in using a variety of open source software and to develop and use evaluative methods for assessing OSS products

LINUX BASICS: Overview of free/open source software − Definition of FOSS and GNU − History of GNU/Linux and the free software movement − Advantages of free software andGNU/Linux − FOSS usage − Trends and potential − Global and Indian − GNU/Linux OS installation − Detect hardware − Configure disk partitions and file systems − Install a GNU/Linux distribution − Basic shell commands − Logging in – Listing files − Editing files − Copying/moving files − Viewing file contents − Changing file modes and permissions − Process management − User and group management – File ownerships and permissions − PAM authentication − Introduction to common system configuration files and log files − Configuring networking − Basics of TCP/IP networking and routing − Connecting to the internet. (through dialup −DSL- Ethernet −Leased line)

LINUX FUNDAMENTALS: Configuring additional hardware − Sound cards − Displays and Display cards − Network cards – Modems − USB drives − CD writers − Understanding the OS bootup process − Performing everyday tasks using gnu/linux − Accessing the internet playing music − Editing documents and spreadsheets − Sending and receiving email − Copy files from disks and over the network − Playing games − Writing CDS – X window system configuration and utilities − Configure X windows − Detect display devices − Installing software − From source code as well as using binary packages − Setting up email servers − Using postfix ( SMTP Services) − Courier ( MAP & POP3 Services) − Squirrel mail ( Web Mail Services) − Setting up web servers – Using apache ( HTTP Services) − PHP (Server-Side Scripting) − Perl ( CGI Support) − Setting up file services − Using samba ( File and Authentication Services for Windows Networks) − Using NFS ( File Services for Gnu/Linux / Unix Networks) − Setting up proxy services − Using squid ( Http / Ftp / Https Proxy Services) – Setting up printer services − Using CUPS (Print Spooler) − Foomatic.(Printer Database)

DEVELOPMENT ENVIRONMENT: Setting up a firewall − Using netfilter and IP tables − Using the GNU compiler collection − GNU compiler tools − C preprocessor (CPP) − C compiler (GCC) and the C++ compiler (G++) − Assembler (GAS) − Understanding build systems − Constructing make files and using make − Using autoconf and autogen to automatically generate make files tailored for different development environments − Using source code versioning and management tools − Using CVS to manage source code revisions − Patch and diff.

LINUX INTERNALS: Understanding the GNU LIBC libraries and linker − Linking against object archives (.a libraries) and dynamic shared object libraries (.so libraries) − Generating statically linked binaries and libraries − Generating dynamically linked libraries − Using the GNU debugging tools − GDB to debug programs − Graphical debuggers like DDD − Memory debugging / profiling libraries MPATROL and VALGRIND − Review of common programming

42

L T P C3 0 0 3

Page 43: 2. IIIT M.tech SE Syllabus

practices and guidelines for GNU/Linux and FOSS – Basics of bash − SED and Awk scripting- Basics of the X windows server architecture.

DESKTOP PROGRAMMING: QT programming − GTK+ programming − Python programming − Programming GUI applications with localization support.

OPEN STANDARDS: National Information Standards Organization (NISO), The Digital Library Federation (DLF). The Dublin Core Metadata Initiative. MARC standards, Resource Description and Access (RDA). Open Archives Initiative. OAI-PMH. Search / Retrieval via URL (SRU), SRW/CQL. Java Platform, Enterprise Edition (Java EE).

OPEN SOURCE LICENSES: GNU General Public License (GPL) version 2,3, GNU Lesser General Public License (LGPL) version 2.1,3, GNU Affero General Public License (AGPL) version 3, Apache License, Version 2.0, Artistic License 2.0, etc.

REFERENCES1. N. B. Venkateshwarlu, “Introduction to Linux: Installation and Programming”, B S

Publishers, 2005. 2. Matt Welsh, Matthias Kalle Dalheimer, Terry Dawson and Lar Kaufman, “Running

Linux”, 4th Edition, O'Reilly Publishers, 2002.3. Carla Schroder, “Linux Cookbook”, 1st Edition, O'Reilly Cookbooks Series, November

2004. 4. “Open Sources: Voices from the Open Source Revolution”, 1st Edition, January 1999.

URL: http://www.oreilly.com/catalog/opensources/book/toc.html5. The Linux Cookbook: Tips and Techniques for Everyday Use”, 1st Edition, Michael

Stutz, 2001. URL: http://dsl.org/cookbook/cookbook_toc.html6. “The Linux System Administrators' Guide”, Lars Wirzenius, Joanna Oja, Stephen

Stafford, and Alex Weeks, December 2003. URL: ttp://www.tldp.org/guides.html7. Using GCC, Richard Stallman et al. URL: http://www.gnu.org/doc/using.html8. An Introduction to GCC, Brian Gough. URL:

http://www.networktheory.co.uk/docs/gccintro/9. GNU Autoconf, Automake and Libtool, Gary V. Vaughan, Ben Elliston, Tom Tromey

and Ian Lance Taylor. URL: http://sources.redhat.com/autobook/10. Open Source Development with CVS, 3rd Edition, Karl Fogel and Moshe Bar.

URL:http://cvsbook.red-bean.com/11. Advanced Bash Scripting Guide, Mendel Cooper, June 2005.

URL: http://www.tldp.org/guides.html12. GTK+/GNOME Application Development, Havoc Pennington.

URL: http://developer.gnome.org/doc/GGAD/13. Python Tutorial, Guido van Rossum, Fred L. Drake, Jr., Editor.

URL: http://www.python.org/doc/current/tut/tut.html

14. http://directory.fsf.org/GNU/15. http://www.diglib.org16. http://www.niso.org/`

43

Page 44: 2. IIIT M.tech SE Syllabus

17. The Dublin Core Metadata Initiative <http://dublincore.org/>18. MARC standards <http://www.loc.gov/marc/>19. Resource Description and Access (RDA) <http://www.rdaonline.org/>20. WAMP server (Windows, Apache, MySQL, PHP) <http://www.wampserver.com/en/>21. Open Source MySQL <http://www.mysql.com/>22. Search / Retrieval via URL (SRU) <http://www.loc.gov/standards/sru/>23. <http://www.loc.gov/standards/>24. <http://iesr.ac.uk/use/sru/>25. <http://java.sun.com/javaee/>26. <http://www.jboss.org/>

44

Page 45: 2. IIIT M.tech SE Syllabus

ELECTIVE – II

SOFTWARE DOCUMENTATION

Course Objectives:

To know the basic forms of software documentation and the planning of documentation projects.

To select the appropriate tools for requirements.

BASIC CONCEPTS

Importance of documentation -- Need for Software Documentation - – different types of documentation -- Understanding task orientation - Analyzing users - Writing user scenarios - User informational needs - Document goals - User work motivations - User analysis checklist - Constructing a task list - Categorization -Writing steps as actions - Task analysis.

DOCUMENTATION PLANNING

Planning and writing documents - Task list and Schedule - Guidelines - Documentation process - Documentation plan - Document review form - Review plan - Schedule -Checklist.

DOCUMENTATION TESTING

Usability tests - Advantages of field testing - Editing and fine tuning - Problems - Designing for task orientation - Page showing elements of document design - Screen showing elements for online help design - Solutions to the design problem for printed and online documentation.

DOCUMENTATION LAYOUTS

Laying out pages and screens - Elements of page and screen design - Designing type - Effective writing style - Using graphical that support decision making - Functions of graphics - Type and elements of graphics.

DOCUMENTATION GUIDELINES

Writing to guide - Procedures - Guidelines - Writing to support - Reference - Structural - reference entry - Checklist - Designing index - User oriented index - Case studies – Technical documentation – IEEE standards – Documenting the code.

REFERENCES:

45

L T P C3 0 0 3

Page 46: 2. IIIT M.tech SE Syllabus

1. Thomas T. Barker , "Writing s/w documentation - a task oriented approach", Allyn & Bacon Series of Technical Communication , 1998.

2. Edmond H.Weiss, How To Write Usable User Documentation : Second Edition , Oryx Press; 2nd edition 1991.

3. Huckin, et al, " Technical Writing and Professional Communication ", McGraw Hill, 1991.

4. IEEE Standards on Documentation

46

Page 47: 2. IIIT M.tech SE Syllabus

SOFTWARE REUSE

Course Objectives:

To familiarize students with principles, practicalities and key research issues in software reuse and, in particular, a Product Line approach to reuse.

FUNDAMENTALS Organizing Reuse – Introduction – Motivation for Reuse – Reuse Driven Organizations – Managing a Reuse Project – The Characteristics of Reuse of Project – Roles in Reuse Projects – Adopting a Project to Reuse – Reuse Tools

REUSE METRICS Managing a Repository – The REBOOT Component Model – Classification – Configuration Management of the Repository – Managing the Repository – Computer Supported Cooperative Working – Process Metrics for Reuse – Product Metrics – Cost Estimation – Forming a Reuse Strategy – Assessing Reuse Maturity

REUSABLE COMPONENTS Practicing Reuse – Generic Reuse Development Processes – Develop for Reuse – Develop with Reuse – Testing Reusable Components – Object Oriented Components – Techniques and Life Cycles – Object Oriented Development for Reuse – Detailed Design for Reuse – Implementation for Reuse – Verification –Test and Validation

REUSE PHASES Development with Reuse – With Reuse Specific Activities – Common Reuse Processes – Phases of Development with Reuse – Impact of Reuse on Development Cycle

CLEAN ROOM SOFTWARE ENGINEERNG Re-engineering for Reuse – Methodology – Retrieving Objects in Non–Object Oriented Code –Measurements – Tools Support for Re-engineering – Overview of Clean Room Software Engineering – Phases in Clean Room Method – Box Structures Algorithms – Adapting the Box Structures.

REFERENCES:1. Even-Andre Karisson, “Software Reuse A Holistic Approach”, John Wiley and Sons,

1996.2. Karma McClure, “Software Reuse Techniques Additional reuse to the Systems

development process”, Prentice Hall, 1997.

47

L T P C3 0 0 3

Page 48: 2. IIIT M.tech SE Syllabus

SOFTWARE MAINTENANCE AND EVOLUTION

Course Objectives:

To acquire an understanding and appreciation of the challenges posed by software maintenance and software evolution.

To learn about quality of architecture and source code and how it affects software maintenance and evolution.

INTRODUCTION: Basic Concepts- The Maintenance Framework - Fundamentals of Software Change - Limitations and Economic Implications to Software Change - The Maintenance Process.

MAINTENANCE ACTIVITIES: Program Understanding - Reverse Engineering - Reuse and Reusability – Testing - Management and Organisational Issues.

MANAGEMENT: Configuration Management - Maintenance Measures.

BUILDING BETTER SYSTEMS: Building and Sustaining Maintainability - Maintenance Tools

STANDARDS: IEEE Standard for Software Maintenance

REFERENCES:

1. Grubb and Takang, Software Maintenance: Concepts and Practices, 2nd edition, World Scientific, 2003.

2. Stanislaw Jarzabek, Effective Software Maintenance and Evolution: A Reuse-Based Approach, Auerbach publications, 2007.

3. April A. and Abran A., Software Maintenance Management, Wiley, 2008.- Guide to the Software Engineering Body of Knowledge: 2004 ed., Abran A., Moore J.W.(Executive Ed.), Bourque P., Dupuis R. (Ed.). IEEE Computer Society Press, April 2005.

4. IEEE Std 1219-1998, IEEE Standard for Software Maintenance.

48

L T P C3 0 0 3

Page 49: 2. IIIT M.tech SE Syllabus

SOFTWARE REFACTORING

Course objectives:

To learn about Refactoring, need for refactoring and the problems with refactoring To gain expertise in building test, refactoring, composing methods, removing parameters To understand organizing data, replace, remove, preserve objects etc To apprehend generalization, extract and replace field, class, object , perform big

refactoring To skill in refactoring reuse and tools for refactoring

INTRODUCTION

Refactoring, a First Example - The Starting Point - The First Step in Refactoring - Decomposing and Redistributing the Statement Method - Replacing the Conditional Logic on Price Code with Polymorphism - Principles in Refactoring- Defining Refactoring - Why Should You Refactor - When Should You Refactor - What Do I Tell My Manager? - Problems with Refactoring - Refactoring and Design - Refactoring and Performance - Where Did Refactoring Come From? - Bad Smells in Code - Duplicated Code - Long Method - Large Class - Long Parameter List - Divergent Change - Shotgun Surgery - Feature Envy - Data Clumps - Primitive Obsession - Switch Statements - Parallel Inheritance Hierarchies - Lazy Class - Speculative Generality - Temporary Field - Message Chains - Middle Man - Inappropriate Intimacy - Alternative Classes with Different Interfaces - Incomplete Library Class - Data Class - Refused Bequest

BUILDING TESTS

The Value of Self-testing Code - The JUnit Testing Framework - Adding More Tests - Toward a Catalog of Refactorings - Format of the Refactorings - Finding References - How Mature Are These Refactorings? - Composing Methods - Extract Method - Inline Method - Inline Temp - Replace Temp with Query - Introduce Explaining Variable - Split Temporary Variable - Remove Assignments to Parameters - Replace Method with Method Object - Substitute Algorithm - Moving Features Between Objects - Move Method - Move Field - Extract Class - Inline Class - Hide Delegate - Remove Middle Man - Introduce Foreign Method - Introduce Local Extension

DATA ORGANIZATION

Organizing Data - Self Encapsulate Field - Replace Data Value with Object - Change Value to Reference - Change Reference to Value - Replace Array with Object - Duplicate Observed Data - Change Unidirectional Association to Bidirectional - Change Bidirectional Association to Unidirectional - Replace Magic Number with Symbolic Constant - Encapsulate Field - Encapsulate Collection - Replace Record with Data Class - Replace Type Code with Class - Replace Type Code with Subclasses - Replace Type Code with State/Strategy - Replace Subclass with Fields - Simplifying Conditional Expressions - Decompose Conditional - Consolidate Conditional Expression - Consolidate Duplicate Conditional Fragments - Remove Control Flag - Replace Nested Conditional with Guard Clauses - Replace Conditional with Polymorphism - Introduce Null Object - Introduce Assertion - Making Method Calls Simpler - Rename Method -

49

L T P C3 0 0 3

Page 50: 2. IIIT M.tech SE Syllabus

Add Parameter - Remove Parameter - Separate Query from Modifier - Parameterize Method - Replace Parameter with Explicit Methods - Preserve Whole Object - Replace Parameter with Method - Introduce Parameter Object - Remove Setting Method - Hide Method - Replace Constructor with Factory Method - Encapsulate Downcast - Replace Error Code with Exception - Replace Exception with Test

GENERALIZATIONS

Dealing with Generalization - Pull Up Field - Pull Up Method - Pull Up Constructor Body - Push Down Method - Push Down Field - Extract Subclass - Extract Superclass - Extract Interface - Collapse Hierarchy - Form Template Method - Replace Inheritance with Delegation - Replace Delegation with Inheritance - Big Refactorings - The Nature of the Game - Why Big Refactorings Are Important - Four Big Refactorings - Tease Apart Inheritance - Convert Procedural Design to Objects - Separate Domain from Presentation - Extract Hierarchy

REFACTORING, REUSE AND REALITY

Reality check - Why Are Developers Reluctant to Refactor Their Programs - Resources and References for Refactoring - Implications Regarding Software Reuse and Technology Transfer - Refactoring Tools - Refactoring with a Tool - Technical Criteria for a Refactoring Tool - Practical Criteria for a Refactoring Tool - Putting It All Together

REFERENCES:

1. Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts ," Refactoring : Improving the Design of Existing Code , Addison Wesley, 2011

2. Martin Lippert, Stephen Roock," Refactoring in Large Software Projects: Performing Complex Restructurings ", John Wiley and sons ltd, 2006

3. William C. Wake ,"Refactoring workbook", Pearson Education Inc. 2004 4. William J. Brown ," Anti Patterns: refactoring software, architectures, and projects in

crisis",5. Joshua Kerievsky ," Refactoring to Patterns" , Addison-Wesley, 2005

50

Page 51: 2. IIIT M.tech SE Syllabus

METRICS AND MODELS IN SOFTWARE QUALITY ENGINEERING

Course Objectives:

To understand the quality concepts and quality standards. To study the software quality engineering metrics and models.

Quality: Introduction – Software Quality – Total Quality Management – Software Development Process models – Process Maturity Framework and Quality Standards.

Measurement Theory: Fundamentals of Measurement theory – Level of Measurement – Basic Measures – Reliability and Validity – Software quality Metrics – Product quality Metrics – In-Process quality Metrics – Metrics for Software Maintenance – Collecting Software Engineering Data.

Quality Tools: Ishikawa’s seven basic tools – Checklist – Pareto diagram – Histogram – Run Charts – Scatter diagram – Control Chart – Cause-Effect diagram – Relations Diagram.

Defect Removal Effectiveness: DRE and quality planning – Cost effectiveness of Phase defect removal – DRE and Process maturity model.

Reliability: Reliability models – Rayleigh model – Reliability and Predictive Validity – The Exponential model – Reliability Growth models – Model assumptions – Criteria for model evaluation – Modeling Process – Test Compression Factor – Estimating the Distribution of Total Defects over Time.

Quality Management Models: The Rayleigh Model Framework – Code Integration Pattern – The PTR Submodel – The PTR Arrival and Backlog Projection Model – Reliability Growth Models – Criteria for model evaluation – In-Process metrics and reports – Orthogonal Defect classification.

Metrics: In-Process metrics for Software testing - Complexity metrics and models: Lines of code – Halstead’s Software Science – Cyclomatic Complexity – Structure metrics – An example of module design metrics in practice – Metrics for Object-oriented projects : Object-oriented concepts and constructs – Design and Complexity metrics – Productivity metrics – Quality and Quality management metrics – Availability metrics - Measuring and analyzing customer satisfaction – Conducting In-process quality assessments – Conducting software project assessments .

Software Process Improvement: Using Function points to measure Software process improvement – Data quality control – Software metrics program – Software quality engineering modeling – Statistical process control in software development.

51

L T P C3 0 0 3

Page 52: 2. IIIT M.tech SE Syllabus

REFERENCES:

1. Stephen H. Kan, “Metrics and Models in Software quality Engineering”, 2nd Ed., Addison Wesley, 2002

2. Allan C. Gillies, “Software Quality: Theory and Management”, Thomson Learning, 2003.

3. Norman E. Fenton and Shari Lawrence Pfleeger, “Software Metrics”, Thomson, 2003. 4. Mordechai Ben, Menachem and Garry S.Marliss, “Software Quality”, Thomson Asia Pvt.

Ltd., 2003 5. ISO 9000-3, “Notes for the Application of the ISO 9001 Standard to software

development”.6. Kamna Malik and Praveen Choudry, “Software Quality : A Practitioner Approach”, PHI,

2000.

52

Page 53: 2. IIIT M.tech SE Syllabus

ELECTIVE – III

MOBILE AND PERVASIVE COMPUTING

Course objectives :

To understand the basics of Mobile Computing and Personal Computing To learn the role of cellular networks in Mobile and Pervasive Computing To expose to the concept of sensor and mesh networks To expose to the context aware and wearable computing To learn to develop applications in mobile and pervasive computing environment

INTRODUCTION

Differences between Mobile Communication and Mobile Computing – Contexts and Names – Functions – Applications and Services – New Applications – Making Legacy Applications Mobile Enabled – Design Considerations – Integration of Wireless and Wired Networks – Standards Bodies – Pervasive Computing – Basics and Vision – Principles of Pervasive Computing – Categories of Pervasive Devices

3G AND 4G CELLULAR NETWORKS

Migration to 3G Networks – IMT 2000 and UMTS – UMTS Architecture – User Equipment – Radio Network Subsystem – UTRAN – Node B – RNC functions – USIM – Protocol Stack – CS and PS Domains – IMS Architecture – Handover – 3.5G and 3.9G a brief discussion – 4G LAN and Cellular Networks – LTE – Control Plane – NAS and RRC – User Plane – PDCP, RLC and MAC – WiMax IEEE 802.16d/e – WiMax Internetworking with 3GPP

SENSOR AND MESH NETWORKS

Sensor Networks – Role in Pervasive Computing – In Network Processing and Data Dissemination – Sensor Databases – Data Management in Wireless Mobile Environments – Wireless Mesh Networks – Architecture – Mesh Routers – Mesh Clients – Routing – Cross Layer Approach – Security Aspects of Various Layers in WMN – Applications of Sensor and Mesh networks

CONTEXT AWARE COMPUTING & WEARABLE COMPUTING

Adaptability – Mechanisms for Adaptation - Functionality and Data – Transcoding – Location Aware Computing – Location Representation – Localization Techniques – Triangulation and Scene Analysis – Delaunay Triangulation and Voronoi graphs – Types of Context – Role of

53

L T P C3 0 0 3

Page 54: 2. IIIT M.tech SE Syllabus

Mobile Middleware – Adaptation and Agents – Service Discovery MiddlewareHealth BAN- Medical and Technological Requirements-Wearable Sensors-Intra-BAN communications

APPLICATION DEVELOPMENT

Three tier architecture - Model View Controller Architecture - Memory Management – Information Access Devices – PDAs and Smart Phones – Smart Cards and Embedded Controls – J2ME – Programming for CLDC – GUI in MIDP – Application Development ON Android and iPhone

REFERENCES:

1. Asoke K Talukder, Hasan Ahmed, Roopa R Yavagal, “Mobile Computing: Technology, Applications and Service Creation”, 2nd ed, Tata McGraw Hill, 2010.

2. Reto Meier, “Professional Android 2 Application Development”, Wrox Wiley,2010.3. Pei Zheng and Lionel M Li, ‘Smart Phone & Next Generation Mobile Computing’, Morgan

Kaufmann Publishers, 2006.4. Frank Adelstein, ‘Fundamentals of Mobile and Pervasive Computing’, TMH, 20055. Jochen Burthardt et al, ‘Pervasive Computing: Technology and Architecture of Mobile

Internet Applications’, Pearson Education, 20036. Feng Zhao and Leonidas Guibas, ‘Wireless Sensor Networks’, Morgan Kaufmann

Publishers, 20047. Uwe Hansmaan et al, ‘Principles of Mobile Computing’, Springer, 20038. Reto Meier, “Professional Android 2 Application Development”, Wrox Wiley, 2010.9. Mohammad s. Obaidat et al, “Pervasive Computing and Networking”, John wiley10. Stefan Poslad, “Ubiquitous Computing: Smart Devices, Environments and Interactions”,

Wiley, 2009.

54

Page 55: 2. IIIT M.tech SE Syllabus

IMAGE PROCESSING AND PATTERN RECOGNITION

Course objectives:

To introduce the student to various Image processing and Pattern recognition techniques.

To study the Image fundamentals. To study the mathematical morphology necessary for Image processing and Image

segmentation. To study the Image Representation and description and feature extraction. To study the principles of Pattern Recognition. To know the various applications of Image processing.

INTRODUCTION

Elements of an Image Processing System- Mathematical Preliminaries- Image Enhancement-Grayscale Transformation- Piecewise Linear Transformation-Bit Plane Slicing- Histogram Equalization--Histogram Specification- Enhancement by Arithmetic Operations- Smoothing Filter- Sharpening Filter- Image Blur Types and Quality Measures.

MATHEMATICAL MORPHOLOGY AND IMAGE SEGMENTATION

Binary Morphology-Opening and Closing- Hit-or-Miss Transform- Grayscale Morphology- Basic morphological Algorithms- Morphological Filters-Thresholding-Object (Component) Labeling-Locating Object Contours by the Snake Model- Edge Operators-Edge Linking by Adaptive Mathematical morphology- Automatic Seeded Region Growing- A Top-Down Region Dividing Approach.

IMAGE REPRESENTATION AND DESCRIPTION AND FEATURE EXTRACTION

Run-Length Coding- Binary Tree and Quadtree- Contour Representation-Skeletonization by Thinning- Medial Axis Transformation-Object Representation and Tolerance- Fourier Descriptor and Moment Invariants-Shape Number and Hierarchical Features-Corner Detection- Hough Transform-Principal Component Analysis-Linear Discriminate Analysis- Feature Reduction in Input and Feature Spaces.

55

L T P C3 0 0 3

Page 56: 2. IIIT M.tech SE Syllabus

PATTERN RECOGNITION

The Unsupervised Clustering Algorithm-Bayes Classifier- Support Vector Machine- Neural Networks-The Adaptive Resonance Theory Network-Fuzzy Sets in Image Analysis-Document image processing and classification-Block Segmentation and Classification- Rule-Based Character Recognition system- Logo Identification-Fuzzy Typographical Analysis for Character Pre classification-Fuzzy Model for Character Classification.

APPLICATIONS

Face and Facial Feature Extraction-Extraction of Head and Face Boundaries and Facial Features-Recognizing Facial Action Units-Facial Expression Recognition in JAFFE Database-Image Steganography- Types of Steganography- Applications of Steganography- Embedding Security and Imperceptibility- Examples of Steganography Software-Genetic Algorithm Based Steganography.

REFERENCE:

1. Image Processing and Pattern Recognition: Fundamentals and Techniques- Frank Y Shih, Willey IEEE Press, April 2010.

2. Rafael C. Gonzalez, Richard E. Woods, Steven Eddins,” Digital Image Processing using MATLAB”, Pearson Education, Inc., 2004.

3. D.E. Dudgeon and R.M. Mersereau, “Multidimensional Digital Signal Processing”,4. Prentice Hall Professional Technical Reference, 1990.5. William K. Pratt, “Digital Image Processing”, John Wiley, New York, 2002.6. Milan Sonka et al, “Image Processing, Analysis and Machine Vision”, Brookes/Cole, Vikas

Publishing House, 2nd edition, 1999;7. Sid Ahmed, M.A., “ Image Processing Theory, Algorithms and Architectures”, McGrawHill,

1995

56

Page 57: 2. IIIT M.tech SE Syllabus

BIG DATA ANALYTICS

COURSE OBJECTIVES:

To explore the fundamental concepts of big data analytics To learn to analyze the big data using intelligent techniques. To understand the various search methods and visualization techniques. To learn to use various techniques for mining data stream. To understand the applications using Map Reduce Concepts.

INTRODUCTION TO BIG DATA

Introduction to Big Data Platform – Challenges of Conventional Systems - Intelligent data analysis – Nature of Data - Analytic Processes and Tools - Analysis vs Reporting - Modern Data Analytic Tools - Statistical Concepts: Sampling Distributions - Re-Sampling - Statistical Inference - Prediction Error.

DATA ANALYSIS

Regression Modeling - Multivariate Analysis – Bayesian Methods – Bayesian Paradigm - Bayesian Modeling - Inference and Bayesian Networks - Support Vector and Kernel Methods - Analysis of Time Series: Linear Systems Analysis - Nonlinear Dynamics - Rule Induction - Fuzzy Logic: Extracting Fuzzy Models from Data - Fuzzy Decision Trees

SEARCH METHODS AND VISUALIZATION

Search by simulated Annealing – Stochastic, Adaptive search by Evaluation – Evaluation Strategies – Genetic Algorithm – Genetic Programming – Visualization – Classification of Visual Data Analysis Techniques – Data Types – Visualization Techniques – Interaction techniques – Specific Visual data analysis Techniques.

MINING DATA STREAMS

Introduction To Streams Concepts – Stream Data Model and Architecture - Stream Computing - Sampling Data in a Stream – Filtering Streams – Counting Distinct Elements in a Stream – Estimating Moments – Counting Oneness in a Window – Decaying Window - Real time Analytics Platform(RTAP) Applications - Case Studies - Real Time Sentiment Analysis, Stock Market Predictions.

FRAMEWORKS

MapReduce – Hadoop, Hive, MapR – Sharding – NoSQL Databases - S3 - Hadoop Distributed File Systems– Case Study.

57

L T P C3 0 0 3

Page 58: 2. IIIT M.tech SE Syllabus

REFERENCES

1. Michael Berthold, David J. Hand, “Intelligent Data Analysis”, Springer, 2007.2. Anand Rajaraman and Jeffrey David Ullman, “Mining of Massive Datasets”, Cambridge

University Press, 2012.3. Bill Franks, “Taming the Big Data Tidal Wave: Finding Opportunities in Huge Data

Streams with Advanced Analytics”, John Wiley & sons, 2012.4. Glenn J. Myatt, “Making Sense of Data”, John Wiley & Sons, 20075. Pete Warden, “Big Data Glossary”, O’Reilly, 2011.6. Jiawei Han, Micheline Kamber “Data Mining Concepts and Techniques”, Second

Edition, Elsevier, Reprinted 2008.7. Da Ruan,Guoquing Chen, Etienne E.Kerre, Geert Wets, Intelligent Data Mining,

Springer,20078. Paul Zikopoulos ,Dirk deRoos , Krishnan Parasuraman, Thomas Deutsch , James

Giles , David Corrigan, Harness the Power of Big Data The IBM Big Data Platform, Tata McGraw Hill Publications, 2012

9. Michael Minelli (Author), Michele Chambers (Author), Ambiga Dhiraj (Author) , Big Data, Big Analytics: Emerging Business Intelligence and Analytic Trends for Today's Businesses,Wiley Publications, 2013

58

Page 59: 2. IIIT M.tech SE Syllabus

WEB SERVICES

Course Objectives:

To understand the XML family of technologies To outline the components and functions of web services and identify the ways in which

they can benefit organizations To outline and distinguish between the core technologies used to develop web services

such as SOAP and WSDL. To demonstrate the application of XML in distributed communications. To introduce the semantic web.

XML TECHNOLOGY FAMILY

XML – benefits – Advantages of XML over HTML – EDI – Databases – XML based standards – DTD – XML Schemas – X – Files – XML processing – DOM – SAX – presentation technologies – XSL –XFORMS – XHTML – voice XML – Transformation – XSLT – XLINK – XPATH – XQ

ARCHITECTING WEB SERVICES

Business motivations for web services – B2B – B2C – Technical motivations – limitations of CORBA and DCOM – Service – oriented Architecture (SOA) – Architecting web services – Implementation view – web services technology stack – logical view – composition of web services – deployment view – from application server to peer to peer – process view – life in the runtime

WEB SERVICES BUILDING BLOCK

Transport protocols for web services – messaging with web services – protocols – SOAP – describing web services – WSDL – Anatomy of WSDL – manipulating WSDL – web service policy – Discovering web services – UDDI – Anatomy of UDDI – Web service inspection – Ad – Hoc Discovery – Securing web services.

IMPLEMENTING XML IN E – BUSINESS

B2B – B2C Applications – Different types of B2B interaction – Components of e – business XML systems – ebXML – Rosetta Net Applied XML in vertical industry – web services for mobile devices.

XML AND CONTENT MANAGEMENT

Semantic Web – Role of Meta data in web content – Resource Description Framework – RDF schema – Architecture of semantic web – content management workflow – XLANG – WSFL .

59

L T P C3 0 0 3

Page 60: 2. IIIT M.tech SE Syllabus

REFERENCES:1. Ron Schmelzer et al, “XML and Web Services”, Pearson Education, 2002.2. Sandeep Chatterjee and James Webber, “Developing Enterprise Web Services: An

Architect's Guide”, Prentice Hall, 2004.3. Frank P.Coyle, “XML, Web Services and the Data Revolution”, Pearson Education,

2002.4. Keith Ballinger, “.NET Web Services Architecture and Implementation”, Pearson

Education, 2003.5. Henry Bequet and Meeraj Kunnumpurath, “Beginning Java Web Services”, Apress,

2004.6. Russ Basiura and Mike Batongbacal, “Professional ASP .NET Web Services”, Apress,

2003.

60

Page 61: 2. IIIT M.tech SE Syllabus

ENTERPRISE CLOUD COMPUTING

Course Objectives:

To identify cloud computing models, characteristics, and technologies relevant to area of work 

To identify appropriate programming tools that allow for the flexibility, scalability and interoperability required for a cloud application

To develop cloud applications based on functional and technical requirements and cloud application architecture 

To develop cloud application interfaces with other cloud or enterprise applications, databases and infrastructure 

ENTERPRISE COMPUTING: Introduction- Mainframe architecture-Client-server architecture-3-tier architectures with TP monitors - The internet as a platform - Internet technology and web enabled applications-Web application servers-Internet of services - Software as a service and cloud computing - Emergence of software as a service - Successful SaaS architectures - Dev2.0 platforms - Cloud Computing - Dev 2.0 in the cloud for enterprises - Enterprise architecture: role and revolution - Enterprise data and processes - Enterprise Components - Application integration and SOA - Enterprise technical architecture - Data center infrastructure: coping with complexity

CLOUD PLATFORMS: Infrastructure as a service: Amazon EC2 - Platform as a service: Google App engine - Microsoft Azure - Cloud Computing Technologies: Economics of private cloud - Software productivity in the cloud - Economics of scale: public vs. private clouds –

CLOUD TECHNOLOGIES: Web Services, AJAX and mashups – Web services: SOAP and REST - SOAP versus REST - AJAX: asynchronous ‘rich’ interfaces - Mashups: user interface services - Virtualization technology: Virtual machine technology - Virtualization applications in enterprises - Pitfalls of Virtualization - Multi-tenant software - Multi-entity support - Multi-schema approach - Multi-tenancy using cloud data stores - Data access control for enterprise application

CLOUD DEVELOPMENT - Data in cloud - Relational databases - Cloud file systems: GFS and HDFS - BigTable, HBase and Dynamo - Cloud data stores: Datastore and simpleDB - MapReduce and extensions - Parallel computing - The MapReduce model - Parallel efficiency of MapReduce - Relational operations using MapReduce - Enterprise batch processing using MapReduce - Dev 2.0 platforms: Salesforce.com’s Force.com platform - TCS InstantApps on Amazon cloud - More Dev 2.0 platforms and related efforts - Advantages, applicability and limits of Dev 2.0

SOFTWARE ARCHITECTURE: Enterprise software: ERP,SCM,CRM - Anatomy of a large enterprise - Partners: people and organizations – Products Orders: sales and purchases - Execution: tracking work – Billing – Accounting -Enterprise process, build vs buy and SaaS - Custom enterprise applications and Dev 2.0 - Software architecture for enterprise components - User interface patterns and basic transactions - Business logic and rule-based computing - Inside

61

L T P C3 0 0 3

Page 62: 2. IIIT M.tech SE Syllabus

Dev 2.0: model driven interpreters - Security, error handling, transactions and workflow - Workflow and business processes - Implementing workflow in an application - Workflow meta-model using ECA rules - ECA Workflow engine - Using an external workflow engine - Process modelling and BPMN - Workflow in the cloud - Enterprise analytics and search - Enterprise knowledge: goals and approaches - Business intelligence - Text and data mining - Text and database search

ENTERPRISE CLOUD COMPUTING: Enterprise cloud computing ecosystem - Public cloud providers - Cloud management platforms and tools - Tools for buildings private clouds - Public clouds - Future of enterprise cloud computing.

REFERENCES:

1. Gautam Shroff, Enterprise Cloud Computing Technology, Architecture and applications, Cambridge University Press, 2010.

2. Dominic Duggan,  Enterprise and Cloud Computing , Wiley, 2013. 3. E. Hewitt , Cassandra: The Definitive Guide , O'Reilly 2011

4. T. White , Hadoop: The Definitive Guide , O'Reilly 2011

5. K. Hwang, G. Fox, and J. Dongarra , Distributed and Cloud Computing , Morgan Kaufmann 2011

6. I. Spaanjaars , Beginning ASP.NET 4 , Wiley 2010

7. S. Krishnan , Programming Windows Azure: Programming the Microsoft Cloud , O'Reilly 2010

8. J. Lowry , Programming WCF Services: Mastering WCF Services and the Azure AppFabric Bus , O'Reilly 2011

62