Design and Development Flashcards
(102 cards)
What type of systems does the development of IoT applications and products involve?
The development of IoT applications and products involves software engineering on embedded or distributed systems.
What are embedded systems and what do they consist of?
Embedded systems are low-power small-sized microprocessor-based systems consisting of hardware and software components designed to perform dedicated tasks.
What are some well-known methodologies used for developing software on embedded systems?
The well-known methodologies for developing software on embedded systems include the waterfall model, spiral model and agile model.
What platforms are used to implement embedded systems? Platforms used to implement embedded systems include mono-board computers
Platforms used to implement embedded systems include mono-board computers one-chip systems and microcontrollers.
What is the main characteristic of distributed systems in the context of IoT?
In distributed systems computational tasks are distributed among several machines in the network to enhance scalability, flexibility, reliability, and fault tolerance.
How does designing distributed systems differ from designing embedded systems?
Designing distributed systems is more complex than designing embedded systems.
What has been developed to simplify software development for distributed systems?
Architecture patterns which document knowledge and solutions to common challenges have been developed to simplify software development for distributed systems.
When and where was software engineering first introduced as a systematic approach to software development?
Software engineering was first introduced at a NATO conference in Germany in 1968.
How does software engineering differ from software programming?
Software engineering involves multiple developers working on complex systems with indefinite lifespans, high maintenance, and ongoing development costs. In contrast, software programming typically involves a single developer working on one-off projects with limited lifespans.
What are embedded systems and how do they differ from personal computers?
Embedded systems are specialized computer systems integrated into larger systems, combining software and hardware to perform dedicated tasks. Unlike personal computers, which are designed for general tasks, embedded systems execute specific applications.
What is one of the main challenges in designing distributed systems?
One of the main challenges in designing distributed systems is how to partition the application and assign different tasks to various computational nodes.
What are five benefits of distributed systems compared to embedded systems?
The five benefits of distributed systems are:
* Resource sharing
* Openness (using equipment and software from different vendors)
* Concurrency (simultaneous processes on different nodes)
* Scalability (easy addition of new resources)
* Fault tolerance (system continues operating if a node fails)
What components are typically included in an embedded system?
A typical embedded system includes:
: A typical embedded system includes:
* Processor
* Analog input/output (I/O)
* Sensors and actuators
* User interfaces
* Application-specific gates (e.g., FPGA)
* Software
* Memory
* Emulation and diagnostics modules
What role do sensors and actuators play in an embedded system?
Sensors measure physical parameters of the environment while actuators perform commands to control or influence the environment.
What types of languages are typically used to write software for embedded systems?
Software for embedded systems is usually written in high-level languages like Python or C/C++ while performance-critical code may be written in low-level languages like Assembly.
How is an embedded system debugged?
Embedded systems are debugged using diagnostic ports such as the Joint Test Action Group (JTAG) which provide visibility into the system’s behavior.
What is the purpose of emulation in embedded systems?
Emulation modules in embedded systems provide visibility into the behavior of the application helping developers understand and debug the system.
What are the three well-known models used to develop embedded software?
The three well-known models are the waterfall model, spiral model and agile model.
What is the key characteristic of the waterfall model in software development?
The waterfall model is a sequential process where each project phase depends on the previous one with no overlap between phases.
In what type of projects is the waterfall model most suitable?
The waterfall model is more suitable for small projects with stable and predictable requirements.
What is a major drawback of the waterfall model?
A major drawback is its difficulty in modifying the software after the testing phase making it unsuitable for projects with frequent requirement changes.
What are the phases of the waterfall model?
The phases are:
1. Requirement documentation and analysis
2. High and low-level design
3. Implementation (coding)
4. Testing (e.g., security testing)
5. Deployment
6. Maintenance
How does the spiral model represent software development phases?
In the spiral model phases are represented by loops of a spiral where the radius represents project cost and the angular dimension shows progress.
What makes the spiral model suitable for large projects?
The spiral model is suitable for large projects because it handles frequent changes in requirements and manages risks effectively.