1.2.3 Software Development

0.0(0)
studied byStudied by 2 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/49

flashcard set

Earn XP

Description and Tags

COMPLETE

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

50 Terms

1
New cards

What is a software development lifecycle (SDLC)?

distinct phases programmers work through when developing a solution to a problem for a computer system

2
New cards

What is a methodology?

  • arrangement of phases

  • how programmers move from one pase to another

3
New cards

What are the key steps when creating a software?

  • feasibility study

  • requirements specification

  • testing

  • documentation

4
New cards

What is the purpose of a feasibility study?

  • carry out initial enquiries

    • any reasons why the new system may not be acceptable (before production)

    • determine whether the problem can be solved

  • saves time & money being wasted on a project that is likely to fail

5
New cards

What do analysts consider during a feasibility study?

  • technical (any hardware/software available to implement the solution?)

  • economic/cost benefit analysis (possible to run economically?)

  • social (is effect on humans involved too extreme to be socially acceptable/environmentally sound?)

  • effect on company’s practices & workforce (enough operational skill in workforce to be capable of running new system?)

  • expected effect on customer (customer not impressed, maybe not point)

  • legal/ethical (can system solve problem within the law)

  • time available (time scale acceptable for proposed system to be possible)

6
New cards

What is a requirements specification?

  • specification document developed between client & software developers

  • creates understanding of problem & presents solutions

7
New cards

What does the requirements specification ambiguously state?

everything the new system is expected to do

8
New cards

What does the requirements specification contain?

  • input requirements

  • output requirements

  • processing requirements

  • clients agreement to requirements

  • hardware requirements

  • software requirements

9
New cards

What is the purpose of testing?

ensures the project works correctly

10
New cards

What are the 4 different types of testing?

  • black box

  • white box

  • alpha

  • beta

11
New cards

What is black box testing?

  • tests possible predefined sets of inputs to see if they produce expected output according to design

  • w/o considering how the program works

  • need to test all possible types of situations w/o understanding/looking at the code

12
New cards

What is white box testing?

  • understands complete structure & logic of the program

  • uses source code to test the actual steps of the algorithms

  • make sure all parts work as intended

    • check every possible condition statement & path through algorithm

    • using dry runs & trace tables

13
New cards

What is alpha testing?

  • done by programmers, developers & employees within the software company

    • play role of user during development to try find bugs in program

  • may use emulators rather than actual hardware/software

14
New cards

What is beta testing?

  • beta version: pre - released test version of program

  • nearly complete + tested by programmers involved

  • given to a group of third party users to use as intended & test under normal operating conditions

  • report any errors/bugs in a program which programmer overlooked

    • e.g. functions that don’t work

    • incompatibility issues w/ other software/hardware

  • may report on desirable improvements

  • programmer tries to replicate & then address the errors find

    • may release updates,fixes,workarounds to beta testers

  • this is so the final version is more robust

15
New cards

What is the purpose of user documentation?

gives instruction to ensure software users can successfully use the system to produce the desired result

16
New cards

What may user documentation contain?

  • may contain info like:

    • descriptions of required I/O procedures

    • sample outputs from given inputs

    • using processing tools

    • instructions to operate the system

    • backing up & archiving procedures

    • file searching & maintenance

    • simple maintenance procedures (e.g. FAQs,troubleshooting, error messages & their meaning,glossary etc.)

17
New cards

What is the purpose of technical documentation?

describes and explains how the system works

18
New cards

Who is the technical documentation useful to?

a technician who may need to maintain & further develop/alter the system in the future

19
New cards

What information may the technical document include?

  • DFDs showing the flow of data through the system (Data Flow Diagram)

  • system flowcharts showing how parts of the system interrelate

  • flowcharts showing the operations involved in the algorithm

  • ERDs showing how data tables relate to each other (Entity Relationship Diagram)

20
New cards

What are the 5 different methodologies?

  • Waterfall Lifecycle

  • Agile Development Methodologies

  • Extreme Programming (XP)

  • Spiral Model

  • Rapid Application Development (RAD)

21
New cards

What are methodologies used for?

organising the development of a piece of software

22
New cards

Describe a waterfall lifecycle

a series of linear stages presented in an order where it is possible to return & re - evaluate any stage

23
New cards

What does a waterfall lifecycle consist of?

delete

24
New cards

What needs to be done in order for a waterfall lifecycle to create a working system?

all stages must be completed

25
New cards

What are the results from each stage of the waterfall lifecycle used for?

used to feed info & inform the work on the next stage

26
New cards

Is it possible return to re-evaluate one or more previous stages in a waterfall lifecycle?

yes

27
New cards

What amendments may be made when returning to previous stages in a waterfall lifecycle?

  • collecting more info/data

  • check on data that has been collected in order to improve the solution

28
New cards

What must happen after returning from previous stages in a waterfall lifecycle?

all intervening steps must be revisited

29
New cards

What are the stages included in a waterfall lifecycle?

  1. Feasibility study

  2. Analysis

  3. Design

  4. Implementation/Coding

  5. Testing

  6. Installation

  7. Documentation

  8. Evaluation

  9. Maintenance

30
New cards

What are the advantages of a waterfall life cycle?

  • suits large scale projects (w/ stable base requirements)

  • requirements in early stages - focus on them for rest of project

  • focus on end user at start (may consult user throughout)

  • development phase focuses on code that meets requirements/design

  • ideal for inexperienced project teams & where requirements are defined

  • quality documentation w/ reliability & maintainability of developed software

  • progress of system development easily measurable

  • project progresses forward w/ slight movement backward

31
New cards

What are disadvantages of waterfall life cycles?

  • lifecycle cannot respond easily to change in requirements (often at the cost of time and money)

  • inflexible & limits changing requirements (dependent on clear definition of requirements)

  • excessive documentation - keeping it updated as project progresses = time consuming

  • missing system components discovered during design & coding

  • system performance cannot be tested until the system is almost full coded

32
New cards

What are agile development methodologies?

group of methods designed to cope w/ changing requirements by producing software in an iterative manner

33
New cards

What happens when a user realises they have't fully considered a requirement in agile development methodology?

they can have it added in a future iteration

34
New cards

What is an example of agile development?

extreme programming

35
New cards

What does it mean when we say the agile development methodology is iterative?

  • the program is coded,tested and improved repeatedly

  • iterations usually 1-4 weeks long

36
New cards

During extreme programming who becomes a part of the team?

a representative of the customer

37
New cards

What does the representative of the customer do in extreme programming?

  • help decide “user story“ (equivalent to requirements)

  • decide what tests will be used - to ensure they’ve been correctly implemented

  • answer any questions about any problem areas the programmers might have

38
New cards

What are advantages of extreme programming?

  • new requirements can be adopted throughout

  • end user is integral throughout

  • fair & strict programming standards used - ensure code in each iteration is well-tested, robust + good enough quality for final product

  • code created quickly & modules become available for use by the client as they are complete

39
New cards

What are disadvantages of extreme programming?

  • client has to ensure that they are represented on the development team to accept completed code & discuss any potential changes (client responsibility)

  • emphasis on coding rather than design

    • results in lack of documentation making it unsuitable for larger projects

40
New cards

How does the spiral model progress?

by evaluating and dealing with risks

41
New cards

Describe how the spiral model works

  • analyst collects data & proceeds through the stages until the evaluate stage

  • after evaluation - if modification needed, data collection will happen again to modify the results

  • different stages refined each time spiral is worked through

  • iterates until the project is complete

42
New cards

What is the spiral model usually used for?

  • mission critical projects

  • projects where risks are involved

  • games development

43
New cards

What are the advantages spiral model?

  • issues addressed early in project development - riskiest parts of project identified & dealt w/ first

  • software prototype created early in life cycle & refined w/ each spiral iteration

  • suitable for projects with changing requirements

44
New cards

What are disadvantages of the spiral model?

  • not suitable for large projects as requirements constantly changing

  • highly skilled development team needed to perform risk analysis

  • high development costs due to number of prototypes created + increased customer collaboration

  • hard to give clients solid deadline

45
New cards

What is Rapid Application Development (RAD) ?

method for designing software where a mock - up/prototype system of program designed & produced w/ reduced functionality to a set deadline

46
New cards

What happens in RAD when the mock-up/prototype is produced?

  • tested & evaluated to obtain feedback from end users to suggest improvements

  • results used to inform & refine design of next prototype

  • process cycle is repeated w/ each iteration improving program until final, fully functional version is produced

47
New cards

Where is RAD used?

  • where requirements of the system are not well defined

48
New cards

What is the development team authorised to do in RAD?

to make design decisions w/o need for detailed consultation w/ senior managers

49
New cards

What are the advantages of RAD?

  • end user can see working prototype early in project

  • end user involved in design & can change requirements - influence direction of program

  • concentration on essential elements needed for user w/ emphasis on fast completion

50
New cards

Disadvantages of RAD?

  • emphasis on speed of development may impact overall system quality

  • poor overall design as it wasn’t well defined at the start

  • not suitable for large projects