Research Catalog

Fundamentals of software engineering

Title
Fundamentals of software engineering / Carlo Ghezzi, Mehdi Jazayeri, Dino Mandrioli.
Author
Ghezzi, Carlo.
Publication
Englewood Cliffs, NJ : Prentice Hall, ©1991.

Items in the Library & Off-site

Filter by

1 Item

StatusFormatAccessCall NumberItem Location
TextUse in library QA76.758 .G47 1991Off-site

Details

Additional Authors
  • Jazayeri, Mehdi.
  • Mandrioli, Dino.
Description
xv, 573 pages : illustrations; 24 cm
Subject
  • Software engineering
  • Software Engineering
  • Lehrbuch
  • Programmatuurtechniek
  • Génie logiciel
Bibliography (note)
  • Includes bibliographical references (p. 539-566) and index.
Contents
  • The Role of Object Orientation -- Software Engineering: A Preview -- The Role of Software Engineering in System Design -- A Shortened History of Software Engineering -- The Role of The Software Engineer -- The Software Life Cycle -- The Relationship of Software Engineering to Other Areas of Computer Science -- Programming Languages -- Operating Systems -- Data Bases -- Artificial Intelligence -- Theoretical Models -- The Relationship of Software Engineering to Other Disciplines -- Management Science -- Systems Engineering -- Software: Its Nature and Qualities -- Classification of Software Qualities -- External Versus Internal Qualities -- Product and Process Qualities -- Representative Qualities -- Correctness, Reliability, and Robustness -- Performance -- Usability -- Verifiability -- Maintainability -- Reusability -- Portability -- Understandability -- Interoperability -- Productivity -- Timeliness -- Visibility -- Quality Requirements in Different Application Areas -- Information Systems -- Real-Time Systems -- Distributed Systems -- Embedded Systems -- Measurement of Quality -- Software Engineering Principles -- Rigor and Formality -- Separation of Concerns -- Modularity -- Abstraction -- Anticipation of Change -- Generality -- Incrementality -- Two Case Studies Illustrating Software Engineering Principles -- Application of Software Engineering Principles to Compiler Construction -- A Case Study in System Engineering -- Design and Software Architecture -- The Software Design Activity and its Objectives.
  • Design for Change -- Product Families -- Modularization Techniques -- The Module Structure and its Representation -- Interface, Implementation, and Information Hiding -- Design Notations -- Categories of Modules -- Some Specific Techniques for Design for Change -- Stepwise Refinement -- Top-Down Versus Bottom-Up Design -- Handling Anomalies -- A Case Study in Design -- Concurrent Software -- Shared Data -- Real-Time Software -- Distributed Software -- Object-Oriented Design -- Generalization and Specialization -- Associations -- Aggregation -- More on UML Class Diagrams -- Architecture and Components -- Standard Architectures -- Software Components -- Architecture as Framework for Component Integration -- Architectures for Distributed Systems -- Specification -- The Uses of Specifications -- Specification Qualities -- Classification of Specification Styles -- Verification of Specifications -- Operational Specifications -- Data Flow Diagrams: Specifying Functions of Information Systems -- UML Diagrams for Specifying Behaviors -- Finite State Machines: Describing Control Flow -- Petri Nets: Specifying Asynchronous Systems -- Descriptive Specifications -- Entity-Relationship Diagrams -- Logic Specifications -- Algebraic Specifications -- Building and Using Specifications in Practice -- Requirements for Specification Notations -- Building Modular Specifications -- Specifications for the End User -- Verification -- Goals and Requirements of Verification -- Everything Must Be Verified.
  • The Results of Verification May Not Be Binary -- Verification May Be Objective or Subjective -- Even Implicit Qualities Must Be Verified -- Approaches to Verification -- Testing -- Goals for Testing -- Theoretical Foundations of Testing -- Empirical Testing Principles -- Testing in the Small -- Testing in the Large -- Separate Concerns in the Testing Activity -- Testing Concurrent and Real-Time Systems -- Analysis -- Informal Analysis Techniques -- Correctness Proofs -- Symbolic Execution -- Basic Concepts of Symbolic Execution -- Programs with Arrays -- The Use of Symbolic Execution in Testing -- Model Checking -- Debugging -- Verifying Other Software Properties -- Verifying Performance -- Verifying Reliability -- Verifying Subjective Qualities -- The Software Production Process -- What is a Software Process Model? -- Why Are Software Process Models Important? -- The Main Activities of Software production -- Feasibility Study -- Eliciting, Understanding, and Specifying Requirements -- Definition of the Software Architecture and Detailed Design -- Coding and Module Testing -- Integration and System Testing -- Delivery, Deployment, and Maintenance -- An Overview of Software Process Models -- Waterfall Models -- Evolutionary Models -- Transformation Model -- Spiral Model -- An Assessment of Process Models -- Dealing with Legacy Software -- Case Study: A Telephone Switching System -- Case Study: A Budget Control System -- Case study: The Microsoft Synchronize and Stabilize Process -- Case study: The Open Source Approach.
  • Organizing the Process -- Structured Analysis/Structured Design -- Jackson's System Development and Structured Programming -- The Unified Software Development Process -- Organizing Artifacts: Configuration Management -- Software Standards -- Management of Software Engineering -- Management Functions -- Project Planning -- Software Productivity -- People and Productivity -- Cost Estimation -- Project Control -- Work Breakdown Structures -- Gantt Charts -- PERT Charts -- Dealing with Deviations from the Plan -- Organization -- Centralized-Control Team Organization -- Decentralized-Control Team Organization -- Mixed-Control Team Organization -- An Assessment of Team Organizations -- Risk Management -- Typical Management Risks in Software Engineering -- Capability Maturity Model -- Software Engineering Tools and Environments -- Historical Evolution of Tools and Environments -- Dimensions for Comparing Software Tools -- Representative Tools -- Editors -- Linkers -- Interpreters -- Code Generators -- Debuggers -- Tools Used in Software Testing -- Static Analyzers -- Graphical User Interface Tools -- Configuration Management Tools -- Tracking tools -- Reverse and reengineering tools -- Process support tools -- Management Tools -- Tool Integration -- Forces Influencing the Evolution of Tools -- The Future -- Ethics and Social Responsibility -- Software Engineering Code of Ethics -- Automating a Law Office -- Economic and Financial Planning -- Technical Planning and Management -- Project Monitoring -- Initial Delivery.
  • Partial Recovery -- Building a Family of Compliers -- Initial Product Planning -- Economic and Financial Planning -- Technical Planning and Management -- Early Development Phases -- Project Monitoring -- Project Reexamination, Revival, And Goal Setting -- Assignment of Responsibility -- Steady Progress and Release of the Product -- Product Distribution -- Incremental Delivery -- Applying Formal Methods in Industry -- Education and Training -- Requirements Specification -- Requirements Validation and Verification Planning -- Design, Implementation, and Verification -- Overall Evaluation and Assessment -- The Impact of the Project on Company's Strategy.
ISBN
  • 0138204322
  • 9780138204327
  • 0138182043
  • 9780138182045
LCCN
90020198
OCLC
  • ocm22544741
  • 22544741
  • SCSB-1962781
Owning Institutions
Princeton University Library