Explain software crisis
It refers to the difficulty of writing useful and efficient computer programs within the required time. It was caused by the rapid increases in computer power and the complexity of the problems that arose but existing methods were not sufficient to address them.
Define software engineering (IEEE)
The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.
Explain the motivations for selecting a software development process
Describe the various types of software criticality
Describe the PID phase
Used to identify the business value of the system
Describe the software requirements phase
Describe the software design and implementation phase
Software Design
Implementation
Describe the validation phase
Software Validation
Verification
Validation
Name, explain, and describe the waterfall models
Advantages
Disadvantages
Name, explain, and describe the evolutionary models
Based on the idea of developing an initial implementation, exposing this to user comment and refining it through many versions until an adequate system is developed. These models are both iterative and incremental in nature.
Name, explain, and describe the agile models
Dissatisfaction with the overheads involved in software design methods of the 1980s and 1990s led to the creation of agile methods. The aim of agile methods is to reduce overheads in the software process (e.g. by limiting documentation) and to be able to respond quickly to changing requirements without excessive rework.
These methods:
Explain requirements elicitation
The process of using various techniques to gather requirements from a client.
Name and explain the elements of an elicitation plan
Explain how to perform interviews
Explain how to perform workshops
Explain how to perform observations
Explain how to perform document analysis
Explain business requirement
These requirements describe why the organization is implementing the system. That is, the business benefits the organization hopes to achieve.
Explain user requirements
These requirements describe goals or tasks the users must be able to perform with the product that will provide value to someone. They describe what the user will be able to do with the system.
Explain functional requirements
These requirements specify the behaviors the product will exhibit under specific conditions. They describe what the developers must implement to enable users to accomplish their tasks (user requirements).
Explain nonfunctional requirements
These requirements specify constraints on the services or operations offered by the system.
Explain quality attribute
These requirements describe the product’s characteristics in various dimensions that are important to either the user or to developers and maintainers, e.g., performance, safety, availability, and portability.
Explain external interface requirement
These requirements describe connections to other software systems, hardware components, users, and communication interfaces.
Explain design and implementation constraint
These requirements impose restrictions on the options available to developers