Software Engineering Lecture Notes

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

1/96

flashcard set

Earn XP

Description and Tags

Flashcards on Software Engineering

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

97 Terms

1
New cards

Software Engineering (SE)

Theories, methods, and tools for professional software development, focusing on cost-effectiveness and covering all aspects of software production.

2
New cards

Maintainability

Ability to evolve with changing customer needs.

3
New cards

Dependability/Security

Reliable, prevents physical/economic damage from failure, resists unauthorized access.

4
New cards

Efficiency

Resource-efficient (memory, processor), smooth, responsive, quick.

5
New cards

Acceptability

Suitable for target users, compatible with other systems.

6
New cards

Software Engineering

Concerns the practicalities of development and delivering useful software.

7
New cards

System Engineering

Encompasses all aspects of computer-based systems (hardware, software, process). SE is a part of this.

8
New cards

Stand-alone Systems

Marketed and sold to any customer (e.g., PC graphics programs).

9
New cards

Custom Software

Commissioned by a specific customer (e.g., embedded control systems, air traffic control).

10
New cards

Generic Products

The Developer owns the specification and makes change decisions.

11
New cards

Customized Products

Customer owns the specification and makes the change decisions.

12
New cards

Heterogeneity

Systems operate across diverse networks, computers, and mobile devices.

13
New cards

Business and Social Changes

Need for rapid adaptation and new software development due to evolving economies and technologies.

14
New cards

Security and Trust

Crucial due to software's pervasive role in life.

15
New cards

Scale

Software developed across a vast range, from small embedded devices to global cloud systems.

16
New cards

Embedded control systems

manage hardware.

17
New cards

Batch processing systems

large data batches.

18
New cards

Systems of systems

composed of multiple software systems.

19
New cards

Software Process Model

An abstract representation of a software development process, showing it from a particular perspective.

20
New cards

Specification

Defining what the system should do.

21
New cards

Design/Implementation

Defining system organization and implementing it.

22
New cards

Validation

Checking if the system meets customer requirements.

23
New cards

Evolution

Changing the system in response to changing needs.

24
New cards

Products

Outcomes of process activities.

25
New cards

Roles

Responsibilities of individuals in the process.

26
New cards

Pre/Post-conditions

Statements true before/after an activity or product creation.

27
New cards

Plan-driven processes

Activities are planned in advance, progress measured against the plan.

28
New cards

Agile processes

Planning is incremental, easier to adapt to changing customer requirements.

29
New cards

Waterfall Model

Linear, sequential. Each phase must be finished before moving on to the next, with no overlap.

30
New cards

Agile Model

Flexible and incremental. Allows for collaboration, feedback, and frequent changes. Develops in short sprints (cycles).

31
New cards

Iterative and Incremental Model

Merges repetition of iterations (revision and refining of components) and incremental development (building of the system). Developed in small parts, increments, and it goes through testing.

32
New cards

Spiral Model

A combination of the waterfall and iterative models is very risk-driven. Developed in spirals, each spiral is a phase. Helps with early risk detection.

33
New cards

V-Model

Works in a V-like structure; development on the left (descending) and testing on the right (ascending). There is testing at every stage, which emphasizes documentation.

34
New cards

Integration and Configuration

Building systems by integrating existing components or application systems.

35
New cards

Terminology

Often referred to as COTS (Commercial Off-The-Shelf) systems

36
New cards

Types of Reusable Software

Stand-alone application systems (COTS) configured for specific environments.

37
New cards

Process Activities

Real software processes are interleaved sequences of technical, collaborative, and managerial activities.

38
New cards

Overall Goal

Specifying, designing, implementing, and testing a software system.

39
New cards

Software Design and Implementation

Converting system specifications into an executable system.

40
New cards

Software Design

Creating a software structure that fulfills the specification.

41
New cards

Implementation

Translating the designed structure into a program.

42
New cards

Architectural Design

Identifying overall system structure, main components, relationships, and distribution.

43
New cards

Database Design

Designing system data structures and their representation in a database.

44
New cards

Interface Design

Defining interfaces between system components.

45
New cards

Component Selection and Design

Searching for and designing reusable components.

46
New cards

Debugging

The process of finding and correcting program faults.

47
New cards

Software Validation

To ensure the system conforms to its specification and meets customer requirements.

48
New cards

System Testing

Executing the system with test cases derived from specifications and real data.

49
New cards

Component Testing

Individual components (functions, objects, or groups) are tested independently.

50
New cards

System Testing

The system is tested as a whole, with a focus on emergent properties.

51
New cards

Customer Testing (Acceptance Testing)

Testing with customer data to verify it meets their needs.

52
New cards

Prototype

An initial system version used to demonstrate concepts and explore design options.

53
New cards

Change Tolerance (Incremental Delivery)

Development and delivery are broken into increments, each delivering a part of the required functionality.

54
New cards

Agile Development Characteristics

Specification, design, implementation are interleaved (done together)

55
New cards

Rapid Software Development

Fast-changing business environments make stable requirements nearly impossible.

56
New cards

Extreme Programming (XP)

An extreme approach to iterative development

57
New cards

Incremental Planning

Requirements are written as story cards, prioritized by costumers, and broken into tasks by developers.

58
New cards

Small Releases

Minimal useful features are built first, followed by frequent releases that add more functionality.

59
New cards

Simple Design

Only design what's immediately needed.

60
New cards

Test-First Development (TDD)

Automated unit tests are written before the code for a feature is implemented. All tests (new and old) are run with every new code addition to immediately catch errors.

61
New cards

Refactoring

Developers constantly improve the code to keep it simple, understandable, and easy to maintain, without waiting for major overhauls. This reduces the need for extensive documentation.

62
New cards

Pair Programming

Two developers work together at one computer, reviewing each other's work and sharing knowledge. This promotes shared code ownership.

63
New cards

Collective Ownership

All team members can change any part of the system, preventing knowledge silos.

64
New cards

Continuous Integration

Completed code is integrated into the main system as soon as a task is done, and all tests must pass.

65
New cards

Sustainable Pace

Avoids excessive overtime to maintain code quality and productivity.

66
New cards

On-Site Customer

A user representative works full-time with the team to provide and clarify requirements.

67
New cards

Scrum

Focus on managing iterative development

68
New cards

Project Closure

Finalizes the project, completes documentation, and reviews lessons learned.

69
New cards

Development team

A self-organizing group (max 7 people) responsible for the software.

70
New cards

Product backlog

A list of all work items, like features and requirements

71
New cards

Product owner

Manages and prioritized the product backlog, ensuring it meets business needs

72
New cards

Scrum

Daily meeting where the team reviews progress and discuss problems

73
New cards

Scrum master

Ensures the Scrum process is followed, guides the team, and protects them from outside distractions. (Not a project manager).

74
New cards

Sprint

A fixed-length development iteration (usually 2-4 weeks).

75
New cards

Velocity

An estimate of how much work a team can complete in a sprint, used for planning and measuring improvement

76
New cards

Scaling Agile Methods

Adapting Agile for larger, longer projects with many teams (possibly spread out) or introducing it across an entire large organization.

77
New cards

Requirements Engineering (RE)

The process of defining customer-required system services and operational/development constraints.

78
New cards

System requirements

Structured document detailing system functions, services, and constraints, defining implementation, and potentially part of a contract.

79
New cards

System Stakeholders

Any person/organization affected by the system with a legitimate interest.

80
New cards

Functional requirements

Describe system services, reactions to inputs, and behavior. Can also state what the system should not do.

81
New cards

Non-functional requirements

Constraints on system services/functions (e.g., timing, development process, standards).

82
New cards

Product requirements

Specify delivered product behavior (speed, reliability).

83
New cards

Organizational requirements

Consequence of policies/procedures (process standards, implementation).

84
New cards

External requirements

Arise from external factors (interoperability, legislative).

85
New cards

Requirements Elicitation

Technical staff work with customers to understand domain, services, constraints. Involves stakeholders.

86
New cards

Stories and Scenarios

Real-life examples of system use. Stakeholders can relate to them.

87
New cards

Requirements Specification

Writing user and system requirements into a requirements document.

88
New cards

Mathematical specifications

Based on math concepts (finite-state machines, sets). Unambiguous but not understood by most customers.

89
New cards

Software Requirements Document (SRD)

Official statement of system requirements. Not a design document. Should include user and system requirements.

90
New cards

Requirements Validation

Demonstrates requirements define what the customer really wants.

91
New cards

Requirements Management

Process of managing changing requirements during RE and development.

92
New cards

Project Risks

Affect schedule or resources

93
New cards

Product Risks

Affect software quality or performance

94
New cards

Business Risks

Affect the company

95
New cards

Motivating People

Help people work best by organizing tasks and the work environment

96
New cards

Milestones

Points in the schedule to check progress.

97
New cards

COCOMO Cost Modeling

Used model for estimating software costs.