CS UNIT 12

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

What is the primary purpose of a program development lifecycle?

To provide a well-ordered and clearly documented approach to developing a program, ensuring it is understood and used effectively by developers.

Name the five key stages typically included in the program development lifecycle.

Analysis, Design, Coding, Testing, and Maintenance.

What is the main goal of the 'analysis' stage in the program development lifecycle?

To clearly define the problem and the requirements for the software solution, ensuring everyone understands what is needed.

In the 'design' stage, what documentation methods can be used to formally represent the program's structure and logic?

<p>Structure charts, state-transition diagrams, and pseudocode can be used.</p>
Signup and view all the answers

What is the purpose of testing a program, and why is it important?

<p>To ensure that the program functions correctly under all conditions and meets the defined requirements, ensuring reliability and user satisfaction.</p>
Signup and view all the answers

Explain the role of 'maintenance' in the program development lifecycle.

<p>To ensure the program continues to work effectively throughout its life by addressing issues, correcting errors, improving functionality, and adapting to new requirements.</p>
Signup and view all the answers

Describe the waterfall model and for what types of projects is it most suitable.

<p>The waterfall model is a linear, sequential development cycle where each stage is completed and signed off before moving to the next, suitable for smaller projects with well-defined and stable requirements.</p>
Signup and view all the answers

What are the key benefits and drawbacks of using the waterfall model in program development?

<p>Benefits include easy management and well-documented stages; drawbacks include difficulty in changing requirements and late production of a working program.</p>
Signup and view all the answers

Explain the concept of the iterative model in software development.

<p>The iterative model involves developing a simple subset of requirements, then expanding and enhancing it through repeated development cycles until the full system is complete.</p>
Signup and view all the answers

What are the advantages of using the iterative development model?

<p>Working programs are produced at every iteration, it's more flexible for changing requirements, and there's high customer involvement.</p>
Signup and view all the answers

Describe the Rapid Application Development (RAD) model.

<p>RAD involves developing different parts of the requirements in parallel using prototyping and early user involvement, utilizing multiple teams.</p>
Signup and view all the answers

What are the principles, benefits, and drawbacks of Rapid Application Development (RAD)?

<p>Principles: minimal planning, code reuse, high customer involvement. Benefits: reduced development time, flexible requirements. Drawbacks: modular system required, strong developers needed, not suitable for simple projects.</p>
Signup and view all the answers

What is a structure chart, and what is its purpose in program design?

<p>A structure chart is a modelling tool used to decompose a problem into sub-tasks, showing the hierarchy of different modules and their interactions.</p>
Signup and view all the answers

How are modules and parameters represented in a structure chart?

<p>Modules are represented by boxes, and parameters passed to and from modules are shown by arrows pointing towards the module receiving the parameter.</p>
Signup and view all the answers

What is the purpose of using a diamond-shaped box in a structure chart, and what does it signify?

<p>A diamond-shaped box in a structure chart indicates selection, representing a condition that can be either true or false, leading to different paths in the program.</p>
Signup and view all the answers

How is repetition represented in a structure chart, and why is it important?

<p>Repetition is shown by adding a labelled semi-circular arrow above the modules to be completed, indicating that a task or set of tasks is repeated until a certain condition is met.</p>
Signup and view all the answers

Explain how a structure chart is used to derive a pseudocode algorithm.

<p>Once a structure chart is completed, it provides a visual blueprint for creating a pseudocode algorithm by outlining the modules, their hierarchy, and the flow of data and control.</p>
Signup and view all the answers

What is a finite state machine (FSM), and how does it relate to a state-transition diagram?

<p>A finite state machine (FSM) is a mathematical model of a machine that can be in one state of a fixed set of possible states, and a state-transition diagram visually represents the behavior of the FSM.</p>
Signup and view all the answers

How are states, transitions, and events represented in a state-transition diagram?

<p>States are represented as nodes (circles), transitions as interconnecting arrows, and events as labels on the arrows.</p>
Signup and view all the answers

What is the purpose of a state-transition table, and what information does it contain?

<p>A state-transition table shows every state of a finite state machine (FSM), each possible input, and the state after the input to show state changes based on inputs.</p>
Signup and view all the answers

Explain the difference between syntax errors and logic errors in programming.

<p>Syntax errors are errors in the grammar of the programming language, while logic errors are errors in the logic of the program causing it to produce unexpected results.</p>
Signup and view all the answers

Give an example of how an Integrated Development Environment (IDE) can help in locating and correcting syntax and logic errors.

<p>IDEs can highlight syntax errors, offer suggestions for corrections, and allow single-stepping through programs to identify logic errors.</p>
Signup and view all the answers

What are run-time errors, and how do they differ from syntax and logic errors? Give an example.

<p>Run-time errors occur when the program is executed, often causing it to halt unexpectedly, like a division by zero, versus syntax errors which prevent compile, and logic errors which cause incorrect results.</p>
Signup and view all the answers

What is a patch, and why is it used in software maintenance?

<p>A patch is a small program released by developers to correct an error or provide extra functionality in an existing program, addressing issues without requiring a full re-release.</p>
Signup and view all the answers

What is a test strategy, and why is it important in program testing?

<p>A test strategy is an overview set out during the analysis stage, outlining how and when the program is to be tested to meet specified requirements.</p>
Signup and view all the answers

What is a test plan, and how does it contribute to the testing process?

<p>A test plan is a detailed list showing all stages of testing and every test to be performed, specifying the steps and data to be used to verify the software meets requirements.</p>
Signup and view all the answers

Describe the dry run testing method, and explain its purpose in program testing.

<p>Dry run is a manual testing method where the developer works through a program or module, documenting results using a trace table to identify errors before coding.</p>
Signup and view all the answers

Explain how a trace table is used in the dry run testing method.

<p>A trace table shows the process of dry-running a program, with columns showing the values of each variable as it changes during the execution of the code.</p>
Signup and view all the answers

What is a walkthrough in program testing, and how does it differ from a dry run?

<p>A walkthrough is a formal dry run where another team member independently verifies or the developer takes the team through the process, often as a demonstration.</p>
Signup and view all the answers

Describe normal, abnormal, extreme, and boundary test data and why each type is important

<p>Normal is data accepted, abnormal is rejected, extreme tests the limits of acceptance, boundary tests those limits and just outside, all to prove validity.</p>
Signup and view all the answers

Briefly describe White-box testing.

<p>White-box testing involves testing by looking inside the program code, testing the structure and logic of every path through a program module.</p>
Signup and view all the answers

Briefly describe Black-box testing.

<p>Black-box testing tests a module's inputs and outputs without concerning itself with the internal functionality of the module.</p>
Signup and view all the answers

Briefly describe integration testing.

<p>Integration testing is the testing of any separately written modules to ensure they work together, during the testing phase of the program development lifecycle.</p>
Signup and view all the answers

Briefly describe stub testing.

<p>Stub testing can be part of integration testing, which makes use of dummy modules for testing purposes, especially if any modules haven't been implemented.</p>
Signup and view all the answers

Briefly describe alpha testing.

<p>Alpha testing is when a completed, or nearly completed program is tested in-house by the development team.</p>
Signup and view all the answers

Briefly describe acceptance testing.

<p>Acceptance testing is used for the completed program to prove to the customer that it works as required in the environment in which it will be used.</p>
Signup and view all the answers

What are the three common categories of program maintenance? Briefly describe each one.

<p>Corrective (correcting errors), perfective (improving performance), and adaptive (altering to perform new tasks).</p>
Signup and view all the answers

What is corrective maintenance and how does it help?

<p>Corrective maintenance is used to debug errors exposed during use.</p>
Signup and view all the answers

What is adaptive maintenance and how does it help?

<p>Adaptive maintenance adapts a program.</p>
Signup and view all the answers

Flashcards

Program development lifecycle

The process of developing a program set out in five stages: analysis, design, coding, testing and maintenance.

Analysis

The process of investigation, leading to the specification of what a program is required to do.

Design

It uses the program specification from the analysis stage to show how the program should be developed.

Coding

The writing of the program or suite of programs.

Signup and view all the flashcards

Testing

The testing of the program to make sure that it works under all conditions.

Signup and view all the flashcards

Maintenance

The process of making sure that the program continues to work during use.

Signup and view all the flashcards

Waterfall model

A linear sequential program development cycle, in which each stage is completed before the next is begun.

Signup and view all the flashcards

Iterative model

A type of program development cycle in which a simple subset of the requirements is developed, then expanded or enhanced.

Signup and view all the flashcards

Rapid application development (RAD)

A type of program development cycle in which different parts of the requirements are developed in parallel, using prototyping to provide early user involvement in testing.

Signup and view all the flashcards

Structure chart

A modelling tool used to decompose a problem into a set of sub-tasks.

Signup and view all the flashcards

Finite state machine (FSM)

A mathematical model of a machine that can be in one state of a fixed set of possible states.

Signup and view all the flashcards

State-transition diagram

A diagram showing the behavior of a finite state machine (FSM).

Signup and view all the flashcards

State-transition table

A table showing every state of a finite state machine (FSM), each possible input and the state after the input.

Signup and view all the flashcards

Trace table

A table showing the process of dry-running a program with columns showing the values of each variable as it changes.

Signup and view all the flashcards

White-box testing

A method of testing a program that tests the structure and logic of every path through a program module.

Signup and view all the flashcards

Run-time error

An error found in a program when it is executed; the program may halt unexpectedly.

Signup and view all the flashcards

Test strategy

An overview of the testing required to meet the requirements specified for a particular program.

Signup and view all the flashcards

Test plan

A detailed list showing all the stages of testing and every test that will be performed for a particular program.

Signup and view all the flashcards

Dry run

A method of testing a program that involves working through a program or module from a program manually.

Signup and view all the flashcards

Walkthrough

A method of testing a program. A formal version of a dry run using pre-defined test cases.

Signup and view all the flashcards

Black-box testing

A method of testing a program that tests a module's inputs and outputs.

Signup and view all the flashcards

Integration testing

A method of testing a program that tests combinations of program modules that work together.

Signup and view all the flashcards

Stub testing

The use of dummy modules for testing purposes.

Signup and view all the flashcards

Alpha testing

The testing of a completed or nearly completed program in-house by the development team.

Signup and view all the flashcards

Beta testing

The testing of a completed program by a small group of users before it is released.

Signup and view all the flashcards

Acceptance testing

The testing of a completed program to prove to the customer that it works as required.

Signup and view all the flashcards

Corrective maintenance

The correction of any errors that appear during use.

Signup and view all the flashcards

Perfective maintenance

The process of making improvements to the performance of a program.

Signup and view all the flashcards

Adaptive maintenance

The alteration of a program to perform new tasks.

Signup and view all the flashcards

Syntax errors

Errors in the grammar of a source program.

Signup and view all the flashcards

Logic errors

Errors in the logic of a program, meaning the program does not do what it is supposed to do.

Signup and view all the flashcards

Normal test data

Test data that should be accepted by a program.

Signup and view all the flashcards

Abnormal test data

Test data that should be rejected by a program.

Signup and view all the flashcards

Extreme test data

Test data that is on the limit of that accepted by a program.

Signup and view all the flashcards

Boundary test data

Test data that is on the limit of that accepted by a program or data that is just outside the limit of that rejected by a program.

Signup and view all the flashcards

White-box testing

The detailed testing of how each procedure works. This involves testing the structure and logic of every path through a program module.

Signup and view all the flashcards

Black-box testing

Tests a module's inputs and outputs.

Signup and view all the flashcards

Integration testing

Is the testing of any separately written modules to ensure that they work together.

Signup and view all the flashcards

Alpha testing

Is used first. The completed, or nearly completed, program is tested in-house by the development team.

Signup and view all the flashcards

Beta testing

Is then used. The completed program is tested by a small group of users before it is generally released.

Signup and view all the flashcards

Acceptance testing

Is then used for the completed program to prove to the customer that it works as required in the environment in which it will be used.

Signup and view all the flashcards

Study Notes

Program Development Lifecycle Overview

  • The program development lifecycle is a phased approach to creating software, including analysis, design, coding, testing, and maintenance.
  • It ensures a well-ordered and documented process for program development, making it understandable and usable by developers.
  • It is a continuous process until the program is no longer in use, with alterations made to address new circumstances or errors.

Stages of Program Development Lifecycle

  • Analysis: Clearly define the problem and gather requirements.
  • Design: Use the program specification from the analysis stage to outline program development.
  • Coding: Write the program using a suitable programming language.
  • Testing: Run the program with various test data to ensure it meets requirements.
  • Maintenance: Ensure the program's continued effectiveness, addressing problems, correcting errors, improving functionality, or meeting new requirements.

Analysis Stage

  • The analysis stage focuses on clearly defining the problem and requirements.
  • It often starts with a feasibility study, followed by fact-finding to determine program requirements.
  • Requirements include detailing what the program should do and what data is needed.

Design Stage

  • In the design stage the program specification forms how the program should be developed.
  • This includes a clear understanding of all tasks, how they should be performed, and how they interact.
  • Design documentation includes structure charts, state-transition diagrams, and pseudocode.

Coding Stage

  • The coding stage consists of writing the program or set of programs in a programming language.

Testing Stage

  • The testing stage consists of rigorous testing with different sets of data.
  • The intention is to verify how the program conforms to the program design.

Maintenance Stage

  • The maintenance stage ensures continued effective operation.
  • This includes fixing errors that arise, improving features and adapting to new requirements.

Different Development Lifecycles

  • Program development methodologies vary in strength, leading to different lifecycle models.
  • The models mentioned are: waterfall model, iterative model, and rapid application development (RAD).
  • The models can be divided into the five stages: analysis, design, coding, testing, and maintenance.

The Waterfall Model

  • This model is a linear sequential approach where each stage completes before starting the next.
  • It is suited for smaller projects with well-defined, unchanging requirements and a short timescale.
  • Benefits include ease of management and understanding and stages that do not overlap.
  • Drawbacks involve difficulty changing requirements later and the unsuitability for programs where change may occur.

The Iterative Model

  • This model begins with a simple subset of requirements, expanded and enhanced through repeated cycles.
  • It's appropriate for projects with known major requirements but evolving details.
  • Principles consist of incremental development and high customer involvement.
  • Benefits include early working programs, easy testing, and flexibility in altering requirements.
  • Drawbacks include the need for the whole system to be defined at the start.

Rapid Application Development (RAD)

  • This model develops different parts of the requirements in parallel, using prototyping for early user involvement in testing.
  • RAD is runs program development cycles are run in parallel by different teams.
  • Minimal planning and code reuse reduces overall development time.
  • Drawbacks include the need for a modular system and strong, skilled teams.

Structure Charts

  • Structure charts are modelling tools that break down a problem into sub-tasks.
  • They illustrate a hierarchy of modules and their interactions.
  • Modules are represented by boxes, and parameters are passed through arrows.
  • Structure charts can represent selection using diamond shapes, and repetition by adding labelled semi-circular arrows.

Finite State Machine (FSM) & State-Transition Diagrams

  • A finite state machine (FSM) is a mathematical model of a machine in a fixed set of states.
  • State changes occur through external inputs, called transitions.
  • A state-transition diagram shows the FSM's behaviour and the conditions for transitions.
  • States are represented by nodes (circles), transitions by arrows, and events by labels on arrows.

Program Testing

  • Testing includes avoiding and exposing faults in programs.
  • A test strategy should be set out in the analysis stage of the program development lifecycle showing testing requirements.
  • A test plan helps make clear what tests need to be performed.

Types of Test Data

  • Normal test data: Should be accepted and shows the program works.
  • Abnormal test data: Should be rejected due to being unsuitable.
  • Extreme test data: On the limit of data accepted by a program.
  • Boundary test data: Data that is just outside the limit of that rejected by a program.

Types of Errors

  • Syntax errors: Errors in the grammar of a source program.
  • Logic errors: Errors in the logic of a program, meaning the program does not do what it is supposed to do.
  • Run-time errors: Errors that happen when the program is being executed.

Testing Types

  • White-box testing: Detailed testing, testing the structure and logic of a procedure.
  • Black-box testing: Tests a module's inputs and outputs.
  • Integration testing: Testing of modules to ensure they work together.
  • Stub testing: Using dummy modules for testing purposes.
  • Alpha testing: In-house testing by the development team.
  • Beta testing: Testing by a small group of users prior to release.
  • Acceptance testing: Proving to the customer that the program works as required.

Program Maintenance

  • Corrective maintenance: Corrects errors that appear during use.
  • Perfective maintenance: Improves program performance.
  • Adaptive maintenance: Alters a program to perform new tasks.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Program Development Life Cycle Overview
10 questions
CP317 Software Engineering Chapter 2
41 questions
Computer Systems Module 5: Algorithm Development
21 questions
Program Development Life Cycle
11 questions

Program Development Life Cycle

InestimableHorseChestnut1244 avatar
InestimableHorseChestnut1244
Use Quizgecko on...
Browser
Browser