[go: up one dir, main page]

0% found this document useful (0 votes)
21 views4 pages

Commercial Programming CAT

The document outlines software development methodologies such as Agile, DevOps, and Lean Software Development, emphasizing their integration for improved adaptability and efficiency. It discusses the Model-View-Controller architecture, scalability and security considerations, as well as CI/CD practices using tools like GitHub Actions and Jenkins. Additionally, it covers microservices architecture, version control best practices, and UI/UX design principles for software applications.

Uploaded by

ndovu7730
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views4 pages

Commercial Programming CAT

The document outlines software development methodologies such as Agile, DevOps, and Lean Software Development, emphasizing their integration for improved adaptability and efficiency. It discusses the Model-View-Controller architecture, scalability and security considerations, as well as CI/CD practices using tools like GitHub Actions and Jenkins. Additionally, it covers microservices architecture, version control best practices, and UI/UX design principles for software applications.

Uploaded by

ndovu7730
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

ASBEL KIBET ROTICH

SCT211-0087/2022
Question 1
(a) Definitions and Examples:

1. Agile – Agile is a s/w development methodology where a s/w is developed with


iterative improvements. The improvements are done in sprints.
Example: we follow agile principles by developing the system in weekly sprints and
improving the ML model and the S/W iteratively.

2. DevOps – This is the integration of s/w development and business operations to make
the deployment efficient through automation and CI/CD.
Example: we use GitHub Actions to automate testing and deployment of our Django
application.

3. Lean Software Development – this methodology involves the implementation of


necessary features only, ensuring software is shipped efficiently and fast.

Example: Avoiding unnecessary features and optimizing data storage by ensuring the
database only holds essential value addition methods and classification results.

(b) Integration of these paradigms ensures adaptability, efficiency and streamlined


workflows.

Question 2

(a) The Model-View-Controller (MVC) architecture:

• Model – Handles data logic (e.g., ValueAdditionMethod model stores processing


techniques).

• View – Displays data to users (e.g., a webpage listing value addition techniques).

• Controller – Manages communication between Model and View (e.g., Django views
handling API requests).

(b) Scalability Considerations

1. Database optimization – Using indexes in Django ORM to speed up queries for


storing and retrieving ripeness classification results.

2. Load balancing – Deploying on AWS with load balancing to handle multiple user
requests efficiently.

Security Considerations
1. Authentication & Authorization – Implementing JWT authentication in Django REST
Framework to secure access to the API.

2. Input Validation – Ensuring image uploads for classification are restricted to valid file
formats to prevent injection attacks.

Question 3

(a) CI/CD improves software by automating testing, reducing errors, and speeding up
releases. In our project, GitHub Actions automates testing of the classification API.

(b) Using Git/GitHub:

• Git tracks code changes.

• GitHub facilitates collaboration through pull requests and issues.

• Branching Strategy:
▪ main branch – Stable production code.

▪ dev branch – Feature development.

(c) CI/CD Tools:

1. Jenkins – Automates testing and deployment.

2. GitHub Actions – CI/CD for GitHub-hosted projects.

3. Docker – Enables containerization for consistent deployment.

Question 4

(a) Comparison:

• Frontend – Manages user interface (HTML, CSS, JavaScript, React).

• Backend – Manages business logic, database (Django, PostgreSQL).

• Team roles:

▪ Frontend: UI/UX Developer.

▪ Backend: API Developer.


(b) API Documentation helps developers understand how to use an API. Tools:

1. Swagger – Auto-generates interactive API docs.

2. Insomnia – API testing and documentation.


Section B

Question 5: GitHub & CI/CD Pipelines

(a) Steps to Initialize GitHub Repository:

1. Create a repository.
2. Initialize Git (git init).

3. Add .gitignore file.

4. Create dev and feature branches.

5. Push initial commit (git push origin main).

6. Use Pull Requests (PRs) for code review.

(b) CI/CD Pipeline Using GitHub Actions:

1. Commit Code – Developer pushes code.


2. Automated Testing – Tests run on GitHub Actions.
3. Build & Deploy – Docker container is built and deployed.

(c) Common Version Control Mistakes & Fixes:

1. Committing sensitive data – Use .gitignore.

2. Not using branches – Follow a branching strategy.

3. Ignoring merge conflicts – Resolve conflicts properly.

Question 6: Microservices & Database Design


(a) Microservices Architecture for Patient Management System:

• Authentication Service – Manages user logins.

• Patient Records Service – Stores medical data.

• Appointment Scheduling Service – Handles bookings.

• Notification Service – Sends SMS/email alerts.

(b) Microservices vs. Monolithic:

• Microservices allow independent scaling and deployment.


• Monolithic apps can be harder to scale.

(c) SQL vs. NoSQL for Performance & Scalability:


• SQL (PostgreSQL) – Best for structured patient data.
• NoSQL (MongoDB) – Good for flexible, unstructured data storage.

Question 7: UI Design & UX in Software Architecture

(a) Best Practices for Wireframing:


1. Keep it simple – Avoid unnecessary details.

2. Use grids/layouts – Ensure UI consistency.

3. Indicate interactions – Show buttons, links.

4. Get feedback early – Validate with users.

(b) Key UI Wireframes for an Online Bookstore:

• Homepage: Search bar, book categories.

• Search Page: Filter results, book previews.


• Checkout Page: Cart summary, payment options.
(c) UX Considerations in Software Architecture:

1. Loading Speed Optimization: Fast response times improve engagement.

2. Accessibility Features: Ensuring all users, including disabled individuals, can


navigate the system.

You might also like