software engineering emphasis for engineering computing courses william hankley computing &...
TRANSCRIPT
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
Software Engineering Emphasis
Typically, engineering students take one programming course.
But, programming =/= software engineering
like learning to solder vs concepts of electrical circuits
Software Engineering Emphasis
Aspects of SE for non-CS majors:
requirements definition
UI design
software architecture design;
components, patterns, frameworks
software tools (IDE’s)
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”.
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”
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
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
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
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.
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.
Software Engineering Emphasis
The message to engineering educators:
Consider a second course on software architecture !
Details in the paper. The end.
Software Engineering Emphasis
Software Engineering Emphasis
Software Engineering Emphasis
Software Engineering Emphasis
Software Engineering Emphasis