![]() |
Welcome to Loot.co.za!
Sign in / Register |Wishlists & Gift Vouchers |Help | Advanced search
|
Your cart is empty |
||
|
Books > Computing & IT > Computer programming > Software engineering
This book presents the latest research on the software crowdsourcing approach to develop large and complex software in a cloud-based platform. It develops the fundamental principles, management organization and processes, and a cloud-based infrastructure to support this new software development approach. The book examines a variety of issues in software crowdsourcing processes, including software quality, costs, diversity of solutions, and the competitive nature of crowdsourcing processes. Furthermore, the book outlines a research roadmap of this emerging field, including all the key technology and management issues for the foreseeable future. Crowdsourcing, as demonstrated by Wikipedia and Facebook for online web applications, has shown promising results for a variety of applications, including healthcare, business, gold mining exploration, education, and software development. Software crowdsourcing is emerging as a promising solution to designing, developing and maintaining software. Preliminary software crowdsourcing practices and platforms, including Apple's App Store and TopCoder, demonstrate the advantages of crowdsourcing in terms of software ecosystem expansion and product quality improvement.
Systems Engineering Guidebook: A Process for Developing Systems and Products is intended to provide readers with a guide to understanding and becoming familiar with the systems engineering process, its application, and its value to the successful implementation of systems development projects. The book describes the systems engineering process as a multidisciplinary effort. The process is defined in terms of specific tasks to be accomplished, with great emphasis placed on defining the problem that is being addressed prior to designing the solution.
Developing a large-scale software system in C++ requires more than just a sound understanding of the logical design issues covered in most books on C++ programming. To be successful, you will also need a grasp of physical design concepts that, while closely tied to the technical aspects of development, include a dimension with which even expert software developers may have little or no experience. This is the definitive book for all C++ software professionals involved in large development efforts such as databases, operating systems, compilers, and frameworks. It is the first C++ book that actually demonstrates how to design large systems, and one of the few books on object-oriented design specifically geared to practical aspects of the C++ programming language. In this book, Lakos explains the process of decomposing large
systems into physical (not inheritance) hierarchies of smaller,
more manageable components. Such systems with their acyclic
physical dependencies are fundamentally easier and more economical
to maintain, test, and reuse than tightly interdependent systems.
In addition to explaining the motivation for following good
physical as well as logical design practices, Lakos provides you
with a catalog of specific techniques designed to eliminate cyclic,
compile-time, and link-time (physical) dependencies. He then
extends these concepts from large to very large systems. The book
concludes with a comprehensive top-down approach to the logical
design of individual components. Appendices include a valuable
design pattern "Protocol Hierarchy" designed to avoid fat
interfaces while minimizing physical dependencies; the details of
implementing an ANSI C compatible C++procedural interface; and a
complete specification for a suite of UNIX-like tools to extract
and analyze physical dependencies. Practical design rules,
guidelines, and principles are also collected in an appendix and
indexed for quick reference.
GPS Tracking with Java EE Components: Challenges of Connected Cars highlights how the self-driving car is actually changing the automotive industry, from programing embedded software to hosting services and data crunching, in real time, with really big data. The book analyzes how the challenges of the Self Driving Car (SDC) exceed the limits of a classical GPS Tracking System (GTS.) It provides a guidebook on setting up a tracking system by customizing its components. It also provides an overview of the prototyping and modeling process, and how the reader can modify this process for his or her own software. Every component is introduced in detail and includes a number of design decisions for development. The book introduces Java EE (JEE) Modules, and shows how they can be combined to a customizable GTS, and used as seed components to enrich existing systems with live tracking. The book also explores how to merge tracking and mapping to guide SDCs, and focuses on client server programming to provide useful information. It also discusses the challenges involved with the live coordination of moving cars. This book is designed to aid GTS developers and engineers in the automotive industry. It can also help Java Developers, not only interested in GPS Tracking, but in modern software design from many individual modules. Source code and sample applications will be available on the book's website.
The overwhelming majority of a software system's lifespan is spent in use, not in design or implementation. So, why does conventional wisdom insist that software engineers focus primarily on the design and development of large-scale computing systems? In this collection of essays and articles, key members of Google's Site Reliability Team explain how and why their commitment to the entire lifecycle has enabled the company to successfully build, deploy, monitor, and maintain some of the largest software systems in the world. You'll learn the principles and practices that enable Google engineers to make systems more scalable, reliable, and efficient-lessons directly applicable to your organization. This book is divided into four sections: Introduction-Learn what site reliability engineering is and why it differs from conventional IT industry practices Principles-Examine the patterns, behaviors, and areas of concern that influence the work of a site reliability engineer (SRE) Practices-Understand the theory and practice of an SRE's day-to-day work: building and operating large distributed computing systems Management-Explore Google's best practices for training, communication, and meetings that your organization can use
Software developers face an ever-changing and ever-expanding technology landscape, which can appear as intimidating as Mt. Everest to newcomers. Developing technical skills is vital, but there are dozens of soft skills and learning techniques you need if you're to grow and succeed professionally. Honing those soft skills is a big part of what "Apprenticeship Patterns" is all about. Authors Dave Hoover and Adewale Oshineye, both formerly of the global IT consultancy ThoughtWorks, have cataloged dozens of patterns of behavior to help software developers hone their craft. Developed through years of research, a multitude of interviews, and feedback from O'Reilly's online forum, these patterns address difficult situations faced by entry-level programmers, system administrators, and database administrators. Each pattern has a memorable name to help point you in the right direction when you need it most. Examples of common obstacles and their solutions include: burned out at work? - learn how to 'Nurture Your Passion' by finding a pet project to help you rediscover the joy of problem solving; feeling overwhelmed by too much new information? - take a step back from your learning to re-explore some familiar territory by building something you've built before, then use 'Retreat Into Competence' to launch yourself forward again ; and, feeling stuck in your learning? - seek out a team of experienced and talented developers where you can 'Be the Worst' for a while Like any patterns book, you can read this one front-to-back, jump to specific patterns when you encounter the issues they address, or cherry pick just the ones that are new to you. The purpose of the solutions is to inspire you to stay on the path you intend, rather than wander off into management because it seems like the only option for advancement. "Apprenticeship Patterns" approaches software development not as a means to financial success, but as a means to personal fulfillment. It's your life and your career. Discover how this book can help you make the best of both.
Software Application Development: A Visual C plus plus, MFC, and STL Tutorial provides a detailed account of the software development process using Visual C plus plus, MFC, and STL. It covers everything from the design to the implementation of all software modules, resulting in a demonstration application prototype which may be used to efficiently represent mathematical equations, perform interactive and intuitive model-building, and conduct control engineering experiments. All computer code is included, allowing developers to extend and reuse the software modules for their own project work. The book's tutorial-like approach empowers students and practitioners with the knowledge and skills required to perform disciplined, quality, real-world software engineering.
This book describes the concepts and application of model-based development (MBD), model transformations, and Agile MBD to a wide range of software systems. It covers systems requirements engineering, system specification and design, verification, reuse, and system composition in the context of Agile MBD. Examples of applications in finance, system migration, internet systems and software refactoring are given. An established open-source MBD technology, UML-RSDS, is used throughout to illustrate the concepts. The book is suitable for industrial practitioners who need training in Agile MBD, and those who need to understand the issues to be considered when introducing MBD in an industrial context. It is also suitable for academic researchers, and for use as text for undergraduate or postgraduate courses in MBD. Examples for educational use of UML-RSDS are included in the book.
Specification and Verification of Multi-agent Systems presents a coherent treatment of the area of formal specification and verification of agent-based systems with a special focus on verification of multi-agent programs. This edited volume includes contributions from international leading researchers in the area, addressing logical formalisms and techniques, such as model checking, theorem proving, and axiomatisations for (semi) automatic verification of agent-based systems. Chapters include: * Using Theorem Proving to Verify Properties of Agent Programs * The Refinement of Multi-Agent Systems * Model Checking Agent Communication * Directions for Agent Model Checking * Model Checking Logics of Strategic Ability: Complexity * Correctness of Mult-Agent Programs: A Hybrid Approach * The Norm Implementation Problem in Normative Multi-Agent Systems * A Verification Logic for GOAL Agents * Using the Maude Term Rewriting Language for Agent Development with Formal Foundations * The Cognitive Agents Specification Language and Verification Environment * A Temporal Trace Language for Formal Modelling and Analysis of Agent Systemns * Assurance of Agent Systems: What Role Should Formal Verification Play? Specification and Verification of Multi-agent Systems is a comprehensive guide that makes a useful tool for researchers, practitioners and students, and serves as a reference work summarizing the state of the art in an accessible manner.
Identifies Recent Technological Developments Worldwide The field of grid computing has made rapid progress in the past few years, evolving and developing in almost all areas, including concepts, philosophy, methodology, and usages. Grid Computing: Infrastructure, Service, and Applications reflects the recent advances in this field, covering the research aspects that involve infrastructure, middleware, architecture, services, and applications. Grid Systems Across the Globe The first section of the book focuses on infrastructure and middleware and presents several national and international grid systems. The text highlights China Research and Development environment Over Wide-area Network (CROWN), several ongoing cyberinfrastructure efforts in New York State, and Enabling Grids for E-sciencE (EGEE), which is co-funded by the European Commission and the world's largest multidisciplinary grid infrastructure today. The second part of the book discusses recent grid service advances. The authors examine the UK National Grid Service (NGS), the concept of resource allocation in a grid environment, OMIIBPEL, and the possibility of treating scientific workflow issues using techniques from the data stream community. The book describes an SLA model, reviews portal and workflow technologies, presents an overview of PKIs and their limitations, and introduces PIndex, a peer-to-peer model for grid information services. New Projects and Initiatives The third section includes an analysis of innovative grid applications. Topics covered include the WISDOM initiative, incorporating flow-level networking models into grid simulators, system-level virtualization, grid usage in the high-energy physics environment in the LHC project, and the Service Oriented HLA RTI (SOHR) framework. With a comprehensive summary of past advances, this text is a window into the future of this nascent technology, forging a path for the next generation of cyberinfrastructure developers.
This book looks at the two most popular ways of using Java SE 6 to write 3D games on PCs: Java 3D (a high-level scene graph API) and JOGL (a Java layer over OpenGL). Written by Java gaming expert, Andrew Davison, this book will be first Java game book to market that uses the new Java (SE) 6 platform and its features including splash screens, scripting, and the desktop tray interface. This will be first and maybe only book to market that covers Java game development using the Java 3D API and Java for OpenGL, both critical components and libraries to Java-based 3D game application development.
This book discusses various open issues in software engineering, such as the efficiency of automated testing techniques, predictions for cost estimation, data processing, and automatic code generation. Many traditional techniques are available for addressing these problems. But, with the rapid changes in software development, they often prove to be outdated or incapable of handling the software's complexity. Hence, many previously used methods are proving insufficient to solve the problems now arising in software development. The book highlights a number of unique problems and effective solutions that reflect the state-of-the-art in software engineering. Deep learning is the latest computing technique, and is now gaining popularity in various fields of software engineering. This book explores new trends and experiments that have yielded promising solutions to current challenges in software engineering. As such, it offers a valuable reference guide for a broad audience including systems analysts, software engineers, researchers, graduate students and professors engaged in teaching software engineering.
Software testing is at a very important crossroad, where it is going back to the roots on certain fronts while moving inexorably forward. For instance, test automation is growing in prominence, but manual testing is becoming a niche; we are increasingly collaborating with the developers, breaking the bounds of unrealistic independence in testing, and bringing in true conscious quality. At such an important stage, it is important to take stock of the past, present, and future to define both the direction the discipline will take as well as the careers it will entail for testers. This book looks at a range of topics covering where we are in the product development landscape today, what are the varied disciplines at play, what are the influencing factors bringing in a change in software testing, why is such change important, what did the past look like, what is current decade turning out to be like, and where are we heading. As for future, it looks at it both from near-term and long-term perspectives. It also considers whether the testing fraternity is ready to take on such changes and are empowered enough to do so, or are there gaps that need to be filled. The book closes with perspectives from industry experts on what is in store for the software testing discipline and community in the coming years. After reading the book, you will be confident that you can take on what is in store for testers in the coming years. You will also be positioned to help the industry move to the next level, and influence change not just amongst testers but also in the product engineering industry level as a whole.
This book gives an in-depth introduction to the areas of modeling, identification, simulation, and optimization. These scientific topics play an increasingly dominant part in many engineering areas such as electrotechnology, mechanical engineering, aerospace, and physics. This book represents a unique and concise treatment of the mutual interactions among these topics.
Learn how to create gorgeous and expressive imagery with the Processing graphics language and environment. It's easy with this practical, hands-on book. Processing is for artists, designers, visualization creators, hobbyists, or anyone else looking to create images, animation, and interactive pieces for art, education, science, or business. Processing for Visual Artists shows you everything you need to know in a friendly, project-based style designed for visual thinkers. The projects can serve as a starting point for your own original, creative development and exploration. Walk with veteran author Andrew Glassner on a journey of shared discovery as he uses Processing to take each project from inspiration to reality. You'll closely follow every step he takes and see exactly how each piece evolves, including the big and small mistakes he's made along the way (and how to fix them!), and the times when he changed direction. As your knowledge and skills grow and develop, you'll understand why Processing is such a powerful tool for self-expression. And you'll be ready to strike off on your own. Processing offers you a 21st-century medium for expressing new kinds of ideas and engaging audiences in new ways. This book gives you everything you need to know to explore new frontiers in your own images, animations, and interactive experiences. Source code for each chapter is available for free download on the book's description at the crcpress website.
Often referred to as the "black art" because of its complexity and uncertainty, software estimation is not as difficult or puzzling as people think. In fact, generating accurate estimates is straightforward--once you understand the art of creating them. In his highly anticipated book, acclaimed author Steve McConnell unravels the mystery to successful software estimation--distilling academic information and real-world experience into a practical guide for working software professionals. Instead of arcane treatises and rigid modeling techniques, this guide highlights a proven set of procedures, understandable formulas, and heuristics that individuals and development teams can apply to their projects to help achieve estimation proficiency. Discover how to: Estimate schedule and cost--or estimate the functionality that can be delivered within a given time frame Avoid common software estimation mistakes Learn estimation techniques for you, your team, and your organization * Estimate specific project activities--including development, management, and defect correction Apply estimation approaches to any type of project--small or large, agile or traditional Navigate the shark-infested political waters that surround project estimates When many corporate software projects are failing, McConnell shows you what works for successful software estimation.
Software is one of the most important products in human history and is widely used by all industries and all countries. It is also one of the most expensive and labor-intensive products in human history. Software also has very poor quality that has caused many major disasters and wasted many millions of dollars. Software is also the target of frequent and increasingly serious cyber-attacks. Among the reasons for these software problems is a chronic lack of reliable quantified data. This reference provides quantified data from many countries and many industries based on about 26,000 projects developed using a variety of methodologies and team experience levels. The data has been gathered between 1970 and 2017, so interesting historical trends are available. Since current average software productivity and quality results are suboptimal, this book focuses on "best in class" results and shows not only quantified quality and productivity data from best-in-class organizations, but also the technology stacks used to achieve best-in-class results. The overall goal of this book is to encourage the adoption of best-in-class software metrics and best-in-class technology stacks. It does so by providing current data on average software schedules, effort, costs, and quality for several industries and countries. Because productivity and quality vary by technology and size, the book presents quantitative results for applications between 100 function points and 100,000 function points. It shows quality results using defect potential and DRE metrics because the number one cost driver for software is finding and fixing bugs. The book presents data on cost of quality for software projects and discusses technical debt, but that metric is not standardized. Finally, the book includes some data on three years of software maintenance and enhancements as well as some data on total cost of ownership.
Written by an expert in the development of GPS systems with digital maps and navigation, Programming GPS and OpenStreetMap Applications with Java: The RealObject Application Framework provides a concrete paradigm for object-oriented modeling and programming. It presents a thorough introduction to the use of available global positioning data for the development of applications involving digital maps. The author first describes the different formats of GPS data and digital maps and shows how to use recorded GPS traces to replay and display this data on a digital map. Then, he works through in detail the processing steps of obtaining dedicated data from OpenStreetMaps and how to extract a network for a simple navigation application. For each topic covered-GPS data, OpenStreetMaps, and navigation-Java code is developed that can easily be adapted to the readers' needs and locality. Finally, all components are put together in a sample computer-game application modeled on the well-known board game, Scotland Yard. The computer game is intended to be a basis from which readers can develop and customize their own application for their desired geographical area. The developed application can be "published" on the Internet and made available for interactive multiplayer competition. This book provides a fun and interesting way to learn distributed programming with Java and real-world data. Open-source software is available on a companion website at www.roaf.de
Teach Your Students How to Use Computing to Explore Powerful and Creative Ideas In the twenty-first century, computers have become indispensable in music making, distribution, performance, and consumption. Making Music with Computers: Creative Programming in Python introduces important concepts and skills necessary to generate music with computers. It interweaves computing pedagogy with musical concepts and creative activities, showing students how to integrate the creativity and design of the arts with the mathematical rigor and formality of computer science. The book provides an introduction to creative software development in the Python programming language. It uses innovative music-creation activities to illustrate introductory computer programming concepts, including data types, algorithms, operators, iteration, lists, functions, and classes. The authors also cover GUIs, event-driven programming, big data, sonification, MIDI programming, client'server programming, recursion, fractals, and complex system dynamics. Requiring minimal musical or programming experience, the text is designed for courses in introductory computer science and computing in the arts. It helps students learn computer programming in a creative context and understand how to build computer music applications. Also suitable for self-study, the book shows musicians and digital music enthusiasts how to write music software and create algorithmic music compositions. Web ResourceA supplementary website (http://jythonMusic.org) provides a music library and other software resources used in the text. The music library is an extension of the jMusic library and incorporates other cross-platform programming tools. The website also offers example course and associated media resources.
Fundamentals of Dependable Computing for Software Engineers presents the essential elements of computer system dependability. The book describes a comprehensive dependability-engineering process and explains the roles of software and software engineers in computer system dependability. Readers will learn: Why dependability matters What it means for a system to be dependable How to build a dependable software system How to assess whether a software system is adequately dependable The author focuses on the actions needed to reduce the rate of failure to an acceptable level, covering material essential for engineers developing systems with extreme consequences of failure, such as safety-critical systems, security-critical systems, and critical infrastructure systems. The text explores the systems engineering aspects of dependability and provides a framework for engineers to reason and make decisions about software and its dependability. It also offers a comprehensive approach to achieve software dependability and includes a bibliography of the most relevant literature. Emphasizing the software engineering elements of dependability, this book helps software and computer engineers in fields requiring ultra-high levels of dependability, such as avionics, medical devices, automotive electronics, weapon systems, and advanced information systems, construct software systems that are dependable and within budget and time constraints.
This book constitutes the refereed post-conference proceedings of the Second IFIP International Cross-Domain Conference on Internet of Things, IFIPIoT 2019, held in Tampa, USA, in October/ November 2019. The 11 full papers presented were carefully reviewed and selected from 22 submissions. Also included in this volume are 8 invited papers. The papers are organized in the following topical sections: IoT applications; context reasoning and situational awareness; IoT security; smart and low power IoT; smart network architectures; and smart system design and IoT education.
Project managers who lead globally dispersed teams face unique challenges in managing project stakeholders, scope, knowledge sharing, schedules, resources, and above all team execution in a global business environment. Finding timely solutions to challenging events becomes more difficult in a global project environment. This book presents more than 80 case studies designed to help project managers craft solutions to the typical problems that can occur in global projects. The author describes surprising, unexpected, and catastrophic cases that he encountered during his 35 years of project management experience in the global arena. The author details the background of each challenging case and then explains how he remedied the issue at hand. Some cases involve a logical step-by-step approach toward a solution, while others require unorthodox steps to get the project on the right track. The book includes lessons learned after every case. This book is designed to help global project managers become more proactive, careful, disciplined, and ready for sudden surprises that can affect their projects. The project cases detailed in this book support and guide the strategizing process that occurs during the execution of global projects. The book emphasizes the importance of documenting lessons learned after each project to prevent making the same mistakes in the future.
You can test just about anything with Cucumber. We certainly have, and in "Cucumber Recipes" we'll show you how to apply our hard-won field experience to your own projects. Once you've mastered the basics, this book will show you how to get the most out of Cucumber--from specific situations to advanced test-writing advice. With over forty practical recipes, you'll test desktop, web, mobile, and server applications across a variety of platforms. This book gives you tools that you can use today to automate any system that you encounter, and do it well."The Cucumber Book" showed you how your team can work together to write "executable specifications"--documents that tell a clear story and also happen to be working test code. We'll arm you with ready-rolled solutions to real-world problems: your tests will run faster, read more clearly, and work in any environment. Our first tips will help you fit Cucumber into your workflow. Powerful filters will tame tables full of test data, transforming them into the format your application needs. Custom output formatters will generate reports for any occasion. Continuous Integration servers will run your Cucumber tests every time the code changes. Next, you'll find recipes tailored to the platform you're running on. Ever wanted to know how to test a Grails app from Cucumber? Need to put a Windows program through its paces? How about a mobile app running on Android or iOS? We'll show you how to do all of these. Throughout the book, you'll see how to make Cucumber sing as you interoperate with different platforms, languages, and environments. From embedded circuits to Python and PHP web apps, Cucumber has something for you.What You Need: You'll need basic working knowledge of Cucumber and Ruby. Individual recipes may have additional requirements; for example, a recipe on Windows automation might pull in an open source GUI driver. We've written the recipes for compatibility with Ruby 1.9.3 and 1.8.7, plus Cucumber 1.1.4. Other versions may work as well, but these are the ones we test with.
The International Conference on Communications, Management, and Information Technology (ICCMIT'16) provides a discussion forum for scientists, engineers, educators and students about the latest discoveries and realizations in the foundations, theory, models and applications of systems inspired on nature, using computational intelligence methodologies, as well as in emerging areas related to the three tracks of the conference: Communication Engineering, Knowledge, and Information Technology. The best 25 papers to be included in the book will be carefully reviewed and selected from numerous submissions, then revised and expanded to provide deeper insight into trends shaping future ICT.
The Certified Function Point Specialist Examination Guide provides a complete and authoritative review of the rules and guidelines prescribed in the release of version 4.3 of the Function Point Counting Practices Manual (CPM). Providing a fundamental understanding of the IFPUG Functional Size Measurement method, this is the ideal study guide for the CFPS examination. The text: Includes time-tested tips on how to best prepare for the exam Provides a series of questions and answers at the end of each chapter with specific references to the latest version of the CPM Contains two CFPS practice exams to measure understanding and identify areas where more study is needed Active members of the Counting Practices Committee and a past president of the IFPUG supply time-tested insight on how to use the CPM manual effectively and efficiently during the exam. The two sample exams and detailed examples throughout the text help to ensure readers develop the comprehension required to attain certification the first time around. Following certification, this book is a valuable reference for applying the IFPUG method for sizing proficient software design, development, and deployment. Praise for the book: While there are a number of solid books on counting function points, this new book fills a gap in the function point literature by providing useful information on the specifics of becoming a certified function point counter. The authors are all qualified for the work at hand, and indeed have contributed to the function point counting methodology.Capers Jones, President, Capers Jones and Associates LLC |
You may like...
Data Prefetching Techniques in Computer…
Pejman Lotfi-Kamran, Hamid Sarbazi-Azad
Hardcover
R3,923
Discovery Miles 39 230
Hardware Accelerator Systems for…
Shiho Kim, Ganesh Chandra Deka
Hardcover
R3,950
Discovery Miles 39 500
Principles of Big Graph: In-depth…
Ripon Patgiri, Ganesh Chandra Deka, …
Hardcover
R3,925
Discovery Miles 39 250
Clean Architecture - A Craftsman's Guide…
Robert Martin
Paperback
(1)
Edge/Fog Computing Paradigm: The…
Pethuru Raj, Kavita Saini, …
Hardcover
R3,966
Discovery Miles 39 660
The Blockchain Technology for Secure and…
Neeraj Kumar, Shubhani Aggarwal, …
Hardcover
R3,960
Discovery Miles 39 600
|