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

CS383 Lecture 2

Uploaded by

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

CS383 Lecture 2

Uploaded by

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

CS383 - Software Engineering

Introduction (II)

Semester: 452

Lecture: 2
Topics to be covered in this lecture

● Software Engineering activities

● SE and the web

● Software as a Service

● SE ethics
Software engineering and process activities

● Software specification: define the software


that is to be produced and the constraints on its
operation.
● Software development: design and implement
the software according to specifications
● Software verification and validation: the
software is checked to ensure that it is what
the customer needs
● Software evolution: the software is modified to
reflect changing customer and to evolve to
address market requirements/challenge.
S
3
Software engineering and the Web or

● In the last two decades, web-based systems has be developed and


accessed using web browsers
● That led to the development of a vast range of new system
products
○ Product deliver services accessed over the Web

● Web-browsers also evolved from running small programs to


enterprise and organizational software
○ Nowadays software don’t need to be installed locally
○ Web-based systems are accessible worldwide instantly
○ Many software now migrated to use the web
4
Software engineering and the Web (cont.)

● Software (on the web) helped (from software developer


delentempents

perspective)
○ Faster software delivery
○ Cheaper to changed and upgrade
○ Reduce cost

5
Software engineering and the Web (cont.)

Because of fast evolvement of software organization and web-

based systems

● Software reuse has rapidly become an asset

● Specifying all requirements in advance is not practical anymore

○ Use incremental development-based methods to deliver software

● However, user interfaces are constrained by the capabilities of

web browser
6
Software as a Service (SaaS)

● Instead of a complete software installed locally, now let us have it


as a service
● Individual service (software) will be run on a computing cloud on
the web

Platform: provide cloud


components and framework
for software creation.
Eliminate concerns about OS,
storage or infrastructure
Infrastructure: provide
scalable resources like
servers, network, storage, OS
via virtualized technology
7
Software as a Service (SaaS)

● Benefits: ● Drawbacks:
○ Pay as you go (monthly, ○ Lack of control
annually) ○ Vulnerable: security and trust
○ Accessible anywhere ○ Limited range of applications
○ No need for expensive ○ Internet dependent
computers ○ Performance issues

8
Software Engineering Code Of Ethics And Professional
Practice

● A set of principles that was developed by the ACM/IEEE-CS


joint task force on Software Engineering Ethics and Professional
Practices (SEEPP)

● Goal: establish a code of conduct for professional software


engineers to make software engineering a beneficial and
respected profession.
Who are the engineers that should follow the code?

● Software engineers are those who contribute either by direct


participation or by
○ teaching,
○ analyzing,
○ specification generating,
○ designing,
○ developing,
○ certifying,
○ maintaining and
○ testing
of software systems
Who are the engineers that should follow the code?

● Why Software Engineers are in focus?

○ Because of their roles in developing software systems, and

their significant opportunities to:

■ Do good or cause harm

■ Enable others to do good or cause harm

■ Influence others to do good or cause harm


SEEPP

● The Code contains eight Principles related to the behavior of and

decisions made by professional software engineers


1. PUBLIC
2. CLIENT AND EMPLOYER
3. PRODUCT
4. JUDGMENT
5. MANAGEMENT
6. PROFESSION
7. COLLEAGUES
8. SELF
1. PUBLIC

Software engineers shall act consistently with the public interest.

heExamples:
■ Accept full responsibility for their own work.
■ Moderate the interests of the software engineer, the employer, the client and
the users with the public good
■ Approve software only if they believe that it is safe for use, meets
specifications, passes appropriate tests
■ Disclose to appropriate persons or authorities any actual or potential danger
to the user, the public, or the environment.
■ Be fair and avoid deception in all statements, particularly public ones
■ Consider issues of physical disabilities and allocation of resources
■ Be encouraged to volunteer professional skills to good causes
2. 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

Examples:
■ provide service in their areas of competence.
■ Not knowingly use software that is obtained or retained either illegally or
unethically.
■ Use the property of a client or employer only in ways properly authorized.
■ Identify, document, collect evidence and report to the client or the employer
promptly if, a project is likely to fail or to violate intellectual property law.
■ Ensure that any document upon which they rely has been approved, when
required, by someone authorized to approve it.
■ Keep private of confidential information gained in their professional work.
3. PRODUCT

Software engineers shall ensure that their products and related

modifications meet the highest professional standards possible.

Examples:
■ Strive for high quality and acceptable cost
■ Ensure proper and achievable goals and objectives for any project
■ Ensure that they are qualified for any project they work on
■ Ensure that an appropriate method is used for any project
■ Work to follow professional standards
■ Strive to fully understand the specifications for software
■ Ensure adequate testing, debugging, documentation and review of software
4. JUDGMENT

Software engineers shall maintain integrity and independence in their


professional judgment

Examples:
■ Temper all technical judgments by the need to support and maintain
human values.
■ Only endorse documents if prepared under supervision
■ Maintain professional objectivity with respect to any software
■ Not engage in deceptive financial practices such as bribery, double
billing, or other improper financial practices.
■ Disclose to all concerned parties those conflicts of interest that cannot
reasonably be avoided or escaped.
5. MANAGEMENT

Software engineering managers and leaders shall subscribe to and promote


an ethical approach to the management of software development and
maintenance

Examples:
■ Ensure good management for any project on which they work
■ Ensure that software engineers are informed of standards before being
held to them.
■ Ensure realistic quantitative estimates of cost, scheduling, personnel,
quality and outcomes on any project
■ Provide for due process in hearing charges of violation of an employer's
policy or of this Code.
■ Not ask a software engineer to do anything inconsistent with this Code
6. PROFESSION

Software engineers shall advance the integrity and reputation of the


profession consistent with the public interest

Examples
■ Help develop an organizational environment favorable to acting ethically
■ Promote public knowledge of software engineering
■ Support, as members of a profession, other software engineers striving to
follow this Code.
■ Not promote their own interest at the expense of the profession, client or
employer.
■ Take responsibility for detecting, correcting, and reporting errors in
software
■ Report significant violations of this Code to appropriate authorities
7. COLLEAGUES

Software engineers shall be fair to and supportive of their colleagues

Examples:
■ Encourage colleagues to adhere to this Code
■ Assist colleagues in professional development
■ Credit fully the work of others and refrain from taking undue credit
■ Assist colleagues in being fully aware of current standard work
practices
■ Not unfairly intervene in the career of any colleague
8. SELF

Software engineers shall participate in lifelong learning regarding the


practice of their profession and shall promote an ethical approach to the
practice of the profession

Examples:
○ Further their knowledge of recent developments
○ Improve their ability to create safe, reliable, and useful quality software
○ Improve their ability to produce accurate, informative, and well-written
documentation
○ Improve their knowledge of relevant standards
○ Not influence others to undertake any action that involves a breach of this
Code
Software Engineering Code of Ethics and Professional
Practice: SEEPP

Where to find this code?

https://ethics.acm.org/code-of-ethics/software-engineering-code/

You might also like