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

– The user interacts directly with the task, reducing the interface’s role as an intermediary.
– Key principle: The user should feel like they are controlling the object, not the interface.
– Reduces the gulf of execution & evaluation, making interactions more intuitive.
– Examples: Dragging files with a mouse vs. typing commands; touchscreen gestures.
Read More

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:

  1. Recommended for products that have a stable definition.
  2. Recommended when working with known methodologies.
  3. Helps to minimize the costs of planning
Read More

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:

  1. Testing Shows Presence of Defects: Testing reveals defects but cannot prove the software is defect-free.
  2. Exhaustive Testing Is Impossible: It’s impractical to test all possible scenarios; prioritize critical areas.
  3. Early Testing Saves Time and Costs: Detecting defects early in the SDLC reduces effort and cost.
  4. Defect Clustering:
Read More

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
Read More

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

  1. Modularity – Breaking software into independent, reusable modules.
  2. Readability & Understandability – Writing clear, well-documented code.
  3. Low Coupling & High Cohesion – Ensuring minimal dependency between modules while keeping related functions together.
Read More

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
Read More