Project Management Principles Quiz
25 Questions
4 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Which of the following is an OO design principle?

  • SRK
  • YDR
  • No answer is correct
  • All answers are correct
  • COP
  • CMYK
  • LSP (correct)

Which is a reason for IT-project failure?

  • small development teams
  • poor requirements management (correct)
  • use of agile methods
  • slow changing technology

What happens according to the triple constraint if you reduce cost (budget)?

  • increase time and/or reduce scope
  • reduce time and/or cost
  • increase time and/or cost
  • increase cost and/or reduce scope
  • reduce time and/or increase scope (correct)

A project is...

<p>a temporary endeavor (C)</p> Signup and view all the answers

Use cases are...

<p>used for requirements analysis (E)</p> Signup and view all the answers

Which are the typical phases of a project management life cycle?

<p>Initiating, planning, executing, testing, closing (D)</p> Signup and view all the answers

The difference between a Milestone and a Tollgate is that

<p>a Tollgate has external dependencies, not so a Milestone (A)</p> Signup and view all the answers

The core of 'agile' is...

<p>the assumption that whatever the requirements are, the project will adapt to it (C)</p> Signup and view all the answers

What is good design?

<p>flexible (A)</p> Signup and view all the answers

A domain model does not contain...

<p>methods (D)</p> Signup and view all the answers

What is the difference between Analysis and Design?

<p>Analysis is about the what, Design about the how (A)</p> Signup and view all the answers

In the context of software development, which two types of requirements did we define?

<p>functional and non-functional (D)</p> Signup and view all the answers

Interaction diagrams are...

<p>Sequence or Communication diagrams (C)</p> Signup and view all the answers

Java is...

<p>a compiled language (E)</p> Signup and view all the answers

Why should a class have only one reason to change?

<p>It minimizes the number of places affected by change (C)</p> Signup and view all the answers

Delegation, Composition and Aggregation are...

<p>a way to reuse another class's behaviour (B)</p> Signup and view all the answers

Which of the following is no GRASPattern?

<p>High Coupling (C)</p> Signup and view all the answers

Which of the following GRASPatterns are the two evaluative ones?

<p>Low Coupling, High Cohesion (D)</p> Signup and view all the answers

When may you turn to Pure Fabrication?

<p>When Direct Fabrication does not work (B)</p> Signup and view all the answers

Which of the following is no GoF pattern we dealt with?

<p>Furniture (C)</p> Signup and view all the answers

What does the pattern Information Expert state?

<p>assign the responsibility to the class who has the necessary information to fulfill the responsibility (C)</p> Signup and view all the answers

In the Observer pattern...

<p>a listener subscribes to a publisher (E)</p> Signup and view all the answers

We consider responsibilities in the following two categories

<p>knowing and owning (D)</p> Signup and view all the answers

Architectural Factors are...

<p>architecturally significant requirements (C)</p> Signup and view all the answers

What is great Software?

<p>Maintainable, reusable, extendable, easy to change (D)</p> Signup and view all the answers

Flashcards

Liskov Substitution Principle (LSP)

A design principle that emphasizes the importance of creating classes that are loosely coupled and highly cohesive.

Poor requirements management

Poor requirements management refers to the lack of a clear understanding of what the project aims to achieve, leading to ambiguity, inconsistency, and ultimately, project failure.

Triple Constraint

The triple constraint states: reducing the project budget (cost) will necessitate either reducing the project timeline (time) or the project scope (features), or a combination of both.

Project

A project is a temporary endeavor undertaken to create a unique product, service, or result.

Signup and view all the flashcards

Use cases

Use cases are descriptions of how users interact with a system to achieve specific goals.

Signup and view all the flashcards

Project management life cycle

The phases of a project management life cycle typically include initiation, planning, execution, monitoring and controlling, and closing.

Signup and view all the flashcards

Milestone vs Tollgate

A milestone represents a significant achievement in a project, often marking the completion of a major phase, while a tollgate is a checkpoint used to assess whether a project has met specific criteria and should be allowed to proceed to the next phase.

Signup and view all the flashcards

Agile development

Agile development emphasizes iterative and incremental development, with a focus on customer collaboration and responding to change. It prioritizes working software and continuous feedback loops.

Signup and view all the flashcards

Agile core assumption

The core of 'agile' is the assumption that requirements will change over time and that the development process should be flexible enough to accommodate those changes.

Signup and view all the flashcards

Good design

Good design is flexible, maintainable, and adaptable to future changes.

Signup and view all the flashcards

Domain model

A domain model is a conceptual representation of the data and relationships within a specific problem domain. It does not include methods.

Signup and view all the flashcards

Analysis vs Design

Analysis focuses on understanding the 'what' of a system, while design focuses on the 'how' to implement it.

Signup and view all the flashcards

Software requirements

The two main types of software requirements are functional and non-functional. Functional requirements define the features and functionalities of the system, while non-functional requirements specify the quality attributes, constraints, and performance aspects.

Signup and view all the flashcards

Interaction diagrams

Interaction diagrams, such as sequence diagrams and communication diagrams, show how objects in a system interact with each other over time.

Signup and view all the flashcards

Java

Java is a compiled language that is then executed on a Java Virtual Machine (JVM), providing platform independence.

Signup and view all the flashcards

Single Responsibility Principle (SRP)

A class should have only one reason to change, meaning that a single modification should not affect multiple functionalities of the class, making the code more manageable and less prone to errors.

Signup and view all the flashcards

Delegation, Composition, Aggregation

Delegation, composition, and aggregation are alternatives to inheritance that allow for code reuse without tight coupling.

Signup and view all the flashcards

High Coupling (GRASP)

GRASP patterns are a set of design principles that help developers make design decisions based on key responsibilities and interactions between objects in a system. The GRASP pattern High Coupling refers to the tight interdependence of classes. It suggests that classes should be loosely coupled to improve maintainability and reusability.

Signup and view all the flashcards

Low Coupling, High Cohesion (GRASP)

The two evaluative GRASP patterns are Low Coupling and High Cohesion. Low Coupling refers to the loose interdependence of classes, promoting maintainability and reusability. High Cohesion suggests that classes should have a single, well-defined purpose, improving modularity and reducing complexity.

Signup and view all the flashcards

Pure Fabrication (GRASP)

When other GRASP patterns don't provide a suitable solution, consider Pure Fabrication, which involves creating an artificial class to fulfill a specific responsibility without being directly tied to the domain model.

Signup and view all the flashcards

Composite (GoF)

A Composite pattern describes a way to compose objects into tree structures to represent part-whole hierarchies.

Signup and view all the flashcards

Information Expert (GRASP)

The Information Expert GRASP principle states that a responsibility should be assigned to the class that has the most information about its fulfillment.

Signup and view all the flashcards

Observer pattern

In the Observer pattern, a publisher (subject) notifies its subscribers (observers) when its state changes. Subscribers register their interest with the publisher, and receive updates as needed.

Signup and view all the flashcards

Responsibilities categorization

We categorize responsibilities into two categories: doing, which refers to actions or behavior that a class performs, and knowing, which represents the information or data that a class possesses.

Signup and view all the flashcards

Architectural factors

Architectural factors refer to the high-level requirements and considerations that influence the design of a software system's architecture.

Signup and view all the flashcards

Great software

Great software is maintainable, reusable, extendable, easy to change, reliable, secure, and user-friendly.

Signup and view all the flashcards

Evolutionary Prototyping

The Evolutionary Prototyping model might be more suitable in this scenario as it allows for rapid development of prototypes to gather user feedback and refine requirements iteratively.

Signup and view all the flashcards

GRASP patterns in software architecture

GRASP patterns are also applicable on a larger scale in software architecture. Some patterns encountered on the architectural level include layered architecture, client-server architecture, and microservices architecture.

Signup and view all the flashcards

Design Model vs Domain Model

A Design Model is a more detailed representation of the system, focusing on the software implementation aspects, while a Domain Model captures the real-world concepts and relationships within the problem domain, providing a more conceptual view.

Signup and view all the flashcards

Reasons for requirements change

Requirements change over the course of an IT project due to several factors: evolving user needs, changing business priorities, emerging technologies, and unforeseen circumstances.

Signup and view all the flashcards

Invalid input handling in MVC

The Controller is a suitable choice for handling invalid input in an MVC design. It can validate the input from the View, provide feedback to the user, and handle the necessary actions based on the validation result.

Signup and view all the flashcards

Study Notes

Object-Oriented Design Principles

  • Question 1: One of the following is an OO design principle: SRK (no further details provided)

IT-Project Failure Reasons

  • Question 2: Poor requirements management is a reason for IT-project failure

Triple Constraint and Cost Reduction

  • Question 3: Reducing cost in the triple constraint (cost, time, scope) will usually result in reduced time and increased scope.

Project Definition

  • Question 4: A project is a temporary endeavor with a specific goal.

Use Cases

  • Question 5: Use cases are created during the implementation phase, used for requirements analysis, and used for testing.

Project Management Life Cycle

  • Question 6: The typical phases of a project management life cycle are initiating, planning, implementing, testing, and closing.

Milestone vs. Tollgate

  • Question 7: The difference between a milestone and a tollgate is that a milestone is defined by the project manager, while a tollgate has external dependencies that are not controlled by the project manager.

Agile Core

  • Question 8: The core of agile is the assumption that requirements might change over time and the project will adapt accordingly.

Good Design

  • Question 9: Good design is considered flexible.

Domain Model

  • Question 10: A domain model does not contain methods.

Analysis vs. Design

  • Question 11: Analysis is about understanding the problem (what), while design is about solving the problem (how).

Software Requirements

  • Question 12: Two types of requirements are functional and non-functional requirements.

Interaction Diagrams

  • Question 13: Interaction diagrams include sequence diagrams.

Java Language Type

  • Question 14: Java is a compiled language.

Single Reason to Change

  • Question 15: A class should only have one reason to change to minimize the number of places affected by a change.

Delegation, Composition, and Aggregation

  • Question 16: Delegation, composition, and aggregation are ways to reuse a class's behaviour or delegate another class's behavior. This is an alternative to inheritance.

GRASP Patterns

  • Question 17: High cohesion is a GRASP pattern.
  • Question 18: Two evaluative GRASP patterns are low coupling and high cohesion.

Pure Fabrication

  • Question 19: Pure Fabrication is used when Polymorphism doesn't suggest a reasonable solution, or if Indirection isn't possible.

GoF Design Patterns

  • Question 20: Furniture is not a GoF pattern.

Information Expert

  • Question 21: The Information Expert pattern assigns responsibility to the class with the most relevant information.

Observer Pattern

  • Question 22: In the Observer Pattern, a listener subscribes to a publisher.

Responsibilities

  • Question 23: Responsibilities are categorized as knowing and owning, and doing and having.

Architectural Factors

  • Question 24: Architectural factors include architecturally significant requirements.

Great Software

  • Question 25: Great software is maintainable, reusable, extendable, easy to learn, easy to use.

Software Development Methodologies

  • Question 26: The text suggests Evolutionary Prototyping and Spiral Model as possible methodologies though other options may equally be correct or suitable, this depends on further context provided. Answers should provide a justification or a comparison.

GRASP Patterns and Architectural Levels

  • Question 27: Some GRASP patterns apply at the software architecture level. Further patterns include, but are not limited to those already identified.

Design Model vs. Domain Model

  • Question 28: Explain the difference between Design Model and Domain Model. Answers should include details.

Requirements Change Reasons

  • Question 29: Reasons for requirements change can include: client changes, new technologies, changing market and business needs, improved understanding, or unforeseen challenges. More details should be given than the brief provided response.

MVC Design and Responsibility

  • Question 30: The text suggests that in an MVC pattern, a controller should be responsible for handling invalid input due to it's mediating and interfacing nature. However, other choices are also possible and pros and cons of each should be provided. Further the text alludes to a potential 4th option in this scenario that may or may not include other details.

Studying That Suits You

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

Quiz Team

Related Documents

Description

Test your knowledge on key principles of project management, including object-oriented design principles, IT project failure reasons, and the project management life cycle. This quiz covers important concepts and definitions that are crucial for successful project execution and management.

More Like This

Systems Development Life Cycle Quiz
8 questions
Systems Development Life Cycle Quiz
45 questions
Use Quizgecko on...
Browser
Browser