[3] Software Development Process Model

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/133

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

134 Terms

1
New cards

People (in software development)

One of the three cornerstones needed to produce a successful software product, referring to the individuals involved in the process.

2
New cards

Projects (in software development)

One of the three cornerstones needed to produce a successful software product, representing the specific undertakings to develop software.

3
New cards

Processes (in software development)

One of the three cornerstones needed to produce a successful software product; part of a software life cycle model or methodology.

4
New cards

Software Life Cycle Model/Methodology

A framework of processes used for developing and maintaining software.

5
New cards

Project Tasks and Processes

Defined in a project schedule and developed based on the adopted process paradigm/model or methodology.

6
New cards

Importance of Processes

They guarantee that the developed software product possesses good qualities.

7
New cards

Impact of Poor Process Model Selection

Affects the quality of the delivered software project.

8
New cards

Need for Industry-Proven Models

To manage software activities and increase the quality of software developed and maintained.

9
New cards

Benefits of Software Engineering Life Cycle Models

Provide systematic and well-structured approaches, often supported by tools for effective use.

10
New cards

Tailoring Life Cycle Models

Can be adapted based on organizational size, maturity level, and software complexity.

11
New cards

Software Engineering Process Model (Life-cycle Model/Strategy/Paradigm/Method)

Chosen based on project nature, application, methods, tools, controls, and required deliverables.

12
New cards

Generic Stages in Software Development (Regardless of Model)

Definition, Implementation, and Maintenance.

13
New cards

Major Categories of Software Engineering Process Models

Linear Models and Variants, Iterative or Prototyping, and Evolutionary Model.

14
New cards

Linear Models

Software development models characterized by a sequential flow of phases.

15
New cards

Classic System Development Life Cycle (SDLC) / Waterfall Approach / Software Life Cycle / Linear Sequential Model

A linear model that demands a systematic, sequential approach from system level through analysis, design, coding, testing, and maintenance.

16
New cards

Analysis Phase (Waterfall Model)

Establishes system services, constraints, and goals through user consultations; includes requirements definition, interface definition, and prioritization.

17
New cards

Requirements Specification Document (Waterfall Analysis)

The main output of the analysis phase, detailing the defined and prioritized software requirements.

18
New cards

Other Deliverables of Analysis Phase (Waterfall)

Acceptance test plan document, scope and vision document, and revised project plan.

19
New cards

System/Software Design Phase (Waterfall Model)

Establishes an overall system architecture and plans a solution based on the requirements document.

20
New cards

Activities in Design Phase (Waterfall)

High-level architectural design, database design, interface design, and detailed designs.

21
New cards

Design Specifications Document (Waterfall Design)

The main deliverable of the design phase, encompassing high-level and detailed design documents.

22
New cards

High-Level Design (Waterfall)

Focuses on identifying software modules and their interfaces.

23
New cards

Detailed Design (Waterfall)

Provides details on each module, including data structures and algorithms.

24
New cards

Database Design (Waterfall)

Presents a detailed description of the database schema based on the Requirements Specifications Document.

25
New cards

Interface Design (Waterfall)

Designs graphical user interface components and all interfaces with other systems/devices.

26
New cards

Verification of Designs (Waterfall)

Can be done by building executable design models or prototypes.

27
New cards

Implementation Phase (Waterfall Model)

Translates the system and software design into programs or program units (executable code) using a suitable programming language.

28
New cards

Database Implementation (Waterfall)

The database design is implemented, integrated with the code, and potentially populated with initial data.

29
New cards

Testing and Integration Phase (Waterfall Model)

Executes test plans, tests individual units (Unit Test), then tests the complete system (Integration and System Test) to ensure requirements are met.

30
New cards

Validation (in Testing)

Testing performed against the original requirements.

31
New cards

Verification (in Testing)

Testing performed against design specifications.

32
New cards

Deliverable of Testing and Integration (Waterfall)

The integrated software.

33
New cards

Operation and Maintenance Phase (Waterfall Model)

The system is installed and put into practical use based on the installation and deployment plan.

34
New cards

Client/User Testing (Waterfall)

Users test the system's usability and applicability based on the acceptance test plan.

35
New cards

Deliverables of Operation and Maintenance (Waterfall)

The official acceptance document signed by the client and the properly installed software system.

36
New cards

Characteristics of the Waterfall Model

Sequential and generally one-way phases, early deadline determination, completely and unambiguously determined results, milestone document suite concluding each phase, applicability to large and small projects, ideal with available resources, applicable with fully documented standard procedures.

37
New cards

Advantages of the Waterfall Model

Divides complex tasks, allows careful planning, clear delineation of responsibilities, clear phases with specified inputs/deliverables/milestones for progress assessment, easy to apply and understand, detailed documents reduce future maintenance costs.

38
New cards

Disadvantages of the Waterfall Model

Rarely follows sequential flow in real projects, difficulty for customers to state all requirements explicitly, working version available late, discourages late changes, depends on stable requirements, excessive documentation, may lead to "blocking state".

39
New cards

Main Drawback of the Waterfall Model

Difficulty of accommodating change after the process begins; one phase must complete before the next.

40
New cards

Consequences of Ignoring Requirements Ambiguity (Waterfall)

Potential severe consequences, including higher repair costs later.

41
New cards

Fountain Model / Iterative Waterfall

A variant of the waterfall model where iteration to previous phases ("water can flow upwards") is recognized as necessary.

42
New cards

Advantage of Fountain Model

More realistic as it allows revisiting preceding phases if needed.

43
New cards

Disadvantage of Fountain Model

More difficult to control, hence the need for change control procedures.

44
New cards

Rapid Application Development (RAD) Model

A linear sequential model emphasizing an extremely short development cycle through component-based construction.

45
New cards

RAD Teams

Separate teams address each major function in a project and then integrate their work.

46
New cards

Business Modeling Phase (RAD)

Models information flow among business functions, answering questions about what drives, generates, goes, and processes information.

47
New cards

Data Modeling Phase (RAD)

Refines the information flow into data objects needed to support the business, identifying attributes and relationships.

48
New cards

Process Modeling Phase (RAD)

Transforms data objects to achieve the necessary information flow for business functions, creating processing descriptions for data manipulation.

49
New cards

Application Generation Phase (RAD)

Assumes the use of fourth-generation techniques, reusing or creating reusable components and using automated tools.

50
New cards

Testing and Turnover Phase (RAD)

Emphasizes reuse, reducing overall testing time, but requires testing of new components and interfaces.

51
New cards

Problems With RAD

Requires sufficient human resources for large projects, committed customers and developers for rapid-fire activities, not suitable for poorly modularized systems, high-performance requirements, or high technical risks.

52
New cards

Other Linear Life-Cycle Strategies

Model Systems Ltd (NCC-UK), Foundation (Andersen Consulting), Structured Project Life-cycle (Yourdon group).

53
New cards

Iterative or Prototyping Model

A process where developers create a model (prototype) to understand customer requirements before delivering the final system, proceeding in iterations.

54
New cards

Prototype

An executable program implementing mainly the functional aspects related to the graphical user interface.

55
New cards

Customer Feedback (Prototyping)

Provided on the prototype in each iteration, continuing until the customer is satisfied.

56
New cards

Types of Prototypes

PC-model (human-machine interactions), working software (subset of functions), existing program (performs desired functions but will be improved).

57
New cards

Characteristics of Prototyping Model

Starts with incomplete requirements, full requirements derived from user interaction, three types based on code retention.

58
New cards

Prototyping with Disposable System

Tests solution adequacy; requirements formalized after prototype feedback; prototypes discarded, and development follows a linear sequential model.

59
New cards

Prototyping with Working System

A prototype of critical functions is built and, after acceptance, extended to a working system.

60
New cards

Evolutionary Prototyping

Prototype adapts to changing requirements; subsequent prototypes evolve into the operational system; the final prototype is used for deployment.

61
New cards

Ideal Applications for Prototyping

Systems with defined requirements but unknown human-computer interface suitability, or systems the developer has not seen before.

62
New cards

Advantages of Prototyping Model

No need for uniquely determined requirements initially, requirements can change, delivers clear system definition to users, enhances communication about interfaces, increases user involvement and satisfaction, development environment can be tested quickly, can demonstrate feasibility.

63
New cards

Disadvantages of Prototyping Model

Rising user expectations (seeing a seemingly working version), danger of never-ending development due to user interaction, risk of neglecting planning/verification/validation/documentation, danger of modeling before sufficient analysis, risk of design/implementation compromises for quick prototypes, building on prototypes can lead to failure.

64
New cards

Prototyping as a Tool

Clarifies requirements, explores design alternatives, tests solution adequacy.

65
New cards

Addressing Waterfall Model Weaknesses with Prototyping

Reliance on written documentation for requirements can be inappropriate for user-centered systems; approved written requirements can be volatile.

66
New cards

Benefits of Prototyping Requirements

Building a visual and executable model allows effective review and approval, reducing risks of later changes and fewer revisions/iterations.

67
New cards

Evolutionary Model

An iterative approach where software engineers develop increasingly complete versions of the software.

68
New cards

Starting Point of Evolutionary Model

The problem domain needing a software or automated solution.

69
New cards

Steps in Evolutionary Model

(1) Delineate functional boundaries, (2) Split into Microsystems, (3) Develop and deploy microsystem (<= 6 months), (4) Reassess long-term goals and adjust subsequent microsystems; repeat steps 3 and 4.

70
New cards

Characteristics of Evolutionary Model

Product-oriented, iterative (all phases in each iteration), continuous testing and re-planning based on long-term goals.

71
New cards

Advantages of Evolutionary Model

Faster results for developers, fast response and visible product evolution for users/management, fast reaction to changed goals, better manageability through incremental construction and continuous control.

72
New cards

Disadvantages of Evolutionary Model

No scheduled recursion to previous microsystems, changing environments may obliterate long-term goals, can be costly.

73
New cards

Examples of Evolutionary Development

Incremental Model and Spiral Model.

74
New cards

Incremental Model

Combines linear sequential elements with prototyping's iterative philosophy; each linear sequence produces a deliverable "increment".

75
New cards

First Increment (Incremental Model)

Often the core product addressing basic or high-priority requirements.

76
New cards

Subsequent Increments (Incremental Model)

Address medium and low priority requirements, modifying the core product and adding features.

77
New cards

Advantages of Incremental Model

Operational product with each increment, reduced risk of failure and changing requirements, user can adjust to new technology incrementally.

78
New cards

Disadvantages of Incremental Model

Lack of process visibility (hard to determine progress to final version), often poorly structured systems, may require special skills (e.g., rapid prototyping languages).

79
New cards

Recommendations for Incremental Model

Applicable for small growing companies, useful with limited/critical budget, requirements should be clear, releases carefully scheduled, produce specifications before coding.

80
New cards

Usefulness of Incremental Approach

When technical requirements or staffing is unavailable for complete implementation by the deadline.

81
New cards

Spiral Model

Couples prototyping's iterative nature with the linear sequential model's controlled aspects; software developed in incremental releases.

82
New cards

Task Regions/Framework Activities (Spiral Model)

Customer communication, planning, risk analysis, engineering, construction and release, customer evaluation.

83
New cards

Planning Region (Spiral Model)

Results in adjustments to the project plan; cost and schedules adjusted based on customer feedback.

84
New cards

Risk Analysis (Spiral Model)

A key aspect involving assessment of both technical and managerial risks.

85
New cards

Prototyping in Spiral Model

Can be applied at any stage of evolution as a risk reduction mechanism.

86
New cards

Throw-Away Prototypes (Spiral Model)

May or may not be required in each phase as part of risk reduction.

87
New cards

Advantages of Spiral Model

Splits large efforts into small chunks (high-risk functions first), takes advantage of incremental release, cumulative costs can be assessed, rapid application development can be used.

88
New cards

Disadvantages of Spiral Model

Complex model, potentially too complicated and costly, no clear distinct phases (difficult to manage), additional documentation needed for intermediate stages.

89
New cards

Recommendations for Spiral Model

Ideal for large-scale systems (not small projects due to cost), applicable with high risks, dynamic procedures/technology, lack of expertise, and when the system can be broken down.

90
New cards

Addressing Waterfall Weakness (Spiral Model)

Includes formal and continuous consideration of risk management, enhancing software quality and project success.

91
New cards

Relative Use of Spiral Model

Relatively new and not yet widely used.

92
New cards

Concurrent Development Model / Concurrent Engineering

Allows tracking the status of extremely complex sets of activities, especially those occurring simultaneously within a phase.

93
New cards

Representation of Concurrent Model

Schematically as a series of major technical activities, tasks, and their associated states.

94
New cards

Focus of Concurrent Model

Defines a network of activities existing simultaneously, rather than a sequence.

95
New cards

Common Application of Concurrent Model

Development of client/server applications, but applicable to all types.

96
New cards

Advantage of Concurrent Model

Provides an accurate picture of the current project state.

97
New cards

Fourth Generation Techniques (4GT)

A broad array of software tools enabling high-level specification of software characteristics.

98
New cards

Examples of 4GT Tools

Non-procedural languages (database query, reports, data manipulation, screen interaction, code generation), high-level graphics, spreadsheet capability.

99
New cards

Focus of 4GT

Specifying software using specialized languages or graphic notation understandable by the customer.

100
New cards

Application of 4GT for Small Applications

Possible to move directly from requirements to implementation using a non-procedural language.