any work product that is produced and used during a project
28
New cards
Domain
the targeted subject area of a computer program
29
New cards
Functional Requirements
Features and capabilities,
30
New cards
Non-Functional Requirements
>Usability
> Security
> Reliability
> Performance
31
New cards
Use Case Model
A set of typical scenarios of using a system
32
New cards
User Stories
As I want to so that
33
New cards
Where do requirements come from?
>Stakeholders
> Application Domain
> Documentation
34
New cards
Steps to Analyze Requirements
> Verification
> Validation
> Risk Analysis
35
New cards
Requirements Verification
Make sure the right product is being built
36
New cards
Requirements Verification
Product is being built right
37
New cards
Why do we prioritize requirements?
> Limited Resources
> Inability to satisfy all the requirements
38
New cards
Domain Model
a visual representation of conceptual classes or real-situation objects in a domain
> Remember that this deals with Conceptual Classes
> Remember that it does NOT show Software classes
39
New cards
Methods to find Conceptual Classes
> Reuse or modify existing models
> Use a category list
> Identify noun phrases
40
New cards
Association
A relationship\[ between classes that indicates some meaningful and interesting connection
41
New cards
Roles
Each end of an association is a role and roles can have:
> multiplicity expression
> name
> navigability
42
New cards
Multiplicity
The number of inputs or outputs between conceptual classes
Ex.
\* zero or many
1\..\* one or many
etc.
43
New cards
Attributes
logical data value of an object
44
New cards
Derived Attributes
If an attribute’s value can be derived by the values of other attributes than its a derived attribute
45
New cards
Use Cases
> Have a long history
> Describe how the system will act based off of interactions with its end user
> Primarily used to document functional requirements
> More Detailed
> Focuses on the functionality of a feature or process
46
New cards
User Stories
> More recent approach
> Simple informal way to describe user needs
> provided in small increments
> can be viewed as a subset of a use case
> Less Detailed
> Who, what, and Why of a project
47
New cards
Use Case Structure
> Actor/User
> SuD
> Goal
> Preconditions
> Main Success Scenario
> Alternate Scenarios
> Postconditions
48
New cards
Primary Actor
Has a gaol fulfilled through using services of the SuD
49
New cards
Supporting Actor
Provides a service to the SuD
50
New cards
Offstage Actor
Has an interest in the behavior of the use case, but it not a primary or supporting
51
New cards
Use Case: Fully Dressed Style
Has additional scenarios, special requirements, and technology and data variation lists
52
New cards
Use Case Validity Tests
Elementary Business Process Test: adds measurable business value
Boss Test: Would this be acceptable to tell a boss the amount of work or type of work you’ve been doing
Size Test: many steps and not a single step within a series of steps
53
New cards
Essential Use Cases
Focus is on intent, stray away from UI decisions
54
New cards
Concrete Use Cases
UI Decisions are embedded in the use case text
55
New cards
Use Case Diagram Structure
actors as stick figures, use cases as elapses, and line associations
56
New cards
Use Case Includes
* when a case is used by another case * several use cases * has a uses relationship * depicted with an arrow with a dotted line pointing to the child case
57
New cards
Use Case Extends
* Exceptions to the typical path of a use case * depicted with a dotted arrow that points to the base use case
58
New cards
Use Case Model
A set of all use cases in text
59
New cards
Use Case
One or more scenarios of use written in text form
60
New cards
Use Case Diagram
Graphical Depiction of the use case model
61
New cards
git clone (repo name)
Clone the given repo onto your machine
62
New cards
git add (file(s))
Stages all files to be committed to a branch
63
New cards
git commit -m “descriptive message“
Commit a staged snapshot of your code and add a message
64
New cards
git push
Push branch and all commits and objects into remote directory
65
New cards
git pull
Gets a specified copy of the current remote branch that is connected to the branch your working in and merge it into the local copy
66
New cards
git fetch
Fetches a specific branch, from repo
67
New cards
git status
List which files are staged, not staged, and untracked
68
New cards
git branch
States the current branches you have checked out and highlights the current branch that is being worked in
69
New cards
git checkout
Opens up a new branch from remote and allows a user to edit and work in that checked out branch
70
New cards
git merge “branch name“
Merges your current branch into the given branch name and overwrites it
71
New cards
Local vs Remote
Local is on your physical machine
Remote is on the cloud in a cloud server that can be asked on your computer
72
New cards
3-Stage process for making a commit and pushing to a Remote repository
git add .
git commit -m “Descriptive Message“
git push
73
New cards
Create a new branch
git checkout “branch name of your choosing“
74
New cards
Merge into main branch
make sure your in your desired branch
git merge main
75
New cards
Pull Requests
Helps to alleviate merge conflicts and helps to explain the rest of them. It compares your code to the merging into branch for clarity and to show changes over a file
76
New cards
Commit Message Content
A Present Tense descriptive message about the changes
77
New cards
System Sequence Diagram (SSD)
A picture that shows, for a particular scenario in a use case, the events that external actors generate, their order, and possible intersystem events
> Systems are treated as a Black Box
> Focuses on events that cross the system boundary from actors to systems
> Dynamic Diagram
78
New cards
Arrows in an SSD
> Vertical Line is a Lifeline
> Arrows to system are functions
> Arrows to actor are outputs
79
New cards
SSD: Loop Fragment
Just a for/while loop
80
New cards
SSD: Alternatives (Alt)
If/else statements
81
New cards
SSD: Option (Opt)
Literally just an If statement
82
New cards
SSD: Reference (Ref)
A reference that both the system and actor use
83
New cards
Sequence Diagram
Models the interactions between objects in a system and the order in which they are processed
> Part of the object oriented design stage
> Dynamic Diagram
> Shows all of the system instead of hiding it in a box
> Same fragments as SSD
> ;Actor
> :System
84
New cards
Activation Bar
A line on the SD to show when something is instantiated for the first time
85
New cards
Four Pilars of OOP
> Inheritance
> Encapsulation
> Polymorphism
> Abstraction
86
New cards
Visibility Between Objects
> Attribute
> Parameter
> Local
> Global
87
New cards
Software Development and Design Acronyms
> DRY: Don’t repeat yourself
>SoC: Separation of Concerns
> KISS: Keep it simple stupid
> YAGNI: You aren’t going to need it
> LGTM: Looks good to me
88
New cards
Attribute Visibility
> Visible when B is an Attribute of A
> Relatively permanent visibility
89
New cards
Parameter Visibility
> Visible when B is passed into A
> Relatively temporary visibility
90
New cards
Local Visibility
> B is a local object in method A
> Relatively temporary visibility
91
New cards
Implement Classes in DCD
Do so starting with the class that has the least number of other classes in relation to it so that its easier to build up the code files
92
New cards
Aggregation Relationship
When one object needs another to fully define itself as an object
93
New cards
Design Class Diagram (DCD)
Shows a system with software classes and attributes
> Different than Domain Model because it shows actual classes and attributes that can be converted to code
> Static Diagram
94
New cards
DCD Class Structure
> Class name at the top of the box and enclosed by a line
> attributes of the class in the second box if there are any and they are set up as “(Visibility Symbol) Name: data type“
> Operations/Methods that doesn’t need to include getters/setters and all other methods should be there except for inherited methods
95
New cards
DCD Class Visibilities
\+ Public
\# Protected
\- Private
/ Derived
96
New cards
DCD Relationships: Generalization
> X is a Y
> Inheritance relationship\[ between classes or implementation
> Solid arrow with an empty tip
97
New cards
DCD Relationships: Realization
> X is a Y
> Interface implementation
> Dotted line with an empty tip
98
New cards
DCD Relationships: Dependencies
> X uses a Y
> method of a class that uses another class’s object as a parameter
> Dotted line with an filled arrow head
99
New cards
DCD Relationships: Aggregations
> X has a Y
> Relationship between the whole and the part but the whole and part can be separated
> Solid line with an empty diamond
100
New cards
DCD Relationships: Composition
> X has a Y
> Relationship between the part and the whole but the part and whole can’t be separated