Chapter 3 Flashcards
What is the name given to the activities that revolve around a new software product?
Application Lifecycle Management (ALM)
What are the stages of the Application Lifecycle Management?
Requirements Design Development Testing Maintenance
What is the purpose of the requirements analysis stage?
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.
Who will oversee the requirements analysis stage?
Business analyst is responsible for analyzing business need and converting it into requirements.
What is the purpose of the design process stage?
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.
Who is involved in the design process stage?
Architect will identify components , services etc and how they will interact with each other.
User-experience designer - designs ui, navigation etc.
What is the purpose of the software development stage?
This is where the design is implemented by creating software code, databases etc.
Who is involved in the software development stage?
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.
What is the purpose of the software testing phase?
Software testing verifies that implementations matches requirements, used to assure the quality of final product.
What is the release management stage of the ALM?
Release Management manages the deployment, delivery and support of the software release.
Who is involved in the release management stage?
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.
What is the difference between functional and nonfunctional testing?
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.
What is black-box testing?
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.
What is white-box testing?
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.
What are the 5 testing levels that happen throughout the ALM?
- Unit testing
- Integration testing
- System testing
- Acceptance testing
- Regression testing
What is unit testing?
- 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.
What is integration testing?
- 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.
What is system testing?
- System testing - overall system test carried out once all components have been completed and tested with any external systems.
What is acceptance testing?
- 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.
What is regression testing?
- Regression testing - this is used to check if any fixes to bugs found during testing havent broken anything that was previously working.
What are data structures?
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.
What is an array?
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.
What happens in the code below?
int[ ] numbers;
Creates an array variable called numbers. In memory the statement sets the variable to null as it is not initialised.
What happens in the code below?
numbers = new int[4];
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).
What data type is an array?
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.
What is a multidimensional array?
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).