slide 1 cs 310 software engineering professor c. shilepsky spring 2008 ccs/310/cs310.htm chapter 1 u...

12
Slide 1 CS 310 Software Engineering Professor C. Shilepsky Spring 2008 http://aurora.wells.edu/~ccs/310/ cs310.htm Chapter 1 define software engineering and explore its importance professional and ethical responsibility

Upload: meagan-crawford

Post on 03-Jan-2016

213 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Slide 1 CS 310 Software Engineering Professor C. Shilepsky Spring 2008 ccs/310/cs310.htm Chapter 1 u define software engineering

Slide 1

CS 310 Software Engineering

Professor C. Shilepsky

Spring 2008http://aurora.wells.edu/~ccs/310/cs310.htm

Chapter 1

define software engineering and explore its importance

professional and ethical responsibility

Page 2: Slide 1 CS 310 Software Engineering Professor C. Shilepsky Spring 2008 ccs/310/cs310.htm Chapter 1 u define software engineering

Slide 2

How This Course Differs From 132 and 330

Emphasis on planning and management

• how would you develop a network for Wells?

Tools to manage complexity

• a wonderful collection of methods and models

Technical documentation

• how would you document the Wells network?

No coding

Page 3: Slide 1 CS 310 Software Engineering Professor C. Shilepsky Spring 2008 ccs/310/cs310.htm Chapter 1 u define software engineering

Slide 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 a contractor

Most money spent on generic products but most development effort is on bespoke systems

Current emphasis on• embedded or adapted COTS (commercial-off-the-shelf-software)

• web services (XML, SOAP)

Page 4: Slide 1 CS 310 Software Engineering Professor C. Shilepsky Spring 2008 ccs/310/cs310.htm Chapter 1 u define software engineering

Slide 4

The systematic, disciplined, and quantifiable approach to the

development, operation, maintenance and retirement of software

Not about programming• rather everything that goes into developing large systems

Engineering: making things work

About managing complexity

• how do people build a system whose complexity exceeds the capacity of any one person to understand it

1.1.2 What is Software Engineering

Page 5: Slide 1 CS 310 Software Engineering Professor C. Shilepsky Spring 2008 ccs/310/cs310.htm Chapter 1 u define software engineering

Slide 5

Many systems are software controlled

Economies of ALL developed nations depend on software

Software expenditures are a significant fraction of the GNP

Problem: software is consistently late, over budget, and buggy why?

Why is Software Engineering Important?

Page 6: Slide 1 CS 310 Software Engineering Professor C. Shilepsky Spring 2008 ccs/310/cs310.htm Chapter 1 u define software engineering

Slide 6

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 has hardware and software

Page 7: Slide 1 CS 310 Software Engineering Professor C. Shilepsky Spring 2008 ccs/310/cs310.htm Chapter 1 u define software engineering

Slide 7

1.1.5 Software Process

Activities required to develop a software system

• specification (what are the requirements)

• development (design and code)

• validation (test)

• evolution

Variation depending on the organization

and the type of system being developed

1.1.6 software process model - later

Page 8: Slide 1 CS 310 Software Engineering Professor C. Shilepsky Spring 2008 ccs/310/cs310.htm Chapter 1 u define software engineering

Slide 8

1.1.8 Software Engineering Methods

Approaches to developmentCS 132 methods:• functional decomposition

• object-oriented programming

Some are a bit like religion

1.1.9 Computer Aided Software Eng. (CASE)

Tools to assist developmentE.g. the C++ development environment There is more

Page 9: Slide 1 CS 310 Software Engineering Professor C. Shilepsky Spring 2008 ccs/310/cs310.htm Chapter 1 u define software engineering

Slide 9

1.1.10 Software Product Attributes

Maintainability:

• software should be able to evolve to meet changing requirements

Dependability:

• software should not cause physical or economic damage in the event of failure

Efficiency

• software should not waste system resources

Usability

• software should have an appropriate user interface and documentation

Page 10: Slide 1 CS 310 Software Engineering Professor C. Shilepsky Spring 2008 ccs/310/cs310.htm Chapter 1 u define software engineering

Slide 10

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?

Page 11: Slide 1 CS 310 Software Engineering Professor C. Shilepsky Spring 2008 ccs/310/cs310.htm Chapter 1 u define software engineering

Slide 11

1.2 Professional and Ethical Responsibility

What do these mean?

• confidentiality

• competence

• intellectual property rights

• computer misuse

Have you ever run into a question with one of them?

What would you deal with the following?

• disagreement with the scheduling practices of senior management

• release of a safety-critical system without finishing system testing

• developing military weapons systems or systems for chemical warfare

Page 12: Slide 1 CS 310 Software Engineering Professor C. Shilepsky Spring 2008 ccs/310/cs310.htm Chapter 1 u define software engineering

Slide 12

Miscellaneous

Examples I will use (from Digicomp Research) Air surveillance and control system

radars gather information about planes in their area

system integrates airplane plots and tracks to present an air picture to controllers who manage different spaces

MH54J helicopter avionicssensor information (altitude, speed, direction) and pilot flight plan and

commands integrated to manage the helicopter

Some text and figures in the slides are from Sommerville