Software Consortium Mobile Application Solutions Presentation
Slides of Software Engineering Consortium
-
Upload
amudhan-kandasame -
Category
Documents
-
view
216 -
download
0
Transcript of Slides of Software Engineering Consortium
-
8/18/2019 Slides of Software Engineering Consortium
1/610
© 2004 by SEC
Introduction to Software Engineering
Software Engineering Consortium
(SEC)
-
8/18/2019 Slides of Software Engineering Consortium
2/610
2
© 2004 by SEC
Preface and Introduction (cont’d)
The objective of this course is to explain the Introduction ofsoftware engineering , and provide an eas and practicalintroduction to the important characteristics of softwareengineering! "fter ta#ing this course, students will understand
$ what is software engineering% $ wh software engineering is important%
$ how to develop software and manage a software project b using thesoftware engineering in detail!
-
8/18/2019 Slides of Software Engineering Consortium
3/610
3
© 2004 by SEC
Preface and Introduction (cont’d)
This courseware is designed for a semester&long for junior orsenior undergraduate students, and for the industrial parties!The following professors contribute to the development ofthis courseware'
$ onathan ee, *h+! (李允中 ) $ Chung&Shan iu, *h+! (留忠賢 )
$ !&! -uo, *h+! (郭忠義 )
$ Chien&.ung iu, *h+! (劉建宏 )
The /inister of Education sponsors this coursewaredevelopment!
-
8/18/2019 Slides of Software Engineering Consortium
4/610
4
© 2004 by SEC
Prerequisites
Introduction to Computer Science
*rogramming S#ills
-
8/18/2019 Slides of Software Engineering Consortium
5/610
5
© 2004 by SEC
Contents
Chapter 0! "n 1verview of Software Engineering
Chapter 2! Software *rocesses
Chapter 3! 4e5uirements Engineering
Chapter 6! Software +esign
Chapter 7! 1bject&1riented Software +evelopment
Chapter 8! Software Testing
Chapter 9! Software *roject /anagement and *lanning
Chapter :! Software ;ualit "ssurance
Chapter
Chapter 0=! >ormal /ethods and Software Engineering
Chapter 00! "dvanced Topics in Software Engineering
-
8/18/2019 Slides of Software Engineering Consortium
6/610
© 2004 by SEC
!eferences
?*ressman 2==6@ 4oger S! *ressman! Software Engineering' a practitionerAsapproach, 8th edition! /cB4"&.I!
?Sommerville 2==6@ Ian Sommerville! Software Engineering, 9th edition! "ddisonesle!
?4umbaugh et al!0
-
8/18/2019 Slides of Software Engineering Consortium
7/610
"
© 2004 by SEC
!eferences (cont’d)
?DeiHer 0
-
8/18/2019 Slides of Software Engineering Consortium
8/610
© 2004 by SEC
C#a$ter %&n 'eriew of Software Engineering
-
8/18/2019 Slides of Software Engineering Consortium
9/610
© 2004 by SEC
C#a$ter %&n 'eriew of Software Engineering
0!0 Software Crisis
0!2 Software /ths
0!3 Software Engineering *aradigm
0!6 The Evolution of Software Engineering
0!7 Software Engineering in Taiwan
-
8/18/2019 Slides of Software Engineering Consortium
10/610
%0
© 2004 by SEC
*#at is t#e Prob+e,-
:6 J of all software projects do not finish on time and within budget (Surve conducted b Standish Broup)
$ :=== projects in KS in 0
-
8/18/2019 Slides of Software Engineering Consortium
11/610
%%
© 2004 by SEC
!ea+ Cases
Dan# of "merica /aster et Sstem
$ Trust business! 0
-
8/18/2019 Slides of Software Engineering Consortium
12/610
%2
© 2004 by SEC
Prob+e,s of Software
Beneral issues
$ . vs! S
$ *roductivit' build new programs from scratch
$ /aintenance' maintain existing programs
Essence vs "ccidental (>! Droo#s)
-
8/18/2019 Slides of Software Engineering Consortium
13/610
%3
© 2004 by SEC
./ roo1s’ Essence
Essence' the difficulties inherent in the nature of software $ Complexit' development process, application domain, internals of the
sstem (e!g!, number of states, siHe of software, functionalit,structures, and behaviors)!
$ Conformit' software must adapt to interact with people according to
their diverse needs% therefore, software cannot be completelrepresented formall!
$ Changeabilit' software component is usuall the easiest one tomodif% (application changes, software changes)!
$ Invisibilit' software structure is hidden, onl behavior can be
observed when executing the software!
-
8/18/2019 Slides of Software Engineering Consortium
14/610
%4
© 2004 by SEC
./ roo1s’ &ccidents
"ccident' difficulties arise in representing, testing theconceptual constructs (S) (e!g!, software development
process), examples of accidental difficulties'
$ accidental complexit' abstract program vs concrete machine program%
solved b .! $ slow turnaround' batch programming vs time&sharing (shortest
response time)% solved b time&sharing!
$ no standard formats' individual programs vs integrated librar,standard formats% solved b unified programming environment!
-
8/18/2019 Slides of Software Engineering Consortium
15/610
%5
© 2004 by SEC
C#aracteristics of Software
Software Hardware
logical sstem element
developedLengineered
ot ware out but deteriorate
Ksuall custom&built
phsical sstem element
manufactured
ware out
assembled from existing
component
- no spare parts &es, with spare parts
-
8/18/2019 Slides of Software Engineering Consortium
16/610
%
© 2004 by SEC
Software yt#s (cont’d)
/anagement /ths
$ e alread have a boo# thatAs full of standards and procedures for building software! onAt that provide m people with everthing theneed to #nowM
$ / people do have state&of&the&art software development tools% afterall, we bu them the newest computers
$ If we get behind schedule, we can add more programmers and catch up
-
8/18/2019 Slides of Software Engineering Consortium
17/610
%"
© 2004 by SEC
Software yt#s (cont’d)
Customer /ths
$ " general statement of objectives is sufficient to begin writing programs $ we can fill in the details later
$ *roject re5uirements continuall change, but change can be easilaccommodated because software is flexible
-
8/18/2019 Slides of Software Engineering Consortium
18/610
%
© 2004 by SEC
Software yt#s (cont’d)
*ractitionerAs /ths
$ 1nce we write the program and get it to wor#, our job is done
$ Kntil I get the program NrunningO I reall have no wa of assessing its5ualit
$ The onl deliverable for a successful project is the wor#ing program
-
8/18/2019 Slides of Software Engineering Consortium
19/610
%
© 2004 by SEC
*#at is Software Engineering-
4eal orld Software orld
Software Engineering
-
8/18/2019 Slides of Software Engineering Consortium
20/610
20
© 2004 by SEC
Software Engineering Paradig,
Software engineering is a discipline that integrates methods,tools, and procedures for the development of computersoftware!
$ /ethod' introduce a wa to build S
$ Tool' automatic, semi&auto support for methods
$ *rocedure' define the se5uence in which methods will beapplied, the controls that help ensure 5ualit and coordinate
changes!
-
8/18/2019 Slides of Software Engineering Consortium
21/610
2%
© 2004 by SEC
Software Process
aterfall life ccle
*rototping
Spiral model
"utomatic snthesis model 1bject&oriented model
6 B model
-
8/18/2019 Slides of Software Engineering Consortium
22/610
22
© 2004 by SEC
raditiona+ Software Engineering
Software Sstems
+ata>unction Dehavior
Entit&4elation+iagram
+ata >low+iagram
State Transition+iagram
-
8/18/2019 Slides of Software Engineering Consortium
23/610
23
© 2004 by SEC
'bect6'riented Software Engineering
Software Sstems
>unction1bject Dehavior
+ata >low+iagram
Class+iagram
State Chart
-
8/18/2019 Slides of Software Engineering Consortium
24/610
24
© 2004 by SEC
Software Industry
Independent *rogramming Service
Software *roduct
Enterprise Solution
*ac#aged Software for the /ass Internet Software and Services
-
8/18/2019 Slides of Software Engineering Consortium
25/610
25
© 2004 by SEC
Inde$endent Progra,,ing Serices
(Era %) >eb 0irst Software Compan that devoted to the construction ofsoftware especiall for hardware compan!
*romoting Software Industr' two /ajor *rojects,
$ S"D4E, airline reservation sstem, P3= million!
$ S"BE, air defense sstem (0
-
8/18/2019 Slides of Software Engineering Consortium
26/610
2
© 2004 by SEC
Software Product (Era 2)
0lowchart Software &&"utoflow for 4C", but rejected!
Sale to the customer of 4C" F ID/!
+evelop and mar#et software products not specificall designed
for a particular hardware platform! $ /"4- I, a pre&runner for the database management sstem!
ID/ unbundled software from hardware!
-
8/18/2019 Slides of Software Engineering Consortium
27/610
2"
© 2004 by SEC
Enter$rise So+utions (Era 3)
+ietmar .opp! ID/ Berman
$ Sstems, "pplications and *roducts (S"*) P3!3billion (0
-
8/18/2019 Slides of Software Engineering Consortium
28/610
2
© 2004 by SEC
Pac1aged Software for t#e asses(Era 4)
Software products for the masses! 0 $ isiCalc, Spreadsheet program!
"ugust 0
-
8/18/2019 Slides of Software Engineering Consortium
29/610
2
© 2004 by SEC
Internet Software and Serices (Era 5)
Internet and value&added services period, 0
-
8/18/2019 Slides of Software Engineering Consortium
30/610
30
© 2004 by SEC
I ar1et
Hardwareproducts
Hardwaremaintenance
Software Products& Services
Processing Servicesand Internet Services
EmbeddedSoftware
ProfessionalService
SoftwareProducts
EnterpriseSolution
PackagedMass-MarketSoftware
-
8/18/2019 Slides of Software Engineering Consortium
31/610
3%
© 2004 by SEC
Software Products and Serices
EnterpriseSolutions
IBMOracleComputer AssociatesSAPHPFujitsu
HitachiParametric Technolo!People SoftSiemens
Packaged Mars-MarketSoftware
MicrosoftIBMComputer AssociatesAdo"e#o$ellS!mantec
IntuitAutodes%Apple
The &earnin Compan!
Professional SoftwareServices
Anderson ConsultinIBM'(SCSCScience ApplicationsCap )emini
Hp('CFujitsuBSO Oriin
-
8/18/2019 Slides of Software Engineering Consortium
32/610
32
© 2004 by SEC
E7ercises
*lease find the definition of Software Engineering from thetext boo#s, papers, and Internet as man as possible!
*lease surve the software engineering application inindustries of T"I"!
-
8/18/2019 Slides of Software Engineering Consortium
33/610
© 2004 by SEC
C#a$ter 2Software Process ode+
-
8/18/2019 Slides of Software Engineering Consortium
34/610
-
8/18/2019 Slides of Software Engineering Consortium
35/610
35
© 2004 by SEC
C#a$ter 2Software Process ode+ (cont’d)
2!3 Beneric iew of Software Engineering
2!6 Comparison of Software +evelopment *rocesses
2!7 "dvanced Topics
2!7!0 C//LC//I2!7!2 /odel +riven +evelopment
2!7!3 Extreme *rogramming
2!7!6 "gile /ethod
Exercises
-
8/18/2019 Slides of Software Engineering Consortium
36/610
3
© 2004 by SEC
Introduction to Software Process
4e5uirement ac5uisition (problem statements)
$ to describe the problem to be solved and providing a conceptualoverview of the proposed sstem
4e5uirement analsis
4e5uirement specification
Sstem analsis
Sstem design
-
8/18/2019 Slides of Software Engineering Consortium
37/610
3"
© 2004 by SEC
Introduction to Software Process (cont’d)
+etail design
Coding
Testing /aintenance
-
8/18/2019 Slides of Software Engineering Consortium
38/610
3
© 2004 by SEC
!equire,ent &na+ysis
" process of discovering, refinement, modeling andspecification!
$ *rinciples' represent information domain of a problem
information flow' data F control changes
information content' composite term!
information structure' organiHation
$ /odeling' (graphical F textual description)
modeling methods' S", 11", S+, +SS+, S"+T
model component' information, function, behavior
-
8/18/2019 Slides of Software Engineering Consortium
39/610
3
© 2004 by SEC
!equire,ent &na+ysis (cont’d)
$ "rtifact
4e5uirement specification!
$ capturing' functionalit, behavior, and structure
-
8/18/2019 Slides of Software Engineering Consortium
40/610
40
© 2004 by SEC
8esign
The problem is decomposed into modules
The interface between modules must be specified
+efine architecture "rtifact' design model
$ +ata design
data abstraction, data structure, data modeling
*rocedural design' iteration , conditional, se5uence
"rchitectural design' program structure, software architecture)
-
8/18/2019 Slides of Software Engineering Consortium
41/610
4%
© 2004 by SEC
I,$+e,entation
Individual module programming
$ *seudo&code
The goals $ the development of a well&documented
$ The reliable, eas to read, flexible, correct program
Integration of modules
"rtifact' executable program
-
8/18/2019 Slides of Software Engineering Consortium
42/610
42
© 2004 by SEC
esting
Test the sstem from requirement engineering toim#lementation
$ erification and validation
"rtifact' testing report
-
8/18/2019 Slides of Software Engineering Consortium
43/610
43
© 2004 by SEC
aintenance
/aintain the user satisfaction
$ 4epair errors, re5uirements changed or extended
Changes in both the sstemAs environment and user
re5uirements are inevitable $ /aintenance R Evolution
-
8/18/2019 Slides of Software Engineering Consortium
44/610
44
© 2004 by SEC
aintenance (cont’d)
-inds of maintenance activities
$ Corrective
$ "daptive
$ *erfective
$ *reventive
Definition Development After release
1x
1.5-6x
60-100x
The Impact of Chane
-
8/18/2019 Slides of Software Engineering Consortium
45/610
45
© 2004 by SEC
Software 9ife Cyc+e
aterfall model
*rototping
Incremental model Spiral model
>ourth&generation techni5ues
Knif process model
"utomatic software snthesis
-
8/18/2019 Slides of Software Engineering Consortium
46/610
4
© 2004 by SEC
*aterfa++ ode+
>re5uentl implemented based on a view of the worldinterpreted in terms of a functional decomposition!
$ hat does the sstem doM
Dased on functional decomposition!
$ top&down analsis and design methodolog
$ S"LS+
based on data flows ' +>+, ++, structure charts!
$ easil to map to conventional procedural language
* f ++ d + ( ’d)
-
8/18/2019 Slides of Software Engineering Consortium
47/610
4"
© 2004 by SEC
:ser !equire,ents
&na+ysis
:ser !equire,ents
S$ecification
Software !equire,ents
S$ecification
Syste,;oard 8esign
9ogica+ 8esign
Progra,;8etai+ed 8esign
P#ysica+ 8esign
i,$+e,entation;Coding
Progra, esting < :nits
Progra, esting<
syste,
Progra, :se
software aintenance
*=&
='*
&>&9?SIS
8ESI@>
:I98
*aterfa++ ode+ (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
48/610
4
© 2004 by SEC
Throwawa ' implement onl aspects poorl understood!
Evolutionar ' more li#el to implement best understood benefits '
$ improve communication
$ reduce ris#
$ most feasible wa to validate specification
$ for maintenance as well!
Prototy$ing ode+
-
8/18/2019 Slides of Software Engineering Consortium
49/610
4
© 2004 by SEC
The roles of prototping
$ as a means to ac5uire validate users re5uirements!
$ as scaled&down version of the final operational sstem!
$ as a means to validate solution specifications!
$ as a solution specification for design and implementation
Prototy$ing ode+ (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
50/610
50
© 2004 by SEC
S!stemImplementation
(etermine*e+uirements
ConstructProtot!pe
(emonstrateProtot!pe
*e+uirements
*e+uirementsAdjustments
Protot!pe
O,
Prototy$ing ode+ (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
51/610
5%
© 2004 by SEC
S$ira+ ode+
Spiral model
$ 4is# driven
$ Throwawa prototping
-
8/18/2019 Slides of Software Engineering Consortium
52/610
52
© 2004 by SEC
Progresst#roug#
ste$s
Cu,u+atiecost
8eter,ineobectiesAa+ternatieAconstraints
!is1 ana+y6sis
Prototy$e
!is1
ana+ysis
!is1 ana+ysis
!is1 ana+ysis
% 2 3Prototy$e Prototy$e '$erationa+
Prototy$eSi,u+ationsA ,ode+sA benc#,ar1s
8etai+eddesign
Code:nittest
Integrationand test&cce$tance
testI,$+e,en6tation
8esign a+idationand erification
Software$roduct
design
Softwarerequire,ent
!equire,ent
a+idation
8ee+o$,ent
$+an
Integrationand test $+an
P+an ne7t $#ases
8ee+o$A erifyne7t6+ee+ $roduct
Ea+uate a+ternatiesidentifyA reso+e ris1s
!equire,ents $+an+ife6cyc+e $+an!eiew
Co,,it,ent
$artition
S$ira+ ode+ (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
53/610
53
© 2004 by SEC
S$ecification&cquisition
S$ecification
Ba+idation
aintenance
#ig#6+ee+
s$ecification
($rototy$ing)
Interactierans+ation
&uto,aticCo,$i+ation
source
$rogra,
infor,a+
s$ecification
decision
rationa+
+ow6+ee+
s$ecification
for,a+
dee+o$,ent
uning
&uto,ated Synt#esis ode+
-
8/18/2019 Slides of Software Engineering Consortium
54/610
54
© 2004 by SEC
4e5uirements
gathering
+esign
strategimplementation
using 6B
Testing
.ourt#6generation ec#niques
-
8/18/2019 Slides of Software Engineering Consortium
55/610
55
© 2004 by SEC
'bect6'riented &$$roac#
11" emphasiHes on finding and describing the o)*ects & orconce#ts & problem domain!
11+ emphasiHes on defining logical software object thatwill ultimatel be implemented in an object&oriented
programming language!
11* (*rogramming), implements the designed componentsin C, ava!
-
8/18/2019 Slides of Software Engineering Consortium
56/610
5
© 2004 by SEC
''& ''8 ''P
:ser’s Pers$ectie 8ee+o$er’s Pers$ectie
Develop modelof requirements
Add detail and
design decisions Develop code
oat
age
*ublic class Doat public void sail() private +ate age%
U
'bect6'riented &$$roac# (cont’d)
'bect 'riented &$$roac# (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
57/610
5"
© 2004 by SEC
aintenance .urt#er8ee+o$,ent
:nitesting
CodingProgra, 8esign
Software!equire,entsS$ecification
:ser!equire,entsS$ecification
!equire,ents&na+ysis
Syste,8esign
Syste,esting
Progra,
:se
bottom&up' develop anindividual class
top&down analsis
'bect6'riented &$$roac# (cont d)
-
8/18/2019 Slides of Software Engineering Consortium
58/610
5
© 2004 by SEC
@eneric Biew of Software Engineering
+efinition' hat
+evelopment' .ow
/aintenance' Change
-
8/18/2019 Slides of Software Engineering Consortium
59/610
5
© 2004 by SEC
aterfall model problems
$ traceabilitLlanguages in different phases
$ *rocess is too linear
re5uirement ac5uisition and validation
$ maintainabilit ' due to the use of functional decomposition
$ assume full elaborated documentation at the earl stage of the lifeccle!
reusabilit ' top&down design
communication
Co,$aring Barious ode+s
-
8/18/2019 Slides of Software Engineering Consortium
60/610
0
© 2004 by SEC
$ based on functional decomposition
Strongl dependent on detailed functional brea#down
not consider evolutionar changes!
not encourage reusabilit
*rototping (partial implementation )
$ Denefits
improve communication
Co,$aring Barious ode+s (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
61/610
%
© 2004 by SEC
$ reduce ris#
$ communication between developments
$ determine a proposed designAs un#nown properties
$ address re5uirement ac5uisition and validation limitation $ provide a basis for assessing the feasibilit and
performance of alternative designs
$ most feasible wa to validate specification!
$ for maintenance as well
$ imitation
5uic# and direct approach without considering issues such as5ualit and maintainabilit!
Co,$aring Barious ode+s (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
62/610
2
© 2004 by SEC
verif correctness
and completeness
of design or
implementation
interconnections
during
architecture and
module design
containing
5uantifies
prototping
lang!specification
language
+esignlanguage
executablesupporting
formal
reasoning
low
priorit
detailalgorithmand datastructure
no
no
no
es
notnecessar
must
no
es
not
programminglanguage
efficient
anguage
Co,$aring Barious ode+s (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
63/610
3
© 2004 by SEC
longevit
t= t0 t2 t3 t6 t7
.unctiona+ity
i,e
inappropriateness
lateness
shortfall
slop ' adaptabilit
original re5t!
"
D
+
C
E
waterfallmodel
1 ' (t=) original re5t!
" ' ( at t0) an operational product, not satisfing the old to needs
because poor understanding of needs!" & D ' undergo a series of enhancements!
D & + ' the cost of enhancements increase, to build a new sstem!
stop at t6!
V ccle repeat itself
Co,$aring Barious ode+s (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
64/610
4
© 2004 by SEC
before understanding
of the userWs need RX
increase in functionalit
t= t0 t2 t6
>unctionalit
Time
#rowaway Prototy$ing and S$ira+ ode+
-
8/18/2019 Slides of Software Engineering Consortium
65/610
5
© 2004 by SEC
Timet= t0 t2 t6
>unctionalit
Eo+utionary Prototy$ing
-
8/18/2019 Slides of Software Engineering Consortium
66/610
© 2004 by SEC
t t. t/ t0
Functionalit!
t1
Time
&uto,ated Software Synt#esis
-
8/18/2019 Slides of Software Engineering Consortium
67/610
"
© 2004 by SEC
t= t0 t2 t6
>unctionalit
Time
user
4eusable Software
approach
conventional
approach
!eusab+e Software ersus Conentiona+
-
8/18/2019 Slides of Software Engineering Consortium
68/610
© 2004 by SEC
+o ou thin# NcomplexitOand NchangeOis the problems ofsoftware developmentM hM
Comparison of different software engineering paradigms '
waterfall, prototping, spiral, 11C, 6B
$ prototpe ' both specification and design
$ program ' optimiHation
E7ercise
-
8/18/2019 Slides of Software Engineering Consortium
69/610
© 2004 by SEC
Issues in using different #inds of language in waterfallmodel
different phases need different #inds of languages
transformation between languages at different phases! main features of each language
$ specification, design, prototpe, program
$ specification ' abstract of sstem functionalit
$ design ' abstract of sstem structure $ prototpe ' both specification and design
$ program ' optimiHation
E7ercise (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
70/610
© 2004 by SEC
C#a$ter 3!equire,ents Engineering
-
8/18/2019 Slides of Software Engineering Consortium
71/610
C#a$ter 3
-
8/18/2019 Slides of Software Engineering Consortium
72/610
"2
© 2004 by SEC
C#a$ter 3!equire,ents Engineering (cont’d)
3!3 1bject&oriented (11) software engineering 3!3!0 Steps of analsis' an example using 11 approach
3!3!2 Concepts and phenomena
3!3!3 Class and class identification
3!3!6 *ieces of an object model3!6 +ata modeling and 11"
3!6!0 +ata modeling and 11"
3!6!2 Software artifacts
3!6!3 1bject 1rientation
3!6!6 *olmorphism
3!6!7 1/T methodolog
3!6!8 >eatures of object orientation' DlairAs version
-
8/18/2019 Slides of Software Engineering Consortium
73/610
"3
© 2004 by SEC
3/% !equire,ents Engineering
-
8/18/2019 Slides of Software Engineering Consortium
74/610
"4
© 2004 by SEC
4e5uirement
$ >unctional re5uirement describes sstem services or functions
$ on&functional re5uirement is a constraint or a goal on the sstem or onthe development process
Kser (Customer) re5uirement
$ " statement in natural language plus diagrams of the services the sstem provides and its operational constraints
4e5uirements specification
$ " structured document for detail description of the sstem services!
$ ritten as a contract between client and developer
Software !equire,ents
-
8/18/2019 Slides of Software Engineering Consortium
75/610
"5
© 2004 by SEC
Incomplete 4e5uirements $ /ost software sstems are complex, that developer can never full
captured during the sstem development, therefore, re5uirements arealwas incomplete!
Inconsistent 4e5uirement
$ +ifferent users have different re5uirements and priorities! There is aconstantl shifting compromise in the re5uirements!
$ *rototping is often re5uired to clarif re5uirements!
C#aracteristics of !equire,ents
-
8/18/2019 Slides of Software Engineering Consortium
76/610
"
© 2004 by SEC
4e5uirements elicitation $ +etermine what the customer re5uires
4e5uirements analsis
$ Knderstand the relationships among various customer re5uirements
4e5uirements negotiation
$ Shape the relationships among various customer re5uirements toachieve a successful result
$ 4esearch on re5uirements trade&off analsis (formulating as goals)
4e5uirements specification
$ Duild a form of re5uirements
!equire,ents Engineering
-
8/18/2019 Slides of Software Engineering Consortium
77/610
""
© 2004 by SEC
Software modeling $ Duild a representation of re5uirements that can be assessed for
correctness, completeness and consistenc!
4e5uirements validation
$ 4eview the model
4e5uirements management
$ Identif, control and trac# re5uirements and the changes!
!equire,ents Engineering (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
78/610
"
© 2004 by SEC
!equire,ents E+icitation
Two sources of information for the re5uirements elicitation process
$ Kser (customer)
$ "pplication domain
"s#ing $ "s# users what the expect from the sstem
$ Interview, brainstorm and 5uestionnaire
Tas# analsis
$ .igh&level tas#s can be decomposed into sub&tas#s
Scenario&based analsis
$ Stud instances of tas#s
$ " scenario can be real or artificial
-
8/18/2019 Slides of Software Engineering Consortium
79/610
"
© 2004 by SEC
!equire,ents E+icitation (cont’d)
>orm analsis $ " lot of information about the domain can be found in various forms
(examples in E4+ slides)
$ >orms provide us with information about the data objects of the domain,
their properties, and their interrelations atural language description
$ with bac#ground information to be used in conjunction with otherelicitation techni5ues such as interviews
+erivation from an existing sstem $ Ta#e the peculiar circumstances of the present situation into account
(examples in E4+ slides)
*rototping
-
8/18/2019 Slides of Software Engineering Consortium
80/610
0
© 2004 by SEC
3/2 !equire,ents &na+ysis
!equire,ent &na+ysis
-
8/18/2019 Slides of Software Engineering Consortium
81/610
%
© 2004 by SEC
Information domain analsis
$ information flow' data transformation $ data content' data dictionar
$ data modeling
>unctional and behavioral representation
$ function' process transformation $ behavior' state transition diagram
Interfaces definition
$ functionLprocess interface
*roblem partition and abstraction $ at different levels of abstraction
$ classification and assembl structure
!equire,ent &na+ysis
-
8/18/2019 Slides of Software Engineering Consortium
82/610
2
© 2004 by SEC
*urpose $ focus on those 5ualities of an entit that are relevant to the solution
of an application problem
$ abstract awa those that are irrelevant
/odel' an abstraction for $ Knderstanding before (actuall) building
$ Communication
$ isualiHation
$ 4educing complexit
/ethodolog' build (analHe) a model of an applicationdomain
Software ode+ing
-
8/18/2019 Slides of Software Engineering Consortium
83/610
3
© 2004 by SEC
&$$+ication and So+ution 8o,ain
"pplication +omain (4e5uirements "nalsis) $ The environment in which the sstem is operating
Solution +omain (Sstem +esign, 1bject +esign)
$ The available technologies to build the sstem
-
8/18/2019 Slides of Software Engineering Consortium
84/610
4
© 2004 by SEC
the problemthe problemrequirementsrequirements
elicitationelicitation
build abuild aprototypeprototype
createcreateanalysisanalysismodelsmodels
developSpecification ReviewReview
#e &na+ysis Process
-
8/18/2019 Slides of Software Engineering Consortium
85/610
5
© 2004 by SEC
raditiona+ Software Engineering
Software Syste,s
+ata>unction Dehavior
Entit&4elation
+iagram
+ata >low
+iagram
State Transition
+iagram
.ro, &na+ysis to 8esign< &
-
8/18/2019 Slides of Software Engineering Consortium
86/610
© 2004 by SEC
'*( (F(
(ata"ase Ta"les
Screen2
*eport
Structuredchart
Structured'nlish
.ro, &na+ysis to 8esign< &raditiona+ &$$roac#
-
8/18/2019 Slides of Software Engineering Consortium
87/610
"
© 2004 by SEC
Entit
$ *rimar things an organiHation collects and records informationabout! (noun) ( )
E!g! persons, products, places, etc!
4elationship
$ in#age between entities! (verb) ( )
E!g! *ersons perform jobs, obs consist&of tas#s
Cardinalit
$ Identif how man instances of one entit are related to how maninstances of another entit!
Entity6!e+ations#i$ 8iagra,
-
8/18/2019 Slides of Software Engineering Consortium
88/610
© 2004 by SEC
$ +irection using an arrow pointing to the object of the action!
Examples
Persons
3o"s
Perform
Customers
Tas%s
Ser$e
Consist-of
.4. Persons
3o"s
.4#consist5of
3o"s
Tas%s
M4#ser$ePersons
Customers
Entity6!e+ations#i$ 8iagra, (cont’d)
perform
-
8/18/2019 Slides of Software Engineering Consortium
89/610
© 2004 by SEC
"ttributes' *roperties to describe an entit
$ #e attribute (#e, identifier) to characteriHe the specific entit (toretrieve a single entit occurrence (instance))
unique' to ensure that no other record has the same identifier!
unc#anging' to ensure that it alwas refers to the same thing!
Students Faculty
Courses
Assist Advice
TeachTake
Entity6!e+ations#i$ 8iagra, (cont’d)
Entity6!e+ations#i$ 8iagra, (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
90/610
0
© 2004 by SEC
$ Student is an entit about which a universit stores info such as theStudentYid, name, and phone!
Compound #es' made up of a number of different sub#esto produce a uni5ue identifier
$ e!g! course number section number term
The difference between an entit and an attribute is thatattributes are atomic!
$ i!e! "ttributes have no further attributes that describe them! Entitiescan be further described b their attributes!
5041693 !oakes"" #ane $4$%&14&
&14$6006 'lou(h" #) 4$6%4141
*ntity type +ey attri,ute Attri,ute
*ntity
occurrence
actual data
Students
Student-idna.e phone
e!g!
Entity !e+ations#i$ 8iagra, (cont d)
-
8/18/2019 Slides of Software Engineering Consortium
91/610
%
© 2004 by SEC
-ernel and characteristic entities $ Entities can be described b other subsidiar entities in a
hierarchical fashion!
to store related values of one of the attributes of an entit!
Courses
Sections
Meetins
*ntities +eys Attri,utes
Course-id
Course-id
Section-id
Course-id
Section-id
/eetin(-id
na.e
credits
Faculty
/eetin(-day
/eetin(-ti.e
oo.
&danced .eatures
-
8/18/2019 Slides of Software Engineering Consortium
92/610
2
© 2004 by SEC
$ The highest entit tpe in the hierarch is called a #ernel entit,which has a uni5ue identit that does not depend on the existence ofan other entit tpe!
$ Characteristic entities' to record the repeated characteristics of the#ernel entit!
e!g! Course is a #ernel entit, Sections and /eetings arecharacteristic entities describing the characteristics of Courses!
The uni5ue identifier for the characteristic entities is a multiple#e!
e!g! CourseYid SectionYid are needed to uni5uel identif asection!
&danced .eatures (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
93/610
3
© 2004 by SEC
$ 4ecursive relationships' an entit is related to itself
e!g!
$ for retrieving all famil relationships
erson
2s-/arried-To
2s-arent-of
2s-Child-of
&danced .eatures (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
94/610
4
© 2004 by SEC
$ &ar relationships
$ e!g!
"n example
Faculty
oo.s
/eetin(s
Sections
StudentsCourses
)ccupy
Teach Take
Contain
ave
&danced .eatures (cont’d)
*#ere to +oo1 for infor,ation-
-
8/18/2019 Slides of Software Engineering Consortium
95/610
5
© 2004 by SEC
$ existing forms
forms organiHe the data and remind what to collect!
It is common in manual sstems to provide large amounts ofredundant data!
e!g! Scholarship "pplication >orm
Scholarships
Students
eferees
eference etters
euested for.
7na.es and addresses8
na.es of Scholarship
applied for
Student nu.,er -----
na.e -------- ear of pro(ra. ----
:A ---
reuest
Apply for eceive
$ Existing file structures
> tl i ti h ll ti f li ti
-
8/18/2019 Slides of Software Engineering Consortium
96/610
© 2004 by SEC
>re5uentl organiHations have a collection of application programsthat do not lin# to each other! The ma re5uire complex programsto transform data used b one application into a form used b
another one! e!g! existing student record sstem
Accounts: Account_id, Label
Buildings: Building_id, Name, Address.
ourses: ourse_id, ourse_Name, redits.
ourse_!rogram: ourse_id, !rogram_id"epartments: "epartment_id, "epartment_Name.
#nrolled: $tudent_id, ourse_id, $ection_id, %ear, &erm, 'rade.
(aculty: (aculty_id, Name, Address, Birthday.
(ee_!ayments: $tudent_id, Account_id.
!rerequisites: ourse_id, !re), !re*, !re+.
!rograms: !rogram_id, !rogram_Name.Rooms: Building_id, Room_id, $ie, &ype.
$ections: ourse_id, $ection_id, %ear, &erm, (aculty_id -eeting_id,
Building_id, Room_id, "ay, &ime/ ...
$tudents: $tudent_id, Name, Address, Birthday.
-
8/18/2019 Slides of Software Engineering Consortium
97/610
"
© 2004 by SEC
-ernel entities' single #es, such as' "ccounts, Duildings,Courses, +epartments, >acult, *rere5uisites, *rograms,
and Students Characteristic entit vs! 4elationship (rules)
1erne+ entity (or characteristic entit)As #e not part of the #eof an entit
RX characteristic entit ,u+ti$+e 1eys are combinations of #es for other entities RX /'
relationships
$ e!g CourseYprogram' courseYid, programYid!!!
Enrolled' studentsYid, courseYid,!!! $ e!g 4ooms' buildingYid Z&&&& from buildingAs
roomYid Z&&& not identified precisel
characteristic entit
E!8 fro, E7isting .or,s and .i+es
-
8/18/2019 Slides of Software Engineering Consortium
98/610
© 2004 by SEC
Buildins
*ooms
Meetins
Facult!
Accounts
Students
Sections
(epartments
*eferees
Scholarships
Courses
Prorams
course-prora
applied-for
recei$e
fee-pa!ment
E!8 fro, E7isting .or,s and .i+es
esting E!8
-
8/18/2019 Slides of Software Engineering Consortium
99/610
© 2004 by SEC
o identification #e for entit
Two or more entities have the same #e
/an relationships to a single entit
Two or more relationships between the same entities &ar relationship
"n entit has no relationship
esting E!8
E t d d E tit ! + ti #i d +
-
8/18/2019 Slides of Software Engineering Consortium
100/610
%00
© 2004 by SEC
E7tended Entity6!e+ations#i$ ode+
To define the logical content of the database Extension in two dimensions'
$ to document the attribute of each entit
$ to document the semantic meaning of the relationships
8efine
-
8/18/2019 Slides of Software Engineering Consortium
101/610
%0%
© 2004 by SEC
8efine&ttributes
"ttributes' an elementar item of recordable data that cannot be further subdivided into meaningful data items! (>ield ordescriptor)
$ with two distinguishing features'
atomic fact' an attribute cannot have attributes of its own! single value' an attribute cannot have more than one value for an
single entit occurrence!
If there is more than one value for the same entit occurrence, anew characteristic entit must be created to contain the multiple
values!
8 fi &tt ib t ( t’d)
-
8/18/2019 Slides of Software Engineering Consortium
102/610
%02
© 2004 by SEC
$ *rimar #e' to identif uni5uel each occurrence of an entit, withthe following properties'
uni5ue
unchanging
never has a null or missing value can have more than one attribute to create a uni5ue #e!
$ a single attribute' an atomic #e!
$ multiple attributes' a compound #e!
dataless #es are not subject to change in the wa that #esmade up of data items often do!
$ "lternate #e' to provide a choice of identifiers!
8efine &ttributes (cont’d)
8 fi &tt ib t ( t’d)
-
8/18/2019 Slides of Software Engineering Consortium
103/610
%03
© 2004 by SEC
$ >oreign #e' to create a lin# with another entit, e!g!*41B4"/YI+ is a foreign #e lin#ing STK+ETS to*41B4"/S!
$ ull 1-' to indicate whether this attribute can ever have a nullvalue!
if an attribute does not exist for some occurrences of an entit!
if it exists but is not #now at the time the entit occurrence isrecorded!
foreign #e can have a null value if the relationship that the
map is optional! $ Tpe' tpes of attributes!
$ idth' max number of characters or digits!
8efine &ttributes (cont’d)
8 fi &tt ib t ( t’d)
-
8/18/2019 Slides of Software Engineering Consortium
104/610
%04
© 2004 by SEC
$ Example'
Entit STK+ETS
"TT4IDKTE *4I/"4
-E
>14EIB
-E
K
1-
T*E I+T.
STK+ETYI+
SK4"/E
>I4ST"/E
*41B4"/YI+
[
[
I+
C."4
C."4
I+
<
2=
2=
<
8efine &ttributes (cont’d)
S i f # ! + i #i
-
8/18/2019 Slides of Software Engineering Consortium
105/610
%05
© 2004 by SEC
4elationships $ Extension to allow for
o$tiona+ity' to determine whether the lin#ed entities mustalwas be lin#ed!
e7istence de$endency' to determine whether the existence ofan entit occurrence depends on the existence of an occurrenceof anther entit!
abstractions' permit the definition of a hierarch of entitieswith rules about how the levels of the hierarch are related!
Se,antics of t#e !e+ations#i$s
Se,antics of t#e !e+ations#i$s
-
8/18/2019 Slides of Software Engineering Consortium
106/610
%0
© 2004 by SEC
1ptionalit' $ /andator' If the relationship between entities " and D is
mandator, then each instance of " must correspond to an instanceof D
$ +#tional: If it is o#tional at the end of A, then some instance of A
can )e recorded that has no relationshi# to any instance of (
$ e!g!
ST;!*
-
8/18/2019 Slides of Software Engineering Consortium
107/610
%0"
© 2004 by SEC
Existence +ependenc $ to describe the relationship between characteristic entities and
#ernel entities
C);S*
C);S*S*CT2)
-
8/18/2019 Slides of Software Engineering Consortium
108/610
%0
© 2004 by SEC
"bstractions $ the more specific entities inherit the properties of the more abstract
entities
specific entities are collected into subtpes that share common properties with the more general entit, called a supertpe
$ overlapping subtpes (or aggregation relationship)
IS&*"4T&1> ( )
e!g!
optional"T.ETES /KSICI"S
STK+ETS
$(cont’d)
Se,antics of t#e !e+ations#i$s
-
8/18/2019 Slides of Software Engineering Consortium
109/610
%0
© 2004 by SEC
/utuall exclusive subtpes (or generaliHationrelationship)
IS&" ( )
e!g!
existence dependenc
STK+ET
K+E4 B4"+K"TES
Se,antics of t#e !e+ations#i$s(cont’d)
Se,antics of t#e !e+ations#i$s
-
8/18/2019 Slides of Software Engineering Consortium
110/610
%%0
© 2004 by SEC
Convert /' 4elationships $ *roblems
ot specific enough for the detailed modeling entities
e!g!
$ does not provide a wa of telling which of the man
possible sections a particular student is actuall enrolled in!
$ does not provide a wa of telling which of the man actualstudents are enrolled in a particular section!
STK+ETS SECTI1SE41YI
Se,antics of t#e !e+ations#i$s(cont’d)
Se,antics of t#e !e+ations#i$s
-
8/18/2019 Slides of Software Engineering Consortium
111/610
%%%
© 2004 by SEC
$ Solution
convert /' relationship into an intersection entit (orassociation entit)!
an /' relationship usuall represents a transaction that lin#s
the related entities! can be identified b as#ing Nwhat event or transaction cause the
/' relationship to occurO!
$ Intersection entit (association entit)
To represent a relationship about which we wish to maintainsome information!
Se,antics of t#e !e+ations#i$s(cont’d)
S ti f t# ! + ti #i ( t’d)
-
8/18/2019 Slides of Software Engineering Consortium
112/610
%%2
© 2004 by SEC
3ohnMar!
Tania
ST6('#TS '#*O&&M'#T
ACC-.STA-.FI#-.FI#-/
S'CTIO#S
ST6('#TS
'#*O&&M'#T
S'CTIO#S
3ohn ACC-. 3ohn FI#-.
3ohn STA-.Mar! ACC-. Tania FI#-/
Se,antics of t#e !e+ations#i$s (cont’d)
EE! ode+ of #e Student Subsyste,
-
8/18/2019 Slides of Software Engineering Consortium
113/610
%%3
© 2004 by SEC
''*M ST6('#TS
'#*O&&M'#TS
*')IST*ATIO#S
P*O)*AMS
OFF'*I#)S
CO6*S'SS'CTIO#S
FAC6&T7
associationentities
M''TI#)S
characteristientities
S# ? EE! S1i++
-
8/18/2019 Slides of Software Engineering Consortium
114/610
%%4
© 2004 by SEC
o S#ar$en ?our EE! S1i++
3o"5(escription
Position Tas%s
Sta8 Manaement
Bene9ts
S%ills
'mplo!ees
Stoc%5Options
Pensions
S# ? EE! S1i++ ( t’d)
-
8/18/2019 Slides of Software Engineering Consortium
115/610
%%5
© 2004 by SEC
o S#ar$en ?our EE! S1i++ (cont’d)
"nswer the following 5uestions based on the EE4/ on the previous slide'
$ (0) +oes ever job description have a related positionM
$ (2) Can a tas# exist without a related job descriptionM
$ (3) Can a tas# be part of more than one job descriptionM
$ (6) Can a s#ill exist without a related tas#M
$ (7) Can an emploee be both staff and management at the same timeM
o S#ar$en ?o r EE! S1i++ (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
116/610
%%
© 2004 by SEC
o S#ar$en ?our EE! S1i++ (cont’d)
$ (8) .ow man staff can a manager superviseM $ (9) hich emploees get both a pension and stoc# optionsM
$ (:) Can a manager get both pensions and stoc# optionsM
$ (
-
8/18/2019 Slides of Software Engineering Consortium
117/610
%%"
© 2004 by SEC
o S#ar$en ?our EE! S1i++ (cont’d)
+raw EE4/ based on the statements below' $ (0) " countr has a capital cit!
$ (2) " dining philosopher is using a for#!
$ (3) " file is an ordinar file or a director file!
$ (6) >iles contain records!
$ (7) " polgon is composed of an ordered set of points!
$ (8) " drawing object is text, a geometrical object, or a group!
o S#ar$en ?our EE! S1i++ (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
118/610
%%
© 2004 by SEC
o S#ar$en ?our EE! S1i++ (cont’d)
$ (9) " person uses a computer language on a project! $ (:) /odems and #eboards are inputLoutput devises!
$ (
-
8/18/2019 Slides of Software Engineering Consortium
119/610
%%
© 2004 by SEC
o S#ar$en ?our EE! S1i++ (cont’d)
"ppl E4+ and EE4/ to model the text description below! $ (a) " person has a name, address, and social securit number! " person
ma charge time to projects and earn a salar! " compan has a name,address, phone number, and primar product! " compan hires andfires persons! *erson and Compan have a man&to&man relationship!
o S#ar$en ?our EE! S1i++ (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
120/610
%20
© 2004 by SEC
o S#ar$en ?our EE! S1i++ (cont’d)
$ (b) There are two tpes of persons' wor#ers and managers! Eachwor#er wor#s on man projects% each manager is responsible for man projects! " project is staffed b man wor#ers and exactl onemanager! Each project has a name, budget, and internal priorit forsecuring resources!
o S#ar$en ?our EE! S1i++ (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
121/610
%2%
© 2004 by SEC
o S#ar$en ?our EE! S1i++ (cont’d)
$ (c) " compan is composed of multiple departments% each departmentwithin a compan is uni5uel identified b its name! " departmentusuall, but not alwas, has a manager! /ost managers manage adepartment% a few managers are not assigned to an department! Eachdepartment manufactures man products% while each product is made b exactl one department! " product has a name, cost, and weight!
Co,$onents of Structured &na+ysisprocess S*C processin( narrative
-
8/18/2019 Slides of Software Engineering Consortium
122/610
%22
© 2004 by SEC
process S*C processin( narrative
data > e?ternal entity !
process data ite. *% dia(ra.7data.odelin(8
!F! data store !ata !ictionary 7content8
uasicontinuous data flo@
control process
SA control ite.
control store
.ultiple instances of the sa.e process control ite.
CF! 7CS*C ,ar8 a reference to CS*C
control CS*C ST!
AT
Structured &na+ysis< d +i # i
-
8/18/2019 Slides of Software Engineering Consortium
123/610
%23
© 2004 by SEC
ode+ing ec#nique
model' describe information(data F control), flow, content! control&oriented applications deficienc
data&intensive applications
asic >otation
-
8/18/2019 Slides of Software Engineering Consortium
124/610
%24
© 2004 by SEC
asic >otation
+>+'
$ ' process (transformer of information) (I' dataLcontrolM)
(1'dataLcontrolM)
$ ' external entit (procedureLconsumer of information)
$ ' data item
$ ' data store (repositor of data observed b processes)
VV Control flow is not explicit!
VV The truth is that control is excluded in +>+ intentionall!
asic >otation (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
125/610
%25
© 2004 by SEC
asic >otation (cont d)
+>+ can be used to represent a sstem at an level of abstraction!(refine)
$ level =' context model (a single bubble)
$ information flow continuit' IL1 to each refinement must remain the same!
(balancing) o explicit indication of the se5uence of processing is supplied b
the +>+!
$ Explicit procedural representation delaed until design!
asic >otation (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
126/610
%2
© 2004 by SEC
asic >otation (cont’d)
Content of data (implied b the arrow or described b the store)
$ a collection of items' using data dictionar! (++) (onl content)
$ a need to represent the relationship between complex collections of data! (E&4 diagram for data modeling)
asic >otation (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
127/610
%2"
©
2004 by SEC
asic >otation (cont d)
processing narrative' describe (usuall natural language) a process bubble!
$ To specif the processing details in the bubble!
inputs to the bubble
algorithm applied to the input 1utput
4estrictions F limitations imposed on the process!
*erformance characteristics related to the process!
+esign constraints
E7tensions
-
8/18/2019 Slides of Software Engineering Consortium
128/610
%2
©
2004 by SEC
E7tensions
+ata&intensive application' $ +ata modeling to describe the relationshi# between complex
collections of data! (E&4 diagram)
Control&oriented application'
$ To describeLrepresent control flow and control processing as well asdata flow and processing!
E7tensions (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
129/610
%2
©
2004 by SEC
E7tensions (cont d)
(0)ard F /ellor extensions' extend S" notation!
$ ' 5uasicontinuous data flow (I'control L
1'control)
$ ' control process
$ ' control item
$ ' control store
$ ' process (multiple instances of the
same process)
E7tensions (cont’d)(2).atle and *irbhai Extensions' extend on representation of the control&oriented
-
8/18/2019 Slides of Software Engineering Consortium
130/610
%30
©
2004 by SEC
(2).atle and *irbhai Extensions' extend on representation of the control orientedaspects! (controlLevent)
$ otation'
' control flow (separate control flow diagram C>+ from +>+)
' reference to a control specification (CS*EC)
$ a window into an executive (CS*EC) that controls the processes in+>+ based on the event that is passed through the window!
$ CS*EC' (Control Specification)
& .ow the software behaves when a control signal is sensed!
& hich processes are invo#ed as a conse5uence of the occurrence ofthe controlLevent!
$ *S*EC' (*rocess Specification)
& To describe the inner wor#ings of a process representation!
E7tensions (cont’d) 4elation between data and control models
-
8/18/2019 Slides of Software Engineering Consortium
131/610
%3%
©
2004 by SEC
(F(s
PSP'Cs
Process
model
CF(s
CSP'C
Controlmodel
(ata output
(ata input
Processacti$ators
Controloutput
Controlinput
data conditions4occurs when data
input a process results in acontrol output
:: data conditions4a"o$e pressure
:: refer to CSP'C4in$o%e reduce tan
pressures
E7tensions (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
132/610
%32
©
2004 by SEC
CS*EC' if a data conditions occur which refers to aCS*EC bar, we must chec# CS*EC to determine whathappens when this event occurs!
$ *rocess activation table (*"T)' To indicate which processes areactivated b a given event that flows through the vertical bar!
$ State transition diagram (ST+)' To indicate how the sstem movesfrom state to state (behavior model)
state, an observable mode of behavior
events, cause the sstem to change state
8ata 8ictionary
-
8/18/2019 Slides of Software Engineering Consortium
133/610
%33
©
2004 by SEC
8ata 8ictionary
precise, rigorous definitions of all data elements pertinent tothe sstem!
usuall contain the following information'
$ ame, "lias, here usedL.ow used, Content description,
supplementar information!
$ Content description notation
R L L ? \ @ L Un L ( ) L composed ofand selection repetition option comments
recorded auto.atically fro.
the flo@ .odels
.unda,enta+ Issue
-
8/18/2019 Slides of Software Engineering Consortium
134/610
%34
© 2004 by SEC
.unda,enta+ Issue
data
control
data
control
Conventional
I' dataLcontrol
1' dataLcontrol
in +>+
ard&/ellor
IL1 data F control
IL1 control in +>+
.atle&*irbhai
IL1 data in +>+
IL1 control in +>+
S& and its E7tension
-
8/18/2019 Slides of Software Engineering Consortium
135/610
%35
© 2004 by SEC
S& and its E7tension
Summar'(0)Conventional'
ard&/ellor'
.atle&*irbhai'
process
process
CSP'C "ar
processcontrolprocess
control data item
data item
S& and its E7tension (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
136/610
%3
© 2004 by SEC
( )
(2)/odeling'
(0) information (control F data)flow and content &&& +>+ L C>+
(2) functionalit &&& data F process (+>+)
(3) behavior &&& CS*EC (ST+)
-
8/18/2019 Slides of Software Engineering Consortium
137/610
#e &na+ysis Process
-
8/18/2019 Slides of Software Engineering Consortium
138/610
%3
© 2004 by SEC
the problemthe problem requirementsrequirementselicitationelicitation
build abuild aprototypeprototype
createcreate
analysisanalysismodelsmodels
developSpecification ReviewReview
e a ys s ocess
-
8/18/2019 Slides of Software Engineering Consortium
139/610
%3
© 2004 by SEC
3/3 'bect6oriented ('') Software
Engineering
'bect6'riented Software Engineering
-
8/18/2019 Slides of Software Engineering Consortium
140/610
%40
© 2004 by SEC
g g
Software Syste,s
>unction1bject Dehavior
+ata >low
+iagram
Class
+iagram State Chart
Ste$s of &na+ysis< &n E7a,$+e:sing '' &$$roac#
-
8/18/2019 Slides of Software Engineering Consortium
141/610
%4%
© 2004 by SEC
+efine use cases Extract candidate classes
Establish basic class relationships
+efine a class hierarch
Identif attributes for each class
Specif methods that service the attributes
Indicate how classesLobjects are related
Duild a behavioral model
:sing '' &$$roac#
&$$+ication and So+ution 8o,ain
-
8/18/2019 Slides of Software Engineering Consortium
142/610
%42
© 2004 by SEC
$$
UML Package
"pplication +omain Solution +omain
"pplication +omain /odel Sstem /odel
&ircraft rafficContro++er
.+ig#tP+an &ir$ort
a$8is$+ay
.+ig#tP+an8atabase
Su,,ary8is$+ay
rafficContro+
rafficContro+
Conce$ts and P#eno,ena
-
8/18/2019 Slides of Software Engineering Consortium
143/610
%43
© 2004 by SEC
"henomenon -o)*ect.' "n object instance in the world of adomain,
$ E!g! / blac# watch
&once#t -o)*ect class.' +escribes the properties of phenomena
that are common, $ E!g! Dlac# watches
" concept is a 3&tuple'
$ Its /ame distinguishes it from other concepts!
$ Its "ur#ose are the properties that determine if a phenomenon is a memberof a concept!
$ Its Mem)ers are the phenomena which are part of the concept!
$
Conce$ts and P#eno,ena (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
144/610
%44
© 2004 by SEC
/odeling' +evelopment of abstractions to answer specific
5uestions about a set of phenomena while ignoring irrelevantdetails!
MembersName
Clock
Purpose
A device that
measures time.
C+ass
-
8/18/2019 Slides of Software Engineering Consortium
145/610
%45
© 2004 by SEC
C+ass
Class' $ "n abstraction in the context
$ encapsulates both state (variables) and behavior (methods)
$ Can be defined in terms of other classes using inheritance
Criteria of selecting classes
$ 4etained information
$ eeded services
$ /ultiple attributes
$ Common attributes
$ Essential re5uirements
C+ass Identification
-
8/18/2019 Slides of Software Engineering Consortium
146/610
%4
© 2004 by SEC
Identif the boundaries of the sstem $ hat object is inside, what object is outsideM
Identif the important entities in the sstem
$ earn about problem domain' 1bserve our client
$ Ta#e the flow of events and find participating objects in use cases(Scenarios and use cases)
$ "ppl design patterns
$ ouns are good candidates for classes
a$$ing Parts of S$eec# to'bect ode+ Co,$onents
-
8/18/2019 Slides of Software Engineering Consortium
147/610
%4"
© 2004 by SEC
'bect ode+ Co,$onents Part of speech
*roper noun
Improper noun
+oing verb
being verb
having verb
modal verb
adjective
transitive verb
intransitive verb
Model
component object
class
method
inheritance
aggregation
constraint
attribute
method
method (event)
Example
im Smith
To, doll
Du, recommend
is&a (#ind&of)
has an
must be
3 ears old
enter
depends
on
Cl
Pieces of an 'bect ode+
-
8/18/2019 Slides of Software Engineering Consortium
148/610
%4
© 2004 by SEC
Classes
"ssociations (4elations)
$ *art of& .ierarch ("ggregation)
$ -ind of&.ierarch (BeneraliHation)
"ttributes
$ "pplication specific
$ "ttributes in one subsstem can be classes in another subsstem, turningattributes to classes
Service
$ +omain /ethods' +namic model, >unctional model
$ Operation< " function or transformation applied to objects in a class! "ll objectsin a class share the same operations -Analysis "hase.
$ Signature: umber F tpes of arguments, tpe of result value! "ll methods of aclass have the same signature -+)*ect Design "hase.
$ Method < Implementation of an operation for a class -Im#lementation "hase., "olymor#hic o#eration' The same operation applies to man different classes!
'bect y$es
-
8/18/2019 Slides of Software Engineering Consortium
149/610
%4
© 2004 by SEC
Entit 1bjects' represent the persistent information ("pplicationdomain objects, NDusiness objectsO)
Doundar 1bjects' represent the interaction between the user and thesstem
Control 1bjects' represent the control tas#s performed b the sstem
Year
Month
Day
ChangeDateControl
LCDDisplayBoundary
ButtonBoundary
ode+ e#aior
-
8/18/2019 Slides of Software Engineering Consortium
150/610
%50
© 2004 by SEC
Indicate different states of the sstem Specif events that cause the sstem to change state
ode+ing E7a,$+e< & an1ingSyste,
-
8/18/2019 Slides of Software Engineering Consortium
151/610
%5%
© 2004 by SEC
Foo
Balance
CustomerId
Deposit()Withdraw()GetBalance()
C+ass Identification< >a,e of C+assA &ttributes and et#ods
>a,ing
-
8/18/2019 Slides of Software Engineering Consortium
152/610
%52
© 2004 by SEC
Foo
Balance
CustomerId
Deposit()Withdraw()GetBalance()
Account
Balance
CustomerId
Deposit()Withdraw()GetBalance()
“Dada”
Balance
CustomerId
Deposit()Withdraw()GetBalance()
.inding >ew 'bects
-
8/18/2019 Slides of Software Engineering Consortium
153/610
%53
© 2004 by SEC
Account
BalanceAccountId
Deposit()Withdraw()GetBalance()
Customer
Name
CustomerId
Iterate on Names, Attributes and Methods
Bank
Name
.inding >ew 'bects
-
8/18/2019 Slides of Software Engineering Consortium
154/610
%54
© 2004 by SEC
"ccount
Dalance
"ccountId
+eposit()ithdraw()
BetDalance()
Customer
ame
CustomerId
Dan#
ame
]Iterate on >a,esA &ttributes and et#ods].ind &ssociations between 'bects
]9abe+ t#e associations]8eter,ine t#e ,u+ti$+icity of t#e associations
.as
V
CategoriDe
-
8/18/2019 Slides of Software Engineering Consortium
155/610
%55
© 2004 by SEC
+onAt put too man classes into the same pac#age' 9&2 (or even 7&2)
/ortgage
"ccount
ithdraw()
*
"ccount
Dalance
"ccountId
+eposit()ithdraw()BetDalance()
Customer ame
CustomerId
Dan#
ame
.as
V
Saving
"ccount
ithdraw()
Chec#ing
"ccount
ithdraw()
#e &na+ysis Process
-
8/18/2019 Slides of Software Engineering Consortium
156/610
%5
© 2004 by SEC
the problemthe problem requirementsrequirementselicitationelicitation
build abuild aprototypeprototype
createcreate
analysisanalysismodelsmodels
developSpecification ReviewReview
-
8/18/2019 Slides of Software Engineering Consortium
157/610
%5"
© 2004 by SEC
3/4 8ata ode+ing and ''&
8ata ode+ing
-
8/18/2019 Slides of Software Engineering Consortium
158/610
%5
© 2004 by SEC
data&intensive applications
'-* (iaram Semantic (ataModelin
OOA
OOP&
attributes relationship
aggregation
Service /essage between objects classification F inheritance
-
8/18/2019 Slides of Software Engineering Consortium
159/610
''& 8ata ode+ing (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
160/610
%0
© 2004 by SEC
+ata object attributes $ data object tables ' normaliHation result in minimum redundanc,
that is , the amount of information that we need to maintain tosatisf a particular problem is minimiHed!
ormaliHation rules(0) onl one value for each attribute
(2) attributes should contain no internal structure
Software &rtifacts Prob+e, state,ents
-
8/18/2019 Slides of Software Engineering Consortium
161/610
%%
© 2004 by SEC
$ to describe the problem to be solved and providing a conceptual overview of
the proposed sstem &na+ysis<
$ to understand and model the application and the domain (usuall called amodeling activit)
$ the output is a model capturing' functionalit, behavior, and structure 8esign<
$ +ata +esign'data abstraction%data structure%data modeling
$ *rocedural +esign' iteration , conditional, se5uence
$ "rchitectural +esign' program structure ( control hierarch )% sstemorganiHation ( software architecture )
I,$+e,entation<
$ Executable code
*#y 'bects-
-
8/18/2019 Slides of Software Engineering Consortium
162/610
%2
© 2004 by SEC
4eal&world objects v!s! software objects
$ communications
ro,le.
do.ain
Solution
do.ain
),ect necessary
for descri,in( a
solution % pro,le.
space
),ect reuired
for i.ple.entation
a solution % solutionspace
soft@are realiBation
of the real%@orld
pro,le.
'bect 'rientation
-
8/18/2019 Slides of Software Engineering Consortium
163/610
%3
© 2004 by SEC
Identit'
$ each object is a discrete and distinguishable entit!
$ each real&world object is uni5ue due to its existence!
$ each object has its own inherent identit, therefore, two objects aredistinct even if all their attribute values are identical!
Classification' $ objects with the same attributes and operations are grouped into a
class
$ each object is said to be an instance of its
class
$ e!g! Diccle object &&&&&&&X Diccle class
Attributes:
0rame sie
wheel sie 1perations:
shi0t
move
0 !11 ' 2 3onathan 4ee All 5ight 5eser$ed
'bect 'rientation (cont’d) * l hi
-
8/18/2019 Slides of Software Engineering Consortium
164/610
%4
© 2004 by SEC
*olmorphism'
$ the same operation ma behave differentl on different classes $ an operation is an action or transformation that an object performs or is
subject to
$ method' a specific implementation of an operation
a polmorphic operation is an operation that has more than onemethod implementing it!
Inheritance'
$ the sharing of attributes and operations among classes based on ahierarchical relationship
$ each subclass inherits all of the properties of its superclass and adds itsown uni5ue properties (called extension)
$ reusabilit
0 !11 ' 2 3onathan 4ee All 5i ht 5eser$ed
Po+y,or$#is, (#aing ,any for,s)
-
8/18/2019 Slides of Software Engineering Consortium
165/610
%5
© 2004 by SEC
Static polmorphism $ 1verloading' an invocation can be operated on arguments
of more than one tpe!
Class Time1f+a
public void setTime(char?:@ time) ^U%
public void setTme(int h, int m, int s) ^U%
U
Time1f+a aCloc#R new Time1f+a( )%
aCloc#!setTime(09,0,=)%
aCloc#!setTime(N00'77'==O)%
Po+y,or$#is,
-
8/18/2019 Slides of Software Engineering Consortium
166/610
%
© 2004 by SEC
+namic polmorphism' an object has more than one tpe $ object reference can refer to an instance of an of descendants of its class
$ an instance of the class created, and is also an instance of each that classAsancestors
$ the same operation ma behave differentl on different classes method' a specific implementation of an operation
a polmorphic operation is an operation that have more than onemethod implementing it!
Po+y,or$#is,< E7a,$+eclass Student extends *erson
-
8/18/2019 Slides of Software Engineering Consortium
167/610
%"
© 2004 by SEC
void getame() Sstem!out!println(NStudentO)% U
class Emploee extends *erson
void getame() Sstem!out!println(NEmploeeO)% U
U
public static void main(String ? @ args)
*erson p% Duffered4eader inRnew Duffered4eader(
new InputStream4eader(Sstem!in))%
int numRInteger!parseInt(in!readine())%
if (numR R0) p R new Emploee( )%
else p R new Student( )%
p!getame( )%
U
-
8/18/2019 Slides of Software Engineering Consortium
168/610
-
8/18/2019 Slides of Software Engineering Consortium
169/610
' et#odo+ogy (cont’d)
-
8/18/2019 Slides of Software Engineering Consortium
170/610
%"0
© 2004 by SEC
Three models'
$ object model' the static structures of objects F
their relationships
object diagrams' object classes (node), relationships
(arc)!
$ dnamic model' interactions(control) among objects
state diagrams' states(node), transitions(arc) b events
$ functional model' data transformation of objects data flow diagrams' processes(node), dataflows(arc)!
chane o$er time
asic Conce$ts
"bstraction' focus on the essential inherent aspects of entit
-
8/18/2019 Slides of Software Engineering Consortium
171/610
%"%
© 2004 by SEC
"bstraction' focus on the essential, inherent aspects of entit
and ignoring its accidental properties! $ e!g! Kse of abstraction during analsis' deciding onl with
application&domain concepts, not ma#ing design and implementationdecisions!
Encapsulation' (11) separate the external aspects of an
object, which are accessible to their objects, from the internalimplementation details of the object, which are hidden fromother objects!
Sharing through inheritance (4euse)
$ data structures and behaviors(design)
$ code
.eatures of 'bect 'rientation<+air’s Bersion
Identif
-
8/18/2019 Slides of Software Engineering Consortium
172/610
%"2
© 2004 by SEC
Identif
$ The uni5ue identification of ever object is through the use of anobject identifier!
Encapsulation
$ The selection of properties to be encapsulated!
attributes, operations, representations, algorithms!!! $ The determination of visibilit of these properties! (I!e! a well&
defined interface)
Classification' group associated objects according tocommon properties
$ The Intent of a classification is the description of that classificationcharacteristics, therefore, the intent specifies a predicate!
.eatures of 'bect 'rientation<+air’s Bersion (cont’d)
Th t d f l ifi ti i th t f bj t i th t i t
-
8/18/2019 Slides of Software Engineering Consortium
173/610
%"3
© 2004 by SEC
$ The extend of a classification is the set of objects in the current environmentwhich features such behavior, that is, a population selected b appling a predicate!
>lexible sharing' The abilit for an object to belong to more thanone classification! and will re5uire a flexible form of behaviorsharing!
$ are based on the encapsulated properties, the considered classificationscheme, the relationship between classifications!
Interpretation' The resolution of the precise semantics of theshared item of behavior!
$ two steps involved in the resolution' tpe chec#ing and binding! tping chec#ing' determination of whether operations are supported b
a particular object
binding' locate the correct implementation of the operation!
E7ercises
-
8/18/2019 Slides of Software Engineering Consortium
174/610
%"4
© 2004 by SEC
Doth S" and 11" offer the mechanism for the partition! +othe support the interactions between the different levelsM
Compare the similarit and differences between the datamodeling and object&oriented modeling!
-
8/18/2019 Slides of Software Engineering Consortium
175/610
C#a$ter 4Software 8esign
-
8/18/2019 Slides of Software Engineering Consortium
176/610
%"
© 2004 by SEC
6!0 +esign >undamentals
6!2 +esign /ethod
6!3 "rchitecture +esign
6!3!0 "rchitecture *atterns
6!6 +ata +esign
6!7 Interface +esign
6!8 *rocedural +esign
-
8/18/2019 Slides of Software Engineering Consortium
177/610
-
8/18/2019 Slides of Software Engineering Consortium
178/610
8esign .unda,enta+s (cont’d) >undamental Concepts
-
8/18/2019 Slides of Software Engineering Consortium
179/610
%"
© 2004 by SEC
p
$ "bstraction
procedural abstraction $ a named se5uence of instruction that has a specific function
data abstraction
$ a named collection of data
$ that describes a data object $ can refer all the data b stating the name of the data abstraction
$ original abstraction data tpe is used as a template or genericdata structure from which the data structure can be instructed!
9ee+ of abstraction=ig#est +ee+
/9ow +ee+
/9owest +ee+
9anguage usedProgra,6oriented ter,ino+ogy
/Procedura+6oriented ter,ino+ogy
/I,$+e,entation6oriented ter,ino+ogy
.unda,enta+ Conce$ts
$ 4efinement
-
8/18/2019 Slides of Software Engineering Consortium
180/610
%0
© 2004 by SEC
4efinement
Top&down design strateg " hierarch is developed b decomposing a statement of function ( a
procedural abstraction) in a stepwise fashion until programming statementsare reached
$ Ever refinement step implies some design decisions
" process elaboration $ Statement of function (description of information) without the internal
wor#ing of the function (internal structure of the information)
$ *roviding more and more details as each successible refinement occurs
.unda,enta+ Conce$ts (cont’d)
$ /odularit
-
8/18/2019 Slides of Software Engineering Consortium
181/610
%%
© 2004 by SEC
/odularit
/odules' software is divided into separatel named and addressablecomponents
/odules vs! interfaces between modules
$ "void overmodularit F undermodularit% notice that therelationship between modules (that is, the number of interfaces
increase expontentiall with the number of modules) $ Software architecture
.ierarch structure of procedural components
Structure of data
It relates elements of a software solution to parts of a real&world problem
.unda,enta+ Conce$ts (cont’d) $ Control hierarch (program structure)
The organiHation of program components F implies a hierarch of
-
8/18/2019 Slides of Software Engineering Consortium
182/610
%2
© 2004 by SEC
e o ga a o o p og a co po e s F p es a e a c ocontrol
$ +oes not represent procedural aspects of software (iteration,condition, se5uence)
+epth L width L fan&in L fan&out L superordinate L subordinate
Two characteristic of software architecture
$ isibilit' program components ma be invo#ed or used as data b given component (indirectl) (e!g! /6 is visible to /0)
$ Connectivit' program components are directl invo#ed or usedas data b given component (e!g! /2 is connected to /0)
" module that directl causes another module to begin
execution is connected to it/0 /2
/3 /6
.unda,enta+ Conce$ts (cont’d)
$ Software procedure focuses on the processing details of each module
-
8/18/2019 Slides of Software Engineering Consortium
183/610
%3
© 2004 by SEC
Software procedure focuses on the processing details of each moduleindividuall (se5uence, iteration, condition)
a procedural representation of software is laered
$ Information hiding
modules should be specified and designed so that information(procedure F data) contained within a module are inaccessible to
other modules that have no need for such information!
abstraction defines the procedural entities
hiding defines access constraints to both procedural detail within amodule and local data structure used b the modules
Effectie odu+ar 8esign
Effective modular design
-
8/18/2019 Slides of Software Engineering Consortium
184/610
%4
© 2004 by SEC
Effective modular design
$ " modular design reduces complexit, facilitates changes, results in aneasier implementation!
$ Classification (based on temporal aspect)
monolithicproram
moduleproram
o"ject-orientedproram
code-and-9?
se5uential L incremental L parallel
subroutines L coroutines L conroutines
ithout apparentinterruption
L Can beinterrupted beforecompletion
L executesimultaneousl withanother module
Effectie odu+ar 8esign (cont’d)
$ " tpical control hierarch ma not be encountered when coroutines or
-
8/18/2019 Slides of Software Engineering Consortium
185/610
%5
© 2004 by SEC
" tpical control hierarch ma not be encountered when coroutines orconroutines are used
$ >unctional independence (independent effective modules)
Effective modularit' function compartmentaliHed and interfacessimplified
$ Cohesion' relative functional strength of a module
coincidental ' tas#s relate to each other loosel logical ' performing tas#s related logicall ( all output )
temporal ' all tas#s executed with the same span of time
procedural ' must be executed in a specific order
communicational ' concentrate on one area of a data structure se5uential
functionalhih
low
Effectie odu+ar 8esign (cont’d)
$ Coupling' interconnection among modules
-
8/18/2019 Slides of Software Engineering Consortium
186/610
%
© 2004 by SEC
Coupling' interconnection among modules
depends on the interface complexit between modules, entit pointor reference to a module, what data passes across the interface
o direct coupling ' module subordinate to different modules +ata coupling ' data passed via argument list Stamp coupling ' data structure passed via argument list control coupling ' passes control data external coupling ' modules are tied to an external environment common coupling ' refer to a global data area content coupling '
$ one module ma#es use of data or control informationmaintained within the boundar of another module !
$ branches are made into the middle of a module
hih
low
middle
8ata 8esign$ +efine data abstractions
data a"straction
-
8/18/2019 Slides of Software Engineering Consortium
187/610
%"
© 2004 by SEC
+efine data abstractions
$ Select an appropriate data structure to implement the abstraction $ Ksing entit&relationship modeling depict relationship between
objects
data a"straction
data structure
data modelin
-
8/18/2019 Slides of Software Engineering Consortium
188/610
&rc#itectura+ 8esign (cont’d)
aered sstems'
-
8/18/2019 Slides of Software Engineering Consortium
189/610
%
© 2004 by SEC
ae ed ss e s'
$ Sstem organiHed hierarchicall with each laer providingservice to the laer about it
4ule&based sstem
Dlac#board sstems' a central data structure represents the currentstate of the computation, a collection of #nowledge sources!
S!stem
Basic
Core
,nowlede Base
*B Fact
*ule 2 dataelement
*uleinterpreter
or%in
Memor!Input
Output selected
rulesdata
Blac%"oard
Procedura+ 8esign Structure programming
-
8/18/2019 Slides of Software Engineering Consortium
190/610
%0
© 2004 by SEC
Structure programming
$ logical constructs' se5uence, conditional, iteration $ to limit the procedural design to a small number of predictable
operations
reduce program complexit
lead to more readable, testable code
>low charts
$ Braphical representation for procedural design
$ imitation
Introduce inefficienc when an escape from a set of nested loopsor nested conditions is re5uired
"dditional complications of logical tests
Procedura+ 8esign (cont’d)
*rogram design language (*+)
-
8/18/2019 Slides of Software Engineering Consortium
191/610
%%