0% found this document useful (0 votes)
34 views

SE Assignment 1

..

Uploaded by

Saif Ijaz
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views

SE Assignment 1

..

Uploaded by

Saif Ijaz
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

UNIVERSITY OF ENGINEERING

AND TECHNOLOGY PESHAWAR

NAME
USAMA

REGISTRATION NUMBER
22PWDSC0048

DEPARTMENT DATA SCIENCE (5th


SEMESTER)

SUBJECT SOFTWARE
ENGINEERING

ASSIGNMENT NO # 01

SUBMITTED TO MS. KANWAL


ANEEQ

SUBMISSION DATE 8-NOV-


2024
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?

 Generic software products are developed for a broad audience, aiming to meet the common needs of a large market.
Examples include word processors, database management systems, and operating systems. Developers design these
products based on market research and general requirements rather than specific user needs.
 Custom software development, on the other hand, is tailored to the specific needs of an individual client or
organization. Developers work closely with the client to understand their unique requirements and create a software
solution that fits those specific needs.

In Practice for Users of Generic Software Products:

o Users may face limitations since generic software may not cover specific requirements or workflows unique to
their industry or organization.
o Customization options might be available, but they usually only address a subset of possible user needs.
o Support might also be less personalized since it’s designed for a larger audience rather than a single client.

==========================================================================================

QUESTION #2: Apart from the challenges of heterogeneity, business and social
change, and trust and security, identify other problems and challenges that software
engineering is likely to face in the 21st century (Hint: think about the environment).

Beyond heterogeneity, business and social change, and trust/security, other challenges include:

 Environmental Impact: Developing software that minimizes power consumption and is optimized for energy efficiency.
Data centers and cloud infrastructure have a significant environmental footprint, so there’s a growing need for "green"
software practices.
 Sustainability: Ensuring software solutions can be maintained and updated over time without excessive cost or waste.
This includes sustainable coding practices and software lifecycle management.
 Rapid Technological Evolution: With emerging technologies like AI, quantum computing, and blockchain, software
engineering must adapt to incorporate these technologies effectively.
 Ethical Concerns: With the rise of AI and data-driven software, ethical issues such as privacy, bias in algorithms, and
accountability in decision-making have become prominent challenges.

=========================================================================================

QUESTION :3 Describe the main activities in the software design process and the
outputs of these activities. Using a diagram, show possible relationships between the
outputs of these Activities.

1. Requirement Analysis: Understanding and documenting the software's requirements.


o Output: Requirements document or specifications.
2. System Design: Breaking down the system into high-level components and defining how they interact.
o Output: System architecture diagram.
3. Detailed Design: Defining each component’s internal structure in detail.
o Output: Detailed component designs and specifications.
4. Interface Design: Designing the user interface and how users will interact with the system.
o Output: Wireframes or user interface mockups.
5. Database Design: Structuring and organizing data storage.
o Output: Database schema.

Diagram of Relationships Between Outputs:

A typical design process would involve outputs feeding into each other. For example:

 The requirements document informs the system architecture.


 The architecture diagram helps in the creation of detailed component designs.
 The interface design and database schema depend on and refine the system and detailed designs.

=========================================================================================

QUESTION :4: Explain why Boehm’s spiral model is an adaptable model that can
support both change avoidance and change tolerance activities. In practice, this model
has not been widely used. Suggest why this might be the case.

Boehm’s Spiral Model

Boehm’s Spiral Model is adaptable because it’s an iterative approach, allowing for change at each phase. It combines elements
of both waterfall and prototyping models, with a focus on risk assessment. The model involves repeated cycles of development,
planning, risk analysis, engineering, and evaluation, which enables:

 Change Avoidance: Proactively addressing risks by identifying and mitigating them early in the process.
 Change Tolerance: The iterative nature means that if changes are needed later on, they can be incorporated in the next
iteration.

However, despite these benefits, the model isn’t widely used in practice because:

 Complexity: It requires significant expertise to implement, especially in assessing risks effectively at each stage.
 Time-Intensive: Each spiral phase can be time-consuming, making it less suitable for projects with tight timelines.
 Higher Costs: The need for ongoing evaluations and planning increases costs, which may be a barrier for smaller
projects or those with limited budgets.

==========================================================================================

You might also like