Fundamentals of Software Engineering / (Record no. 2002)
[ view plain ]
000 -LEADER | |
---|---|
fixed length control field | 12787cam a22001935i 4500 |
020 ## - INTERNATIONAL STANDARD BOOK NUMBER | |
International Standard Book Number | 9788120338197 (pb) |
040 ## - CATALOGING SOURCE | |
Transcribing agency | CUS |
082 04 - DEWEY DECIMAL CLASSIFICATION NUMBER | |
Classification number | 005.1 |
Item number | MAL/F |
100 1# - MAIN ENTRY--PERSONAL NAME | |
Personal name | Mall, Rajib. |
245 10 - TITLE STATEMENT | |
Title | Fundamentals of Software Engineering / |
Statement of responsibility, etc. | Rajib Mall |
250 ## - EDITION STATEMENT | |
Edition statement | 3rd ed. |
260 ## - PUBLICATION, DISTRIBUTION, ETC. (IMPRINT) | |
Place of publication, distribution, etc. | New Delhi : |
Name of publisher, distributor, etc. | PHI Learnings , |
Date of publication, distribution, etc. | 2010. |
300 ## - PHYSICAL DESCRIPTION | |
Extent | xxii, 441 p. |
505 ## - FORMATTED CONTENTS NOTE | |
Formatted contents note | 1. INTRODUCTION<br/>1.1 The Software Engineering Discipline—^Its Evolution and Impact<br/>1.1.1 Evolution of an Art into an Engineering Discipline<br/>1.1.2 A Solution to the Software Crisis<br/>1.2 Software Development Projects<br/>1.2.1 Programs versus Products<br/>1.2.2 Types of Soft%vare Development Projects<br/>1.2.3 Software Projects being Undertaken by Indian Companies<br/>1.3 What is Wrong with the Exploratory Style of Software Development?<br/>1.3.1 Perceived Problem Complexity: An Interpretation Based on<br/>Human Cognition Mechanism<br/>1.3.2 Principles Deployed by Software Engineering to Overcome<br/>Human Cognitive Limitations<br/>1.3.3 Why Study Software Engineering?<br/>1.4 Emergence of Software Engineering<br/>1.4.1 Early Computer Programming<br/>1.4.2 High-Level Language Programming<br/>1.4.3 Control Flow-Based Design<br/>1.4.4 Data Structure-Oriented Design<br/>1.4.5 Data Flow-Oriented Design<br/>1.4.6 Object-Oriented Design<br/>1.4.7 What Next?<br/>1.4.8 Other Developments<br/>1.5 Notable Changes in Software Development Practices<br/>1.6 Computer Systems Engineering<br/>2. SOFTWARB LIFE CYCLE MODELS<br/>2.1 Why Use a Life Cycle Model?<br/>2.1.1 Why Dociiment a Life Cycle Model?<br/>2.1.2 Phase Entry and Exit Criteria<br/>2.2 Classical Waterfall Model<br/>2.2.1 Phases of Classical Waterfall Model.<br/>2.2.2 Shortcomings of the Classical WaterfEtll Model.<br/>2.2.3 Is the Classical-Waterfall Model Useful at All?<br/>2.3 Iterative Waterfall Model<br/>2.3.1 Phase Containment of Errors ....<br/>2.3.2 Shortcomings of the Iterative Waterfall Model..<br/>2.4 Prototyping Model<br/>2.5 Evolutionary Model<br/>2.5.1 Life Cycle Activities ....<br/>2.6 Spiral Model<br/>2.6.1 Bisk Handling in Spiral Model<br/>2.6.2 Phases of the Spiral Model<br/>2.6.3 Pros and Cons of the Spiral Model<br/>2.6.4 Spiral Model as a Meta Model<br/>2.7 Comparison of Different Life Cycle Models .<br/>2.7.1 Selecting an Appropriate Life Cycle Model for a Project.<br/>8. SOFTWARE PROJECT MANAGEMENT<br/>3.1 Responsibilities of a Software Project Manager<br/>3.1.1 Job Responsibilities of a Software Project Manager.<br/>3.1.2 Skills Necessary for Software Project Management...<br/>3.2 Project Planning<br/>3.2.1 The SPMP Document<br/>3.3 Metrics for Project Size Estimation<br/>3.3.1 Lines of Code (LOC)<br/>3.3.2 Function Point Metric<br/>3.4 Project Estimation Techniques<br/>3.4.1 Empirical Estimation Techniques .<<br/>3.4.2 Heuristic Tedmiques<br/>3.4.3 Analytical Estimation Tedmiques ....<br/>3.5 Empiricd Estimation Techniques<br/>3.5.1 Expert Judgement Technique<br/>3.5.2 Delphi Cost Estimation<br/>3.6 COCOMO—A Heuristic Estimation Technique<br/>3.6.1 Basic COCOMO Model ,<br/>3.6.2 Intermediate COCOMO .<br/>3.6.3 Complete COCOMO<br/>3.6.4 COCOMO 2 ..:<br/>3.7 Halstead's Software Science—An Analytical Technique.......<br/>3.7.1 Length and Vocabulary<br/>3.7.2 Program Volume<br/>3.7.3 Potential Minimum Volume<br/>3.7.4 Effort and Time<br/>3.7.5 Length Estimation<br/>3.8 Staffing Level Estimation r.<br/>3.8.1 Norden's Work<br/>3.8.2 Putnam's Work<br/>3.8.3 Effect of Schedule Change on Cost<br/>3.8.4 Jensen's Model<br/>3.9 Scheduling<br/>3.9.1 Work Breakdown Structure<br/>3.9.2 Activity Networks and Critical Path Method<br/>3.9.3 Gantt Charts<br/>3.9.4 PERT Charts<br/>3.9.5 Project Monitoring and Control<br/>3.10 Organization and Team Structures<br/>3.10.1 Organization Structure<br/>3.10.2 Team Structure<br/>3.11 Staffing<br/>3.11.1 Who is a Good Software Engineer? .<br/>3.12 Risk Management<br/>3.12.1 Risk Identification<br/>3.12.2 Risk Assessment<br/>3.12.3 Risk Containment<br/>3.13 Software Configuration Management<br/>3.13.1 Necessity of Software Configuration Management<br/>3.13.2 Configuration Management Activities<br/>3.13.3 Source Code Control System (SCCS) and RCS<br/>3.14 Miscellaneous Plans<br/>4. REQUIREMENTS ANALYSIS AND SPECIFICATION .....<br/>4.1 Requirements Gathering and Analysis<br/>4.1.1 Requirements Gathering<br/>4.1.2 Requirements Analysis<br/>4.2 Software Requirements Specification (SRS)<br/>4.2.1 Characteristics of a Good SRS Document<br/>4!2.2 Examples of Bad SRS Documents<br/>4.2.3 Important Categories of Customer Requirements ,<br/>4.2.4 Functional Requirements<br/>4.2.5 How to Identify the Functional Requirements?<br/>4.2.6 How to Document the Functional Requirements?<br/>4.2.7 Traceability<br/>4.2.8 Organization of the SRS Document<br/>4.2.9 Techniques for Representing Complex Logic..,<br/>4.3 Formal System Specification<br/>4.3.1 What is a Formal Technique?<br/>4.3.2 Model versus Property-Oriented Methods<br/>4.3.3 Operational Semantics<br/>4.3.4 Merits and Limitations of Formal Methods ...<br/>4.4 Axiomatic Specification<br/>4.5 Algebraic Specification<br/>4.5.1 Properties of Algebraic Specifications .<br/>4.5.2 Auxiliary Functions<br/>4.5.3 Structured Specification<br/>4.5.4 Pros and Cons of Algebraic Specifications ....<br/>4.6 Executable Specification and 4GL<br/>SOFTWARE DESIGN<br/>5.1 Outcome of a Design Process<br/>5.1.1 Classification of Design Activities,<br/>5.1.2 Classification of Design Methodologies<br/>5.1.3 Analysis versus Design<br/>5.2 How can We Characterize a Good Software Design? .<br/>5.3 Cohesion and Coupling<br/>5.3.1 Coupling<br/>5.3.2 Cohesion<br/>5.3.3 Functional Independence<br/>5.3.4 Classification of Cohesiveness<br/>5.3.5 Classification of CoupUng<br/>5.4 Layered Arrangement of Modules<br/>5.5 Approaches to Software Design<br/>5.5.1 Function-Oriented Design<br/>5.5.2 Object-Oriented Design<br/>5.6 Object-Oriented versus Function-Oriented Design Approaches<br/>5.6.1 Automated Fire-Alarm System—Customer Requirements<br/>5.6.2 Function-Oriented Approach<br/>5.6.3 Object-Oriented Approach<br/>6. FUNCTION-ORIENTED SOFTWARE DESIGN.<br/>6.1 Overview of SA/SD Methodology<br/>6.2 Structured Analysis<br/>6.3 Data Flow Diagrams (DFDs)<br/>6.3.1 Primitive Symbols Used for Constructing DFDs<br/>6.3.2 Some Important Concepts Associated with Constructing<br/>DFD Models<br/>6.3.3 Developing the DFD Model of a System.<br/>6.3.4 Shortcomings of the DFD Model<br/>6.4 Extending DFD Technique to Make it Applicable to Real-Time Systems<br/>6.5 Structmred Design<br/>6.5.1 Flow Chart versus Structure Chart...<br/>6.5.2 Transformation of a DFD Model into Structmre Uhart .<br/>6.5.3 Transform Analysis ..<br/>6.5.4 Transaction Analysis<br/>6.6 Detailed Design...,<br/>6.7 Design Review<br/>7. OBJECT MODELLING USING UML.<br/>7.1 Overview of Basic Object-Orientation Concepts .<br/>7.1.1 Basic Mechanisms<br/>7.1.2 Key Concepts<br/>7.1.3 Related Technical Terms<br/>7.1.4 Advantages of OOD<br/>7.2 Unified Modelling Language (UML)..<br/>7.3 UML Diagrams ...<br/>7.4 Use Case Model..<br/>7.4.1 Representation of Use Cases<br/>7.4.2 Why Develop the Use Case Diagram?..<br/>7.4.3 How to Identify the Use Cases of a System?<br/>7.4.4 Essential versus Real Use Case<br/>lA.b Factoring of Connnonality among Use Cases<br/>7.4.6 Use Case Packaging<br/>7.5 Class Diagrams<br/>7.6 Interaction Diagrams .<br/>7.7 Activity Diagrams<br/>7.8 State Chart Diagram .<br/>7.9 Postscript<br/>7.9.1 Package and Deployment Diagrams .<br/>7.9.2 UML 2.0<br/>8. OBJECT-ORIENTED SOFTWARE DEVELOPMENT<br/>8.1 Patterns<br/>8.1.1 Basic Pattern Concepts<br/>8.1.2 Types of Patterns<br/>8.1.3 More Pattern Concepts<br/>8.2 Some Common Design Patterns<br/>8.2.1 Expert<br/>8.2.2 Creator<br/>8.2.3 Facade Pattern<br/>8.2.4 Model View Separation Patterns<br/>8.2.5 Observer Pattern<br/>8.2.6 Model-View-Controller (MVC) Pattern<br/>8.2.7 Publish-Subscribe Pattern<br/>8.2.8 Intermediary (or Proxy) Pattern<br/>8.3 An Object-Oriented Analysis and Design Methodology<br/>8.3.1 The Unified Process<br/>8.3.2 Overview of the OOAD Methodology ..<br/>8.3.3 Use Case Model Development<br/>8.3.4 Domain Modelling<br/>8.3.5 Identification of Entity Objects<br/>8.3.6 Booch's Object Identification Method..<br/>8.4 Interaction Modelling.<br/>8.4.1 CRC Cards....<br/>8.5 Applications of the Analysis and Design Process .<br/>8.6 OOD Goodness Criteria<br/>9. USER INTERFACE DESIGN<br/>9.1 Characteristics of a Good User Interface....<br/>9.2 Basic Concepts<br/>9.2.1 User Guidance and Online Help<br/>9.2.2 Mode-based versus Modeless Interface<br/>9.2.3 Graphical User Interface (GUI) vs. Text-based User Interface<br/>9.3 Types of User Interfaces<br/>9.3.1 Command Language-based Interface<br/>9.3.2 Menu-based Interface<br/>9.3.3 Direct Manipulation Interfaces<br/>. 9.4 Fundamentals of Component-based GUI Development..<br/>9.4.1 Window System<br/>9.4.2 Types of Widgets<br/>9.4.3 An Overview of X-Window/MOTIF<br/>9.4.4 X Architecture<br/>9.4.5 Visual Programming<br/>9.4.6 Size Measurement of a Component-based GUI<br/>9.5 A User Interface Design Methodology<br/>9.5.1 Imphcations of Human Cognition Capabilities on<br/>User Interface Design<br/>9.5.2 A GUI Design Methodology<br/>9.5.3 Task and Object Modelling<br/>9.5.4 Selecting a Metaphor<br/>9.5.5 Interaction Design and Rough Layout<br/>9.5.6 User Interface Inspection<br/>10. CODING AND TESTING<br/>10.1 Coding<br/>10.1.1 Coding Standards and Guidelines<br/>10.2 Code Review ••••<br/>10.2.1 Code Walkthrough<br/>10.2.2 Code Inspection<br/>10.2.3 Clean Room Testing<br/>10.3 Software Docmnentation<br/>10.3.1 Internal Docmnentation<br/>10.3.2 External Documentation<br/>10.3.3 Gmming's Fog Index<br/>10.4 Testing<br/>10.4.1 Basic Concepts and Terminologies<br/>10.4.2 Why Design Test Oases?<br/>10.5 Testing in the Large versus Testing in the Small.<br/>10.6 Unit Testing<br/>10.6.1 Driver and Stub Modules<br/>10.7 Black-Box Testing<br/>10.7.1 Equivalence Class Partitioning.<br/>10.7.2 Boimdary Value Analysis<br/>10.7.3 Summary of the Black-Box Test Suite Design Approach<br/>10.8 White-Box Testing<br/>10.8.1 Basic Concepts<br/>10.8.2 Statement Coverage<br/>10.8.3 Branch Coverage.....<br/>10.8.4 Condition Coverage<br/>10.8.5 Path Coverage<br/>10.8.6 McCabe's Cyclomatic Complexity Metric<br/>10.8.7 Data Flow-based Testing<br/>10.8.8 Mutation Testing<br/>10.9 Debugging<br/>10.9.1 Debugging Approaches....<br/>10.9.2 Debugging Guidelines<br/>10.10 Program Analysis Tools<br/>10.10.1 Static Analysis Tools<br/>10.10.2 Dynamic Analysis Tools .<br/>10.11 Integration Testing<br/>10.11.1 Phased versus Incremental Integration Testing<br/>10.12 Testing Object-Oriented Programs<br/>10.12.1 What is a Suitable Unit for Testing Object-Oriented<br/>Programs?<br/>10.12.2 Do Various Object-Orientation Concepts Make Testing Easy?<br/>10.12.3 Why are Traditional Techniques Considered Unsatisfactory<br/>for Testing Object-Oriented Programs?<br/>10.12.4 Grey-Box Testing of Object-Oriented Programs ..<br/>10.12.5 Integration Testing of Object-Oriented Programs<br/>10.13 System Testing<br/>10.13.1 Performance Testing .<br/>10.13.2 Error Seeding<br/>10.14 Some General Issues Associated with Testing<br/>10.14.1 Test Documentation.<br/>10.14.2 Regression Testing ...<br/>11. SOFTWARE RELIABILITY AND QUALITY MANAGEMENT<br/>11.1 Software Reliability<br/>11.1.1 Hardware versus Software Reliability<br/>11.1.2 Reliability Metrics<br/>11.1.3 Reliability Growth Modelling..<br/>11.2 Statistical Testing<br/>11.3 Software Quality<br/>11.4 Software Quality Management System.<br/>11.4.1 Evolution of Quality Systems..<br/>11.4.2 Product Metrics versus Process Metrics<br/>11.5 ISO 9000<br/>11.5.1 What is ISO 9000 Certification?<br/>11.5.2 ISO 9000 for Software Industry<br/>11.5.3 Why Get ISO 9000 Certification?<br/>11.5.4 How to Get ISO 9000 Certification? ....<br/>11.5.5 Siuninary of ISO 9001 Requirements<br/>11.5.6 Salient Features of ISO 9001 Reqmrements<br/>11.5.7 ISO 9000-2000<br/>11.5.8 Shortcomings of ISO 9000 Certification<br/>11.6 SEI Capability Maturity Model<br/>11.6.1 Comparison between ISO 9000 Certification and SEI/CMM<br/>11.6.2 Is SEI CMM Applicable to Small Organizations? ..<br/>11.6.3 CMMI<br/>11.7 Personal Software Process (PSP)<br/>11.8 Six Sigma<br/>12. COMPUTER AIDED SOFTWARE ENGINEERING .<br/>12.1 Case and its Scope<br/>12.2 Case Environment<br/>12.2.1 Benefits of CASE<br/>12.3 CASE Support in Software Life Cycle...<br/>12.3.1 Prototyping Support<br/>12.3.2 Structured Analysis and Design<br/>12.3.3 Code Generation<br/>12.3.4 Test Case Generator<br/>12.4 Other Characteristics of CASE Tools ....<br/>12.4.1 Hardware and Environmental Requirements<br/>12.4.2 Docmnentation Support<br/>. 12.4.3 Project Management<br/>12.4.4 External Interface<br/>12.4.5 Reverse Engineering Support<br/>12.4.6 Data Dictionary Interface<br/>12.4.7 Tutorial and Help<br/>12.5 Towards Second Generation CASE Tool ..<br/>12.6 Architecture of a CASE Environment<br/>13. SOFTWARE MAINTENANCE<br/>13.1 Characteristics of Software Maintenance..<br/>13.1.1 Types of Software Maintenance<br/>13.1.2 Characteristics of Software Evolution<br/>13.1.3 Special Problems Associated with Software Maintenance<br/>13.2 Software Reverse Engineering<br/>13.3 Software Maintenance Process Models<br/>13.4 Estimation of Maintenance Cost<br/>14. SOFTWARE REUSE<br/>14.1 What can be Reused?<br/>14.2 Why Almost no Reuse so Far?<br/>14.3 Basic Issues in any Reuse Program .<br/>14.4 A Reuse Approach<br/>14.4.1 Domain Analysis<br/>14.4.2 Component Classification<br/>14.4.3 Searching<br/>14.4.4 Repository Maintenance<br/>14.4.5 Reuse without Modifications<br/>14.5 Reuse at Organization Level<br/>14.5.1 Current State of Reuse<br/>15. EMERGING TRENDS<br/>15.1 Client-Server Software<br/>15.1.1 Advantages of Client-Server Software ....<br/>15.1.2 Disadvantages of Client-Server Software<br/>15.1.3 Client-Server Architectures ..<br/>15.1.4 COKBA<br/>15.1.5 COM/DCOM<br/>15.2 Service-Oriented Architecture (SOA)<br/>15.3 Software £is a Service (SaaS) |
650 #0 - SUBJECT | |
Keyword | Computer Science. |
650 #0 - SUBJECT | |
Keyword | Software Engineering. |
650 24 - SUBJECT | |
Keyword | Logics and Meanings of Programs. |
942 ## - ADDED ENTRY ELEMENTS (KOHA) | |
Koha item type | General Books |
Withdrawn status | Lost status | Damaged status | Not for loan | Home library | Current library | Shelving location | Date acquired | Full call number | Accession number | Date last seen | Date last checked out | Koha item type |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Central Library, Sikkim University | Central Library, Sikkim University | General Book Section | 02/06/2016 | 005.1 MAL/F | P33281 | 19/12/2023 | 19/12/2023 | General Books |