Dept. of Immigration & Passport, MoHA

Post: Sub-Assistant Maintenance Engineer
Exam Date: 13/10/2022 Subject Code: 105 Exam Taker: BPSC গ্রুপঃ ঘ (Software)
Core Principles of Agile Methodology in Software Development: Agile is an iterative and flexible Software Development approach that focuses on customer satisfaction, collaboration, and continuous improvement. Four Core Values of Agile (Agile Manifesto):
  1. Individuals and Interactions over Processes and Tools
  2. Working Software over Comprehensive Documentation
  3. Customer Collaboration over Contract Negotiation
  4. Responding to Change over Following a Plan
Main Principles of Agile:
  • Deliver working software frequently in small increments.
  • Welcome changing requirements, even in late development.
  • Close collaboration between developers and customers.
  • Continuous improvement through feedback.
  • Maintain simplicity and technical excellence.
  • Self-organizing and motivated teams.
Software Development-এ Agile পদ্ধতির মূলনীতি: Agile হলো একটি iterative ও flexible Software Development পদ্ধতি, যা customer satisfaction, collaboration এবং continuous improvement-এর উপর গুরুত্ব দেয়।Agile Manifesto-এর চারটি মূল মূল্যবোধ:
  1. Individuals and Interactions over Processes and Tools
  2. Working Software over Comprehensive Documentation
  3. Customer Collaboration over Contract Negotiation
  4. Responding to Change over Following a Plan
Agile-এর প্রধান নীতিসমূহ:
  • ছোট ছোট অংশে দ্রুত Working Software প্রদান করা।
  • Development-এর শেষ পর্যায়েও requirement পরিবর্তন গ্রহণ করা।
  • Developer ও customer-এর মধ্যে ঘনিষ্ঠ collaboration বজায় রাখা।
  • Feedback-এর মাধ্যমে continuous improvement করা।
  • Simplicity ও technical excellence বজায় রাখা।
  • Self-organizing ও motivated team গঠন করা।
Disadvantages of Waterfall Model in Software Development:
Waterfall Model is a linear and sequential Software Development model where each phase must be completed before the next phase begins.
Main Disadvantages:
  1. No Flexibility: It is difficult to change requirements once the development process has started.
  2. Late Testing: Testing is done after development is completed, so errors are found late.
  3. No Working Software Until Late Stage: The customer cannot see the working product until the end.
  4. High Risk and Uncertainty: If requirements are not clearly defined at the beginning, the project may fail.
  5. Not Suitable for Complex Projects: It is not ideal for large or dynamic projects where requirements frequently change.
  6. Customer Involvement is Limited: Customers are involved mainly at the beginning and end.

Software Development-এ Waterfall Model-এর অসুবিধা:
Waterfall Model একটি linear ও sequential Software Development model, যেখানে একটি phase শেষ না হলে পরবর্তী phase শুরু হয় না।

প্রধান অসুবিধাসমূহ:

  1. Flexibility কম: Development শুরু হওয়ার পর requirement পরিবর্তন করা কঠিন।
  2. Late Testing: Testing শেষ পর্যায়ে হয়, ফলে error দেরিতে ধরা পড়ে।
  3. Working Software দেরিতে পাওয়া যায়: Customer শেষ পর্যায় পর্যন্ত সম্পূর্ণ product দেখতে পায় না।
  4. High Risk: শুরুতে requirement পরিষ্কার না হলে project ব্যর্থ হতে পারে।
  5. Complex Project-এর জন্য উপযুক্ত নয়: Requirement বারবার পরিবর্তিত হলে এই model কার্যকর নয়।
  6. Customer Involvement কম: Customer মূলত শুরু ও শেষে যুক্ত থাকে।
Types of Requirements in Software Development:

In Software Development, requirements are mainly of two types:

1) Functional Requirements:
Functional Requirements describe what the system should do. They define the functions and features of the system.
Examples:

  • User can register and login.
  • System will calculate total marks automatically.
  • User can search products by name.
  • Admin can generate reports.

2) Non-Functional Requirements:
Non-Functional Requirements describe how the system should perform. They define quality attributes and constraints.
Examples:

  • The system should respond within 2 seconds.
  • The system must support 1000 concurrent users.
  • Data must be secure and encrypted.
  • The system should be user-friendly.

Software Development-এ Requirement-এর প্রকারভেদ:
Software Development-এ প্রধানত ২ প্রকার Requirement পাওয়া যায়:

১) Functional Requirement:
Functional Requirement বলে system কী কাজ করবে। এটি system-এর feature ও function নির্ধারণ করে।
উদাহরণ:

  • User registration ও login করতে পারবে।
  • System স্বয়ংক্রিয়ভাবে total marks গণনা করবে।
  • User product search করতে পারবে।
  • Admin report তৈরি করতে পারবে।

২) Non-Functional Requirement:
Non-Functional Requirement বলে system কীভাবে কাজ করবে। এটি performance, security ও quality নির্ধারণ করে।
উদাহরণ:

  • System ২ সেকেন্ডের মধ্যে response দিবে।
  • System একসাথে ১০০০ user সমর্থন করবে।
  • Data secure ও encrypted থাকবে।
  • System user-friendly হতে হবে।
User Story and Product Backlog:
User Story:
A User Story is a short and simple description of a feature written from the end user’s perspective. It describes what the user wants and why.
Format of User Story:
“As a <type of user>, I want <goal> so that <benefit>.”Example:
As a student, I want to view my exam results so that I can track my performance.

Product Backlog:
Product Backlog is a prioritized list of all features, User Stories, bug fixes, and improvements required for a product. It is maintained by the Product Owner in Agile methodology.

Example of Product Backlog Items:

  • User registration feature
  • Login system
  • Payment integration
  • Bug fixes

User Story এবং Product Backlog:
User Story:
User Story হলো একটি সংক্ষিপ্ত বর্ণনা, যা user-এর দৃষ্টিকোণ থেকে লেখা হয়। এতে বলা হয় user কী চায় এবং কেন চায়।
User Story-এর সাধারণ গঠন:
“As a <user type>, I want <goal> so that <benefit>.”উদাহরণ:
As a student, I want to view my exam results so that I can track my performance.

Product Backlog:
Product Backlog হলো একটি prioritized তালিকা, যেখানে product-এর সব feature, User Story, bug fix এবং improvement উল্লেখ থাকে। এটি Agile পদ্ধতিতে Product Owner পরিচালনা করেন।

Product Backlog-এর উদাহরণ:

  • User registration feature
  • Login system
  • Payment integration
  • Bug fixes
Data Flow Diagram (DFD):
Data Flow Diagram (DFD) is a graphical representation of how data moves through a system. It shows how data is input, processed, stored, and output in an information system.
Main Symbols Used in DFD:
1) Process:
Represents processing of data.
Symbol: Circle or rounded rectangle.

2) Data Flow:
Represents the movement of data from one part of the system to another.
Symbol: Arrow (→).

3) Data Store:
Represents storage of data (file or database).
Symbol: Two parallel horizontal lines.

4) External Entity:
Represents a person, organization, or system outside the main system that interacts with it.
Symbol: Rectangle.

Data Flow Diagram (DFD):
Data Flow Diagram (DFD) হলো একটি graphical উপস্থাপন, যা দেখায় একটি system-এর মধ্যে data কীভাবে প্রবাহিত হয়। এটি দেখায় data কীভাবে input হয়, process হয়, store হয় এবং output হয়।

DFD-তে ব্যবহৃত প্রধান Symbols:

১) Process:
Data process বা রূপান্তর নির্দেশ করে।
Symbol: বৃত্ত (Circle) বা rounded rectangle।

২) Data Flow:
System-এর এক অংশ থেকে অন্য অংশে data-এর গতি নির্দেশ করে।
Symbol: Arrow (→)।

৩) Data Store:
Data সংরক্ষণের স্থান (file বা database) নির্দেশ করে।
Symbol: দুইটি সমান্তরাল সরলরেখা।

৪) External Entity:
System-এর বাইরের ব্যক্তি, সংস্থা বা system যা system-এর সাথে যোগাযোগ করে।
Symbol: Rectangle।

CSS (Cascading Style Sheets):CSS is a style sheet language used to control the design and layout of a web page. It is used to define colors, fonts, spacing, positioning, and responsiveness of HTML elements.

Ways to Use CSS in a Web Page:
There are three ways a Website Developer can use CSS in a web page:

1) Inline CSS:
CSS is written inside the HTML element using the style attribute.
Example:
<p style=”color: red;”>Hello</p>

2) Internal CSS:
CSS is written inside the <style> tag within the <head> section of the HTML file.
Example:
<style>
p { color: blue; }
</style>

3) External CSS:
CSS is written in a separate .css file and linked to the HTML file using the <link> tag.
Example:
<link rel=”stylesheet” href=”style.css”>

CSS (Cascading Style Sheets):
CSS হলো একটি style sheet language, যা web page-এর design ও layout নিয়ন্ত্রণ করে। এটি color, font, spacing, position এবং responsiveness নির্ধারণ করে।Website-এ CSS ব্যবহারের উপায়:
একজন Website Developer প্রধানত ৩ভাবে CSS ব্যবহার করতে পারেন:

১) Inline CSS:
HTML element-এর ভিতরে style attribute ব্যবহার করে CSS লেখা হয়।
উদাহরণ:
<p style=”color: red;”>Hello</p>

২) Internal CSS:
HTML file-এর <head> section-এর মধ্যে <style> tag ব্যবহার করে CSS লেখা হয়।
উদাহরণ:
<style>
p { color: blue; }
</style>

৩) External CSS:
আলাদা .css file-এ CSS লিখে <link> tag-এর মাধ্যমে HTML-এর সাথে যুক্ত করা হয়।
উদাহরণ:
<link rel=”stylesheet” href=”style.css”>

Definitions:
1) WWW (World Wide Web):
WWW is a system of interlinked web pages and resources accessed through the Internet using a web browser.

2) URL (Uniform Resource Locator):
URL is the address of a specific resource on the Internet that specifies its location.

3) HTTP (HyperText Transfer Protocol):
HTTP is a communication protocol used to transfer web pages from a web server to a web browser.

4) IP Address (Internet Protocol Address):
IP Address is a unique numerical address assigned to a device in a network to identify and communicate with it.

5) Router:
Router is a networking device that forwards data packets between different networks based on IP address.

সংজ্ঞাসমূহ:

১) WWW (World Wide Web):
WWW হলো Internet-এর মাধ্যমে web browser ব্যবহার করে প্রবেশযোগ্য আন্তঃসংযুক্ত web page ও resource-এর সমষ্টি।

২) URL (Uniform Resource Locator):
URL হলো Internet-এ কোনো নির্দিষ্ট resource-এর ঠিকানা।

৩) HTTP (HyperText Transfer Protocol):
HTTP হলো একটি communication protocol, যা web server থেকে web browser-এ web page স্থানান্তর করতে ব্যবহৃত হয়।

৪) IP Address (Internet Protocol Address):
IP Address হলো একটি অনন্য সংখ্যাসূচক ঠিকানা, যা network-এ একটি device-কে সনাক্ত করে।

৫) Router:
Router হলো একটি networking device, যা IP address-এর ভিত্তিতে এক network থেকে অন্য network-এ data packet প্রেরণ করে।

Advantages of Server-Side Scripting over Client-Side Scripting:

Server-Side Scripting is executed on the web server before the result is sent to the client’s browser. Examples: PHP, ASP.NET, JSP, Python.

Main Advantages:

  1. Better Security: Source code is hidden from users, reducing risk of hacking.
  2. Database Connectivity: Can easily connect to database for storing and retrieving data.
  3. Centralized Control: Processing happens on the server, so control remains with the server.
  4. Authentication & Authorization: Secure login and user access control can be implemented.
  5. Browser Independence: Works consistently across different browsers.
  6. Dynamic Content Generation: Can generate dynamic web pages based on user request.

Client-Side Scripting-এর তুলনায় Server-Side Scripting-এর সুবিধা:

Server-Side Scripting server-এ execute হয় এবং পরে ফলাফল browser-এ পাঠানো হয়। উদাহরণ: PHP, ASP.NET, JSP, Python।

প্রধান সুবিধাসমূহ:

  1. উচ্চ নিরাপত্তা: Source code user দেখতে পায় না, তাই hacking-এর ঝুঁকি কম।
  2. Database সংযোগ: সহজে database-এ data store ও retrieve করা যায়।
  3. Centralized Control: Processing server-এ হওয়ায় নিয়ন্ত্রণ server-এর হাতে থাকে।
  4. Authentication ও Authorization: Secure login ও user access control বাস্তবায়ন করা যায়।
  5. Browser Independence: ভিন্ন browser-এ একইভাবে কাজ করে।
  6. Dynamic Content: User request অনুযায়ী dynamic web page তৈরি করা যায়।
Types of Software Testing:
Software Testing is mainly of two types:
1) Manual Testing:
Testing performed manually by a tester without using automation tools.
2) Automated Testing:
Testing performed using automation tools and scripts.

Based on level, testing can also be divided into:

  • Unit Testing
  • Integration Testing
  • System Testing
  • Acceptance Testing

Boundary Value Analysis (BVA):
BVA is a Black Box Testing technique used to test boundary values of input ranges. Errors often occur at the minimum and maximum limits.

How it Works:
If input range is 1 to 100, test values will be:
0, 1, 2, 99, 100, 101

It checks values at and near the boundary limits.

Equivalence Partitioning (EP):
Equivalence Partitioning is a Black Box Testing technique where input data is divided into valid and invalid partitions (groups). One test case is selected from each partition.

How it Works:
If input range is 1 to 100:

  • Valid Partition: 1–100 (e.g., test 50)
  • Invalid Partition: less than 1 (e.g., test -5)
  • Invalid Partition: greater than 100 (e.g., test 150)

Exam Point:BVA tests boundary values, while Equivalence Partitioning divides inputs into groups and tests one value from each group.

Software Testing-এর প্রকারভেদ:

Software Testing প্রধানত ২ প্রকার:

১) Manual Testing:
Tester নিজে manually test করে, automation tool ব্যবহার করে না।

২) Automated Testing:
Automation tool ও script ব্যবহার করে testing করা হয়।

Level অনুযায়ী Testing-এর প্রকার:

  • Unit Testing
  • Integration Testing
  • System Testing
  • Acceptance Testing

Boundary Value Analysis (BVA):
BVA একটি Black Box Testing technique, যেখানে input range-এর boundary value পরীক্ষা করা হয়। সাধারণত error boundary-তে বেশি হয়।

কীভাবে কাজ করে:
যদি input range 1 থেকে 100 হয়, তাহলে test value হবে:
0, 1, 2, 99, 100, 101

অর্থাৎ minimum ও maximum-এর কাছাকাছি মান পরীক্ষা করা হয়।

Equivalence Partitioning (EP):
Equivalence Partitioning একটি Black Box Testing technique, যেখানে input-কে valid ও invalid group-এ ভাগ করা হয়। প্রতিটি group থেকে একটি করে test case নেওয়া হয়।

কীভাবে কাজ করে:
যদি input range 1 থেকে 100 হয়:

  • Valid Partition: 1–100 (যেমন 50)
  • Invalid Partition: 1-এর কম (যেমন -5)
  • Invalid Partition: 100-এর বেশি (যেমন 150)

You must subscribe & Login to view more.

Don’t have an account? Register

Or your subscription is under review by admin. Please message on WhatsApp / Telegram.

Leave a Comment

WhatsApp Telegram Messenger