Preamble Code of Ethics

advertisement
Software engineering
Introduction:
Software engineering is about teams. The problems to solve are so
complex or large, that a single developer cannot solve them anymore.
Software engineering is also about communication. Teams do not consist
only of developers, but also of testers, architects, system engineers,
customer, project managers, etc. Software projects can be so large that we
have to do careful planning. Implementation is no longer just writing
code, but it is also following guidelines, writing documentation and also
writing unit tests. But unit tests alone are not enough. The different pieces
have to fit together. And we have to be able to spot problematic areas
using metrics. They tell us if our code follows certain standards. Once we
are finished coding, that does not mean that we are finished with the
project: for large projects maintaining software can keep many people
busy for a long time. Since there are so many factors influencing the
success or failure of a project, we also need to learn a little about project
management and its pitfalls, but especially what makes projects
successful. And last but not least, a good software engineer, like any
engineer, needs tools, and you need to know about them.
Software:
Software means computer instructions or data. Anything that can be
stored electronically is software, in contrast to storage devices and
display devices which are called hardware.
Software engineering:
Definition:
Software engineering is the study and application of engineering to
the design, development, and maintenance of software.
What is the difference between Software Engineering and
Systems Engineering?
The difference between System Engineering and Software
Engineering is not very clear. However, it can be said that the
System Engineers focus more on users and domains, while
Software Engineering focus more on n implementing quality
software. System Engineer may deal with a substantial amount of
hardware engineering, but typically software engineers will focus
solely on software components. System Engineers may have a
broader education (including Engineering, Mathematics and
Computer science), while Software Engineers will come from a
Computer Science or Computer engineering background.
What is a software process model?
Simplified representation of software process, presented from
specific perspective.
Generic process of model: 
Waterfall
Iterative development
Component based software engineering
What is a Software process?
Is Set of activities whose goal is the development software.
Generic activities of software process are:
Specification
Development
Validation
Evaluation
System
Definition:
a set of detailed methods, procedures and routines created to carry out
a specific activity, perform a duty, or solve a problem.
An organized, purposeful structure that consists of interrelated and
interdependent elements (components, entities, factors, members,
parts etc.). These elements continually influence one another.
Software Engineering Method and Theory
(SEMAT)
Software Engineering Method and Theory (SEMAT) is an industry
community committed to improving software engineering
practices, by redefining and re-shaping software engineering as a
rigorous discipline. It was founded in 2009 by Ivor Jacobson,
Bertrand Meyer and Richard Solely.
•
CASE (computer-aided software engineering)
CASE (computer-aided software engineering) is the use of a
computer-assisted method to organize and control the development of
software, especially on large, complex projects involving many software
components and people. Using CASE allows designers, code writers,
testers, planners, and managers to share a common view of where a
project stands at each stage of development. CASE helps ensure a
disciplined, check-pointed process. A CASE tool may portray progress
(or lack of it) graphically. It may also serve as a repository for or be
linked to document and program libraries containing the project's
business plans, design requirements, design specifications, detailed code
specifications, the code units, test cases and results, and marketing and
service plans.
CASE originated in the 1970s when computer companies were beginning
to borrow ideas from the hardware manufacturing process and apply them
to software development (which generally has been viewed as an
insufficiently disciplined process). Some CASE tools supported the
concepts of structured programming and similar organized development
methods. More recently, CASE tools have had to encompass or
accommodate visual programming tools and object-oriented
programming. In corporations, a CASE tool may be part of a spectrum of
processes designed to ensure quality in what is developed. (Many
companies have their processes audited and certified as being in
conformance with the ISO 9000 standard.)
CASE systems are divided into:
Upper-Case: Tools to support the early process activities of
requirements and design.
Lower-Case: Tools to support later activities such as programming
debugging and testing programming, debugging and testing.
What are the attributes of good software?
1. stable - doesn't crash of features
•
3. Has an intuitive user interface - user is able to figure out how to
use the software without the necessity of having to reference a
manual
4. Does not require the user to perform any tasks (mouse clicks,
menu selections, key presses) than are absolutely necessary for it to
perform a task. All processes are designed for straightforwardness
and simplicity of use. The software does the work for the user, not
the other way around.
5. efficient - uses no more computer resources than is absolutely
essential. This means it is low on cup and rams use, and that it only
installs features it needs to run. When its not running it has no
additional installs which effect on the performance of the machine.
Interesting question by the way...
What are the key challenges facing software engineering:
There are three KEY CHALLENGES in software engineering The
Software Engineering Code of Ethics and Professional Practice, produced
by the Institution of Elect here are three KEY CHALLENGES in
software engineering...
1. Heterogeneity
This says, developing techniques for building software, that can cope
with heterogeneous platforms ( changing platforms / different platforms )
and execution environments ( executing environment ) .
2. Delivery
delivery is another concern in software engineering . So developing
techniques that can make the delivery fast, described in ' DELIVERY ' .
3. Trust
A software must be trusted. Here ' TRUST ' means that developing
techniques that demonstrate that software can be trusted by its users
Code of ethics principle:
Software engineers shall commit themselves to making the
analysis, specification, design, development, testing and maintenance of
software a beneficial and respected profession. In accordance with their
commitment to the health, safety and welfare of the public, software
engineers shall adhere to the following Eight Principles:
•
Public: S software engineers shall act consistently with the
public interest.
•
Client and Employer: Software engineers shall act in a
manner that is in the best interests of their client and
employer, consistent with the public interest.
•
Product: Software engineers shall ensure that their
products and related modifications meet the highest
professional standards possible.
Judgment: Software engineers shall maintain integrity and
independence in their professional judgment.
•
Management: Software engineering managers and leaders
shall subscribe to and promote an ethical approach to the
management of software development and maintenance.
•
Profession: Software engineers shall advance the integrity
and reputation of the profession consistent with the public
interest.
•
Colleagues: Software engineers shall be fair to and
supportive of their colleagues.
•
Ethical Issues and Professional Responsibilities
Ethical issues in research and the professional responsibilities of
scientists are discussed based on readings and occasional lectures. The
topics are intended to cover the requirements for ethical training of
graduate students on training grants and follow the recommendations of
the Office of Research Integrity. beyond first year. .
Preamble Code of Ethics:
The preservation of the highest standards of integrity and ethical principles is vital to
the responsible discharge of obligations by speech-language pathologists,
audiologists, and speech, language, and hearing scientists. This Code of Ethics sets
forth the fundamental principles and rules considered essential to this purpose.
Every individual who is (a) a member of the American Speech-Language-Hearing
Association, whether certified or not, (b) a nonmember holding the Certificate of
Clinical Competence from the Association, (c) an applicant for membership or
certification, or (d) a Clinical Fellow seeking to fulfill standards for certification shall
abide by this Code of Ethics.
Any violation of the spirit and purpose of this Code shall be considered unethical.
Failure to specify any particular responsibility or practice in this Code of Ethics shall
not be construed as denial of the existence of such responsibilities or practices.
The fundamentals of ethical conduct are described by Principles of Ethics and by
Rules of Ethics as they relate to the responsibility to persons served, the public,
speech-language pathologists, audiologists, and speech, language, and hearing
scientists, and to the conduct of research and scholarly activities.
Principles of Ethics, aspirational and inspirational in nature, form the underlying
moral basis for the Code of Ethics. Individuals shall observe these principles as
affirmative obligations under all conditions of professional activity.
Rules of Ethics are specific statements of minimally acceptable professional conduct
or of prohibitions and are applicable to all individuals.
What Is an Ethical Dilemma?
There are three conditions that must be present for a situation to be
considered an ethical dilemma.
The first condition occurs in situations when an individual, called the
“agent,” must make a decision about which course of action is best.
Situations that are uncomfortable but that don’t require a choice, are
not ethical dilemmas. For example, students in their internships are
required to be under the supervision of an appropriately credentialed
social work field instructor. Therefore, because there is no choice in the
matter, there is no ethical violation or breach of confidentiality when a
student discusses a case with the supervisor.
The second condition for ethical dilemma is that there must be different
courses of action to choose from. Third, in an ethical dilemma, no matter
what course of action is taken, some ethical principle is compromised. In
other words, there is no perfect solution.
Download