CP317 Software Engineering – Study Sheet 2

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

1/84

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

85 Terms

1
New cards
What are the phases typically included in the Software Development Life Cycle (SDLC)?
Requirements, Design, Implementation, Testing, Deployment, Maintenance.
2
New cards
What is the difference between predictive and adaptive process models in software engineering?
Predictive models foresee outcomes and are plan-driven (like Waterfall), while adaptive models focus on flexibility and iterative development (like Agile).
3
New cards
Define cohesion in software design.
Cohesion refers to how closely related the responsibilities of a module or class are.
4
New cards
Define coupling in software design.
Coupling refers to the degree of interdependence between modules.
5
New cards
What are the four fundamental OOP concepts?
Abstraction, Encapsulation, Inheritance, Polymorphism.
6
New cards
What does the Dependency Inversion Principle (DIP) emphasize?
High-level modules should not depend on low-level modules; both should depend on abstractions.
7
New cards
What is the Single Responsibility Principle (SRP)?
A module/class should have one and only one reason to change (one responsibility).
8
New cards
What is the Open/Closed Principle (OCP)?
Software entities should be open for extension but closed for modification.
9
New cards
What is the Liskov Substitution Principle (LSP)?
Subtypes must be substitutable for their base types without altering program correctness.
10
New cards
Contrast black-box and white-box testing.
Black-box testing evaluates software functionality without looking at internal code structure; white-box testing involves testing internal logic and structure.
11
New cards
What is verification in software engineering?
The process of checking if the software meets specifications.
12
New cards
What does validation check in software development?
Validation checks if the software meets user needs and requirements.
13
New cards
What is the V-Model in software development?
A model emphasizing verification and validation by pairing development phases with corresponding testing phases.
14
New cards
What is the main goal of the iterative model?
To develop the system through repeated cycles (iterations) and refine with each version.
15
New cards
What is cyclomatic complexity?
A code complexity metric that measures the number of linearly independent paths through a program’s source code.
16
New cards
What is function point analysis?
A metric that measures functionality from the user’s perspective, independent of implementation.
17
New cards
What type of testing is used in Test-Driven Development (TDD)?
Tests are written before developing the code.
18
New cards
What is the primary difference between cutover (big bang) deployment and blue-green deployment?
Cutover replaces the old system at once, whereas blue-green runs old and new systems in parallel with instant rollback options.
19
New cards
What is a key advantage of agile methodologies?
They emphasize flexibility and customer collaboration with rapid delivery of valuable software.
20
New cards
What is the purpose of regression testing?
To verify that new changes haven’t broken existing functionality.
21
New cards

What is an MVP (Minimum Viable Product)?

An MVP is the simplest version of a product that can be released to validate a business idea by collecting feedback.

22
New cards

Explain the concept of 'Technical Debt'.

Technical debt refers to the implied cost of additional rework caused by choosing an easy solution now instead of a better approach that would take longer.

23
New cards

What is the role of a Scrum Master?

The Scrum Master facilitates the Scrum process, helps the team resolve impediments, and ensures adherence to Agile principles.

24
New cards

Define 'User Acceptance Testing' (UAT).

UAT is the final phase of testing to validate that the software meets business needs and is ready for deployment.

25
New cards

What do the initials CI/CD stand for?

CI/CD stands for Continuous Integration and Continuous Deployment, a methodology for automating the software release process.

26
New cards

What is pair programming?

Pair programming is an Agile practice where two programmers work together at one workstation, with one writing code and the other reviewing each line.

27
New cards

Define 'Feature Creep'.

Feature creep refers to the addition of new features to a project that were not initially planned, often leading to project delays.

28
New cards

What does a Gantt chart represent in project management?

A Gantt chart is a visual representation of a project schedule showing the start and finish dates of various elements.

29
New cards

What is 'Agile Estimation' and its importance?

Agile estimation is the process of predicting the effort required to complete a project, important for planning and resource allocation.

30
New cards

What is the purpose of a 'Sprint Retrospective'?

A Sprint Retrospective is a meeting at the end of a sprint where the team reflects on the past sprint to improve future performance.

31
New cards

What is a user story in Agile development?

A user story is a brief description of a feature from the perspective of the end user, used to capture what the user needs.

32
New cards

Define 'Increment' in the context of Agile.

An increment is a completed portion of work or feature that adds value and contributes to the software product.

33
New cards

What is the purpose of a product backlog?

The product backlog is a prioritized list of features, enhancements, and fixes required for a product release.

34
New cards

What does 'Scrum' refer to in Agile methodology?

Scrum is a framework for managing and completing complex projects using iterative and incremental practices.

35
New cards

What is a 'Burndown Chart'?

A burndown chart is a visual representation of work completed versus work remaining in a sprint or project.

36
New cards

Explain the concept of 'Velocity' in Agile.

Velocity measures the amount of work a team completes in a sprint, used for forecasting future sprints.

37
New cards

What is Continuous Integration (CI)?

CI is a practice where developers frequently integrate their code changes into a shared repository, followed by automated testing.

38
New cards

What is Continuous Deployment (CD)?

CD is the practice of automatically deploying every code change that passes automated tests directly to production.

39
New cards

Define 'Product Owner' in Scrum.

The Product Owner is responsible for defining the vision of the product and managing the product backlog.

40
New cards

What is an Agile board?

An Agile board is a visual tool used for managing tasks and workflows during a project, often displayed as a Kanban board.

41
New cards

What is a Kanban board?

A Kanban board is a visual representation of work items in a process, displaying tasks in various stages of completion.

42
New cards

What does the term 'Sprint' mean in Agile?

A Sprint is a time-boxed period during which specific work must be completed and made ready for review.

43
New cards

Define 'Backlog Grooming'.

Backlog Grooming, or Backlog Refinement, is the ongoing process of reviewing and prioritizing items in the product backlog.

44
New cards

What is the role of a 'Development Team' in Scrum?

The Development Team is a group of professionals who work together to deliver a potentially releasable Increment of the product in each Sprint.

45
New cards

What does 'Timeboxing' mean in Agile?

Timeboxing is the practice of setting a fixed time duration for a task, encouraging focus and efficiency.

46
New cards

What is 'Release Planning'?

Release Planning involves outlining the features and requirements to be delivered in a subsequent release, along with timelines.

47
New cards

What does 'Impediment' mean in Agile?

An Impediment is an obstacle that prevents a team from achieving its objectives, which should be addressed by the Scrum Master.

48
New cards

Define 'Sprint Goal'.

The Sprint Goal is the objective set for the Sprint, guiding the Development Team's work and providing focus.

49
New cards

What is 'Behavior-Driven Development' (BDD)?

BDD is a software development approach that encourages collaboration between developers, QA, and non-technical stakeholders through shared examples.

50
New cards

Define 'Test Automation'.

Test Automation refers to using software to control the execution of tests and the comparison of actual outcomes against predicted outcomes.

51
New cards

What is 'Continuous Testing'?

Continuous Testing is the practice of executing automated tests as part of the software delivery pipeline to provide immediate feedback.

52
New cards

Explain the role of a 'Business Analyst' in software development.

A Business Analyst gathers requirements, analyzes business needs, and formulates solutions to improve business processes.

53
New cards

Define 'Prototype' in software development.

A Prototype is an early sample or model of a product used for testing concepts or processes.

54
New cards

What is a 'Change Request'?

A Change Request is a formal proposal for an alteration to be made to a system or project.

55
New cards

What is 'Documentation' in software development?

Documentation refers to the written text that accompanies software, outlining its functionality, design, user instructions, and other relevant information.

56
New cards

Describe 'Load Testing'.

Load Testing is the process of evaluating how well a system can handle a specific expected load, ensuring it can operate under varying conditions.

57
New cards

What is 'End-to-End Testing'?

End-to-End Testing is a testing methodology used to validate the functionality of an application by simulating real user scenarios.

58
New cards

Define 'Risk Management' in software projects.

Risk Management involves identifying, assessing, and controlling risks to minimize the impact on project outcomes.

59
New cards

What is 'Feature Toggle'?

Feature Toggle is a technique used to enable or disable features in a software application without deploying new code.

60
New cards

Explain the term 'Code Review'.

A Code Review is a systematic examination of computer source code with the intention of finding bugs and improving code quality.

61
New cards

What is 'System Integration Testing'?

System Integration Testing is the phase of software testing where individual software modules are combined and tested as a group.

62
New cards

Define 'Release Management'.

Release Management is the process of planning, scheduling, and controlling software builds through different stages and environments.

63
New cards

What does 'User Experience (UX) Testing' involve?

UX Testing measures the usability and overall experience a user has with a product to ensure it meets their needs.

64
New cards

What is a 'Stakeholder' in the context of software projects?

A Stakeholder is any individual, group, or organization that has an interest in the project's outcome.

65
New cards

Define 'Scrum Board'.

A Scrum Board is a visual tool to track the progress of tasks during a sprint in a Scrum project.

66
New cards

What is 'DevOps'?

DevOps is a set of practices that aim to automate and integrate the processes of software development (Dev) and IT operations (Ops).

67
New cards

What is 'Software Development' (SD)?

Software Development is the process of designing, programming, testing, and maintaining software applications.

68
New cards

What is 'Debugging' in software development?

Debugging is the process of identifying and removing errors or defects in software.

69
New cards

Define 'Version Control' in software development.

Version Control is a system that records changes to files over time so that specific versions can be recalled later.

70
New cards

What is 'Continuous Delivery' (CD)?

Continuous Delivery is the practice of ensuring that code changes can be safely deployed to production at any time.

71
New cards

What is a 'Technical Specification'?

A Technical Specification outlines the technical requirements and details needed to build a software product.

72
New cards

What is 'User Interface (UI) Design'?

UI Design is the process of designing the layout and interactive elements of a software application.

73
New cards

What does 'Quality Assurance' (QA) mean in software engineering?

QA is the systematic process of ensuring that software products meet specified requirements and quality standards.

74
New cards

What is 'Acceptance Testing'?

Acceptance Testing is the final testing phase where the software is evaluated to determine if it meets the acceptance criteria set by the client or user.

75
New cards

What is the '80/20 rule' in software development?

The 80/20 rule, or Pareto Principle, suggests that 80% of consequences come from 20% of the causes, emphasizing focusing on key features.

76
New cards

Define 'Software Architecture'.

Software Architecture is the high-level structure of a software system, defining its components and their relationships.

77
New cards

What are 'Coding Standards'?

Coding Standards are a set of guidelines and best practices for writing code to ensure consistency and quality.

78
New cards

What is 'Load Balancing' in web services?

Load Balancing is the distribution of network or application traffic across multiple servers to ensure reliability and performance.

79
New cards

What does 'API' stand for, and what is its purpose?

API stands for Application Programming Interface, and it allows different software applications to communicate with each other.

80
New cards

What is 'Refactoring' in software development?

Refactoring is the practice of restructuring existing computer code without changing its external behavior to improve readability or maintainability.

81
New cards

Define 'Overhead' in project management.

Overhead refers to indirect costs associated with a project, such as administration, system maintenance, and facilities.

82
New cards

What is 'Dependency Management' in software projects?

Dependency Management is the process of handling libraries or modules that a project needs to function, ensuring compatibility and updates.

83
New cards

What is 'Scalability' in software design?

Scalability refers to the capability of a system to handle a growing amount of work or its potential to accommodate growth.

84
New cards

What is 'Cloud Computing'?

Cloud Computing is the delivery of computing services over the internet, including storage, processing, and software.

85
New cards

What is a 'Release Notes'?

Release Notes are documents that accompany software releases, detailing new features, improvements, and bug fixes.