Assignment 1
Assignment 1
Assignment # 01
Submitted By
Submitted To
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.
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