Professional Documents
Culture Documents
software Engineering
-
"# :
% :&%
Republic of Yemen
University of Sanaa
Faculty of Engraining
)Department (I--T
*+#( % :,-
.
/
)(--
software Engineering
+.0
.:
: 1
-" -----------------------------------------------------------------------------------
#- 7
------------------------------------------------------------------
. -
-----------------------------------------------------------------
-
------------------------------------------------------------------------
-
------------------------------------------------------------------
@ -
>
------------------------------------------------------------------
- D
C>
--------------------------------------------------------------------------
-
F#
>
------------------------------------------------------------------
-
F#
>
----------------------------------------------------------
-
F%
>
-----------------------------------------------------------------
0# -
>
-------------------------------------------------------------------------
-
%
M
%O--------------------------------------------------------------- N
- Q P ------------------------------------------------------------------
S -
R ------------------------------------------------------------------
-
P @---------------------------------------- CASE #
TU
0O -
------------------------------------------------------------
-------------------------------------------------------------------------------- V
: --------------------------------------------
ii
software Engineering
" :
:SOFT WARE
[4].
OPERING
SYSTEMS
CPU
APPLICATIONS
)[1].(
.
Software engineering
.
.
.
][2
iii
software Engineering
# -W 7
:
%&#
#"!
&
)
' . 
#4 2
- ./01 ,
<) ;" :
!/
7 8/
/9 /64 "! ;
&)< ./
22
K&5 ./01
2 H G F;5&
&E
,
9 ! 9 " "! " & Q " P&# :O #
&)
/ "!
Q F ! &G F; %"
&0 < /
X
' 9! 8O Q
[3] ./0
"+Z
Z
"+
YC
"+ Z
*
> P
* "R
"^a
* b#
] a.^Z
* # ^ ]%
* ^bC""+
*
F P
* Y
@ C_ eb
*
M%C
1990
* % _C
* # + V
*
0.
b
. -W
:
"!YY7 (Software)YY ^YY
/ YY )
YY YY FYY \YY YY
&! YY YY4
&9
) .(Hardware
:X"! 5` Y /Y/# _ Y4 Y& YPY/0
YYYY# G YY <
YY/ Y < :YYX YY
9
YY/9 YY YYG EYY
" . e2"!
X !
Y# G Y Y \Y#dYO
& )9
& "/0
& ) &
2 .
Y#"! Y Y Y Y
Y
Y) Y# < YY<
! FY/ gY# ;< YY FYY d
1Y Y0"YYY h
< < "/&
& 2
Y&G5 iYj EY
& Y# FY
" & Y) gY-< F/< //; i
Y#
Y!k Y- 5 Y "!Y
& YY/ - !YY <
lYY7 :YY YY
PY /0& YY YY Y ) HYY
YY#! .YY ;YY
"
%G"!
) X4 ^
H2 &G Y Y
nYY ! YY
YY#"! YY ' \YY gYY#4
YY9& YY1YY e2YY
YY YY
& -k ."1 oG 11
E" h! ^ !.
iv
software Engineering
mlU
U
#b CP
jP d
@ -
# 22
X < dY/< Y Y
-
&YY# :YY YY i
KYY :& YY YY/ ) YY
YY
.
& d O
- #
) O
-" Y
<_
& /# d-G (.
YY
YY &YY O YY
-
& hO YY&YY
:YY YY :YYG O YY
-
KYY :&iYY
PYY/0 YY
! . :
Y Y Y O Y
-Y' Y
G # .
- O
-
Tool& ! 5 /G
K < :
); 5- e2
/-K 9"6
G O (.
jP .(),@c
.
@[9].#
-
-
d/< F- o Compute science "#G F/<
E
G P# q "! � .
YY-
YY YY& FYY/< YY :YY 9 YY YY
< &YY d
1YY:YY YY0
][1
/-K
i.
-W. ^
:
"&9"! & -
/
< d "Y rYq h
Y< Y!Y
" h "; -
& i & / ; F& 0
Y#"! Y
F/< :
9
"!
K & : - Y i&# Y! :PY"
Y "!Y
< d
1& t
" 9 & 0& F/< P&# i
-
H2
4"-  t :
9 "! < E!9[1].H
software Engineering
-W
: software Engineer
YY "! YY software engineer YY lKYY2YY ) < FYY/< \YY) YYYY0
&! "! & " O E/ & &G _
9 .O E! /< P &"
Y
/# <
t)G - i/4
&# < d/
#"!
& /< d&G&# 4
) "# & Yq Y "Y#
Y! q "!Y < Y
&( &)
n ) & /<4( H i/<&
< F/
/-K& ) /G; & 0
'
& )
".( K
)
#"! ! :9 74 )"0 d :
9
Y Y0 4
Y
XYY- e2YY4 &YY d
YY- Y/0 HY/4 &) YYO YYG & KYY
/G & F d -
)"0 6 < .d
# nPY! iY
< d/_ :
9 ) &
XG" H2 < /G '
Y e2Y)Y .5
&
d "! ) /
9 w &)
& 0"! i
- :- d& n0KY4
:X K "! 04 0
& < d& "! .
d
1& n
# 0 h < .
K e2 /
9
K <
/
< " < h
%G_ !
< :
vi
software Engineering
:
jP C% .%] 1
*
H2YY algorithms :YYX YY' YY <
FYY/< h YY" PYY/^ YY&G :
qq-
:-KYY :YY
9 YY' .YY' YY
YY9 YY9 dYY
< hYY" YY0
. E 9
q % :n
YY
h YY" dYY! 4 :YYX YY< YY# ; YY
/< YY iYY hYY" :qq
. )< " XG 0 ' 5 9
Network speed.
4
.
P
. Y; 2Y
eYG d&Y 0 : .0 <" < !
< h ":V
0%
&YY FYY YY YY&k YY0 YY0 YYG&
< 1YY YY YYX- :YYX
. /0
!
Y :YX . FY Y&G Yj ! ^ ! # :
Pc
.
"E P&- :X 1 } K : <. i l1 /-
PYY! YY- .&Y
/ YY
YY9&
YY- PYY! ( interface user) iYY :^qq.
. !"
n) . h"
/ \&
-
/{#~ < oG"/ ; 0&< # F&
"! G h & ":Y
Y & G "! #
) r9"..
d_ &
[9]
. F
:
-W
principles of software engineering Y#
gY#4 Y
Y <
!
Y#
KY
Y4 tY)G Y
-
h Y" d
1Y Y
< Y Y)"0_ Y &
."!
: "!
) #
" :X
&
abstraction!&(
information hiding /9
(
modularity (
localization /G
(
uniformity g( &!
completeness / -( &
conformability _1(
: @
>
-W
EY &Y \Y :Y< & /9 :
9 0 d& & \ K
Y< ;Y/ h :qK d <
& 9
PYYY#G YYY
FYYY& YYY
YYY ..... YYY
.
.Y iY - Y
Y 89 P! 2
2Y Y Y
i/< :
&K 2 89 P!
.i/< :
&K 5
[1]
()^ @
>
.( ),@c
vii
software Engineering
Y'k activities 6 KY
Objects Y
O - Y <
! < <"
_YY
YY
O ; 8YY9\ YY . YY9 6 KYY
YY
O - HYY/ wYY YY& YY;_9/ 8YY FYY/<
[1]
. K :- !
9"&
0 /0
:i <
-
.h "
.h< "k &# d& ( " F
) -& /
&Y# Y
/9 tO Y FY/< &G
:- 81 2
t &
.
&
d
5 YY
/< 2YY YY' YY9 /-KYY
YY dYY YY /-KYY
:YY/G YY0
. -
e2 w_; & 9 i - G&
81
Y d&Y YG 8Y Y Y< Y
YG /
< K
:
U
@
m
c
-
.(i) i q& F 7 q K
E _
i&
; :9 F <
" ;\ :G F
9 -
q& 2
./&
; F
:-K r9" n9" 0" - < objects
O F
9 e2
.(; ) :!# 1 " - -
O -_ X .j
Y; 9Y' PY! .. Y/< Y Y-
& 6 K
<
O - e2 8
. n
YYY
O - 8YY9 YY9 system Boundary Relationships
qq>
qq
qq j -
O Y- 89 ; i )/9&
6 K
O : w -
6 K
t"Y# 8Y/
Y Y- Y-
9 r9 ) i jK
# 2
;\ n&
YY
O - rYY9 ) iO KYY YY YY ( YY YY _YY e KYY d&YY YY; r9"YY e KYY
YYY YYY 4 YYY"9& YYY-
2YYY (Input _YYY
YYY dYYY YYY &YYY
Y4 r9"Y Y
:Y F G e2" 9 -
O - r9 boundary
. d F : -
H
[2]
viii
software Engineering
ix
software Engineering
>
F#
Software development life cycle
-YY#
&
YY0
&phases YY64 YY YY<
! YY YY
YY0 YY
8Y/&
) / /< <&
5 -
! d & 0& /0
( 0"
hO &
&_Y 2Y Y"/0& \Y dO_&Y 2Y :-KY "! /
9 ` & 8O Q
&YYY
YYY
O YYYE YYY"/0& \YYY
. 5
0YY# YY64 e2YY YY" ^ 2YY
dYY
eYY
PYY! . Y!" YY0 Y#
YYY0 YYY YYY< oYYYG 1YYY YYYG
w"n t 0& 5 ; 64 e2 F
YY
. YY YY7 YY &YY
YY64\ YY
Y YX" Y#
Y- & /
9 r9
dYY oYY YY)"0& YY r9"YY YY^
tYY"0& Y9"6 \Y PY#
& 5 Y/
< &Y#
Y! dY&
&! ! H < .& j
.
)&G
d#5 n . :; O :;
. F 7 8/& -
6 :-
dY ; /&
6~
& #4
' & &F/< &
[1]
>
F#
.( ),@c
[1].
9 K " 9# G7
:
>
F#
m -W
: specifications phase
G_
" Y&
Y" 9 { F/< " )0 e2 E" /6 :/G d&
2Y d&Y Y Y
9
. Y
" Y; Y
Y Y) & /
9 9 2
YY
9 Y
eYY0 YY; YY YY iYY/9 YY
FYY/< PYY! 2YY YY YY9
YY0
YY0 2YY F
YY . YY! YY& YY/
9 YY; YY
functionality YQ 8YY9&
. d#
development
0_
. /0
t)G oG G & :X
&
validation %"X& t)G&_
.w"n E e t)G
j&/
/ & lG < <"
:Evolution
oG_ )
. q& n&)
9"6 !&#
oG q :X
&
YY YY/& YY0 YY64 e2YY dYY
& YY/&
YY!" YY/
< rYY9 YY)
.
K : hO & 8/&
64 %; 8/& : & /&
&
software Engineering
:
>
F#
-W
Y /
9 e2 9 o
0 w" :X
<" <
64 & \ :
9 & \ w0
. &
/
9
/X .
Y
( Y
< YG )Y
< Y< ;Y
( /9
t " ) t
YY/9 YY/
9/ YY! EYY YY< YY"< YY
YY0 YY YY wYY" YY YY&9"0
Y :qKY
Y& Y!" Y/
< Y EY Y Y& Y64 FY/< Y&G ;
. "! #
/ 9
:Waterfall Model +1
-
0 F&( ) 0 ! :-K G
e2
YY# YY .YY' YY0
FYY/< :YY iYY 2YY 6 YY" YYG5 YY
EYY
& .( )
Y)"&
:Y (
Y!"
\ Y < X- 9 5 < 2 ) :
9/ K
:
9
:YYX :YY6 YY& YY#,
YY YYX :YY
< YY# YY
e2YY YY YY; :YY
9 YY
.)9 X4
9 i
w"
&# -4
YY :YY
9 YY& YY)0 gYY-9 5 iYY YY
qq^ qq qq qq
Rqq 1
YY :-KYY iYY YY ) 0YY" q1YY \ KYY
X&YY# " \YY; YY YY0
2Y Y Y Y<k Y-& Y :YO Y; Y9 h&Y
Y Y< ( "! 0
/
YY/ YY7 " :YY"; :YY - iYY//G t"YY# Y GYY' :YYG YY- YY& YY
2Yj iY
-
F&
n
4 \ :G& i"7 - - d
1&
.!(
#
_ )
6 &;
< " &iE
- i w d :# G5
1&
[1]
.K
) 9 E
!
xi
software Engineering
xii
software Engineering
System and
Software design
Implementation
And unit testing
Integrating and
System testing
Operation and
Maintenance
YY 8YY/& YY; YY
YY FYY YY0 YY 8YY/& YY; :YY
e2YY YY_ YYq"
hY d&Y Y; Y< :Y Y< FY :Y
HY/ rY9 EY!& Y; .Y FY 7
. 0
2 < 5 /
9
r9" n9 \ :
r9
/1
: F K
/ ^
d)& l/& jc ,
c
YY YY
2YY ."1YY 2YY YYq&
YYE YY"/0&
!&YY#5 9YY YY YYE
. E" /0&
: - d&^ <
xiii
software Engineering
Developmen
t
Validation
Initial
Version
Intermediate
Versions
Final
Version
[1] C
C
Y
> F# ,( .) ,@c
Requirements
Definition
Formal
Specification
Formal
Transformation
xiv
Integration and
System testing
software Engineering
Requirements
Specification
Component
Analysis
Requirements
Modification
Development
And integration
System design
with reuse
System
Validation
.
.
.
.
.
.
xv
software Engineering
[1]
:
-&
!& -
.Incremental development E&
0&
.Spiral development E/G 0&
Incremental development: b% F% -
YY 5
YY" YY
YY0 YY YY6 YY YY YY0 YYE&
YY0& YY9
%Y< Y
/ YE Y9& EY Y Y
0 6 d) <
k :&
./0 i
9 Q
) E : ) H G
Y FY/<4 Y4 Y"/0&
\ Y' Y Y/<& Y
Y"/0&
-
iY Y
&
Y& Y"/0
Y
! Y" FY& EY 0 " .
F4 E4
. & E!&
#5 -
F& H/
: Spiral development: Cb+ F% -
:YX
Y Y
0 6 # /
E/G 0&<
Y-< Y
\ 64 & \ && 5
" E/ { F/< /
9 0
. G&/
Y& :Y Y 5 Y/
9 :Y / E/G) / : :X
Y/0 F/<
E/G) /G & d& 0&
G
. /
9 <" _ 1 : //G risks6
) d&
alternatives :OYY" objectives YY4 YYG d&YY EYY/G YY 4\ YY YY
.6
:/G 89 :O "d) d& X \ constraints )
d&Y \Y\ Y Y Y & Y/
h&Y
Y Yj& oY X \ 0& d&
. X /
w0
:
>
F% -
Capturing the YY
YY"/0& YYG YY hYY" YY0 YY YY0 dYY YY
.requirements
2Y Y ) Y
Y &Y
:Y
9 iY9;& Y dY Y Y"/0&
YG Y
Y)0 Y
:Y i
1Y /0
- ) (e i
-
5 e
/ -
Y) t"Y dY Y Y Y) Y - -
G
4 &
HYY/ :YY YY iYY YY) iYY YY-
YY
YYG YY
9 YYQ YY! YY :YY-/ :YY"; YY
.Q
4 iY Y) Y
e2Y\ 0&Y Y
8Y Y
:-K 89 :
F%
[2]
. / d
1# & i&Q
xvi
software Engineering
FO - +#
F%-:
-:11
% V% , nP
F% -:
e20 YY ) YY0 & Y :-KY Y/< Y
92Y .Y# # !PY
<
/ & &)
&
8K&-2 i"/0 :
9
& " dY:YG
/-KYY& YY iYY
&YY :YY- 9YY9& YY < FYY/ YY/
9
1YY & YY&
nYY
/-K ;_9 & 9 0G
2
- &_ d:
6 FY/< /{Y#4 :Y
9 Y
Y Y Y0 gY,Y /Y#j Y-& 8/ X 2 < < F/&j
e1) d.G& :
9
<
/ i K d
/0 t"#.:";
1 d
1<
4E
/0
/ .: - "#
F% P n -: ,c#
P
"{
0G .Environment Physical
 Interfaces
& -.Users and human factors d
8O Q
Functionality
&Documentation t
" Data
1 Resources
Security 4
'
! Quality Assurance
! P&j
;
\ e2
9.
,# -: NR
F% _ C
lU
P
nP
-P ,_
qP lq
%P
F
:,.
& "/0 5 wY) 81 tY" Y
Y/9 Y FY
Y Y 81YH2Y
)
' < :
< F/
_ zR +# P
F% ]# j y :
-:1
-
0 7
)0/ d&
& :
9
.
software Engineering
:
>
0# -
d
1&
8Y FY/< d
1Y
/ < t/0
/-K
: ! k < /
< d
1&
.:G 2
dY /-KY
FY/< 9& ) 0" & /0&
& o
Y" ^ Y"/0&
YG Y& Y
K !
\ 2 :G -&"
Y PY4 eY! 2Y Y Y& Y
Y-
Y/G Y YG ^ ! <-
.
(t"YY# YY
YY YY
)& ) Y YY&
YY
YY"/0&
YG YY0 YY YY&5 Y
<
YYY YYY) ) YYY X :YYY
9/
YYY) d&YYY ( YYY"/0&
8YYY9 YYY) ) YYY FYYY4
.d
1
/
) d" ( /0&
Y( iY & Y"/ ) :Y
9 Y' Y FY tO Y e2Y :YG Y d
1
[2]
.(i)"0 -
) 0
' %; g
xviii
software Engineering
- % M %O:N
][6:9
b Y :
% : M
9'\ & Y
/ d
1 & Y Yq"! Y
"Y#"Y Y0 &Y# Y
):Y
& d
1
&- < FY/Y FY; ; Y
.\Y dY)< Y& FY/< Y
" hY& < Y
Y
& ! i :"; - F/< P! H2 , & :
: <
/" e2)<
: )
"
:
9 (h Y& Y! Y iY " <) iY< YP Y#
; YY YY#"!YY# YY FYY/< e< YY
dYY YY- PYY
!& e;YY YY YY04
YY YY
F/< e< &#& K 0 ; G < .
` Y Y! tY
Y' :Y
9 " Y )< Y P Y#4) Y Y#
& YEY "Y h& iY
PY/0 Y& &Y# Y e< Y) Y Y tY
tY<
d Y
xix
software Engineering
X 2
xx
software Engineering
: G
2 F/< i& & -
- g
if (age<) benefit = minimum:
else if( (age<) benefit = minimum + bonus;
else if (age<) Benefit = minimum +*15 bonus;
Else Benefit = maximum
xxi
software Engineering
-
Y"&5 2YY Y
Y&!
.Functioning system
:performance testing 4 &" .
Y Yj&/ YE :
< { h " & d& 0 e2
d&YY YY"&5 2YY YY
YY& YY
< YY"/0&
YY) \YY tYY &YY
Y
Y"&9 Y
j 2Y Validated system Y
FY/< t1Y&
.E i"/6
P E ."
;Acceptance test &" )".
E i9;
t t)G
j&/ &" 5 e2 d&
Acceptance test E
)" <
& 9 9
:Installation test %"X& &" .
j& i :
9
{ %"X i d& 4&" 5
.i
/0
:
9 i
: R
S -
Y < Y! Y& :Y q "! 0& !
"! t6
. 1&;) 0 !
/- :/G& :X
'
) 9" Q F4 0 %
e2YY %YY(( JSD Jackson 1983 YY)6 ))DeMarco 1978 structured analysis
O Q )8O Q
0 e2 % h "Q -
89 0
9Y Y
X Y .\Y# Y0 F/< &function- oriented methods (F
object- oriented methods FYG
Y
O - t0 Y Y0 e2
-&# d)
'
YY
YY2
YYq FYY/< YY
" YY YY YY!
YY YY/&
YY!
e2YY %YY9
!
YY0 YY
YY- FYY/< YY0 e2YY :YY %YY
YY; unified modeling language uml
xxii
software Engineering
d
1Y specification Y Y
Y
e2Y& Y# dY# Y/X
Y
4
. /&
-
< F/< 0& G P! design
# 0) 6 :-
9 )
6 5 i F i
& P!
Y Y^ Y- FYG
iY
O Y0 Y H F/< X
. )"0& /& 5 ! 2
YY))G %YY; YY"/0& dYY YY H2YY %YY YY
- interactive systems YY/< & d
YY
stringent real- time requirements. G
[1]
:CASE #@ P
-
(computer-aided software engineering Y & Y"9 FYcase ./01Y KY
Y"< Y"
- < Y
Y!" Y#
.Y"
- "!
< #
9 2
CASE dY &Y Y
Y
Y0 Y Y64 Y Y
< ! d <
. "! #
! 6 d<
dYY< YY &YY YY& YY/&
hYY" YY YY 9YY# Y; 0 YY0q CASE YY
)
requirements analysis system modeling Y"/0&
:Y/G :YX Y
Y 6
debugging YYY04 :YYY/9 .G1YYY KYYY& system modeling YYY
YYY2
. testing & 5
YY& YYG
:YYX CASE YY
)\ YY Y YY!" YY#
YY6 :YY w"YY
Y&analysis modules :/G& notations (
_ ) &:!& &
YY d YY YY& Y)& YY &YY
Y)0 YY< ;FYY/< Y
YY
YY
Y"&
.system documentation.
t K
Y7 Y& Y ) 2code generator 7 F/< n CASE &G;
Y rY9 FY/<CASE Y&G Y-
Y
. Y
Y
Ysource code 1Y
[1]
. & 0 i/9#
< "!
:
TU
0O -
Y Y<
! tY)G Y! dY Y& FY Y!" Y#
! 6 F9
iYY/9 YY
lO 1YY e2YY tYY/9& 5 . YY gYY-9 YY& YY!" YY0"
lO 1YY
Y gY-9 Y n 2
"! <
e2 /# g-9 ) 7 " "!
lO 1Y e2Y F
Y . "! e2 w"
t &1
h " d
:-
:4 lO 1 e2 ( non functional attributes).Q
^
:maintainability 1 / ; .i
h YY" YY & d&YY YY .YYq& YY & YY!" d
YY :YY") PYY! YY YY
9
h "q& e2 .
&E& G q" & /) 0
.:
9 { q&
& &
xxiii
software Engineering
:dependability ;
.ii
e2 trustworthy. ( ) ) X "! -
' 9
Y
&<5 safety
qY security Y& lO 1Y Y \Y# Y0 FY/< :
K
Y 1Y&; YO E Y/ Y' P"Y 5 Y/< Y
&9 Y& "! reliability /<
.
/
: efficiency - .iii
FY/< PY! 5 Y oY system resources. Y
Y
Y
- 5
9
Y Y
9 e2Y processor cycles. h Y9
2Y :YX
h"
&Y# processing time Y! 9
%; responsiveness ! :
n& d
. ^memory utilization :X4 2
: usability  / ; .v
- ` F
9
.i
1
&
0#& "! #
9
"Y#
&Y E/& 2 i "5
!9&#_ / ; "!
.P/0 <
/ - t &
&F/< &G
:understandability of program code h " 7 d / ; .iv
Y! Y Y Y9; PY! & lO 1 !
< F e
4
Y
, Y- PY! YX
:"Y# FY/< Y-
" d
Y 2 i t"0& F/<
&9
Y reliable Y/< Y
&9 Y Y; Y- PY! Y 5 15 d
secure
YYY#
.interactive responsive YY/< & # YY YYY- PYY! YY94 hYY
Y & 0 d
1 lO 1 G_ /G& :
9 )2"!
YY!&
dYYO_ YY& lO 1YY tYY"0 tYY)G YY< {YY
YY))G YY dYY YY!"
[1:2]
.
" &"!
xxiv
software Engineering
-:V
1
0qqq#1
qqq@
# qqq "
qqq qqq
":()D0qqq
CqqqP CqqqP cqqq -
^ qqqqP 0qqqq# -qqqq( ) qqqq
qqqq
.[-] ^-"
# 1
0#1
() + -" "
:()
0 +
- qq qq+ qq
qq ^qqP 0qq# - qq%
. [69-77]
:
- ^P *% V *
6- http://www.yemensoft.com
2/12/2006
7- http://www.rspa.com
----/1/2007
8- http://www.google.com/ software engineering 9/11/2006
xxv