CS 310 Software Engineering - PowerPoint PPT Presentation

1 / 16
About This Presentation
Title:

CS 310 Software Engineering

Description:

Professional and ethical responsibility. Slide 2. More and more systems ... Ethical dilemmas. Disagreement in principle with the policies of senior management ... – PowerPoint PPT presentation

Number of Views:18
Avg rating:3.0/5.0
Slides: 17
Provided by: aurora5
Category:

less

Transcript and Presenter's Notes

Title: CS 310 Software Engineering


1
CS 310 Software Engineering
  • Professor C. Shilepsky
  • Spring 2002
  • httm//aurora.wells.edu/ccs/310/cs310.htm
  • Chapter 1
  • Define software engineering and explain its
    importance
  • Professional and ethical responsibility

2
Software engineering-importance
  • More and more systems are software controlled
  • The economies of ALL developed nations depend on
    software
  • Software expenditures represents a significant
    fraction of GNP in all developed countries
  • Software is consistently late, over budget, and
    buggy. Why?

3
1.1.1 What is software
  • Generic products
  • Stand-alone systems which are produced by a
    development organization and sold on the open
    market to any customer
  • Bespoke (customized) products
  • Systems which are commissioned by a specific
    customer and developed specially by some
    contractor
  • Most software expenditure is on generic products
    but most development effort is on bespoke systems
  • Current emphasis is on embedded or adapted COTS
    (commercial-off-the-shelf-software)

4
1.1.2 What is software engineering
  • The systematic, disciplined, and quantifiable
    approach to the development, operation,
    maintenance, and retirement of software
  • It is not about programming, rather everything
    that goes into developing large systems.
  • It is about managing complexity how do people
    build a system whose complexity exceeds the
    capacity of any one individual to understand it

5
1.1.3, 1.1.4 Difference between CS, SE, and
system engineering
  • Computer science theories and models that
    underlie computers
  • e.g. data structures, discrete math, analysis of
    algorithms, ...
  • Software engineering how to build a software
    system. CS theory not enough.
  • e.g. flight-control software
  • System engineering how to build a complex system
    that may include software
  • e.g. an airplane

6
1.1.5 software process
  • Structured set of activities required to develop
    a software system
  • Specification (what are the requirements)
  • Development (design and code)
  • Validation
  • Evolution
  • Activities vary depending on the organization
    and the type of system being developed
  • 1.1.6 software process model - later

7
1.17 Software engineering costs
8
1.1.8 Software engineering methods
  • Approaches to development
  • CS 132 methods
  • functional decomposition
  • object-oriented programming
  • Software engineering methods often integrated to
    cover the whole process
  • Some are a bit like religion

9
1.1.9 Computer aided software engineering (CASE)
  • Tools to assist development
  • We are familiar with the C development
    environment which has good built-in support
  • There is more.

10
1.1.10 Software product attributes
  • Maintainability
  • It should be possible for the software to evolve
    to meet changing requirements
  • Dependability
  • The software should not cause physical or
    economic damage in the event of failure
  • Efficiency
  • The software should not make wasteful use of
    system resources
  • Usability
  • Software should have an appropriate user
    interface and documentation

11
1.1.11 Software engineering challenges
  • Legacy systems
  • It is difficult to maintain and update old
    systems
  • Heterogeneity
  • Systems need to operate on different hardware in
    different environments
  • Delivery
  • It takes longer to build a good system than
    customers want to allow.
  • What else?

12
1.2 Professional and ethical responsibilty
  • What do these mean? Have you ever run into a
    question with one of them?
  • Confidentiality
  • Competence
  • Intellectual property rights
  • Computer misuse

13
Code of ethics - principles
  • 1. PUBLIC
  • Software engineers shall act consistently with
    the public interest.
  • 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.
  • 3. PRODUCT
  • Software engineers shall ensure that their
    products and related modifications meet the
    highest professional standards possible.

14
Code of ethics - principles
  • JUDGMENT
  • Software engineers shall maintain integrity and
    independence in their professional judgment.
  • 5. MANAGEMENT
  • Software engineering managers and leaders shall
    subscribe to and promote an ethical approach to
    the management of software development and
    maintenance.
  • 6. PROFESSION
  • Software engineers shall advance the integrity
    and reputation of the profession consistent with
    the public interest.

15
Code of ethics - principles
  • 7. COLLEAGUES
  • Software engineers shall be fair to and
    supportive of their colleagues.
  • 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.

16
Ethical dilemmas
  • Disagreement in principle with the policies of
    senior management
  • Your employer acts in an unethical way and
    releases a safety-critical system without
    finishing the testing of the system
  • Participation in the development of military
    weapons systems or nuclear systems
  • What would you do?
  • Other examples?
Write a Comment
User Comments (0)
About PowerShow.com