Chapter 2: Software Processes Flashcards

(40 cards)

1
Q

These comprise the structured approaches and methodical procedures utilized during the development and upkeep of software systems.

A

Software Processes

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

Is a systematic process for planning, creating, testing, deploying, and maintaining software applications.

A

Software Development Life Cycle (SDLC)

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

Importance of SDLC (4)

A
  • Structure and Organization
  • Quality Assurance
  • Risk Management
  • Improved Project Planning
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Key Benefits of SDLC (4)

A
  1. Improved Project Management
  2. Better Quality Control
  3. Cost and Time Efficiency
  4. Customer Satisfaction
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Six Essential Activities of SDLC

A
  1. Requirements Analysis
  2. System Design (Development)
  3. Implementation (Coding)
  4. Testing
  5. Deployment
  6. Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

In this phase, software engineers work with stakeholders to gather and document the functional and non-functional requirements of the software system.

A

Requirements Analysis

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

Key Activities in Requirements Analysis

A
  • identifying user needs
  • defining system features
  • setting constraints
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Example Deliverables in Requirements Analysis

A
  • Requirement Specification Document (RSD)
  • Feasibility Report
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

In this phase, the system’s architecture and design are created based on the gathered requirements.

A

System Design

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

Key Activities in System Design

A
  • Architectural design.
  • Data flow diagrams and entity-relationship diagrams.
  • User interface design
  • Database design
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Example Deliverables in System Design

A
  • System Architecture Document
  • Database Schema
  • User Interface Prototypes
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

During this phase, software engineers translate the system design into code.

A

Implementation

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

Key Activities in Implementation

A
  • Writing and compiling code.
  • Integrating modules.
  • Code review and version control.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Example Deliverables in Implementation

A
  • Source Code
  • Module Specifications
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

This phase ensures that the software meets the specified requirements and works as intended.

A

Testing

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

tests individual parts of the program (such as a function or module)

A

unit testing

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

tests how different parts of the program work together.

A

integration testing

18
Q

tests the complete system as a whole.

A

system testing

19
Q

tests whether the system meets user or customer requirements and is ready for use.

A

acceptance testing

20
Q

Key Activities in Testing

A

Creating test cases and scripts
Performing different types of testing
Identifying and fixing bugs

21
Q

This phase involves releasing the software to the production environment and making it available to end users.

22
Q

This phase involves updating and improving the software after deployment to fix bugs, add new features, and adapt to changes in the environment or requirements.

23
Q

Key Activities in Maintenance

A
  • Bug fixes and updates.
  • Performance optimization.
  • Adding new features based on user feedback.
  • Monitoring and support.
24
Q

Example Deliverables in Maintenance

A
  • Bug Fix Reports
  • Update and Patch Releases
25
Controls versions of code, documents, and changes
Software Configuration Management (SCM)
26
A software process is represented in a simplified manner by a _______________.
Software Process Model
27
Types of Software Process Model
1. Waterfall Model 2. Incremental Model 3. Agile Method 4. V-Model (Validation and Verification Model) 5. DevOps Model
28
A sequential software (or project) development methodology in which the project is divided into distinct, chronological phases.
Waterfall Model
29
Fundamental Principles of the Waterfall Model
1. Sequential Structure 2. Minimal customer involvement 3. Robust documentation
30
Water Model Stages (5)
1. Definition and Analysis of Requirements 2. Design of systems and software 3. Implementation 4. Verification 5. Maintenance
31
When to use Waterfall Model
- Project has clearly defined requirements - Project has firmly set tasks and deadlines - You have time for planning
32
Involves creating an initial implementation, soliciting user feedback, and subsequently refining it across multiple iterations until a satisfactory system.
Incremental Model
33
Advantages of the Incremental Model
1. Less Expense 2. Customer Feedback 3. Faster Delivery
34
Approach to software development that focuses on delivering small, working increments of software frequently and adapting to changing requirements.
Agile Method
35
Key Principles of Agile Method
- Customer collaboration over contract negotiation. - Responding to change over following a plan. - Working software over comprehensive documentation.
36
Method that emphasizes testing at each stage of development. Each phase of development has a corresponding testing phase.
V-Model
37
Model focuses on collaboration between development and operations teams to automate and streamline the software development, testing, and deployment processes.
DevOps Model
38
DevOps model emphasizes ____________ and _____________.
continuous integration (CI) and continuous delivery (CD)
39
Is a software development paradigm that prioritizes the methodical reuse of pre-existing software artifacts in order to improve software quality, maintainability, and productivity.
Reuse-Oriented Software Engineering
40
Types of Reusable Software Components
1. Web Services 2. Component Framework Packages 3. Standalone Software Systems