• No results found

How To Understand Software Engineering

N/A
N/A
Protected

Academic year: 2021

Share "How To Understand Software Engineering"

Copied!
13
0
0

Loading.... (view fulltext now)

Full text

(1)

PESIT Bangalore South Campus

Department of MCA SOFTWARE ENGINEERING

1. GENERAL INFORMATION

Academic Year: JULY-NOV 2015 Semester(s):III

Title Code Duration (hrs)

SOFTWARE

ENGINEERING 13MCA33 Lectures 52Hrs

2. COURSE PREREQUISITE

Students should have understanding and grasping power of the theoretical concepts.

3. COURSE OBJECTIVES

knowledge of basic SW engineering methods and practices, and their appropriate application;

A general understanding of software process models such as the waterfall and evolutionary models.

An understanding of the role of project management including planning, scheduling, risk management, etc.

An understanding of software requirements and the SRS document.

An understanding of different software architectural styles.

An understanding of implementation issues such as modularity and coding standards.

An understanding of approaches to verification and validation including static analysis, and reviews.

An understanding of software testing approachs such as unit testing and integration testing.

An understanding of software evolution and related issues such as version management.

(2)

An understanding on quality control and how to ensure good quality software.

An understanding of some ethical and professional issues that are important for software engineers.

development of significant teamwork and project based experience

4. COURSE OUTCOMES The student should be able to

 Analyze the problem and prepare Software requirement specification.

 Design, verify, validate, implement, apply, and maintain software systems.

 Demonstrate the ability to work effectively as a team member and/or leader in an ever-changing professional environment

5. FACULTY DETAILS

Details Name Manjula.C.M.Prasad Department MCA

Room Number 508

Phone No. 080-66186629

E-mail address manjulaprasad@pes.

edu

Contact Hours Office Hours

6. VENUE AND HOURS/WEEK

All lectures will normally be held V/VI Floor.

Lecture Hours/week: 4Hrs

(3)

7. MODULE MAP

Class

# Chapter # Topics to be covered

% of portions covered Referen

Chapter ce

Cumulati ve 1

UNIT 1:

Overvie w

Introduction : Professional Software Development Attributes of good software,

5.76 5.76 2

Software engineering diversity, IEEE/

ACM code of software engineering ethics,

3 case studies

4

UNIT 2:

Software Process

& Agile Software Development

Software process models: waterfall, incremental development,

19.23 24.99

5 reuses oriented

6 Process activities

7 Coping with change,

8 The rational Unified process

9 Agile methods

10 Plan-driven and agile Development,

11 Extreme Programming,

12 Agile project management,

13 Scaling agile methods.

14

UNIT 3:

Requirements Engineering

Functional and non functional requirements

11.53 36.52 15 The software requirements document

16 Requirements specification,

17 Requirements engineering processes, 18 Requirement elicitation and

analysis,

19 Requirements validation, Requirements management

20 Context models, 67.28

(4)

21 UNIT 4:

System Modeling, Architectural Design & Design

and imple mentation

Interaction models,

30.76

22 Structural models,

23 Behavioral models,

24 Model-driven

engineering,

25 Case studies

26 Software architecture: the role of software architecture

27

architectural views

28

component and connector view,

29

Architectural styles for C&C view,

30

Documenting architectural .Design: Design concepts,

31

Function oriented design

32

Function oriented design

33

detailed design,

34

detailed design,

35

verification,

matrix (Complexity matrix for function oriented design),

36 UNIT 5:

Component-based software engineering

Components and component model,

7.69 74.97

37 CBSE process

38 CBSE process

39

Component composition

40 UNIT 6:

Distributed Software engineering

Distributed system issues,

9.61 84.58

41 Client-server computing,

42 Architectural patterns for distributed

systems

(5)

43 Architectural patterns for distributed systems

44 Software as a service.

45

UNIT 7:

Planning a software Project

Process planning, Effort estimation,

7.69 92.27 46 Project scheduling and staffing

47 Software configuration

management plan, Quality plan

48 Risk Management, Project monitoring plan.

49

UNIT-8 Software Testing

Testing fundamentals,

7.69

100.00

50 Black-box testing,

51 White-box testing,

52 Testing process

8. RECOMMENDED BOOKS/WEBSITES A. PRESCRIBED TEXTBOOK

Ian Sommerville: Software engineering, 9th Edition, person Education Ltd., 2007

B. REFERENCE BOOKS

a. Roger. S . Pressman: Software Engineering- A practitioners approach, 7

th

edition, McGraw-Hill, 2007.

b. Shari Lawrenca pfleeger, Joanne M. Atlee: software Engineering Theory and Practice, 3rd Edition, Pearson Education, 2006

c. Waman S Jawadekar : Software Engineering Principles and practice, Tata McGraw Hill, 2004

C.

WEBSITE

www.softwareEngineeing-9.com 9. ASSESSMENT

A. WRITTEN EXAMINATION

Paper Structure No. Of

Questions 8 Main

Questions No. of questions to be answered 5

Exams date Paper Duration 3

Hrs

Total Marks 100 Pass Marks 40

(6)

B. CONTINUOUS ASSESSMENT

Weighting (%) Assignment(s): 5 Marks

(10%) Seminar(s): 5 Marks

(10%) Class Test(s): 5 Marks

(10%) Overall

Performace:

5 Marks (10%) Test(s): 30 Marks

(60%) Total Marks: 50 Marks

ASSIGNMENT(S)

Assignment 1: Considering any problem, the student is asked to write the complete software requirement specification.

Assignment 2: For the above problem designing through any tool and a part of implementation(any one module).

Assignment 3: Testing is done through any testing tool.

10. QUESTION BANK

Unit 1: Overview

Objectives: The objective of this topic is to understand the

 Answers to key questions about Software Engineering Process and Product

 Ethical and professional issues.

 Concept of socio-technical systems, emergent properties and system engineering

 Organizations, people and computer systems

1. Define software product and software engineering (IEEE Def). 05 2. What is software? Explain attributes of good software. 05 3. “Software is not merely a collection of programs- Is

programming systems product”. Elucidate. 05

(7)

4. What are the main phases in software development? 05 5. What are the key challenges in software engineering? 05 6. What are the goals and objectives in software engineering? 05 7. What are the stakeholders in software engineering? 05 8. What is the difference between computer science and software

engineering? 05

9. What is the difference between software engineering and

system engineering? 05

10. What is software process? 05

11. What are the characteristics of software process? 05

12. What is software process model? 05

13. What is cost of software engineering? 05

14. What is “Computer Aided Software Engineering? 05 15. Explain the salient features of IEEE code of Ethics for software

engineering professionals. 08

16. Discuss the social responsibilities of a software engineer.

17. What are socio-technical systems? Discuss the characteristics

of socio-technical systems. 08

18. What are the emergent properties of socio-technical systems?

Give examples. 06

19. Explain different phases of system engineering. 12

20. Discuss system procurement process. 08

21. Write an explanatory note on legacy system. 06

Unit 2: Software Processes & Agile software development Objectives: The objective of this topic is to understand the

 Critical systems and system dependability.

 The Software Engineering Process activities

 Various Process Models- Case study and comparisons

 Rational Unified Process and Computer Aided Software Engineering

22. What are the most important aspects of dependability? Discuss. 05 23. Explain the relationship between dependability and cost of

system development. Why it is impossible to design 100%

dependable system? Explain. 04

24. What are the critical systems? Explain the classification of

critical systems. 06

25. What are the critical systems? Explain the significance of

dependability in critical systems. 05

26. Write short notes on:

i) Reliability 5*4

(8)

ii) Availability iii) Safety iv) Security

27. Explain different stages of software development life cycle. Indicate the proportion of time spent in each stage of SDLC. 08 28. What do you understand by software process model and its

significance? 06

29. Explain waterfall model giving its merits and drawbacks. 10 30. Explain evolutionary development method giving its merits and

demerits. 10

31. Discuss component-based software engineering. 08 32. What is process iteration? Explain incremental development. 10 33. Explain the spiral model with illustration. Write advantages and

disadvantages. 10

34. Explain the software specifications phase of software

development 07

35. What are the important activities in design phase of software development? 07 36. Explain the validation phase of software development. 08

37. Compare the software development models. 08

38. Discuss the risk management in spiral model. 05 39. Mention the drawbacks of each of the software development

models. 06

40. Write a short note on CASE tools. 05

41. Explain different classification of CASE tools. 06 42. Explain Rational Unified Process in detail. 07 Unit 3: Requirements Engineering

Objective: The objective of this topic is to understand the

Various categories of software requirements

Software requirements document

Requirements Engineering process

Requirements validation and management

43. Distinguish between software requirement definition and

software requirement specification. 05

44. What is the need and characteristics of requirements? 04

(9)

45. Distinguish between functional and non-functional

requirements. 05

46. Discuss the classification of non-functional requirements. 05 47. What is the significance of non-functional requirements?

Explain. 04

48. What do you understand by user and system requirements? 06 49. What are the problems associated with natural language used

during requirements engineering? Mention the alternatives to

natural languages. 05

50. Explain Structured Language Specifications. 04 51. Explain the structure of a software requirement document. 06 52. Describe the aim and characteristics of a good software

requirement document. 05

53. What are the metrics for specifying the non-functional

requirements? 04

54. Explain the major activities of requirements Engineering phase

of software development. 06

55. Distinguish between enduring and volatile requirements. 06 56. Describe the process of requirement elicitation and analysis

with illustration. 08

57. What are the different methods of requirements discovery? 03 58. Discuss method “Viewpoints” in requirements discovery. 07 59. Discuss method “Interviewing” in requirements discovery. 05 60.

Write a note on a) Use-case

b) Sequence diagram

05 05 61. Write a note on

c) Ethnography.

d) Need of feasibility studies

05 05 62. Why is it very difficult to produce a complete and consistent

set of requirements? 04

63. List and explain various techniques of requirements validation. 05 64. What is the need of requirements management? 05 65. Write a short note on requirements change management. 05

CHAPTER 4: System Modeling, Architecutral Design & Design implementation.

Objectives: The objective of this topic is to understand the

(10)

 Various system models

 Concepts of behavior modeling, data modeling and object modeling

 Management activities

 Project planning and scheduling

 Risk management

66. What is a context model? Draw context model for library

system. 06

67. How is the data flow diagram advantageous in requirements

analysis process? Explain. 04

68. Draw a data flow diagram for a library giving brief explanation. 08 69. Develop a zero level and first level DFD for ATM with suitable specifications?

70. Develop a zero level and first level DFD for payroll system with

suitable specification? 05

71.

Draw a DFD for the following application:

A salary system which computes employee salary per week and deductions. Input in to the system is a worksheet containing empid, name, and 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.

08

72. Explain the following briefly:

a) Object Models b) Data Flow Models c) Generic Models 3*4 73. Write a note on

a) Data dictionary

b) CASE Workbench 2*5

74. Explain the dynamic nature of state machine model. 06 75. What is semantic data model? Draw semantic data model of a

Hospital Management System. 08

76. Explain different object models. 10

77. Write short notes on Software project scheduling, Risk

management plans. 06

78. What is the need of software project planning? About what

planning is done? Briefly explain. 08

79. Distinguish between milestones and deliverables. 04 80. Explain the importance of bar charts and activity networks in

software project management. 08

81. Describe the Risk Management Process. Describe critical risks

that need to be protected against. 08

82. What do you understand by system architecture? Explain

different activities involved in system architectural design. 07 83. Explain repository model and discuss its advantages and

disadvantages. 10

(11)

84. Explain salient features of client-server model and list its

advantages and disadvantages. 10

85. Explain abstract machine model. 07

86. Discuss different types of control models in detail. 10 87.

Write short notes on

a) Modular decomposition b) Generic models

c) Reference architectures

3*5 88. Explain the important stages of object oriented development. 06 89. Discuss advantages and disadvantages of object oriented

development. 05

90. Differentiate between objects and object classes giving suitable examples. 08 91. Write short notes on

a) Sequence model

b) Use-case model 05

Unit 5&6: Component-based software engineering & Distributed SE

92. Why is it important that all component interactions are defined through ‘requires’ and ‘provides’ interfaces? 05 93. What are the fundamental differences between components

as program elements and components as services? 5 94. Why is it important that components should be based on a

standard component model 05

95.

Explain why it is difficult to validate a reusable component without the component source. In what ways would a formal

component specification simplify the problems of validation? 10 96. Explain why distributed software systems are more complex

than centralized software systems, where all of the system

functionality is implemented on a single computer. 10 97. What is the fundamental difference between a fat-client and a

thin-client approach to client-server system architecture. 05 98. Give two advantages and two disadvantages of decentralized

and semi centralized peer to peer architectures. 05 99.

Explain why deploying software as a service can reduce the IT support costs for a company. What additional costs might

arise if this deployment model is used. 10

100. Explain architectural patterns for distributed systems. 10 Unit 7& Unit 8: Planning a software project & Software Testing Objectives: The objective of this topic is to understand the

 Planning Verification and Validation

(12)

 Software inspections

 Software testing

 Clean room software testing

101. Distinguish between verification and validation. 05 102. What are the static and dynamic techniques of verification and

validation? Explain. 05

103. Explain the process of software inspections and list their

benefits and limitations. 05

104. What is cleanroom software development? Explain with

illustration. List advantages and disadvantages also. 10 105. What are the characteristics of clean room software

development? 05

106. Explain debugging process in detail. 05

107. Differentiate between debugging and testing. 05 108. Write a note on automated static analysis. 08 109. Explain the general principles of software inspections. 05

110.

Write short notes on a) Defect testing b) Statistical testing c) Inspection checks d) Inspection and testing e) Inspection team

5*5

111. Explain the testing process. Distinguish Black box and White

box testing. 05

112. Discuss the main objectives and principles of software testing. 05

113. Explain bottom up and top down testing? 05

114. Define error, fault and failure; bring out the difference

between each with a suitable example? 05

115. What is functional testing and how it differs from structural testing? Explain any two methods for selecting test cases for

functional testing? 10

116. Explain the complete testing process with help of suitable

diagrams? 08

117. Discuss the various levels of testing? 05

118. Write short notes on verification and validation? 05 119. Why does software fails after passes acceptance testing? 04 120. Discuss different levels of testing and set goals of these

different levels? 07

121. What are test plans and what does a typical test plan

contains? 05

122. Write short notes on

a) Release testing b) Integration testing c) Performance 5*4

(13)

testing d) Cyclomatic Complexity.

123. Explain the need of interface testing. 05

124. Explain path testing technique with an example. 05 125. Explain stress testing. Why is it necessary? 05 126. Write a detailed note on testing workbenches. 08 127. What is the role of flow graph in software testing? Explain with

one example. 06

128. How is the cyclomatic complexity useful in program testing?

Explain. 07

References

Related documents

preparation of Math in the Middle graduates and the lack of leadership roles, project leaders utilized the partnership between the university and school district administration and

Using static and dynamic models to test the agency costs/EM nexus, I find a significant and positive relationship between agency costs and EM based on a static model

As is indicated in 9.1 above, the funding framework makes provision for a normative total of research outputs for the public higher education system to be calculated by

States, the basic financial statements of the Board of Trustees of the Classical Academy Charter School of Clifton (the “Charter School”) in the County of Passaic, State of New

• multiply and divide integers using one of two methods: the table method or the like/unlike method.. Integers – Multiplying and

progress with the North Dakota MMIS -- to share with you an update on the changes we put into place last fall to improve our execution, to outline the progress on the development

Quarter 2 – Module 5: Secants, Tangents, Segments and Sectors of a Circle First Edition, 2020.. Republic Act 8293, section 176 states that: No copyright shall subsist in any work

Child Welfare South Africa is a child protection agency that implements a family preservation programme named the Isolabantwana project: community-based volunteers render