The focus of the book is on developing large-scale, client/server, multi-tier object-oriented information systems. The client is a workstation with a GUI and the server manages a database. The client, server and middle-tier processes communicate via object messaging. The server database can be relational, object-relational or purely object-oriented. The book identifies ways to:
* integrate analysis and design models;
* harness the complexity of large system models;
* improve software architectures;
* promote layered structuring of objects;
* understand consequences of reckless modeling;
* conduct testing and manage change;
* build maintainable and scalable systems.
The book can be used for undergraduate courses in computer science or information systems such as systems analysis, systems design, software engineering, databases and object technology, as well as being a valuable resource for software projects. The book has also been written for professionals developing business information systems, such as IT managers, application developers, consultants, analysts, designers, programmers, testers, software engineers, systems integrators and educators. The text is accompanied by a comprehensive website that contains a wealth of additional material for instructors, students and professionals.
"synopsis" may belong to another edition of this title.
Outline of the book
The development of an information system (IS) - from its inception to the first release to stakeholders comprises three iterative and incremental phases: analysis, design, and implementation. This book describes the methods and techniques used in the first two phases. The implementation issues are only addressed to the extent to which they need to be considered in the design phase. Testing and change management are addressed in the final chapter.
The text concentrates on object-oriented software development. The Unified Modeling Language (UML) is used to capture modeling artifacts. Emphasis is placed on the development by elaboration where the same modeling language (UML) is used throughout the development lifecycle. Analysts, designers, and programmers 'speak' the same language, although perhaps use the dialects (profiles) of the language fitting their individual needs.
The early applications of object technology targeted graphical user interfaces (GUIs) and focused on the speed of developing new systems and the speed of program execution. In this book, I emphasize the application of object technology in IS development. The challenge is the large volume of data, complex data structures, shared access to information by many concurrent users, transaction processing, changing requirements, etc. The main advantage of object technology in IS environments is in facilitating software maintenance and scalability.
Developing information systems is synonymous with doing analysis and design 'in-the-large'. No IS project can succeed without following strict development processes and without understanding the underlying software architectures. The development is large-scale, object-oriented, iterative and incremental. The software architecture is based on a client/server solution, where the client is a workstation with GUI and the server stores a database. Client and server run in separate processes and communicate via object messaging. A server database can be relational, object-relational, or purely object-oriented.
The book proposes a detailed approach to analysis and design of information systems with UML. The book identifies ways to:
Distinguishing features
This book has a number of features which, when combined, create a unique offering. The 'teach-by-example' approach is the cornerstone of the text. The main discussion is based on examples and a guided tutorial drawn from five application domains University Enrollment, Video Store, Contact Management, Telemarketing, and Online Shopping. The examples are independent. They build up into case studies that can be extended or diversified through questions formulated at the end of most chapters (Exercise Questions). Some exercises refer to a sixth application domain — Advertising Expenditure Measurement.
To facilitate self-education, the guided tutorial (Online Shopping) and the case studies are formulated using the question-and-answer principle. A separate section at the beginning of the book, 'Book Activity Diagrams' offers diagrams that link the question-and-answer steps used in the tutorial and in the case studies. The book activity diagrams can serve as an alternative table of contents for examples scattered in the text.
The book discusses principles, methods and techniques of good analysis and good design. Special attention is paid to the design phase. Design is not treated as a straightforward transformation from analysis. The book acknowledges the difficulties and intricacies of large-scale object-oriented client/server system development. In many ways, the book takes a fresh look at the 'design-in-the-large,' at iterative and incremental development of large systems, and at capabilities and limitations of tools and methods in large software production.
A unique character of the book comes from a balanced blend of practical explanation and theoretical insight. A major premise is to avoid unnecessary over-complication, but without the loss of rigor. The book 'speaks' from experience. Topics that are not relevant to industry or that are only of research interest have been excluded.
The book is on the 'cutting-edge' of information technology. It uses the latest standard in system modeling — UML. It addresses the latest developments in database technology, including object-relational databases. In this context, the Internet-driven shift from 'thick-clients' (i.e. large desktop computers) back to server-based computing is acknowledged. The analysis and design principles discussed in the text apply equally well to conventional client/server solutions and to modern component-based distributed applications.
Software development is not amenable to 'black-white,' 'true-false,' 'zero-one' solutions. Good software solutions come from good business analysts and system designers/programmers, not from blindly applied algorithms. A policy of the book is to warn the reader about potential difficulties that the advocated approach cannot entirely resolve. In consequence it is hoped that readers will apply their acquired knowledge with care and will not assume unrealistic expectations of the ease with which the approach can be applied (and thereby, possibly, fail more dramatically).
In summary, the distinguishing features of the book are:
Intended readership
In tune with the growing demand for university courses to be more relevant to industry practice, this textbook is aimed at students and practitioners alike. This has been a difficult task but, it is hoped, it has been successfully achieved. To ensure a lasting educational benefit, the implementation aspects of software development are discussed in non-vendor-specific terms (although commercial CASE tools have been used in illustrations and solutions).
The book is aimed at computer science and information systems curricula. As it contains both 'high-level' system modeling topics and 'low-level' user interface and database design issues, the book should be attractive to courses in system analysis, system design, software engineering, databases, object technology, and to software project courses that require students to develop a system following the development lifecycle: from requirements determination to GUI and database implementation. The book is designed for a one-semester course, but it can potentially be used over two one-semester courses — one on requirements analysis and the other on system design.
For the practitioners' audience, the presented theories are related to realities. Most problem statements, examples and exercises are drawn from the consulting practice of the author. We have adopted a policy of warning the reader of potential difficulties or limitations with advocated approaches. The following categories of practitioners are likely to benefit most from the book: business and system analysts, designers, programmers, system architects, project leaders and managers, reviewers, testers, technical writers, and industry trainers.
Organization of the book
The book provides comprehensive coverage of object-oriented analysis and design of information systems. The material is presented in an order consistent with modern development processes. The book consists of ten chapters. The coverage is balanced between analysis and design. The first five chapters address the analysis issues and the last five design and related considerations.
Readers with varying amounts of background knowledge should be able to accommodate the text. Two chapters in the book are dedicated to an explanation of the underpinnings of analysis and design. The remaining chapters assume that the reader understands these underpinnings. The reader has a choice of studying the 'underpinnings' chapters in detail or of using them for review only.
The book has several features to improve its clarity and to break the monotony of the text, in particular:
Supplementary materials
A comprehensive package of supplementary material is provided on the companion websites. Most of the web documents are freely available to the readers, but some material is password-protected for the benefit of instructors who have adopted the textbook in their teaching. The home page for the book is simultaneously maintained at:
http://www.booksites.net/maciaszek
http://www.comp.mq.edu.au/books/maciaszek
The web package includes:
Your comments, corrections, suggestions for improvements, contributions, etc. are very much appreciated. Please, direct any correspondence to:
Leszek A. Maciaszek
Department of Computing
Macquarie University
Sydney
NSW 2109
Australia
leszek@ics.mq.edu.au
http://www.comp.mq.au/~leszek/
phone: +61 2 9850-9519
facsimile: +61 2 9850-9551
courier: North Ryde, Herring Road, Bld. E6A, Room 319
Acknowledgements
The writing of this book would be impossible without my interactions with friends, colleagues, students, industry gurus, and all the other people who, consciously or not, have shaped my knowledge in the subject area. I am truly indebted to all of them. An attempt to list all their names would be injudicious and impractical - please accept a blanket 'thank you.' However, even in the little space available for, acknowledgments, a few 'mates' must be mentioned:
"About this title" may belong to another edition of this title.
Shipping:
FREE
Within U.S.A.
Book Description Condition: New. Book is in NEW condition. Seller Inventory # 0201709449-2-1
Book Description Condition: New. New. In shrink wrap. Looks like an interesting title! 1.5. Seller Inventory # Q-0201709449