Software Eng 2 Flashcards

(48 cards)

1
Q

What is a distributed system?

A

A collection of independent computers that appears to the user as a single coherent system.

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

List 5 benefits of developing systems as distributed systems.

A
  • Resource Sharing
  • Openness
  • Concurrency
  • Scalability
  • Fault Tolerance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What does transparency in distributed systems refer to?

A

The extent to which the distributed system appears to the user as a single system.

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

What is the significance of openness in distributed system design?

A

Should a system be designed using standard protocols that support interoperability?

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

What is scalability in the context of distributed systems?

A

The capability of the system to increase its capacity in response to increasing demands.

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

What are the challenges related to security in distributed systems?

A
  • Interception
  • Interruption
  • Modification
  • Fabrication
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What does failure management in distributed systems involve?

A
  • Detecting component failures
  • Continuing service delivery despite failures
  • Implementing fault tolerance techniques
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Define procedural interaction in distributed systems.

A

One computer calls a known service provided by another computer and waits for it to be delivered.

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

What is message-based interaction?

A

A message is sent to another computer after specifying what needs to be included in it.

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

True or False: In procedural interaction, the caller and receiver must be available at the same time.

A

True

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

What is middleware in distributed systems?

A

Software necessary to manage components and ensure they can exchange information and communicate.

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

What is the client-server model?

A

An application modeled as a set of services provided by servers, with clients interacting with those services.

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

What are the layers in a layered architectural model for client-server applications?

A
  • Presentation Layer
  • Data Handling Layer
  • Application Processing Layer
  • Database Layer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is the master-slave architecture?

A

A model where separate processors are assigned to tasks like data acquisition, processing, and actuator management.

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

What are the characteristics of the master-slave model?

A
  • Suitable for predictable, localized, and distributed processing
  • Common in real-time systems requiring strict deadlines
  • Efficient task delegation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What defines a two-tier client-server architecture?

A

Structured around a single logical server and multiple client devices interacting with it.

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

What is a thin client?

A

A client device that primarily handles the presentation layer while the server manages other aspects.

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

What is a fat client?

A

A client device that distributes some or all of the application processing to reduce the load on the server.

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

What is the main issue with a two-tier client-server setup?

A

It forces the system’s logical layers onto just two machines: the client and the server.

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

What are the benefits of distributed component architectures?

A
  • Service Allocation Flexibility
  • Open System Architecture
  • Scalability and Flexibility
  • Dynamic Reconfiguration
21
Q

What are the drawbacks of distributed component architectures?

A
  • Complexity
  • Lack of Universal Standards
22
Q

What is a peer-to-peer (P2P) architecture?

A

A decentralized network where any node can perform computations, eliminating the distinction between clients and servers.

23
Q

What are the advantages of decentralized P2P architecture?

A
  • High redundancy
  • Fault-tolerant and resilient to node disconnections
24
Q

What are the challenges of Software as a Service (SaaS)?

A
  • Data transfer speeds can be a bottleneck
  • Users may incur costs based on data transfer volume
  • Limited control over software updates
25
What is reuse-based software engineering?
An approach that focuses on reusing existing software to reduce costs, speed up delivery, and improve quality.
26
What are the levels of reuse in software engineering?
* System Reuse * Application Reuse * Component Reuse * Object and Function Reuse * Concept Reuse
27
What factors should be considered when planning for software reuse?
* Development Schedule * Expected Software Lifetime * Team’s Expertise * Software Criticality & Non-Functional Requirements * Application Domain * Platform Compatibility
28
What are application frameworks?
Generic structures extended to create specific applications or subsystems.
29
What factors should be considered when planning software reuse?
* Development Schedule * Expected Software Lifetime * Team’s Expertise * Software Criticality & Non-Functional Requirements * Application Domain * Platform Compatibility ## Footnote These factors help determine the feasibility and effectiveness of software reuse.
30
True or False: Reuse decisions are primarily based on technical feasibility.
False ## Footnote Reuse decisions often stem from managerial perspectives rather than technical feasibility.
31
How are frameworks defined?
Frameworks are described as a generic structure extended to create specific applications or subsystems. ## Footnote They consist of an integrated set of software artifacts that collaborate to deliver a reusable architecture.
32
What are the key features of frameworks?
* Enable design reuse through skeleton architecture and reusable classes * Support inheritance, polymorphism, and customization * Implemented in languages like Java, C#, Python, Ruby * Can integrate with other frameworks ## Footnote These features enhance the flexibility and reusability of software components.
33
What architecture do web application frameworks typically follow?
Model-View-Controller (MVC) architecture ## Footnote This architecture separates data, presentation, and interaction.
34
What are design patterns incorporated in frameworks?
* Observer * Strategy * Composite ## Footnote These patterns enhance modularity and extensibility in frameworks.
35
What is Inversion of Control in the context of frameworks?
The framework manages control flow by invoking application-specific methods during events. ## Footnote This contrasts with traditional applications where the application controls the flow.
36
What key features do web application frameworks provide?
* Security * Dynamic Web Pages * Database Integration * Session Management * User Interaction ## Footnote These features facilitate the development of secure and interactive web applications.
37
How do developers extend frameworks?
By adding concrete classes and 'callback' methods to handle events. ## Footnote Framework objects control the system and trigger predefined hook methods.
38
List the three classes of frameworks.
* System Infrastructure Frameworks * Middleware Integration Frameworks * Enterprise Application Frameworks ## Footnote Each class serves a distinct purpose in software development.
39
What challenges are associated with software adaptation?
* Complexity * High Costs * Debugging issues ## Footnote These challenges can hinder the effective use of frameworks.
40
What is a software product line (SPL)?
A set of related applications built on a common architecture and shared components. ## Footnote SPL involves identifying common functionality in product instances.
41
What are core components in a software product line?
Provide foundational infrastructure. ## Footnote These components are essential for the functioning of the product line.
42
What is the difference between application frameworks and software product lines?
Application frameworks use object-oriented features with limited modifications, while software product lines allow for more flexibility in component modification and replacement. ## Footnote This distinction highlights the adaptability of software product lines.
43
What is platform specialization in a software product line?
Versions are developed for different platforms modifying only components that interface with hardware or the operating system. ## Footnote This ensures compatibility across various platforms.
44
What is the process for extending a software product line?
* Elicit stakeholder requirements * Select the closest existing system * Renegotiate requirements * Adapt existing system * Deliver new product line family member ## Footnote This process emphasizes balancing reuse with meeting specific requirements.
45
What types of application system products exist?
* Configurable Application System * Application System Integration ## Footnote These types reflect different approaches to providing software solutions.
46
What is an Enterprise Resource Planning (ERP) system?
A system that gathers detailed information about the customer’s business and embeds it in a configuration database. ## Footnote ERP systems are modular and designed to avoid data duplication.
47
What are the four important system integration problems?
* Lack of control over functionality and performance * Problems with system interoperability * No control over system evolution * Support from system vendors ## Footnote These problems can complicate the integration of systems.
48
Fill in the blank: A technique used to integrate existing systems into a larger architecture is called _______.
[application wrapping] ## Footnote Application wrapping involves creating a service wrapper around the application.