SOFTDEV midterms

150 flashcardsby EdsonE → E
Study these flashcardsFree · spaced repetition · iPhone, Android, Mac & web

All cards

1
This technique involves examining the source code of a program looking for patterns that are known to cause errors or security vulnerabilities, but it is performed without actually running the software.
STATIC ANALYSIS
2
In reliability testing, it is crucial to test the software using input patterns that reflect how actual users are expected to behave in a real-world environment. This set of expected behaviors is called the
OPERATIONAL PROFILE
3
When a testing tool incorrectly flags a safe piece of code as having a vulnerability, wasting the developer's time investigating a non-existent problem, this result is known as a
FALSE POSITIVE
4
This specific type of dynamic testing involves throwing massive amounts of random, malformed, or invalid data at a system to see if it crashes or reveals a security hole.
FUZZ TESTING
5
To assure security, a team may simulate an attack on the system using known hacking techniques to identify weaknesses before malicious actors can exploit them. This is widely known as
PENETRATION TESTING
6
This metric represents the probability that a system will fail specifically when a request for service is made, rather than over a period of time.
PROBABILITY OF FAILURE ON DEMAND
7
A structured document that presents arguments and evidence demonstrating that a system is safe to operate in a specific context is called a
SAFETY CASE
8
Unlike functional testing which checks if features work, this type of analysis focuses purely on how the software behaves under extreme pressure or load to ensure it does not fail catastrophically.
STRESS TESTING
9
This automated process runs immediately after code changes are committed to ensure that new modifications have not introduced defects into previously working features.
REGRESSION TESTING
10
In the context of static analysis, this term refers to the scope of variables and whether a variable is used before it is initialized.
DATA-FLOW ANALYSIS
11
This form of review involves a small group of developers methodically reading through code line-by-line to find logic errors that automated tools might miss.
CODE INSPECTION
12
When measuring reliability, this unit refers to the average amount of time a system functions correctly between observable failures.
MEAN TIME BETWEEN FAILURES
13
A mathematical approach to software verification that uses logic and math to prove that a program conforms to its specification is known as
FORMAL METHODS
14
This security assurance activity involves reviewing the system architecture and design specifically to identify potential threats and the assets that need protection.
THREAT MODELING
15
This type of error occurs when a static analysis tool fails to identify a real vulnerability that actually exists in the code.
FALSE NEGATIVE
16
True or False: Static analysis tools are generally more effective than human inspections at finding subtle logic errors where the code is syntactically correct but functionally wrong.
FALSE
17
True or False: Testing can successfully prove that a software system is completely free of defects.
FALSE
18
True or False: A high level of test coverage (e.g., 100% statement coverage) guarantees that the software is reliable.
FALSE
19
True or False: Security testing is fundamentally different from reliability testing because security testing must account for intelligent, malicious inputs rather than just accidental user errors.
TRUE
20
True or False: In a safety-critical system, it is acceptable to sacrifice some performance speed to ensure the system fails safely.
TRUE
21
True or False: Penetration testing should be performed during the requirements phase of the software development lifecycle (SDLC).
FALSE
22
True or False: Reliability growth models assume that when a defect is discovered and fixed, the overall reliability of the system increases.
TRUE
23
True or False: Static analysis is limited because it cannot detect errors that depend on the specific timing of interactions between different software components.
TRUE
24
True or False: An operational profile is not required for stress testing because the goal is to break the system, not simulate normal usage.
TRUE
25
True or False: Safety assurance focuses on protecting the system from external attacks, while security assurance focuses on preventing the system from harming the environment.
FALSE
26
True or False: Use of safe programming languages (like Java or Rust) eliminates the need for static analysis regarding memory management errors.
FALSE
27
True or False: Formal methods are rarely used in general commercial software development due to the high cost and specialized skills required.
TRUE
28
True or False: If a system has been formally verified, it does not require dynamic testing.
FALSE
29
True or False: A "safety case" is a legal defense used after an accident occurs, rather than a technical document created during development.
FALSE
30
True or False: Automated static analysis is computationally inexpensive and can be run frequently, making it suitable for integration into daily builds.
TRUE
31
This phrase refers to a common cultural resistance among developers who refuse to use third-party code because they believe they can write better code themselves or do not trust external quality.
NOT INVENTED HERE (NIH) SYNDROME
32
In this specific type of reuse, a generic application structure is provided as a set of abstract classes and interfaces; the developer extends these classes to create a specific system, effectively handing over flow control to the generic structure.
WHITE BOX REUSE
33
This large-scale reuse strategy involves creating a set of software systems that share a common core architecture and set of reusable components, but are individually customized for specific customers or market segments.
SOFTWARE PRODUCT LINE
34
This term describes pre-packaged, complete software systems that can be bought and configured to run without requiring access to their source code (e.g., Microsoft Office, Oracle Database).
COMMERICIAL OFF-THE-SHELF (COTS) SYSTEM
35
Within a software product line, these are the specific locations in the design or code where the core system can be modified or extended to adapt to different requirements.
VARIATION POINTS
36
This reuse approach involves wrapping legacy systems or distinct functional units as accessible endpoints that can be accessed over a network, often using standard protocols like SOAP or REST.
SERVICE-ORIENTED REUSE
37
A fundamental benefit of reuse is that recycled code has often been tested across many different systems, leading to a higher level of confirmed
RELIABILITY
38
This term refers to the cost associated with searching for, understanding, and modifying a reusable component to fit a new context.
COMPONENT OF ADAPTATION COST
39
In the context of framework-based development, this design principle dictates that the framework calls the custom code (rather than the custom code calling a library), often described as "Don't call us, we'll call you."
INVERSION OF CONTROL (IoC)
40
This type of reuse involves integrating huge, stand-alone systems (like an Enterprise Resource Planning system) to support business processes, often requiring significant configuration but little actual coding.
SYSTEM REUSE
41
This visual mapping tool helps decision-makers understand the different available reuse approaches, ranging from "System Reuse" to "Component Reuse" to "Object Reuse," and their associated costs.
REUSE LANDSCAPE DIAGRAM
42
When a company relies too heavily on a specific COTS product, they face this risk where the vendor might discontinue support, increase prices, or go out of business, leaving the company with no control.
VENDOR LOCK-IN
43
This specific layer in a reuse-oriented architecture acts as the glue code that converts data and calls between the reusable components and the specific application requirements.
GLUE CODE
44
This method of reuse involves reusing abstract algorithms or designs rather than actual code, often codified as solutions to common problems (e.g., Observer, Singleton).
DESIGN PATTERNS
45
In a product line architecture, this term refers to the shared set of software assets (code, documentation, designs) that are used across all members of the product family.
CORE ASSETS
46
True or False: Developing a software product line is initially more expensive than developing a single standalone system.
TRUE
47
True or False: Application frameworks are generally easier to learn than simple class libraries because they enforce a standard structure.
FALSE
48
True or False: The "Not Invented Here" syndrome is purely a technical problem related to incompatible code interfaces.
FALSE
49
True or False: Reusing software always increases the overall development speed, even if the team is unfamiliar with the reusable components.
FALSE
50
True or False: In a "White-box" framework, the developer customizes behavior by subclassing and overriding methods, requiring access to the framework's source code logic.
TRUE
51
True or False: COTS solution systems generally offer the highest flexibility because the source code is available for modification.
FALSE
52
True or False: One of the main arguments for software reuse is the effective use of specialists; a security expert can write a module once, and non-experts can safely use it.
TRUE
53
True or False: System adaptation (modifying code to fit) is rarely required when using COTS systems.
TRUE
54
True or False: Software reuse eliminates the need for system testing since the components have already been tested.
FALSE
55
True or False: Adaptation of a software product line can include both selecting modules to include and adding new, unique modules.
TRUE
56
True or False: "Inversion of Control" is a defining characteristic that distinguishes libraries from frameworks.
TRUE
57
True or False: Component-level reuse is generally easier to implement than Concept-level reuse (Design Patterns) because components are executable binaries.
TRUE
58
True or False: If a COTS product contains a bug, the integrating company usually has the legal right and technical ability to fix the source code immediately.
FALSE
59
True or False: The "Reuse Landscape" suggests that as you move from small-scale (objects) to large-scale (systems), the cost of adaptation generally decreases.
FALSE
60
True or False: A major risk of COTS reuse is that the evolution of the system is dictated by the vendor's upgrade schedule, not the user's business needs.
TRUE
61
This entity is an independent software unit that can be deployed without compiling other parts of the system, often treated as a binary "black box" by the user.
COMPONENT
62
In a component definition, this specific part of the contract defines the services that the component must receive from other components in order to function correctly.
REQUIRES INTERFACE
63
This infrastructure software (such as EJB, COM+, or .NET) provides the standard environment and services (like transaction management and security) that allow components to communicate.
MIDDLEWARE
64
When two components have incompatible interfaces, this specialized piece of code is written to convert the calls and data from one format to another, bridging the gap.
ADAPTOR
65
This specific type of interface definition specifies the services that a component offers to other components in the system.
PROVIDED INTERFACE
66
This rigorous standard definition (e.g., CORBA, JavaBeans) prescribes how components are implemented, how they document their interfaces, and how they interact with the infrastructure.
COMPONET MODEL
67
In this type of composition, two components are executed in an alternating sequence, where the output of the first component becomes the input for the second.
SEQUENTIAL COMPOSITION
68
This development process focuses on creating reusable software units specifically designed to be general-purpose and adhering to a standard model, rather than solving a specific application problem.
DEVELOPMENT FOR REUSE
69
This issue arises when a component's internal operation is hidden, making it difficult for the integrator to know if the component will perform efficiently or reliably in a new environment.
TRUSTWORTHINESS PROBLEM
70
This type of composition occurs when one component calls the services of another component directly, establishing a parent-child relationship in the control flow.
HIERARCHICAL COMPOSITION
71
Unlike Object-Oriented programming where classes are source-code level entities, components are typically distributed as
BINARY DEPLOYMENT units
72
This specific incompatibility issue occurs when the calling component provides data in units (e.g., inches) that differ from what the receiving component expects (e.g., centimeters).
DATA REPRESENTATION INCOMPATIBILITY
73
In the CBSE lifecycle, this phase involves searching databases or libraries to identify existing components that match the system requirements.
COMPONENT DISCOVERY PHASE
74
This composition issue occurs when a component requires a specific parameter (like a security token) that the calling component does not possess or provide.
PARAMETER INCOMPATIBILITY
75
This term refers to the process of wiring or integrating components together to create a functional system or a larger aggregate component.
COMPONENT COMPOSITION
76
True or False: In Component-Based Software Engineering, the system requirements are typically finalized before any components are selected to ensure the system meets user needs exactly.
FALSE
77
True or False: A key distinction between a Class and a Component is that a Component is an independent deployment unit, whereas a Class must be compiled into a program.
TRUE
78
True or False: "Glue code" is used to optimize the performance of two compatible components by bypassing the standard interface.
FALSE
79
True or False: The "Requires Interface" of a component allows the system architect to know which external services must be present for the component to operate.
TRUE
80
True or False: Component-Based Software Engineering eliminates the need for system testing because the individual components are already pre-tested by their vendors.
FALSE
81
True or False: Parameter incompatibility occurs when the number of parameters in a method call matches, but the data types or semantic meanings do not align.
TRUE
82
True or False: Development with reuse (building an app) follows the same V-model process as Development for reuse (building a component).
FALSE
83
True or False: Middleware is optional in CBSE; components can easily communicate directly with each other across different operating systems without it.
FALSE
84
True or False: Hierarchical composition implies that a new component is created by wrapping one or more existing components, effectively hiding them from the external system.
TRUE
85
True or False: One of the major risks in CBSE is the lack of control over the evolution and maintenance of third-party components.
TRUE
86
True or False: In a sequential composition, the components execute concurrently and share a common database state.
FALSE
87
True or False: Finding suitable components is often the most time-consuming phase of the CBSE process due to poor indexing and vague documentation.
TRUE
88
True or False: If a component's source code is unavailable, it is impossible to write an adaptor to fix interface incompatibilities.
FALSE
89
True or False: A "Provided Interface" defines the services that the component expects the environment to supply.
FALSE
90
True or False: Trustworthiness is a significant concern in CBSE because the integrator cannot formally verify the internal logic of a black-box component.
TRUE
91
This property of distributed systems describes their ability to continue operating correctly even when some components of the system fail or go offline.
FAULT TOLERANCE
92
A specific type of architecture where the system is organized into layers, and each layer provides services to the layer immediately above it, often used to separate presentation, logic, and data.
LAYERED ARCHITECTURE
93
Software that sits between the operating system and the distributed applications, managing communication and data transfer so that the distribution is transparent to the user.
MIDDLEWARE
94
In this architectural model, a set of identical processes run on different processors to share the workload, improving performance and reliability.
REPLICATION ARHCITECTURE
95
This term refers to the ability of a system to handle an increasing amount of work or to be readily enlarged to accommodate that growth without changing the system architecture.
SCALABILITY
96
A distributed system interaction model where one component initiates a request for a service and waits for a response from another component that provides the service.
CLIENT-SERVER INTERACTION
97
The specific risk in distributed systems where an unauthorized entity intercepts and potentially alters communication between two valid components.
MAN IN THE MIDDLE ATTACK
98
This architectural pattern involves multiple clients accessing a shared database or file system directly, without an intervening server to manage the logic.
SHARED DATA ARCHITECTURE
99
In a client-server architecture, this term describes a client that handles not just the user interface but also a significant portion of the application processing logic.
FAT CLIENT
100
This type of attack seeks to make a distributed system unavailable to its intended users by overwhelming it with a flood of illegitimate requests.
DENIAL OF SERVICE ATTACK
101
A distributed application design where the user interface runs on the user's computer, but all application processing and data management occur on a remote server.
THIN CLIENT ARCHITECTURE
102
The characteristic of a distributed system that allows it to effectively hide the fact that resources and processes are physically separated across a network.
TRANSPARENCY
103
In this specific peer-to-peer (P2P) architecture, there is no central server to index files; instead, the network relies on a decentralized discovery mechanism.
UNSTRUCTURED P2P
104
This communication standard allows objects written in different programming languages and running on different platforms to interact seamlessly.
CORBA
105
A distributed system configuration where resources (like printers or files) are managed by specific servers, and users access these resources through their workstations.
RESOURCE SHARING
106
True or False: Distributed systems generally offer better resource sharing than centralized systems because users can access hardware and software resources located on other computers.
TRUE
107
True or False: A "Thin Client" architecture is typically more difficult to manage than a "Fat Client" architecture because software updates must be installed on every individual user machine.
FALSE
108
True or False: Scalability in distributed systems can be achieved by adding more resources (horizontal scaling) rather than just upgrading the central hardware (vertical scaling).
TRUE
109
True or False: Middleware is strictly defined as the hardware components (routers and switches) that physically connect distributed computers.
FALSE
110
True or False: In a Master-Slave architecture, if the Master node fails, the system can usually continue to function automatically without interruption by electing a new Master immediately.
FALSE
111
True or False: One major disadvantage of distributed systems is that they are inherently more complex to secure than centralized systems due to the multiple points of access.
TRUE
112
True or False: Peer-to-Peer (P2P) systems are distinguished by the clear separation of roles where one node always requests services and the other always provides them.
FALSE
113
True or False: The "Openness" of a distributed system refers to the extent to which the system can be extended and re-implemented in various ways.
TRUE
114
True or False: In a multi-tier client-server architecture, the database server handles the presentation logic to ensure data is displayed correctly to the user.
FALSE
115
True or False: Distributed object architectures allow objects to be distributed across a network, but they must all be written in the same programming language to communicate.
FALSE
116
True or False: A Denial of Service (DoS) attack is a reliability issue but not strictly a security issue since no data is stolen.
FALSE
117
True or False: "Transparency" in a distributed system means that the user is explicitly made aware of which server is processing their request to ensure trust.
FALSE
118
True or False: Three-tier client-server architectures are generally more scalable than two-tier architectures because the application processing load can be distributed separately from the data management.
TRUE
119
True or False: The primary benefit of a distributed system is that it eliminates the need for network communication, as all data is stored locally.
FALSE
120
True or False: In a distributed system, failure is often partial; the system may continue to provide some services even if parts of it have crashed.
TRUE
121
In this specific software delivery model, a single instance of the software runs on a server and serves multiple distinct customer organizations simultaneously.
MULTI-TENANCY
122
This financial term describes the shift in cost structure where software is paid for via a recurring subscription rather than a large upfront purchase of a permanent license.
SUBSCRIPTION-BASED PRICING
123
Because SaaS users cannot modify the source code, this mechanism is provided to allow them to adapt the software's behavior to their specific business needs.
CONFIGURATION
124
This legal contract between the cloud provider and the customer specifies the guaranteed performance metrics, such as uptime percentage and response time latency.
SERVICE LEVEL AGREEMENT
125
This risk refers to the difficulty a customer faces when trying to migrate their data and business processes away from a specific cloud provider to a competitor.
VENDOR LOCK-IN
126
This underlying technology allows a single physical server to simulate multiple independent computing environments, forming the foundation of modern cloud resource allocation.
VIRTUALIZATION
127
Unlike the ASP model, modern SaaS relies on this database design strategy where customer data is separated logically but stored physically in shared tables.
SHARED DATABASE WITH LOGICAL SEPARATION
128
This characteristic of cloud computing refers to the ability of the system to automatically increase or decrease allocated resources based on the current traffic demand.
ELASTICITY (AUTO-SCALING)
129
In SaaS architecture, the software is typically accessed through this universal client interface, eliminating the need for specialized client software installation.
WEB BROWSER INTERFACE
130
This term describes the delay introduced by transmitting data over the network between the user's client and the cloud server.
LATENCY
131
This specific category of cloud service offers a platform allowing developers to build and deploy applications without managing the underlying operating systems.
PLATFORM AS A SERVICE (PaaS)
132
To maintain data security in a shared environment, SaaS architects must ensure rigorous separation of records, preventing one tenant from accessing another's.
DATA ISOLATION
133
This type of software update mechanism ensures that all users are immediately and simultaneously using the latest version of the application without manual patching.
AUTOMATIC UPDATES
134
A cloud deployment model where the infrastructure is provisioned for open use by the general public and exists on the premises of the cloud provider.
PUBLIC CLOUD
135
This design principle suggests that web server components in a cloud architecture should not retain user session data locally.
STATELESS ARCHITECTURE
136
True or False: In a true multi-tenant SaaS architecture, the provider maintains a separate source code branch for each major customer to accommodate their specific feature requests.
FALSE
137
True or False: One of the primary benefits of SaaS for the software vendor is the ability to continuously deploy bug fixes to all customers instantly.
TRUE
138
True or False: Data transfer speed (bandwidth) is rarely a limiting factor in SaaS design because modern internet connections are universally fast.
FALSE
139
True or False: Customization in SaaS is achieved by writing new code modules that are linked to the core application, similar to writing a plugin for a desktop app.
FALSE
140
True or False: Service Level Agreements (SLAs) typically place the liability for data loss entirely on the user, absolving the provider of all responsibility.
FALSE
141
True or False: SaaS applications generally require less local processing power on the client machine compared to traditional installed software.
TRUE
142
True or False: For a SaaS provider, the cost of supporting users typically increases linearly with the number of users, just like in the traditional shrink-wrapped software model.
FALSE
143
True or False: Security is often cited as a major barrier to SaaS adoption because the organization loses physical control over where its data is stored.
TRUE
144
True or False: Scalability in the cloud is achieved primarily by "vertical scaling" rather than "horizontal scaling."
FALSE
145
True or False: A "Stateless" architecture is preferred for SaaS because it allows the system to easily route user requests to any available server in the cluster.
TRUE
146
True or False: In the SaaS model, the software is treated as a capital asset (CapEx) that depreciates over time on the company's balance sheet.
FALSE
147
True or False: Configuration of a SaaS application usually involves setting parameters in a database that determine how the generic software code behaves for a specific tenant.
TRUE
148
True or False: Latency is more critical in transactional SaaS applications (like text editing) than in batch-processing applications (like payroll generation).
TRUE
149
True or False: Local regulations regarding data privacy (such as GDPR) are irrelevant in Cloud Computing because the internet has no borders.
FALSE
150
True or False: The "Application Service Provider" (ASP) model of the late 1990s is identical to modern SaaS, with the only difference being faster internet speeds.
FALSE
Study all 150 cards for free