Software E
t
ngineering
Versiont1.2
Julyt3,t2006
SoftwaretEngineering 1
,J.E.D.I
Author RequirementstFortthetLaboratorytExercises
Ma.tRowenatC.tSolamo MinimumtHardwaretConfiguration
• MicrosofttWindowstoperatingtsystems:
• Processor:t500tMHztInteltPentiumtIIItworkstationtorte
Team quivalent
JaquelinetAntoniotN • Memory:t384tmegabytes
aveentAsranitDorist • Disktspace:t125tmegabytestoftfreetdisktspace
Chen • SolarisTMtoperatingtsystem:
OlivertdetGuzmant • Processor:t450tMHztUltraTMt10tworkstationtortequivalent
RommeltFeriatJoh • Memory:t384tmegabytes
ntPaultPetinestSan • Disktspace:t125tmegabytestoftfreetdisktspace
gtShintRaghavantS • Linuxtoperatingtsystem:
rinivas • Processor:t500tMHztInteltPentiumtIIItworkstationtorte
quivalent
MatthewtThompsontDa
• Memory:t384tmegabytes
nieltVillafuerte
•
Disktspace:t125tmegabytestoftfreetdisktspace
RecommendedtHardwaretConfiguration
• MicrosofttWindowstoperatingtsystems:
• Processor:t780tMHztInteltPentiumtIIItworkstationtorte
quivalent
• Memory:t512tmegabytes
• Disktspace:t125tmegabytestoftfreetdisktspace
• SolarisTMtoperatingtsystem:
• Processor:t500tMHztUltraTMt60tworkstationtortequivalent
• Memory:t512tmegabytes
• Disktspace:t125tmegabytestoftfreetdisktspace
• Linuxtoperatingtsystem:
• Processor:t800tMHztInteltPentiumtIIItworkstationtorte
quivalent
• Memory:t512tmegabytes
• Disktspace:t125tmegabytestoftfreetdisktspace
OperatingtSystem
BelowtistatlisttoftoperatingtsystemstthattSuntJavaTMtStudiotEnterpriset8trunston.
• Solarist9tandt10tOperatingtSystemstontSPARCtPlatform
• Solarist10tOperatingtSystemtontx86tandtAMDx64tPlatform
• WindowstXPtandtWindowst2000
SuntJavatStudiotEnterpriset8tistprovided,tbuttnottsupportedtontthetfollowing
operatingtsystems:
• Linux
Software
SuntJavatStudiotEntepriset8trunstontJ2SEtJDKt5.0t(JavaTMt2tJDK,tStandardtEditio
n),twhichtconsiststoftthetJavatRuntimetEnvironmenttplustdevelopersttoolstfortco
mpiling,tdebuggingtandtrunningtapplicationtwrittentintthetJavaTMtlanguage.
Fortmoretinformation,tpleasetvisitthttp://developers.sun.com.
SoftwaretEngineering 2
,J.E.D.I
Table of Contentst t
1 IntroductionttotSoftwaretEngineering.................................................. ............................. 7
1.1 SoftwaretEngineering-tAtLayeredtView ........................................................................................ 7
1.1.1 QualitytFocus................................................................................ ............. 8
1.1.2 Process ......................................................................................................................................... 8
1.1.3 Method................................................................................. ....................... 8
1.1.4 Tools............................................................................................. ........... 8
1.2 QualitytwithintthetDevelopmenttEffort ...................................................................................... 10
1.2.1 Whattistquality?.................................................................. .......................... 10
1.2.2 Howtdotwetdefinetquality?t ........................................................... .............. 10
1.2.3 HowtdotwetaddresstthetQualitytIssues?........................................................................... 11
1.3 SoftwaretQualitytAssurancetandtTechniques .......................................................................... 12
1.3.1 SoftwaretQuality......................................................................... .............. 12
1.3.2 CharacteristicstoftatWell-engineeredtSoftware ............................................................. 12
1.3.3 SoftwaretQualitytAssurancetActivities ............................................................................. 13
1.3.4 FormaltTechnicaltReviews.............................................................. ............ 13
1.4 ThetSoftwaretProcess.......................................................................... ............. 17
1.4.1 TypestoftSoftwaretProcesstModels..................................................... .......... 18
1.4.2 FactorstthattAffecttthetChoicetoftProcesstModel ............................................................ 24
1.5 UnderstandingtSystems....................................................................... ............ 25
1.6 UnderstandingtPeopletintthetDevelopmenttEffort .................................................................. 29
1.6.1 End-users.................................................................................... ........... 29
1.6.2 DevelopmenttTeam......................................................... ............................... 31
1.7 DocumentationtintthetDevelopmenttEffort............................................................ 32
1.7.1 Whattistdocumentation?................................................................ ............ 32
1.7.2 CriteriatfortMeasuringtUsabilitytoftDocuments .............................................................. 33
1.7.3 ImportanttoftDocumentstandtManuals ............................................................................ 34
1.8 Exercises.......................................................................... .................................... 35
1.8.1 SpecifyingtBoundaries................................................... .................................. 35
1.8.2 PracticingtthetWalkthrough........................................................................ 35
1.9 ProjecttAssignment............................................................................... .......... 35
2 Object-orientedtSoftwaretEngineering............................................. ............................... 36
2.1 ReviewtoftObject-orientedtConcepts............................................. .......................... 36
2.1.1 Abstraction......................................................................... ........................ 37
2.1.2 Encapsulation...................................................................... ....................... 38
2.1.3 Modularity................................................................................................... 38
2.1.4 Hierarchy........................................................ ................................................... 39
2.2 Object-orientedtProcesstModel............................................................... ........... 43
2.3 Object-orientedtAnalysistandtDesign ........................................................................................ 44
2.3.1 Object-orientedt Analysis ..................................................................................................... 44
2.3.2 Object-orientedt Design..................................................... ............................. 45
2.4 UnifiedtModelingtLanguaget(UML) .............................................................................................. 48
2.4.1 ModelingtActivity................................................... ............................................ 48
2.4.2 UMLtBaselinetDiagrams........................................................... ..................... 51
3 RequirementstEngineering..................................................................................................................... 61
3.1 RequirementstEngineeringt Concepts ........................................................................................ 61
3.2 RequirementstEngineeringt Tasks........................................................... ............ 62
3.2.1 Inception............................................................................. ...................... 62
3.2.2 Elicitation....................................................................... .............................. 64
3.2.3 Elaboration...................................................................... ............................ 67
3.2.4 Negotiation .............................................................................................................................. 67
3.2.5 Specification.................................................................................................... 68
SoftwaretEngineering 3
, J.E.D.I
3.2.6 Validation......................................................................................t t ..68
3.2.7 Management................................................................................ ........... 69
3.3 RequirementstAnalysistandtModel .............................................................................................. 70
3.3.1 ThetRequirementstModel............................................................................... 70
3.3.2 ScenariotModeling........................................................................ ............ 71
3.3.3 RequirementstModeltValidationtChecklist ...................................................................... 80
3.4 RequirementstSpecifications.................................................................... ........ 82
3.4.1 ThetAnalysistModel............................................................ ............................ 82
3.4.2 ThetUsetCasetAnalysistTechnique...................................................................................... 83
3.4.3 AnalysistModeltValidationtChecklist................................................................................111
3.5 RequirementstTraceabilitytMatrixt(RTM) ................................................................................112
3.6 RequirementstMetrics.......................................................................... ..........115
3.7 Exercises.......................................................................... ..................................118
3.7.1 CreatingtthetRequirementstModel ...................................................................................118
3.7.2 CreatingtAnalysistModel .....................................................................................................118
3.8 ProjecttAssignment............................................................... ..............................118
4 DesigntEngineering................................................................... ..................................120
4.1 DesigntEngineeringtConcepts................................................................ ..........120
4.1.1 DesigntConcepts........................................................ ....................................121
4.1.2 ThetDesigntModel................................................................... ...................122
4.2 SoftwaretArchitecture.......................................................................... ..........124
4.2.1 DescribingtthetPackagetDiagram ....................................................................................124
4.2.2 SubsystemstandtInterfaces........................................................ ................125
4.2.3 DevelopingtthetArchitecturaltDesign ..............................................................................130
4.2.4 SoftwaretArchitecturetValidationtChecklist .................................................................. 137
4.3 DesigntPatterns.............................................................................................138
4.3.1 Model-View-Controllert Designt Pattern............................................ ............155
4.4 DatatDesign....................................................................... .................................157
4.4.1 JDBCtDesigntPattern ...........................................................................................................158
4.4.2 DevelopingtthetDatatDesigntModel .................................................................................163
4.5 InterfacetDesign............................................................................... ............. 167
4.5.1 ReporttDesign.............................................................. ................................ 167
4.5.2 FormstDesign............................................................ .................................... 170
4.5.3 ScreentandtDialogtDesignt..................................................... ...................... 172
4.6 Component-leveltDesign...................................................... .................................190
4.6.1 BasictComponenttDesigntPrinciples ................................................................................190
4.6.2 Component-leveltDesigntGuidelines................................................. .........190
4.6.3 ComponenttDiagram..................................................................... ..........191
4.6.4 DevelopingtthetSoftwaretComponent ............................................................................191
4.7 Deployment-levelt Design ...........................................................................................................196
4.7.1 DeploymenttDiagramtNotation.................................................. ..................196
4.7.2 DevelopingtthetDeploymenttModel .................................................................................196
4.8 DesigntModeltValidationtChecklist.......................................................... .......... 197
4.9 MappingtthetDesigntDeliverablesttotthetRequirementstTraceabilitytMatrix .................198
4.10 DesigntMetrics........................................................................ ........................199
4.11 Exercises......................................................................................... ..........201
4.11.1 CreatingtthetDatatDesigntModel ....................................................................................201
4.11.2 CreatingtthetInterfacetDesign.....................................................................201
4.11.3 CreatingtthetControltDesign ...........................................................................................201
4.12 ProjecttAssignment........................................... ........................................................202
5 Implementation............................................................................ ............................203
5.1 ProgrammingtStandardstandtProcedures............................................. ...............203
5.2 ProgrammingtGuidelines............................................................. .......................204
SoftwaretEngineering 4