Description
Taylor & Francis Introduction to Software Engineering 2000 Edition by Ronald J. Leach
Software engineering lies at the heart of the computer revolution. Software is used in automobiles, airplanes, and many home appliances. As the boundaries between the telecommunications, entertainment, and computer industries continue to blur in multimedia and networking, the need for software will only increase, and software will become increasingly complex. Introduction to Software Engineering gives your students the fundamentals of this growing and rapidly changing field.The book highlights the goals of software engineering, namely to write programs that have all the following attributes: efficient, reliable, usable, modifiable, portable, testable, reusable, maintainable, compatible and correct. The nine chapters cover topics that include project management, defining requirements, software design, coding, testing and integration, delivery and installation, documentation, maintenance, and research issues.The author uses a hybrid approach, combining object-oriented technology and classical programming techniques to solve computing problems. He also places a strong emphasis on Internet technology and resources. A simple, but non-trivial, running example illustrates all stages of the software engineering process. In addition, where applicable, he covers the impact of Internet technology.Introduction to Software Engineering presents the basics of software engineering in a concise and direct format. With emphasis on Internet technology, software tools for programming, and hands-on learning, this book effectively prepares students to move from an educational situation towards applying their knowledge to the complex projects faced in the professional arena.Features Table of Contents : INTRODUCTIONThe Need for Software EngineeringAre Software Teams Really Necessary?Software EngineeringSoftware LifecyclesDifferent Views of Software Engineering ActivitiesSoftware Engineering as an Emerging DisciplineSome Techniques of Software EngineeringStandards Commonly Used for Software Development ProcessesThe Year 2000 Problem and Similar ProblemsOrganization of the BookPROJECT MANAGEMENTSub-Teams Needed in Software Engineering ProjectsThe Nature of Project TeamsProject ManagementSoftware Project EstimationProject SchedulingProject MeasurementProject Management ToolsThe Role of Networks in Project ManagementGroupwareAn Example: Project Management for a Year 2000 Conversion ProjectREQUIREMENTSSome Problems with Requirements DeterminationRequirements ElicitationRequirements TraceabilitySoftware Architectures and RequirementsReengineering System RequirementsAssessment of Feasibility of System RequirementsUsability RequirementsSpecifying Requirements Using State Diagrams and Decision TablesSpecifying Requirements Using Petri NetsEthical IssuesSome Metrics for RequirementsThe Requirements ReviewThe Major Project - Problem StatementThe Major Project - Requirements ElicitationThe Major Software Project - Requirements Analysis SOFTWARE DESIGNIntroductionSoftware Design PatternsIntroduction to Software Design RepresentationsProcedurally-Oriented Design RepresentationsSoftware ArchitecturesSoftware Design Principles for Procedurally-Oriented ProgramsWhat is an Object?Object-Oriented Design RepresentationsSoftware Design Principles for Object-Oriented ProgramsClass Design IssuesAn Example of Class Development - The String ClassUser InterfacesSoftware InterfacesSome Metrics for DesignDesign ReviewsA Manager's Viewpoint of DesignArchitecture of the Major Software Engineering ProjectPreliminary Design of the Major Software ProjectSubsystem Design of the Major Software ProjectDetailed Design for the Major Software ProjectCODINGThe Choice of Programming LanguageCoding StylesCoding StandardsCoding, Design, Requirements, and ChangeSome Coding MetricsCoding Reviews and InspectionsConfiguration ManagementA Management Perspective on CodingCoding of the Major Software ProjectTESTING AND INTEGRATIONTypes of Software TestingBlack-Box Module TestingWhite-Box Module TestingReducing the Number of Test Cases by Effective Test StrategiesTesting Objects for Encapsulation and CompletenessTesting Objects with InheritanceGeneral Testing Issues for Object-Oriented SoftwareTest PlansSoftware IntegrationManaging Change in the Integration ProcessPerformance and Stress TestingQuality AssuranceSoftware ReliabilityA Manager's Viewpoint on Testing and IntegrationTesting the Major Software ProjectIntegrating the Major Software ProjectDELIVERY, INSTALLATION, AND DOCUMENTATIONDeliveryInstallationInternal DocumentationExternal DocumentationDesign RationalesInstallation, User, Training, and Operations ManualsOn-Line DocumentationReading LevelsA Manager's View of Delivery, Installation, and DocumentationDelivery, Installation, and Documentation of the Major Software ProjectMAINTENANCEIntroductionCorrective Software MaintenanceAdaptive Software MaintenancePreventative Software Maintenance and the Year 2000 ProblemHow to Read Requirements, Designs, and Source CodeA Manager's Perspective on Software MaintenanceMaintenance of the Major Software ProjectRESEARCH ISSUES IN SOFTWARE ENGINEERINGSome Important Research Problems in Software EngineeringHow to Read the Software Engineering Research LiteratureAPPENDIX: COMMAND-LINE ARGUMENTSREFERENCES