Software Development Flashcards
Agile Approach
flexible and collaborative way of working on software projects. Small manageable units of work are done on different aspects of development. Often features iteration.
Iteration
when problems are encountered you go back to a prior step or checkpoint and work through the process again
Key Features of agile approach
-frequent and close collaboration between developers and users
-Willingness to respond to changing user requirements
-producing working software early and getting feedback from users
-simplicity of design
-self organising teams
Waterfall approach
formal and linear. Different stages are completed one after another
Waterfall approach key features
-formal documentation produced at the end of each stage to inform the next
-no stage begins till the last is done
-every stage is strictly regulated
arguments for waterfall approach
-problems found early in project means they are easier and less costly to fix than if they were found later
-documentation makes process easier to understand for new team members
-progress monitored clearly
Software Development Lifecycle (SDLC)
1.Investigate / Analysis
2.Plan
3.Design
4.Create / Development
5.Evaluate / Testing
-Iterate back to 2.
6.Document / Maintenance
- Invetigate
identify and understand user and problem. Carry out a feasibility study to whether a practical solution exists
- Plan
software development plan ensures everyone understands what must happen, when and by whom
- Design
Has multiple methods (Top-down / modular). Includes protoyping and making flowcharts
Top Down Design
main system at top and breaks it down into smaller units. Each unit is further broken down until they are manageable. It’s an example of decomposition
Modular design
Main system divided into smaller units called modules. Each represents a self contained task independent of others. ONce written can by used by various parts of system
benefits of modular design
-modules can be reused in the project and possibly others too
-modules are relatively small so problems are easier to find and fix
-easy to understand
-simplifies large projects
prototype
early version of model or product. tests concept or process and gets feedback from users. Most suitable for projects with high user interaction like an online system
flowchart circle
start / end
flowchart arrow
connector
flowchart parallelogram
input / output
flowchart rectangle
process
flowchart diamond
decision
benefits of flowcharting
-shared understanding on the part of team and users
-checks if development process is correct
-identify and eliminate unnecessary steps
data table
lists all data to be used and how it will be stored
variable table
variables that the software will need
user-centred design
gives top priority to the needs of the user and ensures they can use it as easily as possible. Consider UX and UD