Software Engineering

Software Engineering: The Current Practice

Series:
Published:
Author(s):
Free Standard Shipping

Purchasing Options

Hardback
$79.95
Add to cart
ISBN 9781439841228
Cat# K11915
eBook
ISBN 9781439886434
Cat# KE14369
 

Features

  • Emphasizes iterative processes of contemporary software engineering practice, including agile processes
  • Uses object-oriented technology and UML to illustrate software engineering concepts
  • Describes the phases of software change, including concept location, impact analysis, refactoring, unit testing, and frequent builds
  • Shows how to develop iteratively new programs from scratch and how to deal with existing legacy code
  • Covers related issues, such as ethics and software management
  • Gives examples of the solo iterative process (SIP) and software change
  • Provides PowerPoint slides and other material at www.cs.wayne.edu/~vip/slides-se.html

Password-protected solutions manual available with qualifying course adoption

Summary

Software Engineering: The Current Practice teaches students basic software engineering skills and helps practitioners refresh their knowledge and explore recent developments in the field, including software changes and iterative processes of software development.

After a historical overview and an introduction to software technology and models, the book discusses the software change and its phases, including concept location, impact analysis, refactoring, actualization, and verification. It then covers the most common iterative processes: agile, directed, and centralized processes. The text also journeys through the software life span from the initial development of software from scratch to the final stages that lead toward software closedown.

For Professionals
The book gives programmers and software managers a unified view of the contemporary practice of software engineering. It shows how various developments fit together and fit into the contemporary software engineering mosaic. The knowledge gained from the book allows practitioners to evaluate and improve the software engineering processes in their projects.

For Instructors
Instructors have several options for using this classroom-tested material. Designed to be run in conjunction with the lectures, ideas for student projects include open source programs that use Java or C++ and range in size from 50 to 500 thousand lines of code. These projects emphasize the role of developers in a classroom-tailored version of the directed iterative process (DIP).

For Students
Students gain a real understanding of software engineering processes through the lectures and projects. They acquire hands-on experience with software of the size and quality comparable to that of industrial software. As is the case in the industry, students work in teams but have individual assignments and accountability.

Table of Contents

INTRODUCTION
History of Software Engineering
Software Properties
Origins of Software
Birth of Software Engineering
Third Paradigm: Iterative Approach

Software Life Span Models
Staged Model
Variants of Staged Model

Software Technologies
Programming Languages and Compilers
Object-Oriented Technology
Version Control System

Software Models
Class Diagrams
UML Activity Diagrams
Class Dependency Graphs and Contracts

SOFTWARE CHANGE
Introduction to Software Change
Characteristics of Software Change
Phases of Software Change
Requirements and Their Elicitation
Requirements Analysis and Change Initiation

Concepts and Concept Location
Concepts
Concept Location Is a Search
Extraction of Significant Concepts (ESC)
Concept Location by Grep
Concept Location by Dependency Search

Impact Analysis
Impact Set
Class Interaction Graphs
Process of Impact Analysis
Propagating Classes
Alternatives in Software Change
Tool Support for Impact Analysis

Actualization
Small Changes
Changes Requiring New Classes
Change Propagation

Refactoring
Extract Function
Extract Base Class
Extract Component Class
Prefactoring and Postfactoring

Verification
Testing Strategies
Unit Testing
Functional Testing
Structural Testing
Regression and System Testing
Code Inspection

Conclusion of Software Change
Build Process and New Baseline
Preparing for Future Changes
New Release

SOFTWARE PROCESSES
Introduction to Software Processes
Characteristics of Software Processes
Solo Iterative Process (SIP)
Enacting and Measuring SIP
Planning in SIP

Team Iterative Processes
Agile Iterative Process (AIP)
Directed Iterative Process (DIP)
Centralized Iterative Process (CIP)

Initial Development
Software Plan
Initial Product Backlog
Design
Implementation
Team Organizations for Initial Development

Final Stages
End of Software Evolution
Servicing
Phaseout and Closedown
Reengineering

CONCLUSION
Related Topics
Other Computing Disciplines
Professional Ethics
Software Management
Software Ergonomics
Software Engineering Research

Example of Software Change
Concept Location
Impact Analysis
Actualization
Testing

Example of SIP
Initial Development
Iteration 1
Iteration 2

Index

A Summary, Further Reading and Topics, and References appear at the end of each chapter.

Author Bio(s)

Textbooks
Other CRC Press Sites
Featured Authors
STAY CONNECTED
Facebook Page for CRC Press Twitter Page for CRC Press You Tube Channel for CRC Press LinkedIn Page for CRC Press Google Plus Page for CRC Press
Sign Up for Email Alerts
© 2013 Taylor & Francis Group, LLC. All Rights Reserved. Privacy Policy | Cookie Use | Shipping Policy | Contact Us