Session: Jan- July 2014
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING
COURSE FILE
Program : B.E.
Semester : VI
Course Code : CS-603
Subject Name : Software Engineering And Project Manag.
Prepared By: Approved By:
List of Books
1. Pankaj Jalote,”An Integrated Approach to Software Engineering”, Narosa Pub,
2005
2. Rajib Mall, “Fundamentals of Software Engineering” Second Edition, PHI
Learning
3. R S. Pressman,”Software Engineering: A Practitioner's Approach”, Sixth edition
2006, McGraw-Hill.
4. Sommerville,”Software Enginerring”,Pearson Education.
5. Richard H.Thayer,”Software Enginerring & Project Managements”,Willey India
6. Waman S.Jawadekar,”Software Enginerring”, TMH
7. Schwalbe,”IT Project Managements”,Cengage Learning.
Department Computer Science &Engg. Session : 2015
Faculty Semester VI
Subject Software Engineering Sub. Code CS-603
(B) TIME SCHEDULE: Total expected periods: 45, Extra periods If required.
Day Mon Tue Wed Thu Fri Sat Max. available
No. of
Period
Lect. No. Topics to be covered Date of completion Remarks
1. Unit 1:The Software Product and Software Process
Software Engineering - A layered Technology P53,S26
2. Software Process Models: Linear Sequential Model P79
3. Prototyping Model, Evolutionary Model P83
4. RAD Model P81,S427
5. Software Process Models: Incremental Model P80,S93
6. Spiral Model P86,S95
7. Component Assembly Model, Formal Methods, Fourth Generation
Techniques.
P91,92, S92
UNIT TEST 1
8. Unit 2: Requirement Elicitation, Analysis, and Specification. .
Functional and Non-functional requirements,
P157
9. Requirement Sources and Elicitation Techniques, Analysis, System
and Software Requirement Specifications,
Requirement Validation, Traceability S321,392
10. Modeling for Function-oriented and Object-oriented software
development, Use case Modeling P161
11. Unit 3`: Software Design The Software Design Process, Design
Concepts and Principles P268,S89
12. Software Modeling and
UML, P211, S199
13. Architectural Design, Architectural Views and Styles,. P249,
S195
14. User Interface Design S33
15. Function-oriented Design S221
16. Unit 4: Software Analysis and Testing
Software Static and Dynamic analysis P265
17. Code inspections, Software Testing Fundamentals P265
18. Software Test Process, Testing Levels, Test Criteria P275,
S263
19. Test Case Design, Test Oracles, Test Techniques S384
20. White-Box Unit Testing Unit
S385
21. Unit Testing Frameworks P421, S89-102
22. Black-Box Testing. P423, P434
23. White-Box Testing. P424
24. Software Testing Strategies P390-391
25. Test Metrics P388, S102,
26. Testing Tools. , Introduction to Object-oriented
analysis P393, P394
27. Integration Testing P397
28. Validation Testing P406
29. System Testing
P408
30. Design and comparison with structured software engg. P426
31. Unit 5: Software Maintenance & Software Project Measurement
P466
32. Need and Types of Maintenance P650
33. Software Configuration Management (SCM P654
34. Software Change Management P661
35. Version Control, Change control and Reporting P629, S115
36. Program Comprehension Techniques, Re-engineering S118
37. Reverse Engineering, Tool Support.
Project Management Concepts P675
38. Feasilibility Analysis, Project and Process Planning P639,
S221,223
39. Resources Allocations, Software efforts, Schedule, and Cost
estimations P691
40. Project Scheduling and Tracking P670
41. Risk Assessment and Mitigation P666
42. Software Quality Assurance (SQA) S119
43. Project Management Concepts P626
44. Project Plan, Project Metrics. P778
Reference Books:
1) Software Engineering: A Practitioner’s approach(6th edition) by Rogers
S.Pressman publication : Mc Graw.Hill International Edition
2) Software Engineering (7th edition) by Somourville
Publication: Pearson Education Legends
P: Roger S. Pressman
S: Somourville
Department of Computer Science & Engineering
Tutorial-1
Subject: SEPM
Subject Code: CS-603
1) Define Software Engineering.
2) What is a Process Framework?
3) What are the Generic Framework Activities?
4) Define Stakeholder.
5) How the Process Model differ from one another?
6) Explain waterfall model? Write out the reasons for the Failure of Water Fall
Model?
7) Explain RAD model? What are the Drawbacks of RAD Model?
8) Why Formal Methods are not widely used?
9) What is Cross Cutting Concerns?
10) What are the different Phases of Unified Process?
Department of Computer Science & Engineering
Tutorial –2
Subject: SEPM
Subject Code: CS-603
1. What are the Classifications of System Engineering?
2. What are the Factors to be considered in the System Model Construction?
3. What does a System Engineering Model accomplish?
4. Explain SDLC
5. What is Structured Analysis? Explain all the tools of structured Analysis?
6. What are the Objectives of Requirement Analysis ?
7. Explain design Process & also its various methods?
8. Define System Context Diagram [SCD]?
9. Define System Flow Diagram [SFD]?
10.Explain the role of system analyst and explain its interpersonal and
Technical skills.
Department of Computer Science & Engineering
Tutorial –3
Subject: SEPM
Subject Code: CS-603
1. How the Architecture Design can be represented?
2. What is the Advantage of Information Hiding?
3. What types of Classes does the designer create?
4. What is Coupling and Cohesion?
5. Define Refactoring.
6. What are the Five Types of Design classes?
7. What are the Different types of Design Model? Explain.
8. List out the Different elements of Design Model?
9. What are the Types of Interface Design Elements?
Department of Computer Science & Engineering
Tutorial –4
Subject : SEPM
Subject Code : CS-603
1. What are the Basic Principles of Software Testing?
2. List out the Characteristics of Testability of Software?
3. List out various Methods for finding Cyclomatic Complexity ?
4. Define Smoke Testing ?
5. What are the Attributes of Good Test?
6. Define White Box Testing.
7. Define Basic Path Testing.
8. Define the terms :
a) Graph Matrices
b) Connection Matrices
9. What is Behavioral Testing?
10.What are the Benefits of conducting Smoke Testing?
Department of Computer Science & Engineering
Tutorial –5
Subject: SEPM
Subject Code: CS-603
1. How do we define Software Quality?
2. Define Software Reliability?
3. What is the difference between SRS document and design document? What
are the contents we should contain in the SRS document and design
document.
4. Explain all the phases involved in the implementation phase.
5. List and explain different types of testing done during the testing phase?
6. What is change management?
7. What is user acceptance testing? Explain different testings in user acceptance
testing. Why is it necessary?
8. What are functional and non-functional requirements?
9. Explain the steps involved in the prototyping.
10.What is a class and object? Give the diagrams and representation of class and
object?
11.What is generalization? Give an example of generalization
Department of Computer Science & Engineering
Assignment-1
Subject : SEPM
Subject Code : CS-603
1. Define the terms :
a) Agility
b) Agile Team
2. Define the terms:
c) Agile Methods
d) Agile Process
3. What is the Use of Process Technology Tools?
4. Explain Data Flow diagram (DFD) with an Example?
5. What is the Objective of the Project Planning Process?
6. What are the Decomposition Techniques?
7. How do we compute the “Expected Value” for Software Size?
8. What is an Object Point?
9. What is the difference between the “Known Risks” and Predictable
Risks”?
10.List out the basic principles of software project scheduling ?
Department of Computer Science & Engineering
Assignment-2
Subject : SEPM
Subject Code : CS-603
1. What are the Requirements Engineering Process Functions?
2. What are the Benefits of Analysis Pattern?
3. What is System Modeling?
4. List out the Factors of Data Modeling?
5. Define Swim Lane Diagram?
6. What are the Selection Characteristic for Classes?
7. Define Steps in Behavioral Model.
8. What do you mean by reliability of software product? Why it is said that
measurement of software reliability is difficult?
9. What is meant by Software Configuration Management (SCM)? What are the
various Software Configuration Management functions? Name important
tasks in SCM. Name the typical configuration items.
10.What is software crisis? What are the factors which lead to software crisis?
Department of Computer Science & Engineering
Assignment-3
Subject : SEPM
Subject Code : CS-603
1. What Types of Design Patterns are available for the software Engineer?
2. What is the Objective of Architectural Design?
3. What are the important roles of Conventional component within the
Software Architecture?
4. What are the Basic Design principles of Class-Based Components?
5. What should we consider when we name components?
6. What are the Different Types of Cohesion and Coupling
7. What do you understand by CMM? Explain all the levels of CMM ?
8. Which process model will be used to develop the following system? Justify
your answer?
Airline Reservation System, which is intended to replace an
existing system.
Railways Interactive System, which allows railway passengers
to find train times from terminals installed in stations.
Discuss the different categories of software development projects
according to the COCOMO estimation model?
Department of Computer Science & Engineering
Assignment-4
Subject : SEPM
Subject Code : CS-603
1. What errors are commonly found during Unit Testing?
2. What problems may be encountered when Top-Down Integration is chosen?
3. What are the Steps in Bottom-Up Integration?
4. What is Regression Testing?
5. What are the Characteristics of “Critical Module”?
6. What are the Properties of Connection Matrices?
7. What is Flow Graph Notation?
8. Define Cyclomatic Complexity?
9. List out the possible errors of Black Box Testing?
10. Differentiate between Flow chart and Data Flow Diagram (DFD). Draw a
DFD representing student registration in IETE.\
11.Explain Alpha testing and Beta testing.
Department of Computer Science & Engineering
Assignment-5
Subject: SEPM
Subject Code: CS-603
1. What are the Components of the Cost of Quality?
2. What is Software Quality Control?
3. What is Software Quality Assurance?
4. What are the Objective of Formal Technical Reviews?
5. What Steps are required to perform Statistical SQA?
6. Define SQA Plan.
7. What is Baseline criteria in SCM ?
8. Define Status Reporting ?
9. What is the Origin of changes that are requested for software?
10.List out the Elements of SCM?
Course Material
Basic Concepts in Software Engineering
Data
Data is a collection of facts, figures and statistics related to an object.
Data can be
Processed to create useful information..
Data is very useful for generating reports, graphs and statistics.
Example
Students fill an admission form when they get admission in college. The
form consists of raw facts about the students. These raw facts are student's
name, father name, address etc. The purpose of collecting this data is to
maintain the records of the students during their study period in the college.
Information
The manipulated and processed form of data is called information. It is
more meaningful than data. It is used for making decisions.
Data is used as input for processing and information output of this
processing.
Example
Data collected from census is used to generate different type of
information. The government can use it to determine the literacy rate in the
country. Government can use the information in important decision to
improve literacy rate.
Difference between data and information
Data Information
Data is collection of raw facts and Information is processed data.
figures.
Data is unarranged and unorganized.. Information is arranged and organized
Data is un-meaningful Information is meaningful.
Data is input. Information is output.
Data is used less frequently. Information is used frequently.
Data represents facts before Information represents results ( after
processing processing).
Data is not helpful in decision- Information is helpful in decision-making.
making.
Data is raw material for information. Information is the final product of data.
Data are unprocessed records Information contains processed records
Data is in large amounts Information is in small amounts
If data is lost, it is very difficult (or If information is lost, it is easily derived
even impossible in some situations) to from stored data, again.
re collect.
Data depends upon the sources Information depends upon data
What is software?
Software is defined as computer programs, procedures, rules and
possibly associated documentation and data pertaining to the operation of a
computer based systems..
“Computer Software” is synonymous with “software product”.
It includes the source code and all the associated documents
and documentation that constitute a software product.
Requirements documents, design specifications, source code,
test plans, quality assurance procedures, maintenance
procedures, installation instructions and training aids are all
components of software product.
Software is a general term for the various kinds of programs used to operate
computers and related devices.
Hard ware:
The term hardware describes the physical aspects of computers and
related devices.
Software costs
Software costs often dominate computer system costs. The costs of software
on a PC are often greater than the hardware cost.
Software costs more to maintain than it does to develop. For systems with a
long life,maintenance costs may be several times development costs.
Software engineering is concerned with cost-effective software
development.
What is software engineering?
IEEE software engineering definition:
Software engineering is the application of a
systematic disciplined quantifiable approach to the development,
operation and maintenance of software; the application of engineering
to software.
Software engineering can be defined as “The establishment and use
of sound engineering principles in order to obtain economically software
that is reliable and woks efficiently on real time machines.”
Software engineering is the technological and managerial discipline
concerned with systematic production and modified on time and in cost
estimates
Software Engineering deals with the engineering problems,
opportunities and needs associated with the development and
utilization of computer software.
The discipline also addresses the design of computers, computer
science and the integration of software into computer systems, as well
as the applications of software systems.
The software industry is growing rapidly and of increasing importance
to our economy and standard of living.
Software engineering
Software engineering is finding its way into many industries,
including telecommunications, power generation, biomedical and
industrial product companies.
The software engineering sector is continually advancing.
.
The primary goals of software engineering are to improve the quality
of software products and to increase the productivity and job
satisfaction of software engineers, with cost effectively.
Software engineers should
adopt a systematic and organised approach to their work
use appropriate tools and techniques depending on
the problem to be solved,
the development constraints and
the resources available
Software engineering is about solving problems. It can be broken
into analyzing (problem) and synthesis (solution)
Software Engineering - A Layered Technology
Software engineering encompasses a process, the management of
activities, technical methods, and use of tools to develop software
products
tools
methods
process model
a “quality” focus
Layers of Software engineering
The foundation for software engineering is the process layer. It is the
glue that holds the technology layers together and enables rational and
timely development of computer software.
Process defines a framework that must be established for effective
delivery of software engineering technology.
The software process forms the basis for management control of
software projects and establishes the context in which technical
methods are applied, work products (models, documents, data,
reports, etc.) are produced, milestones are established, quality is
ensured, and change is properly managed.
Software engineering methods provide the technical “how to’s” for
building software. Methods encompass a broad array of tasks that
include communication, req. analysis, design, coding, testing and
support.
Software engineering tools provide automated or semi-automated
support for the process and the methods.
When tools are integrated so that info. Created by one tool can be
used by another, a system for the support of software development called
computer-aided software engineering is established