UI Design: Key Concepts and Methods
Here’s a concise cheat sheet summarizing the key definitions and concepts from your notes:
Direct Manipulation and Invisible Interfaces
Direct Manipulation
Software Development Life Cycle Models: Waterfall, Incremental, RAD, Prototype
Software Development Life Cycle Models
Waterfall Model
The Waterfall model means that the requirements of a problem are well understood and stable in the 5 Stages of Generic Software Engineering. Documents are generated in each stage. Revisions are made after each stage; the process only passes to the next stage if the previous stage is completed.
Advantages:
- Recommended for products that have a stable definition.
- Recommended when working with known methodologies.
- Helps to minimize the costs of planning
Software Engineering: Testing, ISO 12207, Quality & Planning
Software Testing Principles
Analyze the set of testing principles adopted in software engineering? Here’s a concise summary of the testing principles in software engineering:
- Testing Shows Presence of Defects: Testing reveals defects but cannot prove the software is defect-free.
- Exhaustive Testing Is Impossible: It’s impractical to test all possible scenarios; prioritize critical areas.
- Early Testing Saves Time and Costs: Detecting defects early in the SDLC reduces effort and cost.
- Defect Clustering:
Software Design and Implementation Phases
Software Design and Implementation
Design and Implementation
- Software design and implementation is the stage in the software engineering process at which an executable software system is developed.
- Software design and implementation activities are invariably inter-leaved.
- Software design is a creative activity in which you identify software components and their relationships, based on a customer’s requirements.
- Implementation is the process of realizing the design as a program.
Build or Buy
- In a wide range
Software Maintainability, SCM, CMS, and Development Factors
Maintainable Software
Maintainability is the ease with which software can be modified to fix defects, improve performance, or adapt to changes. High maintainability reduces long-term costs and effort.
Key Principles of Maintainable Software
- Modularity – Breaking software into independent, reusable modules.
- Readability & Understandability – Writing clear, well-documented code.
- Low Coupling & High Cohesion – Ensuring minimal dependency between modules while keeping related functions together.
Software Development Processes and Models
Plan-Driven and Agile Processes
- Plan-driven processes are processes where all activities are planned in advance, and progress is measured against this plan.
- In agile processes, planning is incremental, making it easier to change the process to reflect changing customer requirements.
- In practice, most processes include elements of both plan-driven and agile approaches.
- There are no right or wrong software processes.
Software Process Models
- Waterfall model
- Plan-driven model. Separate and distinct phases
