Software Engineering Books
Taylor & Francis Inc Processing
Book SynopsisThis book demonstrates how Processing is an excellent language for beginners to learn the fundamentals of computer programming. Originally designed to make it simpler for digital artists to learn to program, Processing is a wonderful first language for anyone to learn. Given its origins, Processing enables a multimodal approach to programming instruction, well suited to students with interests in computer science or in the arts and humanities. The book uses Processing's capabilities for graphics and interactivity in order to create examples that are simple, illustrative, interesting, and fun. It is designed to appeal to a broad range of readers, including those who want to learn to program to create digital art, as well as those who seek to learn to program to process numerical information or data. It can be used by students and instructors in a first course on programming, as well as by anyone eager to teach them self to program.FollowinTrade Review"[This] new book directly targets the CS classroom in a way that no other Processing book does….[The authors] present a much less reactionary approach integrating many of the wonderful things about Processing with traditional approaches that have worked well in CS pedagogy. Not only is their approach sensible and efficient, it’s also likely to offer greater comfort to existing CS instructors (who perhaps don’t have degrees in theater or painting.) It is this effort of considerate integration-of the old tried and true and new and improved-that I believe has the greatest chance of tipping the balance for Processing’s use in the computing classroom."--Ira Greenberg, Southern Methodist University, Dallas, Texas, USATable of ContentsForewordPreface: Why We Wrote This Book and For Whom It Is Written AcknowledgmentsIntroduction: Welcome to Computer ProgrammingChapter 1 Basic Drawing in ProcessingChapter 2 Types, Expressions, and VariablesChapter 3 More about Using Processing’ s Built-In FunctionsChapter 4 Conditional Programming with ifChapter 5 Repetition with a Loop: The while StatementChapter 6 Creating Counting Loops Using the for StatementChapter 7 Creating void FunctionsChapter 8 Creating Functions That Return a ValueChapter 9 ArraysChapter 10 Introduction to ObjectsINDEX
£59.99
Apress Professional Sitecore 8 Development
Book SynopsisTable of ContentsChapter 1: Getting Started.- Chapter 2: Building Your First Component.- Chapter 3: Data Templates and Content.- Chapter 4: Back-End Dev Architectures.- Chapter 5: Improving the Design with Patterns.- Chapter 6: Front-End Dev Techniques.- Chapter 7: Unit Testing Sitecore.- Chapter 8: Search-Driven Solutions.- Chapter 9: Programming the Customer Journey.- Chapter 10: PowerShell Extensions for Sitecore.- Chapter 11: Extending the Experience Editor.-
£52.24
APress Product Management Essentials
Book SynopsisChapter 1: Introduction.- Chapter 2: Guiding Principles.- Chapter 3: The End-to-End Product Journey.-Chapter 4: Industry Spotlight Q&A with Min Li Chan Senior PM at Waymo (formerly Google-Self Driving Car Project).-Chapter 5: Understanding The Software Stack.-Chapter 6: SQL Quickstart.-Chapter 7: Industry Spotlight - Q&A - Vivek Bhupatiraju.-Chapter 8: Analytics are Everything.-Chapter 9: Software Development Methodologies.-Chapter 10: Industry Spotlight - Q&A with Seam Ammirati.-Chapter 11:Deconstructing System Design.-Chapter 12: Mindful UX.-Chapter 13: Industry Spotlight - Q&A with Leslie Shelton.-Chapter 14: Rapid Prototyping.-Chapter 15: The good, the bad, and the unusable.-Chapter 16: Industry Spotlight - Q&A - Daniel Csonth.-Chapter 17: Playing the part.-Chapter 18: Product Strategy.-Chapter 19: Industry Spotlight - Q&A - Amelia Crook.-Chapter 20: Crossing the finish line.- Chapter 21.- Ch21_Industry Spotlight - Q&A with Romy Macasieb.-Table of ContentsPart I: Introduction / Getting StartedThe beginning section of this book will go over the fundamentals of product management, define the role, and explore how it varies across organizations. It will also set the tone for the structure of the book, and lay out guiding principles that every PM should keep in mind as they continue on in their product journey. Dedications / Special ThanksThank everyone who made this book possible. Also, thank team of PMs who will help edit, revise, and consult. Foreward: Robert T. Monroe – Assistant Professor of Business Technologies, Carnegie Mellon UniversityBob Monroe is an assistant professor of business technologies at Carnegie Mellon University. He is responsible for overseeing and contributing to the development of the upcoming Masters in Product Management degree program set to be confirmed in late 2017. Bob has years of experience in industry and academia, and he will briefly chat about how product managers have the capability (and responsibility) to influence the next generation of technology innovation.Chapter 1: IntroductionBrief author introduction. Describe the three dimensions of product management, and cover the logical flow of the book. Emphasise the fact that the PM role is fluid, and the book is intended to act as a cookbook of foundational skills to get started. Encourage readers to get their hands dirty by attending meetups, diving deeper into the sub-topics, and building their own product (app, website, etc.).1) What the &$#! is product management2) Project vs. program vs. product management3) The product management spectrum (Apple, MSFT, Google)Chapter 2: Guiding PrinciplesEstablish the pillars of product management, and the principles to live by. Each principle represents my view on the important points of focus, and helps the reader understand the place of a PM within a tech organization. 1) Kill your ego2) You’re not the expert3) Make decisions4) Become comfortable with ambiguity5) Ask the right questions Chapter 3: The End-to-End Product JourneyHigh-level overview of the software development process, starting with user needs, all the way through development, design, and conclusion. I will dedicate a paragraph or so to each point, and follow up with a detailed view later on in the book. 1) Identify user needs2) Research3) Requirements definition4) Implementation5) Iterate6) Metrics7) FeedbackChapter 4: Industry Spotlight – Q&A with Min Li Chan – Senior PM at Waymo (formerly Google-Self Driving Car Project)Min L is a seasoned PM veteran at Waymo (Google). I will ask her 4-5 questions around her day-to-day, the complexities of being a PM on an emerging technology, and her advice on specialization areas for aspiring PMs. Part II: Technical FoundationsTo be an effective PM in the tech industry, you need to have a basic understanding of technology. In this section, we’ll get your feet wet by exploring the skills a PM needs in his toolset, and cover enough ground to make you feel comfortable in a technical discussion. A PM is not expected to have the same level of depth or knowledge as a software engineer, but knowing enough to continue the conversation can be a benefit in your career in product management.Chapter 5: Understanding The Software StackEstablish the importance of knowing the basics of a software stack. Emphasize to the reader that they don’t need to be a software engineer, but a rudimentary understanding of what is being build is necessary to avoid common pitfalls. Plus, it builds confidence in the engineering team if you can communicate with them without slowing down the pace of the conversation. In essence, the reader will learn enough to be dangerous in a technical environment. 1) A conceptual understanding of programming languages2) Mechanics of the internet 3) Front and back end paradigmChapter 6: SQL QuickstartHelp the user get up-to-speed on basic data querying in ten pages or less. Also, provide background on databases and UML diagramming. SQL is single-handedly one of the top skills required for the PM role. PMs need to be able to query data fast, and if you can learn the basics of SQL, you don’t need to use precious software engineering resources to fetch data at will. 1) SQL statements2) Basic joins3) Database design (UML) introChapter 7: Analytics are EverythingAnother equally important skill for a PM is to learn from the analytics. Identifying trends and influencing the product designs based on empirical data is crucial, and tools exist to assist the PM in this process. The focus won’t be on any tool specifically, but the chapter will communicate the importance of collecting clean, reliable data. 1) Pattern recognition2) A/B testing3) Collecting the right metrics (Google Analytics) Chapter 8: Industry Spotlight – Q&A with Vivek Bhupatiraju –PM at TUNEVivek focuses extensively on data and analytics as a Product Manager at TUNE. He will shed light on why analytics are important and steps to become a data-driven product leader in this short Q&A. Chapter 9: Software Development MethodologiesIn this section, I’ll chat about the different development methodologies: waterfall, agile, scrum, and kanban. Each one has a purpose and place, but the main idea is to get the user to understand that agile development is better suited in a software dev environment and that traditional waterfall methodologies have flaws. 1) Waterfall2) Agile / Scrum3) KanbanChapter 10: Deconstructing System DesignSystem design questions are common in PM interviews, and this section will tie together the concepts learning in this chapter. Walking through the steps to solve a system design problem will also give readers insight into the thinking patterns of a PM. 1) Reverse engineering a system design question2) Design a theme park (non-technical example)3) Design a Twitter clone (technical example) Chapter 11: Industry Spotlight – Q&A with Shanthi Shanmugam – PM at FacebookShanthi is a PM at Facebook and ex-PM at Workday. She will shed light into what enticed her into becoming a PM, her work at Facebook, and how we can recruit more women engineers into the PM position. Part III: Design FoundationsA complete product management will have a 360 understanding of user experience and how to craft beautiful products that are easy-to-use, with the end user in mind. This section will walk through basic UX principles, and even guide the user through the process of building a simple set of UI frames for a mock app. Chapter 12: Mindful UXDescribe the importance of designing usable products. Allude to products that failed due to improper design and lack of usability testing. Allude to real-world case studies (tech and non-tech) and refer to the increased importance of user experience research. 1) UX vs UI design2) Case examples: HotelTonight3) Democratizing design4) Accessibility 5) AffordanceChapter 13: User-Centric DesignWalk through the techniques of gathering initial feedback from customers / users. Talk about the right way to deploy surveys, draft up storyboards, etc. Also, touch on integrating usability testing into the development process. 1) Observe, understand, analyze2) Surveys3) Interviews4) Persona development 5) Storyboarding6) Usability TestingChapter 14: Rapid PrototypingDiscuss the process of creating a minimum viable product (MVP) before moving into heavyweight development. As a PM, you need to be able to test a product with a proof of concept before moving into the build phase. This chapter will explore key ways to develop low cost prototypes to gauge user interest and need.1) Low-fidelity mocks2) High-fidelity wireframes with Balsamiq3) Polished mocks (Sketch)Chapter 15: Industry Spotlight – Q&A with Daniel Csonth – PM at McKinsey & CompanyDaniel is a PM at McKinsey & Company with experience at a handful of diverse techn companies. He will shed light into how his experience has differed at each organization, and the pitfalls to watch out for in the PM role. Chapter 16: The good, the bad, and the unusableConcrete examples of software and hardware products (along with non-tech products!) that exemplify the idea of a good, bad, or terrible product. Users will begin to frame their thinking in everyday life to identify product shortcomings, and brainstorm ways to improve the experience of product interactions in their day-to-day. 1) Examples of good UX2) Examples of bad UX3) Examples of terrible UXPart IV: Business & Management FoundationsAside from the technical and design expertise, a PM needs to master the social aspects of the role. Acting as a bridge between engineering, marketing, and other decisions can be difficult, and this section of the book will dive into the business & soft skills of product management. Chapter 17: Playing The PartCover the soft skills of product management. Talk about how the PM does not always formally manage the engineers, and how you can build trust within the organization in order to make things happen. 1) Leadership without authority2) Influence3) Negotiation 4) AdaptabilityChapter 18: Product StrategyThe true meat of product development and the core of what a PM should know. Talk about what rules to follow when thinking about entering a market, and the research associated with kicking off new product development. Advise on how to write PRDs and roadmaps, and break down the necessary components of all the deliveries that are required. 1) Become an expert on the product / space2) Provide value for the user3) Go-to-market strategy4) Revenue / Cost models / Pricing5) Product Requirements Document (PRD) 6) Product RoadmapChapter 19: Crossing The Finish LineClose the book by talking about launching, maintenance, and lessons learned. Point the reader to other resources and wish the well on their product career! 1) Launch & Iterate2) Postmortem3) Dealing with failure4) Next stepsChapter 20: Industry Spotlight – Q&A with Gary Vaynerchuk – CEO of VaynerMedia, Venture Capitalist, Best-Selling AuthorGary is an entrepreneur, venture capitalist, and social icon. He has invested in high-growth companies in their early stage (Uber, Twitter, Snapchat) and will provide insight on what makes a company a winner, and how to tell when it’s time to abandon an idea and rebuild.
£49.49
Taylor & Francis Inc From Action Systems to Distributed Systems
Book SynopsisFormal methods traditionally address the question of transforming software engineering into a mature engineering discipline. This essentially refers to trusting that the software-intensive systems that form our society's infrastructures are behaving according to their specifications. More recently, formal methods are also used to understand properties and evolution laws of existing complex and adaptive systemsman-made such as smart electrical grids or natural ones such as biological networks.A tribute to Professor Kaisa Sere's contributions to the field of computer science, From Action Systems to Distributed Systems: The Refinement Approach is the first book to address the impact of refinement through a multitude of formal methods ranging from Action Systems to numerous related approaches in computer science research. It presents a state-of-the-art review on the themes of distributed systems and refinement. A fundamental part of Kaisa Sere's rTable of ContentsModeling. Analysis. Proof. Refinement. Applications.
£152.00
Taylor & Francis Inc Developing Essbase Applications
Book SynopsisMaintaining the advanced technical focus found in Developing Essbase Applications, this second volume is another collaborative effort by some of the best and most experienced Essbase practitioners from around the world.Developing Essbase Applications: Hybrid Techniques and Practices reviews technology areas that are much-discussed but still very new, including Exalytics and Hybrid Essbase. Covering recent improvements to the Essbase engine, the book illustrates the impact of new reporting and analysis tools and also introduces advanced Essbase best practices across a variety of features, functions, and theories.Some of this book's chapters are in the same vein as the previous volume: hardware, engines, and languages. Others cover new ground with Oracle Business Intelligence Enterprise Edition, design philosophy, benchmarking concepts, and multiple client tools. As before, these subjects are covered from both the technical and best practice perspectives.Trade Review"I enjoyed the first book because it was a collection of best practices, tips, tricks, and mini-guides. ... Reading this book, I was happy to find a wider representation of topics: brand new, forward-looking features like Hybrid Aggregation Mode; popular product offerings such as Exalytics and Oracle Business Intelligence Enterprise Edition integrations; topics relevant to many existing implementations; and even a representation of partner products."—Gabby Rubin, Senior Director, Product Management, Oracle Business AnalyticsTable of ContentsIntroduction. Essbase on Exalytics and the "Secret Sauce". Hybrid Essbase: Evolution or Revolution? The Young Person’s Guide to Essbase Cube Design. Essbase Performance and Load Testing. Utilizing Structured Query Language to Enhance Your Essbase Experience. Copernicus Was Right: Integrating Oracle Business Intelligence and Essbase. Managing Spreadsheets (and Essbase) Through Dodeca. Smart View Your Way.
£114.00
Taylor & Francis Inc Introduction to Programming and ProblemSolving
Book SynopsisPraise for the first edition:The well-written, comprehensive book[is] aiming to become a de facto reference for the language and its features and capabilities. The pace is appropriate for beginners; programming concepts are introduced progressively through a range of examples and then used as tools for building applications in various domains, including sophisticated data structures and algorithmsHighly recommended. Students of all levels, faculty, and professionals/practitioners.D. Papamichail, University of Miami in CHOICE Magazine Mark Lewis' Introduction to the Art of Programming Using Scala was the first textbook to use Scala for introductory CS courses. Fully revised and expanded, the new edition of this popular text has been divided into two books. Introduction to Programming and Problem-Solving Using Scala is designed to be used in first semester college classrooms to teach students beginning programming with Scala. TheTable of ContentsBasics of Computers, Computing, and Programming. Getting to Know the Tools. Scala Basics. Conditionals. Functions. Recursion for Iteration. Arrays and Lists in Scala. Loops. Text Files. Case Classes. GUIs. Graphics. Sorting and Searching. XML. Recursion.
£59.99
Taylor & Francis Inc Virtual Project Management: Software Solutions
Book SynopsisVirtual Project Management: Software Solutions for Today and the Future explores the technical management issues involved in the revolutionary new way of building complex software intensive systems faster and cheaper by employing the power of distributed operations. The book examines the implementation issues that cut deep inside present day collocated engineering organizations and recommends practical and affordable actions to aid organizations seeking increased productivity through distributed operations.The demand for integrated solutions constructed from a combination of existing and newly developed software increases daily. Many organizations find themselves with shortages of the critical skills necessary to compete in many of these newly created markets. Employing virtual collaborative development provides a dramatic increase in a company's opportunities to successfully compete. Virtual collaboration provides a broader skill and product knowledge base coupled with a deeper pool of personnel to potentially employ. It removes two of the major barriers - company affiliation and physical location. Virtual Project Management: Software Solutions for Today and the Future focuses on critical characteristics underlying how work actually gets done in traditional collocated engineering environments. It examines the changes taking place on virtual projects through a series of anecdotes based on real project experiences. The book provides an 8 step practical and affordable plan that can be used as a framework in either setting up and executing a new virtual project, or in instituting improvements to a project that has drifted off course. Others have lived through the pain of learning lessons the hard way. You don't need to follow their path. The insights and solutions offered by Paul McMahon answer the questions virtual project leaders will be asking well into the 21st century.Trade Review"…addresses one of the most challenging problems facing modern software development in an Internet world."-Dr. Jeffrey S. Poulin, Chief Technology Officer, Atlas Commerce"…hits a grand slam in Chapter Seven!"-Bob Epps, Manager, Architecture Integration Technology Center, Lockheed Martin Management & Data Systems "I got "hooked" and couldn't put it down…This book will guide managers to make collaboration-at-a-distance a far smoother, more reliable operation. It introduces just the right amount of rigor; it discusses methods for preventing things from falling through the cracks; it shows managers how to deal with the many very real human emotional reactions in working with collaborators (especially competitors) with whom communication is necessarily restricted; and it illuminates the strong role of informal communication."-William S. Bennett, Independent Consultant, Author: "Visualizing Software: A Graphical Notation for Analysis, Design, and Discussion,""I would highly recommend that Engineering/Program Managers read the Frequently Asked Questions (FAQs) section in Appendix J…This book will help you understand the inevitable problems and put you on track with effective techniques to create an efficient and successful collaborative team on day one of the contract; earlier if you implement the recommendations during the proposal phase."-Bruce Crandall, Program and Technology Development Manager, TRW Corporation"The cultural semantics in today's global economy is a big deal. The notion of using a common project memory (RFPM) makes a lot of sense to those of us that grew up in a culture that embraces collaboration."-Dr. Frank Tsui, Associate Professor of Computer Science, Southern Polytechnic State University, Chief Technology Officer, River Logic, Inc."A timely answer to a pressing management dilemma - how to bring distributed critical skills together without collocation…accurately hits the "high nail" issues facing today's management challenge of collaborative development…excellent job in highlighting both the potential pitfalls as well as recommended formulas for success."-Bob Wuestner, General Manager NLX CorporationTable of ContentsIntroduction. An Overview and a Roadmap - For Busy Project Leaders. Traditional Collocated Engineering From the Inside. The Tale of Two Cultures (The Schizophrenic Project). Remote Task Management: Am I Doing What You Think I'm Doing? An Implementation of a Virtual Culture: The Rapid Filtered Project Memory (RFPM). Team Communication: The Rules of the Game Have Changed. The Integration Side: It Isn't a Seamless World Just Yet. Eight Practical and Affordable Steps to Set Up and Maintain a Successful Virtual Project. Conclusion.
£130.00
APress Distributed .NET Programming in C#
Book SynopsisBarnaby describes how to use the new .NET technologies to build fast, scalable, and robust distributed applications.Table of ContentsA table of contents is not available for this title.
£35.54
APress Beginning XSLT 2.0: From Novice to Professional
Book Synopsis * Updated for XSLT 2.0, the latest revision * A clear, step-by-step introduction to XSLT for practical, everyday tasks * Suitable for complete beginners, even people who have never programmed before * Comprehensive, but focuses on techniques that are used time and time again; Uses a fun byut realistic case study throughout * Includes introductions to many of the most popular XML vocabularies Written by one of the leading experts on both XSLT and XML Schema; technical review by Michael Kay, the leading and well-known expert on XSLT.Table of ContentsA table of contents is not available for this title.
£63.74
APress HTML Mastery: Semantics, Standards, and Styling
Book SynopsisUnlike basic guides, HTML Mastery is crafted for advanced users who want to take their markup further, making it leaner and more semantically rich. HTML Mastery discusses and demonstrates all available HTML tags, including less common ones, explains where and how to use them, and offers styling and scripting techniques that can be employed on sophisticated web sites. The book also explores advanced semantic tools that further improve the usability and semantic value of sites. HTML Mastery devotes an entire chapter to Microformats, and gives the reader a preview of XHTML 2.0 and Web Applications 1.0 — web standards of the future.Trade ReviewFrom the reviews: "This book presents in-depth coverage of HTML, and its new version … . The book is written for advanced Web designers. … Many code snippets and screen images complete the description of the tags and examples. This book will be useful to those designing and maintaining first-rate Web pages." (Claudiu Popescu, ACM Computing Reviews, September, 2008)Table of Contents Getting Started Using the Right Tag for the Right Job Table Mastery Form Mastery Purpose-Built Semantics: Microformats and Other Stories Recognizing Semantics Looking Ahead: XHTML 2.0 and Web Applications 1.0
£26.12
Stata Press An Introduction to Stata Programming, Second
Book SynopsisIn this second edition of An Introduction to Stata Programming, the author introduces concepts by providing the background and importance for the topic, presents common uses and examples, then concludes with larger, more applied examples referred to as "cookbook recipes." This is a great reference for anyone who wants to learn Stata programming. For those learning, the author assumes familiarity with Stata and gradually introduces more advanced programming tools. For the more advanced Stata programmer, the book introduces Stata’s Mata programming language and optimization routines. Trade Review"… Baum’s An Introduction to Stata Programming (2nd Edition) combines a concise introduction into the Stata programming environment with a large number of applications to workflow, data management and estimation. …. An Introduction to Stata Programming (2nd Edition) is a well-organized book. We find it suitable for any Stata user on an intermediate or advanced level, a user which already has some experience with Stata and who wants go deeper into programming or who wants to extend Stata’s built-in commands for estimation and data management. In particular the large number of practical examples, mostly taken from economics and finance, help the reader a lot."—Oliver Kirchkamp and Hiltrud Niggemann in Journal of Statistical Software, April 2017Table of ContentsWhy should you become a Stata programmer? Some elementary concepts and tools. Do-file programming: Functions, macros, scalars, and matrices. Cookbook: Do-file programming I. Do-file programming: Validation, results, and data management. Cookbook: Do-file programming II. Do-file programming: Prefixes, loops, and lists. Cookbook: Do-file programming III. Do-file programming: Other topics. Cookbook: Do-file programming IV. Ado-file programming. Cookbook: Ado-file programming. Mata functions for do-file and ado-file programming. Cookbook: Mata function programming.
£72.19
Manning Publications The Mikado Method
Book Synopsis DESCRIPTION Technical debt is best understood as the work remaining before a job can be considered complete. It is one of the worst bottlenecks when it comes to creating value with software and the ability to deal with it is often the difference between a great business and closing the shop. The Mikado Method is a process which systematically eliminates technical debt. It gets its name from a simple game known as "pick-up sticks." Starting with a jumbled pile of sticks, the goal is to remove the Mikado, or Emperor, stick without disturbing the others. Players carefully remove sticks one at a time, leaving the rest of the heap intact, slowly exposing the Mikado. The game is a great metaphor for eliminating technical debt—carefully extracting each intertwined dependency until successfully resolving the central issue. The Mikado Method describes a pragmatic and straightforward method to plan and perform non-trivial technical improvements on an existing software system. Step by step, readers will identify the scope and nature of technical debt, map the key dependencies, and determine the safest way to approach the "Mikado"—the goal. A natural byproduct of this process is the Mikado Graph, a minimalistic, relevant, just-in-time roadmap and information radiator that reflects deep understanding of how the system works. RETAIL SELLING POINTS Written by the creators of the Mikado Method Step-by-step guide with hands on examples Points out sources of technical debts AUDIENCE This book is for software developers with a basic understanding of Java or familiarity with a C-like language. No previous experience with the Mikado Method is necessary. ABOUT THE TECHNOLOGY The Mikado Method offers a way to improve software systems without breaking them or going through long periods of having a half functioning system.
£41.98
Manning Publications Reactive Design Patterns
Book Synopsis DESCRIPTION Modern distributed applications must deliver near-realtime performance while simultaneously managing big data and high user loads spread across environments ranging from cloud systems to mobile devices. Unlike traditional enterprise applications which focus on decoupling their internal components by defining programming interfaces, reactive applications go one step further and decouple their components also at runtime. This makes it possible to react effectively and efficiently to failures, varying user demands, and changes in the application's execution environment. The resulting systems are highly concurrent and fault-tolerant, with minimal dependencies among individual system components. Reactive Design Patterns is a clearly-written guide for building message-driven distributed systems that are resilient, responsive, and elastic. It contains patterns for messaging, flow control, resource management, and concurrency, along with practical issues like test-friendly designs. All patterns include concrete examples using Scala and Akka—in some cases, Java, JavaScript, and Erlang. Software engineers and architects will learn patterns that address day-to-day distributed development problems in a fault-tolerant and scalable way. Project leaders and CTOs will gain a deeper understanding of the reactive design philosophy. KEY FEATURES Offers best patterns for building reactive applications All patterns include concrete examples Discover best practices Explains theory behind reactive system design principles AUDIENCE Readers should be familiar with a standard programming language like Java, C++ or C# and be comfortable with the basics of distributed systems. Although most of the book's examples use the Scala language, no prior experience with Scala or Akka is required. ABOUT THE TECHNOLOGY The design patterns in this book were collected by the consultants and engineers of Typesafe during thousands of hours spent building enterprise-quality applications using Scala and Akka. Although many reactive patterns can be implemented using standard development tools like Java, others require the capabilities offered by a functional programming language like Scala and an Actor-based concurrency system like Akka.
£37.99
Manning Publications The Tao of Microservices
Book SynopsisMicroservices are small, but they offer big value. A microservice is a very small piece of a larger system that can be coded by one developer within one iteration. Microservices can be added and removed individually, new developers can be immediately productive, and legacy code is easily replaced. Developers are no longer hampered by the communication and coordination overhead caused by monolithic systems. Savvy businesses are discovering that software development productivity can be greatly enhanced with the right engineering approach that enables even junior developers to double their productivity, while reducing delivery risk. The Tao of Microservices presents readers with the path to understanding how to apply microservices architecture in their realworld projects. This high-level book offers a conceptual view of microservice architectures, along with core concepts and their application. It also includes a detailed case study for the nodezoo.com system, including all source code and documentation. By the end of the book, readers will have explored in depth the key ideas of the microservice architecture and will be able to design, analyze and implement systems based on this architecture. Key Features:• Key principles of the microservice architecture • Applying these principles to real-world projects • Implementing large-scale systems • Detailed case study AUDIENCE This book is for developers, architects, or managers who want to deliver faster, meet changing business requirements, and build scalable and robust systems. ABOUT THE TECHNOLOGY A microservice is a very small piece of a larger system that can be coded by one developer within one iteration. Microservices can be added and removed individually, new developers can be immediately productive, and legacy code is easily replaced.
£37.99
Manning Publications Get Programming with F#: A guide for .NET
Book SynopsisF# leads to quicker development time and a lower total cost of ownership. Its powerful feature set allows developers to more succinctly express their intent, and encourages best practices - leading to higher quality deliverables in less time. Programming with F#: A guide for .NET developers shows you how to upgrade your .NET development skills by adding a touch of functional programming in F#. In just 43 bite-size chunks, you’ll learn to use F# to tackle the most common .NET programming tasks. You’ll start with the basics of F# and functional programming, building on your existing skills in the .NET framework. Examples use the familiar Visual Studio environment, so you’ll be instantly comfortable. Packed with enlightening examples, real-world use cases, and plenty of easyto-digest code, this easy-to-follow tutorial will make you wonder why you didn’t pick up F# years ago! KEY FEATURES • Hands-on chapters • Practical examples • Bite-size lessons • Try This exercises For intermediate C# and Visual Basic .NET developers who have heard about F# and functional programming and want to understand the benefits and use it as a part of their existing toolbox without having to throw away existing code. ABOUT THE TECHNOLOGY F# is a mature, open-source functional-first language that's rapidly growing in popularity both inside and outside the .NET ecosystem. AUTHOR BIO Isaac Abraham is an F# MVP and a .NET developer since .NET 1.0 with an interest in cloud computing and distributed data problems. He lives in both the UK and Germany, and is the director of Compositional IT.
£35.99
Manning Publications Istio in Action
Book SynopsisThe “servicemesh” pattern, implemented by platforms like Istio, helps you push operational issues into the infrastructure so the application code is easier to understand, maintain, and adapt. Istio in Action teaches you how to implement a full-featured Istio-based service mesh to manage a microservices application. Istio in Action is a comprehensive guide to handling authentication, routing, retrying, load balancing, collecting data, security, and other common network-related tasks using the Istio service mesh platform. With helpful diagrams and hands-on examples, you'll learn how to use this open-source service mesh to control routing, secure container applications, and monitor network traffic. You will also bring Istio to legacy systems without changes to your applications and discover how to use Istio in amulti-cloud world with the data layer deployed on a cluster like Kubernetes. Cloud-native applications can include thousands of clustered containers, distributed components, and complex interactions. To build them effectively, developers need a new approach to infrastructural concerns like monitoring, storage, scaling, orchestration, and security. The Istio platform offers a configurable infrastructure layer called a service mesh that reliably and efficiently manages day-to-day concerns like service discovery, load balancing, encryption, authentication and authorization, circuit breakers, and more. Open source andcloud-ready, Istio is a welcome upgrade from manually managed microservices infrastructure.Trade Review“The definitive guide to understand Istio and when it's worthusing it.” Andrea Cosentino “If you are looking for how to setup and use Istio, this is thebook for you.” Michael J. Haller “The perfect blend of how and why.” Morgan Nelson “Istio: how to use it, when to use it, what it is, and most importantly, what it is not.” Andrea Tarocchi “Provides detailed information on an exciting technology with aton of real-world examples. The authors walk readers through a difficult subject with ease. Highly recommended.” Morgan Nelson “A thorough treatment of Istio with excellent examples you can reproduce. I learnt a lot about Service Mesh, its "raison d'etre",and Istio's capabilities. Excellent resource!” Michael Bright
£50.90
Manning Publications Automated Machine Learning in Action
Book SynopsisOptimize every stage of your machine learning pipelines with powerful automation components and cutting-edge tools like AutoKeras and KerasTuner. Automated Machine Learning in Action, filled with hands-onexamples and written in an accessible style, reveals how premade machine learning components can automate time-consuming ML tasks. Automated Machine Learning in Action teaches you to automate selecting the best machine learning models or data preparation methods for your own machine learning tasks, so your pipelines tune themselves without needing constant input. You'll quickly run through machine learning basics thatopen upon AutoML to non-data scientists, before putting AutoML into practicefor image classification, supervised learning, and more. Automated machine learning (AutoML) automates complex andtime-consuming stages in a machine learning pipeline with pre packaged optimal solutions. This frees up data scientists from data processing and manualtuning, and lets domain experts easily apply machine learning models to their projects.Trade Review“Automating automation itself is a new concept and this book does justice to it in terms of explaining the concepts, sharing real world advancements, use cases and research related to the topic. “ Satej KumarSahu “A book with a lot of promise, covering a topic that's like to become hot in the next year or so. Read this now, and get ahead of the curve!” RichardVaughan “A nice introduction to AutoML, its ambitions, and challenges bothin theory and in practice.” Alain Couniot “Helps you to clearly understand the process of Machine Learning automation. The examples are clear, concise, and applicable to the real world.”Walter Alexander Mata López “The author's friendly style makes novices feel ready to try outAutoML tools.” Gaurav Kumar Leekha “A great book to take your machine learning skills to the next level.” Harsh Raval “An impressive effort by the authors to break down a complex MLtopic into understandable chunks.” Venkatesh Rajagopal
£34.19
Manning Publications Logging in Action: With Fluentd, Kubernetes and
Book Synopsis"A great book to introduce developers to the essential role that logging plays in software design and support." - Trent Whiteley Logging in Action teaches you how to make your log processing a real asset for your application, all with free and open source tools. You'll use the powerful log management tool Fluentd to solve common log problems, and learn how proper log management can improve performance and make management of software solutions easier. Through useful examples like sending log driven events to Slack, you'll get hands-on experience applying structure to your unstructured data. about the technologyFluentd is a powerful log management tool that seamlessly handles messy logging data, from operational errors, to application events, and security events. It decouples log data, such as SNMP or slow database queries, from backend systems and easily sends it where it needs to go—thanks to 500+ flexible plugins covering all major services. about the bookLogging in Action is a guide to streamlining your log processing, turning logged data into a tool that will boost your application's performance. It's packed with tips and tricks on how proper log management can improve your application's security, speed, and cost-effectiveness. You'll master the basics of the Fluentd management tool, then take a peek behind the scenes at how different configurations will impact and improve the way your systems function. By the time you're done, you'll be able to reliably configure Fluentd so that it can easily scale to handle even the largest data loads. what's insideDeploy Fluentd and Fluent Bit into varied environmentsConfigure Fluentd and Fluent Bit to solve common log problemsFluentd for microservicesConnect a custom log source or destination with Fluentd's extensibility frameworkCreate a custom plugin for niche problemsLogging best practices and common pitfalls about the readerFor developers and operations people familiar with application logging or infrastructure monitor logs. about the authorPhil Wilkins has spent over 25 years in the software industry. He works as a Technology Evangelist for Capgemini, specializing in cloud integration, APIs, and related technologies. Phil is TOGAF certified, and recognized by Oracle as an Ace Director (independent technology advocate) for his contributions to the integration and PaaS community.Trade Review"A great book to introduce developers to the essential role that logging plays in software design and support." Trent Whiteley "A comprehensive introduction to the Fluentd realm with valuable hands-on exercises." Michal Rutka "A great guide to getting started with Fluentd and using it effectively in your operations." George Thomas "Unified Logging with Fluentd is a text that takes you by the hand and explains step by step how to use Fluentd, covering all the key issues in a structured and very pragmatic way." Andrea C. Granata "A great in-depth look at Fluentd, its applications, and its plugins." Joel Holmes
£35.99
Manning Publications Effective Data Science Infrastructure
Book SynopsisEffective Data Science Infrastructure is a hands-on guide to assembling infrastructure for data science and machine learning applications. It reveals the processes used at Netflix and other data driven companies to manage their cutting edge data infrastructure. As you work through this easy-to-follow guide, you'll set up end-to end infrastructure from the ground up, with a fully customizable process you can easily adapt to your company. You'll learn how you can make data scientists more productive with your existing cloud infrastructure, a stack of open source software, and idiomatic Python. Throughout, you'll follow a human-centric approach focused on user experience and meeting the unique needs of data scientists. About the TechnologyTurning data science projects from small prototypes to sustainable business processes requires scalable and reliable infrastructure. This book lays out the workflows, components, and methods of the full infrastructure stack for data science, from data warehousing and scalable compute to modeling frameworks.Trade Review"Do not miss the opportunity to cover all key aspects of data science infrastructure on your next project." Jesús A. Juárez Guerrero "Useful book that provides tactical guidance on how to use Metaflow to streamline data science workflows but also includes great frameworks and abstractions to consider when defining your data science infrastructure stack." Sarah Catanzaro "This is the ultimate book to learn how to handle infrastructure in data science!" Ninoslav Cerkez "If you need a workflow management tool to glue your data code, look at metaflow. It's simple yet efficient." Mikael Dautrey
£34.19
Manning Publications Efficient Go
Book SynopsisYou know how to build Go programs—now learn how to ship them to your customers efficiently! This practical guide to continuous delivery shows you how to rapidly establish an automated pipeline that will improve your testing, code quality, and final product. In Bootstrapping Go you will learn how to: Develop better software based on feedback from customers Create a development pipeline that turns feedback into features Reduce bugs with pipeline automation that validates code before it is deployed Establish continuous testing for exceptional code quality Serverless, container based, and server based deployments Scale your deployment in a cost-effective way Deliver a culture of continuous improvement Bootstrapping Go is a hands-on guide to shipping Go-based software. Following examples in the powerful Go programming language, you'll learn how to establish pipelines that seamlessly ferry your projects through production and deployment. Put the theory of continuous delivery and continuous integration into action, and discover instantly-useful guidance on automating your team's build and reacting with agility to customer demands. about the technology Development pipelines built to the principles of continuous delivery are the best way for code to flow through your organization. A properly functioning pipeline makes it seamless to modify functionality, enhance code quality, and evolve your deployments to meet your customer's needs. about the book Bootstrapping Go: Automating code development, testing and deployment shows you how to build pipelines that optimize your development process so you can deliver software seamlessly to production. You'll dive right in, learning author Joel Holmes's easy way to establish pipelines. In fact, you'll set up your first working pipeline before you're finished with Chapter three!Table of Contentstable of contents READ IN LIVEBOOK 1DELIVERING VALUE READ IN LIVEBOOK 2INTRODUCTION TO CONTINUOUS INTEGRATION READ IN LIVEBOOK 3INTRODUCTION TO CONTINUOUS TESTING READ IN LIVEBOOK 4INTRODUCTION TO CONTINUOUS DEPLOYMENT 5 CODE QUALITY ENFORCEMENT 6 TESTING FRAMEWORKS, MOCKING, AND DEPENDENCIES 7 DEPLOYING WITH BUILDPACKS 8 BUILD SYSTEMS AND PATTERNS 9 ACCEPTANCE AND INTEGRATION TESTING 10 CREATING YOUR OWN INFRASTRUCTURE 11 AUTOMATED QUALITY ANALYSIS 12 CONCLUSION
£36.09
Manning Publications Acing the Certified Kubernetes Administrator Exam
Book SynopsisLearn the hands-on skills you need to ace the Kubernetes exam and boost your career by becoming a Certified Kubernetes Administrator (CKA). For readers who know the basics of containers and Linux admin. No Kubernetes experience is required. Acing the Certified Kubernetes Administrator Exam will provide you with content and practical exercises according to the unique CKA test environment. This practical book takes you hands-on with all the exam objectives, including deploying containerised applications to Kubernetes, accessing an application from an ingress resource, backup and restoring. You will learn how to: Administer an application running on Kubernetes Troubleshoot errors inside a Kubernetes cluster Authenticate users and machines to the Kubernetes API Create persistent storage in Kubernetes Add additional functionality to an existing Kubernetes cluster Plus! Essential exam tips and exercises help you work out your mental muscle memory. Acing the Certified Kubernetes Administrator Exam is your fast track to becoming a Certified Kubernetes Administrator! Your expert exam tutor is Chad Crowell, whose courses have helped thousands of developers to understand Kubernetes and earn the coveted CKA certification. About the technology The Certified Kubernetes Administrator (CKA) exam proves your skills as a Kubernetes administrator and is a serious test of your competency. There are no multiple-choice questions or essays: the whole test is conducted from the command line, with you performing solutions directly in the terminal. Administered by the Linux Foundation, the certification is recognised by employers worldwide as a proof of your ability to configure and manage production-grade Kubernetes clusters.
£41.39
de Gruyter Softwareentwicklung
Book Synopsis
£62.96
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG The Adaption of Virtual Man-Computer Interfaces to User Requirements in Dialogs
Table of ContentsThe user.- User-friendliness.- Special aspects of user behaviour.- to Part II.- Man-computer dialog.- Dialog contents and dialog state.- The three levels of abstraction.- Dialog types.- to Part III.- System objectives.- Conceptual recommendations for man-computer interfaces.
£42.74
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Information and the Internal Structure of the
Book SynopsisNot so if the book has been translated into Arabic. Now the reader can discern no meaning in the letters. The text conveys almost no information to the reader, yet the linguistic informa tion contained by the book is virtually the same as in the English original. The reader, familiar with books will still recognise two things, however: First, that the book is a book. Second, that the squiggles on the page represent a pattern of abstractions which probably makes sense to someone who understands the mean ing of those squiggles. Therefore, the book as such, will still have some meaning for the English reader, even if the content of the text has none. Let us go to a more extreme case. Not a book, but a stone, or a rock with engravings in an ancient language no longer under stood by anyone alive. Does such a stone not contain human information even if it is not decipherable? Suppose at some point in the future, basic knowledge about linguistics and clever computer aids allow us to decipher it? Or suppose someone discovers the equivalent of a Rosetta stone which allows us to translate it into a known language, and then into English? Can one really say that the stone contained no information prior to translation? It is possible to argue that the stone, prior to deciphering contained only latent information.Table of ContentsPrologue.- The Author’s Dilemma.- 1 Information: Abstraction or Reality?.- Can Information Exist Outside the Human Brain?.- Can Information be Processed Outside the Human Brain?.- Forms of Human Information and its Communication.- Biological Information Systems.- Inorganic Information Systems.- Non-human Information Processing.- Some Epistemological Considerations.- 2 Information Physics: An Introduction.- The Reality of Information.- The Heart of the Concept.- Information: The Hidden Dimension.- 3 Information and Entropy: The Mathematical Relationship.- Information and Organisation.- The Second Law of Thermodynamics.- The Boltzmann/Schrödinger Equation.- Information as an Inverse Exponential Function of Entropy.- The Constant c.- 4 Measuring the Information Changes of Altered Physical States.- Measuring the Information Content of a Crystal.- Proteins as Information Systems.- The Denaturation of Trypsin.- Concluding Remarks.- 5 Information and Entropy: Further Implications.- Information and Entropy as Viewed by the Communications Engineers.- Positive Entropy.- Negative Entropy.- Information Magnitudes.- The Evolution of the Universe.- 6 Some Further Considerations About the Interrelationship Between Information and Energy.- Pure Energy: Heat, the Antithesis of Information.- The Information Content of Energy.- Motion, Distance and Time.- Information and Potential Energy.- The Interconversion of Energy and Information.- Information Machines.- Structural vs Kinetic Information.- Transformations Between Kinetic and Structural Information.- 7 Information and Work.- The Relationship Between Work and Information.- Energy Transducers.- Work in Biological Systems.- Reassessing the Work Equations.- Measuring the Information Content of Electrical Work.- 8 Summary and Concluding Remarks.- The Basic Propositions.- Historical Perspective.- Why Has Information Been Overlooked?.- The Need for Models and Theories.- The Relevance of Information Physics for a General Theory of Information.- Some Concluding Thoughts.- Appendixes.- A. Speculations on Electromagnetic Radiation and Particles of Information.- B. Further Speculations: Implications for Atomic Structure.- C. A Smaller Universe.- D. Other Universes?.
£50.99
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Model-Based Testing of Reactive Systems: Advanced Lectures
Book SynopsisTesting is the primary hardware and software verification technique used by industry today. Usually, it is ad hoc, error prone, and very expensive. In recent years, however, many attempts have been made to develop more sophisticated formal testing methods. This coherent book provides an in-depth assessment of this emerging field, focusing on formal testing of reactive systems. This book is based on a seminar held in Dagstuhl Castle, Germany, in January 2004. It presents 19 carefully reviewed and revised lectures given at the seminar in a well-balanced way ensuring competent complementary coverage of all relevant aspects. An appendix provides a glossary for model-based testing and basics on finite state machines and on labelled transition systems. The lectures are presented in topical sections on testing of finite state machines, testing of labelled transition systems, model-based test case generation, tools and case studies, standardized test notation and execution architectures, and beyond testing.Table of ContentsTesting of Finite State Machines.- I. Testing of Finite State Machines.- 1 Homing and Synchronizing Sequences.- 2 State Identification.- 3 State Verification.- 4 Conformance Testing.- II. Testing of Labeled Transition Systems.- Testing of Labeled Transition Systems.- 5 Preorder Relations.- 6 Test Generation Algorithms Based on Preorder Relations.- 7 I/O-automata Based Testing.- 8 Test Derivation from Timed Automata.- 9 Testing Theory for Probabilistic Systems.- III. Model-Based Test Case Generation.- Model-Based Test Case Generation.- 10 Methodological Issues in Model-Based Testing.- 11 Evaluating Coverage Based Testing.- 12 Technology of Test-Case Generation.- 13 Real-Time and Hybrid Systems Testing.- IV. Tools and Case Studies.- Tools and Case Studies.- 14 Tools for Test Case Generation.- 15 Case Studies.- V. Standardized Test Notation and Execution Architecture.- Standardized Test Notation and Execution Architecture.- 16 TTCN-3.- 17 UML 2.0 Testing Profile.- VI. Beyond Testing.- Beyond Testing.- 18 Run-Time Verification.- 19 Model Checking.- VII. Appendices.- Appendices.- 20 Model-Based Testing – A Glossary.- 21 Finite State Machines.- 22 Labelled Transition Systems.
£42.74
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Coordination Technology for Collaborative
Book SynopsisGiven the broad popularity of Internet technology, even in its present immature state, and also the recent progress made towards a human-centered view of information technology, the time now seems ripe to essentially extend the scope and power of enterprise information systems.This carefully arranged book concentrates on the relationships between coordination technology and business application requirements and introduces general elements of a cooperative infrastructure allowing for the construction of collaborative applications. It is essential reading for research and development professionals active in the area as well as for IT managers interested in applying this promising new technology in order to remain competitive in the future.Table of ContentsA perspective on technology-assisted collaboration.- Coordination in knowledge-intensive organizations.- Co-ordination of management activities — Mapping organisational structure to the decision structure.- A cooperative approach to distributed applications engineering.- Towards logic programming based coordination in virtual worlds.- Enhancement of creative aspects of a daily conversation with a topic development agent.- Coordinating human and computer agents.- Coordination in workflow management systems — A rule-based approach.- A framework and mathematical model for collaboration technology.- Practical experiences and requirements on workflow.- Coordination science: Challenges and directions.- Supporting autonomous work and reintegration in collaborative systems.- Workspace awareness for distributed teams.- GeM and WeBUSE: Towards a WWW-database interface.- Post-client/server coordination tools.- An experimental delay analysis for local audio video streams for desktop collaborations.- Supporting both client-server and peer-to-peer models in a framework of a distributed object management system.
£42.74
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG The IT Measurement Compendium: Estimating and Benchmarking Success with Functional Size Measurement
Book Synopsis“As projects get more complicated, managers stop learning from their - perience. It is important to understand how that happens and how to change it…. Fallible estimates: In software development, initial estimates for a project shape the trajectory of decisions that a manager makes over its life. For ex- ple, estimates of the productivity of the team members influence decisions about the size of the team, which in turn affect the team’s actual output. The trouble is that initial estimates usually turn out to be wrong. ” (Sengupta, 2008) This book aims directly to increase the awareness among managers and practitioners that estimation is as important as the work to be done in so- ware and systems development. You can manage what you can measure! Readers will find in this book a collection of lessons learned from the worldwide “metrics community,” which we have documented and enhanced with our own experiences in the field of software measurement and estimating. Our goal is to support our readers to harvest the benefits of estimating and - prove their software development processes. We present the 5 ISO/I- acknowledged Functional Sizing Methods with variants, experiences, counting rules, and case studies – and most importantly, illustrate through practical - amples how to use functional size measurement to produce realistic estimates. The book is written in a practical manner, especially for the busy practitioner community. It is aimed to be used as a manual and an assistant for everyday work.Trade Review"This is a most useful and practical book. It should be on every project manager's desk as a handy reference on all things dealing with software measurement, estimation, benchmarking, and process improvement. Easy to read, easy to understand, and easy to apply !" Peter R. Hill, CEO, International Software Benchmarking Standards Group "Carol Dekkers and Manfred Bundschuh have written an excellent book that should be added to the collections of all software managers and software metrics workers throughout the world.Measurement and estimation of software projects has been extremely difficult for both technical and sociological reasons. The technical reasons include scores of poorly defined and incompatible metrics, gaps or "leakage" from historical data, and a rather sparse collection of accurate benchmarks that were available to the general software community.The sociological reasons center around the adversarial relationships between followers of rival metrics and measurement practices. For many years the "lines of code" metrics users have been at odds with the "function point" metrics users. Several other forms of measurement such as Earned Value, Balanced Scorecards, and Goal-Question metrics also have supporters, and tend to ignore other forms of metrics. In recent years the situation has become even more complex. As of 2008 there are at least 24 function point variants, five methods for counting lines of code, and perhaps 15 other forms of measurement such as Use Case Points, Story Points, object-oriented metrics, and others too numerous to cite. Dekkers and Bundschuh navigate this tricky area with clarity and objectiveness. All of the major metrics variants are discussed and explained, and their pros and cons are noted.The book also discusses the organizations that are trying to eliminate competition among the rival metrics camps, and achieve some kind of consensus on what needs to be measured and how to go about it. Although there is still antagonism among the various rivals, this new book by Dekkers and Bundschuh is likely to be useful in leading to common goals and mutual understanding of what the various metrics were trying to accomplish.Prior to the publication of this book, there was no easy way for followers of various metrics to learn about the other possibilities. While there are many books that discuss IFPUG function points, COSMIC function points, Goal-Question metrics, Balanced Scorecards, and all the others, this is the first book to try and show all of the major metrics in one volume. This new book is a worthy companion to older books such as Barry Boehm's Software Engineering Economics, Steve McConnell's Software Estimation, Richard Stutzke's Estimating Software-Intensive Systems, Roger Pressman's Software Engineering - A Practitioner's Approach, Steve Kan's Metrics and Models in Software Engineering, and my own books Estimating Software Costs and Applied Software Measurement. All of these books attempt to show the synergistic relationships among wide-ranging topics, as does this new book by Dekkers and Bundschuh."Capers Jones, Chief Scientist Emeritus, Software Productivity Research LLCTable of ContentsThe Estimation Challenges.- Estimation Fundamentals.- Prerequisites for Estimation.- The Implementation of Estimation.- Estimation Methods.- Estimating Maintenance Effort.- Software Measurement and Metrics: Fundamentals.- Product- and Process- Metrics.- Object-Oriented Metrics.- Measurement Communities and Resources.- Benchmarking of IT Projects.- The IFPUG Function Point Counting Method.- Functional Size Measurement Methods (FSMMs).- Variants of the IFPUG Function Point Counting Method.- Using Functional Size Measurement Methods.- Estimation of Data Warehouses, Web-Based Applications: Software Reuse and Redevelopment.- IFPUG Function Point Counting Rules.- Functional Size Measurement Case Studies.- Functional Size Measurement: Additional Case Studies.- Tools for Estimation.
£41.79
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Computer Aided Verification: 23rd International Conference, CAV 2011, Snowbird, UT, USA, July 14-20, 2011, Proceedings
Book SynopsisThis book constitutes the refereed proceedings of the 23rd International Conference on Computer Aided Verification, CAV 2011, held in Snowbird, UT, USA, in July 2011. The 35 revised full papers presented together with 20 tool papers were carefully reviewed and selected from 161 submissions. The papers are organized in topical sections on the following workshops: 4th International Workshop on Numerical Software Verification (NSV 2011), 10th International Workshop on Parallel and Distributed Methods in Verifications (PDMC 2011), 4th International Workshop on Exploiting Concurrency Efficiently and Correctly (EC2 2011), Frontiers in Analog Circuit Synthesis and Verification (FAC 2011), International Workshop on Satisfiability Modulo Theories, including SMTCOMP (SMT 2011), 18th International SPIN Workshop on Model Checking of Software (SPIN 2011), Formal Methods for Robotics and Automation (FM-R 2011), and Practical Synthesis for Concurrent Systems (PSY 2011).
£42.74
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Model-Driven Engineering Languages and Systems: 16th International Conference, MODELS 2013, Miami, FL, USA, September 29 – October 4, 2013. Proceedings
Book SynopsisThis book constitutes the refereed proceedings of the 16th International Conference on Model Driven Engineering Languages and Systems, MODELS 2013, held in Miami, FL, USA, in September/October 2013. The 47 full papers presented in this volume were carefully reviewed and selected from a total of 180 submissions. They are organized in topical sections named: tool support; dependability; comprehensibility; testing; evolution; verification; product lines; semantics; domain-specific modeling languages; models@RT; design and architecture; model transformation; model analysis; and system synthesis.Table of ContentsTool support.- Dependability.- Comprehensibility.- Testing.- Evolution.- Verification.- Product lines.- Semantics.- Domain-specific modeling languages.- Design and architecture.- Model transformation.- Model analysis.- System synthesis.
£42.74
Springer Fachmedien Wiesbaden Raspberry Pi – Das technische Handbuch:
Book SynopsisAufbau und Funktion des Raspberry Pi werden sachlich und praxisorientiert vorgestellt. Zunächst wird das System in Betrieb gesetzt, um damit eine Grundlage zu schaffen, auf die auch in Problemsituationen zurückgegriffen werden kann. Die Konfigurierung, Optimierung und Programmierung ist von besonderer Bedeutung, weil die gegenüber anderen Architekturen limitierten Ressourcen stets mit zu berücksichtigen sind. Die Schaltungstechnik der verschiedenen Raspberry Pi Boards (A, B, A+, B+, Compute Module) wird ausführlich behandelt. Der Schwerpunkt des Buches liegt auf der Hardware mit den Schnittstellen (LAN, WLAN, GPIO, seriell SPI, I2C, I2S, One-Wire), die für die Kommunikation und den Datenaustausch mit Sensoren und anderen Einheiten prädestiniert sind. Damit sind optimale und zudem kostengünstige Ergebnisse zu erzielen. Dies beinhaltet den Low Power-Betrieb, wie er insbesondere für akkubetriebene und somit für mobile Anwendungen essenziell ist.Die 3. Auflage wurde überarbeitet, erweitert und auf Raspberry Pi 4 aktualisiert.Table of ContentsEinführung: Entwicklung, Open Source, Modelle im Überblick - Schnellstart: Vorbereitung, anschließen und starten - Hardware: ARM-Architektur, Speicher, Ethernet, WLAN, Bluetooth - Konfigurierung und Optimierung: Setup, Netzwerke, Mobilfunk, Audio, Video - Software und Programmiergrundlagen: Firmware, Linux, Windows 10 IoTCore, Programmiersprachen - Hardware-Programmierung: GPIO, UART, SPI, I2C, I2S, One-Wire - Professioneller Einsatz: Low Power-Betrieb, USV, PoE, Compute Module
£38.49
Springer Vieweg Grundlagenforschung für vertrauenswürdige
Book SynopsisProjekt Übersicht.- Forschung in China und im Ausland.- Wichtige Forschungsergebnisse.- Ausblick.
£98.99
Spektrum Akademischer Verlag UML 2 kompakt: mit Checklisten
Book Synopsis
£17.09
Springer Fachmedien Wiesbaden Java für IT-Berufe: Das Lehr- und Begleitbuch für den Unterricht
Book SynopsisDas Buch vermittelt die Fähigkeit, zu jeder Zeit an jedem Ort Probleme mit Java erfolgreich zu lösen. Nach dem Einstieg mit kleinen klassischen Programmieraufgaben wird schrittweise und mit vielen Beispielen an die anspruchsvolleren Bestandteile von JAVA herangeführt. Mit der Zeichenkettenarbeit kommen die Objekte und Klassen. Eigene Klassen werden programmiert, Konstruktoren und das Überladen werden erklärt. Schließlich leiten Vererbung, abstrakte Klassen und Interfaces über zur Herstellung von Benutzeroberflächen mit Java und zu den Java-Applets. Über die Inhalte des Buches hinaus können Programmbeispiele, Übungen und Lösungen vom kostenlosen Onlineservice zum Buch heruntergeladen werden.Trade Review"Der Autor ist bekannt durch Bücher, in denen Einsteiger ohne Vorkenntnisse, gestützt auf viele Beispiele, in die Sprachen Delphi und Turbo-Pascal eingeführt werden. Ähnlich geht das vorliegende Buch bei der Einführung in Java, der Sprache des Internets, vor. [...] Auch dieser Weg der vielen kleinen Schritte führt zum Verständnis von Klassen, Konstruktoren, Vererbung und Überladen von Methoden." ekz-Informationsdienst, ID 9/06 - BA 4/06Table of ContentsProgramm und Programmiersprache - Java-Prinzip, Verarbeitung von Java-Programmen - Strukturiertes Programmieren mit Java - Arbeit mit String-Objekten, eigene Objekte - Klassen, Konstruktoren, Überladen von Methoden - Java als Methodensammlung, Java-Dokumentation - Vererbung, abstrakte Klassen, Interfaces - Benutzeroberflächen mit Java programmieren - 150 Programmbeispiele - 80 Übungen mit Lösungen, alle Dateien online verfügbar
£37.99
Not Avail Geschichten Vom Scrum: Von Sprints,
Book Synopsis
£12.30
Not Avail UML @ Classroom: Eine Einfhrung in Die
Book Synopsis
£22.41
John Wiley & Sons Inc Web Engineering The Discipline of Systematic
Book SynopsisThe World Wide Web has a massive and permanent influence on our lives. Economy, industry, education, healthcare, public administration, entertainment - there is hardly any part of our daily lives which has not been pervaded by the Internet.Table of ContentsPreface xv Foreword xvii 1 An Introduction to Web Engineering 1Gerti Kappel, Birgit Pröll, Siegfried Reich, Werner Retschitzegger 1.1 Motivation 1 1.2 Categories of Web Applications 4 1.3 Characteristics of Web Applications 7 1.3.1 Product-related Characteristics 8 1.3.2 Usage-related Characteristics 12 1.3.3 Development-related Characteristics 14 1.3.4 Evolution 16 1.4 Objectives and Structure of the Book 17 2 Requirements Engineering for Web Applications 23Paul Grünbacher 2.1 Introduction 23 2.2 Fundamentals 24 2.2.1 Where Do Requirements Come From? 24 2.2.2 Requirements Engineering Activities 25 2.3 RE Specifics in Web Engineering 26 2.4 Principles for RE of Web Applications 30 2.5 Adapting RE Methods to Web Application Development 32 2.5.1 Requirement Types 32 2.5.2 Notations 34 2.5.3 Tools 36 2.6 Outlook 37 3 Modeling Web Applications 39Wieland Schwinger, Nora Koch 3.1 Introduction 39 3.2 Fundamentals 40 3.3 Modeling Specifics in Web Engineering 41 3.3.1 Levels 41 3.3.2 Aspects 42 3.3.3 Phases 42 3.3.4 Customization 43 3.4 Modeling Requirements 43 3.5 Content Modeling 45 3.5.1 Objectives 45 3.5.2 Concepts 45 3.6 Hypertext Modeling 46 3.6.1 Objectives 47 3.6.2 Hypertext Structure Modeling Concepts 47 3.6.3 Access Modeling Concepts 49 3.6.4 Relation to Content Modeling 50 3.7 Presentation Modeling 51 3.7.1 Objectives 51 3.7.2 Concepts 51 3.7.3 Relation to Hypertext Modeling 52 3.8 Customization Modeling 53 3.8.1 Objectives 54 3.8.2 Concepts 54 3.8.3 Relation to Content, Hypertext, and Presentation Modeling 58 3.9 Methods and Tools 58 3.9.1 Modeling Methods: An Overview 58 3.9.2 Model-Driven Development 61 3.9.3 Tool Support 61 3.10 Outlook 63 4 Web Application Architectures 65Christian Eichinger 4.1 Introduction 65 4.2 Fundamentals 66 4.2.1 What is an Architecture? 66 4.2.2 Developing Architectures 67 4.2.3 Categorizing Architectures 69 4.3 Specifics of Web Application Architectures 70 4.4 Components of a Generic Web Application Architecture 71 4.5 Layered Architectures 72 4.5.1 2-Layer Architectures 72 4.5.2 N-Layer Architectures 73 4.6 Data-aspect Architectures 79 4.6.1 Database-centric Architectures 80 4.6.2 Architectures for Web Document Management 80 4.6.3 Architectures for Multimedia Data 81 4.7 Outlook 84 5 Technology-aware Web Application Design 85Gerhard Austaller, Andreas Hartl, Markus Lauff, Fernando Lyardet, Max Mühlhaüser 5.1 Introduction 86 5.2 Web Design from an Evolutionary Perspective 89 5.2.1 Background 89 5.2.2 Information Design: An Authoring Activity 90 5.2.3 Software Design: A Programming Activity 92 5.2.4 Merging Information Design and Software Design 93 5.2.5 Problems and Restrictions in Integrated Web Design 94 5.2.6 A Proposed Structural Approach 95 5.3 Presentation Design 95 5.3.1 Presentation of Nodes and Meshes 96 5.3.2 Device-independent Development Approaches 97 5.4 Interaction Design 98 5.4.1 User Interaction 98 5.4.2 User Interface Organization 100 5.4.3 Navigation Design 101 5.4.4 Designing a Link Representation: The Anchor 101 5.4.5 Designing Link Internals: The URL 102 5.4.6 Navigation and Orientation 102 5.4.7 Structured Dialog for Complex Activities 103 5.4.8 Interplay with Technology and Architecture 104 5.5 Functional Design 105 5.5.1 Integration 105 5.5.2 Communication Paradigms and Middleware 105 5.5.3 Distributed Cross-corporate Web Applications 106 5.6 Outlook 107 5.6.1 Context-aware Applications 107 5.6.2 Device-independent Applications 108 5.6.3 Reusability 109 5.7 Summary 110 6 Technologies for Web Applications 111Martin Nussbaumer, Martin Gaedke 6.1 Introduction 111 6.2 Fundamentals 112 6.2.1 Markup 112 6.2.2 Hypertext and Hypermedia 112 6.3 Client/Server Communication on the Web 113 6.3.1 SMTP – Simple Mail Transfer Protocol. 113 6.3.2 RTSP – Real Time Streaming Protocol 113 6.3.3 HTTP – HyperText Transfer Protocol 113 6.3.4 Session Tracking 114 6.4 Client-side Technologies 116 6.4.1 Helpers and Plug-ins 116 6.4.2 Java Applets 116 6.4.3 ActiveX Controls 116 6.5 Document-specific Technologies 117 6.5.1 HTML – Hypertext Markup Language 117 6.5.2 SVG – Scalable Vector Graphics 117 6.5.3 SMIL – Synchronized Multimedia Integration Language 118 6.5.4 XML – eXtensible Markup Language 118 6.5.5 XSL – eXtensible Stylesheet Language 122 6.6 Server-side Technologies 126 6.6.1 URI Handlers 126 6.6.2 Web Services 129 6.6.3 Middleware Technologies 130 6.7 Outlook 132 7 Testing Web Applications 133Christoph Steindl, Rudolf Ramler, Josef Altmann 7.1 Introduction 133 7.2 Fundamentals 134 7.2.1 Terminology 134 7.2.2 Quality Characteristics 135 7.2.3 Test Objectives 136 7.2.4 Test Levels 136 7.2.5 Role of the Tester 137 7.3 Test Specifics in Web Engineering 138 7.4 Test Approaches 140 7.4.1 Conventional Approaches 140 7.4.2 Agile Approaches 140 7.5 Test Scheme 142 7.5.1 Three Test Dimensions 142 7.5.2 Applying the Scheme to Web Applications 143 7.5.3 Examples of Using the Test Scheme 145 7.6 Test Methods and Techniques 145 7.6.1 Link Testing 147 7.6.2 Browser Testing 147 7.6.3 Usability Testing 148 7.6.4 Load, Stress, and Continuous Testing 148 7.6.5 Testing Security 149 7.6.6 Test-driven Development 150 7.7 Test Automation 150 7.7.1 Benefits and Drawbacks of Automated Tests 150 7.7.2 Test Tools 151 7.7.3 Selecting Test Tools 152 7.8 Outlook 152 8 Operation and Maintenance of Web Applications 155Arno Ebner, Birgit Pröll, Hannes Werthner 8.1 Introduction 155 8.2 Challenges Following the Launch of a Web Application 156 8.3 Promoting a Web Application 157 8.3.1 Newsletters 158 8.3.2 Affiliate Marketing 158 8.3.3 Search Engine Marketing 159 8.3.4 Content-related Marketing 162 8.3.5 Domain Management 162 8.4 Content Management 163 8.4.1 Content Update Rate and Demand on Currency 164 8.4.2 Content Syndication 165 8.5 Usage Analysis 165 8.5.1 Usage Analysis Techniques 165 8.5.2 Statistical Indicators 167 8.5.3 User Behavior Analysis 168 8.6 Outlook 169 9 Web Project Management 171Herwig Mayr 9.1 From Software Project Management to Web Project Management 171 9.1.1 Objectives of Software Project Management 171 9.1.2 The Tasks of Software Project Management 172 9.1.3 Conflicting Areas in Projects 173 9.1.4 Specifics of Web Project Management 173 9.2 Challenges in Web Project Management 175 9.2.1 General Challenges in Software Development 175 9.2.2 Development-related Challenges in Web Projects 176 9.2.3 Product-related Challenges in Web Projects 179 9.3 Managing Web Teams 182 9.3.1 Software Development: A Human-centered Task 182 9.3.2 The Web Project Team 183 9.3.3 The Web Project Manager 184 9.4 Managing the Development Process of a Web Application 185 9.4.1 Deploying the Tools 185 9.4.2 Measuring Progress 188 9.4.3 Project Risks 190 9.4.4 Risk Management 193 9.5 Outlook 194 10 The Web Application Development Process 197Gregor Engels, Marc Lohmann, Annika Wagner 10.1 Motivation 197 10.2 Fundamentals 198 10.3 Requirements for a Web Application Development Process 201 10.3.1 Handling Short Development Cycles 201 10.3.2 Handling Changing Requirements 201 10.3.3 Releases with Fixed Deadlines and Flexible Contents 203 10.3.4 Parallel Development of Different Releases 203 10.3.5 Reuse and Integration 204 10.3.6 Adapting to Web Application’s Complexity Level 204 10.3.7 Summary 205 10.4 Analysis of the Rational Unified Process 205 10.4.1 Introduction 205 10.4.2 General Suitability for Web Application Development 208 10.4.3 Does RUP meet the Requirements of Web Applications? 209 10.5 Analysis of Extreme Programming 211 10.5.1 Introduction 211 10.5.2 Does XP meet the Requirements of Web Application Development? 214 10.6 Outlook 216 11 Usability of Web Applications 219Martin Hitz, Gerhard Leitner, Rudolf Melcher 11.1 Motivation 219 11.2 What is Usability? 220 11.3 What Characterizes the Usability of Web Applications? 222 11.4 Design Guidelines 225 11.4.1 Response Times 225 11.4.2 Interaction Efficiency 225 11.4.3 Colors 226 11.4.4 Text Layout 227 11.4.5 Page Structure 228 11.4.6 Navigation Structure 228 11.4.7 Multiculturality 230 11.4.8 Confidence-generating Measures 231 11.4.9 Other Design Criteria 232 11.5 Web Usability Engineering Methods 232 11.5.1 Requirements Analysis 234 11.5.2 Design 237 11.5.3 Implementation 238 11.5.4 Operation 238 11.6 Web Usability Engineering Trends 239 11.6.1 Usability Patterns 239 11.6.2 Mobile Usability 241 11.6.3 Accessibility 243 11.7 Outlook 245 12 Performance of Web Applications 247Gabriele Kotsis 12.1 Introduction 247 12.2 What Is Performance? 248 12.3 What Characterizes the Performance of Web Applications? 250 12.4 System Definition and Indicators 251 12.5 Characterizing the Workload 252 12.6 Analytical Techniques 254 12.6.1 Operational Analysis 254 12.6.2 Queuing Networks and Simulation Models 255 12.6.3 Measuring Approaches 257 12.7 Representing and Interpreting Results 258 12.8 Performance Optimization Methods 259 12.8.1 Acceleration Within a Web Application 260 12.8.2 Reducing Transmission Time 261 12.8.3 Server Tuning 263 12.9 Outlook 263 13 Security for Web Applications 265Martin Wimmer, Alfons Kemper, Stefan Seltzsam 13.1 Introduction 265 13.2 Aspects of Security 266 13.3 Encryption, Digital Signatures and Certificates 268 13.3.1 Symmetric Cryptography 268 13.3.2 Asymmetric Cryptography 270 13.3.3 Digital Signatures 271 13.3.4 Certificates and Public Key Infrastructure 272 13.4 Secure Client/Server-Interaction 272 13.4.1 Point-to-Point Security 272 13.4.2 End-to-End Security 274 13.4.3 User Authentication and Authorization 276 13.4.4 Electronic Payment Systems 278 13.5 Client Security Issues 279 13.5.1 Preserving Privacy 279 13.5.2 Mobile Code Security 281 13.5.3 Phishing and Web Spoofing 282 13.5.4 Desktop Security 283 13.6 Service Provider Security Issues 285 13.6.1 Cross-Site Scripting 285 13.6.2 SQL Injection 287 13.6.3 Security of CGI Programs 289 13.6.4 Service Availability 290 13.6.5 Host Security 291 13.7 Outlook 292 14 The Semantic Web – The Network of Meanings in the Network of Documents 293Wernher Behrendt, Nitin Arora 14.1 Fundamentals of the Semantic Web 293 14.1.1 The Role of Software Agents 294 14.1.2 The Role of Semantic Markup 296 14.1.3 The Role of Ontologies 297 14.2 Technological Concepts 298 14.2.1 Agents According to the FIPA Standard 298 14.2.2 Ontologies 300 14.2.3 Semantic Markup on the Web 303 14.3 Specifics of Semantic Web Applications 308 14.3.1 Semantic Markup 308 14.3.2 Agents 309 14.3.3 Ontologies 309 14.3.4 Semantic Web Services 310 14.3.5 Integration into Web Engineering 313 14.4 Tools 314 14.5 Outlook 315 Glossary 317 Author Biographies 329 Bibliography 337 Credits 357 Index 359
£48.44
John Wiley & Sons Inc Managing and Leading Software Projects
Book SynopsisThe book is organized around basic principles of software project management: planning and estimating, measuring and controlling, leading and communicating, and managing risk. Introduces software development methods, from traditional (hacking, requirements to code, and waterfall) to iterative (incremental build, evolutionary, agile, and spiral).Trade Review"This book is readable, informative, and well organized.... The material presented is up to date with respect to documents that were published at the time the book was written." (Computing Reviews, May 15, 2009) "Mark it up and keep it on your bookshelf, and be sure to reference it frequently." (Computing Reviews, April 28, 2008)Table of ContentsPreface xv 1 Introduction 1 1.1 Introduction to Software Project Management, 1 1.2 Objectives of This Chapter, 2 1.3 Why Managing and Leading Software Projects Is Difficult, 2 1.4 The Nature of Project Constraints, 9 1.5 A Workfl ow Model for Managing Software Projects, 13 1.6 Organizational Structures for Software Projects, 16 1.7 Organizing the Project Team, 19 1.8 Maintaining the Project Vision and the Product Vision, 21 1.9 Frameworks, Standards, and Guidelines, 22 1.10 Key Points of Chapter 1, 23 1.11 Overview of the Text, 23 2 Process Models for Software Development 39 2.1 Introduction to Process Models, 39 2.2 Objectives of This Chapter, 42 2.3 A Development-Process Framework, 42 2.4 Tailoring the System Engineering Framework for Software-Only Projects, 52 2.5 Traditional Software Development Process Models, 54 2.6 Iterative-Development Process Models, 58 2.7 Designing an Iterative-Development Process, 72 2.8 The Role of Prototyping in Software Development, 74 2.9 Key Points of Chapter 2, 75 3 Establishing Project Foundations 85 3.1 Introduction to Project Foundations, 85 3.2 Objectives of This Chapter, 86 3.3 Software Acquisition, 87 3.4 Requirements Engineering, 88 3.5 Process Foundations, 109 3.6 Key Points of Chapter 3, 112 4 Plans and Planning 119 4.1 Introduction to the Planning Process, 119 4.2 Objectives of This Chapter, 120 4.3 The Planning Process, 121 4.4 The CMMI-DEV-v1.2 Process Area for Project Planning, 125 4.5 A Minimal Project Plan, 129 4.6 A Template for Software Project Management Plans, 130 4.7 Techniques for Preparing a Project Plan, 150 4.8 Key Points of Chapter 4, 154 5 Project Planning Techniques 173 5.1 Introduction to Project Planning Techniques, 173 5.2 Objectives of This Chapter, 174 5.3 The Scope of Planning, 175 5.4 Rolling-Wave Planning, 175 5.5 Scenarios for Developing a Project Plan, 176 5.6 Developing the Architecture Decomposition View and the Work Breakdown Structure, 177 5.7 Guidelines for Designing Work Breakdown Structures, 182 5.8 Developing the Project Schedule, 188 5.9 Developing Resource Profiles, 193 5.10 Resource-Gantt Charts, 199 5.11 Estimating Project Effort, Cost, and Schedule, 199 5.12 Key Points of Chapter 5, 201 6 Estimation Techniques 207 6.1 Introduction to Estimation Techniques, 207 6.2 Objectives of This Chapter, 208 6.3 Fundamental Principles of Estimation, 209 6.4 Designing to Project Constraints, 214 6.5 Estimating Product Size, 216 6.6 Pragmatic Estimation Techniques, 224 6.7 Theory-Based Estimation Models, 230 6.8 Regression-Based Estimation Models, 234 6.9 Estimation Tools, 249 6.10 Estimating Life Cycle Resources, Effort, and Cost, 249 6.11 An Estimation Procedure, 251 6.12 A Template for Recording Estimates, 256 6.13 Key Points of Chapter 6, 258 7 Measuring and Controlling Work Products 265 7.1 Introduction to Measuring and Controlling Work Products, 265 7.2 Objectives of This Chapter, 268 7.3 Why Measure?, 268 7.4 What Should Be Measured?, 269 7.5 Measures and Measurement, 270 7.6 Measuring Product Attributes, 276 7.7 Measuring and Analyzing Software Defects, 301 7.8 Choosing Product Measures, 309 7.9 Practical Software Measurement, 311 7.10 Guidelines for Measuring and Controlling Work Products, 311 7.11 Rolling-Wave Adjustments Based on Product Measures and Measurement, 313 7.12 Key Points of Chapter 7, 313 8 Measuring and Controlling Work Processes 333 8.1 Introduction to Measuring and Controlling Work Processes, 333 8.2 Objectives of This Chapter, 336 8.3 Measuring and Analyzing Effort, 336 8.4 Measuring and Analyzing Rework Effort, 339 8.5 Tracking Effort, Schedule, and Cost; Estimating Future Status, 342 8.6 Earned Value Reporting, 347 8.7 Project Control Panel, 353 8.8 Key Points of Chapter 8, 357 9 Managing Project Risk 363 9.1 Introduction to Managing Project Risk, 363 9.2 Objectives of This Chapter, 365 9.3 An Overview of Risk Management for Software Projects, 366 9.4 Conventional Project Management Techniques, 369 9.5 Risk Identifi cation Techniques, 373 9.6 Risk Analysis and Prioritization, 381 9.7 Risk Mitigation Strategies, 382 9.8 Top-N Risk Tracking and Risk Registers, 388 9.9 Controlling the Risk Management Process, 392 9.10 Crisis Management, 394 9.11 Risk Management at the Organizational Level, 395 9.12 Joint Risk Management, 396 9.13 Key Points of Chapter 9, 396 10 Teams, Teamwork, Motivation, Leadership, and Communication 407 10.1 Introduction, 407 10.2 Objectives of This Chapter, 408 10.3 Managing versus Leading, 408 10.4 Teams and Teamwork, 410 10.5 Maintaining Morale and Motivation, 417 10.6 Can't versus Won't, 418 10.7 Personality Styles, 420 10.8 The Five-Layer Behavioral Model, 427 10.9 Key Points of Chapter 10, 430 11 Organizational Issues 439 11.1 Introduction to Organizational Issues, 439 11.2 Objectives of This Chapter, 440 11.3 The Infl uence of Corporate Culture, 441 11.4 Assessing and Nurturing Intellectual Capital, 443 11.5 Key Personnel Roles, 444 11.6 Fifteen Guidelines for Organizing and Leading Software Engineering Teams, 449 11.6.3 Summary of the Guidelines, 463 11.7 Key Points of Chapter 11, 464 Glossary of Terms 471 Guidance for Term Projects 481 Index 487
£87.26
John Wiley & Sons Inc IT Success
Book SynopsisFifty years after the birth of corporate computing, IT today is still characterized by 50-70% project failure rates. Which is pretty scary when you come to think of it: either a goblin has cast a spell on a whole profession or that profession is doing something fundamentally wrong. IT Success! challenges the widespread assumption that an IT department is like a building contractor whose project managers, architects and engineers (all construction industry terms) are supposed to deliver systems on schedule, within budget and to spec. Michael Gentle explains why this is not possible, and turns conventional wisdom on its head by showing that: you cannot define an IT project in terms of contractual budgets and schedules anything can change during the life of a project what is eventually delivered can never be what is actually needed He proposes a new model for IT in which the traditional client/vendor relationship, wTrade Review"...a clever synthesis of enlightened IT project management thinking over the last few years." (Financial Times, Wednesday 21st November 2007)Table of ContentsIntroduction ix Acknowledgements xiii Abbreviations xvii Part I Blinded by Specs 1 1 In Search of the Fundamentals 3 The more things change, the more they stay the same 3 A worldwide phenomenon 4 How the traditional IT model started 5 The construction industry trap 6 The free lunch trap 7 Houses of ill repute 8 A business problem rather than an IT problem 10 IT and original sin 12 No sacred cows 12 2 IT 101 – The Basics for Non-Specialists 15 The process breakdown for traditional IT activities 15 The process breakdown for business (i.e non-IT) activities 16 The fundamental difference between IT and non-IT activities 18 'That's not my problem!' – process ownership and behaviour 19 3 The Flaws of the Traditional Model 21 The unintended consequences of the waterfall method 21 In search of a pizza parlour manager 22 Who provides process expertise – client or vendor? 22 When standard client–vendor relationships are possible 24 When standard client–vendor relationships pose problems 25 Is a standard client–vendor relationship possible for IT? 26 The 'Statement of Requirements' (SoR) trap 26 A poor to non-existent pricing model 28 Should IT be run like a business (i.e an ESP)? 30 The limits of outsourcing 31 Current IT organizational trends 32 The ultimate litmus test to determine one's business model 33 What model would be appropriate for IT? 34 Part II Building a New Business Model for It 35 4 Managing Demand 37 Managing demand – traditional model 37 Managing demand – new model 39 Capturing demand and identifying opportunities 41 Prioritizing and approving demand 43 Planning approved demand 49 Linking demand to resource capability 49 Approving demand based on portfolios 50 The missing component in Project Portfolio Management 53 Business cases are in the eye of the beholder 54 Building the IT plan and budget 55 Demand from a customer perspective 56 Shaking off the chains of the construction industry 56 Funding approved demand 58 Roles and responsibilities 59 5 Managing Supply 61 Managing supply - traditional model 61 Managing supply - new model 63 Iterative development in practice 65 Why prototyping has never become mainstream 74 Is prototyping the answer to everything? 78 Project critical success factors 79 Maintenance - letting go of the M-word 79 Delivery and implementation 81 Service and support 81 6 Monitoring Costs and Benefits 83 Monitoring costs and benefits for traditional IT activities 83 Monitoring costs and benefits for business (non-IT) activities 84 Monitoring costs and benefits – new model 85 Ownership and accountability for costs and benefits 86 Cost–benefit analysis during the life of a project 87 It is normal for costs and benefits to change! 88 Portfolio performance monitoring 88 Cost–benefit analysis after project delivery 89 7 Financials 91 The main categories of IT costs 91 Ownership of IT costs for the regulation of supply and demand 92 Who has the final say for IT investments? 92 Allocations vs cross-charging 93 Capturing costs for allocations and cross-charging 94 Benefits as part of the P&L and annual planning 95 Ongoing cost–benefit analysis for applications 96 Reducing application lifetime costs 100 The limits of financial ROI when applied to IT 102 Part III the New Model in Practice 105 8 Players, Roles and Responsibilities 107 Players, roles and responsibilities – the business 107 Players, roles and responsibilities – IT 111 The new business–IT relationship 112 The changing role of the business analyst 113 The changing role of the developer 113 Towards the merging of the developer and analyst roles? 114 The changing role of the project manager 115 The changing role of the operations department 116 What role for PMOs? 117 The role of External Service Providers (ESPs) 119 9 Getting Started 121 The business challenge 121 The IT challenge 122 Where to start 123 How to start – from checklist to action plan 124 From the status quo to first results 128 From first results to asset management 133 The role of best-practice methodologies 136 How consulting companies can help 138 How tools can help 139 The costs of moving to the new model 140 In closing – addressing the three fundamental questions 142 Further reading 143 10 Case Study 145 The company 145 The business problem 146 The project context 146 Building an IT–business partnership 147 Kicking off the project 148 Feasibility study and defining a solution 149 Building the business case 150 Project approach 151 Product evaluation – buy or build decision 151 Building a prototype 152 Results 154 Timescales 155 Three months later 155 One year later 156 Two years later 156 Main lessons learnt (on the plus side) 156 Main lessons learnt (on the minus side) 157 Comments with respect to the new model 157 Reader feedback 158 Index 159
£16.99
John Wiley & Sons Inc PatternOriented Software Architecture Patterns
Book SynopsisThe first volume of the POSA pattern series introduced a broad-spectrum of general-purpose patterns in software design and architecture. The second narrowed the focus to fundamental patterns for building sophisticated concurrent and networked software systems and applications.Table of ContentsForeword by Frank Buschmann. Foreword by Steve Vinoski. About This Book. About The Authors. Intended Audience. Structure of the Book. Guide to the Reader. Acknowledgements. About The Authors. 1. Introduction. 1.1 Overview of Resource Management. 1.2 Scope of Resource Management. 1.3 Usage of Patterns. 1.4 Patterns in Resource Management. 1.5 Related Work. 1.6 Pattern Form. 2. Resource Acquisition. Lookup. Lazy Acquisition. Eager Acquisition. Partial Acquisition. 3. Resource Lifecycle. Caching. Pooling. Coordinator. Resource Lifecycle Manager. 4. Resource Release. Leasing. Evictor. 5. Guidelines for Applying Resource Management. 6. Case Study: Ad Hoc Networking. 6.1 Overview. 6.2 Motivation. 6.3 Solution. 7. Case Study: Mobile Network. 7.1 Overview. 7.2 Motivation. 7.3 Solution. 8. The Past, Present, and Future of Patterns. 8.1 The Past Four Years at a Glance. 8.2 Where Patterns are Now. 8.3 Where Will Patterns Go Tomorrow? 8.4 A Brief Note about the Future of Patterns. 9. Concluding Remarks. Referenced Patterns. Notations. References. Acknowledgements. Index of Patterns. Index.
£32.00
John Wiley & Sons Inc Financial Instrument Pricing Using C
Book Synopsis? C++ is one of the best languages for the development of financial engineering and instrument pricing applications. ? This book applies C++ to the design and implementation of classes, libraries and latest applications for option and derivative pricing models.Table of ContentsCHAPTER 1 A Tour of C++ and Environs 1 1.1 Introduction and Objectives 1 1.2 What is C++? 1 1.3 C++ as a Multiparadigm Programming Language 2 1.4 The Structure and Contents of this Book: Overview 4 1.5 A Tour of C++11: Black–Scholes and Environs 6 1.6 Parallel Programming in C++ and Parallel C++ Libraries 12 1.7 Writing C++ Applications; Where and How to Start? 14 1.8 For whom is this Book Intended? 16 1.9 Next-Generation Design and Design Patterns in C++ 16 1.10 Some Useful Guidelines and Developer Folklore 17 1.11 About the Author 18 1.12 The Source Code and Getting the Source Code 19 CHAPTER 2 New and Improved C++ Fundamentals 21 2.1 Introduction and Objectives 21 2.2 The C++ Smart Pointers 21 2.3 Using Smart Pointers in Code 23 2.4 Extended Examples of Smart Pointers Usage 30 2.5 Move Semantics and Rvalue References 34 2.6 Other Bits and Pieces: Usability Enhancements 39 2.7 Summary and Conclusions 52 2.8 Exercises and Projects 52 CHAPTER 3 Modelling Functions in C++ 59 3.1 Introduction and Objectives 59 3.2 Analysing and Classifying Functions 60 3.3 New Functionality in C++: std::function<> 64 3.4 New Functionality in C++: Lambda Functions and Lambda Expressions 65 3.5 Callable Objects 69 3.6 Function Adapters and Binders 70 3.7 Application Areas 75 3.8 An Example: Strategy Pattern New Style 75 3.9 Migrating from Traditional Object-Oriented Solutions: Numerical Quadrature 78 3.10 Summary and Conclusions 81 3.11 Exercises and Projects 82 CHAPTER 4 Advanced C++ Template Programming 89 4.1 Introduction and Objectives 89 4.2 Preliminaries 91 4.3 decltype Specifier 94 4.4 Life Before and After decltype 101 4.5 std::result_of and SFINAE 106 4.6 std::enable_if 108 4.7 Boost enable_if 112 4.8 std::decay()Trait 114 4.9 A Small Application: Quantities and Units 115 4.10 Conclusions and Summary 118 4.11 Exercises and Projects 118 CHAPTER 5 Tuples in C++ and their Applications 123 5.1 Introduction and Objectives 123 5.2 An std:pair Refresher and New Extensions 123 5.3 Mathematical and Computer Science Background 128 5.4 Tuple Fundamentals and Simple Examples 130 5.5 Advanced Tuples 130 5.6 Using Tuples in Code 133 5.7 Other Related Libraries 138 5.8 Tuples and Run-Time Efficiency 140 5.9 Advantages and Applications of Tuples 142 5.10 Summary and Conclusions 143 5.11 Exercises and Projects 143 CHAPTER 6 Type Traits, Advanced Lambdas and Multiparadigm Design in C++ 147 6.1 Introduction and Objectives 147 6.2 Some Building Blocks 149 6.3 C++ Type Traits 150 6.4 Initial Examples of Type Traits 158 6.5 Generic Lambdas 161 6.6 How Useful will Generic Lambda Functions be in the Future? 164 6.7 Generalised Lambda Capture 171 6.7.1 Living Without Generalised Lambda Capture 173 6.8 Application to Stochastic Differential Equations 174 6.9 Emerging Multiparadigm Design Patterns: Summary 178 6.10 Summary and Conclusions 179 6.11 Exercises and Projects 179 CHAPTER 7 Multiparadigm Design in C++ 185 7.1 Introduction and Objectives 185 7.2 Modelling and Design 185 7.3 Low-Level C++ Design of Classes 190 7.4 Shades of Polymorphism 199 7.5 Is there More to Life than Inheritance? 206 7.6 An Introduction to Object-Oriented Software Metrics 207 7.7 Summary and Conclusions 210 7.8 Exercises and Projects 210 CHAPTER 8 C++ Numerics, IEEE 754 and Boost C++ Multiprecision 215 8.1 Introduction and Objectives 215 8.2 Floating-Point Decomposition Functions in C++ 219 8.3 A Tour of std::numeric_limits 221 8.4 An Introduction to Error Analysis 223 8.5 Example: Numerical Quadrature 224 8.6 Other Useful Mathematical Functions in C++ 228 8.7 Creating C++ Libraries 231 8.8 Summary and Conclusions 239 8.9 Exercises and Projects 239 CHAPTER 9 An Introduction to Unified Software Design 245 9.1 Introduction and Objectives 245 9.1.1 Future Predictions and Expectations 246 9.2 Background 247 9.3 System Scoping and Initial Decomposition 251 9.4 Checklist and Looking Back 259 9.5 Variants of the Software Process: Policy-Based Design 260 9.6 Using Policy-Based Design for the DVM Problem 268 9.7 Advantages of Uniform Design Approach 273 9.8 Summary and Conclusions 274 9.9 Exercises and Projects 275 CHAPTER 10 New Data Types, Containers and Algorithms in C++ and Boost C++ Libraries 283 10.1 Introduction and Objectives 283 10.2 Overview of New Features 283 10.3 C++ std::bitset and Boost Dynamic Bitset Library 284 10.4 Chrono Library 288 10.5 Boost Date and Time 301 10.6 Forwards Lists and Compile-Time Arrays 306 10.7 Applications of Boost.Array 311 10.8 Boost uBLAS (Matrix Library) 313 10.9 Vectors 316 10.10 Matrices 318 10.11 Applying uBLAS: Solving Linear Systems of Equations 322 10.12 Summary and Conclusions 330 10.13 Exercises and Projects 331 CHAPTER 11 Lattice Models Fundamental Data Structures and Algorithms 333 11.1 Introduction and Objectives 333 11.2 Background and Current Approaches to Lattice Modelling 334 11.3 New Requirements and Use Cases 335 11.4 A New Design Approach: A Layered Approach 335 11.5 Initial ‘101’ Examples of Option Pricing 347 11.6 Advantages of Software Layering 349 11.7 Improving Efficiency and Reliability 352 11.8 Merging Lattices 355 11.9 Summary and Conclusions 357 11.10 Exercises and Projects 357 CHAPTER 12 Lattice Models Applications to Computational Finance 367 12.1 Introduction and Objectives 367 12.2 Stress Testing the Lattice Data Structures 368 12.3 Option Pricing Using Bernoulli Paths 372 12.4 Binomial Model for Assets with Dividends 374 12.5 Computing Option Sensitivities 377 12.6 (Quick) Numerical Analysis of the Binomial Method 379 12.7 Richardson Extrapolation with Binomial Lattices 382 12.8 Two-Dimensional Binomial Method 382 12.9 Trinomial Model of the Asset Price 384 12.10 Stability and Convergence of the Trinomial Method 385 12.11 Explicit Finite Difference Method 386 12.12 Summary and Conclusions 389 12.13 Exercises and Projects 389 CHAPTER 13 Numerical Linear Algebra: Tridiagonal Systems and Applications 395 13.1 Introduction and Objectives 395 13.2 Solving Tridiagonal Matrix Systems 395 13.3 The Crank-Nicolson and Theta Methods 406 13.4 The ADE Method for the Impatient 411 13.5 Cubic Spline Interpolation 415 13.6 Some Handy Utilities 427 13.7 Summary and Conclusions 428 13.8 Exercises and Projects 429 CHAPTER 14 Data Visualisation in Excel 433 14.1 Introduction and Objectives 433 14.2 The Structure of Excel-Related Objects 433 14.3 Sanity Check: Is the Excel Infrastructure Up and Running? 435 14.4 ExcelDriver and Matrices 437 14.5 ExcelDriver and Vectors 444 14.6 Path Generation for Stochastic Differential Equations 448 14.7 Summary and Conclusions 459 14.8 Exercises and Projects 459 14.9 Appendix: COM Architecture Overview 463 14.10 An Example 468 14.11 Virtual Function Tables 471 14.12 Differences between COM and Object-Oriented Paradigm 473 14.13 Initialising the COM Library 474 CHAPTER 15 Univariate Statistical Distributions 475 15.1 Introduction, Goals and Objectives 475 15.2 The Error Function and Its Universality 475 15.3 One-Factor Plain Options 478 15.4 Option Sensitivities and Surfaces 488 15.5 Automating Data Generation 491 15.6 Introduction to Statistical Distributions and Functions 499 15.7 Advanced Distributions 504 15.8 Summary and Conclusions 511 15.9 Exercises and Projects 511 CHAPTER 16 Bivariate Statistical Distributions and Two-Asset Option Pricing 515 16.1 Introduction and Objectives 515 16.2 Computing Integrals Using PDEs 516 16.3 The Drezner Algorithm 521 16.4 The Genz Algorithm and the West/Quantlib Implementations 521 16.5 Abramowitz and Stegun Approximation 525 16.6 Performance Testing 528 16.7 Gauss–Legendre Integration 529 16.8 Applications to Two-Asset Pricing 531 16.9 Trivariate Normal Distribution 536 16.10 Chooser Options 543 16.11 Conclusions and Summary 545 16.12 Exercises and Projects 546 CHAPTER 17 STL Algorithms in Detail 551 17.1 Introduction and Objectives 551 17.2 Binders and std::bind 554 17.3 Non-modifying Algorithms 557 17.4 Modifying Algorithms 567 17.5 Compile-Time Arrays 575 17.6 Summary and Conclusions 576 17.7 Exercises and Projects 576 17.8 Appendix: Review of STL Containers and Complexity Analysis 583 CHAPTER 18 STL Algorithms Part II 589 18.1 Introduction and Objectives 589 18.2 Mutating Algorithms 589 18.3 Numeric Algorithms 597 18.4 Sorting Algorithms 601 18.5 Sorted-Range Algorithms 604 18.5.5 Merging 608 18.6 Auxiliary Iterator Functions 609 18.7 Needle in a Haystack: Finding the Right STL Algorithm 612 18.8 Applications to Computational Finance 613 18.9 Advantages of STL Algorithms 613 18.10 Summary and Conclusions 614 18.11 Exercises and Projects 614 CHAPTER 19 An Introduction to Optimisation and the Solution of Nonlinear Equations 617 19.1 Introduction and Objectives 617 19.2 Mathematical and Numerical Background 618 19.3 Sequential Search Methods 619 19.4 Solutions of Nonlinear Equations 620 19.5 Fixed-Point Iteration 622 19.6 Aitken’s Acceleration Process 623 19.7 Software Framework 623 19.8 Implied Volatility 632 19.9 Solvers in the Boost C++ Libraries 632 19.10 Summary and Conclusions 633 19.11 Exercises and Projects 633 19.12 Appendix: The Banach Fixed-Point Theorem 636 CHAPTER 20 The Finite Difference Method for PDEs: Mathematical Background 641 20.1 Introduction and Objectives 641 20.2 General Convection–Diffusion–Reaction Equations and Black–Scholes PDE 641 20.3 PDE Preprocessing 64520.3.2 Reduction of PDE to Conservative Form 646 20.4 Maximum Principles for Parabolic PDEs 649 20.5 The Fichera Theory 650 20.6 Finite Difference Schemes: Properties and Requirements 654 20.7 Example: A Linear Two-Point Boundary Value Problem 655 20.8 Exponentially Fitted Schemes for Time-Dependent PDEs 659 20.9 Richardson Extrapolation 663 20.10 Summary and Conclusions 665 20.11 Exercises and Projects 666 CHAPTER 21 Software Framework for One-Factor Option Models 669 21.1 Introduction and Objectives 669 21.2 A Software Framework: Architecture and Context 669 21.3 Modelling PDEs and Finite Difference Schemes: What is Supported? 670 21.4 Several Versions of Alternating Direction Explicit 671 21.5 A Software Framework: Detailed Design and Implementation 673 21.6 C++ Code for PDE Classes 674 21.7 C++ Code for FDM Classes 679 21.8 Examples and Test Cases 690 21.9 Summary and Conclusions 693 21.10 Exercises and Projects 694 CHAPTER 22 Extending the Software Framework 701 22.1 Introduction and Objectives 701 22.2 Spline Interpolation of Option Values 701 22.3 Numerical Differentiation Foundations 704 22.4 Numerical Greeks 710 22.5 Constant Elasticity of Variance Model 715 22.6 Using Software Design (GOF) Patterns 715 22.7 Multiparadigm Design Patterns 720 22.8 Summary and Conclusions 721 22.9 Exercises and Projects 721 CHAPTER 23A PDE Software Framework in C++11 for a Class of Path-Dependent Options 727 23.1 Introduction and Objectives 727 23.2 Modelling PDEs and Initial Boundary Value Problems in the Functional Programming Style 728 23.3 PDE Preprocessing 731 23.4 The Anchoring PDE 732 23.5 ADE for Anchoring PDE 739 23.6 Useful Utilities 746 23.7 Accuracy and Performance 748 23.8 Summary and Conclusions 750 23.9 Exercises and Projects 751 CHAPTER 24 Ordinary Differential Equations and their Numerical Approximation 755 24.1 Introduction and Objectives 755 24.2 What is an ODE? 755 24.3 Classifying ODEs 756 24.4 A Palette of Model ODEs 757 24.5 Existence and Uniqueness Results 760 24.6 Overview of Numerical Methods for ODEs: The Big Picture 763 24.7 Creating ODE Solvers in C++ 770 24.8 Summary and Conclusions 776 24.9 Exercises and Projects 776 24.10 Appendix 778 CHAPTER 25 Advanced Ordinary Differential Equations and Method of Lines 781 25.1 Introduction and Objectives 781 25.2 An Introduction to the Boost Odeint Library 782 25.3 Systems of Stiff and Non-stiff Equations 791 25.4 Matrix Differential Equations 796 25.5 The Method of Lines: What is it and what are its Advantages? 799 25.6 Initial Foray in Computational Finance: MOL for One-Factor Black-Scholes PDE 801 25.7 Barrier Options 806 25.8 Using Exponential Fitting of Barrier Options 808 25.9 Summary and Conclusions 808 25.10 Exercises and Projects 809 CHAPTER 26 Random Number Generation and Distributions 819 26.1 Introduction and Objectives 819 26.2 What is a Random Number Generator? 820 26.3 What is a Distribution? 821 26.4 Some Initial Examples 825 26.5 Engines in Detail 827 26.6 Distributions in C++: The List 830 26.7 Back to the Future: C-Style Pseudo-Random Number Generation 831 26.8 Cryptographic Generators 833 26.9 Matrix Decomposition Methods 833 26.10 Generating Random Numbers 845 26.11 Summary and Conclusions 848 26.12 Exercises and Projects 849 CHAPTER 27 Microsoft .Net, C# and C++11 Interoperability 853 27.1 Introduction and Objectives 853 27.2 The Big Picture 854 27.3 Types 858 27.4 Memory Management 859 27.5 An Introduction to Native Classes 861 27.6 Interfaces and Abstract Classes 861 27.7 Use Case: C++/CLI as ‘Main Language’ 862 27.8 Use Case: Creating Proxies, Adapters and Wrappers for Legacy C++ Applications 864 27.8.1 Alternative: SWIG (Simplified Wrapper and Interface Generator) 871 27.9 ‘Back to the Future’ Use Case: Calling C# Code from C++11 872 27.10 Modelling Event-Driven Applications with Delegates 876 27.11 Use Case: Interfacing with Legacy Code 886 27.12 Assemblies and Namespaces for C++/CLI 889 27.13 Summary and Conclusions 895 27.14 Exercises and Projects 896 CHAPTER 28 C++ Concurrency, Part I Threads 899 28.1 Introduction and Objectives 899 28.2 Thread Fundamentals 900 28.3 Six Ways to Create a Thread 903 28.4 Intermezzo: Parallelising the Binomial Method 909 28.5 Atomics 916 28.6 Smart Pointers and the Thread-Safe Pointer Interface 924 28.7 Thread Synchronisation 926 28.8 When should we use Threads? 929 28.9 Summary and Conclusions 929 28.10 Exercises and Projects 930 CHAPTER 29 C++ Concurrency, Part II Tasks 935 29.1 Introduction and Objectives 935 29.2 Finding Concurrency: Motivation 936 29.3 Tasks and Task Decomposition 937 29.4 Futures and Promises 941 29.5 Shared Futures 945 29.6 Waiting on Tasks to Complete 948 29.7 Continuations and Futures in Boost 950 29.8 Pure Functions 952 29.9 Tasks versus Threads 953 29.10 Parallel Design Patterns 953 29.11 Summary and Conclusions 955 29.12 Quizzes, Exercises and Projects 955 CHAPTER 30 Parallel Patterns Language (PPL) 961 30.1 Introduction and Objectives 961 30.2 Parallel Algorithms 962 30.3 Partitioning Work 967 30.4 The Aggregation/Reduction Pattern in PPL 971 30.5 Concurrent Containers 977 30.6 An Introduction to the Asynchronous Agents Library and Event-Based Systems 978 30.7 A Design Plan to Implement a Framework Using Message Passing and Other Approaches 986 30.8 Summary and Conclusions 989 30.9 Exercises and Projects 990 CHAPTER 31 Monte Carlo Simulation, Part I 993 31.1 Introduction and Objectives 993 31.2 The Boost Parameters Library for the Impatient 995 31.3 Monte Carlo Version 1: The Monolith Program (‘Ball of Mud’) 1000 31.4 Policy-Based Design: Dynamic Polymorphism 1003 31.5 Policy-Based Design Approach: CRTP and Static Polymorphism 1011 31.6 Builders and their Subcontractors (Factory Method Pattern) 1013 31.7 Practical Issue: Structuring the Project Directory and File Contents 1014 31.8 Summary and Conclusions 1016 31.9 Exercises and Projects 1017 CHAPTER 32 Monte Carlo Simulation, Part II 1023 32.1 Introduction and Objectives 1023 32.2 Parallel Processing and Monte Carlo Simulation 1023 32.3 A Family of Predictor–Corrector Schemes 1033 32.4 An Example (CEV Model) 1038 32.5 Implementing the Monte Carlo Method Using the Asynchronous Agents Library 1041 32.6 Summary and Conclusions 1047 32.7 Exercises and Projects 1050 Appendix 1: Multiple-Precision Arithmetic 1053 Appendix 2: Computing Implied Volatility 1075 References 1109 Index 1117
£66.50
John Wiley & Sons Inc Antipatterns
Book SynopsisPatterns are popular in software development and used to identify different types of procedures, designs, or codes that work. AntiPatterns are the exact opposite, targeting common errors and issues that can cause a project to fail. This book provides practical guidelines on detecting AntiPatterns and the refactored solutions that correct them.Table of ContentsINTRODUCTION TO ANTIPATTERNS. Introduction to Patterns and AntiPatterns. AntiPatterns Reference Model. Templates for Patterns and AntiPatterns. Advice for Using AntiPatterns. ANTIPATTERNS Software Development AntiPatterns. Software Architecture AntiPatterns. Software Project Management AntiPatterns. CONCLUSIONS AND RESOURCES. Appendices. Index.
£41.60
John Wiley & Sons Inc SoftwareEnabled Control Information Technology
Book Synopsis* Discusses open systems, object orientation, software agents, domain-specific languages, component architectures, as well as the dramatic IT-enabled improvements in memory, communication, and processing resources that are now available for sophisticated control algorithms to exploit.Trade Review“…a serious and detailed look at much exciting and ambitious work…gives an excellent look at what will soon become possible – and probably commonplace – in advanced control systems.” (Measurement & Control) "...an invaluable resource for research scientists, practicing engineers...graduate and undergraduate students...academic, corporate, and main libraries cannot afford to be without a copy of this outstanding publication.... Essential." (Choice, Vol. 41, No. 3, November 2003)Table of ContentsContributors. Preface. Introduction. The Sec Vision (H. Gill & J. Bay). Trends and Technologies For Unmanned Aerial Vehicles (D. Van Cleave). Previewing the Software-Enabled Control Research Portfolio (T. Samad & G. Balas). II: SOFTWARE ARCHITECTURES FOR REAL-TIME CONTROL. Open Control Platform: A Software Platform Supporting Advances in UAV Control Technology (J. Paunicka, et al.). A Prototype Open Control Platform For Reconfigurable Control Systems (L. Wills, et al.). Real-Time Adaptive Resource Management for Multimodel Control (M. Agrawal, et al.). Heterogeneous Modeling and Design of Control Systems (X. Liu, et al.). Embedded Control Systems Development with Giotto (T. Henzinger, et al.). III: ONLINE MODELING AND CONTROL. Online Control Customization Via Optimization-Based Control (R. Murray, et al.). Model Predictive Neural Control For Aggressive Helicop ter Maneuvers (E. Wan, et al.). Active Model Estimation For Complex Autonomous Systems (M. Campbell, et al.). An Intelligent Methodology For Real-Time Adaptive Mode Transitioning and Limit Avoidance of Unmanned Aerial Vehicles (G. Vachtsevanos, et al.). Implementation of Online Control Customization Within the Open Control Platform (R. Bhattacharya & G. Balas). IV: HYBRID DYNAMICAL SYSTEMS. Hybrid Systems: Review and Recent Progress (P. Antsaklis & X. Koutsoukos). A Maneuver-Based Hybrid Control Architecture for Autonomous Vehicle Motion Planning (E. Frazzoli, et al.). Multimodal Control of Constrained Nonlinear Systems (T. Koo, et al.). Towards Fault-Adaptive Control of Complex Dynamical Systems (G. Karsai, et al.). Computational Tools For the Verification of Hybrid Systems (C. Tomlin, et al.). V: CONCLUSIONS. The Outlook For Software-Enabled Control (T. Samad & G. Balas). Index. About the Editors.
£154.76
John Wiley & Sons Inc Simulation with Visual Slam and Awesim
Book SynopsisThis book presents a process for problem resolution, policy crafting, and decision making based on the use of modeling and simulation. Detailed descriptions of the methods by which Visual SLAM and AweSim, version 3, support this process are presented.Table of ContentsINTRODUCTION TO SIMULATION. Introduction to Modeling and Simulation. Simulation Modeling Perspectives. Modeling and Simulation Process. Applications of Simulation. VISUAL SLAM NETWORK MODELING AND AWESIM. Basic Network Modeling. Resources and Gates. Interface, Find and Assembly Modeling. Visual Subnetwork Modeling. Awesim Simulation Support System. SIMULATION ANALYSIS: PRACTICE AND THEORY. Awesim Analysis of Simulation Outputs. Random Sampling from Distributions. Statistical Aspects of Simulation. VISUAL SLAM DISCRETE EVENT, CONTINUOUS AND COMBINED MODELING. Network Modeling with Visual Basic Inserts. Network Modeling with C Inserts. Network Modeling with Continuous Variables. Discrete Event Simulation Using Visual Basic. Discrete Event Simulation Using C Functions. Continuous Modeling. Combined Modeling. Indexes.
£188.06
John Wiley & Sons Inc The Software Project Managers Handbook
Book SynopsisSoftware project managers and their team members work individually towards a common goal. This book guides both, emphasizing basic principles that work at work. Software at work should be pleasant and productive, not just one or the other. This book emphasizes software project management at work. The author''s unique approach concentrates on the concept that success on software projects has more to do with how people think individually and in groups than with programming. He summarizes past successful projects and why others failed. Visibility and communication are more important than SQL and C. The book discusses the technical and people aspects of software and how they relate to one another. The first part of the text discusses four themes: (1) people, process, product, (2) visibility, (3) configuration management, and (4) IEEE Standards. These themes stress thinking, organization, using what others have built, and people. The second part describes the softwTrade Review"…clearly explains what it takes to be a good software project manager...a first-rate information source for novice project managers." (IEEE Software Magazine, November/December 2005) "...a useful book for the classroom or the workplace...I advise purchasing this book and applying the author's ideas." (Software Quality Professional, September 2005) "...a good reference for individuals just starting off as IT project managers...For those preparing for the CSQE exam, this book can be a good reference..." (Software Quality Professional, June-August 2005) "…helps guide software project managers and their team members in working towards common goals." (IEEE Computer Magazine, October 2004)Table of ContentsPreface. Part 1. 1 What Makes a Good Software Manager? 1.1 People Perspective. 1.2 Business Perspective. 1.3 Process Perspective. 1.4 Key Thoughts in This Chapter. References. 2 Four Basics That Work. 2.1 People, Process, and Product. 2.2 Visibility. 2.3 Configuration Management. 2.4 Standards. 2.5 Key Thoughts in This Chapter. References. 3 What Doesn’t Work and Why. 3.1 When the 3Ps Are Out of Balance. 3.2 When There’s Not Enough Visibility. 3.3 When Configuration Management is Missing or Abused. 3.4 When Standards are Dismissed. 3.5 Key Thoughts in This Chapter. Reference. 4 Managing a Project Day by Day. 4.1 Balancing the 3Ps to Create a Good Environment. 4.2 Visibility: Project Control in a Simple Equation. 4.3 CM: Managing Baselines with Milestones. 4.4 Looking to Standards for Help. 4.5 Key Thoughts in This Chapter. References. Part 2. 5 Requirements. 5.1 Balancing the 3Ps: Requirements Analysis, Documentation, and Management. 5.2 Visibility: Making Requirements Known. 5.3 Using CM. 5.4 Using Standards. 5.5 Key Thoughts in this Chapter. References. 6 Planning. 6.1 Elements of a Good Plan. 6.2 Balancing the 3Ps: Selecting the Process. 6.3 Making the Project Visible: Planning Techniques. 6.4 Making the Project Visible: Estimating Techniques. 6.5 Configuration Management. 6.6 Standards. 6.7 Key Thoughts in this Chapter. References. 7 Risk Management. 7.1 A Task Overview. 7.2 Balancing The 3Ps: Uncertainty and Choice. 7.3 Making Risk Visible. 7.4 Other Ways to Manage Risk. 7.5 Configuration Management. 7.6 Using Standards. 7.7 Key Thoughts in this Chapter. References. Part 3. 8 Design. 8.1 The Challenge of the 3Ps. 8.2 Visibility—Expressing the Design. 8.3 Design in the Code. 8.4 Design and Process. 8.5 Designing with COTS. 8.6 Configuration Management. 8.7 Standards: Writing the SDD. 8.8 Key Thoughts in this Chapter. References. 9 Integration and Testing. 9.1 Some I&T Myths. 9.2 Managing the 3Ps: People. 9.3 Managing the 3Ps: Process. 9.4 Visibility: Testing Techniques and Details. 9.5 Configuration Management. 9.6 Standards: Documenting the Test Plan. 9.7 Key Thoughts in this Chapter. References. 10 Software Maintenance. 10.1 What is Maintenance. 10.2 Balancing the 3Ps: Managing the Maintainers. 10.3 Balancing the 3Ps: Managing the Process. 10.4 Balancing the 3Ps: Making the Most of the Product. 10.5 Visibility: Understanding the Maintenance Stages. 10.6 Configuration Management. 10.7 Using Standards. 10.8 Key Thoughts in this Chapter. References. Part 4. 11 Cookbook. 11.1 Essentials. 11.2 Opt: A Waterfall Project. 11.3 System Upgrade: An Evolutionary Project. 11.4 CTRAN: A Spiral Project. 11.5 Other Software Projects. 11.6 Key Thoughts in this Chapter. References. Appendix A Documents for the OPT Project. A.1 OPT Executive Sponsor Memorandum. A.2 OPT Project Context Document. A.3 OPT Configuration Management Plan. A.4 OPT Concept of Operations. A.5 OPT Software Requirements Specification. A.6 OPT Software Project Management Plan. A.7 OPT Software Design Description. Appendix B Configuration Management. B.1 Will The Real CM Please Stand Up? B.2 The Main Ingredients. B.3 Baselines. B.4 CM Activities. B.5 CM People. B.6 CM Plan. B.7 A CM Sketch. B.8 Summary. References. Appendix C Structured Analysis and Design. C.1 Structured Analysis. C.2 Structured Design. References. Appendix D Annotated Bibliography. D.1 Process. D.2 Visibility. D.3 People. D.4 Journals. Index. About the Author.
£105.26
John Wiley & Sons Inc Software Testing and Quality Assurance
Book SynopsisA superior primer on software testing and quality assurance, from integration to execution and automation This important new work fills the pressing need for a user-friendly text that aims to provide software engineers, software quality professionals, software developers, and students with the fundamental developments in testing theory and common testing practices. Software Testing and Quality Assurance: Theory and Practice equips readers with a solid understanding of: Practices that support the production of quality software Software testing techniques Life-cycle models for requirements, defects, test cases, and test results Process models for units, integration, system, and acceptance testing How to build test teams, including recruiting and retaining test engineers Quality Models, Capability Maturity Model, Testing Maturity Model, and Test Process Improvement Model Expertly balancing theoTrade Review"The text is user friendly, very clear, and supported by appropriate tables and process figures, combined with examples and process execution steps. There are useful detailed explanations inside text boxes and table, with nicely designed and explained figures, as well as generated software code samples...This is a very advanced book that I highly recommend to all software testing and QA practioners." (Computing Reviews, November 5, 2008) This book provides a comprehensive review of topics dealing with software testing and quality assurance. The writing style is plain but efficient, while the content covers theoretical (to some extent) and practical concepts in this field. Naik (Univ. of Waterloo, Ontario, Canada) and Tripathy (NEC Laboratories America Inc.) seem to have limited exposure to current research in software testing, but they adequately cover the fundamentals. The literature review sections are useful for researchers who wish to expand their knowledge on a specific topic, with references well placed at the end of individual chapters. The rather basic exercises are not really helpful for instructors. The work would benefit by a few more supportive examples, although the ones present are well designed to illustrate the theory, where available. Software testing may be considered a relatively specialized computer science topic, existing in the few departments where a software-testing expert resides or in academic institutions offering a software engineering degree. However, it is nevertheless an important subject, with extended applications in industry, the concepts of which are covered adequately here. This volume would be useful for instructional purposes at the undergraduate level and for professionals seeking references to more specialized information. Summing Up: Recommended. Upper-division undergraduates, faculty, researchers, and practitioners. – D. Papamichail, University of Miami (Choice, 2009)Table of ContentsPreface. List of Figures. List of Tables. CHAPTER 1: BASIC CONCEPTS AND PRELIMINARIES. 1.1 Quality Revolution. 1.2 Software Quality. 1.3 Role of Testing. 1.4 Verification and Validation. 1.5 Failure, Error, Fault, and Defect. 1.6 Notion of Software Reliability. 1.7 Objectives of Testing. 1.8 What Is a Test Case? 1.9 Expected Outcome. 1.10 Concept of Complete Testing. 1.11 Central Issue in Testing. 1.12 Testing Activities. 1.13 Test Levels. 1.14 Sources of Information for Test Case Studies. 1.15 White-Box and Black-Box Testing. 1.16 Test Planning and Design. 1.17 Monitoring and Measuring Test Execution. 1.18 Test Tools and Automation. 1.19 Test Team Organization and Management. 1.20 Outline of Book. References. Exercises. CHAPTER 2: THEORY OF PROGRAM TESTING. 2.1 Basic Concepts in Testing Theory. 2.2 Theory of Goodenough and Gerhart. 2.3 Theory of Weyuker and Ostrand. 2.4 Theory of Gourlay. 2.5 Adequacy of Testing. 2.6 Limitations of Testing. 2.7 Summary. Literature Review. References. Exercises. CHAPTER 3: UNIT TESTING. 3.1 Concept of Unit Testing. 3.2 Static Unit Testing. 3.3 Defect Prevention. 3.4 Dynamic Unit Testing. 3.5 Mutation Testing. 3.6 Debugging. 3.7 Unit Testing in extreme Programming. 3.8 JUnit: Framework for Unit Testing. 3.9 Tools for Unit Testing. 3.10 Summary. Literature Review. References. Exercises. CHAPTER 4: CONTROL FLOW TESTING. 4.1 Basic Idea. 4.2 Outline of Control Flow Testing. 4.3 Control Flow Graph. 4.4 Paths in a Control Flow Chart. 4.5 Path Selection Criteria. 4.6 Generating Test Input. 4.7 Examples of Test Data Selection. 4.8 Containing Infeasible Paths. 4.9 Summary. Literature Review. References. Exercises. CHAPTER 5: DATA FLOW TESTING. 5.1 General Idea. 5.2 Data flow Anomaly. 5.3 Overview of Dynamic Data flow Testing. 5.4 Data Flow Graph. 5.5 Data Flow Terms. 5.6 Data Flow Testing Criteria. 5.7 Comparison of Data Flow Test Selection Criteria. 5.8 Feasible Paths and Test Selection Criteria. 5.9 Comparison of Testing Techniques. 5.10 Summary. Literature Review. References. Exercises. CHAPTER 6: DOMAIN TESTING. 6.1 Domain Error. 6.2 Testing for Domain Errors. 6.3 Sources of Domain. 6.4 Types of Domain Errors. 6.5 ON and OFF Points. 6.6 Test Selection Criterion. 6.7 Summary. Literature Review. References. Exercises. CHAPTER 7: SYSTEM INTEGRATION. 7.1 Concept of Integration Testing. 7.2 Different Types of Interfaces and Interface Errors. 7.3 Granularity of System Integration Testing. 7.4 System Integration Techniques. 7.5 Software and Hardware Integration. 7.6 Test Plan for System Integration. 7.7 Off-the Shelf Component Integration. 7.8 Summary. Literature Review. References. Exercises. CHAPTER 8: SYSTEM TEST CATEGORIES. 8.1 Taxonomy of System Tests. 8.2 Basic Tests. 8.3 Functionality Tests. 8.4 Robustness Tests. 8.5 Interoperability Tests. 8.6 Performance Tests. 8.7 Scalability Tests. 8.8 Stress Tests. 8.9 Load and Stability Tests. 8.10 Reliability Tests. 8.11 Regression Tests. 8.12 Documentation Tests. 8.13 Regulatory Tests. 8.14 Summary. Literature Review. References. Exercises. CHAPTER 9: FUNCTIONAL TESTING. 9.1 Functional Testing Concepts of Howden. 9.2 Complexity of Applying Functional Testing. 9.3 Pairwise Testing. 9.4 Equivalence Class Partitioning. 9.5 Boundary Value Analysis. 9.6 Decision Tables. 9.7 Random Testing. 9.8 Error Guessing. 9.9 Category Partition. 9.10 Summary. Literature review. References. Exercises. CHAPTER 10: TEST GENERATION FROM FSM MODELS. 10.1 State-Oriented Model. 10.2 Points of Control and Observation. 10.3 Finite-State Machine. 10.4 Test Generation from an FSM. 10.5 Transition Tour Method. 10.6 Testing with State Verification. 10.7 Unique Input-Output Sequence. 10.8 Distinguishing Sequence. 10.9 Characterizing Sequence. 10.10 Test Architecture. 10.11 Testing and Test Control Notation Version 3 (TTCN-3). 10.12 Extended FSMs. 10.13 Test Generation from EFSM Models. 10.14 Additional Coverage Criteria for System Testing. 10.15 Summary. Literature review. References. Exercises. CHAPTER 11: SYSTEM TEST DESIGN. 11.1 Test Design Factors. 11.2 Requirement Identification. 11.3 Characteristics of Testable Requirements. 11.4 Test Objective Identification. 11.5 Example. 11.6 Modeling a Test Design Process. 11.7 Modeling Test Results. 11.8 Test Design Preparedness Metrics. 11.9 Test Case Design Effectiveness. 11.10 Summary. Literature Review. References. Exercises. CHAPTER 12: SYSTEM TEST PLANNING AND AUTOMATION. 12.1 Structure of a System Test Plan. 12.2 Introduction and Feature Description. 12.3 Assumption. 12.4 Test Approach. 12.5 Test Suite Structure. 12.6 Test Environment. 12.7 Test Execution Strategy. 12.8 Test Effort Estimation. 12.9 Scheduling and Test Milestones. 12.10 System Test Automation. 12.11 Evaluation and Selection of Test Automation Tools. 12.12 Test Selection Guidelines for Automation. 12.13 Characteristics of Automated Test Cases. 12.14 Structure of an Automated Test Case. 12.15 Test Automation Infrastructure. 12.16 Summary. Literature Review. References. Exercises. CHAPTER 13: SYSTEM TEST EXECUTION. 13.1 Basic Ideas. 13.2 Modeling Defects. 13.3 Preparedness to Start System Testing. 13.4 Metrics for Tracking System Test. 13.5 Orthogonal Defect Classification. 13.6 Defect Causal Analysis. 13.7 Beta Testing. 13.8 First Customer Shipment. 13.9 System Test Report. 13.10 Product Sustaining. 13.11 Measuring Test Effectiveness. 13.12 Summary. Literature Review. References. Exercises. CHAPTER 14: ACCEPTANCE TESTING. 14.1 Types of Acceptance Testing. 14.2 Acceptance Criteria. 14.3 Selection of Acceptance Criteria. 14.4 Acceptance Test Plan. 14.5 Acceptance Test Execution. 14.6 Acceptance Test Report. 14.7 Acceptance Testing in extreme Programming. 14.8 Summary. Literature Review. References. Exercises. CHAPTER 15: SOFTWARE RELIABILTY. 15.1 What is Reliability? 15.2 Definitions of Software Reliability. 15.3 Factors Influencing Software Reliability. 15.4 Applications of Software Reliability. 15.5 Operational Profiles. 15.6 Reliability Models. 15.7 Summary. Literature Review. References. Exercises. CHAPTER 16: TEST TEAM ORGANIZATION. 16.1 Test Groups. 16.2 Software Quality Assurance Group. 16.3 System Test Team Hierarchy. 16.4 Effective Staffing of Test Engineers. 16.5 Recruiting Test Engineers. 16.6 Retaining Test Engineers. 16.7 Team Building. 16.8 Summary. Literature Review. References. Exercises. CHAPTER 17: SOFTWARE QUALITY. 17.1 Five Views of Software Quality. 17.2 McCall’s Quality Factors and Criteria. 17.3 ISO 9126 Quality Characteristics. 17.4 ISO 9000:2000 Software Quality Standard. 17.5 Summary. Literature Review. References. Exercises. CHAPTER 18: MATURITY MODELS. 18.1 Basic Idea in Software Process. 18.2 Capability Maturity Models. 18.3 Test Process Improvement. 18.4 Testing Maturity Model. 18.5 Summary. Literature Review. References. Exercises. GLOSSARY. INDEX.
£107.06
Wiley SelfTuning Systems
Book SynopsisGeared to the usersa needs, this work provides comprehensive coverage of the main techniques and methods necessary to construct a self--tuning and self--adaptive system.Table of ContentsSYSTEM IDENTIFICATION FOR SELF-TUNING. System and Signal Models. Recursive Estimation. Using Recursive Estimators. Computational Alternatives for Recursive Estimation. Convergence Analysis for Recursive Algorithms. SELF-TUNING CONTROLLERS. Pole Assignment Control. Minimum Variance Control. Multistage Predictive Control. SELF-TUNING SIGNAL PROCESSING. Prediction. Self-Tuning Filters. SPECIAL TOPICS. Two-Dimensional Self-Tuning Algorithms. Self-Tuning Extremum Control. Frequency Domain Self-Tuning. Appendix. Index.
£367.16
O'Reilly Media Mercurial
Book SynopsisUsed by Mozilla, Python, and various open source projects on Linux, Windows, Mac OS X, and several variants of Unix, Mercurial permits virtually an infinite variety of methods for development and collaboration. This book takes you step-by-step through ways to track, merge, and manage software projects with this open source version control system.
£25.59
O'Reilly Media 97 Things Every Project Manager Should Know
Book SynopsisContains 97 short and practical tips from some of the world's most experienced project managers and software developers. This book offers highlights software projects, and contains the project management principles applicable to projects of different types in different industries.
£19.19