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

assignment 1

The document outlines the attributes of good software, including functionality, usability, efficiency, maintainability, security, and reliability. It discusses the software crisis, fundamental activities in software processes, and the concept of software process models. Additionally, it covers Agile software development, challenges in software engineering, costs associated with software engineering, ethics, professional responsibilities, and ethical principles and dilemmas.

Uploaded by

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

assignment 1

The document outlines the attributes of good software, including functionality, usability, efficiency, maintainability, security, and reliability. It discusses the software crisis, fundamental activities in software processes, and the concept of software process models. Additionally, it covers Agile software development, challenges in software engineering, costs associated with software engineering, ethics, professional responsibilities, and ethical principles and dilemmas.

Uploaded by

eslamosama2274
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Assignment 1:

1.What are the attributes of good software?

1. Functionality: A good software must be able to do what it was designed to do. The
software requirements must guide the design and implementation of the software.

2. Usability: The software must be usable; the users must not find it difficult to figure
out how a good software works. A good software is user-centered and user-friendly.

3. Efficiency: Efficiency means that perform it's operations with minimal time and
processing power. A good software uses the least amount of processing power and
memory needed to achieve the desired result.

4. Maintainability: A good software must evolve with changing requirements.

5. Security: A good software must be secure. It should not cause physical or economic
damage in the event of a system failure. Unauthorized users must not be allowed
access to the system.

6. Reliability: A reliable system will rarely fail, and even when it does fail, there are
recovery mechanisms in the software to recover from the failure with minimal losses.

2.What is the software crisis?


Software crisis is a term used in the early days of computing science for the difficulty of
writing useful and efficient computer programs in the required time

With the increase in the complexity of the software, many software problems arose
because existing methods were inadequate.

3.What are the fundamental activities that are common to all software
processes?
1. Software specification: This is written description of the scope of the software;
functionalities, constraints and limitations are clearly defined here.

2. Software Design and Implementation: The entails all the processes involved in
developing a software based on a given specification.
3. Software validation: The software must be tested to ensure that the requirements in
the software specification document are met. The developed software must perform the
functions required by the customer.

4. Software evolution: Software evolution requires that a given software can be


modified to meet changing requirements in the future.

4.What is a software process model?


A software process model is an abstraction of the software development process. The
models specify the stages and order of a process. So, think of this as a representation
of the order of activities of the process and the sequence in which they are performed.

A model will define the following:

• The tasks to be performed


• The input and output of each task
• The pre and post conditions for each task
• The flow and sequence of each task

5.What is Agile Software Development?


In software development, agile (sometimes written Agile) practices include requirements
discovery and solutions development through the collaborative effort of self-
organizing and cross-functional teams with their customer(s)/end user(s), adaptive
planning, evolutionary development, early delivery, continual improvement, and flexible
responses to changes in requirements, capacity, and understanding of the problems to
be solved.

6.What are the key challenges facing software engineering?


Major Challenges in Software Development
• Rapid technology advancement.
• Increasing customer demands.
• Time limitations.
• Limited infrastructure/resources.
• Conflicts with software testing teams.

7.What are the costs of software engineering?


Roughly 60% of costs are development costs, 40 % are testing costs. For custom
software, evolution costs often exceed development costs.
Costs vary depending on the type of system being developed and the requirements of
system attributes such as performance and system reliability.

Distribution of costs depends on the development model that is used.

8.What is Software engineering ethics?


Software engineering ethics is a type of professional ethics. Software engineering is
often a profession practiced by teams in managed situations, so as we shall see a
complete concept of software engineering ethics includes ethical activity and principles
related to the action of teams and the actions of management.

9.What are Issues of professional responsibility?


• Confidentiality – Engineers should normally respect the confidentiality of their
employers or clients irrespective of whether or not a formal confidentiality agreement
has been signed.

• Competence – Engineers should not misrepresent their level of competence. They


should not knowingly accept work which is out with their competence.

• Intellectual property rights – Engineers should be aware of local laws governing the
use of intellectual property such as patents, copyright, etc. They should be careful to
ensure that the intellectual property of employers and clients is protected.

• Computer misuse – Software engineers should not use their technical skills to misuse
other people’s computers. Computer misuse ranges from relatively trivial (game playing
on an employer’s machine, say) to extremely serious (dissemination of viruses).

11.What are Ethical principles and display Ethical dilemmas?


The 4 main ethical principles, that is beneficence, nonmaleficence, autonomy, and
justice, are defined and explained. ... In patient care situations, not infrequently, there
are conflicts between ethical principles (especially between beneficence and
autonomy).

The definition of ethical dilemma is a choice between two options, both of which will
bring a negative result based on society and personal guidelines.

there are four dilemmas:


• Good for the unit versus good for the whole.
• Good for the short term versus good for the long term.
• Truth versus loyalty.
• Justice versus mercy.

You might also like