Showing posts with label software design. Show all posts
Showing posts with label software design. Show all posts

Handbook of Data Structures and Applications (Chapman & Hall/CRC Computer & Information Science Series) Review

Handbook of Data Structures and Applications (Chapman and Hall/CRC Computer and Information Science Series)
Average Reviews:

(More customer reviews)
This is a very useful book to have. It looks to me that the book is a compilation of various research papers by different authors. Provides a unique view to Data structures and their applications.

Click Here to see more reviews about: Handbook of Data Structures and Applications (Chapman & Hall/CRC Computer & Information Science Series)

Although there are many advanced and specialized texts and handbooks on algorithms, until now there was no book that focused exclusively on the wide variety of data structures that have been reported in the literature. The Handbook of Data Structures and Applications responds to the needs of students, professionals, and researchers who need a mainstream reference on data structures by providing a comprehensive survey of data structures of various types.Divided into seven parts, the text begins with a review of introductory material, followed by a discussion of well-known classes of data structures, Priority Queues, Dictionary Structures, and Multidimensional structures. The editors next analyze miscellaneous data structures, which are well-known structures that elude easy classification. The book then addresses mechanisms and tools that were developed to facilitate the use of data structures in real programs. It concludes with an examination of the applications of data structures. The Handbook is invaluable in suggesting new ideas for research in data structures, and for revealing application contexts in which they can be deployed. Practitioners devising algorithms will gain insight into organizing data, allowing them to solve algorithmic problems more efficiently.

Buy NowGet 21% OFF

Click here for more information about Handbook of Data Structures and Applications (Chapman & Hall/CRC Computer & Information Science Series)

Read More...

Fundamentals of Data Structures in C++ Review

Fundamentals of Data Structures in C++
Average Reviews:

(More customer reviews)
This book treats the subject of algorithm analysis and data structure with great formalism. This book, in my view, is a must for any under grad course. This book lays foundation for a career in systems programming. However, if you only have passing interest in computer science, this is not a book for you.
sunil@liberate.com

Click Here to see more reviews about: Fundamentals of Data Structures in C++



Buy Now

Click here for more information about Fundamentals of Data Structures in C++

Read More...

Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives Review

Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives
Average Reviews:

(More customer reviews)
When it comes to the systems or software architecture, I subscribe to Tom Demarco's definition: "An architecture is a framework for the disciplined introduction of change." (http://www.systemsguild.com/GuildSite/TDM/Architecture.html). And while most of the job postings matching "architect" these days talk about the need for writing and testing code, there is a growing awareness in the industry that in order to build a resilient enterprise system an organization must look beyond design patterns and coding idioms. In addition to the technical challenges, building large enterprise system requires effort of many professionals during an extended period of time. This brings other non-technical risks into the picture.
This is one of the better books covering many issues that comprise System Architecture discipline in the light of their personal experience. The authors introduce us to an approach for partitioning architecture using Viewpoints (behavioral characteristics, e.g. Functional, Information, Concurrency, Development, Deployment, Operational) and Perspectives (nonfunctional aspects, e.g. Security, Performance and Scalability, Availability and Resilience, Evolution).
The first half of the book describes the discipline of Application Software Architecture, the second half contains two catalogs, one for Viewpoints and the other for Perspectives. Both catalogs describe concerns, artifacts (models), problems and pitfalls when focusing on a viewpoint or perspective.
I would qualify this book as a companion and reference for a beginner through intermediate level. It gives an excellent overview of what a system architect has to go through day in and day out to achieve success. The book contains a wealth of advice on what to pay and not pay attention to in any particular stage of the architectural development. The authors clearly speak from personal experience. Their examples are always to the point, although a bit sketchy with respect to details on techniques and artifacts and how to develop and use them. Considering the site of the volume, the authors did an excellent job balancing width and depth of coverage: trying to cover such a vast discipline in detail in a 500+-page book is not possible.

Click Here to see more reviews about: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives


Software Systems Architecture is a practitioner-oriented guide to designing and implementing effective architectures for information systems. It is both a readily accessible introduction to software architecture and an invaluable handbook of well-established best practices. It shows why the role of the architect is central to any successful information-systems development project, and, by presenting a set of architectural viewpoints and perspectives, provides specific direction for improving your own and your organization's approach to software systems architecture.

With this book you will learn how to

Design an architecture that reflects and balances the different needs of its stakeholders
Communicate the architecture to stakeholders and demonstrate that it has met their requirements
Focus on architecturally significant aspects of design, including frequently overlooked areas such as performance,resilience, and location
Use scenarios and patterns to drive the creation and validation of your architecture
Document your architecture as a set of related views
Use perspectives to ensure that your architecture exhibits important qualities such as performance, scalability, and security

The architectural viewpoints and perspectives presented in the book also provide a valuable long-term reference source for new and experienced architects alike.

Whether you are an aspiring or practicing software architect, you will find yourself referring repeatedly to the practical advice in this book throughout the lifecycle of your projects.

A supporting Web site containing further information can be found at www.viewpoints-and-perspectives.info


Buy NowGet 34% OFF

Click here for more information about Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

Read More...

Just Enough Software Architecture: A Risk-Driven Approach Review

Just Enough Software Architecture: A Risk-Driven Approach
Average Reviews:

(More customer reviews)
This a broad and deep book on all things software architecture except the architecting process (for process, one recommended read is "Process Software Architecting" by Eeles/Cripps). Several readerships will benefit from "Just Enough Software Architecture":
- As an experienced IT architect, I do not necessarily agree with everything in the book (this does not come as a surprise, as architects have opinions). That said, I certainly learned a lot that I can apply immediately on my projects and some of the more provocative statements challenge me to leave my comfort zone (or at least consider doing so).
- Junior architects can use the book both as a tutorial and as a reference when/while growing in their profession.
- Developers with a "who needs architects" mindset (hopefully) will understand architects and modelers much better after having read this book, and appreciate the value of archtecture.
Things I liked in particular:
- Overall vision and message of pragmatism sent
- The risk-driven approach increases chances to get accepted both in agile development and in more traditional architecture communities
- There is a lot of practical advice e.g. in Chapters 10, 11 and 15
- The author is in command of a large body of relevant related work (both industra and academia) and puts them in perspective adequately
- Editorial quality: structure, figures, command of the English language (some words and expressions a bit be hard to comprehend for non-native speaker)
Some room for improvements (2nd edition?):
- Not all metaphors and analogies work internationally, e.g. not all IT people are sports fans that follow baseball or know what a rookie is
- The connection between parts 1 and 2 could be a bit stronger, even if loose coupling generally is a good thing; e.g., some more backward references
In summary, I'd say Just Enough Software Architecture is a highly recommended read for every architect in touch with development reality and every developer with a desire to build complex systems that will stand the test of time.

Click Here to see more reviews about: Just Enough Software Architecture: A Risk-Driven Approach

This is a practical guide for software developers, and different than other software architecture books. Here's why:
It teaches risk-driven architecting. There is no need for meticulous designs when risks are small, nor any excuse for sloppy designs when risks threaten your success. This book describes a way to do just enough architecture. It avoids the one-size-fits-all process tar pit with advice on how to tune your design effort based on the risks you face.
It democratizes architecture. This book seeks to make architecture relevant to all software developers. Developers need to understand how to use constraints as guiderails that ensure desired outcomes, and how seemingly small changes can affect a system's properties.
It cultivates declarative knowledge. There is a difference between being able to hit a ball and knowing why you are able to hit it, what psychologists refer to as procedural knowledge versus declarative knowledge. This book will make you more aware of what you have been doing and provide names for the concepts.
It emphasizes the engineering. This book focuses on the technical parts of software development and what developers do to ensure the system works not job titles or processes. It shows you how to build models and analyze architectures so that you can make principled design tradeoffs. It describes the techniques software designers use to reason about medium to large sized problems and points out where you can learn specialized techniques in more detail.
It provides practical advice. Software design decisions influence the architecture and vice versa. The approach in this book embraces drill-down/pop-up behavior by describing models that have various levels of abstraction, from architecture to data structure design.

Buy NowGet 37% OFF

Click here for more information about Just Enough Software Architecture: A Risk-Driven Approach

Read More...

Documenting Software Architectures: Views and Beyond (2nd Edition) Review

Documenting Software Architectures: Views and Beyond (2nd Edition)
Average Reviews:

(More customer reviews)
Software architecture really is unlike any other aspect of its design. The architecture has deeper meaning and larger scale than any other aspect, and can't be discussed in the same ways.
This book opens that discussion. Among the "architecture" books I've read lately, this is the only one to offer concrete advice on describing, presenting, and analyzing archtiectural features of a system. It identifies a number of documentation types and variations. It also identifies a number of different readers - developers, future architects, users, etc. - and addresses their different documentation needs.
The authors use a little UML, but not a lot. For one thing, standard UML works at too low a level for architectural discussion. Classes, and even hierarchies of class inheritance are such fine-grained entities that architecture gernerally won't address them. Instead, the authors offer a number of diagramming styles of their own. For once, I agree with the need for non-standard notation.
Even so, I think they under-utilize the existing standards in favor of their own terminology and notation. They could have used a UML profile for lots of the discussion. It would have had to be a new profile, however, not just a force-fit of the real-time profile. They also under-used the existing architecture standards (IEEE/ANSI, DoD, NASA, and more) in favor of their own discussion. Maybe their approach can be used in any of those frameworks, but that should have been more explicit.
I see only one major flaw in this book, the assumption that a software system's architecture describes the program delivered to a customer. That's way too narrow. A large system includes things like test harnesses, debug instrumentation, application-specific QA tools, and user documentation of many kinds. Those can be major undertakings of their own. They are intimately tied to the delivered software, and may constrain the actual product.
On the postivie side, this book offer an extensive real-world case study. That probably doubles the book's value, by putting a concrete face on the otherwise abstract discussion.
There are two ways to use this book: you can agree with it, or think about it and disagree with it. If you really think about it, though, you get it's full value whether you agree or not.
In other words, you can't lose by reading this book.

Click Here to see more reviews about: Documenting Software Architectures: Views and Beyond (2nd Edition)

"This new edition is brighter, shinier, more complete, more pragmatic, more focused than the previous one, and I wouldn't have thought it possible to improve on the original. As the field of software architecture has grown over these past decades, there is much more to be said, much more that we know, and much more that we can reflect upon of what's worked and what hasn't—and the authors here do all that, and more." —From the Foreword by Grady Booch, IBM Fellow

Software architecture—the conceptual glue that holds every phase of a project together for its many stakeholders—is widely recognized as a critical element in modern software development. Practitioners have increasingly discovered that close attention to a software system's architecture pays valuable dividends. Without an architecture that is appropriate for the problem being solved, a project will stumble along or, most likely, fail. Even with a superb architecture, if that architecture is not well understood or well communicated the project is unlikely to succeed.
Documenting Software Architectures, Second Edition, provides the most complete and current guidance, independent of language or notation, on how to capture an architecture in a commonly understandable form. Drawing on their extensive experience, the authors first help you decide what information to document, and then, with guidelines and examples (in various notations, including UML), show you how to express an architecture so that others can successfully build, use, and maintain a system from it. The book features rules for sound documentation, the goals and strategies of documentation, architectural views and styles, documentation for software interfaces and software behavior, and templates for capturing and organizing information to generate a coherent package. New and improved in this second edition:


Coverage of architectural styles such as service-oriented architectures, multi-tier architectures, and data models
Guidance for documentation in an Agile development environment
Deeper treatment of documentation of rationale, reflecting best industrial practices
Improved templates, reflecting years of use and feedback, and more documentation layout options
A new, comprehensive example (available online), featuring documentation of a Web-based service-oriented system
Reference guides for three important architecture documentation languages: UML, AADL, and SySML


Buy NowGet 31% OFF

Click here for more information about Documenting Software Architectures: Views and Beyond (2nd Edition)

Read More...

Systems Analysis and Design with UML Review

Systems Analysis and Design with UML
Average Reviews:

(More customer reviews)
The book offers a very pragmatic approach to the subject of system analysis and design. It also has the advantage of not being dispersive, so the reader does never loose the focus. Repetition occurs only occasionally, for concepts that may be more hostile to digest.
The only thing that I reckon is missing is a support with some templates that is possible to use (e.g. a CD-ROM with examples of analysis and design).
Overall, I would say is a very good deal! Definitely worth having it!


Click Here to see more reviews about: Systems Analysis and Design with UML



Buy Now

Click here for more information about Systems Analysis and Design with UML

Read More...

Modern Software Development Using Java Review

Modern Software Development Using Java
Average Reviews:

(More customer reviews)
The authors make a good choice of java, as the teaching language of this book. It conveys to students the main aspects of being a professional programmer. These days, that usually involves object oriented programming. And java was explicitly designed from scratch to be fully OO, unlike C++.
Also, much current programming involves making a GUI. Well in java, this is quite simple, as shown by various chapters. The reader quickly gets up to speed in coding simple graphics, with numerous types of widgets. Also, the use of widgets and graphics coding is inherently OO. So this reinforces the book's teachings about OO. To a new student [new to any programming], OO principles can seem rather abstract. Coding widgets helps solidify the principles.

Click Here to see more reviews about: Modern Software Development Using Java

Now updated for the latest release of Java, the Second Edition of Modern Software Development Using Java continues to blaze a new path for today's CS2 students. Tymann and Schneider's contemporary approach focuses on what students need to learn in the CS2 course in order to appreciate what is truly important today in the areas of software design and development. This text covers such current software development ideas as object-oriented design, UML, data structure libraries, net-centric programming, threads, and GUIs, all presented in a way that is fully accessible and motivating. The new edition has been fully revised to take advantage of the new features in Java 5.0, and all material is Java 6.0 compliant.

Buy NowGet 31% OFF

Click here for more information about Modern Software Development Using Java

Read More...

Practical System Reliability Review

Practical System Reliability
Average Reviews:

(More customer reviews)
This book gives a great overview of the techniques, terminology, and approaches to building reliable systems and products. The techniques given there come from a long line and heritage in the telephony world for building real and highly-reliable systems. The strength of this book is that it explains the process that needs to be followed, as well as includes enough details of the major techniques and models so that you can determine which ones will apply to your project. This book pairs nicely with "Design for Reliability" Design for Reliability: Information and Computer-Based Systems which focuses more on building computer-based systems and IT systems. This book covers the overall problem and techniques without burying the reader in the details or mathematics of any particular technique, while still given enough details to understand the value and use of that technique.

Click Here to see more reviews about: Practical System Reliability

Learn how to model, predict, and manage system reliability/availability throughout the development life cycle
Written by a panel of authors with a wealth of industry experience, the methods and concepts presented here give readers a solid understanding of modeling and managing system and software availability and reliability through the development of real applications and products. The modeling and prediction techniques and tools are customer-focused and data-driven, and are also aligned with industry standards (Telcordia, TL 9000, ISO, etc.). Readers will get a clear understanding about what real-world reliability and availability mean through step-by-step discussions of:
System availability
Conceptual model of reliability and availability
Why availability varies between customers
Modeling availability
Estimating parameters and availability from field data
Estimating input parameters from laboratory data
Estimating input parameters in the architecture/design stage
Prediction accuracy
Connecting the dots

This book can be used by system architects, engineers, and developers to better understand and manage the reliability/availability of their products; quality engineers to grasp how software and hardware quality relate to system availability; and engineering students as part of a short course on system availability and software reliability.

Buy NowGet 16% OFF

Click here for more information about Practical System Reliability

Read More...

SOA Modeling Patterns for Service Oriented Discovery and Analysis Review

SOA Modeling Patterns for Service Oriented Discovery and Analysis
Average Reviews:

(More customer reviews)
- Sometimes you wonder what you can get for a price that you pay for less than a full tank of gas!
- This book is a clear milestone in software modeling and architecture. I think that this is the next generation. Its value is tremendous to business and IT and especially to analysis, discovery, and modeling of software assets in the space of software development in general, SOA, and Cloud Computing.
- I think that it offers a very important direction and process to establishing services. But the services here are described as holistic software assets such as components, business processes, databases, Web services, applications, and any other software modules you may consider as executables. Interesting!
- In the analysis space, the presented concepts are innovative and can help you to establish a personal strategy as well as an organizational one.
- The patterns are not only design patterns. They are also process patterns, which are important to running projects and analysis patterns that can help you analyze a solution, a design, an architecture, a project direction, or even an enterprise strategy.
- I like the modeling section. Easy to understand and can be used by analysts, architects, managers, developers, and obviously modelers. Note this:
o Contextual analysis and modeling: Generalization, Specification, Expansion, and Contraction
o Structural analysis and modeling: Generalization, Specification, Expansion, and Contraction
- I highly recommend this book. It provides me with tools to see the big picture and helps with hands on low level implementation, such as coding, design, and more.


Click Here to see more reviews about: SOA Modeling Patterns for Service Oriented Discovery and Analysis


Learn the essential tools for developing a sound service-oriented architecture

SOA Modeling Patterns for Service-Oriented Discovery and Analysis introduces a universal, easy-to-use, and nimble SOA modeling language to facilitate the service identification and examination life cycle stage. This business and technological vocabulary will benefit your service development endeavors and foster organizational software asset reuse and consolidation, and reduction of expenditure.
Whether you are a developer, business architect, technical architect, modeler, business analyst, team leader, or manager, this essential guide-introducing an elaborate set of more than 100 patterns and anti-patterns-will help you successfully discover and analyze services, and model a superior solution for your project,.
Explores how to discover services
Explains how to analyze services for construction and production
How to assess service feasibility for deployment
How to employ the SOA modeling language during the service identification and examination process
How to utilize the SOA modeling patterns and anti-patterns for service discovery and analysis

Focusing on the Service-Oriented Discovery and Analysis Life Cycle Stage, this book will help you acquire a broad SOA Modeling knowledge base and leverage that to increase efficiency and productivity in the workplace.

Buy NowGet 37% OFF

Click here for more information about SOA Modeling Patterns for Service Oriented Discovery and Analysis

Read More...

Use Case Driven Object Modeling with UML: Theory and Practice Review

Use Case Driven Object Modeling with UML: Theory and Practice
Average Reviews:

(More customer reviews)
The introduction to the book starts with an interesting phrase "The difference between "theory" and "practice" is that in theory there is no difference between theory and practice, but in practice there is." The authors like to apply this statement to UML modeling, and continue later saying, in theory, everything in UML is useful, but in practice, a whole lot of people and projects need to know how to drive an OO software design from use cases.
Use Case Driven Object Modeling with UML-Theory and Practice shows how to take an object-oriented software design from use case all the way through coding and testing, based on the minimalist, UML-based ICONIX process. The authors focus on one simple question, "how do you get from use cases to code?". The authors are real experts on the ICONIX process. This book is for Beginners as well as for advanced programmers. Beginners will learn a powerful methodology, Use-Case Driven Object Modeling. On the other hand, advance developers can apply Use Case to their preferred methodology.
The authors break down the design of an Internet bookstore, which involves showing many common mistakes, and then showing the relevant pieces of the model with their mistakes corrected. What really makes this book unique is the fact that you, the reader, get to correct the mistakes.
Chapter highlights
Highlights of this book include:
1. Each chapter starts with the theory, and then explores said theory using the Internet Bookstore project.
2. Each chapter has a "Top 10" list of guidelines, and the first half of each chapter is structured around its top 10 list.
3. This book also contains practical exercises of various types like, Workbook exercises, Student exercises and Inline exercises within the chapters.
Personally, I believe this is a very good book, very informative and well written. Before reading this book, I hadn't heard of ICONIX process, and this book did give me a good insight about the same. If you are sold on ICONIX and have been using it, the Top 10 list of guidelines, and the exercises at the end of each chapter in itself is worth the price of the book.

Click Here to see more reviews about: Use Case Driven Object Modeling with UML: Theory and Practice



Buy NowGet 15% OFF

Click here for more information about Use Case Driven Object Modeling with UML: Theory and Practice

Read More...

Unified Modeling Language User Guide, The (2nd Edition) Review

Unified Modeling Language User Guide, The (2nd Edition)
Average Reviews:

(More customer reviews)
"The Unified Modeling Language User Guide" really starts from the beginning. Apparently the reader is assumed to be totally unfamiliar with object oriented design. The book starts with the very basics, and explains a reasonably complete set of UML. The really advanced and esoteric features are not explained.
Each chapter is written like a good lecture. It starts from the very beginning assuming no previous knowledge of OO. Then one aspect of UML is carefully explained. Every chapter ends with some concluding remarks and "hints and tips". This organization is mostly good, but it adds a lot of repetition to the book.
The language is smooth and easy to read. It might still be a struggle to get read the book simply because of the amount of text (and repetition).
I would recommend this book to the interested novice. However, if you are reasonably familiar with UML, or if you have a solid foundation in object oriented programming, then I would recommend you the combination of "UML Distilled" by Martin Fowler and "The Unified Modeling Language Reference Manual" by James Rumbaugh et.al.

Click Here to see more reviews about: Unified Modeling Language User Guide, The (2nd Edition)


For nearly ten years, the Unified Modeling Language (UML) has been the industry standard for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system. As the de facto standard modeling language, the UML facilitates communication and reduces confusion among project stakeholders. The recent standardization of UML 2.0 has further extended the language's scope and viability. Its inherent expressiveness allows users to model everything from enterprise information systems and distributed Web-based applications to real-time embedded systems.

In this eagerly anticipated revision of the best-selling and definitive guide to the use of the UML, the creators of the language provide a tutorial to its core aspects in a two-color format designed to facilitate learning. Starting with an overview of the UML, the book explains the language gradually by introducing a few concepts and notations in each chapter. It also illustrates the application of the UML to complex modeling problems across a variety of application domains. The in-depth coverage and example-driven approach that made the first edition of The Unified Modeling Language User Guide an indispensable resource remain unchanged. However, content has been thoroughly updated to reflect changes to notation and usage required by UML 2.0.

Highlights include:

A new chapter on components and internal structure, including significant new capabilities for building encapsulated designs
New details and updated coverage of provided and required interfaces, collaborations, and UML profiles
Additions and changes to discussions of sequence diagrams, activity diagrams, and more
Coverage of many other changes introduced by the UML 2.0 specification

With this essential guide, you will quickly get up to speed on the latest features of the industry standard modeling language and be able to apply them to your next software project.


Buy NowGet 31% OFF

Click here for more information about Unified Modeling Language User Guide, The (2nd Edition)

Read More...