2.2 Flashcards
2.2.1
1. What is modularity?
2. What are the different names for modules?
- Modularity is the concept of breaking a large program or problem down into smaller chunks. The goal is to design a program so that each module carries out a single, specific task.
- The different names for modules are: subroutines, procedures, functions and methods.
2.2.1
1. What is a procedure?
2. What is a function?
- A procedure is a block of code that takes in zero, one or more parameters and performs a set task, but does not return a value.
- A function is a block of code that takes in zero, one or more parameters, performs a set task, and returns a value. The return value from a function does not need to be assigned to a variable, as long as it returns a valid item.
2.2.1
1. What is the outline of a subroutine?
2. What are the two methods for passing data into a subroutine?
- The first line of a subroutine specifies the interface for that subroutine. Depending on the programming language, the layout of a subroutine is slightly different, but the basic outline is: the name of the subroutine, the list of parameters it requires when it is called, the order of those parameters, and the data type for those parameters, and if it is a function, then it also includes a return value.
- The two methods for passing data into a subroutine are: passing by value, passing by reference.
Passing by value means the variable used is a local variable self-contained within the function. Passing by reference means editing the global variable in the program.
2.2.2
1. What is systems development lifestyle (SDLC)?
2. What is the waterfall lifestyle model?
3. What is iterative development?
- A framework defining tasks performed to each step in the software development process.
- The waterfall lifestyle model is a linear sequence of stages. Each stage is completed before the next stage begins. Good for small, simple projects where requirements are clear and do not change.
- Iterative development is a process, or a method, in which a software product is developed after breaking it down into smaller, easily developable ‘chunks’. Each chunk is analysed, designed, developed and tested in repeated cycles (iterations).
2.2.2
1. What is a prototype?
2. What is risk analysis?
3. What is a methodology?
- An original or first model of something from which other forms are copied or developed. Early prototypes will likely have reduced functionality.
- The process of identifying and analysing potential issues that could negatively impact a software project. Risk factors in software development include inadequate estimation of time, cost, scope and resources.
- A methodology is a system of methods and principles for doing something.
2.2.2
1. What is the waterfall methodology?
2. What are the advantages of waterfall?
3. What are the disadvantages of waterfall?
- The model is sequential/linear. The next phase can only start when the previous phase has finished.
- There is lots of documentation, it is easy to schedule tasks and judge progress, a simple and easy to understand model, and does not require a lot of customer involvement.
- If the testing systems fail to meet requirements, a large change in the design is needed. No new ideas can be included during development, and users are not involved until testing. No working software is produced until late in the life cycle, and efficient code is not prioritised.
2.2.2
1. What is agile?
2. What are the four values of agile?
- Agile development is an umbrella term for methods and practices based on the values and principles expressed in the Agile Manifesto.
- 1) Individuals and interactions over processes and tools.
2) Working software over comprehensive documentation.
3) Customer collaboration over contract negotiation.
4) Responding to change over following a plan.
2.2.2
What are the twelve principles of agile?
Customer satisfaction by early and continuous delivery of valuable software
Welcome changing requirements, even in late development
Working software is delivered frequently (weeks rather than months)
Close, daily cooperation between business people and developers
Projects are built around motivated individuals, who should be trusted
Face-to-face conversation is the best form of communication (co-location)
Working software is the principal measure of progress
Sustainable development ie. sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Continuous attention to technical excellence and good design
Simplicity—the art of maximizing the amount of work not done—is essential. (Identify must-have features and put the nice-to-have features into the “work not done” bucket.
The best architectures, requirements, and designs emerge from self-organizing teams.
A team regularly reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
2.2.2
What is extreme programming?
- Extreme programming is a type of agile methodology. Rules of XP include: the code must be written to agreed standards; the code should be refactored wherever and whenever possible; all code must have unit tests; and the project should be divided into planned iterations which specific programming tasks developed in each iteration.
2.2.2
1. What are the three advantages of XP?
2. What are three disadvantages of XP?
- Quality of code should be very high.
Continuous testing results in fewer issues.
Sustainable pace — lower chance of tired workers. - Programmers need to be based in the same geographic location.
Customer needs to provide a representative to work with the development team.
Little or no documentation.
2.2.1
1. What is modularity?
2. What are the different names for modules?
3. What is a function?
- What is the outline of a subroutine?
- What are the two methods for passing data into a subroutine?
- The first line of a subroutine specifies the interface for that subroutine. Depending on the programming language, the layout of a subroutine is slightly different, but the basic outline is: the name of the subroutine, the list of parameters it requires when it is called, the order of those parameters, and the data type for those parameters, and if it is a function, then it also includes a return value.
- The two methods for passing data into a subroutine are: passing by value, passing by reference.
Passing by value means the variable used is a local variable self-contained within the function. Passing by reference means editing the global variable in the program.