Software Engineering notes
Table of Contents
SOFTWARE ENGINEERING TUTORIAL
DEFINITIONS ...........1
SOFTWARE EVOLUTION .............2
SOFTWARE EVOLUTION LAWS.............3
E-TYPE SOFTWARE EVOLUTION .............3
SOFTWARE PARADIGMS.............4
Software Development Paradigm...........4
Software Design Paradigm ..............5
Programming Paradigm.............5
NEED OF SOFTWARE ENGINEERING..........5
CHARACTERISTICS OF GOOD SOFTWARE..........6
Operational .............6
Transitional .............6
Maintenance ............6
SOFTWARE DEVELOPMENT LIFE CYCLE
SDLC ACTIVITIES .......8
Communication...........8
Requirement Gathering............8
Feasibility Study ............9
System Analysis.............9
Software Design...............9
Coding ................9
Testing..................9
Integration ...............10
Implementation................10
Operation and Maintenance................10
SOFTWARE DEVELOPMENT PARADIGM
Waterfall Model..........10
Iterative Model..........11
Spiral Model ...............12
V – model .............12
Big Bang Model.............14
SOFTWARE PROJECT MANAGEMENT
SOFTWARE PROJECT..........15
NEED OF SOFTWARE PROJECT MANAGEMENT ..............15
SOFTWARE PROJECT MANAGER ..............16
Managing People ................16
Managing Project.............17
SOFTWARE MANAGEMENT ACTIVITIES ...........17
PROJECT PLANNING ..........17
SCOPE MANAGEMENT..............17
PROJECT ESTIMATION................18
PROJECT ESTIMATION TECHNIQUES .............19
Decomposition Technique..............19
Empirical Estimation Technique.............19
PROJECT SCHEDULING .............20
RESOURCE MANAGEMENT..............20
PROJECT RISK MANAGEMENT...........21
Risk Management Process.............21
PROJECT EXECUTION AND MONITORING.........21
PROJECT COMMUNICATION MANAGEMENT.............22
CONFIGURATION MANAGEMENT .........23
Baseline .........23
Change Control............23
PROJECT MANAGEMENT TOOLS...............24
Gantt Chart .............24
PERT Chart.............25
Resource Histogram...........25
Critical Path Analysis...............26
SOFTWARE REQUIREMENTS
REQUIREMENT ENGINEERING ..........27
REQUIREMENT ENGINEERING PROCESS ...........27
Feasibility study..............27
Requirement Gathering............28
Software Requirement Specification (SRS).............28
Software Requirement Validation.........28
REQUIREMENT ELICITATION PROCESS ..........29
REQUIREMENT ELICITATION TECHNIQUES ............29
Interviews..........30
Surveys................30
Questionnaires..............30
Task analysis ............30
Domain Analysis..........30
Brainstorming ............30
Prototyping ..............31
Observation...............31
SOFTWARE REQUIREMENTS CHARACTERISTICS............31
SOFTWARE REQUIREMENTS............31
Functional Requirements ...............32
Non-Functional Requirements ..........32
USER INTERFACE REQUIREMENTS ............33
SOFTWARE SYSTEM ANALYST ............33
SOFTWARE METRICS AND MEASURES ........34
SOFTWARE DESIGN BASICS
SOFTWARE DESIGN LEVELS.........36
MODULARIZATION.........37
CONCURRENCY..........37
Example...........37
COUPLING AND COHESION........38
COHESION..........38
COUPLING.........39
DESIGN VERIFICATION ......39
SOFTWARE ANALYSIS AND DESIGN TOOLS
DATA FLOW DIAGRAM ........41
Types of DFD ............4
Components.......41
Levels of DFD.........42
STRUCTURE CHARTS.........43
HIPO DIAGRAM..........45
Example..........46
STRUCTURED ENGLISH........47
Example.........47
PSEUDO-CODE...........48
Example..........49
DECISION TABLES ...........49
Creating Decision Table...........49
Example.........50
ENTITY-RELATIONSHIP MODEL..........50
DATA DICTIONARY .............51
Requirement of Data Dictionary .........51
Contents..........52
Example...........52
Data Elements.........52
Data Store ...........53
Data Processing.........53
SOFTWARE DESIGN STRATEGIEs
STRUCTURED DESIGN ........54
FUNCTION ORIENTED DESIGN........55
Design Process........55
OBJECT ORIENTED DESIGN........55
Design Process.........56
SOFTWARE DESIGN APPROACHES.......57
Top Down Design ........57
Bottom-up Design ..........57
SOFTWARE USER INTERFACE DESIGN
COMMAND LINE INTERFACE (CLI) ........58
CLI Elements........59
GRAPHICAL USER INTERFACE .......60
GUI Elements........60
Application specific GUI components........61
USER INTERFACE DESIGN ACTIVITIES..........62
GUI IMPLEMENTATION TOOLS........l64
Example........64
USER INTERFACE GOLDEN RULES ..........64
SOFTWARE DESIGN COMPLEXITY
HALSTEAD'S COMPLEXITY MEASURES.........67
CYCLOMATIC COMPLEXITY MEASURES .......68
FUNCTION POINT...........70
External Input..........70
External Output.........71
Logical Internal Files...........71
External Interface Files...........71
External Inquiry ........71
SOFTWARE IMPLEMENTATION
STRUCTURED PROGRAMMING ........74
FUNCTIONAL PROGRAMMING.........75 PROGRAMMING STYLE............76
Coding Guidelines..........76
SOFTWARE DOCUMENTATION ........77
SOFTWARE IMPLEMENTATION CHALLENGES .......78
SOFTWARE TESTING OVERVIEW
SOFTWARE VALIDATION..........l80
SOFTWARE VERIFICATION ........80
MANUAL VS AUTOMATED TESTING ......81
TESTING APPROACHES..........81
Black-box testing...........82
White-box testing..........82
TESTING LEVELS..........83
Unit Testing..........83
Integration Testing...........83
System Testing ..............84
Acceptance Testing ..............84
Regression Testing ...........84
TESTING DOCUMENTATION............84
Before Testing ..............85
While Being Tested..............85
After Testing...............85
TESTING VS. QUALITY CONTROL & ASSURANCE AND AUDIT ............86
SOFTWARE MAINTENANCE OVERVIEW
TYPES OF MAINTENANCE...........87
COST OF MAINTENANCE ...........88
Real-world factors affecting Maintenance Cost ............88
Software-end factors affecting Maintenance Cost.........89
MAINTENANCE ACTIVITIES ..........89
SOFTWARE RE-ENGINEERING.............90
Re-Engineering Process..............91
Reverse Engineering.............92
Program Restructuring..........92
Forward Engineering.............l92
COMPONENT REUSABILITY.............93
Example...............93
Reuse Process............93
SOFTWARE CASE TOOLS OVERVIEW
CASE TOOLS .........100
COMPONENTS OF CASE TOOLS ...........100
SCOPE OF CASE TOOLS .........101
Diagram tools...........101
Process Modeling Tools.........101
Project Management Tools.........102
Documentation Tools.............102
Analysis Tools............102
Design Tools.........102
Configuration Management Tools.........102
Change Control Tools...........103
Programming Tools............103
Prototyping Tools...........103
Web Development Tools............103
Quality Assurance Tools.........l103
Maintenance Tools..........103
Lecture 1: Introduction to Software Engineering
Lecture 2: Soft
ware Development Life Cycle, Classical Waterfall Model, Iter
ative Model
Lecture 3: Prototype Model, Spiral Model
Lecture 4: Requirement Analysis & Specification
Lecture 5: Software Requirement Characteristics, User Interface Requirements
Lecture 6: Software Design
Lecture 7: Cohesion & Coupling
Lecture 8: Software Analysis & Design Tools – DFD
Lecture 9: Structure Charts, Structured English
Lecture 10: Decision Table, ER Model, Data Dictionary
0 Comments