Page |1
HAZARA UNIVERSITY MANSEHRA
Assignment # 01
Submitted By
Name: Mushtaq Ahmad
R.No: 301-221046
Semester: Fall 2024
Class:BSCS-V(A)
Subject: Database and management system
Dept. of CS & IT
Submitted To
Name: Ma’am Romana
Designation: LECTURER
Dept. of Computer Science and Information Technology
Submitted on Date: 21-10-2024
Pa ge |2
Question # 1:
What is the most important difference between generic software product development and
custom software development? What might this mean in practice for users of generic software
products?
Answer:
Differenece between Generic software product development and
custom software development:
Generic software product Custom software development:
development:
This type of software is built for broad This type of software is built for
range of users with general needs. specific/particular organization,
It is limited to customize. Bussiness or particular users.
Generally scalable to a broad range of It is highly customizable to specific
user. needs
It required standard maintenance and Scalability limited to specific needs.
support. It required specific maintenance and
It is less expensive. support.
It is more reliable More expensive.
Example: Less reliable.
Ms office, Google sheets Example:
Lms, Hospital management
system(HMS)
Users of generic software products often face significant challenges due to the lack of tailored
features. Many find that these solutions do not adequately address their specific operational
processes, leading to frustration and inefficiencies. Over half of enterprise users report that their
generic software is only "somewhat effective" or worse in managing industry-specific tasks.
Pa ge |3
Question # 2:
Explain why the fundamental software engineering principles of process, dependability,
requirements management, and reuse are relevant to all types of software systems?
Answer:
The fundamental software engineering principles of process, dependability, requirements
management, and reuse are crucial for all software systems because they ensure:
Process:
“A well-defined process provides a structured approach to development, reducing errors and
improving efficiency across all types of software”.
Having a clear process means fewer mistakes and smoother work flow.
Example:
Imagine a bakery that has a specific recipe for making bread ,if the bakers follows the recipe step by
step they will produce consistent and tasty bread every time.
Similarly a software team that follows a process can create reliable softrware.
Dependability:
All software must be reliable and secure; dependable systems maintain user trust and minimize
failures, essential for critical applications like healthcare and finance.
Example:
Think about an online banking app. If users can’t access their accounts or if their information isn’t
secure, they’ll lose trust in the bank. Dependable software ensures that users can manage their
money safely and easily.
Requirements Management:
Clear management of requirements helps ensure that the final product meets user needs and
expectations, preventing costly changes later.
Example:
Consider building a new school playground. If the builders don’t talk to the teachers and kids about
what they want (like swings or slides), they might end up with something nobody likes. In software
development, managing requirements helps avoid similar situations.
Reuse:
Reusing components enhances efficiency and reduces development time, allowing teams to focus on
Pa ge |4
new features rather than reinventing existing solutions.
Example:
Think of LEGO blocks. If you have many different sets, you can mix and match pieces to build
something new without starting from zero each time. Similarly, in software development, reusing
code helps teams build better products faster.