QUESTION BANK OVERVIEW OBJECTIVE: The objective of this topic is to understand the • The Software engineering Definition • The Software Engineering Process and Product • Various Process Models- Case study and comparisons 1. Define software product and software engineering (IEEE Def). 2. Mention properties of software. 3. “Software is not merely a collection of programs- Is programming systems product”. Elucidate. 4. What are the main phases in software development? 5. Explain the requirements analysis phase of software development. 6. Explain the design phase of software development. 7. Explain the coding phase of software development 8. Explain the testing phase of software development. 9. Explain the software development model definition. 10. Compare the software development models. 11. Explain waterfall model. 12. Explain prototyping model. 13. Explain iterative enhancement model. 14. Explain the spiral model. 15. Which process model can be used for A simple data processing system. An outline reservation system. 16. Mention the drawbacks of each of the software development models. 17. Explain the role of metrics. 18. Comment on the error distribution in the different phases. 19. Comment on the distribution of effort in the life span of software development. 20. What are major phases in the entire life cycle of the software? Which of them consume maximum effort? 21. Is it reasonable to assume that if software is easy to test, it will be easy to maintain. Suppose that putting in extra effort is design and coding you increase the cost of these phases by 15% but you reduce the cost of maintenance by 5%. Will you decide to put in the extra effort and why? 22. Describe the major phases in software development. Discuss the error distribution and cost of correcting the errors during development. 23. Explain the spiral model. Discuss the features of a software project for which the spiral model could be a preferred model. Justify your answer. 24. Describe the role of management on software development 25. What is software engineering? Describe the following process model with their relative merits and demerits i. Waterfall model. ii. Evolutionary development. 26. What are the objectives of software engineering? 27. What software engineering? How is it different from traditional engineering approach? 28. Explain four significant attributes that every software product should posses. 29. What is the need for validating the requirements? Explain any requirement validation techniques. 30. Differentiate between the following terms i. Milestone and deliverable ii. Requirements Definition and Specification 31. Distinguish between a software product and a software process. 32. Explain different process models along with their relative merits and demerits. 33. Give a brief description of software prototyping and briefly discuss the various prototyping techniques. 34. What are software engineering methods? What are its components? 35. What are the key challenges facing software engineering? 36. “Software engineers have responsibilities to the engineering profession and society. They should not simple be concerned with the technical issues”. Justify the statement.
REQUIREMENT ENGINEERING
OBJECTIVE: The objective of this topic is to understand the • Basic requirement analysis process • Various system models • Requirement definition and specification • Software requirement and specification document • Software prototyping • Various prototyping techniques 37. What is SRS? 38. Explain the DFD? 39. What is structured analysis? 40. Write a SRS for the following: a) Student registration system b) Diet management control 41. Describe the basic goals and desirable characteristics of an SRS. Discuss the important system properties that an SRS should specify. 42. Develop a zero level and first level DFD for payroll system with suitable specification. 43. Explain DFD and their role in problem analysis. 44. Develop a DFD for a computerized evaluation scheme. Assume marks of all students are stored in a file. 45. What are the different aspects that should be specified in an SRS? 46. Develop a zero level and first level DFD for banking system with suitable specifications. 47. How can u specify ‘user friendliness’ of the software in the quantitative terms? 48. With an example describe the role of SRS dataflow diagrams in structured system analysis. 49. Write an example; illustrate the use of prototyping as a method for problem analysis. Discuss its advantages and disadvantages. 50. Describe the structure of SRS and discuss the technologies for verifying the requirements. 51. Explain the following terms 1. Ethnography 2. Data dictionary 3. COTS 4. Stake holder 52. How to organize so that it can be easily manageable? 53. What is software prototyping? Explain throwaway and evolutionary prototyping techniques. 54. Draw a DFD for the following applications A salary system which computes employee salary per week and deductions. Input in to the system is a worksheet containing empid, name, number of hours worked, etc. System maintains table holding tax rates and pay rate for various employee classes. The output is the cheque to the employee. 55. What are the differences between requirements definition and requirements specification? 56. Discuss the requirements change management process. 57. Suggest who will be stakeholders in a university management system. Explain why it is almost inevitable that the requirements of the different stakeholders will conflict in some ways. 58. Who should be involved in a requirements review? Draw a process model showing how a requirements review might be organized.
SOFTWARE DESIGN OBJECTIVE: The objective of this topic is to understand the • The software design process • Design principles • Function oriented design • User interface design 59. How are changes in software specifications monitored at various stages of software development? 60. Why is design a two level process? Why should the system design be furnished before starting the detail design, rather than starting the detailed design right after the requirements? 61. How are cohesion and coupling related? Give an example of where cohesion increases and coupling decreases. 62. What is the fundamental difference between the approaches of structured design and object oriented design? 63. Differentiate between top down approach and bottom approach.
64. Develop a structured design for interactive user interface queries for basic income tax information with suitable assumptions. 65. What is the difference between functional abstraction and data abstraction? 66. If a module has logical cohesion what kind of coupling is this module likely to have with others? 67. What are major methods of verifying design? If the design is expressed in a normal language, can an automated tool help in verification and in what manner? 68. What is object oriented design? Explain with a real world problem. 69. Give design specification and design document for a library system. 70. What needs are to be specified during detail design? What are the described characteristics of a language to express detailed design? 71. What is the relation between cohesion metric and cyclomatic complexity? 72. What are the methods of verifying a detailed design? Which of these in your opinion is likely to be most effective in revealing design errors? 73. Describe briefly methods of code verification. Which of these is best suited for “catching” the maximum number of errors and which of these is the most cost effective? 74. What are the major concepts that help is making program more readable? 75. “object-oriented design tends to be programming language independent” why? What is the fundamental reference of this design approach compare to structural design? 76. Define the object-oriented design methodology and contrast it with structure design methodology. 77. Explain the module level concepts of coupling and cohesion; and the relation between them. 78. What is cyclomatic number? With an example, describe how this metric is calculated? Compare the metric with cohesion metric. 79. Explain the different methods of verifying a detailed design and discuss their effectiveness in revealing design errors. 80. Write short notes on structure charts and PDL. 81. Discuss coupling and cohesion. 82. Discuss structure and cohesion. 83. Discuss object oriented approach to software design. 84. What is Halstead’s measure? Explain. 85. Write short notes on PDL. 86. What is the difference between functional abstraction and data abstraction? Explain with suitable example. 87. How are cohesion and coupling related? Give example where cohesion increases and coupling decreases. 88. What is the fundamental difference between the approaches of structures chart, extend the notion for structured charts to represent the structure of programs where modules communicate using global variable? 89. What is the fundamental difference between the approaches of structures design and object oriented design? 90. Give the design specification and design document for student information system. 91. What are the different methods of verifying a detailed design? Which of them will reveal design error more effectively? 92. Describe the basic design principles of problem partitioning and abstraction. 93. What is structure chart and how are different types of modules represented in a structure chart? Illustrate with suitable example. 94. Explain the use of design reviews in verifying a design. 95. With suitable examples illustrate the use of process design language for specifying the detailed design. 96. Explain with suitable examples and illustrate the use of process design language for specifying the detailed design. 97. Explain a technique for computing the cohesion metric of a module. 98. Explain the use of critical design reviews for verifying a detailed design. 99. Briefly outline the process of modular design of a system. 100. Define and Explain the measure effective modularity of software systems. 101. Discuss the important methods for producing quantitative specifications for modular interfaces with suitable example. 102. Describe the object oriented design methodology and discuss its comparative advantages and disadvantages.
103. Describe the salient features of process design language and discuss its importance in software engineering. 104. Explain the most commonly used size metrics and complexity metrics for code. 1. What is cyclomatic number? Discuss its significance with suitable example. 106. Why is it important to use different notations to describe design? 107. Differentiate between function oriented designs and object oriented design strategies. 108. Explain why maximizing cohesion and minimizing coupling leads to more maintainable systems. What other design attributes influence system more maintainable. 109. What are the principles to be followed while designing user interface. 110. Write a bubble sort procedure in PDL and its flow-graph. Also calculate Mclabe’s Cyclomatic complexity? 111. Describe system architecture modeling with the help of a neat diagram. 112. Explain the different software design strategies with proper illustrations. 113. Write a brief note on data flow design principle. 114. Describe user interface design principles. 115. What are the difference between coupling and cohesion? 116. Write a short note on data dictionary. 117. Explain why it may be necessary to design the system architecture before the specifications are written. 118. Giving reasons for your answer, suggest an appropriate structural model for the following: An automated ticket issuing system used by passengers at a railway station. A computer controlled video conferencing system which allows video, audio and computer data to be visible to several participants at the same time. 119. Suggest situations where it is unwise or impossible to provide a consistent user interface.
VERIFICATION AND VALIDATION OBJECTIVE: The objective of this topic is to understand the • Software reliability • Software reuse • Software testing • Clean room software testing 120. Explain bottom up and top down testing. 121. Define error, fault and failure; bring out the difference between each with a suitable example. 122. What is functional testing and how it differs from structural testing? Explain any two methods for selecting test cases for functional testing. 123. Explain the complete testing process with help of suitable diagrams. 124. Write short notes on test oracles, instrumentation for structural testing. 125. Discuss the various levels of testing. 126. Compare functional testing with structural testing. 127. Write short notes on verification and validation. 128. Why does software fails after passes acceptance testing? 129. Discuss different levels of testing and set goals of these different levels. 130. Explain error, fault and failure. What is the difference between a failure and a fault? Explain bottom up and top down testing. 131. Describe the levels of testing and goals at each level. 132. Discuss different coverage criteria for structural testing. 133. What is a test plan and what does a typical test plan contains? 134. Write short notes on psychology of testing and mutation testing. 135. Explain the following: a) Verification b) Validation. 136. Discuss the important objectives of testing software system. 137. Discuss the problems with exhaustive testing. 138. Explain the following with ex. a) Basic path testing b) Control structure testing. 139. Short notes on bottom up testing, criteria for completion of testing and debugging. 140. Write short notes on a) Fault tolerance b) Defensive programming c) Software re- usability. 141. What is software reliability? Explain reliability metrics. 142. Explain briefly the various software reliability metrics. 143. Briefly bring out the difference between verification and validation. 144. Explain the stages of testing process. 145. Describe briefly the following:
a) Defensive programming b) Cleanroom software development 146. Explain the advantages and disadvantages of reusing software components. 147. How do you distinguish between a program inspection and other types of quality reviews? 148. What are static program analyzers? What are the stages involved in static analyses? 149. Discuss the levels of testing involved in object oriented system.
CRITICAL SYSTEMS OBJECTIVE: The objective of this topic is to understand the • Dimensions of dependability • Importance of dependability to critical systems • Critical system specification 150. What are the most important dimensions of system dependability? 151. What are the factors you need to consider when specifying the overall system reliability? 152. Explain why there is a close relationship between system availability and system security? 153. Suggest six reasons why dependability is important in critical systems. 154. Discuss the stages involved in security specification process.
SOFTWARE MANAGEMENT OBJECTIVE: The objective of this topic is to understand the • Project Planning • Project Scheduling • Managing people • Cost Estimation 155. Explain the importance of project staffing. 156. What are the characteristics of clean room software development? 157. What is SEI process maturity model? 158. “Members of a well –led, cohesive group are loyal to the group”. Justify 159. Explain in detail the various management activities. 160. Explain in detail software cost estimation. 161. Explain cost estimation techniques. 162. What is COCOMO model? Describe its approach to estimate person months. 163. Briefly explain how algorithmic cost can be used for estimating software cost. 164. Write short note on: a) CASE tools b) Software quality assurance c) SEI CMM 165. Explain in detail a) Software metrics c) SEI-CMM Model e) Process analysis and measurement. b) Quality Metrics d) CASE
SOFTWARE EVOLUTION OBJECTIVE: The objective of this topic is to understand the • How legacy systems are critical to the operation of many businesses • Legacy system structures • Re-engineering as an option for software system evolution • Activities such as reverse engineering and program restructuring 166. Why is source level translation necessary in some cases? 167. List the principle factors that affect re-engineering costs. 168. Differentiate between reverse engineering and re-engineering.
Class
Chapter Title/ Reference Literature
1
Software Engineering –An 1.1 Introduction Professional and Ethical 1.2 responsibility
2 3 4 5 6
Chapter #: 1 Chapter #: 2
5
38-41
___
System Engineering
2.2
49-58
6
2.3
58-62
2
2.4
62-64
2
Organizations, people Computer System Legacy system
Cumulative
12 3
=15 6
2
&
9 4 2 =21
Revision
36
Class Test Critical System: A simple 3.1 safety-critical system System Dependability 3.2 Availability And Reliability
12*
Revision
13
Software Process:
14
Chapter #: 3 Models
15
Chapter #: 4 Process iteration
71-74 75-79
4.1
87-95
4.2
95-98
Process Activities
17
The Rational Unified 4.4 Process Computer Aided Software 4.5 Engineering Revision Class Test
67-71
3.3
16
19*
27-38
44-49
11
18*
Block Dig
2.1
8*
10
Page No.
Socio-Technical system: Emergent System
7*
9
Text Chapter Topic
Topics to be covered
4.3
98106 106109 109113
4 3 5 =12
8 3 7 3 4 =25
47
Class
Chapter Title/ Reference Literature
20
22 23
25 26 27 28
Text Chapter Topic
Requirements: Functional & 6.1 Non Functional Requirements
21
24
Topics to be covered
Chapter #: 6
User Requirement
6.2
System Requirements
6.3
Interface Specification
6.4
The SRS
6.5
Chapter #: 7 Requirement Engineering Process: 7.1 Feasibility Studies Requirement Elicitation 7.2 &analysis
29* 30*
Requirements Validation
7.3
Requirements management
7.4
Page No. 141150 151153 153158 159160 160163 166170 170182 182184 185190
Block Dig
Cumulative
4
10
___
3
4
5
1
2
2
3 =23 5
2 6 ___ 3
12 2 5 =24
47
Revision Class Test
31 32
Software Architectural Decision
33
System organization
11.2
34
Modular Decomposition
11.3
Control Style
11.4
Object Orient Design
14.1
35 36 37 38 39* 40*
Chapter #: 11 Chapter #: 14
Design: Design 11.1
Object & Object Classes An Object Oriented Design Process
14.2
Design Evolution
14.3
Revision Class Test
265271 271276 276279 280284 337344 344352 352359 359360
7 1 3 2 4 4 6 4 __
5 3 5 =20 8 8 8 1 =25
45
Class
Chapter Title/ Reference Literature
41 42 43 44 45 46
Chapter #: 17 Chapter #: 21
47 48*
49*
Topics to be covered
Text Chapter Topic
Development: Rapid 17 Software Development 17.1 Agile Method Extreme Programming 17.2 Rapid Application 17.3 Development Software Evolution: Program Evolution 21.1 Dynamics Software Maintenance
21.2
Evolution Process
21.3
Legacy System Evolution
21.4
Page No.
Block Dig
415419
3
420429
4
429433
3
512516 516522 522528 528533
Cumulative
5
10 4 =19 5
2 3 7 3
6 6 5 =22
41
Revision Class Test 50 51 52 53 54 55 56 57 58* 59*
Chapter #: 25 Chapter #: 26
Management: Managing 25.1 People Selecting Staff Motivating People
25.2
Managing People
25.3
The People Maturity Model Software Estimation: Productivity
Capability
25.4
Cost Software 26.1
Estimation Techniques
26.2
Algorithmic Cost Modelling 26.3 Project Duration & 26.4 Staffing Revision Class Test
616620 620623 623631 631633 636644 644646 647660 661662
1 1 1 1
5 4 8 2 =19 9
3 1 9 __
2 14 2 =27
46
Class
Chapter Title/ Reference Literature
1
System Models: Context 8.1 Model
2 3 4 5 6 7 8 9* 10*
Text Chapter Topic
Topics to be covered
Chapter #: 8
Behavior Models
8.2
Data Models, models
Object 8.3, 8.4
Structured Methods
8.5
Project Management: 5.1 Chapter #: 5 Management Activities Project Planning
5.2 5.3
Project Scheduling
5.4
Risk Management
Page No. 193197 197201 201211 211214 116120 120123 123128 128135
Block Dig
2 3
Cumulative
5 4 12
9 1 1 2
3 =24 5 3
5
5
6
7 =20
44
Revision Class Test
11 12 13 14 15 16 17 18 19* 20*
Verification Validation: Planning
&
22.1
Software Inspection
22.2
Automated Static Analysis
22.3
Verification & Formal 22.4 Method Chapter #: 3 Software Testing: 23.1 System Testing Chapter #: 4 23.2 Component Testing Test Case Testing
23.3
Test Automation
23.4
Revision Class Test
539545 545551 551554 554559 561571 572575 575585 585587
3
7
3
6
2
3
1
5 =21
5
11
2
4
9
10
1
2 =27
48
Literature Publication specification Book type Code Title and Author Edition Publication Year Text Book T1 Software Engineering by Ian Sommerville 6th Pearson Education 2001 Reference Book R1 Software Engineering: A Practitioner's Approach by Roger Pressman 4th TMH Reference Book R2 An Integrated Approach to Software Engineering by Pankaj
Jalote Narosa Publications Reference Book R3 Object oriented and classical software engineering by Stefan R Schach TMH 2002