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.</p> Signup and view all the answers

    What is one common architectural pattern for organizing system components?

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

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

    <p>Broadcasting messages.</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.</p> Signup and view all the answers

    What is an important characteristic of the object identification process?

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

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

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

    What is one of the costs associated with software reuse?

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

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

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

    What is the primary aim of configuration management?

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

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

    <p>System level</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</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</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</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</p> Signup and view all the answers

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

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

    What does a system context model demonstrate?

    <p>The relationships with other systems in the environment</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</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</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</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</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</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.</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</p> Signup and view all the answers

    What do interface specifications enable in object-oriented design?

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

    Which modeling technique uses class diagrams for interface specification?

    <p>UML</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.</p> Signup and view all the answers

    What should designers avoid when representing interface specifications?

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

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

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

    Why are multiple interfaces often provided by objects?

    <p>To offer different methods for various use cases.</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</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</p> Signup and view all the answers

    What is a key consideration when implementing software?

    <p>Reusing existing software components when feasible</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</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</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</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</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</p> Signup and view all the answers

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

    <p>To check and test functionality.</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.</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.</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.</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.</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.</p> Signup and view all the answers

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

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

    Why is reusing existing components important in modern software construction?

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

    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

    Implemetacija Arhitektura
    24 questions

    Implemetacija Arhitektura

    SupportingGravity avatar
    SupportingGravity
    Architectural Design in Software Systems
    48 questions
    Use Quizgecko on...
    Browser
    Browser