You are on page 1of 25

 

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
  :
%&#
 #"!         

 &
 )  ' . &#5   #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

 "+

*> @ %


* "%  -S%
*
> ]

* @c a 


0
* +%
* g @c


 YC

 "+ Z

* 
> P
* "R "^a
* b# 
] a.^Z

* # ^ ]%
*  ^bC""+
*  F P

* Y 
@ C_ eb

*
M%C

1990

* %  _C
* # + V
*  0.
b

F# ( ),@c  ][3

. -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 o G  11 E"  h!   ^  ! .
iv


 

software Engineering

mlU
U
#b CP

 "m .() ,@c


  ][7

  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 "!  &#0    .
 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 "- &#5   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  &) YY O 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_ ! < :

b Customer: c )  (T]c c F#   MF


 ]% User:) T]c  qP ]q(Y ( Rq q "q _ jq  %q M q
(   , %.
qqF Developer: qqcqq )  (T]cqqRqq qq "qq qqF% u 0qq M qq
].[9
b .

 :-K&      ;_9{ _X  ):

 c.( ),@c _ P C [9] M

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 YY X- :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
P YYY#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]

-: ^ V#  nPA System @^  


> R
entities
O - ! < 
activities 0K4 ! < 
. Relationship 0K4
O -_;   9/ 8
boundary  
 G 89

viii


 

software Engineering

: Y  %


  -WW
:  !"  
&! # #
<
: generic software/ 7  < _ ! 1
:YY < 4 YY YY YY" YY7 YY#, 0YY# h&YY
/)& YY dYY YY
EYY 1YY
 YY! 9 YY " YY< ;:YYX YY/q  YY !" dYY# YY /< tYY/0 YY 
.#
: customized software(11  )E_ "! ! 2
 YY7 0YY# YY0 d&YY YYE ! PYY/0  YY9 :YY 9 1YY1 dYY YY
d
YY 5 YY &-5 YY9  YY d-G&YY YY  YY
 :YY 9 2YY 1YY 1 YY0
.
9 < j 
\YY' d&YY YY YY 4 YY
 YY YY !" YY  <YY
 2YY  YY YY YY
Y
 Y Y
 Y0& Y7 0Y# iYO Q& Y#5 Y i1YO 1 i
e2Y 
& Y0& 7 )d  i  E P/6 P     0& i  d&  X
[1]
.E" /6 F/< 

>  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
-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! d Y& 
&! !  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 Y Q 8YY9&
. d#   
development  
 0_
. /0    t)G o G 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 d YY
& YY/&  YY !" YY / < rYY9 YY)
. 
 K : hO & 8/& 64 % ; 8/& :   & /&  &


 

software Engineering

(life Cycle)_ ( G  < ) /< t/0 : 9  h&


 
i / <

-:  & :   n&  ! 0 


(Requirements analysis and definition ) " /0&  89 G -
System design 
 d 1 -
Program design h " d 1 -
program implementation (e0 ) h " &  -
unit testing h " &"  -
system testing &" 
 -
system delivery 
 d / -
maintenance  1 -
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' g Y 2Y Y Y /9 Y!& 5
[2]
./& ( 6  ) 5
-7

:  
> 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 w YY" 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 YY X :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 ) 0 YY"  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

:Development Phased , nP F%


:-KY KY  :Y /G Y/ Y 0  F/< P! i  G5 
 P 
rYY9 YY _YY6 YY&; PYY/0& Y; YY/  e2YY YY
GYY' Y d 1YY& YY YY" :YY"; Y
. O 
 h "  :";
# \ ;  <K 
%; e2 :& 5 : 9   -  : -
. 5 \"0   k
Y Y0 e2Y Y KY  Y0 Y : /)&  6   ! 5 2
d)& : < F/<  
 0 d& o  Development Phased : F/< 0&
Y# 2Y tY4 Yk 0 F/< : 9 : 9/ 8O Q r9 i h " 
. 8O Q )  i )
-: ^ ( M   F# P >
#  @^ m P *
:Incremental model b% 
 -
iY /<  Y9& Y& 8O YQ P Y E < F e0 /0  
 d ) d& o 
YYYY YYYYE   YYYY' d&YYYY %YYYY;\ YYYY EYYYY4 HYYYY/ YYYYj YYYY YYYY" YYYY YYYY )
. : 9" /0& P  :-K  
 0&  5 d& F& (8O Q)E4
:Iterative model @% 
 -
rY9 Y q :Y9 d&Y Y- Y  Y 8O YQ :Y - h  d / d&  e2
. h "   : \ 8O Q H/
E d ) _ F/< 1G  0  -  i /#4 e2 b ^
 0& / <  9 & :"; / &G  91   &
 1 -"
.-" : 9)  9 d! K&  -  i
:spiral Model C 
 -
YY  9 hYY d&YY iYY  YY- YY-& YYE& 
 YY YY " YY i "YY7 YY
Y"/0&  "Y/ Y
 Y" . Y/ /) Y d-G&Y :Y Y risk 6 Y  \ 0&
FY Y0 Y)& dY  &  ( :O " ;  
  E   ) O"  : 9 0 \ : 9
Concept " / 9  " ) 9  d) :";  &  :O ": X  6   &) 4
t ;Y G d& 9 : 9 
 F/< P! 8 < :-K 81 & Operations
Y Y / 9 Y)  Y-& H2Y . Y-  Y F1Y; FY Y) ; Y Y Y j&/ " /0& 
oY X Y0 Y  YX Y0 Y Y# #4 h&
"  /0&  4 0  h&

. \ 0 _ d&  &" 5  d 1& i / < d&
YY' YY YY/&  :OYY" YY) FYY/< 6 YY  :YY /G < YY YY/  YY6 :YY YY
.e <& :"; :  O_  t)G& F/< 2
" ;  
 < /0&

xii


 

software Engineering

:(WATER FALL) jc  -


:YX /)& Y Y / < :Y Y Y
 Y0 Y   Y6 :YX  _KY 
:Y Y" Y
 Y0 d&Y . 1Y Y"&5 2Y 
& d 1Y& Y
  G
Y Y64 \ Y&_ KY Y   Y" .  / & /  F&) 5 d   F/< /
.  
 \ _  0 
: & :-K  
2 : X  - 
Requirements
definition

System and
Software design

Implementation
And unit testing

Integrating and
System testing

Operation and
Maintenance

[1] ( waterfall _K( )   ):-K

:C _ T]%%_ jc  ,  -.W


 "! d 1 
 d 1
System and software design
&  
 2 

Implementation and unit testing


e! \ 
 &
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 YY q&  YYE YY"/0&   !&YY#5 9YY YY YYE
. E" /0&  : - d&^ <


xiii


 

software Engineering

:(Evolutionary development ) CU "#1 F%  -


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 YY q& YY
d&YY dYY . iYY nYY jYY& iYY  ,YY oYY  YY0& YY6 \YY YY :YY< & 0 YY# YY
Y_ Y .
 / O 
 k F / %"X& t )G& 0 d
  t )G&
.r9" n9 \ :< & %"X& t )G& 0&  
 G 0
Specification
Outline
Description

Developmen
t
Validation

Initial
Version
Intermediate
Versions

Final
Version

[1] (O )5 0&( )  ):-K


Y   Y6 Y' Y< CU "#1 F% 
  C  C% , c^
YYq/ YY  YY FYY YY&G YY
 e2YY YY YY
 YY /-  YY) YY
 YY0
.Rapid prototyping9   4  
. !   
YY dYY!G 0YY#&   q1YY d
YY YY O YY)5 YY0& YY  tYY "0 YY- 
.4  1; d
   &  :X " - d
  E
: (Formal system Development) C
 C Y 
> F# -7
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
Definition

Formal
Specification

Formal
Transformation

xiv

Integration and
System testing


 

software Engineering

: (Reuse-based development) ] %1 P nP C


 F%  -8
YY< YY YY
\ YY ! d&YY oYY  YY /)&& YY#5 YY< YY/< YY
 2YY YY &9
. &d     ") -

Requirements
Specification

Component
Analysis

Requirements
Modification

Development
And integration

System design
with reuse

System
Validation

[1] (&#5 < /< 


"  0&   0) ():-K
:C 
 R  , -8.1
component analysis  -  : /G
Requirements modification " /0&  :9
System design with reuse &#5 
 < d 1
Development and integration \ !& E !&

: C] _ %1 P CP C


 F%  FO ,Z%#
." 
 /0& 8 
. -  : /G
." /0&  :9
. &#5 
 < d 1
.\ !& 2 
&
.  
 t)G&

.
.
.
.
.
.

:(Process iteration) @  # -


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

[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 /  w 0

: (FcY  ) l_ # -


Y / 9  O Y) 74  : X -i  d& :9      H2 F 
. 
<  {  64 H2 "!

:  
> 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 YY  Q 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:Y G
 /-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
" {  
  0 G .Environment Physical
 &#5 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
 .

 -:'   1 / .   8O Q lO 1& & #  


 .
 -: Z' . & "/0  t "&5  2 ! P"
; 5 i YE 
 Y 2Y dY
e0  t"# .w"n  i"/6
 H2 n _   0 E &   < P!  F/)   i
 & "/0  ! F& / e20  g @#   .0 -:  %
. - Correct G G    04
. - & F
9  consistent - 5
9   & P/0.
. YYY-  PYYY! Complete YYY  d&YYY YYY \YYY5 YYYG  & YYY
/ YYY/
 _    &;. i
 9
. - ; F
9  Realistic  9 - ;   t "0&/ /;\ .
. - &j )/9 '  : 9/& "/0
 .
. -   -&.verifiable 
 t)G
xvii


 

software Engineering

.traceable \"&&/ / ; - .


.Requirement Definition Document " /0&  89 tO tO e2 F/< t/0
z# ,+% 0 " mathematical C- ,@c F% ,# P -: Z
:0%  C_   
> 0# n F%
(:Y /; :Y"; Y
<
YG Y& ) Y"/0&  8Y9 Y) Y&5 d&Y Y
 <
Y-  oY G d
Y" /0& : ! 8 ( K" q )  9 "0 q/ 9&#  P&-&
Y ""Y# Y9 Y& : KY  Y 9 P"  H 5   / : d : 9/
FY/9 gY-9 d 1Y  :Y"; Y  & Y / " 9& r9   # F 4 P/^
qKY Y
 Y ( : 9 < 8;& )  "9& 
 F/<  &t/0 ; X  : "#

  G e2  &  4 P !&  5  <&" backup 6 & : !  / 9
YY 2YY !  YY# # YY   YY) iYY4 ( :YY 9 YY  & YY) YY G e2YY YY YY
 d 1YY  YY"&9
Y
< h&
 
 d 1  <
 X 0 F , ; :-K K" q/ F/< <& 5
YY YY YY YY & d&YY HYY :YY"; YY YY YY& iYY" /0& FYY"/ 5 iYY4 :YY 9 iYY/") 5 YY
(Requirement specification Document) ( Y"/0&  Y tO Y ) F Y tO Y
/#j " /0& &  -  "! #
 -&   6 :O # 9&#  P&-
UML Unified Modeling YY  YY2
 YYq : YYX  : "YY# FYY/< YY
 . %YYG YY
)
.  !" d
/  O
 9 8 q  ) 
# 2  q  Language
: F% ^ l"+%* Z% -: 
YY) ( :YY 9/ YY) YY& )YY"/0&  8YY9 YY)  YY _YY YY / ! YY dYY YY&
5 Y 
 _Y  & Y7& GY Y Yj&/ ( d 1Y / " ) & )/0& 
!: 9" /6 F"/ 5   - # ! &
  5 0)    X 9

: 
> 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 P Y4 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

R _| P@# P C_ 0% -: ^#FO ^ iterative


d& -:5& & d 1&1 Conceptual design2Y ' Y :Y 9/ .Y2Y
) #  i
  & G  )  F/< : 92 
 & d )&5 0/ &   .
 -: :G& d 1&1  F )   : < X&  /< t/0 d 1d#
& d 1&)
 technical design2 ! P Y0 / Y  Y Y Y9 "! Y
_ "

 .
  & P/09/ 4  F0 4 ) F& d 1&1 ( &2Y iY /< :9
 i / < j- & F  F& d 12 '  :Y 9 Y- FY/< iY) "0
;\  :Q  -k  &  0 / .
(& d 1&1 :Conceptual design
 E2 & FY/< d 1 8O YQ
 Y functions :Y 9/ Y-  Yq/ PY&-   Y
) q" < P !  (K /{#Y :Y 9  Y) :Y 9 (WHAT
 Y ! PY Y-  Y
    ! : 
 4 d  t)G : & "/0 & dG . ) #
(& 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

- %   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
 d YY 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
t Y< d Y

   <  :/)&# 04  "  h < < FY/& KY Y Y


 \Y) Y
# ;. -  %
 7   X- "! <  !" F/" ;< ;   #&  Y!d
 ' H &  : - \ " h  r9K   9 "&5 " ^ h
 t2 ;  "!  P! H2 - Y- "!Y&- Y  Y)0'\Y ! GY
 ) e ;   g . w) i& &-

xix


 

software Engineering

: Programming Guidelines  P Q -


: S
Visual BasicH Y  Y!  Yq BasicH Y  Yq Basscal -#  q i5 q
. q/ ^   C# C++/C  _# q Oracle: q
^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
OPERATTING SYSTEMS ,Sc% > COMPILERS  % -APPLICATIONS " F% DATA BASE MANAGEMENT SYSTEM  P > -

: Control Structures @+% ,  -W


(Goto if- else :YYX ) h YY" :YY < YY YY d-G&YY YY& :YY  HYY/ YY 1YY)
EY) Y Y   \Y"&& /Y# GY' /9! G
/< :  e2 i &

. -k ; 9#
Benefit = minimum;
if ( age< ) goto A;
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

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

Y H2Y generality is a Virtue EY    9 "!


; < ) d <
Y; :Y;j HY! Y ) Y  9&Y# Y< Y - &Y& Y < Y!" H7 :9! O
! H   &  - :9&  - 
H!    &q&   F
9 5 # &  5
 X   - H
 / ( 9# !  )
2YY  XYY YY H2YY YY- HYY /< YY-  YY YY# HYY!  :YY9 YY YY- YY
<
: H : ) i9&#
( :Y 9 tY Y ) HY
 PY/0& Y)9 Y Y & HY
 PY/0& Y; \ Y h " .
.i& & !  %;  E 
.i&  8/&  )9  h " &" i / < i& G 2 %; .
.e0&  - 2 :9& i& G 2 ! %; .
HY /< H2Y h Y" Y/- G  " 9  E 5   h " 2 

:YY YY YY' 6 YY"  FGnYY5 YYE YY & YY! <YY#  YY YY9
[1]
.< 
:M  %O :C Z b
:Y 9 iY  j&/ h "  &"  
 0  /  F 5
/
. E i9;& 2 G
 F/<
Y &9 nY9 Y"&5 Y Y X- iY /< Y! YE FY O 
 
 d / :";
:_
X e &" d& 2  F/<
.( : -   
 
 E -  ! <  h " -  )
-:_X &" 5 e2  i&9  2  F/<  &9 4 r9"
" /0&  
 )   : 9 :
d 1& 
 )   : 9 :
i
 E i9;& 
 : 9 :

xxi


 

software Engineering

-: %O1 ,


:Y Y< FY/< d&Y Y"&5  / <   "- d!G &"   F/< : 9<

-:/   E
:Module testing component testing -  &" .
Y ) Y< EY9  F/< - :  &" d
 &" : 
YYY"&  iYYY
 \YYY;&  YYYG
 FYYY/< iYYY/ < YYY YYYj&/ YYY
 YYY-
iY Y _Y "  e 9 i
 (Output )  /< :1G&  /9 
.(input )
:integration:Testing : -& &" .
Yj& PY!  1Y_ #  j& 
 - : &" 9
r9" n9   n  5 i . G :-K 9 : 9&# 
Y Y9;&  Y{   :1Y Y-  e2   /)
 /9  o G
. : -&    &" 2
:Function   Q &" .
  Q , i  j&/ i - : ! \ 9 &" 
 i 1)
Y
< Y
 Y"/0& tO Y  G'   ) i /<  9& &
:YY < Y iYY FY/< YY
 2Y Y"&< YY

-  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

9 Y 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 .YY q& 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&; Y O 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  !&#5 :  n& d

. ^ memory utilization :X4 2
: usability &#5 / ; .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]

-qq qq qq C.Rqq+ bqq -" qq qq


":()Cqqb Vqq qqP/ -
.
  -  

-
 qqq qqq -qqq
 qqq-" qqq"# Nqqq- +":( -qqq )qqq+ CqqqP/ -
.

5- Shari Pfleeger,: software Engineering Theory and practice, 2nd Edition

:
  - ^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

You might also like