software engineering Flashcards
(176 cards)
What is Software Engineering?
The systematic application of engineering principles and methods to the design, development, testing, and maintenance of software products.
What are the key characteristics of software?
- Software Development vs. Manufacturing
- No Physical Wear and Tear
- Custom-Built Nature
- Intangibility of Software
What is the Software Crisis?
Problems in the software industry include overruns in development cost and duration, and poor quality of software.
Name the stages in the Software Development Life Cycle (SDLC).
- Requirement Analysis
- Design
- Coding
- Testing
- Implementation
- Maintenance
What is the Waterfall Model?
A linear and sequential SDLC model where each phase depends on the completion of the previous one.
What are the advantages of the Waterfall Model?
- Easy to understand and implement
- Well-defined stages and clear milestones
- Low cost and easy to schedule
What are the disadvantages of the Waterfall Model?
- Not suitable for changes once development has started
- Working version produced only at the end
- High amounts of risk and uncertainty
What is the Prototype Model?
An iterative approach that involves developing an early working model of the software based on known requirements.
What are the types of prototypes in the Prototype Model?
- Evolutionary Prototype
- Throwaway Prototype
What is an Evolutionary Prototype?
Develops a working prototype that is gradually improved and refined based on user feedback.
What is a Throwaway Prototype?
A temporary, simplified version of the software created to validate specific features or test ideas, not intended for final product use.
Define Software Quality Attributes.
- Correctness
- Usability
- Reliability
- Efficiency
- Maintainability
- Portability
- Scalability
- Security
- Modularity
- Reusability
- Testability
What is a Software Requirement Specification (SRS)?
A document that describes what the system will do without detailing how it will do it, capturing all requirements.
What is the purpose of Requirement Engineering Process?
- Elicitation
- Analysis
- Documentation
- Review and Management of User Needs
What are common problems in Software Development?
- Inadequate Requirements Gathering
- Poor Project Management
- Insufficient Time and Budget
- Lack of Skilled Personnel
- Resistance to Change
What is Software Maintenance?
Any change made in the software after its official release, including adaptive, corrective, and perfective maintenance.
What is the significance of Software Configuration Management?
It involves activities like change control process and software version control to manage software changes effectively.
What is the importance of Software Testing?
To identify bugs or faults in the code and ensure the software performs as expected.
What are the types of software testing?
- Unit Testing
- Integration Testing
- Acceptance Testing
- Regression Testing
What is the role of a feasibility study in software development?
To check financial and technical feasibility, analyze cost-benefit ratios, and examine alternative solution strategies.
Fill in the blank: Software is a _______ along with proper documentation.
program
True or False: Software is produced in factories like physical products.
False
What is iterative prototyping?
Develops a working prototype, gradually improving and refining it based on user feedback.
What is a throwaway prototype?
A temporary, simplified version of software to validate specific features, test ideas, or gain user feedback.