Software Documentation and Architecture Class 5
29 Questions
1 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

What is the purpose of HTTP status codes in an API response?

  • To indicate different outcomes of a request (correct)
  • To provide authentication requirements for requests
  • To specify the format of the response body
  • To define required parameters in the request
  • Which method is used for updating resources in an API?

  • POST
  • GET
  • PUT (correct)
  • DELETE
  • What are path parameters in an API request?

  • Parameters required in the endpoint's URL (correct)
  • Parameters defined in the request body
  • Optional parameters that can alter the request
  • Parameters sent via headers
  • What does the request body in an API contract specify?

    <p>The exact structure of the request payload for methods like POST or PUT</p> Signup and view all the answers

    Which of the following is NOT typically specified in an API contract?

    <p>The programming language used for the API</p> Signup and view all the answers

    What is the primary purpose of the C4 Model?

    <p>To visualize software system architecture.</p> Signup and view all the answers

    Which of the following levels in the C4 Model provides a close-up of the actual code structure?

    <p>Code</p> Signup and view all the answers

    In which architecture are all components tightly integrated into a single unit?

    <p>Monolithic Architecture</p> Signup and view all the answers

    What does the Container level in the C4 Model focus on?

    <p>Major applications, services, and databases.</p> Signup and view all the answers

    Which architectural paradigm separates an application into Model, View, and Controller components?

    <p>Model-View-Controller (MVC)</p> Signup and view all the answers

    What type of diagrams are typically used in the Code level of the C4 Model?

    <p>UML or similar diagrams</p> Signup and view all the answers

    The C4 Model was created by which individual?

    <p>Simon Brown</p> Signup and view all the answers

    Which documentation is aligned with the business team in the provided framework?

    <p>Sequence diagrams</p> Signup and view all the answers

    What is the primary characteristic of Event-Driven Architecture?

    <p>It depends on events to trigger actions.</p> Signup and view all the answers

    What distinguishes Service-Oriented Architecture (SOA) from Microservices Architecture?

    <p>SOA structures applications as independent services.</p> Signup and view all the answers

    What is a key element of Microservices Architecture?

    <p>Each service runs in its own process and uses databases.</p> Signup and view all the answers

    What does UML primarily serve to represent?

    <p>Structure and behavior of software systems.</p> Signup and view all the answers

    What is shown in a Sequence Diagram?

    <p>The sequential order of interactions between objects.</p> Signup and view all the answers

    What does a Class Diagram primarily illustrate?

    <p>Inheritance and relationships between classes.</p> Signup and view all the answers

    What is the relationship indicated by the term 'inheritance' in UML?

    <p>A derived class extends the functionality of a base class.</p> Signup and view all the answers

    Which of the following is NOT a component of the UML documentation process?

    <p>User Experience Testing</p> Signup and view all the answers

    What best describes the relationship between a student and an instructor in terms of associations?

    <p>A student can associate with multiple instructors.</p> Signup and view all the answers

    Which term defines the relationship where one part cannot exist without the other?

    <p>Composition</p> Signup and view all the answers

    What is a primary purpose of an API contract?

    <p>To prevent ambiguity and ease integration between systems.</p> Signup and view all the answers

    Which of the following accurately describes aggregation?

    <p>Each part can function independently while still being part of a whole.</p> Signup and view all the answers

    Which HTTP method is typically used to update data on an API endpoint?

    <p>PUT</p> Signup and view all the answers

    In an API contract, what does the term 'Endpoint Definitions' refer to?

    <p>Details of resources accessed via specific URL paths.</p> Signup and view all the answers

    Which aspect of an API contract ensures that only authorized users can access its services?

    <p>Authentication protocols</p> Signup and view all the answers

    Which of the following correctly distinguishes between aggregation and composition?

    <p>Aggregation involves a loose relationship, whereas composition is more strict.</p> Signup and view all the answers

    Study Notes

    Class 5 Recap

    • The class focused on software documentation and various architectural styles.
    • Documentation is handled by both the business and technical teams.

    Documentation Breakdown

    • Business Team: Handles user stories and SRS documents (functional and non-functional).
    • Technical Team: Responsible for HLD, LLD, UML diagrams, API documentation, sequence diagrams, class diagrams, and design patterns.
    • Famous Architects: Included as a part of the technical team's documentation responsibilities.
    • API Documentation: This type of documentation is a specific output categorized within the technical team.

    High-Level Design (HLD) & Low-Level Design (LLD)

    • HLD focuses on the overall structure, components, and relationships of a system.
    • HLD is created by architects.
    • LLD provides implementation details.
    • LLD is created by engineers.

    C4 Model

    • The C4 Model is a framework for visualizing software architecture.
    • It breaks down architecture into four hierarchical levels: context, containers, components, and code.
    • Context (level 1): Shows the system and its interactions with external entities.
    • Container (level 2): Focuses on major applications, services, and databases.
    • Component (level 3): Shows the components within each container.
    • Code (level 4): Detailed code structure for a component (commonly with UML diagrams).

    Software System Components

    • Software systems are composed of one or more containers (e.g., applications, data stores).
    • Each container contains one or more components.
    • Components are implemented with code elements (classes, interfaces, functions, etc.).

    Internet Banking System Context

    • The diagram shows the interaction between the personal banking customer, internet banking system, and mainframe banking system.
    • The internet banking system facilitates customer interaction with accounts and payments.
    • The mainframe banking system handles core banking information.

    Container, Component, & Code Diagrams

    • Various diagrams are used to illustrate the relationships between containers, components, and code.
    • The diagram for the Internet Banking System demonstrates the relationships between all these entities—including the specific applications and technologies involved (e.g., Java, Spring MVC, JavaScript, Angular, Xamarin).

    Monothlithic Architecture

    • Involves a single, cohesive unit combining user interface, business logic, and data access layers.
    • All components are tightly integrated and bundled for deployment.

    Model-View-Controller (MVC)

    • MVC is an architectural pattern that separates an application into three interconnected components: model, view, and controller.
    • The model handles data, the view displays data, and the controller manages user interactions.

    Event-Driven Architecture

    • Event-driven architecture uses events to communicate between different components asynchronously.
    • Components listen for and respond to these events.
    • Example given: Netflix recommendations.

    Service-Oriented Architecture (SOA)

    • Structures an application as a set of loosely coupled, independent services, communicating with each other using standardized protocols.
    • Services typically reside in different processes.

    Microservice Architecture

    • A modern approach that decomposes an application into small, independent services.
    • Each service runs its process independently, communicating with others via APIs.

    UML Diagrams

    • UML is a language for describing, specifying, designing, and documenting software system artifacts.

    Use Case Diagram

    • Visualizes the actors (users) involved and the use cases (actions) those actors perform. The diagram shows examples of actors (like 'Tour Guide', 'Passenger', 'Minor Passenger').

    Sequence Diagrams

    • Show interactions between objects sequentially to show the order of those interactions

    Class Diagrams and Relationships

    • Diagrams detailing class attributes and private/public/protected/methods.
    • Types of relationships—Includes, Extend, dependency, aggregation, composition, association, inheritance are represented.

    How to Connect Frontend and Backend Applications

    • Shows the typical connection structure including the client, web server, application server, and database.

    API (Application Programming Interface)

    • API is a set of rules for software systems communication.
    • An API contract defines how systems interact through APIs and makes integration smoother.
    • API contract details include endpoints, HTTP methods, request structure, response structure, error codes, and authentication protocols.

    Class 5 Summary

    • The class introduced various software architectural styles, the C4 model, and the implementation details in specific use cases, including the Internet Banking System.
    • Different types of diagrams and how to implement APIs, were discussed.

    Studying That Suits You

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

    Quiz Team

    Related Documents

    Description

    This quiz covers key concepts from Class 5 related to software documentation and various architectural styles. It focuses on the roles of business and technical teams in creating different types of documentation, including user stories, HLD, and LLD. Additionally, it introduces the C4 Model for visualizing software architecture.

    More Like This

    Use Quizgecko on...
    Browser
    Browser