theory Flashcards
Critical system
hint samba
- A critical system is a system which must be highly reliable and retain this reliability as they evolve without incurring prohibitive costs.
1. Safety-critical systems A system whose failure may result in injury, loss of life or serious environmental damage. An example of a safety-critical system is a control system for a chemical manufacturing plant.
2. Mission-critical systems A system whose failure may result in the failure of some goal-
directed activity. An example of a mission-critical system is a navigational system for a spacecraft.
3. Business-critical systems A system whose failure may result in very high costs for the business using that system. An example of a business-critical system is the customer accounting system in a bank.
Agile Methodology
hint: incr
- Agile is a software development methodology to build a software incrementally using short iterations of 1 to 4 weeks so that the development is aligned with the changing business needs.
refer to drawing
idea->cycle(define, code test) ->i1 review and adjust -> x3 ….-> final software
Software Quality
hint: req? srs
- Software Quality:- refers to how well a software product meets the needs and expectations of its users. It is determined by the extent to which the software fulfills the requirements specified in the Software Requirements Specification (SRS) document.
Software product quality methods
hint: p u r c m
- Portability: A software device is said to be portable, if it can be freely made to work in various operating system environments, in multiple machines, with other software products, etc.
- Usability: A software product has better usability if various categories of users can easily invoke the functions of the product.
- Reusability: A software product has excellent reusability if different modules of the product can quickly be reused to develop new products.
- Correctness: A software product is correct if various requirements as specified in the SRS document have been correctly implemented.
- Maintainability: A software product is maintainable if bugs can be easily corrected as and when they show up, new tasks can be easily added to the product, and the functionalities of the product can be easily modified, etc.
Unit testing
hint: indv, ui fun ex
Unit testing is a testing technique where individual modules are tested by the developer to ensure functional correctness. It aims to isolate and fix defects in each unit, reduces testing costs, improves design, and contributes to the overall quality of the build. Unit testing techniques include Black Box Testing (testing user interface and inputs/outputs), White Box Testing (testing function behavior), and Gray Box Testing (executing tests, assessing risks).
refer to drawing
unit test cycle
cycle( check code out from repo, make changes, execute unit tests, fix defects and reex. tests, code review, check code in into repo)
Fault tolerance
hint: det dam rec rep
- Fault detection: The system must detect a fault that could lead to a system failure.
- Damage assessment: identifying and detecting the parts of the system state that have been affected by a fault.
- Fault recovery: restoring the system to a known safe state by either correcting the damaged state (forward error recovery) or reverting to a safe state (backward error recovery).
- Fault repair: involves making changes to the system to prevent faults from happening again. However, not all faults require repair as some are temporary and normal processing can resume once the fault is recovered.
The process improvement ‘Six Sigma’
hint: cpe demarquis and damvid
Six Sigma is a process improvement methodology that aims to make customers happy and increase profits by eliminating waste and inefficiency. It focuses on three important elements: customers, processes, and employees. There are two main methods in Six Sigma: DMAIC for improving existing processes and DMADV for designing new products and processes to ensure predictable and high-quality performance.
Advantages of Software Reuse
hint: etc im in
- Less effort: Ready-made components reduce the effort required as they can be directly used in the system.
- Time-saving: Reusing existing components saves time for the software team.
- Reduce cost: With reduced effort and time, overall costs are reduced.
- Increase software productivity: By utilizing ready-made components, developers can focus on creating new components.
- Improved software quality: Time saved through reuse allows more focus on maintaining software quality and assurance.
Dependability
hint: sys rts
- In systems engineering, dependability is a measure of a system’s availability, reliability, maintainability, and in some cases, other characteristics such as durability, safety, and security.
- In real-time computing, dependability is the ability to provide services that can be trusted within a time period.
refer to drawing
dependability:
availability
reliability
safety
security
Safety specification
hint: safety eng
The safety engineering community developed standards for safety- critical systems specification and development.
* Software with safety-critical functionality must be thoroughly verified with objective analysis and preferably test evidence that all safety requirements have been met per established criteria.
refer to drawing
Risk management
hint: id q r mc
Risk management is crucial in business organizations to minimize the negative impact of risks. It involves four steps:
Risk Identification: Identifying potential risks.
Risk Quantification: Assessing the impact and likelihood of risks.
Risk Response: Developing strategies to mitigate or exploit risks.
Risk Monitoring and Control: Continuously monitoring and managing risks throughout the project or organization.
Agile - Characteristics
hint: inc f2f fbl
1-Iterative/incremental and Ready to Evolve: Agile methods divide problems into smaller tasks and focus on short iterations (1 to 4 weeks). Cross-functional teams handle all aspects of development and deliver a working product at the end of each iteration.
2-Face-to-face Communication: In Agile, teams have a designated customer representative who can address the developers’ questions and represent the stakeholders. To keep everyone informed, project progress is displayed on information radiators, which are prominently placed in the office for easy visibility.
3-Feedback Loop: Daily stand-up meetings, known as daily scrums, provide a platform for team members to share updates, discuss next steps, and address any issues.
Integration testing
hint: bigbang topbot hybrid
Integration testing occurs after unit testing and involves combining modules or units to test their functional, performance, and reliability interactions. Different integration strategies include Big-Bang Integration, Top-Down Integration, Bottom-Up Integration, and Hybrid Integration.
Safety assurance
hint: review cmcc ass
For safety assurance in critical systems, five mandatory reviews should be conducted:
* Review for correct intended function.
* Review for maintainable and understandable structure.
* Review to ensure consistency between algorithm, data structure design, and specified behavior.
* Review for consistency between code and algorithm/data structure design.
* Review to assess adequacy of system test cases.