All Cards Flashcards
What is software
Collection of computer programs and related data telling a computer what to do and how to do it
What is engineering
The way something has been designed and built
What is software engineering
Methods and tools to design, build and maintain the instructions for telling a computer what to do
What is the 7-step software development process
Analysis, design, implementation, building, testing, deployment and maintenance
What is object-oriented programming
Method of implementation in which programs are organised as cooperative collections of objects
What is object-oriented analysis
Method of analysis that examines requirements from the perspective of the classes and objects
What is abstraction
Generalisations that define certain key characteristics and behaviour
What is a class
A class represents a key concept within the system; it holds data and behaviour
What is an object
A different instance of a class
What is encapsulation
Exposing what a class can do but not how. Allows you to hide specific information and control access to the internal state of the object
Why encapsulate code
To hide implementation, reduce dependencies, debug easier, make the code more manageable
What are getters/setters
THey are used to provide controlled access to internal data fields
What is the relationship between subclass and superclass
Subclass can hold all the data and perform all actions of the superclass
What is polymorphism
Allows us to request the same action from objects yet allow for it to be executed in different ways depending on the object
What is an abstract class
High level “blueprints” for objects, they are conceptual
What is an interface
A purely abstract class that defines only behaviour
What is UML
Unified Modelling Language, a formal graphical language comprising a set of diagrams for describing software systems
How to represent a class in UML
A box split into 3 sections: class name, attributes (variables), functions
How to denote visibility of an attribute or method
+ for public, - for private
How to show association in UML
Solid line, target end links to the class, name of association on time, numeracy of association on bottom
What is composition in UML and how to show it
One class cannot exist without the other. A filled diamond head is linked to the higher value class that can exist without the other
What is aggregation in UML and how to show it
One class contains objects in another class but doesn’t have control over the lifecycle of the objects. An empty diamond head.
How to model abstract methods and classes in UML
Italics or “abstract” in brackets
What is an interface in UML and how to show it
Defines the same behaviour to different classes. Shown with dotted arrow with arrow head on interface. Interface block with “«interface»” above it
What are the two main types of UML diagrams
Sequence and communication diagrams
Describe the sequence diagram
Objects on top row. Vertical axis corresponds to time travelling down. What a method requires an objects, block lines are drawn to each object’s dotted line and return values are in dotted lines.
Describe a communication diagram
Shows method floe between objects by numbering method calls using block arrow lines
What is a design pattern
Software systems of similar architectural structures occuring repeatedly
What are some types of design patterns
Observer, memento, iterator and Model View Controller (MVC)
What is a composite design pattern
We want to operate on individual items or groups in a common way
What is a decorator
Allows to add functionality without changing the original class
What is a disadvantage of a decorator
Can make it hard to resolve the identity of objects due to long chains of small objects that point to each other
What is an observer
Allows multiple objects to maintain a consistent view on the state of an object
What is the model view controller (MVC)
Design pattern than separates data. Model is observer view is composite, controller is strategy
What is passive mode for MVC
The controller is the only class that affects the model. Controller updates model and view. Model gets data from view
What is active mode
Controller is not the only class that affects the model. The model notifies other classes of changes and the view sends the changed state to the model
What is the software life cycle
Analysis, design, implementation, building, testing, deployment and maintenance
What are the main roles in a traditional software team
Architect, project manager, lead programmer, programmer and test
What is the spiral model
Allows to manage risk after the project has started, each spiral is a phase, iterative development, incremental refinement
What is the evolutionary model
Iterative and incremental delivery
What is a regression test
Compare outputs of the previous test with known values, make sure components function correctly
What are the top and bottom sides of the testing quadrant
Top is business facing and bottom is technology facing
What are the left and right sides of the testing quadrant
Left is supporting the team and right is critique the product
What is in the technology-facing / supporting the team quadrant
Unit tests, component tests and deployments tests maintained by developers
What is in the business-facing / supporting the team quadrant
Acceptance tests: verifying that the system meets the acceptance criteria of the requested application, should be written by customers
What is in the business-facing / critiquing quadrant
Testing scenarios, usability, user acceptance, beta testing (give your application to the real user)
What is in the technology-facing / critiquing quadrant
Performance and load tests, security, capacity, modifiability
What are profiling tools
Allows to analyse software performance, tracking memory allocation, time required to execute program methods for bottlenecks
What is the driving factor for extreme programming
Improve software quality and responsiveness to changing requirements, reduce cost of change
What are extreme programming values
Communication, simplicity, feedback, courage and respect
What are extreme programming principles
Humanity, economics, mutual benefit, self-similarity, improvement, diversity and reflection
What are some primary extreme programming practices
Sit together for communication, create a sense of “team”, buddy programming, weekly cycle and quarterly planning, incremental design
What are the main points from the manifesto for agile software development
Individuals and interactions, working software, customer collaboration, responding to change
What are the main practices of continuous integration
Single source repo, automate build, keep build fast, everyone can see what’s happening, make your build self-testing
What is part of the deployment pipeline
First: developers commit changes into their source repo, run tests, and assemble executable code. Second: longer running automated acceptance tests. Third: independent deployment of builds via pipeline branches
Types of research in HCI
Data analysis problems (accounts of phenomena), conceptual problems (connecting phenomena to theoretical constructs; hypotheses, theories, models), constructive problems (constructing interactive systems)
What is interaction
The reciprocal influence between people and an interactive system
What is a user interface
Parts of an interactive system that the user comes into contact with
What is evaluation
To attribute some human-related value to an artifact, prototype, system or process
What is market pull
Sensing there is market demand for a new offering
What is technology push
New technology injected into the market, generating new demand for something
How is HCI human-centred
Focuses on who uses and is affected by its use. Requirement to understand users, to engage with people, ethical consideration. System should match people.
What are some variants of evaluation
Verification, validation and testing
What are the types of understanding
Theories (help understand phenomena), concepts (name phenomena with additional characteristics), taxonomies (system of elements of how people think, feel or act), models (simplifications of reality), guidelines (theoretical knowledge summarized into rules of thumb
What are the types of understanding
Theories (help understand phenomena), concepts (name phenomena with additional characteristics), taxonomies (system of elements of how people think, feel or act), models (simplifications of reality), guidelines (theoretical knowledge summarized into rules of thumb
What are the areas of understanding
Perception, motor control, cognition, needs, experience, communication, collaboration
How to apply our understanding of people
Direct what to pay attention to, explain empirical findings, make design decisions, explore design space, predict people’s behaviour
What three primary processes contribute to human perception
Expectation, attention, sensory information
What is sensation
Physiological process that produces information about the environment for perception
What are the three forms of sensory modality
Vision, hearing, tactition
What are relevant human sensory properties
Information rate, parallelism, sensitivity, receptive field, adaptation
What are elementary perceptual tasks
Discrimination, detection, recognition, estimation, search
What are the windows of visibility
Visible spectrum of light, field of view, contrast, foveated vision
What are different forms of eye movement
Fixations, saccades, smooth pursuit
What are common visual grouping rules (Gestalt laws)
Proximity, common area, similarity, continuation
What is visual attention
Focusing of perceptual processing on a region or object in the perceptual field
Change blindness
Failure of a user to detect a change within the the visual field due to a visual disruption
What is inattentional blindness
Failure to detect a change within the visual field without visual disruption
What is visual saliency
Probability with which visual features attract attention
What are elements of an HCI motor task
End-effector, degrees-of-freedom, open-loop, closed-loop, aimed movement, interception tasks, speed-accuracy tradeoff
What is Fitts’ law
Models the movement time (MT) it takes to acquire a target with index of difficulty (ID)
MT = a + b (ID)
ID = log_2(D/W + 1)
What is throughput
Number of bits a user can communicate independent of a specific target
What are the measures of throughput
TP = ID/MT or TP = 1/b, where ID is index of difficulty, MT is movement time, b is a regression coefficient from Fitts’ Law
What is a crossing task
Target acquisition task
What is a steering task
Moving a cursor within a tunnel constraint
What is the time taken for a user to steer a cursor through a tunnel
T = a + b (integral sign) ds/W(s)
ds/dT = W(s)/b where W(s) is width of tunnel at s
What is the index of difficulty for steering
ID = (integral) ds/W(s)
What are the 5 parts of cognition
Memory, attention, reasoning, decision-making and control
What are some psychological needs for interactive systems
Relatedness, meaning, stimulation, competence, popularity, security
What is collaboration
Mutually beneficial relationship between parties who work toward common goals
What is cooperation
Division of labour, each person is responsible for some part of problem solving
What is the aim of user research
Obtain concrete, empirical knowledge about users
What are the goals of user research
Insight about people (skills, personalities, abilities, beliefs), activities, contexts of use( physical, social, historical), technologies