Software Engineering Exam 2

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

1/58

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.

59 Terms

1
New cards

Software design process activities (7)

Requirements Specification, Architectural Design, Abstract Specification, Interface Design, Component Design, Data Structure Design, Algorithm Design

2
New cards

Software design process activity: What is the Architectural Design activity?

To outline the high-level structure of the system.

3
New cards

Software design process activity: What is the Requirements Specification activity?

Define what the software must do.

4
New cards

Software design process activity: What is the Abstract Specification activity?

Describe what each component should do, without specifying how.

5
New cards

Software design process activity: What is the Interface Design activity?

Define how different components communicate with each other.

6
New cards

Software design process activity: What is the Component Design activity?

Detail the internal design of each component/module.

7
New cards

Software design process activity: What is the Data Structure Design activity?

Choose and define the data organization that supports efficient implementation.

8
New cards

Software design process activity: What is the Algorithm Design activity?

Develop the logic and step-by-step procedures for solving problems within the system.

9
New cards

What is Software Architectural Design?

The software architecture of a system is the style of design of structure. SAD is a decision making process to determine the software architecture for the under-development system

10
New cards

Why Architectural Design?

The architecture of a system has significant impact on performance, efficiency, security, maintainability. It's vital to developing the system. Without it, design flaws may result in project failure

11
New cards

Architectural Design Process

Determine objectives, determine type of system, apply an architecture style in available, if not do custom, specify subsystem functions and interfaces and behavior, review the design

12
New cards

Four common types of systems

Interactive Subsystem, Event-Driven Subsystem, Transformational Subsystem, Database Subsystem

13
New cards

Interactive Subsystem characteristics

1. Has to process and respond to each request

2. Interacts with only one actor

3. The actor is often a human being

14
New cards

Event-Driven Subsystem characteristics

1. Its state may not reflect on computation progress

2. It interacts with more than one external entity at a time

3. External entities are often hardware devices or software

15
New cards

Transformational Subsystem characteristics

1. Usually stateless

2. Actors can be human beings, devices, or systems

3. May perform number crunching or intensive algorithms

16
New cards

Database Subsystem characteristics

1. It provides object storage and retrieval capabilities

2. It hides the implementation from the system

3. It only stores and retrieves objects and does no business processing

17
New cards

Classic system architectures (5)

N-Tier, Client-Server, Main program and subroutine, Event-Driven, Object-persistence framework

18
New cards

What type of system is N-Tier

Interactive System

19
New cards

What type of system is Client Server

Client-Server (lol)

20
New cards

What type of system is Main program and subroutine

Modular

21
New cards

What type of system is Event-Driven

Event-Driven (lol)

22
New cards

What type of system is Object-Persistence framework

Persistence Framework

23
New cards

If the system architectures don't work, what do we do?

Perform custom architectural design

24
New cards

Specify Subsystem Functions and Interfaces steps (4)

1. Allocate requirements and objectives to subsystems

2. Specify functionality or each subsystem

3. Specify the interfaces of the subsystems

4. Specify the interaction behavior of the subsystems

25
New cards

Why High Cohesion?

A software design principle, everything in the module is closely related and serves a single purpose

26
New cards

Why Low Coupling?

A software design principle, components are mostly independent. If one thing doesn't work, you don't want the rest to also not work

27
New cards

Why to keep it simple and stupid?

A software design principle, avoid complicated code to make reading, debug, and maintain easier

28
New cards

Objectives for software testing

To find an error

29
New cards

What is a successful test in software engineering

One that finds an undiscovered bug

30
New cards

Testing methods for software testing (2)

White box Black box

31
New cards

When do you use White Box Testing

When you know the internal workings of a product

32
New cards

Techniques of White Box Testing (3)

Basis Path, Condition, and Data Flow testing

33
New cards

When do you use Black Box Testing

When you know the specific function that a product has been designed to perform

34
New cards

Techniques of Black Box Testing (3)

Equivalence Partitioning, Boundary Value Analysis, Comparison testing

35
New cards

Basis Path testing

White Box method, Construct a flow chart, compute complexity of the chart (indicates the num of independent paths), determine basis paths, design test cases for the paths

36
New cards

Condition Testing

White Box method, Test each condition. Branch testing, define combinations of truth values, design test cases for combinations.

37
New cards

Data Flow testing

White Box method, Select test paths of a program according to the location of definitions and use of variables. Then test define-use chains.

38
New cards

Equivalence Testing

Black Box method, Divide input domain of a program into classes of data. Test cases can be derived. Basically, if an input condition specifies a range or a value, one valid and two valid equivalence classes are defined.

39
New cards

Boundary Value Analysis

Black Box method, Lead to a selection of test cases that exercise boundary values of the input domain.

40
New cards

Comparison Testing

Appropriate when multiple implementations of same specification have been produced. Use same inputs to test whether they generate same outputs.

41
New cards

Testing principles

All tests should be traceable to customers, planned ahead, start small and go larger, and be conducted by a third party

42
New cards

SOFTWARE TESTING STRATEGY (4)

Unit test --> Integration test --> Validation test --> System test

43
New cards

Unit test

Test Strategy: Use WBT techniques, test each module, including interface, local data structures, boundary conditions, independent paths, error handling paths, etc.

44
New cards

Integration test

Test Strategy: Test correctness of integrations of modules. Usually incremental integration. Integration strategies are Top down, Bottom up, and a combination

45
New cards

Top-Down Testing

Integration Strategy, test from the top and go down

46
New cards

Bottom-Up Testing

Integration strategy, test from the bottom and go up

47
New cards

How to do integration testing on an OO system

1. Identify modules and interactions. Dependencies (generalization, aggregation, association,)

2. Decide on a strategy (top down, bottom up)

3. Do it i guess

48
New cards

Generalization

---|> A cat is a kind of pet

49
New cards

Aggregation

---<> A tail is a part of both dogs and cats

50
New cards

Association

---> Owners feed pets, pets please owners

51
New cards

Validation Testing

Test Strategy: Test whether the software functions in a manner than can be reasonably expected by the customer. (software requirements). Alpha Testing and Beta Testing

52
New cards

Alpha Testing

Validation Testing Method: Developer observes customer

53
New cards

Beta Testing

Validation Testing Method: Developer does not observe customer

54
New cards

System Testing

Test Strategy: Focus on not only software but also the integration of software, hardware, environment.

55
New cards

Types of System Testing

Recovery, Security, Stress, Performance

56
New cards

Recovery Testing

How long a system takes to recover after crashing

57
New cards

Security Testing

How secure the system is from being attacked

58
New cards

Stress Testing

How much the system can handle at once

59
New cards

Performance Testing

How fast the system runs