Login with Facebook
Login
Books
NCERT
CBSE
AIEEE
IITJEE
Tamilnadu
BITS MSSS
ANU
IPE
UPSC
SOFTWARE ENGINEERING
(
1
,
0
,
1
0
)
Share
add note
Contents
1. Introduction to software Engineering
1.1 The Evolving Role of Software
1.2 Software
1.3 The Changing Nature of Software
1.4 Legacy Software
1.4.1 The Quality of Legacy Software
1.4.2 Software Evolution
1.5 Software Myths
1.6 How it all Starts
1.7 Summary
Part One - The Software Process
2. A Generic View of Process
2.1 Software Engineering - A Layered Tecnology
2.2 A Process Framework
2.3 The Capability Maturity Model Integration (CMMI)
2.4 Process Patterns
2.5 Process Assessment
2.6 Personal and Team Process Models
2.6.1 Personal Software Process (PSP)
2.6.2 Team Software Process (TSP)
2.7 Process Technology
2.8 Product and Process
2.9 Summary
References
3. Process Models
3.1 Prescriptive Models
3.2 The Water fall Model
3.3 Incremental Process Models
3.3.1 The Incremental Model
3.3.2 The RAD Model
3.4 Evolutionary Process models
3.4.1 Protyping
3.4.2 The Spiral Model
3.4.3 The Concurrent Development Model
3.4.4 A Final Comment on Evolutionary Processes
3.5 Specialized Process models
3.5.1 Component-Based Development
3.5.2 The Formal Methods Model
3.5.3 Aspect-Oriented Software Development
3.6 The Unified Process
3.6.1 A brief History
3.6.2 Phases of the unified Process
3.6.3 Unified Process Work Products
3.7 Summary
4. An Agile View of Process
4.1 What is Agility
4.2 What is an Agile Process
4.2.1 The Politics of Agile Development
4.2.2 Human Factors
4.3 Agile Process Models
4.3.1 Extreme Programming (XP)
4.3.2 Adaptive Software Development (ASD)
4.3.3 Dynamics Systems Development Method (DSDM)
4.3.4 Scrum
4.3.5 Crystal
4.3.6 Feature Driven Development (FDD)
4.3.7 Agile Modelling
4.4 Summary
Part Two - Software Engineering Practice
5. Software Engineering practice
5.1 Software Engineering Practice
5.1.1 The Essence of Practice
5.1.2 Core Principles
5.2 Communication Practices
5.3 Planning Practices
5.4 Modeling Practices
5.4.1 Analysis Modeling Principles
5.4.2 Design Modeling principles
5.5 Construction Practice
5.5.1 Coding Principles and Concepts
5.5.2 Testing Principles
5.6 Deployment
5.7 Summary
6. SYSTEM ENGINEERING
6.1 Computer-Based Systems
6.2 The system Engineering Hierarchy
6.2.1 System Modeling
6.2.2 System Simulation
6.3 Business Process Engineering : An Over View
6.4 Product Engineering: An Overview
6.5 System Modelling
6.5.1 Hatley-Pibhai Modeling
6.5.2 System Modeling with UML
6.6 Summary
7. Requirements Engineering
7.1 A Bridge to Design and Construction
7.2 Requirements Engineering Tasks
7.2.1 Inception
7.2.2 Elicitation
7.2.3 Elaboration
7.2.4 Negotiation
7.2.5 Specification
7.2.6 Validation
7.2.7 Requirements Management
7.3 Initiating the Requirements Engineering Process
7.3.1 Identifying the stakeholders
7.3.2 Recognizing Multiple Viewpoints
7.3.3 Working toward Collaboration
7.3.4 Asking the first Questions
7.4 Eliciting Requirements
7.4.1 Collaborative Requirements Gathering
7.4.2 Quality Function Deployment
7.4.3 User Scenarios
7.4.4 Elicitation Work Products
7.5 Developing Use-Cases
7.6 Building the Analysis Model
7.6.1 Elements of the Analysis Model
7.6.2 Analysis Patterns
7.7 Negotiating Requirements
7.8 Validating Requirementsa
7.9 Summary
8. BUILDING THE ANALYSIS MODEL
8.1 Requirement Analysis
8.1.1 Overall Objective and Philosophy
8.1.2 Analysis Rules of Thumbs
8.1.3 Domain Analysis
8.2 Analysis Modeling Approaches
8.3 Data Modeling Concepts
8.3.1 Data Objects
8.3.2 Data Attributes
8.3.3 Relationships
8.3.4 Cardinality and Modality
8.4 Object-Oriented Analysis
8.5 Scenario-Based Modeling
8.5.1 Writing Use-Cases
8.5.2 Developing an Activity Diagram
8.5.3 Swimlane Diagrams
8.6 Flow-Oriented Modeling
8.6.1 Creating a Data Flow Model
8.6.2 Creating a Control Flow Model
8.6.3 The Control Specification
8.6.4 The Process Specification
8.7 Class-Based Modelling
8.7.1 Identifying Analysis Classes
8.7.2 Specifying Attributes
8.7.3 Defining Operations
8.7.4 Class Responsibility Collaborator
8.7.5 Associations and Dependencies
8.7.6 Analysis Packages
8.8 Creating a Behavioral Model
8.8.1 Identifying Events with the Use-Case
8.8.2 State Representations
8.9 Summary
9. Design Engineering
9.1 Design Within the Context of Software Engineering
9.2 Design Process and Design Quality
9.3 Design Concepts
9.3.1 Abstraction
9.3.2 Architecture
9.3.3 patterns
9.3.4 Modularity
9.3.5 Information Hiding
9.3.6 Functional independence
9.3.7 Refinement
9.3.8 Refactoring
9.3.9 Design Classes
9.4 The Design Model
9.4.1 Data Design Elements
9.4.2 Architectural Design Elements
9.4.3 Interface Design Elements
9.4.4 Component-Level Design Elements
9.4.5 Deployment-Level Design Elements
9.5 Pattern-Based Software Design
9.5.1 Describing a Design Pattern
9.5.2 Using Patterns in Design
9.5.3 Frameworks
9.6 Summary
10. Creating an Architectural Design
10.1 Software Architecture
10.1.1 What is Architecture?
10.1.2Why is Architecture Important?
10.2 Data Design
10.2.1 Data Design at the Architectural Level
10.2.2 Data Design at the Component Level
10.3 Architecture Styles and Patterns
10.3.1 a Brief Taxanomy of Architectural Styles
10.3.2 Architectural Patterns
10.3.3 Organization and Refinement
10.4 Architectural Design
10.4.1 Representing the system in Context
10.4.2 Defining Archetypes
10.4.3 Refining the Architecture in to Components
10.4.4 Describing Instantiations of the Systems
10.5 Assessing Alternative Architectural Designs
10.5.1 An Architecture Trade-Off Analysis Method
10.5.2 Architectural Complexity
10.5.3 Architectural Description Languages
10.6 Mapping Data Flow into a Software Architecture
10.6.1 Transform Flow
10.6.2 Transaction flow
10.6.3 Transform Mapping
10.6.4 Transaction Mapping
10.6.5 Refining the Architectural Design
10.7 Summary
11. Modeling Component- Level Design
11.1 What is a Component?
11.1.1 An Object Oriented View
11.1.2 The Conventional View
11.1.3 A Process - Related View
11.2 Designing Class-Based Components
11.2.1 Basic Design Principles
11.2.2 Component Level Design Guide Lines
11.2.3 Cohesion
11.2.4 Coupling
11.3 Conducting Component Level Design
11.4 Object Constraint Language
11.5 Designing conventional Languages
11.5.1 Graphical Des
11.5.2 Tabular Design Notation
11.5.3 Program Design Language
11.5.4 Comparison of Design Notation
11.6 Summary
12. Performing User Interface Design
12.1 The Golden Rules
12.1.1 Place the User in Control
12.1.2 Reduce the User's Memory Load
12.1.3 Make the Interface Consistent
12.2 User Interface Analysis and Design
12.2.1 Interface Analysis and Design Models
12.2.2 The Process
12.3 Interface Analysis
12.3.1 User Analysis
12.3.2 Task Analysis and Modelling
12.3.3 Analysis of Display Content
12.3.4 Analysis of the Work Environment
12.4 Interface Design Steps
12.4.1 Applying Interface Design Steps
12.4.2 User Interface Design Patterns
12.4.3 Design Issues
12.5 Design Evaluation
12.6 Summary
13. Testing Strategies
13.1 A Strategic Approach to Software Testing
13.1.1 Verification and Validation
13.1.2 Organizing for Software testing
13.1.3 A Software Testing Strategy for Conventional Architectures
13.1.4 A Software Testing strategy for Object-Oriented Architectures
13.1.5 Criteria for Completion of Testing
13.2 Strategic Issues
13.3 Test Strategies for Conventional Software
13.3.1 Unit Testing
13.3.2 Integration Testing
13.4 Test Strategies for Object-Oriented Software
13.4.1 Unit Testing in the OO Context
13.4.2 Integration testing in the OO Context
13.5 Validation Testing
13.5.1 Validation test Criteria
13.5.2 Configuration Review
13.5.3 Alpha and Beta Testing
13.6 System Testing
13.6.1 Recovery Testing
13.6.2 Security Testing
13.6.3 Stress Testing
13.6.4 Performance Testing
13.7 The Art of Debugging
13.7.1 The Debugging Process
13.7.2 Physiological Considerations
13.7.3 Debugging Strategies
13.7.4 Correcting the Error
13.8 Summary
14. Testing Tactics
14.1 Software Testing Fundamentals
14.2 Black-Box and White-Box Testing
14.3 White-Box Testing
14.4 Basis path Testing
14.4.1 Flow Graph Notation
14.4.2 Independent Program Paths
14.4.3 Deriving Test Cases
14.4.4 Graph Matrices
14.5 Control Structure Testing
14.5.1 Condition Testing
14.5.2 Data Flow Testing
14.5.3 Loop Testing
14.6 Black-Box Testing
14.6.1 Graph Based - Testing Methods
14.6.2 Equivalence Partitioning
14.6.3 Boundary Value Analysis
14.6.4 Orthogonal Array Testing
14.7 Object-Oriented Testing Methods
14.7.1 The Test Case Design implications of OO Concepts
14.7.2 Applicability of Conventional Test Case Design Methods
14.7.3 Fault-Based Testing
14.7.4 Test cases and Class Hierarchy
14.7.5 Scenario-Based Testing
14.7.6 Testing Surface Structure and Deep Structure
14.8 Testing Methods Applicable at the class Level
14.8.1 Random Testing for OO classes
14.8.2 Partition Testing at the Class Level
14.9 Inter class Test Case Design
14.9.1 Multiple Class Testing
14.9.2 Test Derived from Behavior Models
14.10 Testing for specialized Environments , Architectures, and Applications
14.10.1 Testing GUI's
14.10.2 Testing of Client/Server Architectures
14.10.3 Testing Documentation and Help Facilities
14.10.4 Testing for Real Time systems
15. PRODUCT METRICS
15.1 Software Quality
15.2 A Framework for Product Metrics
15.3 Metrics for the Analysis Model
15.4 Metrics for the Design Model
15.5 Metrics for the Source Code
15.6 Metrics for Testing
15.7 Metrics for Maint
15.8 Summary
Part Three - Applying Web Engineering
Chapter 16 WEB Engineering
16.1 Attributes of Web-Based Systems and Applications
16.2 WebApp Engineering Layers
16.3 The Web Engineering Process
16.3.1 Defining the Frame Work
16.3.2 Refining the Frame Work
16.4 Web Engineering Best Practices
16.5 Summary
Chapter 17 Initiating a WEBAPP Project
17.1 Formulating Web based Systems
17.1.1 Formulation Questions
17.1.2 Requirements gathering for Web Apps
17.1.3 The Bridge to Analysis Modelling
17.2 Planning for Web Engineering Projects
17.3 The Web Engineering Team
17.3.1 The Players
17.3.2 Building the Team
17.4 Project Management Issues for Web Engineering
17.4.1 Web App Planning - Outsourcing
17.4.2 Web App Planning - In House Web Engineering
17.5 Metrics for Web Engineering and Web Apps
17.5.1 Metrics for Web Engineering Effort
17.5.2 Metrics for Asessing Business Value
17.6 "Worst Practices for Web App Projects"
17.7 Summary
Chapter 18 Analysis for Web Apps
18.1 Requirements analysis for Web Apps
18.1.1 The User Hierarchy
18.1.2 Developing Use - Cases
18.1.3 Refining the Use - Case Model
18.2 The Analysis Model for Web Apps
18.3 The Content Model
18.3.1 Defining Content Objects
18.3.2 Content Relationships and Hierarchy
18.3.3 Analysis Classes for WebApps
18.4 The Interaction Model
18.5 The Function Model
18.6 The Configuration Model
18.7 Relationship - Navigation Analysis
18.7.1 Relationship Analysis - Key Questions
18.7.2 Navigation Anlaysis
18.8 Summary
Chapter 19 Design for WebAPPS
19.1 Design Issues for Web Engineering
19.1.1 Design and Web App Quality
19.1.2 Design Goals
19.2 The Web E Design Pyramid
19.3 WebApp Interface Design
19.3.1 Interface Design Principles and Guidelines
19.3.2 Interface Control Mechanisms
19.4 Aesthetics Design
19.4.1 Layout Issues
19.4.2 Graphic Design Issues
19.5 Content Design
19.5.1 Content Objects
19.5.2 Content Design Issues
19.6 Architecture Design
19.6.1 Content Architecture
19.6.2 WebApp Architecture
19.7 Navigation Design
19.7.1 Navigation Semantics
19.7.2 Navigation Syntax
19.8 Component Level Design
19.9 Hypermedia Design Patterns
19.10 Object- Oriented Hypermedia Design Method (OOHDM)
19.10.1 Conceptual Design for (OOHDM)
19.10.2 Navigational Design for OOHDM
19.10.3 Abstract Interface Design and Implementation
19.11 Design Metrics for WebApps
19.12 Summary
Chapter 20 Testing for WEBAPPS
20.1 Testing Concepts for Web Apps
20.1.1 Dimensions of Quality
20.1.2 Errors With a Web App Environment
20.1.3 Testing Strategy
20.1.4 Test Planning
20.2 The Testing Process - An Overview
20.3 Content Testing
20.3.1 Content Testing Objectives
20.3.2 Database Testing
20.4 User Interface Testing
20.4.1 Interface Testing Strategy
20.4.2 Testing Interface Mechanisms
20.4.3 Testing Interface Semantics
20.4.4 Usability Tests
20.4.5 Compatiblity Tests
20.5 Component - Level Testing
20.6 Navigation Testing
20.6.1 Testing Navigation Syntax
20.6.2 Testing Navigation Semantics
20.7 Configuration Testing
20.7.1 Server-Side Issues
20.7.2 Client -Side Issues
20.8 Security Testing
20.9 Performance Testing
20.9.1 Performance Testing Objectives
20.9.2 Load Testing
20.9.3 Stress testing
20.10 Summary
Part Four - Managing Software Projects
21. PROJECT MANAGEMENT
21.1The Management Spectrum
21.1.1 The people
21.1.2 The Product
21.1.3 The Process
21.1.4 The Project
21.2 The Product
21.2.1 The Stakeholders
21.2.2 Team Leaders
21.2.3 The Software Team
21.2.4 Agile Teams
21.2.5 Coordination and Communication Issues
21.3 The Process
21.3.1 Software Scope
21.3.2 Problem Decomposition
21.4 The Project
21.4.1 Melding the Product and the Process
21.4.2 Process Decomposition
21.5 The Project
21.6 The W5HH Principle
21.7 Critical Practices
21.8 Summary
22. Metrics for Process and Projects
22.1 Metrics in the Process and Project Domains
22.1.1 Process Metrics and Software Process improvement
22.1.2 Project Metrics
22.2 Software Measurement
22.2.1 Size-Oriented Metrics
22.2.2 Function Oriented-Metrics
22.2.3 Reconciling Lock and FP Metrics
22.2.4 Object - Oriented Metrics
22.2.5 Use-Case Oriented Metrics
22.2.6 Web Engineering Product Metrics
22.3 Metrics for Software Quality
22.3.1 Measuring Quality
22.3.2 defect Removal Efficiency
22.4 Integrating Metrics with the Software Process
22.4.1 Arguments for Software Metrics
22.4.2 Establishing a Base Line
22.4.3 Metrics Collection, Computation and Evaluation
22.5 Metrics for Small Organizations
22.6 Establishing a Software Metrics Program
22.7 Summary
23. Estimation
23.1 Observations on Estimation
23.2 The Project Planning Process
23.3 Software Scope and Feasi
23.4 Resources
23.4.1 Human Resources
23.4.2 Reusable Software Resources
23.4.3 Environmental Resources
23.5 Software Project Estimation
23.6 Decomposition Techniques
23.6.1 Software Sizing
23.6.2 Problem - Based Estimation
23.6.3 An Example of LOC - Based Estimation
23.6.4 An Example of FP - Based Estimation
23.6.5 Process - Based Estimation
23.6.6 An Example of Process Based Estimation
23.6.7 Estimation With - Use Cases
23.6.8 An Example of Use - Case Based Estimation
23.6.9 Reconciling Estimates
23.7 Empirical Estimation Models
23.7.1 The Structure of Estimation Models
23.7.2 The COCOMO II Model
23.7.3 The Software Equation
23.8 Estimation for Object- Oriented Projects
23.9 Specialized Estimation Techniques
23.9.1 Estimation for Agile Development
23.9.2 Estimation for WebEngineering Projects
23.10 The Make/Buy Decision
23.10.1 Creating a Decision Tree
23.10.2 Outsourcing
23.11 Summary
24. Project Scheduling
24.1 Basic concepts
24.2 Project Scheduling
24.2.1 Basic Principles
24.2.2 The Relationship Between People and Effort
24.2.3 Effort Distribution
24.3 Defining a Task Set for the Software Project
24.3.1 A Task Set Example
24.3.2 Refinement of Major Tasks
24.4 Defining a task Network
24.5 Scheduling
24.5.1 Timeline charts
24.5.2 Tracking the Schedule
24.5.3 Tracking progress of an OO Project
24.6 Earned Value Analysis
24.7 Summary
25. RISK MANAGEMENT
25.1 Reactive Vs. Proactive Risk Strategies
25.2 Software Risks
25.3 Risk Identification
25.3.1 Assessing Overall Project Risk
25.3.2 Risk Component and Drivers
25.4 Risk Projection
25.4.1 Developing a Risk Table
25.4.2 Assessing Risk Impacts
25.5 Risk Refinement
25.6 Risk Mitigation , Monitoring and Management
25.7 The RMMM Plan
25.8 Summary
26. QUALITY MANAGEMENT
26.1 Quality Concepts
26.1.1 Quality
26.1.2 Quality Control
26.1.3 Quality Assurance
26.1.4 Cost of Quality
26.2 Software Quality Assurance
26.2.1 Background Issues
26.2.2 SQA Activities
26.3 Software Reviews
26.3.1 Cost Impact of Software Defects
26.3.2 Defect Amplification and Removal
26.4 Formal Technical Reviews
26.4.1 The Review Meeting
26.4.2 Review Reporting and Recording Record Keeping
26.4.3 Review Guidelines
26.4.4 Sample - Driven Reviews
26.5 Formal Approaches to SQA
26.6 Statistical Software Quality Assurance
26.6.1 A Generic Example
26.6.2 Six Sigma for Software Engineering
26.7 Software Relaibility
26.7.1 Measures of Reliability and Availability
26.7.2 Software Safety
26.8 The ISO 9000 Quality Standards
26.9 The SQA Plan Summary
26.10 Summary
27. Change Management
27.1 Software Configuration Management
27.1.1 A SCM Scenario
27.1.2 Elements of a Configuration Management Systems
27.1.3 Baselines
27.1.4 Software Configuration Items
27.2 The SCM Repository
27.2.1 The Role of the Repository
27.2.2 General Features and Content
27.2.3 SCM Features
27.3 The SCM Process
27.3.1 Identification of the objects in the Software Configuration
27.3.2 Version Control
27.3.3 Change Control
27.3.4 Configuration Audit
27.3.5 Status Reporting
27.4 Configuration Management for Web Engineering
27.4.1 Configuration Management Isssues for Web Apps
27.4.2 Web App Configuration Objects
27.4.3 Content Management
27.4.4 Change Management
27.4.5 Version Control
27.4.6 Auditing and Reporting
27.5 Summary
Part Five - Advanced Topics in Software Engineering
28. Formal Methods
28.1 Basic Concepts
28.1.1 Deficiences of Less Formal Approaches
28.1.2 Mathematics on Software Development
28.1.3 Formal Methods Concepts
28.2 Mathematical Preliminaries
28.2.1 Sets and Constructive Specification
28.2.2 Set Operators
28.2.3 Logic Operators
28.2.4 Sequences
28.3 Applying Mathematical Notation for formal Specification
28.4 Formal Specification Languages
28.5 Object Constraint Language (OCL)
28.5.1 A Brief Overview of OCL Syntax and Semantics
28.5.2 An Example Using OCL
28.6 The Z Specification LAnguage
28.6.1 A Brief Overview of Z Syntax and Semantics
28.6.2 A Example Using Z
28.7 The Ten Commandments of Formal Methods
28.8 Formal Methods - Road AHead
28.9 Summary
29. Cleanroom software Engineering
29.1 The Clean Room Approach
29.1.1 The Cleanroom Strategy
29.1.2 What Makes Cleanroom Different?
29.2 Functional Specification
29.2.1 Black - Box Specification
29.2.2 State- Box Specification
29.2.3 Clear- Box Specification
29.3 Cleanroom Design
29.3.1 Design Refinement and Verification
29.3.2 Advantages of Design Verification
29.4 Cleanroom Testing
29.4.1 Statistical Use Testing
29.4.2 Certification
29.5 Summary
30. Component Based Development
30.1 Engineering of Component-Based Systems
30.2 The CBSE Process
30.3 Domain Engineering
30.3.1 The Domain Analysis Process
30.3.2 Characterization Functions
30.3.3 Structural Modeling and Structure points
30.4 Component-Based Development
30.4.1 Component Qualification, Adaptation, and Composition
30.4.2 Component Engineering
30.4.3 Analysis and Design for Reuse
30.5 Classifying and Retrieving Components
30.5.1 Describing Reusable Components
30.5.2 The Reuse Environment
30.6 Economics of CBSE
30.6.1 Impact on Quality, Productivity and Coal
30.6.2 Cost Analysis Using Structure Points
30.7 Summary
31. Re-Engineering
31.1 Business Process Reengineering
31.1.1 Business Processes
31.1.2 A BPR Model
31.2 Software Reengineering
31.2.1 Software Maintenance
31.2.2 A Software Reengineering Process model
31.3 Reverse Engineering
31.3.1 Reverse Engineering to Understand Data
31.3.2 Reverse Engineering to Understand Processing
31.3.3 Reverse Engineering User Interfaces
31.4 Restructuring
31.4.1 Code Restructuring
31.4.2 Data Restructuring
31.5 Forward Engineering
31.5.1 Forward Engineering for Clent/Server Architectures
31.5.2 Forward Engineering for Object-Oriented Architectures
31.5.3 Forward Engineering User Interfaces
31.6 The Economics of Reengineering
31.7 Summary
32. The Road Ahead
32.1 The Importance of Software - Revisited
32.2 The Scope of Change
32.3 People and the way Build Systems
32.4 The New Software Engineering Processes
32.5 New Modes for Representing Information
32.6 Technology as a Driver
32.7 Software Engineer's Reponsibility
32.8 A Concluding Comment
ISBN: 007-124778-5
BITS Pilani
MSSS
ROGER S.PRESSMAN
Software Engineering
become moderator
see all followers
Attachments
see all
BITS Pilani Question Paper IInd Semster 2008-09
BITS Pilani Question Paper IInd Semster 2008-09
BITS Pilani Question Paper IInd Semster 2008-09
BITS Pilani Question Paper IInd Semster 2008-09
Soft Engineering Course Handout
Your Ad Here