1. 2. 3 Software Development Flashcards

You may prefer our related Brainscape-certified 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Development

A
  • Design is used to split project into individual, self-contained modules
  • These modules are allocated to teams for programming
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Implementation

A

Once testing stage used to make appropriate changes to software, its installed onto users’ systems

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Merits, Drawbacks and Uses of programming methodologies

A

Refer to Image in Word Document