軟體工程學程的學涯規劃

crookpatedspongySoftware and s/w Development

Dec 2, 2013 (3 years and 11 months ago)

78 views

Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

軟體工程概論與實際應用

薛念林

逢甲大學資工系

Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

Outline


What

is

software


What

is

software

engineering


My

suggestion

Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

What is software?


Computer

programs

and

associated

documentation

such

as

requirements,

design

models

and

user

manuals
.

Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

What is software engineering?


An

engineering

discipline

that

is

concerned

with

all

aspects

of

software

production
.



Adopt

a

systematic

and

organised

approach

to

their

work

and

use

appropriate

tools

and

techniques

depending

on

the

problem

to

be

solved,

the

development

constraints

and

the

resources

available
.

Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

Why do software fail?

Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

Software engineering
-

life cycle


Specification


what

the

system

should

do

and

its

development

constraints


Development


production

of

the

software

system


Validation


checking

that

the

software

is

what

the

customer

wants


Evolution


changing

the

software

in

response

to

changing

demands
.

Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

Software engineering
-

activities

Reqts.
Elicitation

System
Analysi
s

System
Design

Software
Develop
ment

Software
Testing

Software
Mainten
ance

Project mgmt.

Configuration mgmt.

Quality mgmt.

Process mgmt.

Software Development Skill

Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

Software engineering
-

methodology

Discipline

Practices

Guideline

Myth

Principle

Pattern

Methodology

Tool

Theory

Fail experience

Framework

S
uccess experience

Process

Model

Method

Approach

Design

Heuristics

Standard

Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

Myth


If

we

get

behind

schedule,

we

can

add

more

programmers

and

catch

up



Software

is

easy

to

change



If

we

decide

to

outsource

the

software

project

to

a

third

party,

I

can

just

relax

and

let

that

firm

build

it


Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

Principle


Open

closed

principle


Anticipation

of

Change


Design

with

abstraction


Perform

continuous

validation


Independent

test

team


Principle

of

least

surprise


KISS

Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

Heuristics/Guidelines


Nielsen’s

Usability

Heuristics


Visibility

of

System

Status


Match

Between

System

and

the

Real

World


User

Control

and

Freedom


Consistency

and

Standards


Error

Prevention


Recognition

Rather

Than

Recall


Flexibility

and

Efficiency

of

Use


Aesthetic

and

Minimalist

Design


Help

Users

Recognize,

Diagnose,

and

Recover

from

Errors


Help

and

Documentation


Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

Methods


Requirement

analysis


Scenario

based,

business

process

analysis,

goal
-
driven

approach


Design


Structural

design,

object

oriented

design,

aspect

oriented

design


Testing


Black

box

testing
:

Equivalence

partition

testing,

all
-
pair

testing,

decision

table

testing,




white

box

testing
:

Test

coverage,

mutation

testing,




Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

Patterns

Observer pattern

Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

Models


UML

model

language


Static

model
:

class

diagram,

component

diagram,

deployment

diagram,

etc
.


Dynamic

model
:

activity

diagram,

use

case

diagram,

state

transition

diagram


Interaction diagram: use case diagram, sequence
diagram, etc.


Other

model

approaches
:



SysML
,

Business

process

model

notation

(BPMN),

IDEF,

etc






Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

Tool


Version

control

tool


CVS,

SVN,

Mercurial,

Git


Analysis

and

design

modeling

tool


Rational

Rose,

StarUML
,

Borland

Together,

Eclipse

UML

2


T
esting

tool


JMeter
,

Rational

Robot,

HP

QuickTest


Bug/Issue

tracking

tool


Bugzilla
,

CodeBeamer
,

HP

Quality

Center






Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

Software process


The

“algorithm”

of

developing

software



Process

models



Waterfall
;


Iterative

development
;


Scrum


Spiral


e
tc
.

Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

Waterfall process model

Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

Iterative process model

Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

Agile programming


Discipline


Customer

involved


People

not

process


Test

driven

programming


Pair

programming


Embrace

change


Maintain

simplicity


Refactoring


Daily

meeting





Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

G
ood software

Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

My suggestion


Communication

and

documentation


Learn

modeling


Do

more

analysis


Learn

design

pattern,

design

your

framework


Do

review


Using

v
ersion

control

system


Software

quality



Keep

learning

Software

Engineering

Software Engineering Lab, Department of Information Engineering & Computer Science,
Feng

Chia University

Thanks for your listening.