โ† All ICT Flashcard Decks

Software Development Concepts Flashcards

6 cards from real ICT practice questions. Tap to flip, then mark Knew It or Still Learning โ€” missed cards come back until you master them.

Read the first 6 Software Development Concepts flashcards as text
  1. A software development team is building a complex application where the customer's requirements are expected to change frequently. The project plan involves delivering functional pieces of the software in two-week cycles, allowing for regular feedback and adjustments. Which software development model is BEST suited for this scenario?

    Answer: Agile

    The Agile model is designed for projects with evolving requirements. It emphasizes iterative development, frequent client feedback, and delivering working software in small, incremental cycles (sprints), which perfectly matches the scenario of two-week cycles and changing requirements. The Waterfall model is a rigid, sequential process that is not suitable for projects where requirements are expected to change.

  2. A developer needs to work on a new experimental feature for an application without disrupting the main, stable version of the code. In a distributed version control system like Git, which command should they use to create an isolated environment for this new development?

    Answer: git branch

    The `git branch` command is used to create a new, independent line of development. This allows developers to work on features or bug fixes in isolation from the main or 'master' branch, preventing unstable code from being merged until it is complete and tested. `git commit` saves changes, `git pull` updates the local repository, and `git merge` combines branches.

  3. Which core concept of Object-Oriented Programming (OOP) enables a new class to be based on an existing class, acquiring its properties and methods and promoting code reusability?

    Answer: Inheritance

    Inheritance is a fundamental principle of OOP where a new class (subclass) can acquire the attributes and behaviors of an existing class (superclass). This is a key mechanism for code reuse and for creating a logical hierarchy of related classes.

  4. A developer is writing a script that must run on Windows, macOS, and Linux servers without being recompiled for each platform. The script will be executed directly by a runtime engine installed on each server. Which type of programming language is MOST suitable for this requirement?

    Answer: Interpreted Language (e.g., Python, JavaScript)

    Interpreted languages offer high portability because the source code can run on any platform that has the appropriate interpreter installed. The interpreter reads and executes the code line-by-line, translating it for the underlying operating system at runtime. Compiled languages must be specifically compiled for each target architecture, creating different executables for Windows, macOS, etc.

  5. What is the primary function of an Application Programming Interface (API) in modern software development?

    Answer: To define a standardized set of rules and protocols for how different software components should communicate and interact.

    An API acts as a contract or an intermediary that allows two separate software applications to communicate with each other. It specifies the methods and data formats that developers must use to request and exchange information, without needing to know the internal workings of the other system.

  6. A quality assurance team is tasked with verifying that several independently developed software modules function correctly when they are combined and interact with each other. Which level of software testing is being performed?

    Answer: Integration Testing

    Integration testing is the phase where individual software modules are combined and tested as a group to expose faults in their interaction. This is distinct from Unit Testing, which tests modules in isolation, and System Testing, which tests the entire, complete application.