Midterm Flashcards

1
Q

What is software engineering?

A

The study of systematic and effective processes and technologies for supporting software development and maintenance activities

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

What are the different phases of software engineering?

A

Definition, Development, Maintenance, Umbrella Activities

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

What is the Definition phase of software engineering?

A
  • Requirements definition and analysis
  • Project planning
  • System analysis
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is the Development phase of software engineering?

A

Software Design

  • UI design
  • High level design (define modular components and major data structures)
  • Detailed design (define algorithms and procedural detail)
  • Coding
  • Integration
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is the Maintenance phase of software engineering?

A
  • Correction: Fix software defects
  • Adaption: Accommodate changes to new hardware and company policies
  • Prevention: make more maintainable
  • Enhancement: add functionality
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is the Umbrella Activities phase of software engineering?

A
  • Reviews: assure quality
  • Documentation: improve maintainability
  • Version control: track changes
  • Configuration management: integrity of collection of components
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

How is good software measured?

A
  • The quality of the product
  • The quality of the process
  • The quality of the product in the context of the business environment
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the CMM?

A

The Capability Maturity Model (CMM)

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

What are the 5 levels of the CMM?

A
  • Level 1: Initial
  • Level 2: Repeatable - track cost, schedule, functionality
  • Level 3: Defined - standardized processes
  • Level 4: Managed - collect detailed metrics
  • Level 5: Optimizing - continuous process improvement, built in process improvement
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is a process?

A

a series of steps involving activities, constraints, and resources that produce an intended output of some kind

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

Is there iteration in the waterfall model?

A

no

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

What are some drawbacks of the waterfall model?

A
  • Provides no guidance how to handle changes to products and activities during development (assumes requirements can be frozen)
  • Views software development as manufacturing process rather than as creative process
  • There is not iterative activities that lead to creating a final product
  • Long wait before a final product
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What does prototyping help?

A
  • helps users understand what the system will be like (UI prototype)
  • helps developers assess alternative design strategies (design prototype)
  • useful for verification and validation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is the V Model?

A
  • variation of the waterfall model
  • uses unit testing to verify procedural design
  • uses integration testing to verify architectural (system) design
  • uses acceptance testing to validate the requirements
  • if problems are found during verification and validation, the left side of the v can be re-executed before testing on the right side is re-enacted
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is the Prototyping Model?

A
  • Allows repeated investigation of the requirements or design
  • Reduces risk and uncertainty in the development
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is the Operational Specification Model?

A
  • Requirements are executed (examined) and their implication evaluated early in the development process
  • Functionality and the design are allowed to be merged
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What is the Transformational Model?

A
  • Fewer major development steps
  • Applies a series of transformations: change data representation, select algorithms, optimize, compile
  • Relies on formalism
  • Requires formal specification (to allow transformations)
18
Q

What is the Phased Development: Increments and Iterations Model?

A
  • Shorter cycle time
  • system delivered in pieces (enables customers to have some functionality while the rest is being developed)
  • allows two systems functioning in parallel (the production system currently being used and the development system)
19
Q

What is incremental development?

A

starts with small functional subsystem and adds functionality with each new release

20
Q

What is iterative development?

A

starts with full system, then changes functionality of each subsystem with each new release

21
Q

What are the benefits of Phased Development?

A
  • training can begin early, even though some functions are missing
  • markets can be created early for functionality that has never before been offered
  • frequent releases allow developers to fix unanticipated problems globally and quickly
  • the development team can focus on different areas of expertise with different releases
22
Q

What is the Spiral Model?

A
  • combines development activities with risk management to minimize and control risks
  • the model is presented as a spiral in which each iteration is represented by a circuit around four major activities
23
Q

What are the 4 major activities in the Spiral Model?

A

1) plan
2) determine goals, alternatives, and constraints
3) evaluate alternatives and risks
4) develop and test

24
Q

What do Agile Methods put emphasis on?

A

Emphasis on flexibility in producing software quickly and capably

25
Q

What is the Agile manifesto?

A
  • value individuals and interactions over process and tolls
  • prefer to invest time in producing working software rather than in producing comprehensive documentation
  • focus on customer collaboration rather than contract negotiation
  • concentrate on responding to change rather than on creating a plan and then following it
26
Q

What is a risk?

A

an unwanted event that has negative consequences

27
Q

How do you quantify the effect of risks?

A

risk exposure = (risk probability)x(risk impact)

28
Q

What are 3 strategies for risk reduction?

A
  • Avoiding the risk: change requirements for performance or functionality
  • Transferring the risk: transfer to other system, or buy insurance
  • Assuming the risk: accept and control it
29
Q

What is a functional requirement?

A

describes required behavior in terms of required activities

30
Q

What is a non-functional requirement?

A

describes some quality characteristic that the software must possess

31
Q

What is a requirements definition?

A

a complete listing of everything the customer wants to achieve

32
Q

What is a requirements specification?

A

restates the requirements as a specification of how the proposed system shall behave

33
Q

What is the difference between verification and validation?

A

verification ensures that we build the system right, whereas validation ensures that we build the right system

34
Q

What are structural types of UML?

A

focus on static aspects of system

35
Q

What are behavioral types of UML?

A

focus on dynamic aspects of system (changing parts)

36
Q

What are the 4 paradigms of software engineering?

A

1) procedural
2) functional
3) logical
4) object oriented

37
Q

What is a fault?

A

occurs when a human makes a mistake, called an error, in performing some software activities (doesn’t have to be coding)

38
Q

What is a failure?

A

a departure from the system’s required behavior

39
Q

What is analysis in software development?

A

decompose a large problem into smaller, understandable pieces

40
Q

What is synthesis in software development?

A

build (compose) a software from smaller building blocks

41
Q

What are the 4 key steps of requirements engineering?

A

1) elicitation
2) analysis
3) specification
4) validation
leads to a Software Requirements Specification (SRS)