1.2.3

Cards (54)

  • Most software development life cycles (SDLC's) have some stages in common: Analysis, Design, Development, Testing, Implementation, Evaluation and Maintenance.
  • Analysis - Stakeholders state what they require from the finished product. This information is used to clearly define the problem and the system requirements. Requirements may be defined by: Analysing strengths and weaknesses with current way this problem is being solved. Then, it considers the types of data involved including inputs, outputs, stored data and amount of data.
  • Design - The different aspects of the new system are designed such as: Inputs, Outputs, Security features, Hardware set-up, User interface. A test plan may also be designed at this stage
  • Development - The design from the previous stage is used to split the project into individual, self-contained modules, which are allocated to teams for programming
  • Testing - The program is tested against the test plan formed in the design stage. There are various types of testing carried out
  • Alpha testing - Alpha testing is carried out in-house by the software development teams within the company. Bugs are pinpointed and fixed
  • Beta testing - Beta testing is carried out by the end-users after alpha testing has been completed. Feedback from users is used to inform the next stages of development
  • White box testing - This is a form of testing carried out by software development teams in which the test plan is based on the internal structure of the program. All of the possible routes through the program are tested
  • Black box testing - This is a form of testing where the software is tested without the testers being aware of the internal structure of the software and can be carried out both within the company and by end-users. The test plan traces through inputs and outputs within the software
  • Implementation - Once the testing stage has been used to make the appropriate changes to the software, it is installed onto the user's systems
  • Evaluation - After the implementation stage, the effectiveness of the software is evaluated against the system requirements defined at the analysis stage to evaluate its suitability in solving the problem. Different criteria are considered like robustness, reliability, portability and maintainability
  • Maintenance - Any errors or improvements that could be made to the software are flagged up by the users. Programmers will regularly send out software updates to fix any bugs, security issues or make any improvements
  • The Waterfall model is a sequential software development process divided into distinct phases. Each phase must be completed before the next one begins. The stages: Analysis --> Design --> Implementation --> Testing --> Evaluation --> Maintenance
  • In the analysis stage for Waterfall, All positive system requirements to be developed are captured and documented clearly
  • In the design stage for Waterfall, The requirements are translated into a design. Architects and designers define the overall architecture and identify the main components
  • In the implementation stage for Waterfall, the actual code is written in this phase based on the design documents, turning the system design into a functional program
  • In the testing stage for Waterfall, All the components and modules are integrated and tested to ensure that the system works as expected
  • In the evaluation stage for Waterfall, The product is released to the market or handed over to the client. It may involve installation, customisation and training
  • In the maintenance stage for Waterfall, Post-release the system needs regular maintenance to fix bugs, improve performance or add new features
  • In the Waterfall, if changes need to be made within a project being developed using the Waterfall model, programmers must revisit all stages. This makes the model inflexible and so unsuitable for projects with changing requirements. This means that users have little input as they are only involved at the very beginning and end of the Waterfall lifecycle, during the analysis stage and evaluation stage
  • Agile methodology refers to a collection of methodologies which aim to improve the flexibility of software development and adapt to changes in user requirements faster. It is also easier to make improvements or changes to the software. The Stages are: Analyse Requirements --> Design Prototype --> Build Prototype --> User feedback --> Refine Prototype. Cycle keeps on repeating until user satisfied with prototype then finally Final Product
  • In Analyse Requirements stage for Agile, Customers and developers define the scope and priorities
  • In the Design Prototype stage for Agile, Developers create a simple design for the system that can evolve over time
  • In the Build Prototype stage for Agile, Coding is done in small increments with frequent integration and pair programming to ensure quality
  • In the User Feedback and Iteration stage for Agile, Constant feedback from stakeholders is used to guide future development cycles, leading to iterative and incremental development
  • In the Refine Prototype stage for Agile, Making sure that the prototype meets the system requirements and the system works
  • In the Final Product stage for Agile, It is given to the user as met with system requirements
  • In Agile, the problem is broken down into sections which are developed in parallel. The design and analysis phases often occur together. Different sections of software can be at different stages of development. A working prototype is delivered early on and prototypes are built upon and improved in an iterative manner so that new prototypes are delivered regularly throughout the course of the development cycle. In agile, there is less focus on documentation and more priority given to user satisfaction.
  • Extreme programming - It is an agile model in which the development team consists of a pair of programmers alongside a representative end-user. The model is built on 'user stories' system requirements are specified by the end-user and used when designing the program. The aims are to produce high-quality code as the code is written by one person the other person is critiquing the code to improve the quality.
  • In extreme programming, programmers work no longer than 40 hrs a week with the aim that quality is not compromised. Each iteration through the cycle generates what is called a 'working version' of the program which means it could function as the final product. The iterative nature of development means it's hard to produce high-quality documentation, which is less priority. In order for it to be effective, programmers must communicate effectively.
  • The Spiral model is built on 4 key stages with the focus on effectively managing risk-heavy projects. The four stages are: Planning --> Risk Analysis --> Development --> Evaluation and Feedback
  • In the Planning stage in Spiral, Define the objectives, alternatives and constraints for the current phase of the project
  • In the Risk Analysis stage in Spiral, Identify and assesses potential risks, and plan mitigation strategies
  • In the Development stage in Spiral, Develop the next version of the product, including design, coding, testing and integration
  • In the Evaluation and Feedback stage in Spiral, Review the progress with stakeholders and plan the next iteration
  • In Spiral, the process repeats spiralling through these stages with each spiral loop representing a development phase until the final product is ready. Hiring risk assessors to analyse the risks involved can be expensive, which makes this methodology suited to only very large-scale projects
  • RAD (Rapid Application Development) is an iterative methodology which uses partially functioning prototypes which are continually built upon. User requirements are initially gathered using focus groups and used to develop an 'incomplete version' of the solution which is given to the user to trial. User feedback is then used to generate the next improved prototype and this continues until the prototype matches the requirements of the end users at which point it becomes the final product
  • The Stages in RAD are: Requirement Planning --> User design and prototyping --> Construction or Iterative development --> Evaluation --> Maintenance
  • In the requirement planning stage for RAD: Gathering general system requirements, define constraints and assumptions
  • In the User Design and Prototyping stage for RAD: Collaborate with users to develop prototypes, ensuring alignment with user needs