OCR A Level CS 1.3: Software Development and Types of Programming

studied byStudied by 5 people
0.0(0)
learn
LearnA personalized and smart learning plan
exam
Practice TestTake a test on your terms and definitions
spaced repetition
Spaced RepetitionScientifically backed study method
heart puzzle
Matching GameHow quick can you match all your cards?
flashcards
FlashcardsStudy terms and definitions

1 / 35

flashcard set

Earn XP

36 Terms

1

Waterfall Methodology

The waterfall model is based on a series of stages which are completed in sequence, from start to finish. It is a linear model in which each stage is separate and is completed and documented before the next stage begins.

Benefits:

Straightforward to manage

Clearly documented

Drawbacks:

Lack of flexibility so unsuitable to projects with changing requirements.

No risk analysis

Limited user involvement after the analysis stage.

Works well for projects in which the requirements are clearly understood. Used for static, low-risk projects which need little user input, such as a piece of general-purpose software

New cards
2

Agile Methodology

Refers to a collection of methodologies which aim to improve the flexibility of software development and adapt to changes in user requirements faster.

A working prototype is delivered early on and are built upon and improved in an iterative manner; new prototypes are delivered regularly throughout the course of the development cycle.

Benefits:

Working software is delivered frequently, often in weeks rather than months.

Fast completion and installation of more and more parts of the project lead to customer satisfaction.

Produces high quality code

Flexible to changing requirements

Regular user input

Drawbacks:

Poor documentation

Requires consistent interaction between user and programmer

Changes in requirements after the Analysis stage are difficult to include and may mean repeating several stages in the development process.

Good for small software projects where at least some of the functions need to be implemented quickly. Used for small to medium projects with unclear initial requirements.

New cards
3

Spiral Methodology

The spiral model is built on four key stages with the focus of effectively managing risk-heavy projects: Analysis, Risk Assessment, Testing, Evaluation to inform the next iteration. If the project is found to be too risky at any point, the project is terminated.

Benefits:

Thorough risk-analysis and mitigation

Caters to changing user needs

Produces prototypes throughout: each version of the software builds on the previous version, adding functionality each time.

Drawbacks:

Expensive to hire risk assessors

Lack of focus on code efficiency

High costs due to constant prototyping

The finished product takes longer to develop than other models because of the time consuming process of getting customer feedback and making amendments.

Used for large, risk-intensive projects with a high budget.

New cards
4

Rapid Application Development (RAD) Methodology

RAD is an iterative methodology which uses partially functioning prototypes which are continually built-upon. User requirements are initially gathered using focus groups and used to develop prototypes which is given to the user to trial. User feedback is then used to generate the next, improved prototype and this continues until the prototype matches the requirements of the end-users at which point it becomes the final product.

Benefits:

Caters to changing user requirements

Highly usable finished product

Focus on core features, reducing development time

Drawbacks:

Poorer quality documentation

Fast pace may reduce code quality

As requirements change over the course of the project, additions and changes made to the code may be inefficient.

Used for small to medium, low-budget projects with short time-frames; commonly used where user requirements are incomplete or unclear at the start.

New cards
5

Extreme Programming (XP) Methodology

An agile model in which the development team consists of a pair of programmers alongside a representative end-user. Model is built on ‘user stories’: system requirements are specified by the end-user and used when designing the program.

Benefits:

Produces high quality code, as the code is written by one person and critiqued by the other so is improved as it is written.

Constant user involvement means high usability

Quality is not compromised.

Each iteration through the cycle generates what is called a ‘working version’ of the program which means it could function as the final product.

Drawbacks:

High cost of two people working on one project

In order for XP to be effective, programmers must communicate effectively: teamwork is essential

End-user may not be able to be present

The iterative nature of development means that it is hard to produce high quality documentation, which is less of a priority.

Used for small to medium projects with unclear initial requirements requiring excellent usability.

New cards
6

Prototype

An ‘incomplete’ version of the solution/ project that may not have full functionality, but is given to the user for feedback.

New cards
7

Programming Paradigm

A way to conceptualize and structure the implementation of a computer program;  an approach to solve problems. 

 

It is a style/way/approach to programming. Some languages support only one paradigm (e.g. Small Basic supports procedural programming; Haskell supports functional programming), and others support multiple paradigms (e.g. Python). 

New cards
8

Why is there a need for differing paradigms?

For different interpretations/approaches for solutions. 

Different types of problems require different languages, and different solutions. 

New cards
9

Imperative languages

A type of high level programming languages. e.g. Procedural, OOP 

C++, Python, Java, Visual Basic 

Imperative languages focus on describing how a program operates step by step. Imperative languages use statements that change a program's state in the form of sequence, selection, iteration etc. 

They consist of commands for a computer to perform and focus on describing how a program operates

New cards
10

Declarative languages

A type of high level programming languages. e.g. SQL, Functional 

Declarative languages focus on what the program should accomplish rather than how to accomplish it. Not covered in OCR spec. 

New cards
11

Difference between procedures and functions

Procedures don’t always return values, functions do. 

Function: performs a task and returns a value

Procedure: performs a task buts does not return a value

New cards
12

Class

A class forms a blueprint that we can use to create an object, build objects from/ base objects on.

New cards
13

Object

Objects are created from classes: it is a representation of a real-world entity. 

New cards
14

Attribute

An attribute is a data element that represents the quality or state of the class or object: they are defined within a class and can be accessed and modified by both the class and its objects. 

New cards
15

Method

Methods are functions associated with objects or classes that define the behaviour and actions that objects can perform. There are two main types of methods: a function (performs a task and returns a value); a procedure (performs a task buts does not return a value). 

New cards
16

Instance

An instance is an individual object; a specific realization of any object. 

New cards
17

Inheritance

In inheritance, the subclass inherits all of the attributes and methods of the parent class. 

The subclass can have its own attributes and methods. 

New cards
18

Encapsulation

Encapsulation refers to the restriction of acesss to certain methods and attributes of a class e.g private and public variables

Could also refer to bundling of data, along with the methods that operate on that data, into a single unit; the process of combining methods and procedures to form an object in object-oriented programming.  

Attributes of an object are encapsulated within a class. 

New cards
19

Polymorphism

Polymorphism is when a subclass alters its inherited methods in two ways: by overloading or overriding;  a feature of object-oriented programming languages that allows a specific routine to use variables of different types at different times. 

Overloading is when a method is defined in the subclass that has the same name, but different arguments to a method defined in the superclass. Overriding is when a method is redefined in the subclass with the same name and same arguments. 

Objects can be created from the same class, but can differ individually. 

New cards
20

Assembly Language Instruction Set

knowt flashcard image
New cards
21

Addressing Modes

Immediate: The operand is the actual value.

Direct: The operand refers to the address of the value to be operated on.

Indirect: The operand refers to the location holding the address of the value to be operated on.

Indexed: holds the index of the location holding the address of the value to be operated on.

New cards
22

How is the accumulator used when BRP is executed?

BRP checks if the value currently in the accumulator is positive or zero, and if it is, then jumps to specified location/ BRANCH carried out, and if not, continues going though the instructions.

New cards
23

Opcode

The actual operation to be performed/ part of the instruction that tells the computer what should be done.

New cards
24

Operand

The value of the actual data or the value of the memory location/address.

New cards
25

Software Development Life Cycle Stage 1: Analysis

Stakeholders state what they require from the finished product. This information is used to clearly define the problem and the system requirements.

Requirements may be defined by:

Analysing strengths and weaknesses with current way this problem is being solved

Considering types of data involved including inputs, outputs, stored data and amount of data

New cards
26

Software Development Life Cycle Stage 2: Design

The different aspects of the new system are designed, such as:

Inputs: volume, methods, frequency

Outputs: volume, methods, frequency

Security features: level required, access levels

Hardware set-up: compatibility

User interface: menus, accessibility, navigation

A test plan may also be designed at this stage.

New cards
27

Software Development Life Cycle Stage 3: Development

New cards
28

Software Development Life Cycle Stage 4: Testing

New cards
29

Software Development Life Cycle Stage 5: Implementation

New cards
30

Software Development Life Cycle Stage 6: Evaluation

New cards
31

Software Development Life Cycle Stage 7: Maintenance

New cards
32

Key qualities of a good algorithm

Inputs must be clearly defined: what is valid and what is invalid?

Must always produce a valid output for any defined input

Must be able to deal with invalid inputs

Must always reach a stopping condition

Must be well-documented for reference

Must be well-commented so modifications can easily be made

New cards
33

Alpha testing

Small group of testers, limited internal employees and close friends/ family

Program is in almost-finished state. Testing load balancing and multiple hardware compatibility

New cards
34

Beta testing

Large group of testers- wider community

Testing for maintenance of code in different hardware types

New cards
35

White box testing

Testing the algorithms in the code and ensuring all parts of the algorithm function as intended.

Focuses on identifying and testing all possible paths of execution through a program.

Checks overall efficiency of code.

New cards
36

Black box testing

Testing the inputs and expected outputs; does not look at code.

Code efficiency is not as important.

New cards
robot