Software Development Flashcards
Describe what is meant by the term IDE (Integrated Development Environment)
- An Integrated Development Environment is a tool that makes it easier for programmers to write, debug and develop their code
- It includes a text editor for writing code, a translator for compiling or interpreting code, a debugger for testing code
Describe the features of an IDE (Integrated Development Environment)
- Stepping - this allows you to monitor the effect of each individual line of code by executing a single line at a time
- Breakpoint - allow users to set a point in the program at which the program will stop this helps to pinpoint where an error is occurring
- Syntax Highlighting – by highlighting different data types in different colours it makes it easier for programmers to identify certain point of code
- Autocomplete – in some modern versions of IDE have a feature that suggest code for you which can speed up the process of writing code as you don’t have to remember all the code
- Auto tabbing –makes code easier to read by forcing code to be uniformly neat
- Debugging tools - some IDEs provide run-time detection of errors with a guide as to where in the code they are likely to have occurred through line numbers and highlighting
What are the stages of Software Development
- Analysis - Business Case, Requirements gathering and documentation
- Design - Specifications of products made
- Development - Development of code, prototypes and working solutions
- Testing - Testing build versions. Until issues and bugs are addressed
- Deployment - Deploy new systems live, settling in time.
- Maintenance - Hand over to the support and maintenance team
Describe the Waterfall Development Methodology Description and Diagram
- Each step is completed one at a time from beginning to end
- Each step has a specific output that leads to the next step
- The developers can go back to previous stages if necessary but they then have to work back down through the following stages
- To make changes later would result in high cost implications to the work that has already been completed
Describe the RAD (Rapid application) Methodology Description
- Creates an initial ‘incomplete’, partially functioning prototypes which is continually built-upon
- User feedback is then used to generate requirements for the next iteration
- This makes use of parallel development of tasks to speed up development
- This is produced with a strict time limit
Describe the Agile Method Description and Diagram
- Uses Iternations and each version builds on the prior with increased functionality
- This method is useful for projects with unclear initial requirements because if a user spot a missing requirement or new feature, they may add it into a future iteration
Describe the Spiral Development Methodology Description and Diagram
- This method focuses on four key stages repeatedly -
- Analyses/ Determining Objectives
- Identifying risks
- Development and Testing
- Evaluating the next iteration
- If the project is found to be too risky at any point, the project is terminated
What are the Two Variants of Agile Development Method
- Extreme Programming (XP)
- Scrum method
What is Extreme Programming
- Extreme Programming uses pair programmers meaning that the programmer works with the user to develop the product together
- At the start of each planning phase they determine that will be developed and at the end they feedback to each other
- This produces high quality code but there is a high cost of two people working on one project
What is Scrum method
- The Scrum method has three different roles -
- Product Owner – responsible for the business aspect
- Scrum Master – looks after the team’s performance and the quality of the product
- The Team - addresses any issues or problems together
- The projects are run as a series of goals called Sprints, each one taking about a month. At the end of each Sprint there is a Sprint review which allows the team to get feedback from the user before moving onto the next Sprint
What are the Advantages, Disadvantages and Uses of each of the Programming Methodologies
What are the different types of Testing Strategies
- White box testing
- Black box testing
- Alpha testing
- Beta testing
Describe White Box Testing (Structural Testing)
- Tests the structure of the code for correct values so that the unit of code operate as they should
- All of the possible routes through the program are tested
- Testing is carried out by the software development teams who coded the unit of code
- Weakness - will not detect missing functions – you cannot test what isn’t there! The test is accurate only if the tester knows what the program is supposed to do
Describe Black Box Testing (Functional Testing)
- Involves looking at the program specification and creating a test plan that traces through inputs and outputs within the software
- The software is tested without the testers being aware of the internal structure of the software (can be carried out by the company and by end-users)
- Weakness - Test cases are challenging to design without having clear functional specifications and there is a high probability of repeating tests already performed by the programmer
Describe Alpha Testing
- Users are used to discover if the system does not have the correct functionality so that bugs can be pinpointed and fixed (User Acceptance Testing)
- Carried out by the software developers in-house testing team
- Weaknesses - Only business requirements are covered in Alpha testing