Y3S2 Flashcards
ST: name the 6 stages of the Software Development Life Cycle aka the Software Development Process
Planning Defining Designing Building Testing Deployment Repeat (It's a cycle)
ST: Name the 5 stages of the waterfall method and 3 of the “tools” that are used by developers at each stage
(1970 Winston W. Royce)
Stages:
1.Requirement Elicitation and Anal ;) ysis
/\ \/
2.Specification - (Tool used - Specification Notations)
/\ \/
3.Implementation (Tool used- programming languages)
/\ \/
4.Test (Tool used- Test Languages (TTCN-3))
/\ \/
5.Maintenance
ST: 4 Advantages of the waterfall method
◦ Simple and easy to understand and use.
◦ Easy to manage due to the rigidity of the model – each phase has specific deliverables and review process.
◦ Phases are processed and completed one at a time. Phases do not overlap.
◦ Works well for smaller projects where requirements are well understood.
ST: 4 Disadvantages of the waterfall method
◦ Difficult to go back and change something that was not well-thought out.
◦ No working software is produced until late during the life cycle.
◦ High amounts of risk and uncertainty.
◦ Not good for complex and OO projects. Not good for ongoing projects.
◦ Not suitable for projects with high risk of requirements changes.
ST: Give 5 reasons why someone would choose to implement the waterfall method for their project.
◦ Requirements are very well documented, clear and fixed.
◦ Product definition is stable.
◦ Technology is understood and is not dynamic.
◦ Ample resources with required expertise are available to support the product.
◦ The project is short.
ST: Define the 4 quarters of the spiral model
1. Top Left - Determine Objectives 2. Top Right - Identify and resolve risks 3. Bottom Right Development and Test 4. Bottom Left Plan the next iteration
ST: Consider the commonly used diagram used to depict the spiral model used . Describe where the project would start.
x axis - No name
y axis - Cumulative cost
Projects start at the center (0,0) and starts the spiral towards the right
ST: Name 5 advantages of using the spiral model
◦ High amount of risk analysis
◦ Good for large and mission-critical projects
◦ Strong approval and documentation control
◦ Additional functionality can be added at a later date
◦ Software is produced early in the software life cycle
ST: Name 5 disadvantages of using the spiral model
◦ Can be a costly model to use
◦ Risk analysis requires highly specific expertise
◦ Project’s success is highly dependent on the risk analysis phase
◦ Not suitable for smaller projects (high overhead)
ST: Give some possible reasons that a project would chose to use the spiral model
◦ Long-term project commitment because of potential changes to economic priorities as the requirements change with time.
◦ Customer is not sure of their requirements.
◦ Requirements are complex and need evaluation to get clarity.
◦ New product line which should be released in phases to get enough customer feedback.
◦ Significant changes are expected in the product during the development cycle.
ST: Name the 5 stages that sit on the left side \ of the v model and then name the 4 corresponding stages that sit on the right side / of the v.
Left Side \ ->/ Right Side Requirements -> Acceptance Testing Specification -> System Test Architectural Design -> Integration Test Detailed Design -> Unit Test Coding
ST: why did the v model come about and in which field of cs is it mandatory that developers implement this development cycle
The German federate office for information security BSI was a driving force in its elaboration.
In Germany, the V-model is mandatory for safety-critical governmental projects.
ST: 4 V-Model Advantages
◦ Simple and easy to use
◦ Testing activities like planning, test designing happens well before coding
◦ Proactive defect tracking – defects are found at early stage (with early testing)
◦ Works well for small projects where requirements are stable and well understood
ST: 3 V-Model disadvantages
◦ Very rigid and least flexible
◦ No early prototypes as software is developed
◦ If changes happen in midway, both test documents and requirement documents change
ST:Name 5 possible reasons why you would implement the v model in developing your application
◦ Requirements are well defined, clearly documented and fixed.
◦ Product definition is stable.
◦ Technology is not dynamic and is well understood by the project team.
◦ There are no ambiguous or undefined requirements.
◦ The project is short.
ST: Name 3 common modals/methods used in system life cycle development
Waterfall
Spiral Model
V model
What formal ISO process describes the standard for software testing and what does it state
9000-3 recognizes that several types of testing may be necessary to adequately exercise a product, such as unit, integration, system, and acceptance testing.
ISO = International Organization for Standardization
ST: Briefly describe the 4 case study’s given for buggy software
Steam - Accidentally wiping linux users entire root directory when uninstalling a client.
German Bank cards faulty “theres no 2010” microchip
Llyods customers couldnt transfer money via “Faster Payments”
Pacman level 256, Donkey Kong level 22 suffered overflow errors
ST: Briefly describe the case study for l”software is long in use”
Fortran Library - largest collection of numerical algorithms from 1970
ST: according to Effort
distribution,
industry, 2005
what is the breakdown of time spent on each section of the software development process
◦ Requirements: 15-20 percent
◦ Analysis and Design: 15-20 percent
◦ Construction (code and unit testing): 25-30 percent
◦ System Testing: 15-20 percent
◦ Implementation / Deployment: 5-10 percent
ST: 3 reasons software quality is important?
- Reduce bugs
- Reduce maintenance costs
- Get certification
Testing helps ensure SQ
ST: TRUE OR FALSE
Testing in the process of verifying the program works correctly
Generally false, there will always be bugs. You cannot verify the program works correctly.
ST: Name the two types of testing
Verification – The software should confirm to its specification (Are we building the product right?)
Validation – The software should do what the user really requires (Are we building the right product?)
ST: What is the difference between the terms faults are errors
Error - synonym for mistake – “people make errors” Fault - result of an error
ST: what is the difference between the terms Failure, Incident and Test Execution
Failure - occurs when a fault executes
Incident - symptom that alerts the user of the occurrence of
a failure
Test execution - act of exercising software with test cases
ST: Name the 2 main goals for testing
Find failures
Demonstrate correct execution
ST: What does SUT stand for
System Under Test
ST: How do you establish a system quality?
You check that a SUT conforms to a specification (e.g. UML State Machine) You test this by systematically experimenting (using test suites) with the SUT and obtaining a verdict on the system by performing test evaluation and documenting the test data in test documentation
ST: Name 6 reasons how the design of the system affect its testability
Operability - better it works the more efficiently it can be tested. aka fewer bugs is best
Observability - generates a distinct output which can be easily identified
Controllability - Test engineer can directly control: Hardware, software can execute all code through combination of input and All outputs can be generated by some input
Decomposalility - By controlling the scope of testing, we can more quickly isolate problems and perform smarter retesting. - build software using modules
Simplicity - The less to test, quicker to test
• Functional - no extra features outside of requirements
• Structural - designing partitions to minimise fault propagation
• Code - follow standard
Stability - try not to change code while testing. Well understood design + dependencies, good docs
DV: Define Data Visualization
convey information via visual representations
or: Computer-based visualization systems
provide visual representations of datasets
intended to help people carry out some task
more effectively.
DV: Pysically why do humans like visualisation
Helps us think
● Reduces load on working memory
● Offloads cognition
● Leverages power of human perception
DV: What 3 factors do you have to consider for effective visualisation.
Data
Tasks
users
DV: What 4 consider users when designing effective visualization
Visual Literacy
colour blindness
patience - development and evaluation
training considerations
DV: What is the formula for the lie factor and why would you calculate it
(size of effect in graphic)/(size of effect in data)
On a graph some data is more apparent than others and can be made to look like a bigger “problem” vs what the raw data shows.
DV: Data - ink Ratio
Data-ink : the ink used to show data
Data-ink ratio : data-ink / total ink used
DV: Describe 3 points about “tasks”? Give an example
● For what purpose is a particular visualization
effective?
● Often described abstractly
● Abstracting tasks allows us to compare across
domains
e.g “constrast patients in the ICU after one month vs first week”
DV: Name 3 different types of tasks
High Level : Overarching goals e.g. cure cancer
Mid-level: More detailed how e.g. identify most influential factors
Low-Level: Exactly how e.g. Click on kine…
(Analyze, Search, Query)
DV: What is Shneiderman’s Mantra
Overview first, zoom and filter, details on demand
DV: Define what data is and the 2 main versions of the term “Data”
Data is information
Semantics : real-world meaning of data
Type : Storage type in computer
DV: visualisations are based on 3 main types of data attributes - Describe them and give an example for each.
Quantitative : Numbers (continuous) 10cm
Ordinal : Ordered small, medium, large eggs
Nominal : Not ordered, rabbits, dogs, cats
DV:What is the term for a collection of attributes?
A Dataset
DV: Give 4 types of datasets
tables (mulitidimensional tables)
networks(and trees)
fields
geometry
DV: Describe tabular data
Attributes are in columns
Data “item” is a row
very common.
Included geometry and static datasets
DV: Which dataset can be described by : ● Nodes have attributes ● Edges have attributes (links) ● Often represented as 2 tables
Networks and trees
DV: What type of data is fields?
Continuous ● Common in volume & flow visualization ● Grids can be many types
DV: When would you have a geometry (spartial) dataset?
To record
location
distance
areas of effect
DV: How would you contain text into a dataset
Because text is unstructured data it is difficult but you can encode them into attributes by e.g.
– Word counts (aka bag of words)
– N-grams
– word2vec
DV: When is it best to use DV
When you have a lot of information on a computer and the task is clear.
DV: If you wanted to start a DV Project. I mean when Ellis Thompson comes up with a DV Project where should/might be a good place to start? WHEN
Shneidermans Mantra
DV: What is the purpose of task abstractions
Allow us to compare across domains
DV: Define 2 things data always has
Semantics and type
DV: How do we understand the data we collect?
Identify into attributes