Professional Documents
Culture Documents
Software Engineering: Republic of Yemen Faculty of Engraining Department (I - T)
Software Engineering: Republic of Yemen Faculty of Engraining Department (I - T)
*+#( % :,-
.
)(--
i
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
)[1].( APPLICATIONS
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
YC "+
Z "+Z
Z "+
1990
. -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
! . :
-
-
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. ^
:
v
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
*
:
-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
viii
software Engineering
>
C
D -WW
iYY/
< Y iY Y
9 /-KY :YG iYY ( h Y ) Y Y0 :Y
< Y
PY/6
Y"&- P Y Y- Y-
HY
" K
& G _X
. :n :-K d& 9 K "\ q&!
:
>
R
% F]
% g
\YY
! YY
8YY :
KYY YY"/0&
e2YY iYY" /0& YYG& :YY
9 YY YY
& YY)< .
.
7 & i -
:Y
9 FY/< iY'< :Y
9 Y Y& Y"/0&
tY)G Y
/ Y< d
1Y '\ .
iY&) 2Y4 iY9 iY&9 Y&5 Y
< Y
i/< # 2 :-K i .'
.i/<
EYY4 /1YY& d 1YY&\ YY' FYY/< :YY
9 d&YY d
1YY& FYY/< :Y
9 YY) YY9 .
.K
.h " & .
.h ")) G j&/ :
9 9'" & /0&
9 < e &" .
.:
9 F
d/ .
iY/
< _Y Y dY Y& Y04 : K
r9
; / :
9 d/ 9 .
.
1 9
_ 0
F/< P! & &" 5
[2]
ix
software Engineering
>
F#
Software development life cycle
:
>
F#
m -W
x
software Engineering
YY
:YY- 6 KYY
YY0 YY YY9
nYY& :YY
HYY/ YY YY/ :YY
.( h " ) O
h&
F/< j_
Y0 ; Y FY Y& Y"/0&
YG Y Y0 j "h&
( Y G %Y< ) i& h " d/ 0 F F& "
2YYj Y; hY" Y0 Y e Y' gY 2Y Y Y
/9 Y!& 5
[2] ./& ( 6
) 5 -7
:
>
F#
-W
: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
YY
2YY YY :YY& YY! dYY YY&k YY0 YY
YY :CU
qq"#1 qqF%
8Y Y0 \Y' d&Y Y
2Y Y .%"X& 0&
G 6
Y& Y Y
Y09 Y& Y
YG& Y
E& Y6 :
9 9 & d& d. <
YY YY& EYY!& YY
< YY" YY
. YYG YY6 Y dYY . /YY9 YYq& YY
d&YY dYY . iYY nYY jYY& iYY ,YY oYY YY0& YY6 \YY YY :YY< & 0YY# YY
Y_ Y
.
/ O
k F / %"X& t)G& 0 d
t)G&
.r9" n9 \ :< & %"X& t)G& 0&
G 0
Initial
Specification Version
Outline
Description Developmen Intermediate
t Versions
Validation Final
Version
Y2
hY Y Y/
< Y< Y"< Y' Y
:G&
2)
Y Y
2Y :Y & ."! / 8
0&
!
! 2
Y# # :G # #4
( '\
G" )/0&
89
Y Y!
Y# #4 Y0& Y
: KY :YX
& Y
!
\ & d& 4 d
&Y
Y :YX Y
EY Y
FY Y'k Y PY F G
. 4 < # #4 0&
t"0 -
[1] C
C
Y
> F# ,( .) ,@c
Requirements Formal Formal Integration and
Definition Specification Transformation System testing
xiv
software Engineering
Development System
And integration Validation
:C
R
, -8.1
component analysis -
:/G
Requirements modification " /0&
:9
System design with reuse 
< d
1
Development and integration \
!& E!&
."
/0& 8 .
. -
:/G .
." /0&
:9 .
. 
< d
1 .
.\
!& 2
& .
.
t)G& .
6 2
"
/0& &# d&
O
Y/< - " /0& /< 1G /
< -& 2
\YY YY
t YY0 YY- YY))G YY/< :YY
9 YY
YY0
Y9 Y&
Y ) d & E" /0&
YY
YY YY KYY YY YY-"
:YY
YY/< :YY
9
. "-
[1] @
# ( W),@c
xv
software Engineering
:
-&
!& -
.Incremental development E&
0&
[1] .Spiral development E/G 0&
: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%-:
xvii
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
(& d
1&)
:technical design
2YY &YY# d
1YY d&YY)
iYYYY0 FYY
YY )YY iYY/G& dYY FYY
YY
/02 ! P ) 2 & d
1 /{#4 7
0 < Y (How ) YY0
\Y FY nY Y
Y Y d 2Y & Y< d
1Y
9&Y# PY&- Y Y"9
P #)
. i
xix
software Engineering
: S
^q Fq
#q Cq_ q@# q q nqP q%# Cq% : MACHINE ANGUAGE } S
ASSEMBLY Vqq% qqS nqq#
qq"# %qq Cqq_ jqq nqqP qq# qqS ( )^ qq
:
. } S C_
^ 1 _ nP %# LANGUAGE
COMPILERS % -
Benefit = minimum;
if ( age< ) goto A; X
2
Benefit = maximum;
goto C;
if ( age< )goto B;
if ( age< )goto;
A: if ( age< ) goto B;
Benefit = benefit* 1.5 + bonus;
goto C;
B: if ( age< ) goto A;
C: next statement
h " 2
) (:-K
xx
software Engineering
: G
2 F/< i& & -
- g
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 -
xxii
software Engineering
d
1Y specification Y Y
Y
e2Y& Y# dY# Y/X
Y
4
. /&
-
< F/< 0& G P! design
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 -
: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
xxiv
software Engineering
-:V
1
0qqq#1
qqq@
# qqq "
qqq qqq
":()D0qqq
CqqqP CqqqP cqqq -
^ qqqqP 0qqqq# -qqqq( ) qqqq
qqqq
.[-] ^-"
# 1
0#1
-
qqq qqq
-qqq
qqq-"
qqq"# Nqqq-
+":( -qqq )qqq+ CqqqP/ -
.
:
- ^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