1. A design pattern is a way of reusing abstract knowledge about a problem and its solution

  2. A project plan, is created at the beginning of a project and is never touched again

  3. A software process model (sometimes called a Software Development Life Cycle or SDLC model) is a simplified representation of a software process

  4. According to the ACM/IEEE-CS Joint Task Force on Software Engineering Ethics and Professional Practices, it is ethical to over-represent your competence and take on tasks that are outside of your competence.

  5. Agile development methods such as Scrum and Extreme Programming have a two-stage approach to planning, what are they?

    • Release Planning & Iteration Planning
    • Development Planning & Maintenance Planning
    • Post-Release Planning & Disaster Planning
    • Debugging Planning & Pair Programming
  6. All agile methods suggest that software should be developed and delivered incrementally.

  7. An IDE is the executable after you finish writing and then compiling your program.

  8. An activity diagram shows the interactions between a system and its environment

  9. Architectural patterns are a means of reusing knowledge about generic system architectures. They describe the architecture, explain when it may be used, and point out its advantages and disadvantages.

  10. As software is intertwined with all aspects of our lives, it is essential that we can trust that software.

  11. Change is inevitable in all large software projects

  12. Commonly used Architectural patterns include model-view-controller, layered architecture, repository, client–server, and pipe and filter

  13. Good software should over-deliver the functionality outlined by the user, and should be difficult to maintain so competitors don’t want to copy the product.

  14. In test driven development, tests are written after the code itself has been written to make sure it works as intended

  15. Language processing systems translate one language into an alternative representation of that language

  16. Match the Principle or Practice with their correct Descriptions

    1. Collective ownership

      The pairs of developers work on all areas of the system, so that no islands of expertise develop and all the developers take responsibility for all of the code. Anyone can change anything.

    2. Continuous integration

      As soon as the work on a task is complete, it is integrated into the whole system. After any such integration, all the unit tests in the system must pass.

    3. Incremental planning

      Requirements are recorded on “story cards,” and the stories to be included in a release are determined by the time available and their relative priority. The developers break these stories into development “tasks.”

    4. On-site customer

      A representative of the end-user of the system (the Customer) should be available full time for the use of the XP team. In an extreme programming process, the customer is a member of the development team and is responsible for bringing system requirements to the team for implementation

  17. Match the Principle or Practice with their correct Descriptions

    1. Pair Programming

      Pair Programming

    2. Refactoring

      All developers are expected to refactor the code continuously as soon as potential code improvements are found. This keeps the code simple and maintainable.

    3. Simple Design

      Enough design is carried out to meet the current requirements and no more

    4. Small Releases

      The minimal useful set of functionality that provides business value is developed first. Releases of the system are frequent and incrementally add functionality to the first release

  18. Match the following Product Metrics to their respective definitions

    1. Length of code

      This is a measure of the size of a program.

    2. Cyclomatic complexity

      This is a measure of the control complexity of a program.

    3. Depth of conditional nesting

      This is a measure of the depth of nesting of if-statements in a program.

    4. Fog index

      This is a measure of the average length of words and sentences in documents.

  19. Match the following Project Plan Supplements to their descriptions

    1. Configuration management plan

      Describes the configuration management procedures and structures to be used.

    2. Deployment plan

      Describes how the software and associated hardware (if required) will be deployed in the customer’s environment. This should include a plan for migrating data from existing systems.

    3. Maintenance plan

      Predicts the maintenance requirements, costs, and effort.

    4. Quality plan

      Describes the quality procedures and standards that will be used in a project.

    5. Validation plan

      Describes the approach, resources, and schedule used for system validation.

  20. Match the following process activities with their definitions

    1. Requirements discovery and understanding

      This is the process of interacting with stakeholders of the system to discover their requirements. Domain requirements from stakeholders and documentation are also discovered during this activity

    2. Requirements classification and organization

      This activity takes the unstructured collection of requirements, groups related requirements and organizes them into coherent clusters

    3. Requirements prioritization and negotiation

      This activity is concerned with prioritizing requirements and finding and resolving requirements conflicts through negotiation

    4. Requirements documentation

      Requirements are documented and input into the next round of the spiral. An early draft of the software requirements documents may be produced at this stage, or the requirements may simply be main- tained informally on whiteboards, wikis, or other shared spaces.

  21. Non-functional requirements are constraints on the services or functions offered by the system.

  22. Open Source Development means that the code that makes up the software is not avaliable for everyone to see.

  23. Pipe and filter systems are best suited to batch processing systems and embedded systems where there is a lot of user interaction

  24. Program testing shows that a program works as intended and is used to discover defects before it is put into use

  25. SaaS stands for Software as a System

  26. Software design and implementation is the stage in the software engineering process at which an executable software system is developed

  27. Software engineering is an engineering discipline that is concerned with all aspects of software production from initial conception to operation and maintenance

  28. Software has to be developed across a very wide range of scales, from very small embedded systems in portable or wearable devices through to Internet-scale, cloud-based systems that serve a global community.

  29. Software should not make wasteful use of system resources such as memory and processor cycles. Efficiency therefore includes responsiveness, processing time, resource utilization, etc

  30. Software standards are important for quality assurance as they represent an identification of best practice

  31. Structural models may be either static or dynamic

  32. Structural models show the organization and architecture of a system. Class diagrams are used to define the static structure of classes in a system and their association.

  33. System modeling is the process of developing abstract models of a system, with each model presenting a different view or perspective of that system.

  34. System-building tools and version control tools must not be part of the System Building process

  35. Test automation is unwanted for test-first development

  36. Testing can only show the presence of errors in a program. It cannot demonstrate that there are no remaining faults

  37. The Linux Operating system is open source.

  38. The choice of architectural style and structure should depend on the non-functional requirements of the system

  39. The functional requirements for a system are constraints on the services or functions offered by the system.

  40. The fundamental ideas of software engineering are applicable to all types of software systems.

  41. The price of a software system developed for a customer only takes into account the cost of the development itself

  42. The three main parameters when computing the costs of a software development project are

    1. Effort Costs
    2. Hardware and Software Costs
    3. Traveling and Training Costs
  43. The use of open-source software available on platforms such as Sourceforge and GitHub has made software analysis more difficult, and less possible overall.

  44. There are no universal notations, methods, or techniques for software engineering because different types of software require different approaches

  45. Unit testing is the process of testing all software components at once

  46. Unit testing should be automated whenever possible

  47. Version control (VC) systems identify, store, and control access to the different versions of components.

  48. What are areas of standard acceptable behaviour for software developers

    • Confidentiality
    • Competence
    • Intellectual property rights
    • Open source
  49. What are the two fundamental types of software product

    • Generic software
    • Expensive Software
    • Customized Software
    • Complex Software
  50. What are the two types of modern version control system

    • Centralized
    • Distributed
    • Packed
    • Git
  51. What does V&V standfor when it comes to Software Validation

    • Verification and Validation
    • Validate and Vacate
    • Validate and Verify
    • Visualize and Vacate
  52. What is the final state of process prototyping?

    • Developing
    • Defining Functionality
    • Establishing Objectives
    • Evaluating
  53. Which of the following options are NOT part of model-driven architecture

    • A computation independent model (CIM)
    • A platform-independent model (PIM)
    • Platform-specific models (PSM)
    • Platform-Engineering models (PEM)
  54. Which of these are general process models for software engineering

    • Waterfall Model
    • Incremental Development
    • Integration and configuration
    • Test in Prod Model
  55. Which one of these is NOT one of the four basic process activities

    • Specification
    • Development
    • Validation
    • Waterfalling