UML Activity Diagrams Quiz
51 Questions
0 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 symbol represents a composition relationship in a model?

  • ———
  • —Δ
  • ———Δ
  • —♦ (correct)
  • In an activity diagram, what does the Final Node represent?

  • A decision being made
  • Where activity is completed (correct)
  • The start of the program
  • Concurrently running actions
  • What does the Fork notation indicate in an activity diagram?

  • The start of the program
  • A decision is being made
  • Multiple flows are rejoined
  • All branches are taken concurrently (correct)
  • Which relationship connects a specialized element with a generalized element?

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

    What is the purpose of an Action Node in an activity diagram?

    <p>To indicate specific actions taken</p> Signup and view all the answers

    What primarily determines if a class is part of the solution space?

    <p>If the class noun is required to implement a solution</p> Signup and view all the answers

    Which of the following is NOT an example of a potential analysis class?

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

    What should be considered when selecting analysis classes?

    <p>The number of attributes assigned</p> Signup and view all the answers

    Which category does NOT classify operations defining the behavior of objects?

    <p>Operations that control user interface</p> Signup and view all the answers

    In a CRC model, where is the class name found?

    <p>Top section of the index card</p> Signup and view all the answers

    What aspect of CRC model is primarily used to identify classes relevant to system requirements?

    <p>Responsibilities list</p> Signup and view all the answers

    What is the purpose of the CRC model review process?

    <p>To evaluate the relevance of each class</p> Signup and view all the answers

    What needs to be executed to define the operations of a class?

    <p>Manipulating its attributes and associations</p> Signup and view all the answers

    What does a node represent within the system architecture?

    <p>A cohesive collection of input and output elements.</p> Signup and view all the answers

    What is the primary purpose of architectural reviews?

    <p>To evaluate the ability of the software architecture to meet quality requirements.</p> Signup and view all the answers

    How are components selected as the software architecture is refined?

    <p>By starting with analysis classes from the requirements model.</p> Signup and view all the answers

    What does the term 'detector' refer to in the context of system architecture?

    <p>An abstraction encompassing all sensing equipment.</p> Signup and view all the answers

    What potential benefits do architectural reviews provide?

    <p>They can reduce project costs by detecting design problems early.</p> Signup and view all the answers

    What is the primary focus of verification in software testing?

    <p>Checking if the software correctly implements specific functions</p> Signup and view all the answers

    Which testing phase involves assessing the combined performance of individual software modules?

    <p>Integration Testing</p> Signup and view all the answers

    What should be explicitly stated for a successful testing strategy?

    <p>Testing objectives</p> Signup and view all the answers

    Who is typically responsible for testing individual program components?

    <p>Software Developers</p> Signup and view all the answers

    Which of the following is NOT a category contributing to software quality?

    <p>Technical Documentation</p> Signup and view all the answers

    What component should be included in a test case document?

    <p>Pointer to requirement being tested</p> Signup and view all the answers

    What does validation testing primarily ensure?

    <p>The software aligns with customer requirements</p> Signup and view all the answers

    Which practice should be emphasized for a successful testing process?

    <p>Rapid cycle testing</p> Signup and view all the answers

    What is the main purpose of technical reviews in the testing strategy?

    <p>To filter test strategies and cases before testing</p> Signup and view all the answers

    What is a key aspect of a testing strategy in software development?

    <p>Starting testing at the component level</p> Signup and view all the answers

    What is the purpose of using a cognitive walkthrough in the validation of scenarios?

    <p>To validate scenarios by reviewing or demonstrating the interface</p> Signup and view all the answers

    Which aspect of the user interface design is evaluated by considering the number of user tasks and actions per task?

    <p>System efficiency</p> Signup and view all the answers

    What principle ensures that a component can be extended without modifying internal details?

    <p>Open-Closed Principle</p> Signup and view all the answers

    What is a key characteristic of a software component?

    <p>It hides implementation details behind an interface.</p> Signup and view all the answers

    Which evaluation criterion indicates how complex an interface is and how well it may be received by users?

    <p>Interface style and error-handling protocol</p> Signup and view all the answers

    In component design, what do classes from the analysis model become during elaboration?

    <p>Design components</p> Signup and view all the answers

    Which of the following does the Dependency Inversion Principle emphasize?

    <p>Depend on abstractions, not concrete classes</p> Signup and view all the answers

    What needs to be created to support the design classes during component elaboration?

    <p>Infrastructure classes</p> Signup and view all the answers

    Which aspect is not related to the complexity of a user interface?

    <p>Deployment strategies</p> Signup and view all the answers

    What does depicting each interface state as it will actually look to the end-user enable?

    <p>Understanding of user interaction with the interface</p> Signup and view all the answers

    What is the primary measure of progress in Agile processes?

    <p>Working software</p> Signup and view all the answers

    Which framework activity in Scrum is focused on refining the product backlog?

    <p>Backlog Refinement Meeting</p> Signup and view all the answers

    What is a significant drawback of using the Extreme Programming (XP) framework?

    <p>Requires frequent meetings about increasing costs</p> Signup and view all the answers

    Which of the following is NOT a characteristic of good user stories as defined by the INVEST criteria?

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

    In Kanban, what does the 'In Progress' column represent?

    <p>Tasks currently assigned and being worked on</p> Signup and view all the answers

    Which role in the Scrum framework is responsible for maximizing the value of the product?

    <p>Product Owner</p> Signup and view all the answers

    What is the purpose of the Sprint Retrospective in Scrum?

    <p>To reflect on team performance and identify improvements</p> Signup and view all the answers

    What type of requirement specifies how a system should perform rather than what it should do?

    <p>Non-Functional Requirement</p> Signup and view all the answers

    Which method is used in Extreme Programming to ensure quality during coding?

    <p>Test-Driven Development</p> Signup and view all the answers

    What is the goal of Requirements Engineering?

    <p>To develop a complete requirements specification</p> Signup and view all the answers

    What type of board is used in the Kanban framework to visualize tasks?

    <p>Kanban Board</p> Signup and view all the answers

    What is the primary function of the Scrum Master in a Scrum team?

    <p>To facilitate communication and clear obstacles</p> Signup and view all the answers

    Which principle is NOT associated with Agile methodologies?

    <p>Extensive documentation procedures</p> Signup and view all the answers

    Study Notes

    Software Engineering

    • Doing software right involves a systematic approach.
    • Development should be within a specified budget and time.
    • Software instructions, when executed, provide desired features, functions, and performance.
    • Data structures enable programs to manipulate info.
    • Documentation describes operation and use of programs.
    • Software is developed/engineered.
    • Types of software:
      • System software: collection of programs that service other programs.
      • Application software: stand-alone programs solving business problems.
      • Engineering/scientific: a broad range of numerical/data science programs.
      • Embedded software: resides within a product/system, controlling features and functions.
      • Product-line software: composed of reusable components, offering specific capabilities to various customers.
      • Web/mobile software: delivered through web browsers or mobile devices.
      • Artificial Intelligence: utilizes heuristics for complex computations.

    How to Make Good Software

    • Software Engineering Layers:
      • Quality Focus: commitment to continuous improvement. Focus on quality.
      • Process: framework for effective and timely delivery. Enables control of software projects.
      • Methods: technical how-tos for building software.
      • Tools: technical how-tos for building software.

    Process Framework

    • Establishes a foundation for effective processes
    • Umbrella activities complement framework activities:
      • Definitions: Process = activities, actions, tasks, etc.
      • Activity = broad objective
      • Action = set of tasks
      • Tasks = small, well-defined objectives
    • Five key activities:
      • Communication: customer needs and wants
      • Planning: technical tasks, risks, resources, work schedule
      • Modeling: Software requirements and design
      • Construction: code generation and testing
      • Deployment: software delivery to customer with feedback (not necessarily sequential).

    Umbrella Activities

    • Applied throughout software projects:
      • Software project tracking
      • Risk management
      • Software quality assurance
      • Technical reviews
      • Measurement
      • Software configuration management
      • Reusability management

    Defining Framework Activities

    • Identifying tasks
    • Must accommodate project needs and team characteristics
    • Defined by lists of tasks to be accomplished
    • List of work products to be produced

    Process Models

    • Waterfall: systematic, sequential approach to development.
    • V-Model: variation of waterfall, emphasizing relationship between quality assurance and construction.
    • Prototyping: iterative approach, starting with quick models/designs.
    • Evolutionary approach: combines waterfall and prototyping.

    Unified Process

    • 'Use-case driven, architecture-centric' iterative process.
    • Closely aligned with UML.
    • Consists of phases mapping to framework activities (Inception, Elaboration, Construction, Transition).
    • Phases are iterative in nature, not strict.

    Overall

    • Many prescriptive models exist but are appropriate for well-understood projects.

    Unified Modeling Language (UML)

    • Unified Modeling Language:
      • Unified—brings together techniques and notations.
      • Modeling—software system's design at high levels of abstraction.
      • Language—provides means of logical communication.
    • Goals:
      • Enable modeling
      • Visually depict design solutions
      • Extend core concepts
      • Support higher-level development
    • Diagram types:
      • Behavioral: runtime, interactions, and processes within system (dynamic)
      • Structural: components, relationships, and organization (static)
    • UML diagrams
      • Sketch diagrams: sharing ideas
      • Blueprint diagrams: detailed descriptions
      • Programming language-generation: UML generating code based on diagrams
      • Forward engineering: Creating code (implementation) from UML models
      • Reverse engineering: Creating UML models from existing code
      • Class Diagrams (definition/relationship)
        • Object types in system/relationships between classes
      • Activity Diagrams (flow of interactions)
        • System's response to events
      • Use Case Diagrams (capturing requirements)
        • Description of system interactions from user's perspective.

    Agile and Process

    • Agile is effective in responding to changes in the real world.
    • Agile methods reduce the cost of change, adding human elements to non-agile methods.
    • Emphasizes customer involvement, effective communication, and rapid delivery.

    Agile Process

    • Adaptable, iterative development through customer feedback.
    • Delivering multiple incremental prototypes in short periods.
    • Prototypes act as catalysts for feedback.

    Agile Teams

    • Work best for smaller teams.
    • Emphasis on competence, common focus, collaboration, and decision-making skills and abilities (fuzzy problem-solving, mutual trust and respect).
    • Emphasis on self-organization and discipline.

    Cost of Agile

    • Can seem chaotic and uncontrolled, but can evolve to lack of process if not properly managed.
    • Important leadership attributes, team collaboration skills, and discipline is required.

    Scrum

    • Framework for activities: requirements, analysis, design, evolution, delivery • Work in short bursts ("sprints") • Small teams with roles: • Product Owner: stakeholder, maximizing product value • Scrum Master: facilitator, manages product backlog • Development Team: 3-6 people; develops increments. • Scrum Artifacts: • Product Backlog: prioritized requirements • Sprint Backlog: list of items to be completed during a sprint • Increment: the completed work of a sprint • Scrum Meetings: • Backlog refinement • Sprint Planning • Daily Scrum • Sprint Review • Sprint Retrospective

    Extreme Programming (XP)

    • Framework activities: planning, design, coding, testing
    • Emphasize frequent user involvement and communication.
    • Frequent releases/deliveries.
    • Use of CRC cards ("class responsibility collaborator").
    • Test-driven development (TDD).
    • Practice of pair programming (2 programmers together at a workstation).
    • Use of simple design and design documentation.

    Kanban

    • Lean methodology for improvement in any process/workflow.
    • Visualization of work in progress.
    • Limiting work in progress (WIP).
    • Focus on change management and service delivery.
    • Tracking progress on Kanban boards.

    DevOps

    • Agile and Lean principles across entire software supply chain.
    • Incorporates several stages.

    Requirements Engineering

    • Gathering and documenting user/stakeholder needs and desires related to software.
    • Each requirement should be short, concise, inform about software system, agreed upon by stakeholders, and help resolve customer problems.
    • Components of a functional requirement:
      • Defines software behavior and function.
      • Describe calculations, technical details, data manipulation, and processing.
    • Non-functional requirement characteristics, used to assess software operations.
      • Define system limitations.
    • Techniques/Activities include:
      • Inception (basic understanding of problem)
      • Elicitation (identifying needs/requirements)
      • Elaboration (development of requirements model)
      • Negotiations (scope and requirements agreement)
      • Specification (documenting requirements for different stakeholders)
      • Validation (checks based on guidelines to ensure there are no inconsistencies)
    • Collaboration: a approach to requirements gathering using tools/guidelines.

    Requirements Modeling

    • Specifying software's characteristics and establishing constraints.
    • Scenario-based models: depicting requirements from user's perspective.
    • Class diagrams: illustrating relationships between objects in a system.
    • Behavioral models: depicting software reactions to internal/external events.
    • Data models: representing the data domain.
    • Flow-oriented models: demonstrating how data transforms within the system.

    Class-Based Modeling

    • Representing objects, operations, and relationships within system.
    • Identifying/analyzing classes, describing processing flows.
    • Identifying analysis classes (objects, behaviors) for future modeling details.
    • Refining analysis classes into components.
    • Class diagrams/models are utilized for consistency and clarity in diagrams.

    CRC Modeling

    • Class-Responsibility-Collaborator (CRC) Method: A simple and practical method to identify, organize, and design software classes.
    • CRC model is collection of index cards that represent classes, divided into three sections: • Class Name (Top): Name of the class. • Responsibilities list (Left): Operations performed by the class, outlining their specific actions. • Collaborators (Right): Other classes that the given class interacts with.
    • CRC model review process facilitates collaboration for understanding class responsibilities.

    Behavioral Modeling

    • Indicates how software will respond to internal/external events.
    • UML activity diagrams model system element responses to internal events.
    • UML state diagrams describe system element responses to external events.

    State Diagrams

    • Depicts behavior of software as function of time.
    • Represents states, transitions, guards (conditions), actions.

    Sequence Diagrams

    • Model interactions between objects, representing messages exchanging between them.
    • Includes actors, objects, lifelines (object existence over time), messages with direction, message visibility, and time.

    Software design concepts and modeling

    • Emphasizes firmness, commodity, and delight to exhibit good quality
    • Design principles and concepts guide software designers.
    • Design practices for various representation of software.
    • Importance of design: improves maintainability and reusability.

    Technical Debt

    • Costs associated with rework due to quick solutions/choices rather than the best approach that takes more time.

    Design Concepts

    • Abstraction: general rules, concepts, and examples from usage and classification.
    • Procedural abstraction: sequence of instructions
    • Data abstraction: collection of data
    • Separation of concerns: subdividing complex problems for independent solutions.
    • Modular design: dividing systems into separate named components/modules that are integrated.
    • Modularity helps to reduce cost in development and maintenance of the program.

    Software Quality

    • Represents how close the software is to customer requirements/specifications.
    • It's important to note that achieving software quality is an ongoing process, with issues sometimes only being apparent after release.
    • The "good enough" concept (in software) prioritizes product delivery in some scenarios over flawlessness, so a cost/benefit analysis is often made.
    • Quality involves:
      • Design: planning/requirements; conformity: ensuring the product meets specifications; satisfaction: how end-users use the system
    • Approaches to assessing quality:
      • Qualitative: use of measures to observe quality traits and effects.
      • Quantitative: quantitative measurements.
    • Quality factors are important for identifying and implementing necessary quality measures.
    • High-quality software products often incorporate software quality factors when considering design factors.

    Software Reliability (Reliability Engineering)

    • The probability of a software system functioning correctly without failure under specified conditions for a given time frame.
    • Key characteristics: consistency, fault tolerance, and failure rate.

    Software Safety

    • Assessing potential hazards leading to system failure or malfunction.
    • Related to reliability but more focused on risk of negative consequences.

    Software Testing

    • Verification: confirming product conforms to specifications, ensures it meets design intentions.
    • Validation: ensures product satisfies customer/stakeholder's needs, ensuring correct functionality.
    • Testing types: Unit, Integration, System, Validation, and Regression testing.
    • Approaches include top-down/bottom-up & Big Bang.
    • Methods include black-box (functional) and white-box (structural).

    Reviews

    • Meetings for technical people, assessing work products (e.g., design, code).
    • Formal technical reviews (FTR): discovering issues in representation of software.
    • Informal reviews: informal discussion of work product.

    Formal Reviews

    • Aim to uncover errors in function, logic, or implementation.
    • Aim to ensure software meets requirements and adheres to standards.
    • Ensure projects proceeds in a uniform manner, making them easier to manage.

    Postmortem Evaluations (PMEs)

    • Determine what went right and wrong during a software project
    • Team/stakeholder involvement focuses on lessons learned/improvements for future projects.

    Software Configuration Management

    • A process/mechanism for tracking and managing changes to software code and related deliverables.

    Version Control

    • System for tracking and managing changes in code over time.
    • Centralized and distributed systems exist with pros and cons.
      • Common centralized systems: SVN
      • Common distrbuted systems: Git

    Design Patterns

    • Codified methods providing structured solutions for design problems in code.
    • Categorized into creational, structural, and behavioral patterns.

    Studying That Suits You

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

    Quiz Team

    Related Documents

    Software Engineering Notes PDF

    Description

    Test your knowledge on UML activity diagrams and the CRC model with this quiz. Explore concepts like composition relationships, final nodes, action nodes, and much more. This quiz is perfect for students learning object-oriented design and analysis.

    More Like This

    Use Quizgecko on...
    Browser
    Browser