quiz image

Software Development Methodologies

FavorablePeninsula avatar
FavorablePeninsula
·
·
Download

Start Quiz

Study Flashcards

30 Questions

What is a development methodology?

A set of practices and procedures for creating software

Which is the correct order in the waterfall development process?

Software Requirements - Software Design - Implementation (Coding) - Verification (Testing)

What is the main focus of the Agile Manifesto?

Continuous delivery of valuable software

Which value does Extreme Programming (XP) emphasize?

'Working software over comprehensive documentation'

In Agile methodology, what is valued more than processes and tools?

Customer collaboration

What does the Agile Spirit emphasize over contract negotiation?

'Customer collaboration over contract negotiation'

What is the typical frequency of delivering increments to customers in extreme programming?

Every 2 weeks

Which of the following is NOT a core practice of extreme programming?

Pair programming

What is the primary focus of the Scrum agile method?

Managing iterative development

What must be done for every build in extreme programming?

All tests must be run and the build is only accepted if tests run successfully

In extreme programming, what is the purpose of 'simple design'?

To meet the current requirements and no more

What is the main purpose of 'test-first development' in extreme programming?

To write tests for a new piece of functionality before that functionality is implemented

Which of the following is a key activity during the software construction phase?

Writing code

What is the primary purpose of unit testing?

To check if individual components or methods work as intended

Which of the following is NOT a step in the debugging process?

Redesign the system architecture

What is the purpose of integration in software development?

To combine different components into a single system

Which of the following statements is TRUE about coding and software engineering?

Coding is only a small part of software engineering activities

Which of the following is an integration strategy mentioned in the text?

Top-down

What is the primary role of software verification?

To ensure the developed software conforms to the requirements

Which of the following is NOT a type of software testing?

Requirements analysis

What is the purpose of a test plan?

To describe the testing strategy and approach

Which of the following statements about software testing is FALSE?

Testing can certify the absence of defects in the software

What is the difference between test scenarios and test cases?

Test scenarios describe the features to be tested, while test cases test individual functions

Which of the following is NOT a responsibility of project management?

Developing test procedures and scripts

Which of the following is NOT a key activity in software engineering?

Hardware implementation

What is the main outcome of software engineering?

An efficient and reliable software product

Which of the following statements about software development activities is TRUE?

The activities do not follow strictly one after another

What is the primary focus of the 'Software Modelling' activity in software engineering?

Creating visual representations of the software system

Which of the following is an example of an agile methodology in software development?

Extreme Programming (XP)

What is the primary purpose of software engineering?

To develop software products using well-defined scientific principles, methods, and procedures

Study Notes

Software Engineering Fundamentals

  • Software engineering is an engineering discipline that provides knowledge, tools, and methods for defining software requirements, performing software design, software construction, software modeling, software testing, and software maintenance tasks.
  • It aims to produce an efficient and reliable software product.

Importance of Software Engineering

  • Important decisions are made during requirements analysis and design.
  • Coding is only 20% of the project activities, while documentation, testing, integration, and maintenance are often overlooked.

Software Verification and Testing

  • Software verification checks whether the developed software conforms to the requirements.
  • It is performed by Software Quality Assurance Engineers (QA).
  • Two approaches: formal reviews and inspections, and different kinds of testing.
  • Testing aims to find defects (bugs) and cannot certify their absence, only decrease their rates.

Testing Process

  • Test planning: establishing test strategy and test plan during requirements and design phases.
  • Test development: creating test procedures, test scenarios, test cases, and test scripts.
  • Test execution and reporting.
  • Retesting defects.

Test Plan and Test Cases

  • A test plan is a formal document that describes how tests will be performed.
  • It includes a list of test activities, features to be tested, testing approach, schedule, and acceptance criteria.
  • Test scenarios and test cases: stories to be tested and tests of single functions.

Software Construction

  • During this phase, developers create the software.
  • It includes internal method design, writing code, writing unit tests, debugging, and integration.

Writing the Code

  • Coding is the process of writing the programming code (source code).
  • The code strictly follows the design.
  • Developers perform internal method design as part of coding.

Testing the Code

  • Testing checks whether the developed software conforms to the requirements.
  • Developers test the code after writing it, and unit testing is done by developers.

Debugging

  • Debugging aims to find the source of an identified defect and fix it.
  • Performed by developers.
  • Steps: find the defect, identify the source of the problem, fix the defect, and test to check the fix.

Integration

  • Integration is putting all pieces together, compiling, running, and deploying modules as a single system.
  • Testing identifies defects, and integration strategies include big bang, top-down, and bottom-up.

Extreme Programming (XP)

  • An agile method that takes an ‘extreme’ approach to iterative development.
  • Practices: incremental planning, small releases, simple design, test-first development, and refactoring.

Agile Method: Scrum

  • A general agile method focusing on managing iterative development.
  • Three phases: sprint planning, daily Scrum, and sprint review.

The Agile Manifesto

  • Prioritizes customer satisfaction through early and continuous delivery of valuable software.
  • Values: working software over comprehensive documentation, customer collaboration over contract negotiation, individuals and interactions over processes and tools, and responding to change over following a plan.

Explore the concept of software development methodologies, including the Waterfall process and the Agile Manifesto. Learn about the different phases involved in software development and the principles that guide these methodologies.

Make Your Own Quizzes and Flashcards

Convert your notes into interactive study material.

Get started for free
Use Quizgecko on...
Browser
Browser