Most would shudder to think if cities or automobiles were built in the same ad hoc fashion as most software. Still, Microsoft technologists often regard software development as more of a craft than a rigorous process. Given the mission-critical nature of today's software solutions, however, such an approach is vital to ensuring that high-quality projects are delivered on time and within budget.
It is possible to create software in a controlled manner without sacrificing productivity or flexibility, says Enricos Manassis. All it takes is a solid grasp of process, methods, and technology. While many books plumb these topics individually, Practical Software Engineering is unique in that it focuses on the intersection of all three.
Each chapter explores development issues from the standpoint of:
The Rational Unified Process (RUP)
Object Oriented Analysis and Design (OOAD)
The Microsoft .NET platform
Through end-to-end coverage of a working application, the book’s tutorial shows practitioners how to tap the .NET platform—as others have harnessed the Java 2 Platform, Enterprise Edition (J2EE)—to develop complex enterprise solutions.It also provides complete source code for Visual Studio.NET and the UML model for Rational XDE, so readers can adapt and extend the sample application.
Microsoft technologists have long perceived rigorous approaches to be complex, intimidating, and ineffective. By demystifying processes and methods, Practical Software Engineering offers a roadmap to applying an engineered approach to real-world .NET projects. In doing so, it provides readers with a firm understanding of how to translate business issues into technological solutions.
Review By: Vivek Vaishampayan 09/05/2005This book presents a holistic view of software development for distributed e-commerce systems. From requirements analysis to design and implementation to testing, the book covers all aspects of software engineering, leveraging the most current and recognized best practices. The book translates business issues into technological solutions using well-explained solutions and models. Overall the book is an excellent source of information. The subject matter is handled in an easy-to-follow manner, and the presentation of .NET technology, from analysis and design perspectives, is well organized.
The author presents the subject matter in a concise and organized way. The book encompasses the elements of .NET technology, object-oriented analysis, and design using UML and the Rational Unified Process (RUP). The author also presents a case study of a sample web application -- an online bookstore named BooksREasy. Readers can work with the sample application online at www.booksreasy.com, which features the entire case study.
The book has two parts: Part I covers business models and Part II covers analysis models. The first half describes the necessity of business modeling and some of the artifacts it produces, a list of the business modeling UML elements, and how to write business rules for a simple registration process. The author also details the experience model and how to capture system requirements.
The second half details a transition from system specification to detail design using the analysis model. The class and sequence diagrams used are clear and easy to understand. The author also demonstrates how to harness technical knowledge of .NET technology in the design model by showing examples of data access classes, database models, presentation layer, business layer, and use case realization through sequence diagrams. Enough details are provided about the structure of the implementation model with a clear example of an ASP.NET Web Application project.
The author also shows how to develop complex enterprise solutions on a .NET platform. Readers can easily adopt and extend this sample application to apply an engineered approach to real-world .NET projects. The companion web site also provides complete source code for Visual Studio .NET and UML code for Rational XDE. Testers will be particularly interested in the system specification and system testing aspects discussed in the book. This includes use cases, use case models, and use case storyboards. The concepts of test cases, test coverage, test scenarios, and unit testing are explained. How to complete a test case matrix based on use case scenarios with real examples is also demonstrated.
The author effectively demonstrates the design of a .NET system using UML, round-trip engineering, and the integration of Rational XDE with Microsoft Visual Studio .NET. The book acts as a tutorial for the design of the companion .NET sample. This book benefits developers, software architects, analysts, testers, project managers, and those closely related to development.