comp2050 wacky ass bullshit Flashcards
What is a pipe and filter architecture
Functional transformations process their inputs to produce outputs.
What does a pipe and filter architecture graph look like
What is client-side architecture
Set of stand-alone servers which provide specific services such as printing, data management, etc. Set of clients which call on these services. Network which allows clients to access servers. Distributed system model with data and processing distributed across a range of components. Can be implemented on a single computer.
What does a client side architecture graph for a library look like
What is layered architecture
Used to model the interfacing of sub-systems.
Organises the system into a set of layers (or abstract machines) each of which provide a set of services.
Supports the incremental development of sub-systems in different layers. When a layer interface changes,
only the adjacent layer is affected.
What does layered architecture graph look like
What is Repository architecture
Sub-systems must exchange data. This may be done in two ways:
* Shared data is held in a central database or repository and may be accessed by all sub-systems;
* Each sub-system maintains its own database and passes data explicitly to other sub-systems.
When large amounts of data are to be shared, the repository model of sharing is most commonly used as
this is an efficient data sharing mechanism.
What is repository architecure graph look like
What is the modern view controller patern?
What is the Layered architecture pattern?
What is the Repository pattern
What is the Client(s)–server(s) pattern
What is the pipe and filter pattern
What is a software architecture
A (software) architecture is a description of how a (software) system is organised.
Architectural design decisions include decisions on the type of application, the distribution of the
system, the architectural styles to be used (and their ramifications)
Architectures may be documented from several different perspectives or views including a
conceptual view, a logical view, a process view, and a development view.
Architectural patterns are a means of reusing knowledge about generic system architectures.
They describe the architecture, explain when it may be used and describe its advantages and
disadvantages.
What is a data flow diagram
What is a domain model diagram
What is an interaction model diagram
What does a use case table look like
What is the software development life cycle?
What is the waterfall model?
What is the waterfall model?
What is the iterative and incremental model
What is the spiral model
What are the agile values
What are the agile principles
What is agile?
Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. Agile methods or Agile processes generally promote a disciplined project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices intended to allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals.
What is SCRUM
Scrum is a subset of Agile. It is a lightweight process framework for agile development, and the most widely-used one.
-A “process framework” is a particular set of practices that must be followed in order for a process to be consistent with the framework. (For example, the Scrum process framework requires the use of development cycles called Sprints, the XP framework requires pair programming, and so forth.)
-“Lightweight” means that the overhead of the process is kept as small as possible, to maximize the amount of productive time available for getting useful work done.
What are user stories
What is the sprint cycle
What is the scrum master
-The ‘Scrum master’ is a facilitator who arranges daily meetings,
tracks the backlog of work to be done, records decisions, measures
progress against the backlog and communicates with customers and
management outside of the team.
* The whole team attends short daily meetings where all team
members share information, describe their progress since the last
meeting, problems that have arisen and what is planned for the
following day.
What is extreme programming
Extreme Programming (XP) is an agile software development framework that aims to produce higher quality software, and higher quality of life for the development team. XP is the most specific of the agile frameworks regarding appropriate engineering practices for software development.
What are some problems with agile methods
What is Version control?
Version control, also known as source control, is the practice of tracking and managing changes to software code. Version control systems are software tools that help software teams manage changes to source code over time.
Why do we need version control?
Without version control, we cannot recreate the project history
― We cannot revert to an older version
- To discard recent changes (e.g., started work on a new implementation of
an API and gave up)
- To investigate when a bug was introduced
― We cannot compare a current version to an older one
― We cannot figure out when a particular section of code was added/updated
and why
What is DevOps
DevOps is a set of practices that combines software development and IT operations. It aims to shorten the systems development life cycle and provide continuous delivery with high software quality. DevOps is complementary with Agile software development. DevOps practices involve developers and operators’ processes, architectures, and tools. DevOps is also a movement –like agile
What are two devops build tools?
Whare are three devops Continuous-integration tools
Whar are three devops Provisioning tools
What is a microservice architecutre?
A microservice architecture – a variant of the SOA structural style – is an architectural pattern that arranges an application as a collection of loosely-coupled, fine-grained services, communicating through lightweight protocols.
*A microservice architecture is
–A collection of independently deployable processes
–Packaged as services
–Communicating only via messages
What does microservice architecture look like?
How does microservice architecture
reduce requirements for coordination?
*Coordination decisions can be made
–incrementally as system evolves or
–be built into the architecture.
*Microservice architecture builds most
coordination decisions into architecture
*Consequently they only need to be made
once for a system, not once per release.
What are some issues with microservices
What are the two different types of miacroservices
What model does GIT use?
What are the parts of a git DAG diagram
What are the 5 kinds of testing
What are the two different TYPES of testing
What is black box testing
Black Box Testing is a software testing method in which the functionalities of software applications are tested without having knowledge of internal code structure, implementation details and internal paths.
What is white box testing
White Box Testing is a testing technique in which software’s internal structure, design, and coding are tested to verify input-output flow and improve design, usability, and security. In white box testing, code is visible to testers, so it is also called Clear box testing, Open box testing, Transparent box testing, Code-based testing, and Glass box testing.
What are the advantages of white box testing and what are the disadvantages
Advantages of White Box Testing
Code optimization by finding hidden errors.
White box tests cases can be easily automated.
Testing is more thorough as all code paths are usually covered.
Testing can start early in SDLC even if GUI is not available.
Disadvantages of White Box Testing
White box testing can be quite complex and expensive.
Developers who usually execute white box test cases detest it. The white box testing by developers is not detailed and can lead to production errors.
White box testing requires professional resources with a detailed understanding of programming and implementation.
White-box testing is time-consuming, bigger programming applications take the time to test fully.
What is top down integration strategy
What are the issues with top down integration
What is bottom up integration testing
What are the issues with bottom up integration testing
What is sandwhich integration testing
What is Fuzz testing
What are the different fuzzing approaches
What is mutation testing
Faults are introduced into the program by creating many versions
of the program called mutants
* Each mutant contains a single fault
* Test cases are applied to the original program and to the mutant
program
* The goal is to cause the mutant program to fail, thus
demonstrating the effectiveness of the test suite why?
What is the mutation testing algorithim
What is the mutation score for a set of test cases
What are the main steps of metamorphic testing?
What is an example of metamorphic testing?
What is the amazon agile case study
What are two main components of metamorphic testing?
Metamorphic testing is an approach to both test case generation and test result verification.
What is a test oracle?
a test oracle (or just oracle) is a mechanism for determining whether a test has passed or failed.[1] The use of oracles involves comparing the output(s) of the system under test, for a given test-case input, to the output(s) that the oracle determines that product should have.
What is partition testing
Equivalence Partitioning Method is also known as Equivalence class partitioning (ECP). It is a software testing technique or black-box testing that divides input domain into classes of data, and with the help of these classes of data, test cases can be derived.
What is random testing
Random testing is a black-box software testing technique where programs are tested by generating random, independent inputs. Results of the output are compared against software specifications to verify that the test output is pass or fail.
What are the four values of agile manifesto
Individuals and interactions over processes and tools. …
Working software over comprehensive documentation. …
Customer collaboration over contract negotiation. …
Responding to change over following a plan.
What is a centersalised version control system
A centralized version control system offers software development teams a way to collaborate using a central server. In a centralized version control system (CVCS), a server acts as the main repository which stores every version of code.
What is a distributed version control system
In software development, distributed version control is a form of version control in which the complete codebase, including its full history, is mirrored on every developer’s computer