Software Engineering 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
Requirements engineering process includes...
- requirements elicitation - requirements specification - requirements validation - requirements management
26
Requirements elicitation
- iterative process - can be represented as a spiral of activities - requirements discovery - requirements classification/organization - requirements negotiation - requirements documentation
27
Requirements specification
- process of formally documenting user and system requirements and creating a software requirements document
28
Software requirements document
- agreed statement of system requirements | - should be organized so that both system customers and software developers can use it
29
Requirements validation
- process of checking the requirements for... VALIDITY • CONSISTENCY • COMPLETENESS • REALISM • VERIFIABILITY
30
Requirements management
- process of managing and controlling the requirements of a software system from business, organizational, and technical changes
31
Prototype
- helps with elicitation & validation - UI development - speed testing
32
Waterfall
- 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
Incremental
- 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
Integration and Configuration
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
Four Design Process Activities
- architectural - database - interface (must be unambiguous) - component selection and design
36
Except for ____ _______, systems should not be tested as a single, monolithic unit
Small programs
37
The 3 Software validation (V & V - Verificaiton and validation) Stages
1. Component testing 2. System testing 3. Customer testing
38
2 Approaches that reduce the costs of rework | 2 Ways to Cope with Change
1. Change anticipation (mock ups before implementation) 2. Change tolerance (make change implementation easy) ___________ 1. System prototyping 2. Incremental delivery
39
How should you develop UI?
Rapid prototyping with end-user involvement