software engineering emphasis for engineering computing courses william hankley computing &...

17
Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University

Upload: archibald-morton

Post on 20-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University

Software Engineering Emphasis for Engineering Computing Courses

William Hankley

Computing & Information Sciences

Kansas State University

Page 2: Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University

:a message to engineering educators.

2004-2305

William Hankley

Computing & Information Sciences

Kansas State University

Page 3: Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University

Software Engineering Emphasis

Typically, engineering students take one programming course.

But, programming =/= software engineering

like learning to solder vs concepts of electrical circuits

Page 4: Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University

Software Engineering Emphasis

Aspects of SE for non-CS majors:

requirements definition

UI design

software architecture design;

components, patterns, frameworks

software tools (IDE’s)

Page 5: Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University

Software Engineering Emphasis

There is an aspect of design for software !

Engineers outside of SE seem not to recognize this.

E.G. this paper was moved from

“design in the curriculum”

to “computers in education”.

Page 6: Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University

Software Engineering Emphasis

Software architecture design:

the notation for software models is UML

( Unified Modeling Language, see paper for details)

a reviewer comment:

“this paper is mostly UML”

Page 7: Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University

Software Engineering Emphasis

some component diagrams of UML+:

Use-case(s) ... view of one aspect of user interaction

State model(s) ... of either whole system or single class

Class model ... static structure of classes & methods

Sequence(s) ...view of trace of execution

GUI prototype ... visual model + state model

Page 8: Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University

Software Engineering Emphasis

Why focus on UML design?

almost all software defects are manifest in design

code is not suited for managerial review

design is the contract for group project work

Page 9: Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University

Software Engineering Emphasis

Design is not just “software design”;

it can be “systems design” for any system

with user controls or data inputs

with dynamic state behavior

with programmable components

Page 10: Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University

Software Engineering Emphasis

The problems:

(a) most first programming courses do not

cover design and UML

(b) most engineering programs allow

only one programming course

(c) design is more instructor intensive

than just programming.

Page 11: Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University

Software Engineering Emphasis

KSU approach:

(1) introduce UML in first CS course

(but with no design focus)

(2) second course on Software Architecture

(for CS, IS, EE, CompE majors )

Described in ASEE 2003 Proceedings.

Page 12: Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University

Software Engineering Emphasis

The message to engineering educators:

Consider a second course on software architecture !

Details in the paper. The end.

Page 13: Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University

Software Engineering Emphasis

Page 14: Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University

Software Engineering Emphasis

Page 15: Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University

Software Engineering Emphasis

Page 16: Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University

Software Engineering Emphasis

Page 17: Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University

Software Engineering Emphasis