lecture 3: system development models Flashcards
system development life cycle (SDLC)
a series of development phases arranged in a certain sequence
Tailoring
apting a model to a specific project, in order for it to be successful.
models which can be adapted: The waterfall development model, prototyping, agile development, crowd sourcing
model –> plan –> process:
development process model
We use development process models to benefit from previous experience and knowledge, and to establish some kind of shared understanding.
The systems development model that is used should be as simple as possible given the level of complexity involved.
model –> plan –> process:
Project strategy and plan
when the development process model is tailored, there will be produced som kind of strategy and plan for the project
model –> plan –> process:
the actual process
then try to execute the project according to the plan and the strategy – a real process is established. This process is never as the plan, and the plan will change during project execution.
model –> plan –> process: large organizations
large organizations often develop and describe their own models.
simple model - simple jobs
For small, low complexity systems to be used internally, more or less by the people who develops them, a very simple model can be used.
The waterfall model: for more complex projects
A nice rational model for developing large and complicated systems
Problems with the waterfall model: Errors late in the process can be very expensive, because you have redo a lot of work
How to deal with the problem:
- Introduce a preliminary design phase: then the technical feasibility of the development effort is decreased.
- Document the design carefully: this documentations supports communication and coordination
○ Quality of design is transparent, reduce cost during test, operations and maintanance,
- Do it twice
- Plan, control and monitor testing.
- Involve the customer
risk analysis
application: - primary goal - size - environment Management: - customer relations - planning and control -communications technical: - requirements - test personnel -customers -developers -culture
tailoring process
Step 1: Apply risk analysis to specific risk areas associated with agile and plan-driven methods (specific risk categories: environmental, agile, and plan-driven).
Step 2: Evaluate the risk analysis results to determine if the project is appropriate for either purely agile or purely plan-driven methods.
Step 3: If the risk analysis shows that the project has no clear agile or plan-driven home ground. It also applies to cases in which parts of the system have such different risks that they fall into different home grounds.
Step 4: In this step overall project strategy that addresses the identified risks is developed. This involves identifying risk resolution strategies for each risk and integrating them.
Step 5: No decision is ideal for all time, the management team must constantly monitor and evaluate the performance of its selected processes while keeping an eye on the environment.
crowdsourcing
an organization takes a function once performed by employees and outsourcing it to an undefined network of people in the form of an open call
- Changing how software is being developed, and is becoming and established practice within systems development
Can be done e.g. hosting different software, development and data science competitions, or testers offering their services to test new things
- -> this work is announced in a open call where anyone can respond.
- -> the volunteer are unknown to the organization needing the work done
- -> the group of workers can be very large and geographically, culturally etc. Distanced
models of crowdsourcing
Peer production: Open source development
Competitions: competitors come up with each their solution, treat people as contestants rather than collaborations
Microtasking: decomposes work into a set of self-contained microtasks, which can each be completed in minutes and which together constitute a solution to a more complex task.
To ensure quality, multiple workers might be asked to complete the same microtask, with the best solution selected by voting and other mechanisms.
crowd source advantages
increase development speed
generating alternative solutions
getting easier acces to specialists
XP
Extreme Programming (XP) is an agile software development framework that aims to produce higher quality software, and higher quality of life for the development team. XP is the most specific of the agile frameworks regarding appropriate engineering practices for software development.