Secure Software Development and Software Engineering Concepts

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/153

flashcard set

Earn XP

Description and Tags

This set of flashcards focuses on vocabulary related to secure software development and concepts in software engineering, including security dimensions, software reuse, project management, and quality assurance.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

154 Terms

1
New cards

Confidentiality

Ensures that sensitive information is accessed only by authorized individuals or systems.

2
New cards

Integrity

Guarantees the accuracy and completeness of data, preventing unauthorized modification or deletion.

3
New cards

Availability

Ensures that authorized users can access information and resources when needed.

4
New cards

Infrastructure Security

Focuses on securing the underlying infrastructure including networks, servers, and physical security.

5
New cards

Application Security

Focuses on securing individual applications through secure coding practices and authentication.

6
New cards

Operational Security

Concerns the secure operation and use of systems and involves security policies and training.

7
New cards

Asset

Something of value that needs protection, such as data or hardware.

8
New cards

Attack

An exploitation of a system's vulnerability, like SQL injection or denial-of-service.

9
New cards

Control

A protective measure that reduces a system's vulnerability.

10
New cards

Exposure

Possible loss or harm to a computing system.

11
New cards

Threat

Circumstances that can cause loss or harm to an asset.

12
New cards

Vulnerability

A weakness in a system that may be exploited to cause loss or harm.

13
New cards

Authentication

Verifying the identity of a user or device.

14
New cards

Authorization

Determining what a user or device is allowed to access or do.

15
New cards

Interception

Unauthorized access to an asset.

16
New cards

Interruption

Making a system or part of it unavailable.

17
New cards

Modification

Tampering with a system asset.

18
New cards

Fabrication

Inserting false information into a system.

19
New cards

Architectural Design

Decisions about system architecture that impact security.

20
New cards

Design Compromises

Balancing security features with performance and usability.

21
New cards

Design Risk Assessment

Identifying and mitigating potential vulnerabilities during the design phase.

22
New cards

Protection Requirements

Defines how the system should protect its assets.

23
New cards

Distribution

Distributing assets to reduce the impact of a successful attack.

24
New cards

Security Testing

Verifying the system's ability to resist attacks.

25
New cards

Security Validation

Demonstrating that the system meets its security requirements.

26
New cards

Experience-Based Testing

Testing based on known attack patterns and vulnerabilities.

27
New cards

Penetration Testing

Simulating attacks to identify vulnerabilities.

28
New cards

Tool-Based Analysis

Using automated tools to analyze the system for vulnerabilities.

29
New cards

Formal Verification

Mathematically proving the system's security properties.

30
New cards

Asset Identification

Identifying valuable assets needing protection.

31
New cards

Risk Assessment

Identifying, analyzing, and mitigating security risks.

32
New cards

Layered Security

Implementing security at multiple layers to enhance protection.

33
New cards

Fail Securely

System failures should not compromise security.

34
New cards

Redundancy

Using multiple components to increase availability and resilience.

35
New cards

Penetration Testing

Simulating real-world attacks to identify vulnerabilities.

36
New cards

Technical Debt

Short-term gains in development speed leading to long-term maintenance costs.

37
New cards

Legacy Systems

Older systems reliant on outdated languages and technologies.

38
New cards

System Hardware

May be obsolete or unavailable impacting legacy systems.

39
New cards

Business Processes

May be coupled tightly with legacy systems.

40
New cards

Legacy System Replacement

Risky and expensive, often avoided due to incomplete specifications.

41
New cards

Software Reuse

Using existing software components or systems to build new software.

42
New cards

Component Reuse

Reusing individual components, from subsystems to single objects.

43
New cards

Object Reuse

Reusing small-scale components that implement specific functions.

44
New cards

Software Product Lines

Families of related applications sharing a common architecture.

45
New cards

Service-Oriented Architecture (SOA)

A design paradigm where applications are composed of discrete services.

46
New cards

Loose Coupling

Services with minimal dependencies allowing independent evolution.

47
New cards

Service Registry

A central repository storing information about available services.

48
New cards

Service Provider

The entity that develops, deploys, and manages a service.

49
New cards

Service Consumer

The entity that utilizes a service.

50
New cards

Business Services

Services associated with specific business functions.

51
New cards

Utility Services

General-purpose functionality used by different business processes.

52
New cards

SOAP (Simple Object Access Protocol)

A protocol for exchanging information over a network.

53
New cards

WSDL (Web Services Description Language)

Describes web services defining operations and formats.

54
New cards

REST (Representational State Transfer)

An architectural style using resources and standard HTTP methods.

55
New cards

Service Composition

Combining multiple services to create a new service or application.

56
New cards

Workflow Management

Managing sequences of activities in service orchestrations.

57
New cards

Agile Quality Management

Focuses on a quality culture shared responsibility within teams.

58
New cards

Static Metrics

Assess quality attributes without executing software.

59
New cards

Dynamic Metrics

Require execution to assess attributes like performance.

60
New cards

Software Analytics

Automated analysis of software data for decision-making.

61
New cards

COCOMO Model

A cost estimation model for software development.

62
New cards

Risk Management Process

Involves identifying, analyzing, planning for, and monitoring risks.

63
New cards

Project Planning

Creating comprehensive plans to guide software projects.

64
New cards

Agile Planning

Iterative approach developing and delivering software incrementally.

65
New cards

Proposal Writing

Documenting project objectives and methods to secure contracts.

66
New cards

Quality Assurance Techniques

Includes reviews and inspections to identify software defects.

67
New cards

Continuous Integration

Practice of frequently integrating code changes into repositories.

68
New cards

Pair Programming

Two developers collaboratively writing code to improve code quality.

69
New cards

Modularity

Decomposing a system into independent modules.

70
New cards

Testability

Ease of testing a software system.

71
New cards

Usability

Ease with which users can learn and use a system.

72
New cards

Maintainability

Ease of modification and enhancement of software.

73
New cards

Portability

Adaptability of software to different environments.

74
New cards

Resilience

Ability of software to recover from failures.

75
New cards

Robustness

Ability of a system to handle errors and unexpected inputs.

76
New cards

Documentation

Written material providing information about software systems.

77
New cards

Refactoring

Improving a program's structure without adding functionality.

78
New cards

Security Testing

Verifying that a system can resist attacks.

79
New cards

Version Control

Managing changes to software code and documentation.

80
New cards

Regression Testing

Confirming that changes have not adversely affected existing features.

81
New cards

Risk Mitigation

Strategies developed to minimize potential risks.

82
New cards

User Stories

Short descriptions of features from the end users' perspective.

83
New cards

Velocity in Agile

Measure of the amount of work a team can accomplish in an iteration.

84
New cards

Estimation Techniques

Methods for estimating effort and time for tasks.

85
New cards

Budget Constraints

Limitations on budget impacting project delivery.

86
New cards

Quality Management System

Formal system to ensure quality is maintained.

87
New cards

Stakeholder Engagement

Involving relevant parties throughout the project lifecycle.

88
New cards

Monitoring Mechanisms

Systems for tracking project progress and reporting.

89
New cards

Performance Metrics

Quantitative measures of a software system's performance.

90
New cards

Change Requests

Formal requests for modifications in the project.

91
New cards

Traceability

Ability to track changes and requirements throughout the project.

92
New cards

Standards Compliance

Adhering to established norms and practices in quality.

93
New cards

Agile Retrospectives

Reflection meetings to improve future iterations.

94
New cards

Complexity Metrics

Tools for measuring the complexity of software, impacting maintainability.

95
New cards

Test-Driven Development (TDD)

Development approach where tests are written before coding.

96
New cards

External Interfaces

Points of interaction between different systems.

97
New cards

Incident Management

Systematic approach to handling incidents affecting software.

98
New cards

Use Case Analysis

Assessment of functional requirements through user interactions.

99
New cards

Service Level Agreements (SLAs)

Contractual commitments between service providers and consumers.

100
New cards

Microservices

Architectural style that structures an application as a collection of loosely coupled services.