Core Software Engineering Concepts: Processes and Models

Software Engineering Process and Framework

Defining a Software Process

A process in software engineering is a set of organized activities for developing software, including planning, designing, coding, testing, and maintenance.

Generic Process Framework Phases

The generic process framework provides a high-level structure that can be adapted to various software development models, such as Agile, Waterfall, and V-Model. The framework is generally composed of these key phases:

  • Communication

    This phase focuses

Read More

UI/UX Design & Web Development: Key Principles

User-Centered Design Principles

  • User-centered design focuses on how users actually interact, not how designers assume they will.
  • The user is not you – Real user needs must be understood through research.

Motor Laws (Human Capabilities in UI)

  • Fitts’ Law – The time to reach a target depends on its distance (↑ = slow) & size (↑ = fast).
  • Formula: T = D / W
  • UI Tip: Make frequently used buttons larger & closer.
  • Steering Law – Navigating through constrained paths slows down interaction.
  • UI
Read More

Personal Projects Showcase: Web Development & More

Personal Projects

1. INDIEREADS

  • AJAX for auto-loading on scroll
  • Connect Storage Engine for reading JSON on MariaDB
  • Balsamiq for wireframe layouts
  • Canva for logo creation

2. Wave Function Collapse

  • WFC algorithm to make images based on seed
  • HTML5 Canvas

3. Automatic Cat Feeder

  • React
  • ESP32 Microcontroller with C
  • Arduino

4. Jamming the Bozone

  • Google Calendar API for embedded calendar
  • Bootstrap to make site responsive
  • Email submission with PHP

5. FITNESS BROS

  • Trello for task management
  • Bootstrap for mobile-first design

6.

Read More

Scrum Project Management: Essential Elements and Best Practices

Sprint Artifacts

Product Backlog

  • Prioritized feature list
  • Short descriptions of all desired product functionality
  • Adaptable and evolves with product knowledge gained during sprints

Sprint Backlog

  • Managed by the team during the sprint
  • List of tasks to be completed during the sprint, identified by the Scrum team
  • Team selects product backlog items, often as user stories

Increment

  • Total of completed Product Backlog items from the current and all previous sprints
  • Must be functional and demonstrate product evolution

Artifact

Read More

Software Development Essentials: SDLC, SRS, COCOMO, Agile & Risk

Functional vs. Non-Functional Requirements

Understanding the difference between functional and non-functional requirements is crucial in software development:

  • Functional Requirements: Specify what the system should do (features, actions, and behaviors).
  • Non-Functional Requirements: Define how the system should perform (quality attributes like performance, security).

Here’s a comparison:

  • Functional: Focuses on specific functionalities of the system.
  • Non-Functional: Focuses on system quality and constraints.
Read More

Service Prototyping: Testing Design Concepts & Solutions

Topic 6: Prototyping

The objective of prototyping is to test the design concept, the service design, and their underlying new proposed ideas and solutions to approve or reject them. If they are approved, the process goes ahead. If they are not approved, then they should be amended, improved, and fine-tuned depending on the results of the prototype testing. Their ideas should be revised, etc.

What is Service Prototyping? Prototyping Goals

It is a lightweight simulation or sample version of the actual

Read More