Software Engineering Flashcards

You may prefer our related Brainscape-certified flashcards:
1
Q

Software engineering

A

Engineering discipline concerned with all aspects of software production

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

Software

A

All electronic documentation that is needed by system users, quality assurance staff, and developers; one or more programs

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

Essential software product attributes

A

Maintainability
dependability and security
efficiency
acceptability

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

Software process

A

Includes all of the activities involved in software development
(Includes high-level activities such as: specification, development, validation, evolution)

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

Fundamental ideas of software engineering

A

Managed software processes
software dependability and security
Requirements engineering
Software reuse

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

Software engineers have responsibilities to ____________________?

A

The engineering profession and society

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

Software process models

A

abstract representations of these processes

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

General process models

A

Describe organization of software processes

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

Name the general process model types

A

Waterfall
Incremental development
Reusable component configuration and integration

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

Requirements engineering (specification)

A

The process of developing a software specification

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

What is the purpose of specifications?

A

To communicate the system needs of the customer to the system developers

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

What does the design and implementation processes do?

A

Concerned with transforming a requirements specification into an executable software system

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

Software validation

A

The process of checking that the system conforms to its specification and that it meets the real needs of the users

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

Software evolution

A

Takes place when you change existing software systems to meet new requirements

  • changes are continuous
  • software must evolve to remain useful
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What activités help cope with change?

A
  • Prototyping phase (avoids poor requirements/design decisions)
  • iterative development/delivery (changes may be made without disrupting the system as a whole)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Process improvement

A

A cyclic process of improving existing software processes to improve software quality, lower development costs, or reduce development time; involves process measurement, analysis, change

17
Q

Agile methods

A

Iterative development methods that focus on…
• reducing process overheads and
• reducing documentation and
• incremental software delivery

Note: customer representatives are directly involved in the development process

18
Q

How do you decide between an agile approach or a plan-driven one?

A
  • type of software being developed
  • capabilities of the development team
  • culture of the company developing the system

-> can mix these approaches in real-world application

19
Q

What are some of the agile development practices?

A
  • Requirements expressed as user stories
  • pair programming
  • refactoring
  • continuous integration
  • test-first development
20
Q

Scrum

A
  • an agile method
  • provides organizational framework for agile projects
  • centered around a set of sprints
  • planning is based on prioritizing backlog of work and selecting highest priority tasks for a sprint
21
Q

How do you scale agile methods?

A
• integrate some plan-based practices
•examples include:
    - up-front requirements
    - multiple customer representatives
    - more documentation
    - common tooling across project teams
    - alignment of releases across teams
22
Q

What do requirements do?

A
  • set out what system should do

* define constraints on its operation and implementation

23
Q

Functional requirements

A

Statements of the services that the system must provide or are descriptions of how some computations must be carried out

24
Q

Non-functional requirements

A
  • often constrain system being developed
  • constrain development process being used
  • examples: product requirements, organizational requirements, or external requirements
  • often relate to the emergent properties of the system and therefore apply to the system as a whole
25
Q

Requirements engineering process includes…

A
  • requirements elicitation
  • requirements specification
  • requirements validation
  • requirements management
26
Q

Requirements elicitation

A
  • iterative process
  • can be represented as a spiral of activities
    • requirements discovery
    • requirements classification/organization
    • requirements negotiation
    • requirements documentation
27
Q

Requirements specification

A
  • process of formally documenting user and system requirements and creating a software requirements document
28
Q

Software requirements document

A
  • agreed statement of system requirements

- should be organized so that both system customers and software developers can use it

29
Q

Requirements validation

A
  • process of checking the requirements for…

VALIDITY •CONSISTENCY • COMPLETENESS •REALISM • VERIFIABILITY

30
Q

Requirements management

A
  • process of managing and controlling the requirements of a software system from business, organizational, and technical changes
31
Q

Prototype

A
  • helps with elicitation & validation
  • UI development
  • speed testing
32
Q

Waterfall

A
  • Difficult to accommodate change
  • not good for small/medium business systems
  • always have updated set of documentation
  • good for International Space System
  • used for embedded, critical, and large software systems
  1. Define REQUIREMENTS
  2. System/software DESIGN
  3. IMPLEMENTATION/unit testing
  4. INTEGRATION and system testing
  5. OPERATION & MAINTENANCE
33
Q

Incremental

A
  • series of releases
  • interleaf specification design

Advantages:

  1. Cost
  2. Easier to get customer feedback
  3. Early delivery/deployment (of useful software)

Problems:

  1. Not visible process
  2. System structure tends to degrade (as new increments are added)
    • fix: regular refactoring helps
34
Q

Integration and Configuration

A

3 Reused Software Components

  1. Stand-alone application systems
  2. Collections of objects
  3. Web services

Stages:

  1. Requirements specification
  2. Software discovery and evaluation
  3. Requirements refinement
  4. Application system configuration
  5. Component adaptation and integration
35
Q

Four Design Process Activities

A
  • architectural
  • database
  • interface (must be unambiguous)
  • component selection and design
36
Q

Except for ____ _______, systems should not be tested as a single, monolithic unit

A

Small programs

37
Q

The 3 Software validation (V & V - Verificaiton and validation) Stages

A
  1. Component testing
  2. System testing
  3. Customer testing
38
Q

2 Approaches that reduce the costs of rework

2 Ways to Cope with Change

A
  1. Change anticipation (mock ups before implementation)
  2. Change tolerance (make change implementation easy)
    ___________
  3. System prototyping
  4. Incremental delivery
39
Q

How should you develop UI?

A

Rapid prototyping with end-user involvement