methodologies (SOFTWARE ENGINEERING) CONTENTS 1.1 INTRODUCTION TO O SOFTWARE ENGINEERING Basic Stages in Software Development... 1.

Size: px
Start display at page:

Download "methodologies (SOFTWARE ENGINEERING) CONTENTS 1.1 INTRODUCTION TO O SOFTWARE ENGINEERING Basic Stages in Software Development... 1."

Transcription

1 Contents i software development methodologies FOR m.tech (jntu - hyderabad) i year i semester (SOFTWARE ENGINEERING) CONTENTS UNIT - I [CH. H. - 1] ] [INTRODUCTION TO SOFTWARE ENGINEERING] INTRODUCTION TO O SOFTWARE ENGINEERING THE EVOL OLVING ROLE OF SOFTWARE SOFTWARE Features of Software Basic Stages in Software Development Software Crisis Reasons for Software Crisis THE CHANGING NATURE OF SOFTWARE LEGACY SOFTWARE The Quality of Legacy Software Software Evolution SOFTWARE MYTHS UNIT - I [CH. - 2] ] [A GENERIC VIEW OF PROCESS] A GENERIC VIEW OF PROCESS SOFTWARE ENGINEERING Definitions of Software Engineering Layers of Software Engineering

2 ii Contents 2.3 SOFTWARE PROCESS A Process Framework Umbrella Activities of a Software Process Framework ramework CMMI (THE CAPABILITY ABILITY MATURITY MODEL INTEGRATION) TION) Specific Goals and Specific Practices Generic Goals and Generic Practices PROCESS PATTERNS TTERNS PROCESS ASSESSMENT PERSONAL AND TEAM PROCESS MODELS Personal Software Process (PSP) Team Software Process (TSP) UNIT - I [CH. - 3] ] [PROCESS MODELS] PROCESS MODELS List of Process Models PRESCRIPTIVE MODELS WATERF TERFALL MODEL INCREMENTAL PROCESS MODELS The Incremental Model The RAD Model EVOLUTIONARY PROCESS MODELS The Prototyping Model Spiral Model Concurrent Development Model Specialized Process Models Component Based Development The Formal Methods Model Aspect Orient Software Development

3 Contents iii 3.7 THE UNIFIED PROCESS History of Unified Process Phases of the Unified Process Unified Process Work Products UNIT - II [CH. H. - 4] ] [SOFTWARE REQUIREMENTS] SOFTWARE REQUIREMENTS FUNCTIONAL AND NON-FUNCTIONAL REQUIREMENTS Functional Requirements Non-Functional Requirements USER REQUIREMENTS Guidelines for Writing User Requirements SYSTEM REQUIREMENTS Structured Language Specifications for System Requirements INTERFACE CE SPECIFICATION THE SOFTWARE REQUIREMENTS DOCUMENT UNIT - II [CH. - 5] ] [REQUIREMENTS ENGINEERING PROCESS] REQUIREMENTS ENGINEERING PROCESS Goals of Requirement Engineering Process FEASIBILITY STUDIES REQUIREMENTS ELICITATION TION AND ANALYSIS Requirements Discovery View Points Interviewing Scanarios Ethonography

4 iv Contents 5.4 REQUIREMENTS VALIDATION Requirements Reviews REQUIREMENTS MANAGEMENT Enduring and Volatile Requirements Requirements Management Planning Requirements Change Management Process UNIT - II [CH. H. - 6] ] [SYSTEM MODELS] SYSTEM MODELS CONTEXT MODELS BEHAVIOURAL MODELS DATA A FLOW MODELS DATA A MODELS OBJECT MODELS Inheritance Model Object Aggregation Object Behaviour Modeling STRUCTURED METHODS UNIT - III [CH. - 7] ] [DESIGN ENGINEERING] DESIGN ENGINEERING DESIGN WITHIN THE CONTEXT OF SOFTWARE ENGINEERING Translation of Analysis Models in Design Models DESIGN PROCESS AND DESIGN QUALITY Design Process Design Quality Characteristics of Good Design Process Software Quality Attributes

5 Contents v 7.4 DESIGN CONCEPTS Abstraction Architecture Patterns Modularity Information Hiding Functional Independence Refinement Refactoring Design Classes Characteristics of Well ell Formed Design THE DESIGN MODEL Data Design Elements Architectural Design Elements Interface Design Elements Component-Level Design Elements Deployment-Level Design Elements PATTERN BASED SOFTWARE DESIGN Describing a Design Pattern attern Design Pattern Template emplate Using Patterns in Design Frameworks rameworks UNIT - III [CH. - 8] ] [CREATING AN ARCHITECTURAL DESIGN] CREATING AN ARCHITECTURAL DESIGN SOFTWARE ARCHITECTURE Importance of Software Architecture

6 vi Contents 8.3 DATA A DESIGN Data Design at the Architecture Level Data Design at the Component Level ARCHITECTURAL STYLES AND PATTERNS Architectural Styles Data Centered Architecture Data Flow Architecture The Call and Return Architecture Object-Oriented Architecture Layered Architecture Architectural Patterns ARCHITECTURAL DESIGN Architectural Design Using Context Design Defining Archetypes Refining Architecture into Components Describing Instantiations of the System ASSESSING ALTERNA TERNATIVE TIVE ARCHITECTURAL DESIGNS An Architecture Trade rade-off off Analysis Method Quantitative Guidelines for Architectural Design Architectural Complexity Architectural Description Languages MAPPING DATA A FLOW INTO A SOFTWARE ARCHITECTURE Transform Flow Transaction Flow Transaction Mapping Transaction Mapping Refining the Architectural Design

7 Contents vii UNIT - III [CH.. - 9] ] [MODELING COMPONENT-LEVEL DESIGN] MODELING COMPONENT LEVEL DESIGN COMPONENT An Object-Oriented View The Conventional View Services A Process-Related View DESIGNING CLASS BASED COMPONENTS Basic Design Principles Component Level Design Guidelines Cohesion Coupling CONDUCTING COMPONENT LEVEL DESIGN OBJECT CONSTRAINT LANGUAGE DESIGNING CONVENTIONAL COMPONENTS Graphical Design Notation Tabular Design Notation Program Design Language (PDL) UNIT - III [CH. - 10] ] [PERFORMING USER INTERFACE DESIGN] PERFORMING USER INTERFACE CE DESIGN THE GOLDEN RULES Place the User in Control Reduce the User s Memory Load Make The Interface Consistent USER INTERFACE ANALYSIS AND DESIGN Interface Analysis and Design Models The Process

8 viii Contents 10.4 INTERFACE ANALYSIS YSIS User Analysis Task Analysis and Modeling Analysis of Display Content Analysis of the Work Environment INTERFACE DESIGN STEPS Implementation of Interface Design Steps User Interface Design Patterns Design Issues DESIGN EVAL ALUATION UNIT - IV [CH. - 11] ] [TESTING STRATEGIES] INTRODUCTION TO O S/W TESTING A STRATEGIC TEGIC APPROACH CH TO O SOFTWARE TESTING VERIFICATION AND VALIDATION Organizing for Software Testing A Software Testing Strategy for Conventional Software Architectures A Software Testing Strategy for Object Oriented Architecture Criterial for Completion of Testing STRATEGIC TEGIC ISSUES TEST STRATEGIES TEGIES FOR CONVENTIONAL SOFTWARE Unit Testing esting Integration Testing BLACK BOX AND WHITE BOX TESTING White Box Testing Basis Path Testing esting Control Structure Testing esting Black-Box Testing esting

9 Contents ix 11.6 VALIDATION TESTING Validation Test Criteria Configuration Review Alpha and Beta Testing esting SYSTEM TESTING Recovery Testing Security Testing Stress Testing Performance Testing esting Deployment Testing esting THE ART OF DEBUGGING The Debugging Process Psychological Considerations Debugging Strategies Correcting the Error UNIT - IV [CH. - 12] ] [PRODUCT METRICS] PRODUCT METRICS SOFTWARE QUALITY McCall s Quality Factors ISO 9126 Quality Factors The Transformation to a Quantitative View A FRAMEWORK FOR PRODUCT METRICS Measures, Metrics and Indicators The Challenge of Product Metrics Goal Oriented Software Measurement The Attributes of Effective Software Metrics

10 x Contents 12.4 METRICS FOR THE ANALYSIS MODEL Function Based Metrics Metrics for Specification Quality METRICS FOR THE DESIGN MODEL Architectural Design Metrics Metrics for Object Oriented Design Class Oriented Metrics (The CK Metrics Suite) Class Oriented Metrics (The MOOD Metrics Suite) OO Metrics Proposed by Lorenz and Kidd Component Level Design Metrics Operation Oriented Metrics User Interface Design Metrics METRICS FOR SOURCE CODE METRICS FOR TESTING Halstead Metrics Applied to Testing Metrics for Object Oriented Testing Metrics for Maintenance UNIT - IV [CH. - 13] ] [METRICS FOR PROCESS AND PRODUCTS] INTRODUCTION TO METRICS FOR PROCESS AND PRODUCTS Process Metrics and Software Process Improvement Project Metrics SOFTWARE MEASUREMENT Size-Oriented Metrics Function Oriented Metrics Reconciling LOC and FP Metrics

11 Contents xi Object Oriented Metrics Use-Case Oriented Metrics Web Engineering Project Metrics METRICS FOR SOFTWARE QUALITY Measuring Quality Defect Removal Efficiency (DRE) UNIT - V [CH. H. - 14] ] [RISK MANAGEMENT] INTRODUCTION TO RISK MANAGEMENT REACTIVE VS PROACTIVE RISK STRATEGIES TEGIES SOFTWARE RISKS RISK IDENTIFICATION TION Assessing Overall Project Risk Risk Components and Drivers RISK PROJECTION Developing a Risk Table Assessing Risk Impact RISK REFINEMENT RISK MITIGATION TION,, MONITORING ORING AND MANAGEMENT THE RMMM PLAN UNIT - V [CH. - 15] ] [QUALITY MANAGEMENT] INTRODUCTION TO QUALITY MANAGEMENT QUALITY CONCEPTS Quality Quality Control Quality Assurance Cost of Quality

12 xii Contents 15.3 SOFTWARE QUALITY ASSURANCE Background Issues SQA Activities SOFTWARE REVIEWS Cost Impact of Software Defects Defects Amplification and Removal Defect Amplification with Reviews Defect Amplification without Reviews FORMAL TECHNICAL REVIEWS The Review Meeting Review Reporting and Record Keeping Review Guidelines Sample-Driven Reviews STATISTICAL TISTICAL SOFTWARE QUALITY ASSURANCE A Generic Example Six Sigma for Software Engineering SOFTWARE RELIABILITY Measures of Software Reliability and Availability Software Safety THE ISO 9000 QUALITY STAND ANDARDS ARDS UNIT - V [CH. - 16] ] [CONFIGURATION MANAGEMENT] INTRODUCTION TO CONFIGURATION MANAGEMENT Benefits of Configuration Management CONFIGURATION MANAGEMENT PLANNING Configuration Item Identification Baselines The Configuration Database

13 Contents xiii 16.3 CHANGE MANAGEMENT VERSION AND RELEASE MANAGEMENT Version Identification Release Management SYSTEM BUILDING CASE TOOLS FOR CONFIGURATION MANAGEMENT Support for Change Management Support for Version Management Support for System Building

14 xiv Contents STUDENT NOTES