Software Engineering Exam 1

0.0(0)
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/105

encourage image

There's no tags or description

Looks like no tags are added yet.

106 Terms

1
New cards

Software

Computer program, config data and files, user and system documentation

2
New cards

Software Engineering

An engineering discipline which is concerned with all aspects of software production

3
New cards

Software Engineering vs Computer Science

Computer science is concerned with theory and fundamentals, whereas software engineering is concerned with practical aspects of developing and delivering software

4
New cards

Software Engineering Challenges

Coping with legacy systems, increasing diversity (many types of hardware/software), and with faster and cheaper hardware

5
New cards

Software Process

A set of activities and associated results which produce a software product. An abstract representation of a software (roadmap)

6
New cards

Four Fundamental Software Process Activities

  1. Software Specification

  2. Software Development

  3. Software Validation (does what it intended to do)

  4. Software Evolution (changes/maintenance)

7
New cards

Software Process Model

A representation of a software process from a specific perspective

8
New cards

Software Process Model Examples

Workflow model

Data-flow model

Role/Action model

9
New cards

Workflow Model

Sequence of activities in the process along with their inputs, outputs and dependencies

10
New cards

Data-flow Model

A set of activities that carry out some data transformation (input→ output)

11
New cards

Role/Action Model

Represents roles of people involved in the software process and activities for which they are responsible

12
New cards

Software Development Models

The Waterfall Approach

Evolutionary Development

Formal Transformation

System Assembly From Reusable Part

Incremental Method

13
New cards

Waterfall Approach

Complete one phase (req, design, code, test) before going to the next. Also referred to as “Life-cycle” conducted in five stand-alone phases

14
New cards

Five Phases of Waterfall

  1. Requirements

  2. Software Design

  3. Code & Unit Test

  4. Integration & Testing

  5. Maintenance

15
New cards

Advantages of Waterfall

Simple to follow

Simple to track progress

Good structural design

16
New cards

Disadvantages of Waterfall

Phases often overlap

Hard to modify and implement changes

Need to complete requirements from customers to start (biggest challenge)

17
New cards

Evolutionary Development

Develop an initial implementation, expose to users comments, refine until satisfied (Build quick, modify, and redo component until completion)

18
New cards

Two Types of Evolutionary Development

Exploratory Development

Throw-away Prototyping

19
New cards

Exploratory Development

Start with requirements that are well defined and add new features when customers propose new requirements

20
New cards

Throw-away Prototyping

Under customer requirements, use prototyping to focus on poorly understood requirements, redefine as you progress

21
New cards

Evolutionary Development Advantages

Happier customers (you’re helping them define requirements)

Flexibility in modifying requirements

22
New cards

Evolutionary Development Disadvantages

Hard to trace the process, not cost-effective

23
New cards

Formal Transformation

Transformation specifications, using mathematical methods, to a program; guarantee correctness

24
New cards

Reuse-oriented Development

Relies on a large base of reusable software components. Design systems to capitalize on the existing components

25
New cards

Reuse-oriented Development Advantages

Reduced cost and risk

Fast Delivery

26
New cards

Incremental Method

A hybrid model where the software specification, design, implementation, and testing is broken down into a series of increments which are developed and delivered

27
New cards

Incremental Development Advantages

Products delivered incrementally hence faster

Lower risk of overall project failure

28
New cards

Spiral Development

A hybrid model where the development of the system spirals outward from an initial outline through to the final developed system. Each loop represents a phase

29
New cards

Four Spiral Development Loop Sectors

  1. Object Setting

  2. Risk assessment

  3. Development and validation

  4. Planning

30
New cards

Spiral Loops: Object Setting

Set specific object for that phase

31
New cards

Spiral Loops: Development and validation

Select a development model based on risk levels

32
New cards

Spiral Loops: Planning

Decide if a next loop is required

33
New cards

Attributes of Good Software

Maintainability

Dependability

Efficiency

Usability

34
New cards

Ethical Responsibility

Confidentiality

Competence

Intellectual Property

Computer Misuse

35
New cards

Software Validation Activities

  1. Unit testing

  2. Module testing

  3. Sub-system testing

  4. System testing

  5. Acceptance testing

36
New cards

Computer-Aided Software Engineering (CASE)

Software used to support software process activities such as requirements engineering, design, program development and testing

37
New cards

Computer-Aided Software Engineering Examples

Design editors, compilers, data dictionaries, debuggers, etc

38
New cards

Reason Software Management More Difficult Than Other Engineering

Software product is intangible

There are no standard software processes

Software project are usually different from previous projects

39
New cards

Stages for Managing Risks

  1. Risk Identification

  2. Risk Analysis

  3. Risk Planning

  4. Risk Monitoring

40
New cards

Three Types of Software Requirements

Functional

Non-Functional

Domain

41
New cards

Functional Requirements

Describe system services or functions. Services the system should provide

42
New cards

Non-Functional Requirements

A constraint on the system or on the development process. (speed, time to market)

43
New cards

Domain Requirements

Related to the application domain of the system (may be functional or non-functional) (What happens to fiber optics line in case of sever weather during winter?)

44
New cards

System Requirements

Structured document setting out detailed descriptions of the system services. Written as a contract between client and contractor

45
New cards

Software Specifications

A detailed description which can serve as a basis for a design or implementation. Written for developers

46
New cards

User Requirement Targets

Client Managers

System End-Users

Contract Managers

System Architects

47
New cards

System Requirements Targets

System End-Users

Client Engineers

System Architects

Software Developers

48
New cards

Software Specification Targets

Client Engineers

System Architects

Software Developers

49
New cards

Non-Functional Requirement Classifications

Product Requirements (Efficiency, reliability…)

Organizational Requirements (Delivery, Implementation…)

External Requirements (Ethics, Safety…)

50
New cards

Alternatives to NL Specification (Natural Language)

Structured Natural Language

Program Description Language

Use-Cases

Mathematical Specification (finite-state machines)

51
New cards

Program Description Language

Defined operationally using a language like a programming language but with more flexibility of expression

52
New cards

When Appropriate to Use PDL

Where an operation is a sequence of actions and the order is important

When hardware and software interfaces have to be specified

(ATM machine)

53
New cards

PDL Disadvantages

Not sufficiently expressive to express system functionality in an understandable way

Only understood by programmers

54
New cards

Requirement Documents

The official statement of what is required of the system developers. Should include both a definition and a specification of requirements. (WHAT the system does not HOW it should)

55
New cards

Requirements Engineering Processes

Requirement Elicitation

Requirement Analysis

Requirements Validation

Requirements Management

56
New cards

Ethnography

An Observational technique that can be used to understand social and organizational requirements

57
New cards

Enduring Requirements

Stable requirements derived from the core activity of the customer organization (hospitals will always have doctors and nurses)

58
New cards

Volatile Requirements

Requirements which change during development or when the system is in use (requirements from health-care policy)

59
New cards

Classification of Requirements

Mutable

Emergent

Consequential

Compatibility

60
New cards

Mutable Requirements

Requirements that change due to the system’s environment

61
New cards

Emergent Requirements

Requirements that emerge as understanding of the system develops

62
New cards

Consequential Requirements

Requirements that result from the introduction of the computer system

63
New cards

Compatibility Requirements

Requirements that depend on other systems or organizational processes

64
New cards

UML

The standard language for specifying, visualizing, constructing, and documenting all the artifacts of a software system

65
New cards

Activity Diagrams shows:

Flow of control

66
New cards

Swimlanes

Shows ownership. Clearly illustrates to what group is responsible for what activity

67
New cards

Actor

Someone (or thing) that is external to system that must interact with the system

68
New cards

Use Case

A sequence of related transaction performed by an actor in the system (Ovals)

69
New cards

Use Case Diagrams

Created to visualize the relationship between actors and use cases

70
New cards

Sequence Diagram

Displays object interactions arranged in a time sequence

71
New cards

Collaboration Diagram

Displays object interactions organized around objects and their links to one another

72
New cards

Class Diagram Components

Class name - first component

Attributes (structure) - second component

Operations (behavior) - third component

73
New cards

Three Types of UML Relationships

Association (line)

Aggregation (closed diamond)

Dependency (open diamond)

74
New cards

Association

Bi-directional connection between classes (line) (i know you’re there)

75
New cards

Aggregation

Stronger form where the relationship is between a whole and its parts (closed diamond)

76
New cards

Dependency

Weaker form showing the relationship between a client and a supplier where the client does not have semantic knowledge of supplier (open diamond) (i need you, but don’t know you exist)

77
New cards

Model Types

Context

Behavioral

Semantic Data

Object

78
New cards

Context Model

Illustrate the operational context of a system (what lies outside the system boundaries)

79
New cards

Behavioral Model

Describes the overall behavior of a system

80
New cards

Two Types of Behavioral Models

Data Processing - how data processed through system

State Machine - shows the systems response to events

81
New cards

Semantic Data Models

Describe the logical structure of data processed by the system (widely used in database design)

82
New cards

Object Models

Natural ways of reflecting the real-world entities manipulated by the system

83
New cards

Architectural Design

The design process for identifying the sub-systems making up a system and the frameworks for sub-system control and communication

84
New cards

Software Architecture

The output of the architectural design process

85
New cards

Two Widely Used Organizational Models

Data Repository

Client-Server

86
New cards

Data Repository Model

Sub-systems must exchange data. Shared data is held in a central database and may be accessed by all sub-systems (used when there’s a large amount of data)

87
New cards

Client-Server Model

Model which shows how data and processing is distributed across a range of components. Servers provide services. Client call these services

88
New cards

Object Models

Structure the system into a set of loosely coupled objects with well-defined interfaces

89
New cards

Verification

“Are we building the product right”

The software should conform to its specifications

90
New cards

Validation

“Are we building the right product”

The software should do what the user really requires

91
New cards

Software Inspections

Examining to find anomalies and defects without execution of system. (functional characteristics only (not performance etc))

92
New cards

Software Testing

Concerned with exercising and observing product behavior

93
New cards

Inspection Roles

Code Author / Owner (2x)

Code Inspectors (2x)

Reader & Sciber (1x)

Session Moderator (1x) (HR)

94
New cards

Static Analysers

Software tools for source text processing. They parse the program text and try to discover potential erroneous conditions and bring these to the attention of the V&V team

95
New cards

Cleanroom Software Development

The philosophy is defect avoidance rather than defect removal (solve before it becomes a problem)

96
New cards

Cleanroom Process Teams

Specification - developing and maintaining system specs

Development - developing and verifying hardware (not compiled)

Certification - developing statistical tests to exercise software

97
New cards

Two Phases of System Testing

Integration Testing

Release Testing

98
New cards

Integration Testing

The system is tested as components are integrated

99
New cards

Release Testing

The test team tests the complete system to be delivered as a black-box. Testing a release of a system that will be distributed to customers. (USUALLY A BLACK-BOX)

100
New cards

Stress Testing

Exercises the system beyond its maximum design load. Causing defects to come to light