software engineering Flashcards

(176 cards)

1
Q

What is Software Engineering?

A

The systematic application of engineering principles and methods to the design, development, testing, and maintenance of software products.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the key characteristics of software?

A
  • Software Development vs. Manufacturing
  • No Physical Wear and Tear
  • Custom-Built Nature
  • Intangibility of Software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is the Software Crisis?

A

Problems in the software industry include overruns in development cost and duration, and poor quality of software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Name the stages in the Software Development Life Cycle (SDLC).

A
  • Requirement Analysis
  • Design
  • Coding
  • Testing
  • Implementation
  • Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is the Waterfall Model?

A

A linear and sequential SDLC model where each phase depends on the completion of the previous one.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the advantages of the Waterfall Model?

A
  • Easy to understand and implement
  • Well-defined stages and clear milestones
  • Low cost and easy to schedule
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the disadvantages of the Waterfall Model?

A
  • Not suitable for changes once development has started
  • Working version produced only at the end
  • High amounts of risk and uncertainty
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the Prototype Model?

A

An iterative approach that involves developing an early working model of the software based on known requirements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are the types of prototypes in the Prototype Model?

A
  • Evolutionary Prototype
  • Throwaway Prototype
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is an Evolutionary Prototype?

A

Develops a working prototype that is gradually improved and refined based on user feedback.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is a Throwaway Prototype?

A

A temporary, simplified version of the software created to validate specific features or test ideas, not intended for final product use.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Define Software Quality Attributes.

A
  • Correctness
  • Usability
  • Reliability
  • Efficiency
  • Maintainability
  • Portability
  • Scalability
  • Security
  • Modularity
  • Reusability
  • Testability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is a Software Requirement Specification (SRS)?

A

A document that describes what the system will do without detailing how it will do it, capturing all requirements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is the purpose of Requirement Engineering Process?

A
  • Elicitation
  • Analysis
  • Documentation
  • Review and Management of User Needs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are common problems in Software Development?

A
  • Inadequate Requirements Gathering
  • Poor Project Management
  • Insufficient Time and Budget
  • Lack of Skilled Personnel
  • Resistance to Change
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is Software Maintenance?

A

Any change made in the software after its official release, including adaptive, corrective, and perfective maintenance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What is the significance of Software Configuration Management?

A

It involves activities like change control process and software version control to manage software changes effectively.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What is the importance of Software Testing?

A

To identify bugs or faults in the code and ensure the software performs as expected.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What are the types of software testing?

A
  • Unit Testing
  • Integration Testing
  • Acceptance Testing
  • Regression Testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What is the role of a feasibility study in software development?

A

To check financial and technical feasibility, analyze cost-benefit ratios, and examine alternative solution strategies.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Fill in the blank: Software is a _______ along with proper documentation.

A

program

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

True or False: Software is produced in factories like physical products.

A

False

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What is iterative prototyping?

A

Develops a working prototype, gradually improving and refining it based on user feedback.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What is a throwaway prototype?

A

A temporary, simplified version of software to validate specific features, test ideas, or gain user feedback.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
What happens to a throwaway prototype after its purpose is served?
It is discarded.
26
What is one advantage of throwaway prototyping?
Customer gets a chance to see the product early and provide important feedback.
27
What is a disadvantage of throwaway prototyping?
If not managed properly, the iterative process can run for a long time.
28
Who recognized the project risk factor in a life cycle model?
Barry Boehm.
29
What does the radial dimension of the spiral model represent?
Cumulative costs.
30
What are the four sectors of each phase in the spiral model?
* Determining objectives and planning the next phase * Risk analysis * Engineering the product, develop and test the product * Customer evaluation
31
What is one advantage of the spiral model?
Provides early and frequent feedback from the customer.
32
What is a disadvantage of the spiral model?
Not suitable for small size projects due to high cost of risk analysis.
33
What is the incremental development model based on?
Developing an initial implementation, exposing it to user feedback, and evolving through several versions.
34
In the incremental model, what is produced during the first module?
A working version of the software.
35
What is one advantage of the incremental model?
Generates working software quickly and early during the software life cycle.
36
What is a disadvantage of the incremental model?
Needs good planning and design.
37
What is the focus of evolutionary development models?
Adaptation and evolution of software in response to changing requirements and user feedback.
38
What is the purpose of requirement engineering?
To describe a proposed system’s intended behaviour and its associated constraints.
39
What is a known requirement?
Requirements already known to the stakeholder.
40
What are the major steps in requirement analysis?
* Requirement Elicitation * Requirement Analysis * Requirement Documentation * Requirement Review
41
What is the Delphi technique?
Participants write requirements on paper, exchange them for comments, and repeat until consensus is reached.
42
What does QFD stand for?
Quality Functional Deployment.
43
What is the purpose of a data flow diagram (DFD)?
To graphically represent the flow of data through a system.
44
What are the components of DFD?
* Function/Process * Data Store * External Entity * Data Flow
45
What is the purpose of a decision table?
To specify which actions to perform based on given conditions.
46
What is the structure of a decision table?
Tabular format listing conditions, actions, and rules.
47
What does SQA stand for?
Software Quality Assurance.
48
What is the objective of SQA?
To prevent defects, improve quality, and ensure customer satisfaction.
49
What does IEEE provide for SRS documents?
Standards for readability and modifiability.
50
What is the first section of an SRS document according to IEEE standards?
Introduction.
51
What is one of the quality attributes focused on in SQA?
Reliability.
52
What is the purpose of requirement documentation?
To ensure requirements are understood easily, even by non-technical persons.
53
What is a flow chart?
A graphical representation of how control flows during the execution of a program.
54
What is the purpose of the Process in software development?
Implements quality control and management activities throughout development.
55
Name three techniques used to evaluate software quality.
* Code reviews * Inspections * Audits * Testing
56
What international standards does software quality adhere to?
* ISO 9001 * IEEE 730 * CMMI
57
List five quality attributes focused on in software development.
* Reliability * Maintainability * Usability * Efficiency * Functionality
58
What is the goal of Continuous Improvement in software quality?
Monitors processes and products to identify and implement improvements.
59
What metrics are employed to evaluate software quality?
* Defect density * Code coverage
60
Why is training important in software quality management?
Emphasizes skill development for developers and testers to meet quality standards.
61
What is the purpose of documentation in software quality?
Requires proper documentation for transparency and traceability.
62
What does verification ensure in software development?
Ensures that the software product is designed and developed according to specified requirements and standards.
63
What is validation in the context of software quality?
Ensures that the software product meets end-user requirements and is fit for its intended purpose.
64
What are the two categories of software quality factors?
* Directly measurable factors * Indirectly measurable factors
65
Name the three categories of software quality factors according to McCall's model.
* Product operation factors * Product revision factors * Product transition factors
66
What are some product operation factors?
* Correctness * Reliability * Efficiency * Integrity * Usability
67
What does ISO 9000 focus on in software engineering?
Provides guidelines for implementing effective processes and ensuring high-quality software products.
68
List the key components of ISO 9000.
* Quality Management System (QMS) * Management Responsibility * Resource Management * Product Realization * Measurement, Analysis, and Improvement
69
What are the principles of ISO 9000?
* Customer focus * Leadership * Process approach * Continual improvement
70
What is the focus of ISO 9001:2015?
Applicable to any organization size and industry, focusing on customer satisfaction, regulatory compliance, and improvement.
71
What does ISO/IEC/IEEE 90003:2018 provide guidance for?
Applying ISO 9001:2015 to software engineering.
72
List some benefits of ISO 9000 in software engineering.
* Improved customer satisfaction * Enhanced process efficiency and effectiveness * Reduced risk of software failures and defects * Increased marketability and competitiveness
73
What is the first step in implementing ISO 9000 in software engineering?
Obtain top management commitment.
74
What does the Capability Maturity Model (CMM) aim to improve?
The software process to generate quality software.
75
How many levels are there in the Capability Maturity Model (CMM)?
Five levels.
76
What characterizes the Initial level of CMM?
Process unpredictable and poorly controlled.
77
What is the focus of the Defined level in CMM?
Process standardization across the organization.
78
What is the goal of the Optimized level in CMM?
Continuous process improvement.
79
What is the output of the software design phase?
Software Design Document (SDD).
80
What is the first step in the software design process?
Interface Design.
81
What does architectural design focus on?
Major modules that must be implemented in the system and their responsibilities.
82
What is modular architecture?
A system composed of well-defined, conceptually simple, and independent units interacting through a well-defined interface.
83
What is the purpose of Design Structure Charts?
Represent hierarchical structure of modules and describe functions and sub-functions of each module.
84
What does pseudocode represent?
A simplified, informal representation of an algorithm or program.
85
What are coupling and cohesion in software design?
Parameters that help understand the quality of modularity in design.
86
What is data coupling?
Two modules communicate by passing data.
87
What is the worst type of coupling?
Content coupling.
88
Define functional cohesion.
Different functions of a module cooperate to perform a single function.
89
What are the two popular design approaches?
* Top down approach * Bottom up approach
90
What is post estimation?
Not estimating time or cost due to familiarity with the project.
91
What is decomposition based estimation used for?
Large projects where the problem is divided into smaller problems.
92
What is the formula for effort in estimation?
Effort = Size / Productivity.
93
What is based estimation?
Estimation used for large projects where decomposition of the problem is done into smaller problems.
94
What are the two bases of based estimation?
* Direct Estimation (White Box): Size oriented metrics (KLOC) * Indirect Estimation (Black Box): Function oriented metrics (FP)
95
What is the formula for Effort?
Effort = Size / Productivity
96
What is the formula for Productivity?
Productivity = Size / Effort
97
What is the formula for Size?
Size = Effort X Productivity
98
What is the formula for Cost?
Cost = Effort X Pay
99
What is the formula for Duration?
Duration = Effort / Team Size
100
What is the formula for Team Size?
Team Size = Effort / Duration
101
What is the formula for Effort in terms of Duration and Team Size?
Effort = Duration X Team Size
102
What is the total expenditure for a company if productivity is 870 LOC per month and salary is 1500 USD?
Calculate based on total LOC and productivity.
103
How do you calculate the cost of an application based on KLOC?
Cost = Size in KLOC * Cost per KLOC
104
What is the expected size of an application using the formula (Soptimistic + 4 X Slikely + Spessimistic) / 6?
Expected size based on optimistic, likely, and pessimistic estimates.
105
What is FP in software estimation?
Functional Points used to predict the cost of development.
106
What factors are considered in 2D FP?
* No of inputs * No of outputs * No of inquiries * No of files * No of external interfaces
107
What is the formula for EAF?
EAF = 0.65 + 0.01 * Σ fi
108
What are the three classes of software in COCOMO?
* Organic * Semidetached * Embedded
109
What is Basic COCOMO?
A simple and static cost estimation model that calculates project effort and duration based on size.
110
What is the formula for effort in Basic COCOMO?
DE = ab (KLOC)^bb
111
What is Intermediate COCOMO?
An extension of Basic COCOMO that refines effort and duration estimates by considering additional project factors.
112
What is Detailed COCOMO?
The most comprehensive COCOMO model that divides a software project into multiple components.
113
What is cyclomatic complexity?
A metric that measures the complexity of a program's control flow by counting independent paths.
114
What is the purpose of cyclomatic complexity?
* Assess code maintainability * Identify potential errors * Determine testing effort * Aid in refactoring
115
What are the objectives of software testing?
* Ensure software meets requirements * Deliver a reliable product * Improve software quality assurance
116
What is unit testing?
The first level of testing that involves testing individual components or units of code.
117
What are the characteristics of good coding?
* Simple and easy to understand * Readable with proper spacing and comments * Modular for reusability
118
What is the importance of compliance with design and coding standards?
* Improves code readability * Facilitates collaboration * Minimizes defects * Reduces development time
119
What are the principles of software testing?
* Testing must be based on user requirements * Limited time and resources * Impossible to check entire input space
120
What is Unit Testing?
The first level of testing that involves testing individual components or units of code to ensure they work correctly in isolation. ## Footnote It verifies that each unit performs its intended function and catches bugs early in the development process.
121
What is the purpose of Unit Testing?
To verify that each unit of code performs its intended function and to catch bugs early in the development process. ## Footnote It checks the internal logic of the module and its functionality and interface with other modules.
122
What does Integration Testing aim to achieve?
To test the module interfaces to ensure there are no errors in parameter passing when one module invokes another. ## Footnote It verifies the functional, performance, and reliability between the modules.
123
What is the primary objective of Integration Testing?
To expose faults in the interaction between integrated units. ## Footnote It occurs after unit testing and before validation testing.
124
Name the types of Integration Testing.
* Big Bang Integration Testing * Top-Down Integration Testing * Bottom-Up Integration Testing * Sandwich/Hybrid Integration Testing
125
What is Big Bang Integration Testing?
A type of integration testing where all modules are integrated simultaneously and then tested as a complete system. ## Footnote It is simpler to set up but poses high risks as significant issues are found late in the development process.
126
What are the advantages of Top-Down Integration Testing?
* Early defect identification * Facilitates progressive testing * Supports early demonstration of functionality
127
What are the disadvantages of Top-Down Integration Testing?
* Stub development is required * Late detection of lower-level bugs * Incomplete testing due to reliance on stubs * Difficulty in test management
128
What is Bottom-Up Integration Testing?
A strategy where lower-level modules are tested first and then integrated with higher-level modules. ## Footnote It often uses driver modules for testing and simulation.
129
List the advantages of Bottom-Up Integration Testing.
* Early problem detection * No need for stubs * Simultaneous development and testing
130
What is Sandwich/Hybrid Integration Testing?
A combination of top-down and bottom-up integration testing, using stubs and drivers to replace missing modules. ## Footnote It provides comprehensive testing coverage and flexibility.
131
What is System Testing?
A level of software testing where the complete and integrated software system is tested to evaluate its compliance with specified requirements. ## Footnote It is a crucial step before deployment to catch defects that might have slipped through earlier stages.
132
What is User Acceptance Testing (UAT)?
The final testing phase before software deployment, validating if the system meets business requirements and is fit for use. ## Footnote It is usually performed by clients or end-users.
133
What is the primary goal of Regression Testing?
To ensure that previously developed and tested software still functions as expected after changes such as updates or bug fixes.
134
What are the types of Regression Testing?
* Unit regression * Partial regression * Complete regression testing
135
Define Black Box Testing.
A testing method where the system is treated as a whole, checking outputs for every input according to user requirements.
136
Define White Box Testing.
A testing method where the internal workings of the system are examined to verify how functionality is performed.
137
What is Stress Testing?
A type of testing that evaluates system performance under stress for short periods, often designed to impose abnormal input conditions.
138
What is Boundary Value Analysis?
A software testing technique focusing on values at the boundaries of input domains, as errors are likely to occur at extremes.
139
What is Equivalence Partitioning?
A black box testing technique that divides input data into partitions of equivalent data to reduce the total number of test cases.
140
What are Graph-Based Testing Methods?
Testing methods that use graphical representations, where nodes represent states and edges represent transitions.
141
What is a Formal Technical Review (FTR)?
A structured approach to examining software artifacts to identify and address defects and inconsistencies.
142
List the roles in a Formal Technical Review.
* Review leader * Author * Reviewers * Recorder
143
What are the benefits of Formal Technical Reviews?
* Improved code quality * Early defect detection * Knowledge sharing * Increased team collaboration
144
What is a Walkthrough in software engineering?
An informal review process where the author presents their work to peers to identify defects and areas for improvement.
145
What is Code Inspection?
A systematic review process where a team evaluates a software product's source code for potential issues.
146
What are the objectives of Code Inspection?
* Improve code quality * Detect and fix defects early * Share knowledge among team members * Enforce coding standards
147
What is the first step in the action items process?
Rework: The original developer addresses the identified issues and submits the revised code
148
What does the follow-up step involve?
The moderator verifies that all action items have been addressed and closes the inspection
149
Who is the author in the inspection team roles?
The developer who wrote the code being inspected
150
What is the role of the moderator in the inspection process?
The person who leads the inspection process and ensures it runs smoothly
151
Who are the reviewers in the inspection team?
Other developers who provide insights and suggestions for improvements
152
What is the responsibility of the recorder in the inspection team?
The person responsible for documenting the issues found and decisions made during the inspection
153
What is one benefit of conducting code inspections?
Enhanced code quality and maintainability
154
What is a limitation of the code inspection process?
Time-consuming process
155
True or False: Code inspections can completely eliminate the possibility of defects.
False
156
What are the three categories of software maintenance?
* Preventive maintenance * Corrective maintenance * Perfective maintenance
157
What is corrective maintenance?
Corrective maintenance is essential to rectify bugs or enhance system performance
158
Define adaptive maintenance in software.
Modifications and updates when the product needs to run on new platforms or interfaces with new hardware
159
What does perfective maintenance support?
New features that users want or changes to functionalities according to customer demands
160
What is software re-engineering?
The process of examining and modifying an existing software system to improve its functionality
161
What is reverse engineering?
The process of deconstructing a system to understand its components and relationships
162
What is restructuring in software re-engineering?
Transforming existing source code into a more maintainable form while preserving functionality
163
What does forward engineering involve?
Making changes to improve the system or adapt it to new requirements or technologies
164
What is the purpose of re-documentation?
Updating or creating new documentation for the system
165
List the steps of software reverse engineering.
* Collecting Information * Examining the Information * Extracting the Structure * Recording the Functionality * Recording Data Flow * Recording Control Flow * Review extracted Design * Generate Documentation
166
What is the main purpose of software configuration management?
Defining and implementing a standard configuration for easier setup and maintenance
167
What is a baseline in software configuration management?
A formally accepted version of a software configuration item
168
What is change control in SCM?
A procedural method to ensure quality and consistency when changes are made
169
What does configuration status accounting track?
Tracks each release during the SCM process and the changes leading to each version
170
What is the role of version control?
To keep track of changes in computer programs and facilitate collaboration
171
What is the critical path method (CPM)?
A step-by-step technique used in project management for scheduling project activities
172
What does the program evaluation and review technique (PERT) analyze?
Tasks involved in completing a given project and estimating minimum completion time
173
What is resource leveling in project management?
Adjusting the project schedule to balance demand for resources with available supply
174
What is the first step in software risk management?
Risk Identification: determining risks that could prevent achieving project objectives
175
What does risk analysis involve?
Analyzing the likelihood of occurrence and severity of identified risks
176
What is risk mitigation?
Prioritizing, evaluating, and implementing actions to reduce or control risks