Software Engineering Flashcards

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
Q

What is the IEEE definition of software engineering?

A

The IEEE definition of software engineering is a systematic plan, disciplined control and quantifiable measures.

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

What are some motivations for selecting a development process?

A

A few motivations for selecting development processes are:

Change
Cost
Criticality 
Deadlines 
Quality 
Team
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

What are the various types of criticality?

A

1) Life-Critical
2) Mission-Critical
3) Productivity-Critical
4) Non-Critical

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

What is the spiral model?

A

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

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

What is SCRUM?

A

SCUM are project management techniques for agile:

1) Outline planning
2) Sprint Cycles
3) Project Closure

30
Q

What is a Sprint?

A

A Sprint is a 2-4 week process with daily meetings

1) Product Backlog
2) Select Backlog
3) Development
4) Presentation

31
Q

What are good characteristics of a good SRS?

A

A good SRS should be changeable, complete, consistent, correct, traceable, unambiguous and verifiable

32
Q

What is Verification?

A

Verification -> Are we building the product right?

33
Q

What is Validation?

A

Validation -> Are we building the right product?

34
Q

What is an SRS?

A

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
Q

What is the definition of a software system?

A

A software system are components working together for a goal

36
Q

What is software engineering concerned with?

A

Software engineering is concerned with processes, methods and tools

37
Q

What are development process motivations?

A

The development process motivations are

Teamwork
Deadlines
Cost
Criticality

38
Q

What are the generic phases of software development?

A

The 6 generic phases are:

1) Definition
2) Requirements
3) Design
4) Implementation
5) Validation
6) Deployment

39
Q

Describe requirements analysis

A

During requirements analysis you use matrices and checklist to check for

Accuracy
Ambiguity
Consistency

40
Q

What are ways to statistically describe requirements specifications i.e., data models

A

To describe requirements specifications you can use

BNF
ERD
Class Diagram

41
Q

What is requirements validation?

A

Requirements validation involves

Review
Prototype
Test Cases

42
Q

Describe an aggregated relationship

A

An aggregated relationship “Has-a-shared”; denoted by an opened-diamond

43
Q

Describe a sequence diagram

A

A sequence diagram uses an actor interacting with a system

44
Q

Describe an activity diagram

A

An activity diagram shows behavior and functionality of concurrent processes

45
Q

Describe a state machine diagram

A

A state machine diagram shows transition between states

46
Q

What are the 3 data models?

A

The 3 data models are:

Dictionary
ERD
Class

47
Q

What are the 4 functional models?

A

The 4 functional models are:

Sequence
Use-case
Data flow
Activity

48
Q

What are the 2 behavioral models?

A

The 2 behavioral models are:

State Machines and Activity

49
Q
Actor                        Guestbook
  ()                                  |
--|--                                 |
  /\\_\_\_\_enter name\_\_\_>[]
  |                                    |
  | \_\_\_press button\_\_\_>[]\_\_\_\_name\_\_\_\_\_database
A

Sequence diagram

50
Q

Flowchart w/ forks, joins, and merges (diamonds); and swimlanes

                          |
          	             \/_    fork
                         /\
                        /   \
                      []     []
                       \     /
                         \ /_    join
                          |
                          \/
     …. ------------<>    merge
                           |
                          ...
A

Activity diagram

51
Q

transition
keyRemoved[doorClosed] / locked
(start)—————-> [wait]———————————————————–>[locked]
/\ |
| keyTurned[KeyIn] /locked |
| \/
|_____________________________________[opened]

A

State Machine Diagram

52
Q

What is contained within a SSE Requirements Document Project Identification and Definition (PID)?

A

Name
Sponsors
Needs
Roles

53
Q

A complete functional requirement should have which elements?

A

Action
Actor / trigger
Objective

54
Q

A complete non-functional requirement should have which elements?

A

Characteristic

Constraint

55
Q

How can you tell if a requirement is traceable?

A

Does it have a name?

Who’s the source?

56
Q

How do you check a requirement for consistency?

A

Interaction matrix

57
Q

How do you trace a requirement?

A

Traceability matrix

58
Q

What are some hard-to-test requirements?

A

Usability

Availability

59
Q

What are the types of Scrum backlogs?

A

The types of scrum backlogs are

1) Product backlog → all user stories
2) Sprint backlog → scoped stories

60
Q

What is a singleton creational pattern for?

A

The singleton creational pattern is used for Centralized access

61
Q

Describe the Publish-Subscribe model?

A

The publish subscribe model is Event bus connected to message queue

62
Q

What’s the difference between big-M and little-M?

A

The Big-M Produces a system

The Little-M Delivers parts of a system

63
Q

Explain requirements analysis.

A
Requirements analysis is checking requirements with interaction matrices and checklist for:
Accuracy
Ambiguity
Completeness
Consistency
64
Q

What are the SOLID principles?

A

The SOLID principles are
Single responsibility
Open-closed APIs
Dependency injection with abstract (static) classes

65
Q

What is a facade structural pattern for?

A

A facade structural pattern is used for Decoupling subsystems via interface

66
Q

How does one gather functional requirements?

A

Functional requirements are gathered through user stories and elicitation.

67
Q

Describe BNF

A

BNF stands for Backus–Naur form.

BNF is Meta-linguistic specification and notation

68
Q

Describe OCL.

A
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
Q

Describe the broker model.

A

The broker model is a Distributed system with decoupled components

70
Q

What is a builder creational pattern for?

A

The builder creational pattern is used for Sequential creation of complex objects

71
Q

What is the observer behavioral pattern for?

A

The observable behavioral pattern is used to observe changes to a model