Software
Development CA
Revision Questions
Azinwi Boris
Adara Institute
01 Bash & File Basics
02 WSL Essentials
03 Users & Permissions
CONTENTS
04 File Security
05 Bash File Ops
06 Git Basics
CONTENTS
07 08 09 10 11
Git Branches GitHub Collab SDLC Overview Requirements Non-Functional
Types Deep Dive
01
Bash & File Basics
Define Bash and Paths
Definition of Bash Absolute vs Relative Bash Commands
Paths
Bash, the Bourne Again Shell, is a Absolute paths specify the location of a Common Bash commands include: 'cd'
command-line interface for Unix-like file or directory from the root directory, for changing directories, 'ls' for listing
operating systems. It is crucial for e.g., /home/user/documents. Relative directory contents, 'pwd' for printing the
professional software engineers as it paths specify the location relative to the current working directory, and 'cat' for
allows for efficient system navigation, current working directory, e.g., displaying file contents.
automation of repetitive tasks, and ./documents.
execution of complex commands.
02
WSL Essentials
WSL Purpose & Commands
What is WSL WSL Commands
WSL, or Windows Subsystem for Linux, To access the C: drive using WSL, use
allows Linux commands to run on 'cd /mnt/c'. To navigate to the Projects
Windows. It bridges the gap between folder, use 'cd /mnt/c/Projects'. WSL
Windows and Linux environments, provides a seamless way to work with
enabling developers to use Linux tools Linux commands on a Windows system.
and commands directly on Windows.
03
Users & Permissions
Linux Users Groups Others
User Definition Group Definition Others Definition Permission Code
In Linux, a user is an entity A group is a collection of users The 'others' category refers to The permission code rwxr-xr--
with its own set of permissions that share common all users who are not the means the owner has read,
and access rights. Users can permissions. Groups simplify owner or part of the group. write, and execute
be individual people or system permission management by Permissions for 'others' control permissions; the group has
processes. allowing permissions to be set access for everyone else on read and execute permissions;
for a group rather than the system. and others have read
individual users. permissions only.
04
File Security
chmod 755 vs 777
chmod 755
The command 'chmod 755 [Link]' sets
the file permissions to allow the owner to
read, write, and execute, while the group
and others can read and execute. This
ensures the file is secure while allowing
necessary access.
05
Bash File Ops
Scripted File Tasks
Create Nested Create Empty Files Copy Files Delete Empty
Directory Directory
To create a nested directory To create empty files To copy all .py files to a To delete an empty directory
'src/tests/utils' in '[Link]', '[Link]', and folder 'backup', use 'cp *.py 'old_logs', use 'rmdir
/home/student/app, use '[Link]', use 'touch backup/'. This command old_logs'. This command
'mkdir -p src/tests/utils'. This [Link] [Link] duplicates the files, removes the directory only if
command ensures all [Link]'. This preserving their content in it is empty, ensuring no data
intermediate directories are command initializes the files the specified directory. loss.
created if they do not exist. with zero size.
06
Git Basics
Git Init Add Commit Push
Git Commands
The command 'git init' initializes a new Git repository. 'git add'
stages changes for commit. 'git commit' records changes to the
repository. 'git push' uploads local changes to a remote
repository.
GitHub Workflow
To create a repository and push to GitHub, first initialize with 'git
init', add files with 'git add [Link]', commit with 'git commit
-m "Initial commit"', and push to GitHub with 'git push -u origin
main'.
07
Git Branches
Branch Merge Rebase
Branch Definition
A branch in Git is an independent line of development. It allows
developers to work on different features or fixes without affecting
the main codebase.
Merge vs Rebase
Merging combines changes from one branch Git Commands
into another, preserving history. Rebasing To create and switch to a branch 'feature/login', use 'git checkout
applies changes from one branch onto -b feature/login'. To rebase onto 'main', use 'git rebase main'. To
another, creating a linear history. Merge is
merge back, use 'git checkout main' followed by 'git merge
preferred for collaboration, while rebase is
used for cleaning up commits. feature/login'.
08
GitHub Collab
Local vs Remote Repo
Local Repository
A local repository is stored on your local machine. It is where you make
changes and commit them. It is essential for development and testing
before pushing to a remote repository.
Remote Repository
A remote repository is stored on a server, such as GitHub. It allows
collaboration among multiple developers. To clone a repository, use 'git
clone <repository-url>'.
09
SDLC Overview
Define SDLC Stages
Definition of SDLC Planning Design Implementation
The Software Development Life The planning stage involves The design stage focuses on The implementation stage
Cycle (SDLC) is a framework defining project scope, creating the architecture and involves writing code based on
defining tasks performed at objectives, and requirements. It design specifications for the the design specifications.
each stage in the software sets the foundation for the software. It includes user Developers build the software
development process. It project and helps in resource interface design, system components and integrate them
ensures a systematic approach allocation and risk architecture, and database to form a complete system.
to building high-quality software. management. design.
10
Requirements Types
Stakeholder
Requirements
Stakeholder Requirements
Stakeholder requirements capture the
needs and expectations of all stakeholders
involved in the project. These
requirements ensure that the software
meets the business goals and user
expectations.
Functional Requirements
01
Functional Requirements
Functional requirements specify what the software should do. They
describe the features and functionalities, such as user authentication,
data processing, and reporting capabilities.
02
Example
For example, a functional requirement for an e-commerce application
might be 'Users can add items to their shopping cart and proceed to
checkout.'
Non-Functional Requirements
01 02 03
Non-Functional Performance Security
Requirements
Non-functional requirements Performance requirements specify Security requirements ensure the
describe how the software should how fast the software should software protects data and prevents
perform. They include aspects like respond. For example, 'The system unauthorized access. For example,
performance, security, and usability. should process user requests within 'The system must use encryption
2 seconds.' for data transmission.'
Business Requirements
Business Requirements
Business requirements align the software with organizational goals. They ensure the
software supports business processes and delivers value to the organization.
Technical Requirements
Technical Requirements
Technical requirements specify the technical environment and
constraints. They include hardware, software, and network
requirements.
Example
For example, a technical requirement might be 'The software must be
compatible with Windows 10 and above, and support a minimum of
4GB RAM.'
11
Non-Functional Deep
Dive
Availability Security Scalability
Availability Security Scalability
Availability ensures the software is Security protects the software from Scalability allows the software to
accessible and operational when threats and vulnerabilities. It involves handle increased load and user
needed. High availability systems implementing measures like demand. It ensures the system can
often use redundancy and failover authentication, authorization, and grow and adapt to changing
mechanisms to minimize downtime. data encryption to safeguard user requirements without significant
data and system integrity. performance degradation.
Sample CA Type Questions
Sample CA Type Questions
Sample CA Type Questions
Sample CA Type Questions
Sample CA Type Questions
Sample CA Type Questions
Sample CA Type Questions
THANK
YOU