Software Flashcards
What is the difference between functional requirements and non-functional requirements?
Functional requirements – describes what a system must do and is specified by the user, non-functional requirements specify how well the system must perform
What are some basic NFR’s?
Performance, scalability, portability, compatibility, reliability, maintainability, availability, security, and usability
Describe the NFR ‘performance’
defines how fast a software system (or its component) responds to certain users’ actions under a certain workload
Describe the NFR ‘Scalability’
he ability of a system or application to handle an increasing amount of workload, data or users without compromising performance, availability or reliability
Describe the NFR ‘Portability’
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
Describe the NFR ‘Compatibility’
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
Describe the NFR ‘Reliability’
specifies how likely the system or its element would run without a failure for a given period of time under predefined conditions
Describe the NFR ‘Maintainability’
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
Describe the NFR ‘Availability’
describes how likely the system is accessible to a user at a given point in time (one of the most business critical requirements)
Describe the NFR ‘Security’
ensures data within the system or its parts will be protected against malware attacks, data breaches, or unauthorized access
Describe the NFR ‘Usability’
basically about user-friendliness (software must be intuitive, easy to use, and meet the customer
Describe a text editor
○ Benefits: Fast to load, no auto complete, simple with few menu choice
○ Examples: Notepad, TextEdit, Sublime, VS Code (text editor with extensions)
Define IDE
Integrated Development Environment
Describe the features of an IDE
■ 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
Name some common IDEs
IntelliJ, Eclipse, PyCharm, VS Code, Visual Studio, NetBeans, Xcode, AWS Cloud 9
What language is primarily used in IntelliJ?
Java
What languages are primarily used in the Eclipse IDE?
Java for Android development
What language is primarily used in PyCharm?
Python
What languages are primarily used in Visual Studio?
.NET, C++, JS, XML, HTML, and CSS. Often used for web development
What languages are primarily used in NetBeans?
Java, JS, HTML, and Android development
What languages are primarily used in Xcode?
C, C++, Objective c, Objective C++, AppleScript, Java, Python, Ruby, ResEdit, and Swift. Primarily used for iOS development
What languages are used in AWS Cloud 9?
Node js, Python, PHP, Ruby, GO, and C++
What is a compiled language?
A language that is converted into machine code by a compiler before running
What are some features of a compiled language?
○ 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