CS 413 - Advanced Software Engineering

0.0(0)
studied byStudied by 8 people
full-widthCall with Kai
GameKnowt Play
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/70

flashcard set

Earn XP

Description and Tags

Quiz no. 1

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

71 Terms

1
New cards

Software Reuse

Using existing software components to build new systems.

2
New cards

Main Goal of Software Reuse

Achieve better software more quickly and at lower cost by reusing existing components.

3
New cards

Benefits of Software Reuse

  • Increased Dependability: tested, fault-fixed software is reused.

  • Reduced Process Risk: costs of reused software are known.

  • Effective Use of Specialists: knowledge encapsulated in reusable components.

  • Standards Compliance: consistent UIs, fewer user errors

  • Accelerated Development: reduced dev + validation time.

4
New cards

Increased Dependability

tested, fault-fixed software is reused

5
New cards

Reduced Process Risk

costs of reused software are known

6
New cards

Effective use of specialists

knowledge encapsulated in reusable components

7
New cards

Standards compliance

consistent UIs, fewer user errors

8
New cards

Accelerated development

reduced dev + validation time.

9
New cards

Process Risk

Costs of reused software known, reduces uncertainty in estimates.

10
New cards

Dependability

Reused, proven software increases reliability.

11
New cards

Maintenance Cost

May increase if source code is unavailable or reused elements become incompatible

12
New cards

Reuse-based Software Engineering

  • Application System Reuse: whole app may be reused to COTS or application families

  • Component Reuse: components of an app from subsystems to single objects.

  • Object/Function Reuse: well-defined object or function.

13
New cards

Application System Reuse

whole app may be reused by incorporating it into other systems (COTS) or by developing application families

14
New cards

Component Reuse

components of an application from subsystems to single objects may be reused

15
New cards

Object and Function Reuse

software components that implement a single well-defined object or function may be reused

16
New cards

Reuse Planning

Factors:

  • Development Schedule

  • Expected Lifetime

  • Team Background and Experience

  • Criticality, Non-Functional Requirements

  • Application Domain

  • Execution Platform

17
New cards

Execution Platform

Must be considered in reuse planning (OS, environment).

18
New cards

System Infrastructure Framework

Frameworks supporting communications, UIs, compilers.

19
New cards

Communication Support

Provided by system infrastructure and middleware frameworks.

20
New cards

Compiler Support

Frameworks include compiler infrastructures.

21
New cards

Web Application Framework (WAF)

  • Builds dynamic websites for web applications.

  • Interaction model: Model-View-Controller (MVC) patttern.

  • Features: security (auth/login), dynamic pages, DB support, session management, AJAX for interactive pages.

22
New cards

Model-View-Controller

  • Infrastructure Framework for GUI design.

  • Separates object presentations from interactions.

23
New cards

Commercial-Off-The-Shelf Product Reuse

  • COTS: adaptable software systems without source modification

  • Adaptation: built-in config mechanisms.

  • Benefits: faster deployment, reduced risks, vendor handles platform updates.

  • Problems: requirements adapted to COTS, vendor control evolution, lack of documentation/expertise.

24
New cards

Legacy System Reuse

Wrapped with defined interfaces, providing access through wrappers

25
New cards

Software Product Line

  • Related applications with common architecture + shared components.

  • Adaptation: config, adding components, modifying requirements.

  • Specialization: platform, environment, function, process.

26
New cards

Shared Architecture

Essential in product lines to separate subsystems and enable modifications.

27
New cards

ERP (Enterprise Resource Planning) Systems

  • Generic systems supporting business processes (ordering, invoicing, manufacturing).

  • Adapted using modules, process rules, business data models.

  • Architecture: multiple modules, business processes, common DB, rules

28
New cards

Vendor Control / System Evolution

COTS vendors control updates and evolution, not users.

29
New cards

COTS Integration Problems

  • Lack of functionality control

  • Interoperability issues (different assumptions)

  • Vendor controls evolution

  • Vendor support may be limited.

30
New cards

Framework Complexity

Frameworks are powerful but context, requiring time to use effectively.

31
New cards

Reuse Dependability

Dependability increases with reuse of tried-and-tested software.

32
New cards

Component-Based Software Engineering

  • Emphasizes design/construction using reusable components.

  • Systems are sets of off-the-shelf components integrated into architectures.

33
New cards

Software Component

  • Independent, replicable, fulfills a clear function within a defined architecture.

  • Executable entity, may contain multiple objects.

34
New cards

Component Characteristics

  1. Standardized

  2. Independent

  3. Composable

  4. Deployable

  5. Documented.

35
New cards

Component Qualification

Ensures a candidate component:

  • Performs required function

  • Fits architecture

  • Meets required quality characteristics

36
New cards

Component Wrapping

Adaptation technique to remove conflicts:

  • White-box: modify code directly

  • Grey-box: use extension language/API

  • Black-box: use pre/post-processing at interface

37
New cards

White-box Wrapping

modify code directly

38
New cards

Grey-box Wrapping

use extension language/API

39
New cards

Black-box Wrapping

use pre/post-processing at interfaces

40
New cards

Integration Conflicts

Occur even with qualified documents; wrapping resolves mismatches.

41
New cards

Interoperability

Ensured by underlying object model and data exchange standards

42
New cards

Underlying Object Model

Enables components in different languages/platforms to interoperate

43
New cards

Data Exchange Model

Drag-and-drop-like mechanisms for transferring data between components.

44
New cards

Automation

Tools/scripts/macros to facilitate component interaction

45
New cards

Domain Engineering

  • Identifies, constructs, catalogs reusable components.

  • Activities: analysis, construction, dissemination

46
New cards

Component Composition

Involves 4 architectural ingredients:

  • Data exchange model

  • Automation

  • Structured storage

  • Underlying object model

47
New cards

Advantages of CBSE

  • Reduced dev time, increased productivity, lower cost, reliability, complexity management, flexibility.

48
New cards

Disadvantages of CBSE

  • Quality of components questionable

  • Component dev + maintenance costs

  • Sensitive to changes

49
New cards

Maintainability of CBSE

CBSE increases maintainability/evolvability.

50
New cards

Reusability of CBSE

Core concept: build from existing, reusable components

51
New cards

Distributed System

  • Collection of independent computers functioning as a single coherent system.

  • Information processing spread across multiple machines.

52
New cards

Independent Computers Functioning as One

Users perceive as a single system, even if managed separately.

53
New cards

Characteristics of Distributed Systems

  • Resource sharing

  • Openness

  • Scalability

  • Fault tolerance

54
New cards

Resource Sharing

sharing of hardware and software resources

55
New cards

Openness

use of equipment and software from different vendors

56
New cards

Transparency

  • resources should be abstracted and addressed logically rather than physically.

  • middleware maps logical to physical resources.

57
New cards

Scalability

Increased throughput by adding new resources.

  • Maintain quality with increased demand

  • Scaling-up: stronger systems

  • Scaling-out: more instances

58
New cards

Fault-Tolerance

The ability to continue in operation after a fault has occurred

59
New cards

Interception

loss of confidentiality

60
New cards

Interruption

service unavailable (DoS)

61
New cards

Modification

data altered

62
New cards

Fabrication

fake data injected

63
New cards

Middleware

Manages heterogeneous components, enables communication/exchange.

64
New cards

Client-Server Architecture

  • User interacts locally (client), server provides services remotely.

  • Layers: presentation, data handling, application processing, database

65
New cards

Multi-tier Client-Server Model

  • used when there is a high volume of transactions to be processed by the server

  • presentation, data management, application, DB on separate processes/machines

66
New cards

Thin-Client Model

  • used when legacy systems are migrated to client server architectures

  • Client only handles presentation; processing/data handles by server

67
New cards

Fat-Client Model

  • more processing is delegated to the client as the application processing is locally executed

  • Client handles significant processing; sever handles data/database

68
New cards

Reliability in Distributed Systems

Must continue providing services even if some components fail

69
New cards

Communication and Data Exchange

Implemented via RPC (remote procedure calls) or message passing

70
New cards

SaaS (Software as a Service)

  • Software hosted remotely, accessed via browser

  • Owned/managed by provider

  • Paid by subscription/usage

71
New cards

Multi-tenancy

  • Many user share system while believing they have exclusive access

  • Achieved by strict separation of functionality and data