Description
How is software engineering done in practice? More specifically, how should today's enterprise applications be developed? This example-focused book has the answers.Practical Software Engineering
shows how to relate theories to industry practice by concentrating on systems design and implementation and by addressing non-trivial practical problems. It pivots on one main and two mini case studies, specially adapted to draw out educational points, and is loaded with supporting examples and tutorials.
This book provides broad coverage of software engineering for the development of large systems. It gives thorough treatment of the development lifecycle, modeling languages, engineering tools, project planning and process management. Iterative and incremental development is explained through three iterations of the main case study. In addition the book:
* Emphasizes object-oriented modeling and programming
* Makes extensive use of UML and patterns for requirements analysis and detailed design
* Recognizes the importance of databases and data engineering within software engineering
* Explains and uses components and business objects
* Covers multi-tier solutions including GUI and web clients, extending to databases via web and application servers
* Highlights application architectural design and refactoring
* Contains a CD with software development tools, case study models and Java and database code, and all figures from the book
* Is accompanied by a comprehensive website: "http://www.booksites.net/maciaszek www.booksites.net/maciaszek .
The book will change the way students learn about software engineering and will help IT professionals with their software development practices. It will also be a source of new development ideas and directions.
Leszek Maciaszek is an Associate Professor of Computing at Macquarie University, Sydney, Australia. He is an academic and industry consultant working mainly in the design and implementation of enterprise applications, databases, and object technology. His other books include Database Design and Implementation (Prentice Hall, 1990) and Requirements Analysis and Systems Design, 2nd edition (Addison Wesley, 2005).
Bruc Lee Liong is also at Macquarie University. He has been developing object-oriented applications for the past eight years. He specializes in enterprise integration, linking application clients with web and application services down to databases.
Stephen Bills is the Media Systems Director for Nielsen Media Research in Sydney - Australia. He has been developing systems and consulted to large corporations and government for over 30 years.
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
Published
01 Sep 2004
Publisher
ADDISON-WESLEY
ISBN
9780321204653
Pages
822




Static Book Details Index Page - Click Here to go to Computer Manuals Website