Chapter 3 Flashcards

1
Q

What is the name given to the activities that revolve around a new software product?

A

Application Lifecycle Management (ALM)

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

What are the stages of the Application Lifecycle Management?

A
Requirements
Design
Development
Testing
Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is the purpose of the requirements analysis stage?

A

Determines the detailed business requirements for the new software system.

Important stage - precise, complete, well-documented requirements are critical to the success of the project.

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

Who will oversee the requirements analysis stage?

A

Business analyst is responsible for analyzing business need and converting it into requirements.

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

What is the purpose of the design process stage?

A

The design process creates plans, models and architecture for how the software will be implemented.

Output of this process is technical models and specifications to guide the developers and others during development phase.

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

Who is involved in the design process stage?

A

Architect will identify components , services etc and how they will interact with each other.

User-experience designer - designs ui, navigation etc.

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

What is the purpose of the software development stage?

A

This is where the design is implemented by creating software code, databases etc.

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

Who is involved in the software development stage?

A

Developers - write code based on the requirements of the business analyst, architecture of the architect and user experience laid by u-e designer.

Database administrator (DBA) - implement and maintain database - plan for integrity, security and speed.

Technical writers - system manuals and help files.

Content developers - Develop content for system e.g. movie review website not enough to launch need to have and renew content.

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

What is the purpose of the software testing phase?

A

Software testing verifies that implementations matches requirements, used to assure the quality of final product.

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

What is the release management stage of the ALM?

A

Release Management manages the deployment, delivery and support of the software release.

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

Who is involved in the release management stage?

A

Release Manager - co-ordinates various teams and units to ensure timely release of software.

Operation staff - make sure system delivered as promised e.g. burning and shipping DVD’s.

Technical support staff - interact with customers and help solve problems with system, can gather valuable info about user experience of the software and possible updates.

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

What is the difference between functional and nonfunctional testing?

A

Functional testing - tests to see if software meets requirements set out.

Nonfunctional testing - not looking at core functions but other requirements such as usability, security.

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

What is black-box testing?

A

Black-box testing - focuses on inputs and outputs without any knowledge of internal workings, usually used to check if meets requirements. Used to test as if tester was an end user.

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

What is white-box testing?

A

White-box testing - testers use knowledge of systems and have access to the source code, used to make sure methods / functions have test cases available.

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

What are the 5 testing levels that happen throughout the ALM?

A
  1. Unit testing
  2. Integration testing
  3. System testing
  4. Acceptance testing
  5. Regression testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is unit testing?

A
  1. Unit testing - verifies functionality of a unit of code e.g method returns correct value, is an example of white-box testing and is usually done by the developer.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What is integration testing?

A
  1. Integration testing - assess the interface between components, best done incrementally as components are developed e.g if component relies on data from external source can ensure this is working with the external application.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What is system testing?

A
  1. System testing - overall system test carried out once all components have been completed and tested with any external systems.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What is acceptance testing?

A
  1. Acceptance testing - made up of alpha and beta phases, alpha usually a small number of customers to give them a look at it and gather feedback, but will be missing some features and performance. Beta phase will be to a wider audience and will be a version closer to the final product.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What is regression testing?

A
  1. Regression testing - this is used to check if any fixes to bugs found during testing havent broken anything that was previously working.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What are data structures?

A

Data Structures are techniques for organising and storing data in computer memory.

How data is stored affects how it is retrieved and manipulated.

Data structures are the building block for computer programs.

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

What is an array?

A

An array is a collection of items of a similar data type that is stored in contiguous (next to each other) memory locations and is zero based.

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

What happens in the code below?

int[ ] numbers;

A

Creates an array variable called numbers. In memory the statement sets the variable to null as it is not initialised.

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

What happens in the code below?

numbers = new int[4];

A

The statement initialises the array and assigns an area in memory heap to store four integer variables, all set to 0 (default value of an integer).

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

What data type is an array?

A

The variable that holds the array acts as a reference to each memory location assigned to the array ie first item is accessed using numbers[0], second [1] etc.

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

What is a multidimensional array?

A

Multidimensional array, can be thought as
a cell that can be addressed by row and column e.g. numbers [2,3] would refer to the third row (2) and fourth column (3).

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

What are the common operations of an array?

A

Common operations of an array are allocation and access.

You first allocate an array by creating and initializing it.

Once allocated you can access any array element in any order using its index.

28
Q

What are the benefits of an array?

A

Reading and writing is fast as laid out in contiguous block.

Works best in predetermined number of items of a similar type.

29
Q

What are the limitations of an array?

A

Arrays are limited by homogeneity and fixed size. Can re-size but requires reallocation in memory and is time consuming.

Works best in predetermined number of items of similar type.

Can use an Arraylist to allow holding of different data types and dynamically expand but isn’t as fast an array.

30
Q

What is an Arraylist?

A

An arraylist is similar to an array but differs un that it can hold different data types and dynamically expand. However it isn’t as fast an array.

31
Q

What is a queue?

A

A queue is a collection of items in which the first item added is the first to be removed.

Items are processed in the order they are added, items are added to the end and removed from the front, first-in, first-out (FIFO).

Capacity is number of items a queue can hold.

32
Q

How is a queue implemented?

A

Implemented as a circular array of objects that avoids excessive reallocation of memory.

Head index points to first item, tail index to last item. Doesn’t matter what location the queue starts at as long as know where head and tail are. Item is removed head moves to next item in queue, when added, item is always added to end of queue and tail points to new item.

33
Q

What are the common operations of a queue?

A

Enqueue - checks to see if enough capacity in the queue to add new item, if there is then added to tail of queue, if not then the array is reallocated by a growth factor and new item added to end of queue.

Dequeue - removes element at head of queue and sets head to point to next element.
Peek - allows look at item at head position without removing it.

Contains - determines whether a particular item exists in the queue - boolean returns T/F.

34
Q

What are the benefits of a queue?

A

Special purpose data structure that processes items in order they are received eg print spooler, messaging system.

Can handle different data types (heterogeneous).

As items are added capacity is automatically increased.

35
Q

What are the limitations of a queue?

A

Cannot randomly access elements, can add and remove items for the queue.

36
Q

What is a stack?

A

A stack is a collection of items in which the last item added to the collection is the first one to be removed. Opposite of queue, it is a last-in, first-out (LIFO) structure eg. stack of dinner plates, last added is the first to be removed.

Also represented as a circular structure, tail is called top of stack and head the bottom. New items added to top of stack and removed from top of stack.

37
Q

What are the common operations of a stack?

A

Push - checks to see if enough capacity to add item, if available added to top, if not array is reallocated by a prespecified growth factor and new item added.

Pop - removes top item from stack and the points to next item.

Peek - allows look at current item at top of stack without removing it.

Contains - determines whether a certain item exists in the stack.

38
Q

What are the benefits of a stack?

A

It is a special purpose data structure that is used when need to process items in last in first out order.

Useful in runtime memory management, expression evaluation, method call-tracking.

39
Q

What are the limitations of a stack?

A

Cannot access elements randomly.

Push and pop actually remove elements from a stack.

40
Q

What is a linked list?

A

Collection of nodes arranged so that each node contains a link to the next node in the sequence.

Each node contains 2 pieces of information: the data for that node and a link to the next node.

First node is the head node. The final link in the linked list is a null value. The tail refers to the list pointed to by the head node.

41
Q

What is a doubly linked list?

A

Doubly linked list is a list that each node contains 2 links.

This allows doubly linked list to have a forward and backward reference to the nodes either side of it, making it easy to traverse in either direction.

42
Q

What is a circular linked list?

A

Circular linked list in which the last node points back to first to create a circle.

43
Q

What are the common operations of linked lists?

A

Add - inserting item is a matter of changing links.

Remove - similar to add operation is a matter of changing links.

Find - finds a node with a given value in the linked list, generally starts at head node, checks to see if value matches if not continues to next linked node until value is matched or a null is encountered.

44
Q

What is the performance and usage of a linked list?

A

Does not allow random access to its items and is slow at retrieving data. Extremely fast at adding and removing items. Have no maximum capacity after which they need to be reallocated.

If need to frequently add or delete data then linked list usually best option.

If need to retrieve data with little addition or deletion then use an array.

45
Q

What is a sorting algorithm?

A

A sorting algorithm arranges items in a list in a particular order. Can help with understanding, analyzing and comparing different problem solving methods.

46
Q

What is BubbleSort?

A

BubbleSort uses comparison and swap operations to arrange elements in list in correct order.

BubbleSort uses a number of passes to sort data by comparing each corresponding item and swaps them depending on which is higher.

BubbbleSort will always be sorted in at most 1 less pass than the number of items in an array e.g. array of 5 items, BubbleSort will carry out maximum of 4 passes.

47
Q

What is QuickSort?

A

QuickSort - uses partitioning and comparison operations to arrange elements in correct order.

List with one or no elements is always, by definition, sorted.

a) For larger lists pick a pivot element then partition the list to create lists where elements smaller than pivot element go to the left and those larger go to the right.
b) Repeat a) for the smaller lists until the original data to be sorted is divided into 1 item lists, these lists are then combined to give a single, sorted list.

48
Q

The product that you are developing is not yet finished, but you would like to release the product to a wider customer audience for feedback and testing. Under which of the following testing levels would this activity fall?

a. Integration testing
b. System testing
c. Acceptance testing
d. Regression testing

A

c. Acceptance testing

49
Q

The testers of a software application have access to its source code and they plan to write test cases that ensure that the methods return correct values. Which of the following testing levels will this activity fall under?

a. Integration testing
b. Unit testing
c. Alpha testing
d. Beta testing

A

b. Unit testing

50
Q

Which of the following data structures allows direct access to all of its items?

a. Array
b. Stack
c. Queue
d. Linked list

A

a. Array

51
Q

Which of the following activities in the application lifecycle is used by an architect to create the technical blueprint of a system?

a. Requirements analysis
b. Design
c. Development
d. Maintenance

A

b. Design

52
Q

In your application, you are using a queue data structure to manipulate information. You need to find which data item will be processed next, but you don’t want to actually process that data item yet. Which of the following queue operations will you use?

a. Enqueue
b. Dequeue
c. Peek
d. Contains

A

c. Peek

53
Q

You are developing a program that requires you to track the method calls. You can only invoke one method at a time. However, a method call may in turn invoke other methods. When a method ends, it returns control back to the calling method. Which data structure should you use to keep track of these method calls?

a. Queue
b. Array
c. Linked list
d. Stack

A

d. Stack

54
Q

You are developing a program that simulates a job queue. Often, the jobs come faster than you can process them, and in such case, the jobs wait for their turn to be processed. You need to make sure that the job that arrived first is the first to be processed as well. Which of the following data structures is best suited for this requirement?

a. Array
b. Queue
c. Linked list
d. Stack

A

b. Queue

55
Q
You write the following code in a program:
int[] numbers = {2, 3, 1, 4};
numbers[2] = 4;
	What will be the contents of the array after the second statement is executed?
a.	{2, 4, 1, 4}
b.	{2, 3, 4, 4}
c.	{2, 4, 1, 2}
d.	{4, 3, 1, 4}
A

b. {2, 3, 4, 4}

56
Q

You are developing a program that performs frequent insert and delete operations on the data. Your requirement also dictates the capability to access previous and next records when the user presses the previous or next button. Which of the following data structures will best suit your requirements?

a. Array
b. Circular linked list
c. Linked list
d. Doubly linked list

A

d. Doubly linked list

57
Q

You are developing a program that performs frequent insert and delete operations on the data. The data items need to be accessed like a stack with last-in, first-out functionality. Your solution must require as little memory as possible. Which of the following data structures will best suit these requirements?

a. Array
b. Circular linked list
c. Linked list
d. Doubly linked list

A

c. Linked list

58
Q

In ________ testing, testers use their knowledge of system internals to assess the system.

A

white-box

59
Q

Usually, with every new fix, software testers run a battery of ________ to make sure that all functionality that was known to be working is still working.

A

regression tests

60
Q

The BubbleSort algorithm uses a series of ________ and ________ operations to arrange the elements of a list in the correct order.

A

comparison and swap

61
Q

A(n) ________ is a collection of items in which the last item added to the collection is the first one to be removed.

A

stack

62
Q

__________ is the process of determining the detailed business requirements for a new software system.

A

Requirements analysis

63
Q

A linked list is a collection of nodes such that each node contains a(n) ________ to the next node in the sequence.

A

reference (or link)

64
Q

The ________ operation adds an item to a queue, whereas the ________ operation removes an item from a queue.

A

enqueue, dequeue

65
Q

The QuickSort algorithm uses ________ and comparison operations to arrange the elements of a list in the correct order.

A

partitioning

66
Q

A(n) __________ is responsible for analyzing business needs and converting them into requirements that can be executed by the development team.

A

business analyst

67
Q

Alpha testing and beta testing both are part of the _______ testing of a system.

A

acceptance