CSE241/CMM341 Software Engineering Topic 7
48 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 is the primary purpose of architectural design in system development?

  • To determine the marketing strategy.
  • To define the system's programming language.
  • To improve user interface aesthetics.
  • To identify the components and their interactions. (correct)
  • Which approach is NOT mentioned as a method for object class identification?

  • Grammatical approach.
  • Behavioral approach.
  • Functional approach. (correct)
  • Scenario-based analysis.
  • Which component is NOT included in the weather station object classes?

  • Barometer.
  • Hydrometer. (correct)
  • Anemometer.
  • Ground thermometer.
  • How often are weather stations typically required to report?

    <p>Once per hour. (B)</p> Signup and view all the answers

    What is one common architectural pattern for organizing system components?

    <p>Layered architecture. (A)</p> Signup and view all the answers

    What defines the communication method between subsystems in a high-level weather station architecture?

    <p>Broadcasting messages. (B)</p> Signup and view all the answers

    Which of the following is a tangible object related to the weather station's application domain?

    <p>Anemometer. (B)</p> Signup and view all the answers

    What is an important characteristic of the object identification process?

    <p>It often requires multiple iterations. (D)</p> Signup and view all the answers

    Which level of software reuse involves directly reusing objects from a library?

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

    What is one of the costs associated with software reuse?

    <p>Cost of adaptation and configuration (C)</p> Signup and view all the answers

    Which configuration management activity helps track different versions of software components?

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

    What is the primary aim of configuration management?

    <p>To support system integration (C)</p> Signup and view all the answers

    At which level of software reuse are entire application systems reused?

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

    Which of the following is NOT a cost associated with finding and integrating reusable software?

    <p>Cost of maintaining existing software (D)</p> Signup and view all the answers

    In configuration management, what is the purpose of problem tracking?

    <p>To allow users to report bugs and issues (C)</p> Signup and view all the answers

    Which of the following correctly describes the component level of software reuse?

    <p>Reusing collections of objects and object classes (C)</p> Signup and view all the answers

    What is the primary purpose of design models in large systems developed by different groups?

    <p>To serve as a communication mechanism (C)</p> Signup and view all the answers

    Which activity is NOT commonly included in object-oriented design processes?

    <p>Market the developed application (C)</p> Signup and view all the answers

    What does a system context model demonstrate?

    <p>The relationships with other systems in the environment (D)</p> Signup and view all the answers

    Which of the following best characterizes an interaction model?

    <p>It illustrates how the system interacts dynamically with its environment (D)</p> Signup and view all the answers

    In the use case description for 'Report weather', what action does the weather station take?

    <p>Sends a summary of collected weather data (C)</p> Signup and view all the answers

    What does the weather information system do in response to the establishment of a satellite communication link?

    <p>Requests transmission of weather data (A)</p> Signup and view all the answers

    Which of the following elements is included in the summary data transmitted from the weather station?

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

    What is the purpose of specifying object interfaces in the design process?

    <p>To dictate how objects communicate with each other (A)</p> Signup and view all the answers

    What is the purpose of design models in software development?

    <p>To show logical groupings of objects into coherent subsystems. (A)</p> Signup and view all the answers

    Which type of design model shows how objects change their state in response to events?

    <p>State machine models (B)</p> Signup and view all the answers

    What do interface specifications enable in object-oriented design?

    <p>Parallel design of objects and other components. (C)</p> Signup and view all the answers

    Which modeling technique uses class diagrams for interface specification?

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

    Which of the following best describes the focus of sequence models?

    <p>The sequence of interactions between objects. (B)</p> Signup and view all the answers

    What should designers avoid when representing interface specifications?

    <p>Designing the interface representation itself. (A)</p> Signup and view all the answers

    Which of the following is NOT typically included as part of design models?

    <p>Data flow diagrams (C)</p> Signup and view all the answers

    Why are multiple interfaces often provided by objects?

    <p>To offer different methods for various use cases. (A)</p> Signup and view all the answers

    What is the primary focus of software design in the engineering process?

    <p>Identifying software components and their relationships (C)</p> Signup and view all the answers

    Which of the following best describes implementation in the software development process?

    <p>The process of realizing the design as an operational program (B)</p> Signup and view all the answers

    What is a key consideration when implementing software?

    <p>Reusing existing software components when feasible (D)</p> Signup and view all the answers

    Why might structured object-oriented design processes not be cost-effective for small systems?

    <p>They involve high maintenance and development effort (A)</p> Signup and view all the answers

    What emerging trend in software development is highlighted in this topic?

    <p>The rise of open-source software development (C)</p> Signup and view all the answers

    Which of the following statements is true regarding the activities of software design and implementation?

    <p>Design and implementation activities are inter-leaved (D)</p> Signup and view all the answers

    What aspect of software engineering is highlighted as a key issue in implementation?

    <p>Consideration of software reusability (C)</p> Signup and view all the answers

    What typically characterizes the process of software design?

    <p>It includes exploring user requirements and generating system models (B)</p> Signup and view all the answers

    What is the primary purpose of low-fidelity (lo-fi) prototypes?

    <p>To check and test functionality. (C)</p> Signup and view all the answers

    Under which conditions are high-fidelity (hi-fi) prototypes typically created?

    <p>When there is a solid understanding of the product to be built. (C)</p> Signup and view all the answers

    What is the significance of configuration management during development?

    <p>To keep track of different versions of software components. (C)</p> Signup and view all the answers

    What does the term 'host-target development' refer to?

    <p>Developing on one computer while executing on another. (A)</p> Signup and view all the answers

    What is the main characteristic of high-fidelity prototypes?

    <p>They closely resemble the final product in appearance and function. (B)</p> Signup and view all the answers

    What approach was predominantly used for software development from the 1960s to the 1990s?

    <p>Creating software from scratch with high-level programming languages. (D)</p> Signup and view all the answers

    Which of the following is NOT an example of a high-fidelity prototyping tool?

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

    Why is reusing existing components important in modern software construction?

    <p>It minimizes development time and cost. (A)</p> Signup and view all the answers

    Flashcards

    Software Design

    Identifying software components and their relationships based on customer needs.

    Software Implementation

    Creating the program based on the design.

    Interleaved Design and Implementation

    Software design and implementation activities often happen together.

    Object-Oriented Design

    A design approach that uses objects and their relationships to model a system.

    Signup and view all the flashcards

    Structured Object-Oriented Design

    Formal process to design object-oriented systems using models.

    Signup and view all the flashcards

    Open Source Development

    Reusing existing software and using publicly available code.

    Signup and view all the flashcards

    Implementation Issues

    Challenges encountered during the software implementation process.

    Signup and view all the flashcards

    Software Design & Implementation

    Stage in the software engineering process where an executable software system is created.

    Signup and view all the flashcards

    System Context Model

    A structural model showing other systems in the environment of the system being developed.

    Signup and view all the flashcards

    Interaction Model

    A dynamic model showing how a system interacts with its environment.

    Signup and view all the flashcards

    Weather station use case

    Describes how the weather station sends weather data to a weather information system.

    Signup and view all the flashcards

    Actors (Use Case)

    Entities that interact with the system (e.g., Weather station, Weather information system).

    Signup and view all the flashcards

    Use Case Description

    Details of the interaction between a system and an actor performing a specific task.

    Signup and view all the flashcards

    Design Models

    Representations used for communicating details of a system's design.

    Signup and view all the flashcards

    System Architecture Design

    The overall structure and organization of a system's components.

    Signup and view all the flashcards

    Principal System Objects

    Key components or entities within the system.

    Signup and view all the flashcards

    Weather Station Architecture

    The structure of a weather station, composed of independent subsystems communicating via a shared infrastructure.

    Signup and view all the flashcards

    Object Identification

    Process of finding important parts (objects) within a system.

    Signup and view all the flashcards

    Object-Oriented Approach

    Identifying system objects based on their roles in system behaviors.

    Signup and view all the flashcards

    Ground Thermometer

    A hardware object measuring air temperature.

    Signup and view all the flashcards

    Anemometer

    A hardware object measuring wind speed.

    Signup and view all the flashcards

    Barometer

    A hardware object measuring air pressure.

    Signup and view all the flashcards

    Weather Station Reporting Frequency

    How often a weather station sends reports (usually hourly, but potentially variable).

    Signup and view all the flashcards

    Subsystem Models

    Design models that group related objects into logical subsystems, promoting modularity and understanding.

    Signup and view all the flashcards

    Sequence Models

    Design models demonstrating the order in which objects interact, revealing the flow of information and control.

    Signup and view all the flashcards

    State Machine Models

    Design models illustrating how an object changes its state in response to events, reflecting its dynamic behavior.

    Signup and view all the flashcards

    Object Interfaces

    Specifications defining how objects interact with each other and other components, enabling independent development.

    Signup and view all the flashcards

    Multiple Object Interfaces

    Objects can have various interfaces representing different viewpoints on their methods, adapting to different contexts.

    Signup and view all the flashcards

    UML for Interface Specification

    Unified Modeling Language (UML) is used to visually define object interfaces using class diagrams, providing a standardized representation.

    Signup and view all the flashcards

    Hiding Interface Representation

    Designers should avoid exposing the internal implementation details of interfaces, hiding complexity from external users.

    Signup and view all the flashcards

    What is Reuse?

    Using existing components or systems in software development to avoid writing code from scratch.

    Signup and view all the flashcards

    What is Configuration Management?

    Keeping track of different versions of software components during development.

    Signup and view all the flashcards

    Host-Target Development

    Developing software on one computer (host) and running it on a different computer (target).

    Signup and view all the flashcards

    Why use high-fidelity prototypes?

    High-fidelity prototypes closely resemble the final product, allowing for realistic user testing and stakeholder approvals.

    Signup and view all the flashcards

    What are low-fidelity prototypes used for?

    Low-fidelity prototypes focus on testing functionality, not visuals, providing quick feedback on core features.

    Signup and view all the flashcards

    What is the goal of identifying use cases?

    Understanding how users will interact with the software to provide specific functions.

    Signup and view all the flashcards

    Why are object classes important?

    Object classes represent key entities in the software, defining their properties and behaviors.

    Signup and view all the flashcards

    What is implementation reuse?

    Reusing existing code or modules to speed up software development.

    Signup and view all the flashcards

    Software Reuse

    The practice of utilizing existing software components or systems in new development projects.

    Signup and view all the flashcards

    Abstraction Level Reuse

    Utilizing knowledge of successful design patterns and abstractions to create new software.

    Signup and view all the flashcards

    Object Level Reuse

    Reusing pre-written objects from libraries in your code.

    Signup and view all the flashcards

    Component Level Reuse

    Reusing groups of objects and classes (components) in software systems.

    Signup and view all the flashcards

    System Level Reuse

    Reusing entire existing software systems in new projects.

    Signup and view all the flashcards

    Configuration Management

    Organizing and managing changes to software projects, ensuring consistency and control.

    Signup and view all the flashcards

    Version Management

    Tracking different versions of software components to maintain history and support development.

    Signup and view all the flashcards

    System Integration

    Combining different versions of software components to create a complete system.

    Signup and view all the flashcards

    Study Notes

    CSE241/CMM341 Foundations of Software Engineering - Topic 7: Architectural and Implementation II

    • Course Content: The course covers Introduction to Software Engineering, Software Processes, Agile Software Development, Requirements Engineering, System Modeling, Architectural Design & Implementation I, Architectural Design & Implementation II, Software Testing, Software Evolution, Project Management, Project planning, Quality Management, and Configuration Management.

    • Topic 7 Focus: Architectural Design & Implementation II, Implementation Issues, and Open Source Development.

    • Learning Outcomes: Students should understand key issues in software implementation and the potential for reusing existing software and utilizing open-source solutions in software development.

    • Design and Implementation: This stage of software engineering involves creating an executable system. Design and implementation activities are closely related and interleaved. Software design is a creative process involving identifying software components and their relationships based on customer requirements. Implementation is the process of realizing the design as a program.

    • Object-Oriented Design: Structured object-oriented design involves creating various system models. While this can be helpful for large systems, for small systems, it may not be cost-effective.

    • Process Stages (Object-Oriented Design): Common activities include defining the context and modes of use, designing the system architecture, identifying principal system objects, developing design models, and specifying object interfaces.

    • Context and Interaction Models (for Defining the Context): System context models are structural models that show other systems within the environment. Interaction models are dynamic models that demonstrate how the system interacts with its environment.

    • Weather Station Example: A context diagram examples shows how a weather station interacts with control systems, weather information systems, and satellites. Use cases like "Report Weather" describe how to collect, summarize, and transmit weather data.

    • Architectural Design (System Architecture): After understanding system interactions, the architecture is designed. This involves defining major components, their interactions, and possibly categorizing components using architectural patterns like layered or client-server models.

    • High-Level Architecture (Weather Station): The weather station has subsystems like fault management, configuration management, and power management, communicating on a shared infrastructure. The architecture of the data collection system includes transmitters, receivers, and the handling of weather data.

    • Object Class Identification: This is an iterative process. Methods involve grammatical analysis, tangible aspects of the application domain, behavioral analysis focusing on object interactions, and scenario-based analysis that identifies objects, attributes, and methods from scenarios.

    • Weather Station Object Classes Example: These include ground thermometer, anemometer, barometer, and a weather station interface interacting with external systems.

    • Design Models (Developing Design Models): Structural models graphically represent (and are not limited to) the structure of objects and classes, as well as relationships between them. Dynamic models describe object interactions visually (sequences of interactions). Subsystem models demonstrate the grouping of related objects. Sequence models display the order of interactions between objects. State machine models describe how objects change state in response to events. Other models include use-case models, aggregation models, and generalization models.

    • Interface Specification: Interface specifications detail how objects and components interact. Interfaces are designed in parallel. Objects can have multiple interfaces representing different views of the same methods. Examples include UML class diagrams and Java.

    • Low and High Fidelity Prototyping: Low-fidelity prototyping is quick, focusing on functionality, while high-fidelity prototypes emphasize visual appearance and function closely resembling the final product. Tools include Marvel, Figma, and Proto.io.

    • Implementation Issues: Key topics are reuse, configuration management (tracking versions of software components), and host-target development (develop on one machine, execute on another).

    • Reuse: Reuse of existing software components or systems is a major factor for most modern systems. Reuse levels include abstraction (reusing design knowledge), object (reusing objects), component (reusing components), and system (reusing whole systems). However, cost of reusing and adapting existing systems should be considered.

    • Configuration Management: Tracking different versions of software components is essential during development to support integration and allow developers to follow changes and collaborate. It also aims to ensure clarity of what changes have been made and how components are assembled into a complete system. Activities include version management (tracking updates), system integration (defining and using components in a system), and problem tracking (handling errors and fixing them). Versions often include a unique identifier of the form [v]version.increment and track major and minor changes.

    • Host-Target Development: Software may be developed on one computer (the host) and executed on a different one (the target machine). The development platform differs from the execution platform.

    • Development Platform Tools: Integrated compiler and editor systems, debugging systems, UML editing tools, and testing tools are part of the development process. Project support tools help organize code. This integrates tools that create environments optimized for specific tasks, such as designing software architecture or running testing utilities.

    • Integrated Development Environment (IDE): Software tools grouped for tasks like editing and compiling, often using a common framework/user interface. Examples include Netbeans, Eclipse, and Visual Studio, covering diverse programming languages like C++, Java, PHP, and more.

    • Component/System Deployment Factors: Factors like hardware/architecture, high availability (reliability), and communication traffic impact deployment decisions. Components and systems should be deployed on compatible platforms, and components with high communication demands should be on the same platform or nearby

    • Open Source Development: Source code is publicly available, permitting user examination and modification. Examples include Linux, Java, and Apache and MySQL. Issues include deciding whether to use open source components and if the development itself should be open source. Licensing models like GNU GPL and BSD differ in the rights and responsibilities of the code used and the code of a final application.

    • Case Study - RMO Tradeshow System: The system aims at capturing supplier and product information and communicating with home office systems. Various communication methods are necessary due to diverse venues.

    • Business Benefits (RMO): The system speeds communication between trade show attendees and home office, maintains accurate supplier information, and facilitates product information management. This case study focuses on a system designed for communication and information flow, and highlights the need for information flow and collaboration between different parts of an organization handling a project.

    • Use Cases and Object Classes (RMO): Use cases are steps taken by users to execute a particular function (e.g. look up suppliers). Object classes will encapsulate data and behavior related to a particular function (e.g. suppliers, contacts, products, and images). This section shows the details of a particular project and the entities involved in the software design.

    Studying That Suits You

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

    Quiz Team

    Description

    Explore the key concepts of Architectural Design & Implementation II in this quiz. Focus areas include implementation issues and the role of open-source solutions in software development. Evaluate your understanding of software engineering principles and practices.

    More Like This

    Use Quizgecko on...
    Browser
    Browser