Software Engineering FInal Review

0.0(0)
studied byStudied by 0 people
0.0(0)
full-widthCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/45

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.

46 Terms

1
New cards

Design

Creative process of transforming process into solution

2
New cards

Cohesion

Degree to which elements inside a module belong together

3
New cards

Does good design have high or low cohesion?

High cohesion

4
New cards

Divide and Conquer

Solve complex problem by breaking it down into smaller pieces

5
New cards

Coupling

Degree of interdependence between modules/ strength of the relationship between modules

6
New cards

Encapsulations

Bundling of Data with the methods that operate on that data in one module

7
New cards

Information Hiding

Make the Information inside a module invisible to the modules clients

8
New cards

Separation of Concerns

Separate a program into distant modules such that each module addresses a separate concern.

9
New cards

Correctness formula

{P}A{Q}

10
New cards

{P} Hoare triple

Preconditions

11
New cards

A Hoare triple

Method or program

12
New cards

{Q} Hoare triple

Post Condition

13
New cards

Option of Preconditions Design (Design by contract)

Assumed precondition

-Demanding Design: assign the responsibility to clients

-Clients Check for conditions before calling method

-Software to software communication: trusted clients

14
New cards

Option of Preconditions design (Defensive Programming)

Validated Precondition
-Tolerant Design


-Software to human or software-to-outside-world: Untrusted client modules or external environments


- VERY important for safety/security-critical software

15
New cards

DBC: Assumed Precondition Principle

(aka Non-Redundancy Principle)

The body of a method should not test for its precondition

◦ The precondition is an assumed benefit for the

supplier

IF call(client) does not satisfy the preconditions, the method(Suplier) is not bound by postcondition

16
New cards

DB: pre/postcondition violation rules

Precondition violation: A bug in the client

Postcondition violation: a bug in the supllier

17
New cards

DBC: Precondition Availability

Rule

Every client in a position to call the method

will also be in a position to check for its

precond

◦ The precondition must not use private methods

hidden from the client

18
New cards

Rule of Contract Change

A safe change to a method may replace the existing preconditions by an equal or weaker one and the existing postconditions by an equal or stronger one
- existing client will not be affected

19
New cards

Postconditions

Postconditions often focus on the change s

A complete specification should also consider what remains unchanged

20
New cards
<p>Solid Arrow Closed Triangle</p>

Solid Arrow Closed Triangle

Inheritance

21
New cards
<p>Dotted Arrow Closed Triangle</p>

Dotted Arrow Closed Triangle

Implementation/realization

22
New cards

Solid Arrow Open Triangle

Association

23
New cards

Dotted Arrow Open Triangle

Dependency

24
New cards

Solid Arrow Hollow Diamond

Aggregation

25
New cards

Solid Arrow Solid Diamond

Composition

26
New cards

Inheritance

Generalization relationship

◦ Super-classes vs sub-classes (base vs derived)

27
New cards

Abstract date types

Abstraction the process or result of Generalization by reducing the information content of a concept or an observable phenomenon

Represent the essential features

28
New cards

Function Categories

Creator function

Query function

peek , pop

29
New cards

OCP(Open Close Principle)

Software Modules should be open for extension but closed for modification

30
New cards

What is refactoring?

A change made to the internal structure of c software to make it easier to understand and cheaper to modify

31
New cards

Module View vs type view

Module view → implementation focused
Type view→ behavior focused

32
New cards

Purpose of Coding Activities

Add or modify functionality
Fix bugs(remove defect)
Refactor
Code tuning

33
New cards

Code Smells

Code smells are not bugs

◦ They do not always indicate a problem

◦ They do indicate something that we should have

a closer look at

34
New cards

Server

the class/object to which the client has direct access

35
New cards

Delegate

the end object that contains the functionality needed by the client

36
New cards

What is quality assurance?

A set of activities that monitor and assess the software development methods and process to ensure proper quality of the software

The earlier in the process a defect is discovered and corrected, the cheaper the correction

37
New cards

Validation ensures that

  • the software meets the needs of the customers

  • the right product is being built to fulfill its purpose

“Are we building the right thing“

38
New cards

Verification ensures that

The software complies with the existing

requirements, specifications, or regulations.

  • e.g., it does not crash, meets the

requirements, handles failures gracefully,...

“Are we building it right“

39
New cards

Inspection team: four members

  • Moderator

  • A member of the team for the current workflow

  • A member of the team for the next workflow

  • A member of the SQA group

40
New cards

Static Code Analysis

Analysis of code or binary without actually executing(running) it

41
New cards

Black Box Testing

Testing without knowledge of internal working

42
New cards

White Box test

Testing with knowledge of internal working/ code

43
New cards

Gray Box testing

Combination of white and black box

Use information about the requirements (or

interfaces) and the code (e.g., structures)

44
New cards

Incorrect/Inaccurate Statements

  • Testing is the process of demonstrating that

errors are not present.

  • The purpose of testing is to show a program

performs its intended functions correctly.

  • Testing is the process of establishing

confidence that a program does what is

supposed to do.

45
New cards

Code coverage

  • Showing what test case can uncover and the faults in the code

  • Subsumption relationship

46
New cards