Week 1 Flashcards
(42 cards)
Software Development Cycle Components
- Requirements
- Design
- Implementation
- Testing
- Deployment
- Maintenance
Waterfall Method
- Requirements engineering
- Specification
- Design
- Implementation
- includes iteration and feedback
Validation
ensuring that the right system is being created by checking whether stakeholder expectations are met
Verification
ensuring that the system is being built in the right way according to the specified design and development standards
Problems with Waterfall Method
- too rigid, no freedom in approach
- may not allow developers to move between various abstraction levels freely
- stakeholder involvement limited to initial requirements gathering phase
V-Model
extension of Waterfall method that specifies for each development phase its corresponding testing phase
Requirements Engineering - Acceptance Testing
Specification - Integration Testing
Design - System Testing
Implementation - Unit Testing
Acceptance Testing
testing whether the currently created requirements meet stakeholders’ expectations for the products
Integration Testing
checks whether the different components in the specification can be integrated easily, and specifies which errors could arise
System Testing
tests whether the system design as a whole meets the specified requirements, validating its overall functionality, performance and behaviour
Unit Testing
tests each module or component of the implementation independently to ensure its functions are carried out correctly
Agile Development
- Requirements
Then, loop: - Design
- Develop
- Test
- Deploy
- Review
Prioritises:
- flexibility
- collaboration
- customer feedback
Principles of Agile development
- Individuals, interactions more important than processes, tools.
- Working software more important than comprehensive documents.
- Customer collaboration more important than contract negotiation.
- Responding to change more important than following a plan.
Drawbacks of Agile Development
- Lack of extensive design phase.
- Lack of energy spent on documentation.
Requirement
a statement expressing a need and its associated constraints and conditions
Steps of Requirements Engineering
- Requirements elicitation
- Requirements specification
- Requirements verification and validation
- Requirements management
Requirements elicitation
the gathering and identifying of user needs and expectations through interviews, surveys, workshops, etc.
Requirements specification
the documentation and definition of clear, concise and unambiguous requirements to serve as the basis for subsequent stages of software development
Requirements verification and validation
ensuring that the specified requirements are accurate, complete, consistent, and realisable
Requirements management
systematically handling changes to the requirements as the software development process advances
Important Elements of Requirements Specification
- Identification: clear labelling of each requirement for easy distinguishing and tracking
- Dependencies: documenting interdependencies between different requirements
- Source(s): specifying the origin or stakholder providing each requirement
- Rationale: providing the reasoning or justification behind each requirement
- Priorities: categorising requirements using the MoSCoW method
Steps for Requirements Specification
General:
- Identifying actors and their goals
- Specifying inputs and outputs of the system
- Writing requirements
Given informal text:
- Identifying the system
- Identifying actors and their goals
3 Identifying inputs and outputs of the system - Going through each sentence, writing down requirements that arise.
Properties of Good Requirements
Unambiguous
Consistent
Verifiable
Appropriate
Necessary
Complete
Singular
Feasible
Correct
Conforming
Structure of Semi-Informal Requirements
- Condition (when the requirement is applicable)
- Subject (the actor carrying out the requirement)
- Action (the action or verb of the requirement - shall …)
- Object (the entity that the action is carried on)
- Constrain of Action (a restriction on the nature of the action, such as a time limit)
Requirement No-Go’s:
- Shall be able to (just say shall do action directly)
- Negative statements (shall not move the door)
- Passive voice: (the engine will turned off - no Subject)
- Superlatives (e.g., best or most)
- Subjective-language (user friendly, easy to use, cost effective)
- Vague pronouns (e.g., it, this, that)
- Ambiguous adverbs and adjectives (e.g., significant, minimal)
- Open-ended, non-verifiable terms (e.g., provide support, as a minimum, but not limited to)
- Comparative phrases (e.g., better than, higher quality)
- Loop holes (e.g., if possible, as appropriate,