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/123

flashcard set

Earn XP

Description and Tags

These flashcards cover key concepts from the lecture notes on secure software development and software engineering.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

124 Terms

1
New cards

Confidentiality

Ensures that only authorized individuals or systems can access sensitive information.

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 and servers.

5
New cards

Application Security

Focuses on securing individual applications through practices such as secure coding.

6
New cards

Operational Security

Involves the secure operation and use of systems, including security policies and user 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.

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 have the potential to cause loss or harm.

12
New cards

Vulnerability

A weakness in a computer-based 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

Denial-of-Service (DoS) attack

An attack that makes a system or part of a system unavailable.

16
New cards

Interception

Unauthorized access to an asset.

17
New cards

Interruption

Making a system or part of a system unavailable.

18
New cards

Modification

Tampering with a system asset.

19
New cards

Fabrication

Inserting false information into a system.

20
New cards

Architectural Design

Decisions about system architecture that impact security.

21
New cards

Design Compromises

Balancing security features with performance and usability.

22
New cards

Protection Requirements

Define how the system should protect its assets.

23
New cards

Security Testing

Verifying the system's ability to resist attacks.

24
New cards

Penetration Testing

Simulating real-world attacks to identify vulnerabilities.

25
New cards

Asset Identification

Identifying valuable assets that need protection.

26
New cards

Threat Identification

Identifying potential threats to assets.

27
New cards

Risk Assessment

Identifying, analyzing, and mitigating security risks.

28
New cards

Agile Development

An iterative approach where software is developed and delivered incrementally.

29
New cards

Plan-Driven Development

A traditional approach where the software development process is planned upfront.

30
New cards

Software Measurement

Assigning numerical values to software attributes to enable objective comparisons.

31
New cards

Non-Functional Characteristics

Subjective qualities based on aspects like reliability and usability.

32
New cards

Software Standards

Formal specifications defining attributes of software products or processes.

33
New cards

Reviews and Inspections

Systematic examinations of software artifacts to identify potential problems.

34
New cards

Static Metrics

Metrics measured without executing the software.

35
New cards

Dynamic Metrics

Metrics that require the execution of software for assessment.

36
New cards

Service-Oriented Architecture (SOA)

A software design paradigm where applications are composed of discrete, self-contained services.

37
New cards

Loose Coupling

Services interact through standardized interfaces, minimizing dependencies.

38
New cards

Service Registry

A central repository that stores information about available services.

39
New cards

Service Composition

The process of combining multiple services to create a composite service.

40
New cards

Utility Services

Services that provide general-purpose functionality used by different business processes.

41
New cards

Business Services

Services associated with a specific business function.

42
New cards

SOAP

A messaging protocol for exchanging information between applications.

43
New cards

WSDL

An XML-based language for describing web services.

44
New cards

REST

An architectural style for building web services based on resources and standard HTTP methods.

45
New cards

Service Testing Challenges

Include external dependencies and unpredictable non-functional behavior.

46
New cards

Agile Quality Management

Emphasizes a quality culture where all team members share responsibility for quality.

47
New cards

Motivation

Organizing work and the environment to encourage effective work.

48
New cards

Project Risks

Risks that affect schedule or resources.

49
New cards

Product Risks

Risks that affect software quality or performance.

50
New cards

Business Risks

Risks that affect the organization as a whole.

51
New cards

Change Acceptance

Maintainability of affected components in the software.

52
New cards

Change Implementation

Impact of changes on system maintainability.

53
New cards

Software Re-engineering

Restructuring or rewriting parts of a legacy system without changing its functionality.

54
New cards

Refactoring

Improving a program to slow down degradation through change.

55
New cards

Change Requests

Formal requests for changes in the software development process.

56
New cards

Impact Analysis

Assessing the effects of proposed changes on the system.

57
New cards

Fault Repair

Fixing bugs and vulnerabilities during maintenance.

58
New cards

Service Deployment

The process of making a service available for use.

59
New cards

Service Validation and Testing

Rigorous testing to ensure the service meets its requirements.

60
New cards

Agile Practices for Quality

Practices that prioritize quality management in Agile development.

61
New cards

Software Analytics

Automated analysis of large software datasets for decision-making.

62
New cards

Software Pricing

Determining the final price charged to a client.

63
New cards

Contractual Terms

Terms of the contract that significantly impact pricing.

64
New cards

Requirements Volatility

Likelihood of changes in requirements.

65
New cards

Pricing Strategies

Various methods used to set software pricing.

66
New cards

Task Breakdown

Dividing the project into smaller tasks for better organization.

67
New cards

Time and Resource Estimation

Estimating the required time and resources for tasks.

68
New cards

Agile Planning Challenges

Difficulties that arise in agile project planning.

69
New cards

Team Effectiveness Factors

Factors contributing to the effectiveness of a software development team.

70
New cards

Group Cohesiveness

A measure of how well group members work together.

71
New cards

Technical Debt

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

72
New cards

Configuration Management Plan

Procedures for managing software versions and changes.

73
New cards

Quality Management

Ensuring that software meets specified requirements and fulfilling its intended purpose.

74
New cards

Change Implementation Time

Time required to implement changes in the software.

75
New cards

User Stories

Descriptive features from the user's perspective.

76
New cards

Software Evolution

The process of continuously adapting software to meet new requirements.

77
New cards

Incident Management

Handling urgent change requests and emergencies.

78
New cards

Guidelines for Secure Coding

Best practices for writing code that minimizes vulnerabilities.

79
New cards

Digital Signatures

Using cryptography to verify data authenticity and integrity.

80
New cards

Access Control Lists (ACLs)

Defining permissions for users and groups.

81
New cards

Multi-Factor Authentication (MFA)

Using multiple authentication methods to enhance security.

82
New cards

Security Information and Event Management (SIEM)

Tools and processes for collecting and analyzing security data.

83
New cards

Data Loss Prevention (DLP)

Strategies to prevent sensitive data from being lost or accessed unauthorized.

84
New cards

Redundancy

Using multiple components to increase availability and resilience.

85
New cards

Service Consumer

The entity that uses a service.

86
New cards

Service Provider

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

87
New cards

Service Requirements

Functional and non-functional requirements for a service.

88
New cards

Service Design Patterns

Design patterns specifically for service-oriented architectures.

89
New cards

Regression Testing

Testing previously developed and tested software after changes.

90
New cards

Agile vs. Traditional Quality Management

Differences in approach between Agile and traditional methods for quality assurance.

91
New cards

Formal Verification

Mathematically proving the system's security properties.

92
New cards

Software Baselines

Agreed-upon versions of software used as reference points.

93
New cards

Stakeholder Involvement

Engagement of key individuals in the software development process.

94
New cards

Risk Mitigation Strategies

Approaches to minimize the impact of identified risks.

95
New cards

Feedback Mechanisms

Methods for receiving and addressing stakeholder input.

96
New cards

Continuous Integration

The practice of merging code changes frequently to detect issues early.

97
New cards

Time and Quality Trade-off

Balancing project time with the quality of deliverables.

98
New cards

Cost-Benefit Analysis

Evaluating the costs versus benefits of software requirements.

99
New cards

Security Breach

Unauthorized access to sensitive information.

100
New cards

User Acceptance Testing (UAT)

Final testing phase before software goes live, involving end-users.