123-software-development Flashcards
1
Q
algorithm thinking
A
way of solving problems by producing algorithms.
2
Q
Algorithm
A
- Sequence of steps to solve a given problem
- May be constructed to describe the operation of a complete system or a particular part of it.
3
Q
Methodologies
A
Collection of defined techniques and sequence of tasks that provides a systematic approach to managing the software development process
4
Q
Methodology: Waterfall Model
A
- Linear, sequential, rigid, structured step-by-step approach
- SDLC phases
- Each stage needs to be finished before moving onto the next one.
- Strong emphasis on upfront requirement, gathering and planning.
5
Q
Pros of Waterfall Methodology:
A
- Well-defined start and end point with clear identifiable deliverables
Each stage is large and thorough and produces a lot of documentation – serves as a reference and aids in maintaining a clear understanding of the program’s progress - Easy to see if running schedule for time management.
- Simple and clear structure – straight-forward to plan, understand and follow.
- fewer production issues during development due to amount of time invested in user reqs, analysis and design
6
Q
Cons of Waterfall Methodology:
A
- High risk
- Very rigid structure: with little scope to go back and make improvements to the program based on client feedback
- Limited user input feedback, only at start and when product nearing competition, so might not meet needs of customer.
- No results until testing phase
- Misunderstanding requirements leads to waste of time + resources.
Inflexibility, changes are difficult to incorporate once a phase is completed – requires additional work and revisiting – delays, costs
7
Q
Scenarios for Waterfall methodology
A
- For: Large/complex SDL projects - clear plan from beginning to follow through, upfront planning and a structured approach is crucial
- Large development team – each programmer clear of their defined responsibilities at each stage
- Well-defined stable requirements that is not subject to frequent changes, predictable development process.
- Static, low risk projects – little need for user input and if client has a clear picture of what they want
- Not for: long-term projects as would take too long to get through each stage,
8
Q
Waterfall process/Software Development Lifecycle (SDLC)
A
- Requirements - project team works with clients to set
- Analysis: feasibility with what, TELOS constraints
- Design: solution + test plan design
- Development/ Implementation: code written, solution built
- Testing: checking it works as intended w/ test plan and meets reqs
- Deployment: installing system in target environment
- Maintenance: ensuring it continues to function (improvements, patches, updates)
9
Q
Spiral Model
A
- iterative incremental approach that focuses building in small cycles, identifying + mitigating risks and getting feedback from client at each step
- elements of both waterfall and prototyping methodologies
-involves series of iterations that follow a spiral path - Produces prototypes (not necessarily a program version) at the end of each cycle of spiral
10
Q
Advantages of the Spiral model:
A
- Thorough risk-analysis and mitigation - dealing with risks before any issues occur
- while improving program overtime
- client able to see the product being developed early on
- client feedback: adapts to changes in requirements, client gets involved, ensures it aligns with their expectations
- document-focused
- More flexible than waterfall: sequential but can evaluate and change more easily at end of each section
11
Q
Disadvantages of the Spiral model:
A
- Risk management is a highly specialized skill
- Lack of focus on code efficiency.
- High time and costs due to constant prototyping, hiring risk analyst and complex nature of risk analysis
-consequences if risk analyst doesn’t manage risk correctly - Project termination if risks are too high.
- iterative nature is complex to manage – esp for inexperienced teams or projects with many dependencies
12
Q
scenarios of spiral
A
- user doesn’t fully understand their requirements upfront/ are unclear and subject to frequent changes e.g startup company new software system – spiral flexibility and continuous refinement
- complex and large-scale projects - risks and uncertainties are high.
- complex: can try out different parts of the system and make improvements along the way
13
Q
Spiral methodology process
A
- planning: determine main objectives and requirements, chosen according to the biggest potential risk.
- risk analysis (identifying and solving risks + alternative options are considered, might involve building prototype of system/if risk is too high, project stopped
- development/testing and implementation –designed and Prototype built to get feedback from client then functionality will be added in each spiral.
- planning for next iteration: evaluation and risk assessment, review what has been achieved before and what needs to be added. if identified risk in spiral not identified, is listed in the next spiral.
14
Q
agile methodology
A
- developing a product over several iterations (sprints), some of the stages are repeated.
- Each iteration increments off the other, increasing the requirements it meets.
- requirements are not fully defined upfront
- Documentation is lighter and more focused on essentials.
15
Q
pros of agile
A
- Adaptable: designed to cope with changing requirements
-can take a product to market quicker - clients receive incremental updates on product
-final product has absolute certainty that it is what the client wants as theyre constantly involved - Flexibility: changes easily accommodated throughout the project.
- regular customer collaboration and feedback – customer satisfaction: faster feedback loops, regular user input, high-quality code, user can change requirements to better fit their needs
- Increased collaboration and teamwork
16
Q
cons agile methodologies
A
- requires constant interaction between the user and programmer.
- challenging to predict project timelines and outcome (uncertainties)
- lack of extensive planning and documentation (understanding and communication)
- better with experienced team
- requires higher time input from client as theyre constantly required for feedback and consultation at all stages of development process
- easily go off track and a project can last well beyond the initial idea, meaning high costs and high time input
17
Q
scenarios of agiles
A
- for emphasis on finished code quality, working software, customer collaboration, responding to change
- not for processes and tools, comprehensive documentation, contract negotiation, following a plan
- not suited for large organizations (needs coordination, communication and alignment is hard across multiple large teams)
- suited for projects with evolving requirements, uncertain or complex environments, and a need for frequent customer involvement.
- where client has a good idea of what they want and time to invest into controlling project and feeding back