Home   FAQs   New Arrivals   Specials   Pricing & Shipping   Location   Corporate Services   Why Choose Bookware?  
 Search:   
Call our store: 9922 6266 (from within Sydney) or 1800 734 567 (from outside Sydney)
 View Cart   Check Out   
 
Browse by Subject
 Nepean TAFE 2012
I.T
 .NET
 Windows 7
 Adobe CS5
 Cisco
 CCNA 2012
 CCNP 2012
 Java
 VB
 ASP
 Web Design
 E-Commerce
 Project Management
 ITIL
 Macintosh
 Linux
 Windows Server 2008
 SAP
 Sharepoint 2010
Certification
 MCITP
 MCTS
Economics and Business
 Accounting
 Business Information Systems
 Economics
 Finance
 Management
 Marketing
 TAX
 Human Resources
Academic
 Law
 Nursing
 Medical

Practical Software Engineering: A Case-Study Approach

by: Maciaszek & Liong

Notify me when in stock

On-line Price: $130.96 (includes GST)

Paperback w/ CD package 864

13%Off Retail Price

You save: $19.00

Usually ships within 3-5 business days. We will advise you if a delay or price change is expected.

Retail Price: $149.96

Publisher: PRENTICE HALL,2004-09-28 00:00:00

Category: SOFTWARE ENGINEERING Level: B/I/A

ISBN: 0321204654
ISBN13: 9780321204653

Add to Shopping Cart

Description
The distinctive character of this book stems from two endeavors. First, this book is about the way software engineering is done in practice. Second, it is about software engineering for enterprise applications. "Enterprise applications include payroll, patient records, shipping tracking, cost analysis, credit scoring, insurance, supply chain, accounting, customer service, and foreign exchange trading. Enterprise applications don't include automobile fuel injection, word processors, elevator controllers, chemical plant controllers, telephone switches, operating systems, compilers, and games." (Fowler, 2003, p.3).

The book is pivoted on one main case-study, a large number of supporting examples, and end-of-chapter problem-solving exercises consisting of case-study exercises and minicases. A particular organization that the case-study, problem-solving exercises and most examples are derived from is a company specializing in advertising expenditure measurement.

The book endeavors to give broad software engineering knowledge and to provide background information prior to presenting case-study solutions. However, a distinguishing emphasis of the book is to concentrate on support skills for system design and programming. For given requirements, the book iteratively develops design and implementation models. Case-study, examples and problem-solving exercises are carefully selected to emphasize various aspects of software development as necessitated by unique characteristics of different applications and target software solutions.

The book consists of four parts. Part A (Software projects) discusses software lifecycle, software engineering tools, project planning, budgeting and scheduling, project quality, risk management, and change management. The next three parts (B, C, and D) concentrate on methods, techniques, processes, and development environments of software engineering.

The case-study, examples and problem-solving exercises are based on the experience gained from a large ACNielsen project. For pedagogical reasons, industrial problems and solutions have been simplified and re-implemented specifically for the purpose of the book. Occasionally, for comparative purposes, more than one programming environment has been used in presented solutions. All programming code, including code not presented in the text, is available on the book's website. The code is mostly Java accessing Oracle database.







Features and Benefits
Education in mind. The book was written with education in mind. The case-study, examples and problem-solving exercises are not just plainly taken from real-world solutions; they are molded to suit educational needs. Real-world solutions are part of a complex business and software implementation context. That context is likely to be overwhelming and uninteresting to a reader, so it is simplified as much as possible. Presentation of GUI and database designs as well as programming examples eliminates unnecessary dependencies, "information noise" and repetitive tasks.
Annotated solutions. There are no black-or-white, true-false, zero-one solutions in information systems. Frequently a solution serves a particular purpose and may look plainly wrong when analyzed from a different perspective. Therefore, answers and solutions are carefully annotated.
Alternative solutions. Sometimes a single solution, no matter how annotated and explained, is not distinguishingly better from other potential solutions. To this aim, alternative solutions are frequently provided and explained.
Review questions to reinforce the reader's knowledge by insightful questions to each chapter. The questions are divided into discussion questions and case-study questions.
Problem-solving exercises to challenge the reader to attempt extended or alternative solutions to the case-study and to the minicases specifically introduced for each chapter.
Website with complete set of supporting material, including models and programming code (mostly UML, Java and database (Oracle) code). Whenever possible, the files are provided in interchange formats suitable for migration (importing) to other tools and development environments
Emphasis on principles. There are some well-defined principles of good software engineering and system development. The book identifies and explains these principles and makes linkages to more complete sources of information.


Table Of Contents
Preface
Part A Software Projects
1 Software Lifecycle
1.1 From Inception to Retirement
1.2 Software Production Process
1.3 Software Maintenance Process
Review Questions
Problem-Solving Exercises
2 Software Engineering Tools
2.1 Project Management Tools
2.2 System Modeling Tools
2.3 Software Programming Environments
2.4 Change Management Tools
Review Questions
Problem-Solving Exercises
3 Project Planning, Budgeting and Scheduling
3.1 Project Plan Development
3.2 Project Cost Management
3.3 Project Time Management
Review Questions
Problem-Solving Exercises
4 Project Quality and Risk Management
4.1 Quality Prerequisites
4.2 Software Metrics
4.3 Software Testing
4.4 Risk Response Control
Review Questions
Problem-Solving Exercises
5 Change Management
5.1 Requirements Traceability
5.2 Defect Management
5.3 Enhancement Management
5.4 Software Configuration Management
Review Questions
Problem-Solving Exercises
Part B Starting the Project
6 Business Object Model
6.1 Advertising Expenditure Measurement - The Business
6.2 Business Context Diagram
6.3 Business Use Case Model
6.4 Business Glossary
6.5 Business Class Model
Summary
Key Terms
Review Questions
Problem-Solving Exercises
7 Domain Object Model
7.1 Contact Management - The Domain
7.2 Domain Use Case Model
7.3 Domain Glossary
7.4 Domain Class Model
Summary
Key Terms
Review Questions
Problem-Solving Exercises
8 Iteration 1 Requirements and Object Model
8.1 Use Case Model
8.2 Use Case Document
8.3 Conceptual Classes
8.4 Supplementary Specification
Summary
Key Terms
Review Questions
Problem-Solving Exercises
9 Architectural Design
9.1 Architectural Layers and Dependency Management
9.2 Architectural Frameworks
9.3 Architectural Patterns
Summary
Key Terms
Review Questions
Problem-Solving Exercises
10 Database Design and Programming
10.1 Quick Tutorial in Relational Databases from Software Engineering Viewpoint
10.2 Mapping Transient Objects to Persistent Records
10.3 Database Design and Creation for Email Management
Summary
Key Terms
Review Questions
Problem-Solving Exercises
11 Class and Interaction Design
11.1 Finding Classes from Use Case Requirements
11.2 Architectural Elaboration of Class Design
11.3 Interactions
11.4 Interactions for Email Management
Summary
Key Terms
Review Questions
Problem-Solving Exercises
12 Programming and Testing
12.1 Quick Tutorial in Java from Software Engineering Viewpoint
12.2 Test-Driven Development
12.3 Acceptance and Regression Testing
12.4 Iteration 1 Runtime Screenshots
Summary
Key Terms
Review Questions
Problem-Solving Exercises
13 Iteration 1 Annotated Code
13.1 Code Overview
13.2 Package Acquaintance
13.3 Package Presentation
13.4 Package Control
13.5 Package Entity
13.6 Package Mediator
13.7 Package Foundation
Summary
Key Terms
Review Questions
Problem-Solving Exercises
Part C Emphasis on Presentation and Domain Logic
14 Iteration 2 Requirements and Object Model
14.1 Use Case Model
14.2 Use Case Document
14.3 Conceptual Classes and Relational Tables
14.4 Supplementary Specification
Summary
Key Terms
Review Questions
Problem-Solving Exercises
15 Architectural Refactoring
15.1 Refactoring Targets
15.2 Refactoring Methods
15.3 Refactoring Patterns
15.4 Refactored Class Model
Summary
Key Terms
Review Questions
Problem-Solving Exercises
16 User Interface Design and Programming
16.1 User Interface Design Guidelines
16.2 User Interface Components
16.3 User Interface Event Handling
16.4 User Interface for Business Components
16.5 User Interface Design and Programming in Email Management
Summary
Key Terms
Review Questions
Problem-Solving Exercises
17 Web-based User Interface Design and Programming
17.1 Enabling Technologies for Web Pages
17.2 Enabling Technologies for Web Server
17.3 Transactions on Stateless Internet Systems
17.4 Web Design Patterns
Summary
Key Terms
Review Questions
Problem-Solving Exercises
18 Inheritance, Visibility and Exception Handling
18.1 Visibility
18.2 Polymorphism
18.3 Polymorphism Patterns
18.4 Database Exception Handling
18.5 Database Concurrency Control
18.6 Java Exception Handling
18.7 Java Threats and Synchronization
Summary
Key Terms
Review Questions
Problem-Solving Exercises
19 Iteration 2 Annotated Code
19.1 Database Code
19.2 Web Code
19.3 Acquaintance and Libraries Code
19.4 Presentation Layer Code
19.5 Control Layer Code
19.6 Domain Layer Code
19.7 Foundation Layer Code
19.8 Iteration 2 Runtime Screenshots
Summary
Key Terms
Review Questions
Problem-Solving Exercises
Part D Emphasis on Data Sources
20 Iteration 3 Requirements and Object Model
20.1 Use Case Model
20.2 Use Case Document
20.3 Conceptual Classes and Relational Tables
20.4 Supplementary Specification
Summary
Key Terms
Review Questions
Problem-Solving Exercises
21 Business Rules and Transactions
21.1 Where to Program Business Rules?
21.2 Declarative Integrity Rules
21.3 Procedural Integrity Rules
21.4 Where to Program Business Logic?
21.5 Business Transactions
Summary
Key Terms
Review Questions
Problem-Solving Exercises
22 Persistence Design
22.1 Specific versus Generic Design
22.2 JDBC
22.3 SQLJ
22.4 Persistence Patterns
Summary
Key Terms
Review Questions
Problem-Solving Exercises
23 Transaction Design
23.1 Transactions in Application
23.2 Transactions in Database
23.3 Transaction Patterns
Summary
Key Terms
Review Questions
Problem-Solving Exercises
24 Business Components
24.1 BC4J
24.2 EJB
24.3 Java Server Pages
24.4 XML with JSP
Summary
Key Terms
Review Questions
Problem-Solving Exercises
25 Iteration 3 Annotated Code
25.1 Database Code
25.2 Web Code
25.3 Acquaintance and Libraries Code
25.4 Presentation Layer Code
25.5 Control Layer Code
25.6 Domain Layer Code
25.7 Foundation Layer Code
25.8 Iteration 3 Runtime Screenshots
Summary
Key Terms
Review Questions
Problem-Solving Exercises
26 Planning Next Iterations
26.1 Querying Database
26.2 Transactions
26.3 Exception Handling
26.4 Concurrency
26.5 Recovery
26.6 Security
Summary
Key Terms
Review Questions
Problem-Solving Exercises
Appendix on the Web
27 UML Models
28 Java Code
29 Database Code
Appendix
Bibliography
Index