t t t t t
CIENCES
BBIT 3101
t
UNIT: SOFTWARE ENGINEERING t
SoftwaretEngineeringtManual i
,CHAPTER 1: FUNDAMENTALS OF SOFTWARE ENGINEERING 1-1
t t t t t t
1.1 ThetEvolutiontoftSoftware ......................................................................... 1-2
1.2 SoftwaretCrisis .......................................................................................... 1-3
1.3 SoftwaretEngineeringtParadigms .............................................................. 1-3
1.4 ThetChangingtNaturetoftSoftwaretDevelopment ........................................ 1-3
CHAPTER 2: REQUIREMENTS ANALYSIS FUNDAMENTALS
t t t t 2-1
2.1 RequirementstAnalysis ............................................................................. 2-2
2.2 AnalysistTasks .......................................................................................... 2-2
2.3 ThetAnalyst ............................................................................................... 2-4
2.4 ProblemstintRequirementstAnalysis .......................................................... 2-5
2.5 CommunicationtTechniques ..................................................................... 2-5
2.6 AnalysistPrinciples.................................................................................... 2-6
2.7 Partitioning ............................................................................................... 2-7
CHAPTER 3: REQUIREMENTS ANALYSIS METHODS
t t t t 3-1
3.1 RequirementstAnalysistMethods ............................................................... 3-2
3.2 DatatStructure-OrientedtMethods.............................................................. 3-3
3.3 FormaltSpecificationtTechniques .............................................................. 3-5
3.4 AutomatedtTechniquestfortRequirementtAnalysis ..................................... 3-6
CHAPTER 4: FUNCTION PROGRAMMING
t t t 4-1
4.1 SoftwaretDesign ........................................................................................ 4-2
4.2 DatatDesign ............................................................................................... 4-2
4.3 ArchitecturaltDesign ................................................................................. 4-3
4.4 ProceduraltDesign ..................................................................................... 4-3
4.5 SoftwaretDesigntFundamentals ................................................................. 4-5
4.6 InformationtHiding ................................................................................. 4-11
4.7 FunctionaltIndependence ........................................................................ 4-11
4.8 CriteriatfortGoodtDesign.......................................................................... 4-13
CHAPTER 5: DATA STUCTURE (1)
t t t t 5-1
5.1 ProgrammingtLanguages .......................................................................... 5-2
5.2 ProgrammingtLanguagetCharacteristics.................................................... 5-2
5.3 ChoosingtatLanguage ................................................................................ 5-4
5.4 ProgrammingtLanguagestandtSoftwaretEngineering ................................. 5-4
5.5 ProgrammingtLanguagestFundamentals ................................................... 5-6
5.6 LanguagetClasses ...................................................................................... 5-6
CHAPTER 6: DATA FLOW-ORIENTED DESIGN
t t t t 6-1
6.1 DesigntProcesstConsiderations.................................................................. 6-2
6.2 TransformtFlowtandtTransactiontFlow ...................................................... 6-2
6.3 TransformtAnalysis ................................................................................... 6-3
6.4 TransactiontAnalysis ............................................................................... 6-15
6.5 DesigntHeuristics .................................................................................... 6-21
6.6 DesigntPosttprocessing ............................................................................ 6-21
CHAPTER 7: DATA STRUCTURE PROGRAMMING
t
Software Engineering Manual
t
t
t
t t
ii
7-1
,7.1 DatatOrientedtDesigntMethods .................................................................. 7-2
7.2 AreastoftApplication.................................................................................. 7-2
7.3 JacksontStructuredtProgrammingt(JSP)/JacksontSystemtDevelopmentt(JSD)
7-3
7.4 CharacteristicstoftJSP ................................................................................ 7-3
7.5 AdvantagestoftJSP ..................................................................................... 7-3
7.6 StepstintJSP ............................................................................................... 7-3
7.7 CorrespondencetBetweentDatatStructures ................................................. 7-4
7.8 ListingtthetElementarytProgramtOperations .............................................. 7-4
CHAPTER8: SOFTWARE QUALITY ASSURANCE
t t t 8-1
8.1 SoftwaretQualitytAssurance ...................................................................... 8-2
8.2 SoftwaretQualitytFactors ........................................................................... 8-2
8.3 SoftwaretQualitytAssurancetMajortActivities ............................................ 8-4
8.4 FormaltTechnicaltReviews ........................................................................ 8-5
8.5 SoftwaretReliability .................................................................................. 8-7
8.6 SoftwaretQualitytAssurancetApproach ...................................................... 8-7
CHAPTER 9: SOFTWARE TESTING TECHNIQUES
t t t t 9-1
9.1 TestingtObjectives .................................................................................... 9-2
9.2 InformationtFlowtintTesting ...................................................................... 9-2
9.3 TesttCasetDesign ....................................................................................... 9-3
9.4 WhitetBoxtTesting..................................................................................... 9-3
9.5 BlacktBoxtTesting ................................................................................... 9-12
9.6 AutomatedtTestingtTools ........................................................................ 9-13
CHAPTER 10: SOFTWARE TESTING
t t t 10-1
10.1 OverviewtoftSoftwaretTestingtStrategies ................................................. 10-2
10.2 VerificationtandtValidation ..................................................................... 10-2
10.3 OrganizationtfortSoftwaretTesting ........................................................... 10-2
10.4 AtSoftwaretTestingtStrategy .................................................................... 10-3
10.5 UnittTesting ............................................................................................ 10-4
10.6 IntegrationtTesting .................................................................................. 10-5
10.7 ValidationtTesting ................................................................................... 10-6
10.8 SystemtTesting ........................................................................................ 10-7
10.9 Debugging .............................................................................................. 10-7
SoftwaretEngineeringtManual iii
,