Class-11 COMPUTER SCIENCE
AND
ENTREPRENEURSHIP
Unit-1: Introduction to software development
Computer science department
KIPS COLLEGE HAFIZABAD
Introduction To Software Development
EXERCISE
Multiple Choice Questions
1. Primary purpose of the Software Development Life Cycle (SDLC) is to:
a) design websites
b) deliver high-quality software within time and cost estimates
c) manage database systems
d) create hardware components
Answer: b) SDLC is a structured process that ensures the development of high-quality software
that meets customer expectations, is delivered on time, and stays within budget.
2. A type of requirement specifying system performance:
a) Functional Requirements
b) Non-Functional Requirements
c) Technical Requirements
d) Operational Requirements
Answer: b) Non-functional requirements define how a system performs a function, including
performance, reliability, scalability, and usability.
3. Primary function of a software framework is to:
a) write code from scratch
b) provide a structured foundation with predefined components and architectures
c) manage hardware
d) perform manual testing
Answer: b) A software framework offers reusable components and design patterns, allowing
developers to build applications efficiently without reinventing common structures.
4. Software development model involving short cycles or sprints:
a) Waterfall Model
b) Agile Methodology
c) Lean Software Development
d) Scrum
Answer: b) Agile uses short, iterative cycles called sprints to develop software incrementally,
allowing flexibility and early feedback.
5. Role responsible for removing obstacles and facilitating Scrum practices:
a) Product Owner
b) Scrum Master
c) Development Team
d) Project Manager
1
Introduction To Software Development
Answer: b) The Scrum Master ensures the team follows Scrum practices and removes any
impediments to progress.
6. Option not considered as benefit of DevOps:
a) Improved collaboration
b) Enhanced quality
c) Increased project scope creep
d) Faster time-to-market
Answer: c) Scope creep is a challenge, not a benefit. DevOps aims to reduce such issues by
promoting better planning and collaboration.
7. Crucial aspect of comprehensive project planning:
a) Understanding the project scope and tasks
b) Deciding the project's colour scheme
c) Hiring a large development team
d) Ignoring potential risks
Answer: a) Understanding scope and tasks helps define objectives, allocate resources
effectively, and ensures successful project execution.
8. Factor that does not influence cost estimation of a software project:
a) Scope of the project
b) Technology stack
c) Number of meetings held
d) Operational costs
Answer: c) While meetings are necessary for communication, the number held does not
significantly affect overall project cost compared to scope and resources used.
9. The purpose of Use Case Diagrams is to:
a) document the system's architecture
b) identify and document the system's functional requirements
c) illustrate the database schema
d) define the system's user interface design
Answer: b) Use Case Diagrams show how users interact with a system, helping capture
functional requirements early in development.
SHORT QUESITONS
1. Differentiate between functional and non-functional requirements with the
help of an example.
Answer:
Aspect Functional Requirements Non-Functional Requirements
Describe what the system should do (specific Define how the system should
Definition behaviors or functions) perform (quality attributes)
2
Introduction To Software Development
Specify the functionality the system must Specify the criteria to judge the
Purpose offer operation of a system
Features, tasks, and data the system must Performance, usability, reliability,
Focus handle scalability, etc.
"The system shall allow users to log in using "The system shall respond to user
Example a username and password." input within 2 seconds."
2. Explain why the testing phase is important in software development and
provide two reasons for its significance.
Answer: The testing phase ensures software quality by identifying defects before
deployment.
Reason 1: It verifies that the software meets functional and non-functional
requirements, ensuring correct behavior.
Reason 2: It reduces risks of failures in production, enhancing reliability and user
trust.
3. Illustrate the concept of continuous integration in Agile methodology and
discuss its importance in software development.
Answer: Continuous Integration (CI) in Agile involves developer’s frequently
integrating code into a shared repository, automatically tested to detect issues early.
Example: Developers commit code daily, triggering automated tests via tools like
Jenkins.
Importance:
• Early Bug Detection: CI catches errors quickly, reducing debugging costs.
• Improved Collaboration: Frequent integration ensures team alignment,
enhancing Agile’s iterative development.
4. Evaluate the main steps involved in risk assessment and management, and
assess their importance in software projects.
Answer:
Steps:
1. Risk Identification: List potential risks (e.g., scope creep, technical debt).
2. Risk Analysis: Assess likelihood and impact of risks.
3. Risk Mitigation: Plan and implement strategies to reduce risks.
Importance: These steps prevent project delays and cost overruns by proactively
addressing uncertainties, ensuring successful delivery within time and budget constraints.
3
Introduction To Software Development
5. Explain the purpose of a use case diagram in software development.
Answer: A use case diagram visually represents system functionality by showing
interactions between users (actors) and the system. Purpose: It clarifies system
requirements, helps stakeholders understand functionality, and guides developers in
designing features to meet user needs.
6. Compare and contrast a sequence diagram with an activity diagram,
highlighting key differences.
Aspect Sequence Diagram Activity Diagram
Shows how objects interact over Describes the workflow or sequence of
Purpose time activities
Time-based message exchange Flow of control between activities or
Focus between objects actions
Uses lifelines and messages Uses activity nodes, decision points,
Representation (arrows) and control flows
Time Shows time clearly from top to shows logical steps, not exact time
Orientation bottom
Useful for modeling object Useful for modeling business
Use Case interactions in a scenario processes or algorithm flows
7. Describe the factory pattern and explain how it differs from directly creating
objects with an example.
Answer: The Factory Pattern is a design pattern that creates objects via a factory
class, hiding creation logic.
Example: A Vehicle Factory creates Car or Bike objects based on input type.
Aspect Direct Object Creation Factory Pattern
Idea Like making the product Like ordering from a workshop,
yourself, you gather parts and you ask for a product and the
build it on your own factory builds it
Responsibility You (the client) are responsible The factory handles the details;
for knowing how to make each you just request what you need
product
Flexibility Low – changing products means High – the factory can change how
changing how you build them it builds products without affecting
every time your request
Ease of Use Requires knowledge of how Simple – you just say what you
each specific object is made want, and the factory delivers it
4
Introduction To Software Development
When to Use When you have only one or two When you have many types of
simple objects to create objects or expect changes in how
they’re made
Example You directly create a Car by You ask a Vehicle Factory to give
calling its constructor you a "car", and it returns the right
object
LONG QUESITONS
1. Design a flowchart for a user registration process in a software application.
Outline its key steps.
Answer: A flowchart for user registration in a software application should visually
represent the steps a user takes from initial interaction to a fully registered account. It
should include steps like entering registration details, confirming the account, and
potentially a final step involving an authentication method.
Here's a possible flowchart:
1. Start: The user initiates the registration process.
2. Registration Form: The user is presented with a registration form.
3. User Input: The user enters their details (username, email, password, etc.).
5
Introduction To Software Development
4. Form Validation: The application validates the entered data for correctness and
adherence to any defined rules.
5. Validation Successful: If validation is successful, proceed to the next step.
6. Validation Failed: If validation fails, return to the registration form for correction.
7. Account Creation: The application creates a new user account in the database using
the validated details.
8. Account Activation: The application may send an activation email or SMS to the
user's email or phone number.
9. User Confirms Account: The user follows the link or enters the code provided to
confirm their account.
10. Successful Confirmation: If the confirmation is successful, the user's account is
activated.
11. Authentication: The user logs in to their new account using their chosen
credentials.
12. End: The user has successfully registered and is able to access the application.
2. Imagine you are managing a project to develop a simple mobile
application. Describe how you would use the Agile Methodology to handle
this project.
Agile Methodology is a flexible and adaptive approach to software development that is
well-suited for managing a project like developing a simple mobile application. Instead
of planning the entire project upfront, Agile breaks the work into small, manageable
pieces delivered in short cycles known as iterations or sprints.
6
Introduction To Software Development
How Agile would be applied:
Iterative Development with Sprints
In Agile methodology, the entire mobile application development project is divided
into smaller, manageable time-boxed cycles called sprints, usually lasting between
one to four weeks. Each sprint focuses on developing and delivering a small,
functional part of the application, such as user registration, login, profile management,
or browsing items. By breaking the project into these smaller chunks, the team can
produce working software frequently, which reduces the risk of large-scale failures
and allows for early identification of issues. This approach ensures that at the end of
every sprint, a potentially shippable product increment is available.
Continuous Integration
Throughout the project, developers regularly integrate their individual code changes
into a shared central repository. Continuous integration helps in detecting conflicts
and bugs early by automatically building and testing the application whenever new
code is added. This process minimizes integration problems and ensures that the app
remains stable and functional as new features are developed. For a mobile application,
this can also include running automated tests on different devices and platforms to
maintain compatibility.
Test-Driven Development (TDD)
Agile promotes writing automated tests before actual coding begins. In the context of
the mobile app, this means writing test cases for each feature, such as input validation
for registration forms or correct display of data in the UI, before implementing the
functionality. TDD ensures that the app behaves as expected and reduces the chances
of bugs creeping into the code base. It also makes future refactoring safer because
existing tests confirm that changes haven’t broken the app.
Pair Programming
Agile teams often use pair programming as a technique where two developers
collaborate at one workstation. One developer writes the code while the other
continuously reviews it in real-time, providing instant feedback and suggestions. This
collaboration improves code quality, helps spread knowledge across team members,
and facilitates learning. For example, during mobile app development, pair
programming can help quickly solve platform-specific issues or implement complex
features more effectively.
Regular Feedback and Adaptation
At the end of each sprint, the team presents the completed features to stakeholders or
potential users. This review session is critical for gathering feedback on the current
functionality and overall user experience. Using this feedback, the team reprioritizes
and adjusts the product backlog for the next sprint, accommodating any changes in
requirements or new ideas. This constant feedback loop ensures the mobile
application evolves based on real user needs and market trends, improving customer
satisfaction and reducing wasted effort on unwanted features.
7
Introduction To Software Development
Collaborative Team Environment
Agile encourages active communication and collaboration among all team members,
including developers, testers, designers, and product owners. Daily stand-up meetings
(daily scrums) help track progress, identify obstacles, and align the team’s efforts.
This transparent and collaborative environment helps maintain momentum and
quickly resolve issues that arise during the development of the mobile app.
3. Consider an online banking system. Create a Use Case Diagram to show the
interactions between customers, bank staff, and the system.
8
Introduction To Software Development
4. You are developing a food delivery application. Create a Sequence Diagram to show
the process of placing an order, from the customer selecting items to the delivery of the
order.
5. Discuss the importance of software development tools in the software
development process. Explain the role of language editors, translators, and
debuggers in creating and maintaining software. b) Provide examples of each tool
and describe how they contribute to the efficiency and accuracy of software
development.
Importance of Software Development Tools in the Software Development Process
Software development tools are essential programs or applications that assist developers
throughout various stages of software creation. These tools help in writing, editing,
testing, debugging, and managing code to ensure that the software is functional, efficient,
and reliable. Without these tools, software development would be significantly slower,
more error-prone, and less manageable.
Role of Language Editors, Translators, and Debuggers
Language Editors
Language editors, also known as code editors, are fundamental tools used by developers
to write and modify source code in various programming languages. These editors often
9
Introduction To Software Development
provide features like syntax highlighting, code completion, and error detection, which
help improve coding efficiency and reduce mistakes early in development. Examples
include Notepad++, which is a simple yet powerful editor, and Visual Studio Code (VS
Code), a widely used editor with extensive extensions for different programming
languages and tools.
Translators
Translators convert code written in high-level programming languages into machine-
readable code. This is crucial because computers only understand binary machine code.
There are two main types of translators:
Interpreters, which translate code line-by-line during execution. For example, the
Python interpreter reads and executes Python code dynamically.
Compilers, which translate the entire source code at once into machine code
before execution, such as GCC for C and C++ programs.
Translators enable developers to write code in human-readable languages while ensuring
the software can run on computers.
Debuggers
Debuggers are tools designed to help developers find and fix bugs or errors in their code.
They allow developers to run the program step-by-step, inspect variables, and identify
where the code is not functioning as expected. For instance, GDB (GNU Debugger) is
commonly used for C/C++ debugging, while Visual Studio Debugger is integrated into
the Visual Studio IDE for various languages. Debuggers play a critical role in improving
software reliability by helping developers systematically troubleshoot issues.
Examples and Contribution to Efficiency and Accuracy
Language Editors like VS Code enhance productivity by providing intelligent
code suggestions and error highlighting, which help developers write correct code
faster and avoid syntax errors.
Translators such as GCC and the Python interpreter ensure that code can be
executed on hardware by translating human-readable code into machine
instructions accurately. This translation is vital for the software to function as
intended.
Debuggers like GDB allow developers to pinpoint the exact location and cause of
errors, significantly reducing the time spent on troubleshooting and increasing the
quality of the final software product.
10
Introduction To Software Development
Together, these tools streamline the software development lifecycle, reducing manual
errors, enabling quick feedback, and facilitating collaboration among development teams,
ultimately leading to more efficient and accurate software creation.
ADDITIONAL MULTIPLE CHOICE QUESTIONS
1. What is the primary goal of software development?
a) To create hardware components b) To design, develop, and maintain software
systems
c) To manage network infrastructure d) To perform data analysis only
Answer: b)
Explanation: Software development involves designing, coding, and maintaining
software to fulfill user or business needs.
2. Which phase of the SDLC involves gathering user requirements?
a) Design b) Implementation
c) Requirements Analysis d) Testing
Answer: c)
Explanation: This phase identifies user needs to define what the software must
accomplish.
3. What is a framework in software development?
a) A programming language b) A pre-built structure providing reusable
components
c) A hardware specification d) A testing tool
Answer: b)
Explanation: Frameworks provide standard, reusable code and components to streamline
development.
4 Which SDLC stage involves writing the actual code?
a) Design b) Implementation
c) Testing d) Maintenance
Answer: b)
Explanation: Implementation is the coding phase where the design is translated into
executable code.
5. Which software development methodology emphasizes iterative development?
a) Waterfall b) Agile
c) V-Model d) Spiral
Answer: b)
11
Introduction To Software Development
Explanation: Agile allows continuous improvement and feedback through short
iterations called sprints.
6. What is the primary focus of a software process model?
a) Hardware configuration b) Defining the steps to develop software c) Network
optimization d) Data storage
Answer: b)
Explanation: Software process models provide a structured approach to software
development, including phases and activities.
7. In the Waterfall model, when can you move to the next phase?
a) After partial completion b) Only after current phase is fully completed c) Anytime
d) After testing
Answer: b)
Explanation: The Waterfall model is linear; each phase must be completed before
moving to the next.
8. Which Agile principle emphasizes customer collaboration?
a) Continuous delivery b) Customer collaboration over contract negotiation c)
Following a strict plan d) Avoiding changes
Answer: b)
Explanation: Agile values customer interaction over rigid contract terms for better
software alignment with user needs.
9. What is a key component of project planning in software development?
a) Hardware installation b) Defining scope and objectives c) Writing user manuals
d) Hardware testing
Answer: b)
Explanation: Project planning includes setting goals, defining scope, timelines, and
assigning resources.
10. Which diagra is used to represent the flow of activities in a system?
a) Class Diagram b) Use Case Diagram c) Activity Diagram d) Sequence Diagram
Answer: c)
Explanation: Activity diagrams illustrate workflows or business processes in a system.
11. What does a UML Use Case Diagram primarily depict?
a) Object interactions b) System functionalities from a user’s perspective c) Class
relationships d) Data flow
Answer: b)
Explanation: Use Case Diagrams illustrate how users interact with system features,
focusing on user goals.
12
Introduction To Software Development
12. Which UML diaram shows the structure of a system’s classes?
a) Sequence Diagram b) Class Diagram c) Activity Diagram d) Use Case Diagram
Answer: b)
Explanation: Class Diagrams show the static structure including classes, attributes,
methods, and relationships.
13. What does a Sequenc Diagram focus on?
a) Class attributes b) Object interactions over time c) System workflows d) User
roles
Answer: b)
Explanation: Sequence Diagrams show time-ordered communication between objects,
helpful in modeling logic.
14. Which design patten ensures only one instance of a class is created?
a) Factory Pattern b) Singleton Pattern c) Observer Pattern d) Strategy Pattern
Answer: b)
Explanation: The Singleton Pattern restricts class instantiation to a single object and
provides a global access point.
15. What is the purpose of unit testing?
a) Test entire system b) Test individual components c) Test user acceptance d) Test
integration
Answer: b)
Explanation: Unit testing verifies that small pieces of code, like functions or methods,
perform as expected in isolation.
16. Which tool is used to identify ad fix errors in code?
a) Compiler b) Debugger c) Text Editor d) Interpreter
Answer: b)
Explanation: A debugger helps find and correct errors in the code during development or
execution.
17. Which IDE is specificall designed for Python development?
a) Visual Studio b) PyCharm c) Eclipse d) NetBeans
Answer: b)
Explanation: PyCharm offers features like intelligent code completion, debugging, and
support specifically for Python.
18. What is an example of an online computing platform?
a) GitHub b) Visual Studio Code c) Google Colab d) Notepad++
Answer: c)
Explanation: Google Colab allows users to run Python code in the cloud without
installation, ideal for collaborative coding.
13
Introduction To Software Development
19. Which is a common source code repository platform?
a) Docker b) GitHub c) Jenkins d) Kubernetes
Answer: b)
Explanation: GitHub hosts Git repositories and facilitates version control and team
collaboration.
20. Which SDLC phase esures the software meets user expectations?
a) Design b) Testing c) Maintenance d) Requirements Analysis
Answer: b)
Explanation: The testing phase evaluates if the software behaves as intended and meets
user needs.
21. What is a disadvantage of the Waterfall model?
a) Supports iterative development b) Inflexible to changes c) Promotes frequent
testing d) Allows parallel development
Answer: b)
Explanation: The Waterfall model has a rigid phase structure, making it hard to
implement changes once a phase is complete.
22. In Agile, what is a sprint?
a) Long-term project phase b) Short, fixed time for development c) Testing phase d)
Documentation phase
Answer: b)
Explanation: A sprint is a time-boxed iteration (typically 1–4 weeks) during which a
usable product increment is developed.
23. What is a key aspect of risk assessmet in project management?
a) Writing code b) Identifying project threats c) Creating user manuals d)
Deploying hardware
Answer: b)
Explanation: Risk assessment focuses on identifying, analyzing, and mitigating risks that
could affect project success.
24. Which UML diagram is bet for modeling user interactions with the system?
a) Class Diagram b) Use Case Diagram c) Sequence Diagram d) Activity Diagram
Answer: b)
Explanation: Use Case Diagrams illustrate how external actors (users) interact with the
system’s functionalities.
25. What does the Factory Pattrn do?
a) Ensures one class instance b) Creates objects without specifying class c) Observes
object changes d) Defines algorithm families
Answer: b)
14
Introduction To Software Development
Explanation: The Factory Pattern encapsulates object creation, allowing flexibility and
easy extension without altering client code.
26. Which testing type verifies the ntegration of multiple components?
a) Unit Testing b) Integration Testing c) System Testing d) Acceptance Testing
Answer: b)
Explanation: Integration testing checks that different modules or services work together
as expected.
27. Which tool translaes high-level code into machine code?
a) Debugger b) Compiler c) Text Editor d) Interpreter
Answer: b)
Explanation: A compiler converts high-level language code into machine code for
execution.
28. Which IDE supports muliple programming languages?
a) PyCharm b) Visual Studio c) IntelliJ IDEA d) Android Studio
Answer: b)
Explanation: Visual Studio supports various languages like C#, Python, JavaScript, and
more, making it versatile for developers.
29. What is an example of an offline cmputing platform?
a) Google Colab b) Jupyter Notebook c) AWS Lambda d) Microsoft Azure
Answer: b)
Explanation: Jupyter Notebook can be installed and run locally without requiring an
internet connection.
30. What is the purposeof a source code repository?
a) Execute code b) Store and manage code versions c) Debug code d) Compile code
Answer: b)
Explanation: Repositories like GitHub store code and maintain version history to
support collaboration and tracking.
31. Which SDLC phase involves defining system architecture?
a) Requirements Analysis b) Design c) Implementation d) Testing
Answer: b)
Explanation: The Design phase outlines the system’s structure, architecture,
components, and interfaces.
32. What is a characteristic of the Agile model?
a) Fixed requirements b) Iterative development c) Sequential phases d) No customer
involvement
Answer: b)
15
Introduction To Software Development
Explanation: Agile emphasizes flexibility and frequent iterations to adapt to changes and
deliver functional software quickly.
33. What does quality assuance in project management ensure?
a) Hardware performance b) Software meets specified standards c) Network security
d) Data storage efficiency
Answer: b)
Explanation: Quality assurance ensures the software product adheres to defined
standards and meets quality expectations.
34. Which diagramshows the order of messages between objects?
a) Class Diagram b) Sequence Diagram c) Use Case Diagram d) Activity Diagram
Answer: b)
Explanation: Sequence Diagrams visualize how objects interact in a time-ordered
sequence to complete a process.
35. Which design pattern allows objects to be notified of state changes?
a) Singleton Pattern b) Factory Pattern c) Observer Pattern d) Strategy Pattern
Answer: c)
Explanation: The Observer Pattern enables an object (subject) to notify other objects
(observers) when its state changes.
36. What is the purpose ofsystem testing?
a) Test individual functions b) Test the entire system c) Test user acceptance d) Test
integration
Answer: b)
Explanation: System testing validates that the complete integrated system meets the
specified requirements.
37. Which tool is used to write and edit code?
a) Compiler b) Debugger c) Text Editor d) Interpreter
Answer: c)
Explanation: A text editor (e.g., VS Code, Notepad++) is used to create and edit source
code files.
38. Which IDE is best suited for # development?
a) PyCharm b) Visual Studio c) IntelliJ IDEA d) Eclipse
Answer: b)
Explanation: Visual Studio provides extensive support for C# and .NET development,
including debugging and GUI design tools.
39. Which platform is both online and offline?
a) Google Colab b) Jupyter Notebook c) AWS Cloud9 d) Azure Notebooks
16
Introduction To Software Development
Answer: b)
Explanation: Jupyter Notebook can be installed and run locally (offline) or used via
cloud platforms (online).
40. What does Git provide in a source code repository?
a) Code execution b) Version control c) Code compilation d) Code debugging
Answer: b)
Explanation: Git is a version control system that tracks changes in source code,
supporting collaboration and rollback.
41. Which SDLC phase involves fixing bugs after deployment?
a) Implementation b) Testing c) Maintenance d) Design
Answer: c)
Explanation: Maintenance involves updating software, fixing bugs, and enhancing
functionality after release.
42. What is a key feature of the Spiral model?
a) Sequential phases b) Risk analysis at each iteration c) No testing phase d) Fixed
requirements
Answer: b)
Explanation: The Spiral model focuses on iterative risk assessment and mitigation
during development cycles.
43. What is a key deliverable of project planning?
a) Source code b) Project schedule c) Hardware specification d) User manual
Answer: b)
Explanation: A project schedule defines timelines, milestones, and resource allocation
for the project.
44. Which UML diagram is used to model workflows?
a) Class Diagram b) Sequence Diagram c) Activity Diagram d) Use Case Diagram
Answer: c)
Explanation: Activity Diagrams represent the flow of activities or business processes in
a system.
45. Which design pattern allows switching algorithms at runtime?
a) Singleton Pattern b) Factory Pattern c) Observer Pattern d) Strategy Pattern
Answer: d)
Explanation: The Strategy Pattern enables choosing different algorithms dynamically at
runtime.
46. What is acceptance testing?
a) Testing individual components b) Testing system integration c) Testing to ensure
17
Introduction To Software Development
user requirements are met d) Testing the entire system
Answer: c)
Explanation: Acceptance testing verifies that the software fulfills user needs and is ready
for deployment.
47. Which tool converts code from one language to another?
a) Compiler b) Interpreter c) Translator d) Debugger
Answer: c)
Explanation: Translators convert source code written in one programming language into
another.
48. Which IDE is known for Java development?
a) Visual Studio b) PyCharm c) IntelliJ IDEA d) Notepad++
Answer: c)
Explanation: IntelliJ IDEA is popular for Java due to its advanced code analysis and
refactoring tools.
49. What is a benefit of using a source code repository?
a) Faster code execution b) Collaboration and version tracking c) Automatic code
debugging d) Code compilation
Answer: b)
Explanation: Repositories facilitate teamwork by managing code versions and changes.
50. Which SDLC phase involves creating prototypes?
a) Requirements Analysis b) Design c) Implementation d) Testing
Answer: b)
Explanation: Prototyping during Design helps visualize and validate system
requirements before coding.
ADDITIONAL SHORT QUESTIONS
1. What is SDLC?
SDLC (Software Development Life Cycle) is a structured approach to developing
software, guiding the process from planning and requirements to deployment and
maintenance. It ensures that software is built systematically and meets user expectations.
Example: A bank app goes through SDLC phases like planning, designing, coding,
testing, and deployment to ensure it functions correctly and securely.
2. What is the purpose of requirement analysis?
It identifies and documents what the users need from the software, forming the
foundation for design and development. Without clear requirements, the final product
may not satisfy the end-users.
18
Introduction To Software Development
Example: An e-commerce site requiring multiple payment options is identified during
requirement analysis.
3. Define Agile methodology.
Agile is an iterative software development approach that emphasizes flexibility, customer
feedback, and small, incremental releases. It promotes collaboration and rapid delivery.
Example: A team releases updates to a food delivery app every two weeks based on
customer feedback.
4. What does a use case diagram represent?
A use case diagram visualizes how users (actors) interact with the system’s
functionalities, helping to define the system’s scope.
Example: For an ATM, use cases might include "Withdraw Cash", "Check Balance", and
"Change PIN".
5. Define a class diagram.
A class diagram represents the structure of a system by showing its classes, attributes,
methods, and relationships between them.
Example: In a School System, classes like "Student", "Teacher", and "Course" may be
shown with their attributes and connections.
6. What is risk assessment in project management?
Risk assessment involves identifying and analyzing potential project issues to minimize
impact. It helps teams plan for uncertainties.
Example: Recognizing that vendor delays could affect a project’s delivery timeline.
7. What does a sequence diagram show?
It models the sequence of interactions between system components or objects over time
through message passing.
Example: A sequence diagram for online banking might show the interaction between the
user, login system, and account database during login.
8. What is a singleton pattern?
The singleton pattern restricts a class to a single instance and provides a global point of
access to it. It’s used when exactly one object is needed to coordinate actions.
Example: A logging system where all parts of the application use the same logger
instance.
9. Explain unit testing.
Unit testing involves testing individual components or functions of software in isolation
to ensure they work correctly.
Example: Verifying that a "calculateTotal()" function in a shopping cart works as
expected.
19
Introduction To Software Development
10. What is a repository?
A repository is a storage location for software code and its versions, supporting
collaboration and version control.
Example: Teams use GitHub repositories to manage changes in code during
development.
11. What is system testing?
System testing verifies that the complete integrated software system meets the specified
requirements.
Example: Testing all features of a hospital management system to ensure they work
together properly.
12. What is a compiler?
A compiler translates code from a high-level programming language into machine code
before execution, allowing the program to run on hardware.
Example: A C++ compiler turns source code (.cpp files) into executable files (.exe).
13. Give an example of a debugging tool.
GDB is a popular debugging tool used for C/C++ programs to help developers trace and
fix bugs.
Example: Using GDB to find where a segmentation fault occurs in a C program.
14. What is the purpose of a design pattern?
Design patterns provide general reusable solutions to common software design problems.
They make code more maintainable and scalable.
Example: The Observer pattern allows a news system to notify subscribers when new
articles are published.
15. What is a factory pattern?
The factory pattern provides an interface for creating objects without exposing the
creation logic.
Example: A vehicle factory that creates instances of Car, Bike, or Truck based on user
input.
16. What is the use of an IDE?
An IDE (Integrated Development Environment) combines tools like a code editor,
compiler, and debugger into one platform, enhancing productivity.
Example: IntelliJ IDEA helps Java developers write, run, and debug code efficiently.
17. What is integration testing?
Integration testing checks how different modules or services work together, identifying
issues in their interactions.
20
Introduction To Software Development
Example: Ensuring that the login module passes correct data to the dashboard module in
a web app.
18. Define project planning.
Project planning outlines the project’s scope, tasks, schedule, and resource allocation. It
ensures goals are met on time and within budget.
Example: Preparing a development timeline and assigning roles for a 6-month website
project.
19. What is the activity diagram used for?
An activity diagram represents workflows or business processes, showing the flow from
one activity to another.
Example: An online order activity diagram may include “Select Item”, “Add to Cart”,
“Make Payment”, and “Receive Order”.
20. Define observer pattern.
The observer pattern allows objects (observers) to subscribe and be automatically
updated when another object (subject) changes state.
Example: In a weather app, all UI components are updated when the weather service
updates data.
21. What is acceptance testing?
Acceptance testing is the final phase where the client or end-user verifies that the
software meets their requirements before deployment.
Example: A business owner tests an invoicing app to ensure it performs as agreed.
22. What is the main use of GitHub?
GitHub is a platform for hosting and managing code using version control (Git), enabling
collaborative development and tracking changes.
Example: Multiple developers work on different features of a web app through separate
branches on GitHub.
23. What is a language editor?
A language editor is a tool that assists in writing, formatting, and managing code in a
particular language.
Example: Visual Studio Code provides syntax highlighting, auto-completion, and
debugging for languages like JavaScript and Python.
24. Why is cost estimation important?
Cost estimation helps project managers allocate resources, budget, and time efficiently. It
avoids overspending and unrealistic timelines.
Example: Estimating costs for a mobile app includes salaries, tools, licenses, and testing
resources.
21
Introduction To Software Development
25. What is strategy pattern?
The strategy pattern enables a class to choose an algorithm at runtime, improving
flexibility and maintainability.
Example: A payment system selecting different payment gateways (PayPal, Stripe, Cash)
based on user preference.
26. What is difference between compiler and interpreter?
Feature Compiler Interpreter
Translation Translates the entire program at Translates and executes line by
Method once line
Execution Speed Faster after compilation Slower due to real-time
translation
Error Handling Shows all errors after full Stops at the first error
compilation encountered
Output Generates an executable file Does not create a separate
(e.g., .exe) executable file
27. What do you know about model-view-controller (MVC)?
Model-View-Controller (MVC) is a software design pattern that separates an
application into three main components:
Model: Manages the data and business logic (e.g., database operations).
View: Handles the user interface and display (e.g., HTML/CSS).
Controller: Processes user input and updates the Model and View.
Example: In a blog app, the Model manages posts, the View displays them, and the
Controller handles creating or editing posts.
22