Podcast
Questions and Answers
What is the primary purpose of architectural design in system development?
What is the primary purpose of architectural design in system development?
Which approach is NOT mentioned as a method for object class identification?
Which approach is NOT mentioned as a method for object class identification?
Which component is NOT included in the weather station object classes?
Which component is NOT included in the weather station object classes?
How often are weather stations typically required to report?
How often are weather stations typically required to report?
Signup and view all the answers
What is one common architectural pattern for organizing system components?
What is one common architectural pattern for organizing system components?
Signup and view all the answers
What defines the communication method between subsystems in a high-level weather station architecture?
What defines the communication method between subsystems in a high-level weather station architecture?
Signup and view all the answers
Which of the following is a tangible object related to the weather station's application domain?
Which of the following is a tangible object related to the weather station's application domain?
Signup and view all the answers
What is an important characteristic of the object identification process?
What is an important characteristic of the object identification process?
Signup and view all the answers
Which level of software reuse involves directly reusing objects from a library?
Which level of software reuse involves directly reusing objects from a library?
Signup and view all the answers
What is one of the costs associated with software reuse?
What is one of the costs associated with software reuse?
Signup and view all the answers
Which configuration management activity helps track different versions of software components?
Which configuration management activity helps track different versions of software components?
Signup and view all the answers
What is the primary aim of configuration management?
What is the primary aim of configuration management?
Signup and view all the answers
At which level of software reuse are entire application systems reused?
At which level of software reuse are entire application systems reused?
Signup and view all the answers
Which of the following is NOT a cost associated with finding and integrating reusable software?
Which of the following is NOT a cost associated with finding and integrating reusable software?
Signup and view all the answers
In configuration management, what is the purpose of problem tracking?
In configuration management, what is the purpose of problem tracking?
Signup and view all the answers
Which of the following correctly describes the component level of software reuse?
Which of the following correctly describes the component level of software reuse?
Signup and view all the answers
What is the primary purpose of design models in large systems developed by different groups?
What is the primary purpose of design models in large systems developed by different groups?
Signup and view all the answers
Which activity is NOT commonly included in object-oriented design processes?
Which activity is NOT commonly included in object-oriented design processes?
Signup and view all the answers
What does a system context model demonstrate?
What does a system context model demonstrate?
Signup and view all the answers
Which of the following best characterizes an interaction model?
Which of the following best characterizes an interaction model?
Signup and view all the answers
In the use case description for 'Report weather', what action does the weather station take?
In the use case description for 'Report weather', what action does the weather station take?
Signup and view all the answers
What does the weather information system do in response to the establishment of a satellite communication link?
What does the weather information system do in response to the establishment of a satellite communication link?
Signup and view all the answers
Which of the following elements is included in the summary data transmitted from the weather station?
Which of the following elements is included in the summary data transmitted from the weather station?
Signup and view all the answers
What is the purpose of specifying object interfaces in the design process?
What is the purpose of specifying object interfaces in the design process?
Signup and view all the answers
What is the purpose of design models in software development?
What is the purpose of design models in software development?
Signup and view all the answers
Which type of design model shows how objects change their state in response to events?
Which type of design model shows how objects change their state in response to events?
Signup and view all the answers
What do interface specifications enable in object-oriented design?
What do interface specifications enable in object-oriented design?
Signup and view all the answers
Which modeling technique uses class diagrams for interface specification?
Which modeling technique uses class diagrams for interface specification?
Signup and view all the answers
Which of the following best describes the focus of sequence models?
Which of the following best describes the focus of sequence models?
Signup and view all the answers
What should designers avoid when representing interface specifications?
What should designers avoid when representing interface specifications?
Signup and view all the answers
Which of the following is NOT typically included as part of design models?
Which of the following is NOT typically included as part of design models?
Signup and view all the answers
Why are multiple interfaces often provided by objects?
Why are multiple interfaces often provided by objects?
Signup and view all the answers
What is the primary focus of software design in the engineering process?
What is the primary focus of software design in the engineering process?
Signup and view all the answers
Which of the following best describes implementation in the software development process?
Which of the following best describes implementation in the software development process?
Signup and view all the answers
What is a key consideration when implementing software?
What is a key consideration when implementing software?
Signup and view all the answers
Why might structured object-oriented design processes not be cost-effective for small systems?
Why might structured object-oriented design processes not be cost-effective for small systems?
Signup and view all the answers
What emerging trend in software development is highlighted in this topic?
What emerging trend in software development is highlighted in this topic?
Signup and view all the answers
Which of the following statements is true regarding the activities of software design and implementation?
Which of the following statements is true regarding the activities of software design and implementation?
Signup and view all the answers
What aspect of software engineering is highlighted as a key issue in implementation?
What aspect of software engineering is highlighted as a key issue in implementation?
Signup and view all the answers
What typically characterizes the process of software design?
What typically characterizes the process of software design?
Signup and view all the answers
What is the primary purpose of low-fidelity (lo-fi) prototypes?
What is the primary purpose of low-fidelity (lo-fi) prototypes?
Signup and view all the answers
Under which conditions are high-fidelity (hi-fi) prototypes typically created?
Under which conditions are high-fidelity (hi-fi) prototypes typically created?
Signup and view all the answers
What is the significance of configuration management during development?
What is the significance of configuration management during development?
Signup and view all the answers
What does the term 'host-target development' refer to?
What does the term 'host-target development' refer to?
Signup and view all the answers
What is the main characteristic of high-fidelity prototypes?
What is the main characteristic of high-fidelity prototypes?
Signup and view all the answers
What approach was predominantly used for software development from the 1960s to the 1990s?
What approach was predominantly used for software development from the 1960s to the 1990s?
Signup and view all the answers
Which of the following is NOT an example of a high-fidelity prototyping tool?
Which of the following is NOT an example of a high-fidelity prototyping tool?
Signup and view all the answers
Why is reusing existing components important in modern software construction?
Why is reusing existing components important in modern software construction?
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.
Related Documents
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.