Software Engineering Flashcards

(71 cards)

1
Q

Describe a composed relationship

A

A composed relationship uses “has-a”.

It is denoted by a closed diamond

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is a “uses” relationship?

A

A uses relationship is an association

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are “is-a” relationships?

A

The two “is-a” relationships are generalizations and realizations.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is involved in software requirements engineering?

A

Feasibility and elicitation are involved in software requirements engineering.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are the types of requirements?

A

There are four types of requirements

1) Functional
2) Non-functional
3) Business
4) User

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are some common requirements risks?

A

Some common requirements risks are gold-plating, overlooked stakeholders and feature creep.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is requirements management?

A

Requirements management involves tracking and tracing requirements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are the 2 types of CMMI?

A

The two types of CMMI are

1) Continuous
2) Staged

Continuous analyzes a process capability model and staged analyzes an organizations maturity level.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

CMMI improves an organization’s performance and identifies an organization’s strengths and weakness in regards to what?

A

In regards to project planning and risk management

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are some agile methods?

A

A few agile methodologies are
Scum
FDD
XP

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is the agile methodology?

A

The agile methodology is an iterative method that is focused on code rather than specifications

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is Rapid Application Development (RAD)

A

RAD is a fast waterfall for projects with well-understood requirements

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are general principles of software engineering practice?

A

Three general Principles of software engineering practice are

1) Simplicity
2) Reuse
3) Readability

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What questions do an SRS document answer?

A

An SRS document answers functionalities, dependencies and performance

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are functional requirements?

A

Functional requirements specific activities that a system MUST perform

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is the waterfall model?

A

The waterfall model is a six step process

1) Requirements
2) Design
3) Implementation
4) Testing
5) Deployment
6) Maintenance

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What are the seven levels of cohesion from high to low?

A

Furry Soft Cats Prefer Tinder Love Care

1) Functional
2) Sequential
3) Communicational
4) Procedural
5) Temporal
6) Logical
7) Coincidental

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What is requirements engineering?

A

Requirements engineering is a 4 step process:

1) Elicitation
2) Specification
3) V & V
4) Management

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What are the 7 steps in the software development life cycle?

A

The seven steps in SDLC are:

1) Planning
2) Requirements Analysis
3) Design
4) Implementation / Code
5) Testing
6) Deployment
7) Maintenance

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What is the Capability Maturity Model (CMM)

A

There are five levels in the CMM:

1) Initial
2) Repeatable
3) Defined
4) Managed
5) Optimizing

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What are some requirements elicitation methods?

A

A few techniques for requirements elicitation are

1) Prototyping
2) Requirements workshops
3) Interviews
4) Brainstorming
5) Observation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What are some non-functional requirements?

A

A few non-functional requirements are scalability, reliability and availability

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What is the iterative waterfall model?

A

The iterative waterfall model provides feedback paths from every phase to its proceeding phases, which is the main difference from the classic waterfall method

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What is the software crisis?

A

The software crisis occurred in 1968. It occurred due to the difficulty of writing code with rapid hardware and complicity.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
What is the IEEE definition of software engineering?
The IEEE definition of software engineering is a systematic plan, disciplined control and quantifiable measures.
26
What are some motivations for selecting a development process?
A few motivations for selecting development processes are: ``` Change Cost Criticality Deadlines Quality Team ```
27
What are the various types of criticality?
1) Life-Critical 2) Mission-Critical 3) Productivity-Critical 4) Non-Critical
28
What is the spiral model?
The spiral model is used for handling risks. It is organized into four loops or phases 1) Objectives determination, Identify alternative solutions 2) Identify and resolve risks 3) Develop next version of product 4) Review and plan for the next phase
29
What is SCRUM?
SCUM are project management techniques for agile: 1) Outline planning 2) Sprint Cycles 3) Project Closure
30
What is a Sprint?
A Sprint is a 2-4 week process with daily meetings 1) Product Backlog 2) Select Backlog 3) Development 4) Presentation
31
What are good characteristics of a good SRS?
A good SRS should be changeable, complete, consistent, correct, traceable, unambiguous and verifiable
32
What is Verification?
Verification -> Are we building the product right?
33
What is Validation?
Validation -> Are we building the right product?
34
What is an SRS?
An SRS stands for software requirements specification. An SRS is a description of a software system to be developed. It lays out functional and non-functional requirements.
35
What is the definition of a software system?
A software system are components working together for a goal
36
What is software engineering concerned with?
Software engineering is concerned with processes, methods and tools
37
What are development process motivations?
The development process motivations are Teamwork Deadlines Cost Criticality
38
What are the generic phases of software development?
The 6 generic phases are: 1) Definition 2) Requirements 3) Design 4) Implementation 5) Validation 6) Deployment
39
Describe requirements analysis
During requirements analysis you use matrices and checklist to check for Accuracy Ambiguity Consistency
40
What are ways to statistically describe requirements specifications i.e., data models
To describe requirements specifications you can use BNF ERD Class Diagram
41
What is requirements validation?
Requirements validation involves Review Prototype Test Cases
42
Describe an aggregated relationship
An aggregated relationship "Has-a-shared"; denoted by an opened-diamond
43
Describe a sequence diagram
A sequence diagram uses an actor interacting with a system
44
Describe an activity diagram
An activity diagram shows behavior and functionality of concurrent processes
45
Describe a state machine diagram
A state machine diagram shows transition between states
46
What are the 3 data models?
The 3 data models are: Dictionary ERD Class
47
What are the 4 functional models?
The 4 functional models are: Sequence Use-case Data flow Activity
48
What are the 2 behavioral models?
The 2 behavioral models are: State Machines and Activity
49
``` Actor Guestbook () | --|-- | /\____enter name___>[] | | | ___press button___>[]____name_____database ```
Sequence diagram
50
Flowchart w/ forks, joins, and merges (diamonds); and swimlanes ``` | \/_ fork /\ / \ [] [] \ / \ /_ join | \/ …. ------------<> merge | ... ```
Activity diagram
51
transition keyRemoved[doorClosed] / locked (start)----------------> [wait]----------------------------------------------------------->[locked] /\ | | keyTurned[KeyIn] /locked | | \/ |_____________________________________[opened]
State Machine Diagram
52
What is contained within a SSE Requirements Document Project Identification and Definition (PID)?
Name Sponsors Needs Roles
53
A complete functional requirement should have which elements?
Action Actor / trigger Objective
54
A complete non-functional requirement should have which elements?
Characteristic | Constraint
55
How can you tell if a requirement is traceable?
Does it have a name? | Who’s the source?
56
How do you check a requirement for consistency?
Interaction matrix
57
How do you trace a requirement?
Traceability matrix
58
What are some hard-to-test requirements?
Usability | Availability
59
What are the types of Scrum backlogs?
The types of scrum backlogs are 1) Product backlog → all user stories 2) Sprint backlog → scoped stories
60
What is a singleton creational pattern for?
The singleton creational pattern is used for Centralized access
61
Describe the Publish-Subscribe model?
The publish subscribe model is Event bus connected to message queue
62
What’s the difference between big-M and little-M?
The Big-M Produces a system | The Little-M Delivers parts of a system
63
Explain requirements analysis.
``` Requirements analysis is checking requirements with interaction matrices and checklist for: Accuracy Ambiguity Completeness Consistency ```
64
What are the SOLID principles?
The SOLID principles are Single responsibility Open-closed APIs Dependency injection with abstract (static) classes
65
What is a facade structural pattern for?
A facade structural pattern is used for Decoupling subsystems via interface
66
How does one gather functional requirements?
Functional requirements are gathered through user stories and elicitation.
67
Describe BNF
BNF stands for Backus–Naur form. | BNF is Meta-linguistic specification and notation
68
Describe OCL.
``` OCL stands for object constraint language. It is a formal language to describe constraints on OOP. OCL Enhances class diagrams to show invariants OCL Enhances state machines to show guards ```
69
Describe the broker model.
The broker model is a Distributed system with decoupled components
70
What is a builder creational pattern for?
The builder creational pattern is used for Sequential creation of complex objects
71
What is the observer behavioral pattern for?
The observable behavioral pattern is used to observe changes to a model