0% found this document useful (0 votes)
7 views9 pages

Sheet 1 Solved

The document discusses various aspects of software engineering, emphasizing the importance of documentation, maintainability, and ethical considerations. It highlights differences between generic and custom software development, the cost benefits of software engineering methods, and the relevance of fundamental principles across all software types. Additionally, it addresses the implications of noncertified individuals in the field and societal challenges posed by emerging technologies like drones.

Uploaded by

fadyalamir30
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views9 pages

Sheet 1 Solved

The document discusses various aspects of software engineering, emphasizing the importance of documentation, maintainability, and ethical considerations. It highlights differences between generic and custom software development, the cost benefits of software engineering methods, and the relevance of fundamental principles across all software types. Additionally, it addresses the implications of noncertified individuals in the field and societal challenges posed by emerging technologies like drones.

Uploaded by

fadyalamir30
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

Sheet_1

Name : Fady Alamir

ID: 220210016
1. Explain why professional software that
is developed for a customer is not simply
the programs that have been developed
and delivered.
Answer: Professional software isn’t just the
programs created and delivered; it also
includes all associated documentation,
libraries, support resources, and configuration
data. This is because maintainability is key—
other teams may need to work on the software
after the original developers have moved on.

2. 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: The main difference is that, with
generic software, the organization developing
it controls the specifications and can adapt
them if issues arise. In custom software,
however, the customer sets the specifications,
meaning the software must be tailored to their
specific requirements.

3. Briefly discuss why it is usually


cheaper in the long run to use software
engineering methods and techniques for
software systems.
Answer: Not using software engineering
methods can lead to higher costs down the
line for testing, quality assurance, and long-
term maintenance. Using these methods
upfront ensures better stability and reduces
these future costs.

4. Software engineering is not only


concerned with issues like system
heterogeneity, business and social
change, trust, and security, but also with
ethical issues affecting the domain. Give
some examples of ethical issues that
have an impact on the software
engineering domain.
Answer: Ethical issues in software engineering
include concerns around user privacy, the
need for accessibility, and transparency about
potential risks. It’s crucial for developers to
handle user data responsibly and consider the
broader impacts of the software on society.
 Confidentiality: Developers should
always respect confidentiality, even if
there is no signed agreement, to
maintain trust and integrity.
 Competence: Developers should avoid
exaggerating their expertise, as this can
lead to project issues or failures.
 Intellectual Property Rights:
Developers must understand and respect
local intellectual property laws to avoid
legal issues and respect others’ work.
5. Based on your own knowledge of some
of the application types discussed in
Section 1.1.2, explain, with examples,
why different application types require
specialized software engineering
techniques to support their design and
development.
Answer: Different applications have unique
requirements. For example, batch processing
systems deal with large volumes of data,
requiring techniques to manage this
efficiently, unlike an entertainment system,
which might prioritize multimedia processing
and real-time responsiveness.

6. Explain why the fundamental software


engineering principles of process,
dependability, requirements
management, and reuse are relevant to
all types of software systems.
Answer: These principles are broadly
applicable because they help developers
create high-quality, maintainable software
across all types of systems. They represent
best practices that improve code quality,
reliability, and efficiency for any software
project.

7. Explain how electronic connectivity


between various development teams can
support software engineering activities.
Answer: Electronic connectivity enables teams
from different locations to work on the same
project in real time, allowing for synchronized
coding, instant updates, and meetings to align
on project milestones, no matter where the
team members are.

8. Noncertified individuals are still


allowed to practice software engineering.
Discuss some of the possible drawbacks
of this.
Answer: Having noncertified individuals
working alongside certified developers can
sometimes lead to conflicting approaches,
particularly in areas like security and
development practices. This may introduce
challenges in maintaining quality or adhering
to industry standards.

9. For each of the clauses in the


ACM/IEEE Code of Ethics shown in Figure
1.4, propose an appropriate example that
illustrates that clause.
 Public: Developers shouldn’t create
systems that secretly collect and sell user
data without user consent.
 Client and Employer: Developers
should ensure their systems are efficient
and easy for future teams to maintain.
 Product: Developers should avoid using
outdated technologies and continually
update their skills to match current
standards.
 Judgment: Developers should uphold
ethical standards, even if it means
refusing work that compromises these
values.
 Management: Managers should only ask
developers to build systems that comply
with legal and ethical standards.
 Profession: Developers should propose
improvements for frameworks if it would
benefit others using the framework.
 Colleagues: Developers should
collaborate openly and avoid withholding
information to outshine their teammates.
 Self: Developers should stay current on
new frameworks and security practices.

10. The “Drone Revolution” is currently


being debated and discussed all over the
world. Drones are unmanned flying
machines that are built and equipped
with various kinds of software systems
that allow them to see, hear, and act.
Discuss some of the societal challenges
of building such kinds of systems.
Answer: Drones bring up several societal
challenges, including privacy concerns, as they
could be used to spy on individuals without
their consent. There are also risks related to
airspace safety, public security, and the
ethical use of drones in various sectors.

You might also like