SYLLABUS. What is Agility, What is an Agile Process, Agile Process Models.

Size: px
Start display at page:

Download "SYLLABUS. What is Agility, What is an Agile Process, Agile Process Models."

Transcription

1 Contents i SYLLABUS UNIT - I CHAPTER - 1 : INTRODUCTION TO Introduction to Software Engineering. CHAPTER - 2 : A GENERIC VIEW OF PROCESS Software Engineering, Process Framework, CMMI, Process Patterns, Process Assessment, Personal and Team Process Models, Process Technology, Product and Process. CHAPTER - 3 : PROCESS MODELS Prescriptive Models, Waterfall Model, Incremental Process Models, Evolutionary Process Models, Specialized Process Models, The Unified Process. CHAPTER - 4 : AN AGILE VIEW OF PROCESS What is Agility, What is an Agile Process, Agile Process Models. UNIT - II CHAPTER - 5 : PRACTICE SE Practice, Communication Practices, Planning Practices, Modeling Practices, Construction Practice, Deployment. CHAPTER - 6 : SYSTEM ENGINEERING Computer-Based Systems, The System Engineering Hierarchy, Business Process Engineering, Product Engineering, System Modeling. CHAPTER - 7 : REQUIREMENTS ENGINEERING A Bridge to Design and Construction, Requirements Engineering Tasks, Initiating Requirements Engineering Process, Eliciting Requirements, Developing Use-Cases, Building the Analysis Model, Negotiating Requirements, Validating Requirements.

2 ii Contents UNIT - III CHAPTER - 8 : BUILDING THE ANALYSIS MODEL Requirements Analysis, Analysis Modeling Approaches, Data Modeling Concepts, Object-Oriented Analysis, Scenario-Based Modeling, Flow-Oriented Modeling, Class- Based Modeling, Creating a Behavioural Model. CHAPTER - 9 : DESIGN ENGINEERING Design within the Context of SE, Design Process and Design Quality, Design Concepts, The Design Model, Pattern-Based Software Design. UNIT - IV CHAPTER - 10 : CREATING AN ARCHITECTURAL DESIGN Software Architecture, Data Design, Architectural Styles and Patterns, Architectural Design, Assessing Alternative Architectural Designs, Mapping Data Flow into a Software Architecture. CHAPTER - 11 : MODELING COMPONENT-LEVEL DESIGN What is a Component, Designing Class-Based Components, Conducting Component- Level Design, Object Constraint Language, Designing Conventional Components. CHAPTER - 12 : PERFORMING USER INTERFACE DESIGN The Golden Rules, User Interface Analysis and Design, Interface Analysis, Interface Design Steps, Design Evaluation. UNIT - V CHAPTER - 13 : TESTING STRATEGIES TEGIES A Strategic Approach to Software Testing, Strategic Issues, Test Strategies for O-O Softwre, Validation Testing, System Testing, The Art of Debugging. CHAPTER - 14 : TESTING TACTICS A Strategic Approach to Software Testing, Strategic Issues, Test Strategies for O-O Softwre, Validation Testing, System Testing, The Art of Debugging. CHAPTER - 15 : PRODUCT METRICS Software Quality, A Framework for Product Metrics, Metrics for the Analysis Model, Metrics for the Design Model, Metrics for Source Code, Metrics for Testing, Metrics for Maintenance.

3 Contents iii FOR b.e. (o.u) IIi year i semester (COMPUTER SCIENCE AND ENGINEERING) CONTENTS UNIT - I [CH. H. - 1] ] [INTRODUCTION TO ] INTRODUCTION TO O SOFTWARE THE EVOL OLVING ROLE OF SOFTWARE SOFTWARE Features of Software Basic Stages in Software Development Software Crisis Characteristics of Software THE CHANGING NATURE OF SOFTWARE LEGACY SOFTWARE The Quality of Legacy Software Software Evaluation SOFTWARE MYTHS INTRODUCTION TO Contribution of Software Engineering Emergence of Software Engineering Features of Software Engineering Need of Software Engineering Constituents / Elements of Software Engineering

4 iv Contents Aspects of Software Engineering Principles of Software Engineering Software vs Software Engineering Software Engineering vs Computer Science Software Engineering vs Traditional Engineering Software Engineering and System Engineering Software Engineering vs Management Science Methods of Software Engineering Ethics of Software Engineering UNIT - I [CH. - 2] ] [A GENERIC VIEW OF PROCESS] INTRODUCTION TO O A GENERIC VIEW OF PROCESS A LAYERED TECHNOLOG OGY SOFTWARE PROCESS A Process Framework Umbrella Activities of a Software Process Framework 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) PROCESS TECHNOLOGY PRODUCT AND PROCESS

5 Contents v UNIT - I [CH. H. - 3] ] [PROCESS MODELS] INTRODUCTION TO PROCESS MODELS PRESCRIPTIVE MODELS WATERF TERFALL MODEL INCREMENTAL PROCESS MODELS The Incremental Model The RAD or Rapid Application Development Model EVOLUTIONARY PROCESS MODELS The Prototyping Model The Spiral Model The Concurrent Development Model SPECIALIZED PROCESS MODELS Component-Based Development The Formal Methods Model Aspect-Oriented Software Development THE UNIFIED PROCESS History of Unified Process Phases of the Unified Process Unified Process Work ork Products UNIT - I [CH. - 4] ] [AN AGILE VIEW OF PROCESS] INTRODUCTION TO AN AGILE VIEW OF PROCESS WHAT IS AGILITY WHAT IS AN AGILE PROCESS Characteristics of Agile Process Human Factors

6 vi Contents 4.4 AGILE PROCESS MODELS Extreme Programming (XP) Adaptive Software Development (ASD) Dynamic Systems Development Method (DSDM) Scrum Process Model Crystal Family Feature Driven Development (FDD) Agile Modeling (AM) UNIT - II [CH. H. - 5] ] [ PRACTICE] PRACTICE The Essence of Practice Core Principles COMMUNICATION PRACTICES PLANNING PRACTICES MODELING PRACTICES Analysis Modeling Principles Design Modeling Principles CONSTRUCTION PRACTICE Coding Principles and Concepts Testing Principles rinciples DEPLOYMENT UNIT - II [CH. - 6] ] [SYSTEM ENGINEERING] INTRODUCTION TO SYSTEM ENGINEERING COMPUTER-BASED SYSTEMS THE SYSTEM ENGINEERING HIERARCHY System Modeling System Simulation

7 Contents vii 6.4 BUSINESS PROCESS ENGINEERING PRODUCT ENGINEERING SYSTEM MODELING Hatley-Pirbhai Modeling SYSTEM MODELING WITH UML UNIT - II [CH. H. - 7] ] [REQUIREMENTS ENGINEERING] INTRODUCTION TO REQUIREMENTS ENGINEERING A BRIDGE TO DESIGN AND CONSTRUCTION REQUIREMENTS ENGINEERING TASKS Inception Elicitation Elaboration Negotiation Specification Validation Requirements Management INITIATING TING THE REQUIREMENTS ENGINEERING PROCESS Identifying the Stakeholders Recognizing Multiple Viewpoints Working Towards Collaboration Asking the First Questions ELICITING REQUIREMENTS Collaborative Requirements Gathering Quality Function Deployment User Scenarios Elicitation Work Products DEVELOPING USE-CASES

8 viii Contents 7.7 BUILDING THE ANALYSIS MODEL Elements of the Analysis Model Analysis Patterns NEGOTIA TIATING TING REQUIREMENTS VALIDATING REQUIREMENTS UNIT - III [CH.. - 8] ] [BUILDING THE ANALYSIS MODEL] INTRODUCTION TO BUILDING THE ANALYSIS MODEL REQUIREMENTS ANALYSIS Overall Objectives and Philosophy Analysis Rules of Thumb Domain Analysis ANALYSIS MODELING APPROACHES DATA A MODELING CONCEPTS Data Objects Data Attributes Relationships Cardinality and Modality OBJECT-ORIENTED ORIENTED ANALYSIS SCENARIO-BASED MODELING Writing Use-Cases Developing an Activity Diagram Swimlane Diagrams FLOW OW-ORIENTED ORIENTED MODELING Creating a Data Flow Model Creating a Control Flow Model The Control Specification The Process Specification

9 Contents ix 8.8 CLASS-BASED MODELING Identifying Analysis Classes Specifying Attributes Defining Operations Class-Responsibility-Collaborator (CRC) Modeling Associations and Dependencies Analysis Packages CREATING A BEHAVIOURAL MODELING Identifying Events with the Use-Case State Representations UNIT - III [CH. - 9] ] [DESIGN ENGINEERING] INTRODUCTION TO O DESIGN ENGINEERING DESIGN WITHIN THE CONTEXT OF SOFTWARE ENGINEERING (SE) Translation of Analysis Model into Design Model DESIGN PROCESS AND DESIGN QUALITY Design Process Design Quality Characteristics of Good Design Process Software Quality Attributes DESIGN CONCEPTS Abstraction Architecture Patterns atterns Modularity Information Hiding Functional Independence

10 x Contents Refinement Refactoring Design Classes Characteristics of Well 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 - IV [CH. - 10] ] [CREATING AN ARCHITECTURAL DESIGN] INTRODUCTION TO O ARCHITECTURAL DESIGN SOFTWARE ARCHITECTURE 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 Patte atterns

11 Contents xi 10.5 Architectural Design Architectural Design Using Context Design Defining Archetypes Refining Architecture into Components Defining Instantiations of the System Assessing Alternative Architectural Designs An Architecture Trade rade-off Analysis Method Quantitative Guidance for Architectural Design Architectural Complexity Architectural Description Languages Mapping Data Flow into a Software Architecture Transform Flow Transaction Flow Transform Mapping Design Steps Transaction Mapping Design Steps UNIT - IV [CH ] ] [MODELING COMPONENT-LEVEL DESIGN] INTRODUCTION TO MODELING COMPONENT-LEVEL DESIGN WHAT IS A COMPONENT An Object-Oriented View The Conventional View A Process-Related View

12 xii Contents 11.3 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 Comparison of Design Notation UNIT - IV [CH. - 12] ] [PERFORMING USER INTERFACE DESIGN] INTRODUCTION TO O PERFORMING USER INTERFACE CE DESIGN THE GOLDEN RULES Place the User in Control Reduce the User s s Memory Load Make the Interface Consistent USER INTERFACE CE ANALYSIS AND DESIGN Interface Analysis and Design Models The Process INTERFACE ANALYSIS YSIS User Interface Analysis Task Analysis and Modeling Analysis of Display Content

13 Contents xiii 12.5 INTERFACE DESIGN STEPS Implementation of Interface Design Steps Development User Interface Design Patterns Various Design Issues Associated with the User Interface Design DESIGN EVAL ALUATION UNIT - V [CH. H. - 13] ] [TESTING STRATEGIES] INTRODUCTION TO SOFTWARE TESTING A STRATEGIC TEGIC APPROACH TO SOFTWARE TESTING Verification and Validation alidation Organizing for Software Testing A Software Testing Strategy for Conventional Software Architectures A Software Testing Strategy for Object-Oriented Architectures Criteria for Completion of Testing STRATEGIC TEGIC ISSUES TEST STRATEGIES TEGIES FOR CONVENTIONAL SOFTWARE Unit Testing esting Integration Testing TEST STRATEGIES TEGIES FOR OBJECT-ORIENTED ORIENTED SOFTWARE Unit Testing in the OO Context Integration Testing in the OO Context VALIDATION TESTING Validation Test Criteria Configuration Review (or) Audit Alpha and Beta Testing esting

14 xiv Contents 13.7 SYSTEM TESTING Recovery Testing Security Testing Stress Testing Performance Testing esting THE ART OF DEBUGGING Complexity of Debugging Debugging Strategies Consequences of Correcting the Error UNIT - V [CH. - 14] ] [TESTING TACTICS] SOFTWARE TESTING FUNDAMENT AMENTALS ALS Test est Characteristics BLACK CK-BO -BOX X AND WHITE-BO -BOX X TESTING WHITE-BOX TESTING BASIS PATH TH TESTING Flow Graph Notation Independent Program Paths Deriving Test est Cases Graph Matrices CONTROL STRUCTURE TESTING Condition Testing Data Flow Testing Loop Testing esting BLACK CK-BO -BOX TESTING Graph-Based Testing Method Equivalence Partitioning Boundary Value Analysis Orthogonal Array Testing

15 Contents xv 14.7 OBJECT-ORIENTED ORIENTED (OO) TESTING METHODS The TEst Case Design Implications of OO Concepts Applicability of Conventional Test Case Design Methods Fault ault-based Testing Scenario-Based Testing Testing Surface Structure and Deep Structure TESTING METHODS APPLICABLE ON THE CLASS LEVEL Random Testing for OO Classes Partition Testing at the Class Level INTERCLASS TEST CASE DESIGN Multiple Class Testing Tests Derived from Behaviour Models TESTING FOR SPECIALIZED ENVIRONMENTS, ARCHITECTURES AND APPLICATIONS TIONS Testing GUIs Testing of Client / Server Architectures Testing Documentation and Help Facilities acilities Testing for Realeal-Time Systems TESTING PATTERNS TTERNS UNIT - V [CH. - 15] ] [PRODUCT MATRICS] INTRODUCTION TO PRODUCT METRICS SOFTWARE QUALITY McCall s Quality Factors ISO 9126 Quality Factors The Transition to a Quantitative View

16 xvi Contents 15.3 A FRAMEWORK FOR PRODUCT METRICS Measures, Metrics and Indicators The Challenge of Product Metrics Measurement Principles Goal-Oriented Software Measurement The Attributes of Effective Software Metrics The Product Metrics Landscape METRICS FOR ANALYSIS MODEL Function-Based Metrics Metrics for Specification Quality METRICS FOR THE DESIGN MODEL Metrics for Architectural Design Object-Oriented Design Metrics Class-Oriented Metrics - The CK Metrics Suite Class-Oriented Metrics - The MOOD Metrics Suite Lorenz and Kidd OO Metrics 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 Oriented Testing METRICS FOR MAINTENANCE EXPECTED UNIVERSITY QUESTIONS Expected University Questions with Solutions... E.1 - E.18