Software development Flashcards
What are the stages of the iterative/waterfall methodology?
- Analysis
- Design
- Implementation
-Testing - Evaluation
- Documentation
Why is the agile development methodology said to be more flexible than the iterative model?
As the Agile methodology breaks down the program into smaller chunks referred to as ‘sprints’. That involve ongoing analysis, design, and testing as the chunk of the program is put together all at once
Why is there no separate testing phase in an agile methodology?
- Testing is done through the production of the program, as you test each part of the program as it is produced
What are some of the key differences in what is expected in terms of communication between agile methodologies and iterative methodologies?
- An agile development methodology would combine people with different skills and place them in a team
- an Iterative model would place people with the same skills in a single team.
- Communication in the iterative model relies heavily on the analysis stage, as if misunderstandings occur here these issues will not come up again until the testing stage (by this point great amounts of time and resources have been wasted)
- With agile methodologies however rapid communication with the clients is prioritised and teams will constantly test and evaluate their program as it is produced, this way it will be far less costly to go back and fix any mistakes or misunderstandings.
- In the iterative model the client is only required during the analysis and evaluation stages and is not present at any other point in the development of the software
Why does the agile development methodology not have a documentation stage?
As agile methodologies focus on limiting the amounts of documentation and do documentation in chunks as the program is produced instead of all on one go in one big document as iterative models would do
What are some of the strengths of the iterative model?
- It has a rigid planning structure that must be followed
- It is good for managing large teams
- The outcomes of the project are agreed to beforehand
- It is easy to track the progression of the software’s development
What are some of the advantages of the agile method?
- Can cope with small changes by the client as the project progresses
- Heavily involved with clients - this allows changes to be agreed upon more quickly
- Works very well at producing a simple project
What is meant by the ‘scope’ of a project?
The scope is a list of deliverables that the project must deliver to their clients.
What is meant by ‘deliverables’?
Things that the software development teams must be able to produce.
- Completed program
- any time constraints
- design plan
- program documentation
What is a boundaries?
Limits of things that the program has to and does not have to do?
e.g for a football game a program would not need to display the names of more than the 22 players on the pitch at that time.
What is a module?
A smaller part of a program that carries out a particular function.
What are the benefits of using modular programming?
- Modular programming allows different programmers to work on the same program without causing errors for each other as they can all work on different modules.
- Errors in one module should not have an impact on other modules as local variables should be used (meaning that the variables used within that module only exist within that module and not with the rest of the program)
What is a local variable?
A variable that only exists within the module for which it was created and cannot be used at other points in the program
What is a global variable?
A variable that can be used in any part of the program
What is meant by ‘Data Flow’?
When data is passed between modules
What type of information can data flow be?
-Variables
-Arrays
What are the most important rules of data flow?
- Input from the user is not data flow, it is only data flow if it is passed between modules
- Reading from a file or writing to a file is not data flow unless this information is being passed to another module
What are the different data types?
- Character
- String
- Real
- Integer
- Boolean
What are the data structures?
- Parallel arrays / arrays
- Records
How would you create a record for a pupil at a school with the data of ( First name, House, Year) ?
DECLARE pupil AS ARRAY of { FirstName: STRING, House: STRING , Year: INTEGER}
How would you declare an array of records for the pupil record?
DECLARE Pupils AS ARRAY of pupil*(However many records you needed)
What are the standard algorithms at higher?
- Find Max
- Find Min
- Count Occurences
- Linear Search