Software development Flashcards

1
Q

What are the 6 stages of the software development life cycle?

A
  1. Planning
  2. Analysis/design
  3. Development
  4. Testing
  5. Deployment and maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What documentation is associated with the planning stage of the SDLC?

A
  1. Project plan- aims/goals, resources, timescales, constraints, feasibility study, Risk, Gantt chart, sign off
  2. Options appraisal- Available options, cost/benefit, recommendation, sign off
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is included in the TELOS method of feasibility?

A
Technical
Economic
Legal
Operational
Schedule
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What documentation is associated with the analysis/design stage of the SDLC?

A
  1. Requirements specification
    a. User stories- As a I would like so that
    b. UML (use case)
    c. Requirements- Functional/non-functional
    d. constraints
    e. sign off
  2. Software design document
    a. IEEE recommend splitting entire system into a series of view points represented by UML
    i. context, functional, information, development, deployment
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is the difference between functional and non-functional requirements?

A
  1. Functional- Describes a behaviour or a function of the software (what you want it to do)
  2. How the system should behave in terms of:
    a. Accessibility
    b. Availability
    c. Compatibility
    d. Extensibility
    e. Risk
    f. Support

Sign off!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is UML?

A

Unified modelling language

Stable common design language that can be used to model applications/systems

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are 6 common UML diagrams?

A
  1. Use case- illustrate functional require (actors)
  2. Class- how people and things interact
  3. Sequence- Detailed flow (between systems) for a specific use case
  4. Activity- Very high level procedural flow of system
  5. Component- Physical components of the system
  6. Deployment- How hardware will be deployed and how these components interact with each other.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are 3 benefits of using UML?

A
  1. Readability- greater communication between developers and users
  2. Transparency- audit trail of design to development
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What documentation is involved in the development stage of the SDLC?

A

Error/issue log

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What documentation is involved in the testing stage of the SDLC?

A
  1. Testing specification (In
    a. test plan
    b. design (pass/fail criteria)
    c. Test report
    d. sign off
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What documentation is involved in the deployment and maintenance stage of the SDLC?

A
  1. User manual
  2. SOP
  3. Change request form
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Name 2 project management methodologies?

A

Prince2- PRoject IN Controlled Environments

a. Generic management methodology that is used for many projects
b. Split into 3 themes- What? Why? and How?

SSADM- Structured systems analysis and design method

a. Used to design information system 
b. Waterfall model --> document heavy
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are software development methodologies? (Name 2)

A

A method of implementing the stages of the SDLC

  1. Waterfall
  2. Agile
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are the stages of the waterfall software development life cycle?

A
  1. Requirements
  2. Analysis
  3. Design
  4. Implementation
  5. Testing
  6. Deployment
  7. Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are the advantages and disadvantages of the waterfall method of developing software?

A

Advantages:

  1. Ease of use
  2. Structure
  3. Documentation (important clinically and for UKAS accreditation)

Disadvantages

  1. Higher risk (Rigid- errors earlier on in project)
  2. Front heavy (Needs very clear requirements- or time is wasted)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is the Agile software methodology?

A

Method of software development that aims to assist teams in responding the unpredictability of developing software

Used iterative development process known as sprints:
a. Plan, build, test, review…

Large involvement of the users of the system

17
Q

What are the pros and cons of the Agile methodology?

A

Pro-

  1. Adaptive- responds to change
  2. Allows for direct communication to maintain transparency
  3. Improved quality by identifying expectation mismatches early

Con-

  1. Focuses on working with software and lacks documentation efficiency
  2. Changes of getting off-track as outcomes are not clear and requirements can change
18
Q

What is requirements gathering?

A

The process of generating a list of requirements from various stakeholders that will be using the software you are creating- usually an interview- can be questionnaire

19
Q

What is a constraint?

A

A constraint is a restriction on the degree of freedom you have in providing a solution. e.g. Limited development resources or decisions from senior management (e.g. use Python)

20
Q

Name two testing methods

A
  1. Blackbox method- testing not aware of design or structure of the software e.g. UAT
  2. White box- tester knows the internal structure e.g. unit or integration
21
Q

What are the 4 levels of testing?

A
  1. Unit testing individual components (e.g. function or class) of software (input/output)
  2. Integration- combines individual units and tests they interact as expected
  3. System testing- Tests that the product created matches the requirements set by the user (both functional and non-functional)
  4. UAT - Evaluates the system compliance with all the requirements set by the user within the environment they will be using the software. End point
22
Q

What is deployment?

A

All activities that make software available for use
1. installation- clone from github and complete configuration steps e.g. link to webserver

Involves making a release and tagging this with a numerical tag

23
Q

what is Alpha and Beta software?

A
  1. Alpha- (pre-release- during testing)

2. Beta- (pre-release- major bugs solved, usability testing stage)