1. 2. 3 Software Development Flashcards
1
Q
Programming Methodologies
A
- Most software development life cycles (SDLCs) have common stages
- Analysis, Design, Development, Testing, Implementation, Evaluation, Maintenance
- Waterfall lifecycle, Spiral model, Agile methodologies, RAD, and XP
2
Q
Analysis
A
- Stakeholders state what the require from finished product
- Info used to clearly define problem and system requirements
- Requirements may define following
- Strengths and weaknesses of current ways problem being solved
- Considering types of data involved (inputs, outputs) and amount of data stored
3
Q
Design
A
- Aspects of mew system designed
- Inputs, Outputs, Security features, Hardware setup, user interface (Examples below)
- Volume of Inputs and Outputs, Access levels, compatibility, menus, navigation
- Test plan may be designed at this stage
4
Q
Development
A
- Design is used to split project into individual, self-contained modules
- These modules are allocated to teams for programming
5
Q
Testing
A
- Program tested against test plan formed in design stage
- Alpha testing, carried out in-house by software development teams within company
- Bugs are pinpointed and fixed
- Beta testing, end users (after alpha testing done) test program
- Feedback from users inform next stage of development
- White box testing, testing algorithms in code, make sure function as intended
- Checks overall efficiency of code, testing all possible paths of execution through program
- Black box testing, checking every input to program has desired outputs
- Choose appropriate test data to cover a range of situations
6
Q
Implementation
A
Once testing stage used to make appropriate changes to software, its installed onto users’ systems
7
Q
Evaluation
A
- Effectiveness of software evaluated against system requirements defined at analysis stage
- Evaluate suitability in solving problem, different criteria considered
- Robustness, reliability, portability and maintainability
8
Q
Maintenance
A
- Errors, improvements that can be made, flagged up by end-users
- Programmers send out software updates, fix bugs, security issues or make needed improvements
9
Q
Waterfall Lifecycle
A
- Stages are completed in sequence from start to finish
- Analysis stage includes feasibility study, evaluate feasibility using “TELOS”
- If change needs to be made, all levels between current and stage where change needed, must be revisited
- Model is inflexible, unsuitable to projects with changing requirements
- Users have little input, only involved at beginning and end of lifecycle (analysis and evaluation stage)
10
Q
TELOS
A
- Technical, is project possible considering tech available and accessible
- Economic, can project be financed in short term and long term
- Legal, can project be solved within law
- Operational, can project be successfully implemented and maintained
- Scheduling, can project be completed given the time available
11
Q
Agile methodologies
A
- Collection of methodologies, aim to improve flexibility of software development
- Adapt to changes in user requirements faster, easier to make improvements/changes to software
- Problem broken down into sections, developed in parallel
- Design and analysis stage occur together, different sections of software can be at different stages of development
- Working prototype delivered early on, built upon, improved in iterative manner
- New prototypes delivered regularly throughout development cycle
- Less focus on documentation, more priority given to user satisfaction
12
Q
Extreme Programming (XP)
A
- Agile model, development team consists of pair of programmers and a representative end-user
- Model built on “user stories”, system requirements specified by end-user, used when designing program
- Aim of paired programming to produce high quality code (written by one, critiqued by other, improved as it is written)
- Aim is quality is not compromised, programmers work normal hours (40 hours a week)
- Each iteration generates a working version of program which could function as the final product
- Hard to produce high quality documentation (less of priority), programmers must communicate effectively
13
Q
Spiral model
A
- 4 key stages, focus on effectively managing risk-heavy projects
- Analysing system requirements
- Pinpointing risks
- Development, testing, implementation
- Evaluation to inform next iteration
- If project found to be too risky at any point it is terminated
- Hiring risk assessors to analyse risks can be expensive
- This methodology only suited for very large-scale projects
14
Q
Rapid Application Development (RAD)
A
- Iterative methodology, uses partially functioning prototypes, these are continually built upon
- User requirements gathered using focus groups, used to develop “incomplete” version of solution
- Given to user to trial, user feedback gathered, used to generate improved prototype
- Continues till prototype matches requirements of end-users (Becomes final product at this point)
- RAD commonly used where users’ requirements unclear/incomplete at start
- Changing requirements over course of project, changes made to code may be inefficient
15
Q
Writing and Following Algorithms
A
- Algorithm is a set of instructions used to solve a problem; good ones have key qualities listed below
- Inputs clearly defined (What is valid and invalid)
- Always produces valid output for any defined input
- Able to deal with invalid inputs
- Always reaches a stopping condition
- Well documented for reference
- Well-commented so that modifications can easily be made