Software Development Process Flashcards

(53 cards)

1
Q

3 Main Areas of Software Engineering

A

Software Development
Software Maintenance
Software Management

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

What does software development entail?

A

Following all phases of the software lifecycle

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

What does software maintenance involve?

A

Incorporating changes into an existing system

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

What does software management include?

A

Estimating development costs, scheduling, and planning development tasks

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

What are two goals of software engineering?

A
  1. Dealing with the large size & complexity of software systems
  2. Producing high-quality software that satisfies quality requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the 3 main categories of software systems?

A

Application Software
System Software
Software Tools

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

What is application software? (Definition)

A

Programs developed to solve a specific problem for a specific client

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

What is system software? (Definition)

A

Software that controls the communication between hardware and programs (operating software) or establishes communication between devices (networking software)

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

What are some examples of types of application software?

A

Scheduling, e-commerce, communication

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

What are some examples of software tools?

A

Data management systems, IDEs, debuggers, compilers, etc.

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

What are 4 categories of application software?

A

Critical
Distributed
Real-time
Dynamic

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

What are safety-critical systems?

A

Critical software that can have a catastrophic impact on human lives, the environment, or the economy.

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

What are distributed systems?

A

Software components deployed on several hardware devices.

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

What is a real-time system?

A

Systems that respond in time to events.

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

What is a dynamic software system?

A

Systems where the configuration or architecture changes during runtime.

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

What organizations provide a code of ethics for software development?

A

ACM (Association for Computing Machinery)
IEEE (Institute of Electrical and Electronics Engineers)

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

What are the 7 points of the code of ethics for software development?

A

Public Interest
Client & Employer
Product Quality
Integrity of Software Developers
Integrity of Managers
Integrity of the Profession
Supporting Colleagues

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

What are the 5 phases of the software development life cycle?

A

Feasibility Study > Analysis > Design > Implementation > Testing

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

What is the software feasibility study?

A

Determining whether to proceed with a software proposal.

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

What is software analysis?

A

Describing the problem requirements in terms of functional and quality requirements.

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

What is software design?

A

Developing a high-level solution to the problem requirements, aka software modelling.

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

What is software implementation?

A

Actualize the solution using programming languages and environments.

23
Q

What is software testing?

A

Checking if the problem is solved and verifying quality requirements.

24
Q

What does software maintenance include?

A

Improving, extending, or adapting existing software.

25
What are the 3 tasks of an economic feasibility study?
1. Determine the benefit of a new product 2. Estimate the total cost of development 3. Weigh the cost against the benefit
26
What are the 3 tasks of the software analysis phase?
1. Requirements Elicitation 2. Requirements Specification 3. Requirements Validation
27
What are the two types of requirements?
1. Functional - functions or services an application offers 2. Quality - security, scalability, and robustness
28
What does viewing the software as a “black box” mean in the analysis phase?
Focusing on the external behaviour and interactions with the environment.
29
What are some ways used to specify functional requirements?
Data Flow Diagrams Use Case Scenarios Finite State Machines (FSM) Formal Methods
30
What is the focus of the software design phase?
The internal structure and behaviour of the software.
31
What are the two phases of software design?
1. High-level design (top-level software architecture) 2. Detailed design (refining architecture into models)
32
What is software architecture?
The organization of the software system into main components and their interfaces.
33
What is the goal of software architecture?
Constructing a solution that satisfies functional and quality requirements (e.g. maintainability)
34
What are architectural styles?
Patterns like MVC or n-layer that define rules of interaction between components.
35
What is detailed design?
Refining each component of the software architecture into sub-components until reaching modules.
36
What are design patterns?
Templates describing well-known design problems and general solutions.
37
What happens after the software design phase?
The solution is implemented using programming languages, software environments, and tools.
38
What are some examples of programming paradigms?
Multi-threaded programming and object-oriented programming
39
What is the software testing phase?
Evaluating each software quality by defining test cases.
40
What are the 3 types of software testing?
1. Unit testing (single component) 2. Integration testing (interaction between components) 3. System testing (entire application)
41
Why is software testing an expensive phase?
Evaluating many quality requirements and modifying the program when errors are found
42
What are the 5 types of software maintenance?
1. Corrective (fixing bugs) 2. Perfective (improving quality) 3. Adaptive (adopting new technologies) 4. Preventative (updating documentation) 5. Enhancing (including new functional requirements)
43
Why is software maintenance challenging?
Changes can break existing functionality and quality.
44
What UML diagrams are used in functional requirements specification?
Use Case & Activity Diagrams
45
What UML diagrams are used in the software design phase?
Class diagrams
46
What UML diagrams are used in the software implementation phase?
Component diagrams
47
What are the main concepts in a use case diagram?
Actor, use case, and association
48
What are the main concepts in an activity diagram?
Activity state, action flow, and decision node
49
What are the main concepts in a class diagram?
Classes & relationships (inheritance, association, aggregation, composition, dependency)
50
What are the main concepts in a component diagram?
Software components (files) and dependencies between them.
51
What are the main concepts in a deployment diagram?
Nodes (hardware) and associations (network protocols).
52
What are heavyweight process models?
Models with comprehensive planning, extensive documentation, and detailed design (e.g. waterfall, v-model)
53
What are lightweight process models?
Models with short planning cycles, minimal documentation, and code-oriented approaches (e.g. prototyping, spiral, agile)