Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

UNIVERSITY OF KARACHI

BSSE SEC-B
INTRODUCTION TO SOFTWARE ENGR:
SUBMITTED TO: DR. SYED ASIM ALI

Name: Ali Shan


Father's Name: Muhammad Arshad
Form# 636412
Qno01 Explain why professional software is not just the programs that
are developed for a customer.

Professional software covers a much wider range of software


development than just the programs created specifically for a client.
Professional software is created to satisfy industry standards, legal
requirements, and best practices, whereas programs created for a
customer are tailored to that customer's particular needs. It calls
for the skills of seasoned professionals with a working understanding
of software engineering, company needs, and user requirements.
Professional software is put through a stringent testing process to
guarantee its security, dependability, and quality.
Professional software is also frequently created to be scalable and
adaptable to meet the shifting requirements of companies and
organizations. It is frequently created with a user experience in
mind, making it simple to use and straightforward. Professional
software can be used to solve complicated issues effectively and
efficiently in a variety of industries, including healthcare, finance,
manufacturing, and more. Professional software is designed to provide
long-term solutions that can satisfy the requirements of a broad range
of users, going beyond the scope of programs created for a single
customer.
Qno02 what is the most important difference between generic product
development and custom software development? what might this mean in
practice for users of generic software products?
Generic products are made to satisfy the requirements of a broad range
of users, whereas custom software is especially made to satisfy the
particular needs of a single client. This is the key distinction
between the development of generic products and that of custom
software.

It may be necessary for users of generic software products to modify


their processes and workflows in order to suit the capabilities of the
software rather than the other way around. On the other hand, custom
software can be created to seamlessly integrate with current workflows
and satisfy particular business requirements, potentially increasing
efficiency and productivity.

Qno03 what are the four important attributes that all professional
software should have? suggest any four other attributes that may
sometimes be significant.

The four important attributes that all professional software should


have are:
1. Functionality - The software should perform all the functions and
tasks that it was designed to do.
2. Reliability - The software should be reliable and should operate
without errors or bugs.
3. Usability - The software should be easy to use and navigate, with
a user-friendly interface.
4. Efficiency - The software should perform tasks quickly and
efficiently, without wasting system resources.
Four other attributes that may sometimes be significant are:
1. Scalability - The software should be able to handle an increasing
amount of data or users as the business grows.
2. Security - The software should be secure and protect against
unauthorized access, data breaches, or cyber threats.
3. Flexibility - The software should be flexible and easily
adaptable to changes in business requirements or technology.
4. Maintainability - The software should be easy to maintain and
update, with clear documentation and coding standards.
These attributes are not exhaustive and may vary depending on the
specific requirements of the software and the industry in which it is
used. However, incorporating these attributes into the development
process can help ensure that the software is of high quality, meets
the needs of the users, and is reliable and efficient.

Qno04 Apart from the challenges of heterogeneity, business and social


change, and trust and security, identity other problems and challenges
that software engineering is likely to face in the 21st century (Hint.
Think about environment)
The complexity of software systems is expected to rise in the twenty-
first century as a result of technology's constant expansion and
connectivity. This will present a challenge for software engineering.
System failure, defects, and security flaws may be the consequences of
this.
The requirement to create ecologically responsible software, with an
emphasis on lowering energy usage and the carbon footprint of software
systems, represents another barrier.
Furthermore, the development of AI and machine learning has brought
about new issues in terms of accountability, transparency, and moral
judgment.
Additionally, issues like privacy, data ownership, and the influence
of technology on social and cultural norms may present difficulties
for software engineering. These problems include those that arise from
the nexus of technology and society.
In conclusion, software engineering in the twenty-first century will
have to deal with issues like system complexity, environmental
sustainability, moral decision-making, and the effects of technology
on society.

Qno05 Based on your own knowledge of some of the applications types


discussed in section 1.1.2, explain with examples why different
applications types require specialized software engineering techniques
to support their design and development

Because different application types have different requirements and


characteristics that cannot be satisfied by a one-size-fits-all
approach, they call for specialized software engineering
methodologies. Here are a few instances:
Mobile applications: To guarantee that they are optimized for smaller
screens, touch-based interactions, and constrained device resources
like battery life and processing power, mobile apps need specialized
software engineering methodologies.
Real-time Applications: To make sure that real-time applications are
extremely responsive and can handle data in real-time, such as those
used in the financial sector or in gaming, specialist software
engineering techniques are needed.
Machine learning applications: Machine learning applications need
specialized software engineering techniques to assist the training and
deployment of machine learning models as well as to manage the
substantial volumes of data needed for training and inference.
Web Applications: To make sure that web applications are safe,
scalable, and capable of supporting several concurrent users,
specialist software engineering techniques are needed.
As a result, because each type of application has specific needs that
cannot be satisfied by generic methods, specialized software
engineering techniques are needed to enable the design and development
of each form of application. Software developers can produce high-
quality programs that satisfy the expectations of their consumers by
comprehending these requirements and using specific methodologies.

Qno06 explain why there are fundamental ideas of software engineering


that apply to all types of software systems.

Because they stand for best practices and concepts that are relevant
across all domains and technologies, there are fundamental ideas of
software engineering that apply to all sorts of software systems.
These concepts consist of:
Understanding and documenting the needs of the software system and its
stakeholders is known as requirements engineering.
Design and architecture: Creating an architecture for the program that
is both sturdy and clear, satisfies system requirements, and is
extensible to future growth.
Verification and validation: Making sure the software system fits to
its specifications and functions as intended through testing, reviews,
and other inspection procedures.
Maintenance and evolution: Over the course of the software system's
life, continuously maintaining and enhancing it to make sure it stays
relevant and helpful.
Because they represent essential notions of software engineering that
may be modified and applied to many settings and technologies, these
fundamental concepts are applicable to all sorts of software systems.
These guidelines can help software developers create high-quality
software that satisfies the requirements of their consumers and
stakeholders.

Qno07 Explain how the universal use of the Web has changed software
systems

The common usage of the Web has completely changed how software
systems are designed, allowing for the development of distributed
architectures, the standardization of technologies and protocols, the
elevation of user expectations, and the facilitation of data-driven
decision-making. Thanks to the Web, software systems may now be
created as a set of distributed components that each carry out a
distinct task and communicate with one another through the Internet.
Software systems that can be easily designed and deployed are now more
scalable, fault-tolerant, and accessible from anywhere in the world.
The Web has also standardized technologies and protocols, such as
HTML, HTTP, and REST, making it easier for software systems to
interoperate and integrate with each other. Users increasingly
anticipate software systems to be accessible 24/7 and to function
seamlessly across a variety of devices and platforms, which has
enhanced usability, responsiveness, and accessibility. Finally, the
Web has made it possible to collect and analyze vast volumes of data,
which may be utilized to inform decision-making and boost the
performance of software systems.

Qno08 Discuss whether professional engineers should be certified in


the same way as doctors or lawyers.

It is debatable whether professional engineers should receive the same


certification as medical professionals or legal professionals.
Although practicing engineers must already possess a certain degree of
education and training, there are arguments in support of more
stringent certification standards. Advocates claim that professional
certification will increase public trust in the engineering
profession, defend public safety, and maintain high professional
standards. There are worries that difficult certification requirements
may reduce the number of available engineers and drive up the cost of
engineering services. In the end, any conclusion about the necessity
for professional certification for engineers should be founded on a
comprehensive analysis of these considerations, as well as the unique
requirements and conditions of each country or region. For ensuring
that the engineering profession continues to flourish and advantageous
for society, it is important to strike a balance between the necessity
for public safety and the possible negatives of stricter certification
standards.

Qno09 To help counter terrorism, many countries are planning or have


developed computer systems that track large numbers of their citizens
and their actions. Clearly this has privacy implications. Discuss the
ethics of working on the development of this type of system.

Concerns about privacy, individual liberties, and potential abuse are


brought up by the development of computer systems that track vast
numbers of persons. The privacy and autonomy of citizens may be
violated by such technologies, which may also be used as weapons
against political opponents or marginalized groups. Developers must
weigh the threats to privacy and freedom against the possible benefits
to counterterrorism efforts while also taking into account any
unintended repercussions. Working with ethics committees is crucial
for developers who want to make sure the systems they are creating are
in line with moral standards. In the end, the choice to work on the
creation of such systems necessitates serious evaluation of the moral
ramifications and the possible harm to people and society at large.

Qno10 For each of the clauses in the ACM/IEEE Code of Ethics propose
an appropriate example that illustrates that clause suggest an
appropriate example that illustrates that clause.

here are examples that illustrate each clause in the ACM/IEEE Code of
Ethics with brief definitions:

• "Act with integrity": An engineer who refuses to submit fraudulent


test results for their project to meet a deadline.

• "Maintain confidentiality": A computer programmer who ensures that


sensitive user data is securely stored and not shared without proper
consent.

• "Maintain professional competence": A network administrator who


regularly pursues professional development to keep their skills up-to-
date.

• "Exercise due diligence": A civil engineer who thoroughly inspects a


construction site to ensure that it's safe for workers and visitors.
• "Support and promote ethical behavior": An artificial intelligence
researcher who advocates for ethical use and development of AI to
prevent negative impacts.

• "Avoid harm to others": An electrical engineer who designs a circuit


breaker that prevents electrical fires in a home.

• "Be honest and trustworthy": A software developer who accurately


represents their qualifications and experience to their employer.

• "Treat all persons with dignity and respect": A user experience


designer who creates accessible designs to make their product usable
for people with disabilities

You might also like