Software Flashcards

1
Q

What is the difference between functional requirements and non-functional requirements?

A

Functional requirements – describes what a system must do and is specified by the user, non-functional requirements specify how well the system must perform

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

What are some basic NFR’s?

A

Performance, scalability, portability, compatibility, reliability, maintainability, availability, security, and usability

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

Describe the NFR ‘performance’

A

defines how fast a software system (or its component) responds to certain users’ actions under a certain workload

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

Describe the NFR ‘Scalability’

A

he ability of a system or application to handle an increasing amount of workload, data or users without compromising performance, availability or reliability

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

Describe the NFR ‘Portability’

A

determines if a system or its elements can work in different environments and establishes how well actions performed via one platform are run on another

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

Describe the NFR ‘Compatibility’

A

defines how a system can coexist and interact with another system in the same environment and how well it can exchange data with external systems

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

Describe the NFR ‘Reliability’

A

specifies how likely the system or its element would run without a failure for a given period of time under predefined conditions

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

Describe the NFR ‘Maintainability’

A

defines the time needed for a solution or its component to be fixed, changed to increase performance or other qualities, or adapted to a changing environment

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

Describe the NFR ‘Availability’

A

describes how likely the system is accessible to a user at a given point in time (one of the most business critical requirements)

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

Describe the NFR ‘Security’

A

ensures data within the system or its parts will be protected against malware attacks, data breaches, or unauthorized access

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

Describe the NFR ‘Usability’

A

basically about user-friendliness (software must be intuitive, easy to use, and meet the customer

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

Describe a text editor

A

○ Benefits: Fast to load, no auto complete, simple with few menu choice
○ Examples: Notepad, TextEdit, Sublime, VS Code (text editor with extensions)

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

Define IDE

A

Integrated Development Environment

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

Describe the features of an IDE

A

■ Time saving features like intelligent code completion and indentation
■ Built-in debugger
■ Built-in interpreter or compiler
■ Many have customizable plugins
- - -
■ Source code editor - Add and edit code
■ Runtime environment - Run program, converts source code to machine code
■ Syntax checking - Checks for potential errors while coding
■ Keyword highlighting - Color codes command words, variables, and data types
■ Debugging tools - Help detect and locate errors to be fixed
■ Break point - Stop code at specific points to check variables
■ Memory inspector - Displays content of memory to help debug problems
■ Threading - View, suspend, resume and see status of each thread

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

Name some common IDEs

A

IntelliJ, Eclipse, PyCharm, VS Code, Visual Studio, NetBeans, Xcode, AWS Cloud 9

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

What language is primarily used in IntelliJ?

A

Java

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

What languages are primarily used in the Eclipse IDE?

A

Java for Android development

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

What language is primarily used in PyCharm?

A

Python

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

What languages are primarily used in Visual Studio?

A

.NET, C++, JS, XML, HTML, and CSS. Often used for web development

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

What languages are primarily used in NetBeans?

A

Java, JS, HTML, and Android development

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

What languages are primarily used in Xcode?

A

C, C++, Objective c, Objective C++, AppleScript, Java, Python, Ruby, ResEdit, and Swift. Primarily used for iOS development

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

What languages are used in AWS Cloud 9?

A

Node js, Python, PHP, Ruby, GO, and C++

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

What is a compiled language?

A

A language that is converted into machine code by a compiler before running

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

What are some features of a compiled language?

A

○ OS / hardware specific
○ Runs quickly when in machine code
○ More difficult to debug, must be re-compiled after each change
○ Bootstrapping - process of using a compiler written in a particular programming language to compile a new version of the compiler written in the same language

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

What are some examples of compiled languages?

A

C, C++, C#, Java, and Rust

26
Q

What is an interpreted language?

A

A language that is converted and run line by line by and interpreter

27
Q

What are some features of an interpreted language?

A

○ Slower than compiled languages, translated one line at a time
○ Can run on any machine that has an interpreter
○ Able to modify while running
○ Easier for newer developers to use

28
Q

What are some examples of an interpreted language?

A

Python, Coral, JavaScript, Ruby, MATLAB

29
Q

What are some Object Oriented Programming languages?

A

○ C++, C#, Python, Java
○ Useful for code reuse

30
Q

What are the categories of technology stacks?

A

Front-end, back-end, and full-stack

31
Q

What is a framework?

A

a standardized platform or set of tools and guidelines designed to support the development and implementation of software applications, websites, or other digital solutions

32
Q

Describe some front-end frameworks

A

React, Vue, and Angular

33
Q

Describe some front-end styling frameworks

A

Tailwind CSS, Bootstrap, SASS

34
Q

Describe some back-end frameworks

A

Spring (Java), Django (Python), ASP .NET

35
Q

Describe the Apache Hadoop stack

A

Java based software platform. Manages data processing and storage for big data applications. The components are; HDFS (Hadoop Distributed File System), YARN (Yet Another Resource Negotiator), MapReduce, and Hadoop Common

35
Q

Describe some full-stack web app framworks

A

Ruby on Rails, Apache Hadoop,

36
Q

Describe MongoDB

A

NoSQL document-oriented open source database
■ Stores data in BSON format, better storage efficiency
■ Flexible and powerful querying system, supports complex queries with aggregation and indexing
■ Better suited for high-throughput applications with large datasets
■ More advanced security features such as field-level encryption, data masking, and auditing
■ Large and active community, comprehensive documentation and support resources

37
Q

Describe CouchDB

A

NoSQL document-oriented open source database
■ Stores data in JSON format, widely used and easy to work with
■ MapReduce-based querying system, less flexible but more efficient for large datasets
■ Replication is more robust and easy to set up, with built-in support for conflict resolution and synchronization
■ Better suited for distributed applications with a high degree of data synchronization
■ Small but dedicated community, simpler and more lightweight codebase

38
Q

Describe MySQL

A

Relational database that uses the SQL language.

39
Q

What is a relational database?

A

A relational database is a type of database that stores and provides access to data points that are related to one another. It is based on the relational model, which organizes data into tables (also known as relations) consisting of rows and columns. Each table represents a different entity type, and rows within a table represent instances of that entity, with columns representing values attributed to those instances. Relationships between tables are established through foreign keys, enabling complex data structures and queries.

40
Q

What are some advantages to using frameworks?

A

Tried and tested
● Flexibility - Easy to modify project as it develops
● Efficiency - Pre-existing libraries and frameworks
● Reliability - Well-used stacks, better expectations
● Scalability - Easy to add more users, traffic, storage
● Speed and Performance - Optimized frameworks help build quick and efficient projects
● Support - Existing support community

41
Q

What are some common tech stacks?

A

LAMP, WAMP, MEVN, MEAN, and MERN

42
Q

What are the technologies used in a LAMP stack and what is it used for?

A

Linux Apache MySQL and PHP.
○ For hosting websites and web applications on a Linux machine
○ All four components are open source
○ Backend stack

43
Q

What are the technologies used in a WAMP stack and what is it used for?

A

Windows Apache MySQL and PHP.
○ Only difference between LAMP is the OS (Linux vs. Windows)
○ Backend stack

44
Q

What are the technologies used in a MEAN stack and what is it used for?

A

MongoDB Express Angular and Node.js
○ For building dynamic web apps
○ Open source end-to-end JavaScript stack
○ Largely used for cloud-hosted applications, very flexible and scalable
○ Full stack

45
Q

What are the technologies used in a MEVN stack and what is it used for?

A

MongoDB Express Vue.js and Node.js
Full stack

46
Q

What are the technologies used in a MERN stack and what is it used for?

A

MongoDB Express React and Node.js
Full stack

47
Q

What is a computer virus?

A

Type of malware designed to replicate itself. Running a program can spread a virus. May or may not cause problems.

48
Q

Describe an ‘armored virus’

A

Complex code structures to prevent detection

49
Q

Describe a ‘boot virus’

A

Infects boot sectors of the hard drive. Turning on the computer will trigger the virus to spread.

50
Q

Describe a ‘trojan virus’

A

– Appears to be a legitimate program, but performs malicious actions
■ Attacker usually uses social engineering to trick the user into downloading or installing
■ Can spoof products by using the same icons and names

51
Q

Describe a ‘rootkits virus’

A

Conceals malicious activities by altering system functions to hide itself
■ Software that allows for stealthy presence of unauthorized functionality in the system
■ Used when the attackers need to backdoor a system and remain unnoticed access as long as possible

52
Q

Describe a ‘botnet virus’

A

Networks of compromised devices controlled remotely. Commonly called zombies.
■ Common uses: DDoS attacks, spam campaigns, and click fraud
■ From the moment of infection, botnet agents keep in touch with their remote Command-and-Control server

53
Q

Describe a ‘companion virus’

A

Appears to be a legitimate file, similarly named as a familiar executable, but executes malicious code when opened

54
Q

Describe a ‘macro virus’

A

Embedded in Microsoft Office files. Uses the mini-basic programming language

55
Q

Describe a ‘stealth virus’

A

Any virus that attacks while trying to avoid detection

56
Q

Describe a ‘polymorphic virus’

A

Constantly changes its code to create new variants and avoid detection

57
Q

Describe ‘ransomeware’

A

Specified data or systems held captive by attackers until a form of payment or ransom is provided

58
Q

Describe ‘worms’

A

Malware that self-replicates without user action. Uses the network as a transmission medium. Firewalls can mitigate infestations.

59
Q

What are some vectors for computer virus infection?

A

Spam emails, instant messaging, file-sharing services, fake antivirus downloads, unpatched software, infected hardware

60
Q

What are some examples of non-virus attacks?

A

● Unauthorized access
● Privilege escalation
● Insider threats
● Phishing - Trick users into providing sensitive information
● Code and SQL Injection - Inserted into applications or queries to gain unauthorized access
● Man in the Middle - Intercept of communication to eavesdrop, manipulate, or impersonate.