You are on page 1of 63

# INDIAN INSTITUTE OF

INFORMATION TECHNOLOGY
SRIRANGAM, TIRUCHIRAPPALLI

## M.Tech (SOFTWARE ENGINEERING)

CURRICULUM AND SYLLABUS

## M.Tech SOFTWARE ENGINEERING

CURRICULUM I TO IV SEMESTERS
SEMESTER I
SL.

COURSE

NO

CODE

COURSE TITLE

1.

2.

3.

4.

2+ 1
5*
week
industry
training

5.

6,

Communication

16

20

TOTAL CREDITS
SEMESTER II
SL.

COURSE

NO

CODE

COURSE TITLE

1.

2.

## Software Testing and Quality Assurance

2+ 1
week
industry
training

5*

3.

Elective I

4.

Elective II

5.

Elective III

6.

Entrepreneurship Development

16

19

TOTAL CREDITS
2

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

SEMESTER III
SL.

COURSE

NO

CODE

COURSE TITLE

1.

12 Credits
TOTAL CREDITS

13 Credits

SEMESTER IV

SL.

COURSE

NO

CODE

COURSE TITLE

18 Credits
TOTAL CREDITS

18 Credits

## M.Tech ( SOFTWARE ENGINEERING )

ELECTIVES
Requirements for Real-time Systems
Elective - I

## Human Computer Interface for Software Designers

Software Agents
Aspect oriented programming for software development
Open Source software

Software Documentation
Software Reuse
Elective - II

## Software Maintenance and Evolution

Software Refactoring
Metrics and Models in Quality Engineering
Mobile And Pervasive Computing
Image Processing and Pattern Recognition

Elective - III

## Big data analytics

Web services
Enterprise Cloud Computing

## M.Tech SOFTWARE ENGINEERING

FIRST SEMESTER
APPLIED PROBABILITY AND STATISTICS
L T P C
3 1 0 4

Course Objectives:

To introduce the basic concepts of one dimensional and two dimensional Random
variables.
To provide information about Estimation theory, Correlation, Regression and Testing
of hypothesis.
To enable the students to use the concepts of multivariate normal distribution and
principle 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 and
Duxbury, 2002.
2. Richard Johnson. Miller & Freunds 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

5. Dallas E Johnson, Applied Multivariate Methods for Data Analysis, Thomson and Duxbury
press, 1998.
L T P C
3 0 2 4
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- Ackermanns
Function- Recursion on Trees-Tree Traversals- Examples- Generalizing the Problem - Heap Sort
and Priority Queues-Representing Expressions.
OPTIMISATION ALGORITHMS : Optimization Problems-Graph Search AlgorithmsGeneric Search-Breadth-First Search-Dijkstras Shortest-Weighted-Path -Depth-First SearchRecursive 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 NPCompleteness-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-Lamports
Bakery Algorithm-Bounded Timestamps-Lower Bounds on the Number of Locations-Concurrent
6

## 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-ListBased Sets-Concurrent Reasoning- Coarse- Grained Synchronization-Fine-Grained
Synchronization-Optimistic
SynchronizationLazy
Synchronization-Non-Blocking
Synchronization-Concurrent Queues and the ABA Problem- Queues-A Bounded Partial QueueAn Unbounded Total Queue-An Unbounded Lock-Free Queue-Memory Reclamation and the
ABA Problem- Dual Data Structures- Concurrent Stacks and Elimination- An Unbounded LockFree 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, PHI
Learning Private Limited, 2012.
8. Rajeev Motwani and Prabhakar Raghavan, Randomized Algorithms, Cambridge University
Press, 1995.
9. A. V. Aho, J. E. Hopcroft, and J. D. Ullman, The Design and Analysis of Computer
10. A. V. Aho, J. E. Hopcroft, and J. D. Ullman,Data Structures and Algorithms, Pearson,
2006.

## OBJECT ORIENTED SOFTWARE ENGINEERING

L T P C
3 0 2 5
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.
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
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.

10

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

2. BANKING SYSTEM
PROJECT DESCRIPTION:
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:

11

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

## 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 colleges 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:
12

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" realtime 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
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 days 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 cafeterias daily specials. The
Menu Manager will need to edit the menus periodically to reflect planned food items that are not
available or price changes.

13

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 Deliverers 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, 2 nd ed, Pearson
Education, 2004.
3. Martin Fowler, UML Distilled, 3rd edition, Addison Wesley, 2004.
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

## FORMAL METHODS IN SOFTWARE ENGINEERING

L T P C
3 0 0 3
Course Objectives:

## To examine software-engineering techniques across the development life cycle

that are appropriate for high assurance systems.

## 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
THE Z NOTATION
The Interchange Language User-Defined Identifiers Data Types Basic Types Compound

## FORMAL SEMANTICS AND TOOLS

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

15

REFERENCES:
1.

Andrew Harry, Formal Methods: Fact File VDM and Z, John Wiley and

2.

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

16

Sons, 1996.

## SOFTWARE PROJECT MANAGEMENT

L T P C
3 0 0 3
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
17

using MS Project 2010 - Case study of cost estimation models and cost estimation
tools - Study of SCM tools like Visual source safe 6.0

REFERENCES:
1. Roger S Pressman, Software Engineering, A Practitioners 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

## PROFESSIONAL ETHICS AND BUSINESS LANGUAGE COMMUNICATION

L T P C
1 0 1 1
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
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

SECOND SEMESTER
ENTERPRISE SOFTWARE ARCHITECTURE AND DESIGN
L T P C
3 0 2 4
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 resourceoriented 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 20

Replicating Computation - Replicating State - Sources of Errors and Rejuvenation - Caching 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

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, 2012
2. Dominic Duggan , Enterprise and Cloud Computing , Wiley, 2013.

22

## SOFTWARE TESTING AND QUALITY ASSURANCE

L T P C
3 0 2 5
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

Quality assurance models : Models for Quality Assurance-ISO-9000 Series- CMM- CMMITest 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

## 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;
}
return1; /* 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

## (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

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 colocate 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 companys
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 students 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

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 informations from the faculty generates report Roll
No, Name, Department, Semester, Marks obtained in each subject.
b) The total for each student should be calculated and ranked based on total and pass
in all the subject appeared.
c) The Final report should display rank, percentage, Class, Pass/Fail Status for each
student.
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 application
using 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,
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 complexity
b) 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

## 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 informations from the faculty generates report Roll
No, Name, Department, Semester, Marks obtained in each subject.
b) The total for each student should be calculated and ranked based on total and pass
in all the subject appeared.
c) The Final report should display rank, percentage, Class, Pass/Fail Status for each
student.
Perform Functionality testing using manual techniques.
CASE STUDY 20: Develop a Java program for student marks analyzing system.
a) The System obtains following informations from the faculty generates report Roll
No, Name, Department, Semester, Marks obtained in each subject.
b) The total for each student should be calculated and ranked based on total and pass
in all the subject appeared.
c) The Final report should display rank, percentage, Class, Pass/Fail Status for each
student.
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 GUI
b) Perform Security testing using any automated tool.
CASE STUDY 22: Develop a Java program for student marks analyzing system.
a) The System obtains following informations from the faculty generates report Roll
No, Name, Department, Semester, Marks obtained in each subject.
b) The total for each student should be calculated and ranked based on total and pass
in all the subject appeared.
c) The Final report should display rank, percentage, Class, Pass/Fail Status for each
student.
Perform Integration testing for the above program.
CASE STUDY 23: Consider any Online Air reservation system website
Perform 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 and
perform 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

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, RealTime 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

ENTREPRENEURSHIP DEVELOPMENT
L T P C
1 0 1 1

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 Indias

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

## 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,
31

## Third Edition, Macmillan Business Books, Delhi, 1977.

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.
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

## GRADUATE SEMINAR / TERM PAPER

L T P C
0 0 2 1

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 topic
Relevance to the specialization
Understanding of the topic
Quality of Written and Oral Presentation

33

## 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 standard
format.
Guidelines for Assessment of Phase - I

Credits
12
Dissertation -I should be assessed based on following points:
Quality of Literature survey and Novelty in the problem
Clarity of Problem definition and Feasibility of problem solution
Relevance to the specialization
Clarity of objective and scope
Dissertation -I should be assessed through a presentation by a panel of Internal
examiners 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:
Credits
18

## Quality of Literature survey and Novelty in the problem

Clarity of Problem definition and Feasibility of problem solution
Relevance to the specialization or current Research / Industrial trends
Clarity of objective and scope
Quality of work attempted
Validation of results
Quality of Written and Oral Presentation
Dissertation II should be assessed through a presentation jointly by Internal and External
Examiners
Students should publish at least one paper based on the work in reputed International /
National Conference (desirably in Refereed Journal)

34

ELECTIVE - I
REQUIREMENTS FOR REAL TIME SYSTEMS
L T P C
3 0 0 3
Course Objectives:

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

To address the fundamental problems of real-time systems;

## 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
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
35

1. Phillip A. Laplante, Real time Systems Design and Analysis : An Engineer's Handbook:,
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

## HUMAN COMPUTER INTERFACE FOR SOFTWARE DESIGNERS

L T P C
3 0 0 3
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
DESIGN PROCESS
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

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.

38

## 2. J. Preece, Y. Rogers, H. Sharp, D. Benyon, S. Holland and T. Carey. Human Computer

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

SOFTWARE AGENTS
L T P C
3 0 0 3
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 SelfInterested 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 SECURITY
Agent 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.

3.

## Russel, Norvig, "Artificial Intelligence: A Modern Approach", Second Edition, Pearson

Education, 2003.

4.

Richard Murch, Tony Johnson, "Intelligent Software Agents", Prentice Hall, 2000.
40

5.

ASPECT ORIENTED PROGRAMMING FOR SOFTWARE
DEVELOPMENT
L T P C
3 0 0 3

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.
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.
41

## 3. Vladimir Safonov, Using Aspect-Oriented Programming for Trustworthy

Development, John Wiley & Sons, 2008.

42

Software

## OPEN SOURCE SOFTWARE

L T P C
3 0 0 3

Course Objectives:

1. To analyze and understand the differences between the open source model and the commercial
proprietary model
2. 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 and
GNU/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.
object archives (.a libraries) and dynamic shared object libraries (.so libraries) Generating
GNU debugging tools GDB to debug programs Graphical debuggers like DDD Memory
debugging / profiling libraries MPATROL and VALGRIND Review of common programming
43

practices and guidelines for GNU/Linux and FOSS Basics of bash SED and Awk scriptingBasics 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)
REFERENCES
1.
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.html
5.
The Linux Cookbook: Tips and Techniques for Everyday Use, 1st Edition, Michael
Stutz, 2001. URL: http://dsl.org/cookbook/cookbook_toc.html
6.
The Linux System Administrators' Guide, Lars Wirzenius, Joanna Oja, Stephen
Stafford, and Alex Weeks, December 2003. URL: ttp://www.tldp.org/guides.html
7.
Using GCC, Richard Stallman et al. URL: http://www.gnu.org/doc/using.html
8.
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.html
12. GTK+/GNOME Application Development, Havoc Pennington.
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.org
16. http://www.niso.org/`
44

## 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/>

45

ELECTIVE II
SOFTWARE DOCUMENTATION
L T P C
3 0 0 3
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.

46

REFERENCES:
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

47

SOFTWARE REUSE
L T P C
3 0 0 3
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 NonObject 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.

48

## SOFTWARE MAINTENANCE AND EVOLUTION

L T P C
3 0 0 3

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.

49

SOFTWARE REFACTORING
L T P C
3 0 0 3
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 50

Replace Nested Conditional with Guard Clauses - Replace Conditional with Polymorphism Introduce Null Object - Introduce Assertion - Making Method Calls Simpler - Rename Method 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

51

## METRICS AND MODELS IN SOFTWARE QUALITY ENGINEERING

L T P C
3 0 0 3
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 InProcess quality Metrics Metrics for Software Maintenance Collecting Software Engineering
Data.
Quality Tools: Ishikawas 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
Halsteads 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.

52

REFERENCES:
1.
2.

Stephen H. Kan, Metrics and Models in Software quality Engineering, 2nd Ed., Addison
Wesley, 2002
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.

53

ELECTIVE III
MOBILE AND PERVASIVE COMPUTING
L T P C
3 0 0 3
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
Aware Computing Location Representation Localization Techniques Triangulation and
54

Scene Analysis Delaunay Triangulation and Voronoi graphs Types of Context Role of
Mobile Middleware Adaptation and Agents Service Discovery MiddlewareHealth BANMedical 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, 2005
5. Jochen Burthardt et al, Pervasive Computing: Technology and Architecture of Mobile
Internet Applications, Pearson Education, 2003
6. Feng Zhao and Leonidas Guibas, Wireless Sensor Networks, Morgan Kaufmann
Publishers, 2004
7. Uwe Hansmaan et al, Principles of Mobile Computing, Springer, 2003
8. Reto Meier, Professional Android 2 Application Development, Wrox Wiley, 2010.
9. Mohammad s. Obaidat et al, Pervasive Computing and Networking, John wiley
10. Stefan Poslad, Ubiquitous Computing: Smart Devices, Environments and Interactions,
Wiley, 2009.

55

## IMAGE PROCESSING AND PATTERN RECOGNITION

L T P C
3 0 0 3

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 know the various applications of Image processing.

INTRODUCTION
Elements of an Image Processing System- Mathematical Preliminaries- Image EnhancementGrayscale 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 MorphologyBasic 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
56

## Transform-Principal Component Analysis-Linear Discriminate Analysis- Feature Reduction in

Input and Feature Spaces.

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 FeaturesRecognizing 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

57

## BIG DATA ANALYTICS

L T P C
3 0 0 3

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.
58

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, 2007
5. Pete Warden, Big Data Glossary, OReilly, 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,2007
8. 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

59

WEB SERVICES
L T P C
3 0 0 3

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.
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

60

Semantic Web Role of Meta data in web content Resource Description Framework RDF
schema Architecture of semantic web content management workflow XLANG WSFL .
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.

61

## ENTERPRISE CLOUD COMPUTING

L T P C
3 0 0 3
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 - Multischema 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.coms Force.com platform - TCS InstantApps on
Amazon cloud - More Dev 2.0 platforms and related efforts - Advantages, applicability and
limits of Dev 2.0
62

## 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
Dev 2.0: model driven interpreters - Security, error handling, transactions and workflow Workflow and business processes - Implementing workflow in an application - Workflow metamodel 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.
2.

## Gautam Shroff, Enterprise Cloud Computing Technology, Architecture and

applications, Cambridge University Press, 2010.
Dominic Duggan, Enterprise and Cloud Computing , Wiley, 2013.

3.

4.

5.

Kaufmann 2011

6.

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

63