Project-Based Software Engineering

by 14:24 0 comments
Project-Based Software Engineering


Project-Based Software Engineering is the first textbook to provide hands-on process and practice in software engineering essentials for the beginner. The text presents steps through the software development life cycle and two running case studies that develop as the steps are presented. Running parallel to the process presentation and case studies, the book supports a semester-long software development project. This book is appropriate for a sophomore/junior level software engineering course and/or people teaching a hands-on project-based course in which giving students experience in project analysis, design implementation and testing is a primary goal.

Table of Contents

1. Introduction to Software Engineering.
Key Concepts.
Why Engineer Software?
Elements of a Software Development Paradigm.
A Brief History of Software Engineering Techniques.
The Costs of Not Engineering Software.
Why Software Engineering Is Not Universal.
The Role of the Project.
Working in Teams.
Creating the Project Team.
CLASS PROJECT: Functional Requirements.
Questions for Review.

2. Object-Oriented Paradigm Overview.
Key Concepts.
Getting Acquainted with the Class Project.
Object-Oriented Conceptualization.
The Software Life Cycle.
Object-Oriented Modeling.
Qualities of a Good Object-Oriented System.
Working in Teams.
Questions for Review.

3. Object-Oriented Analysis.
Key Concepts.
Introduction to Requirements Analysis.
The Importance of Requirements Analysis.
Requirements Specification.
CASE STUDY: Library Management System Specification.
Evaluating the Requirements Specification.
Refining the Requirements Specification.
Verifying the Requirements Specification.
Propagating Requirements throughout Development.
The Process of Requirements Analysis.
Analyzing the CLASS PROJECT.
Working in Teams.
Questions for Review.

4. Product Design.
Key Concepts.
Objectives of Design.
Class Design versus Product Design.
Product Design Overview and Objectives.
Object Persistence.
CASE STUDY: Object Persistence in LMS.
Process Architecture.
CASE STUDY: Interprocess Communication in LMS.
CLASS PROJECT: Interprocess Communication in Galaxy Sleuth.
User Interfaces.
User Interface Design.
User Interface Design Principles.
CASE STUDY: User Interface for LMS.
Working in Teams.
Class Project Product Design.
Questions for Review.

5. Class Design.
Key Concepts.
The Class Design Process.
More UML.
Objectives of the Class Design Phase.
Verification of the Class Design.
Designing the CLASS PROJECT.
Questions for Review.

6. CASE STUDY: Game2D with Method Design.
Key Concepts.
Requirements Specification.
Refined Requirements Specification.
Requirements Analysis.
Product Design.
Class Design.
Method Design.
Questions for Review.

7. Implementation.
Key Concepts.
Implementation Approaches.
Implementation Plan.
CASE STUDY: Implementation Plan for the LMS.
Programming Style.
Comments and Internal Documentation.
Project Coding Standards.
Implementing the CLASS PROJECT.
Questions for Review.

8. Testing.
Key Concepts.
What Is Testing?
Principles of Object-Oriented Testing.
Testing Steps.
Special Issues for Testing Object-Oriented Systems.
CASE STUDY: Testing the LMS.
Testing the CLASS PROJECT.
Testing in the Face of Change: Configuration Management.
Questions for Review.

9. Project Management.
Key Concepts.
Project Manager Responsibilities.
Configuration Management.
Project Planning and Monitoring.
Project Teams.
Risk Management.
Reducing Risk.
Further Readings on Risk Management.
CASE STUDY: Risk Analysis in the LMS.
Questions for Review.

10. Design Patterns.
Key Concepts.
Motivation for Design Patterns.
What Are Design Patterns?
Exploring Design Patterns.
Questions for Review.

11. Software Development Horror Stories.
Key Concepts.
Telephones and Communications.

12. Completing and Presenting the CLASS PROJECT.
Succeeding with the Class Project.
Reflecting on the Project.
Presenting the Project.


Focuses on object-oriented software development; the book supports the conceptualization, analysis, design and implementation of an object-oriented project.
Mostly language-independent. Necessary code examples are in Java. A subset of UML is used; the notation is explained, as needed, to support the students' work.
Two running case studies—a video game and a library check out system—show the development of a software project. Both have sample deliverables and thus provide the reader with examples of the type of work students are to create.
Includes sections throughout the book to guide students in the development of a semester-long class project, including activities such as creating specifications and deliverables. (Professor's supplements include complete materials based on the development of a video game project. This project is engaging to the student, complex enough to sustain a small software development team, and can be completed in a semester long course.)
The larger software engineering context is shown through material such as real life software development successes, as well material on project management horror stories.



Razi is an IT Lecturer and Training Consultant. His lecture/training includes:
+Software Engineering
+Mobile Development
+Web Portal System
+Adobe Creative Suites
+Microsoft Office Suites
Read more about him at About Page