CS 2340 Notes

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

1/97

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.

98 Terms

1
New cards

Waterfall method

A project progression method that follows a sequential and linear approach, where each phase must be completed before the next one can begin.

2
New cards

Agile methodology

A highly iterative and incremental development process that is flexible compared to the Waterfall method.

3
New cards

Extreme Programming (XP)

A software development methodology that emphasizes practices such as incremental planning, small releases, test-first development, and pair programming.

4
New cards

Pair programming

A practice in Extreme Programming where two programmers work together on the same machine, aiming to improve code quality and accelerate knowledge transfer.

5
New cards

Customer tests

Tests that help identify and fix bugs early in the development process, leading to improved software quality and increased customer satisfaction.

6
New cards

Scrum

A framework for managing and organizing Agile development, involving roles like Product Owner, Team, and Scrum Master.

7
New cards

Scrum ceremonies

Sprint Planning, Daily Scrum, Sprint Review, and Sprint Retrospective, each serving different purposes in the Scrum process.

8
New cards

Refactoring

The process of improving the structure and design of existing code without changing its external behavior, important for the long-term sustainment of software systems.

9
New cards

Software architecture

The design and structure of a software system, including different types such as client-server architecture.

10
New cards

Design stamina hypothesis

Considering the impact of design changes on business and making data-driven decisions to avoid wasting time and resources.

11
New cards

Client-server architecture

A system where clients call on services offered by a server, often organized in a two-tier architectural style with physical and logical separation.

12
New cards

Scalability

The ability of a system to handle increasing amounts of work or data.

13
New cards

Organization

The arrangement and management of resources in a systematic way.

14
New cards

Efficiency

The ability to accomplish a task with minimum wasted effort or resources.

15
New cards

N-Tier architecture

A system architecture where different layers of the system are separated processes that may execute on different processors.

16
New cards

Denial-of-service attacks

Attacks that aim to make a service or network unavailable to its intended users.

17
New cards

Server failures

Instances where a server stops functioning properly.

18
New cards

Peer-to-Peer

Decentralized systems in which computations can be carried out by any node on the network.

19
New cards

Computationally intensive

Systems that require a significant amount of computational power.

20
New cards

Redundant

Having multiple instances or backups to ensure fault-tolerance.

21
New cards

Blackboard/Shared Memory

A system where a blackboard is iteratively updated by a diverse group of specialist knowledge sources.

22
New cards

Pipe and Filter

A data-centric style structure where data flows through the application and transformations are performed on it.

23
New cards

Workflow

The sequence of tasks or activities that need to be completed to achieve a specific goal.

24
New cards

Layered system

Organizing a system into layers with related functionality/logic associated with each layer.

25
New cards

Model-View-Controller (MVC)

A layered approach where the user interacts with the controller, which manipulates the model and updates the view.

26
New cards

Model-View-ViewModel (MVVM)

Derived from MVC, where the business logic is separate from the view.

27
New cards

Event Driven Architecture

A system architecture where event producers generate events and event consumers listen for those events.

28
New cards

Microservices

Small, independent, self-contained services that perform specific functions in an application.

29
New cards

Functional requirements

Specific tasks or functionalities that a system should perform.

30
New cards

Non-functional requirements

Criteria used to judge the operation of a system, such as security, accuracy, performance, cost, usability, adaptability, and reusability.

31
New cards

Requirements Engineering

The process of establishing the needs of stakeholders that software needs to solve.

32
New cards

Stakeholders

Individuals or groups affected by the system or its functionality.

33
New cards

Application domain

The specific area or industry for which the software is being developed.

34
New cards

Verification

The process of ensuring that requirements accurately reflect customer needs. Focuses on the quality of the software, including completeness, pertinence, testing, inspection, and design analysis.

35
New cards

Validation

The process of ensuring that the system reflects stakeholders' requests.

36
New cards

Requirement Engineering: Risk Analysis

The evaluation of potential risks and their impact on the system.

37
New cards

Domain Model

A visual representation of conceptual classes or real situation objects in a domain and their relationships based on system requirements.

38
New cards

Conceptual classes

Real-world classes represented in a domain model, not software classes.

39
New cards

Use Cases

Descriptions of how the system will act based on interactions with its end users (actors), primarily used to document functional requirements.

40
New cards

User Stories

Provided in small increments, can be viewed as a subset of use cases.

41
New cards

Acceptance criteria

Given, And, When, Then statements that define the expected outcomes of a user story.

42
New cards

Use Case Structure

Actor/user, SuD, Goal, Preconditions, Main success scenario, Alternate scenario, Postcondition.

43
New cards

Brief Use Case

One paragraph summary of functionality.

44
New cards

Casual Use Case

Multiple paragraphs that cover multiple scenarios.

45
New cards

Fully-dressed Use Case

Structured, detailed description of scenarios.

46
New cards

Essential Use Case Style

Focuses on the core functionality and main success scenario.

47
New cards

Concrete Use Case Style

Includes more detailed steps and alternate scenarios.

48
New cards

Use Case Model

A collection of use cases that describe the behavior of a system.

49
New cards

Use Case Diagram

A diagram that shows the relationships between actors, use cases, and their associations.

50
New cards

Primary Actor

Has user goals fulfilled through using services of the SuD (e.g., library member, librarian).

51
New cards

Supporting Actor

Provides service (e.g., authorization service, payment service).

52
New cards

Offstage Actor

Has an interest in the behavior of the use case but is not primary or supporting (e.g., district regulating agency).

53
New cards

Version Control

A system that tracks changes to files over time, allowing for reverting to previous versions and collaboration.

54
New cards

git clone

Creates a local copy of a remote repository.

55
New cards

git add

Adds a file or set of files to the staging area.

56
New cards

git commit

Commits the changes in the staging area to the local repository.

57
New cards

git push

Pushes the local commits to the remote repository.

58
New cards

git pull

Pulls the latest changes from the remote repository to the local repository.

59
New cards

git status

Shows the status of the working directory, including modified and staged files.

60
New cards

git branch

Creates a new branch.

61
New cards

git checkout

Switches to a different branch.

62
New cards

git switch

Switches to a different branch (similar to git checkout).

63
New cards

Local repository

A repository stored on the user's local machine.

64
New cards

Remote repository

A repository stored on a remote server, typically used for collaboration.

65
New cards

Remote repository

A copy of a repository stored on a server.

66
New cards

3-stage process for making a commit and pushing to the remote repository:

  • Make Changes to file and stage changes using git add

  • Commit changes using git commit

  • Push changes to the remote repository using git push

67
New cards

Create a new branch

git branch

68
New cards

Switch branches

git switch/checkout

69
New cards

Merge a feature branch into the main branch

git merge

70
New cards

Pull request

A way to request that your changes be merged into another branch. Used for collaboration.

71
New cards

Good commit messages

Concise, clear messages that give a general summary of the changes done.

72
New cards

Bad commit messages

Vague messages that don’t relay any information.

73
New cards

Creational design pattern

A type of design pattern that focuses on object creation mechanisms.

74
New cards

Structural design pattern

A type of design pattern that focuses on the composition of classes and objects.

75
New cards

Behavioral design pattern

A type of design pattern that focuses on the interaction between objects.

76
New cards

Singleton design pattern

A creational pattern that restricts the instantiation of a class to one object.

77
New cards

Real-world examples of Singleton design pattern

Logging systems, database connections, configuration managers.

78
New cards

System Sequence Diagram (SSD)

A dynamic diagram that shows the sequence of events between actors and the system. Also shows the sequence of events that occur over time.

79
New cards

Actor

An entity that interacts with the system from the outside.

80
New cards

System events

Events that occur within the system triggered by an actor or another system event.

81
New cards

alt (Alternatives) fragment

Used when a choice needs to be made between two or more message sequences.

82
New cards

loop (Loop) fragment

Represents a repetitive sequence until a condition is met.

83
New cards

opt (Option) fragment

Semantically equivalent to a simplified alternative fragment to model "if then" sequence.

84
New cards

What determines the direction and order of messages in an SSD?

determined by the sequence of events that occur when an actor interacts with the system. Messages are typically sent from the actor to the system, and then from the system back to the actor.

85
New cards

Solid line communications

Represent synchronous communications where the sender waits for a response.

86
New cards

Dotted line communications

Represent asynchronous communications where the sender does not wait for a response.

87
New cards

Sequence Diagram (SD)

Illustrates the interactions between objects in a system over time.

88
New cards

SD's relation to use cases

Based on use cases, which describe specific interactions between actors and the system.

89
New cards

SD's place in the project design process

Lies in the overall project design process to visualize object interactions.

90
New cards

SDD

_______ is a dynamic diagram. This means that it shows the sequence of events that occur over time.

91
New cards

Difference between SD and SSD

SD shows interactions between objects, while SSD focuses on interactions between actors and the system.

92
New cards

Syntax of representing objects in SD

Objects are represented by rectangles with the object name inside. Activation bar represents the time an object is active.

93
New cards

Lifeline of objects in SD

Represented by a vertical line extending from the object's rectangle.

94
New cards

Design Class Diagram (DCD)

Illustrates the specifications for software classes and interfaces in an application.

95
New cards

DCD's relation to Domain Model

Differs by showing software entities rather than real-world concepts.

96
New cards

OOA diagram

Object-Oriented Analysis diagram, a visual representation of the analysis phase of software development, depicting the objects, their attributes, and their relationships.

97
New cards
98
New cards

Is a DCD a static or dynamic diagram?

dynamic