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
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
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 MoreScrum 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 MoreSoftware 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.
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