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
"The situation is good, but not hopeless" (Polish folk wisdom) The text is devoted to the Software Analysis and Testing (SAT) methods and s- porting tools for assessing and, if possible, improving software quality, specifically its correctness. The term quality assurance is avoided for it is this author's firm belief that in the current state of the art that goal is unattainable, a plethora of "gu- anteed" solutions to the problem notwithstanding. Therefore, the rather awkward phrase "improving correctness" is to be understood as an effort to minimize the number of residual programming faults ("bugs") and their impact on the software's behavior, that is, to make the faults tolerable. It is clear that such a minimalist approach is a result of frustration. Indeed, having spent years developing software and teaching (preaching?) "How to do it right," I still do not know how to go about it with any degree of certainty! It appears then I probably should stop right now, for who with a modicum of common sense would reach for a text that does not offer salvation but (as will be seen) hard work and misery? If I intend to continue, it is only that I suspect there are many professionals out there who have similar doubts. And they are the intended audience of this project. The philosophical underpinning of the text is the importance of sound engine- ing practices in software development.
Defines concepts and processes of software and software development, such as agile processes, requirements engineering, and software architecture, design, construction Uncovers and answers various misconceptions about the software development process and presents an up-to-date reflection on the state of practice in the industry Details how non-software engineers can better communicate their needs to software engineers and more effectively participate in design and testing to ultimately lower software development and maintenance costs Helps answer the question: How can I better leverage embedded software in my design? Adds new chapters on software architecture, software engineering and systems, and software engineering and disruptive technologies, as well as information on cybersecurity Features new appendices that describe a sample automation system, covering software requirements, architecture, and design
The heart of any system that simulates the physical interaction
between objects is collision detection-the ability to detect when
two objects have come into contact. This system is also one of the
most difficult aspects of a physical simulation to implement
correctly, and invariably it is the main consumer of CPU cycles.
Practitioners, new to the field or otherwise, quickly discover that
the attempt to build a fast, accurate, and robust collision
detection system takes them down a long path fraught with perils
and pitfalls unlike most they have ever encountered. Without
in-depth knowledge and understanding of the issues associated with
engineering a collision detection system, the end of that path is
an abyss that has swallowed many a good programmer!
This title includes a number of Open Access chapters. Model-driven engineering (MDE) is the automatic production of software from simplified models of structure and functionality. It mainly involves the automation of the routine and technologically complex programming tasks, thus allowing developers to focus on the true value-adding functionality that the system needs to deliver. This book serves an overview of some of the core topics in MDE. The volume is broken into two sections offering a selection of papers that helps the reader not only understand the MDE principles and techniques, but also learn from practical examples. Also covered are the following topics: * MDE for software product lines * Formal methods for model transformation correctness * Metamodeling with Eclipse eCore * Metamodeling with UML profiles * Test cases generation This easily accessible reference volume offers a comprehensive guide to this rapidly expanding field. Edited by experienced writers with experience in both research and the practice of software engineering, Model-Driven Engineering of Information Systems: Principles, Techniques and Practice is an authoritative and easy-to-use reference, ideal for both researchers in the field and students who wish to gain an overview to this important field of study.
Its scale, flexibility, cost effectiveness, and fast turnaround are just a few reasons why crowdsourced testing has received so much attention lately. While there are a few online resources that explain what crowdsourced testing is all about, there's been a need for a book that covers best practices, case studies, and the future of this technique. Filling this need, Leveraging the Wisdom of the Crowd in Software Testing shows you how to leverage the wisdom of the crowd in your software testing process. Its comprehensive coverage includes the history of crowdsourcing and crowdsourced testing, implementation practices, and future trends. The book discusses best practices in implementation-explaining what, when, and how to crowdsource in a testing effort. It also includes case studies that illustrate how both product and service companies have successfully applied crowdsourcing in their testing programs. Explaining how to use the combined advantages of crowdsourcing and cloud computing for software testing, the book examines various engagement models in which you could implement crowdsourced testing. It addresses effective defect management in crowdsourced testing and considers both the business and engineering aspects of crowdsourced testing. The book explores the challenges, limitations, and situations when crowdsourced testing will not work and provides powerful best practices for mitigating the constraints and challenges, including how to build a crowdsourcing platform to test software products. Covering career opportunities for crowd testers, the book concludes by taking a look at the need to build a crowdsourced testing ecosystem, who the players of such an ecosystem would be, and who would need to champion such an effort.
Improving existing code-refactoring-is one of the most common tasks you'll face as a programmer. Five Lines of Code teaches you clear and actionable refactoring rules that you can apply without relying on intuitive judgements such as "code smells." It's written for working developers, guiding you step by step through applying refactoring patterns to the codebase of a 2D puzzle game. Following the author's expert perspective-that refactoring and code smells can be learned by following a concrete set of principles-you'll learn when to refactor your code, what patterns to apply to what problem, and the code characteristics that indicate it's time for a rework. Thanks to this hands-on guide, you'll find yourself programming faster while still delivering high-quality code that your teammates will love to work with. about the technologyRefactoring is a fact of life. All code is imperfect, and refactoring is a systematic process you can use to improve the quality of your codebase. Whatever your architecture, choice of OO language, or skill as a programmer, the continuous design improvements of refactoring make your code simpler, more readable, and less prone to bugs. You'll be amazed at the productivity boost of adding refactoring to your code hygiene routine-it's quicker to hammer out bad code and then improve it than spending hours writing good code in the first place! about the book Five Lines of Code teaches working developers the shortcuts to quality code. You'll follow author Christian Clausen's unique approach to teaching refactoring that's focused on concrete rules, and getting any method down to five lines or less to implement! There's no jargon or tricky automated-testing skills required, just easy guidelines and patterns illustrated by detailed code samples. Chapter by chapter you'll put techniques into action by refactoring a complete 2D puzzle game. Before you know it, you'll be making serious and tangible improvements to your codebase. what's inside The symptoms of bad code The extracting method, introducing strategy pattern, and many other refactoring patterns Modifying code safely, even when you don't understand it Writing stable code that enables change-by-addition Proper compiler practices Writing code that needs no comments Real-world practices for great refactoring about the readerFor developers who know an object-oriented programming language. about the author Christian Clausen works as a Technical Agile Coach teaching teams how to properly refactor their code. Previously he worked as a software engineer on the Coccinelle semantic patching project, an automated refactoring tool. He has an MSc in computer science, and five years' experience teaching software quality at a university level.
Despite its importance, the role of HdS is most often underestimated and the topic is not well represented in literature and education. To address this, Hardware-dependent Software brings together experts from different HdS areas. By providing a comprehensive overview of general HdS principles, tools, and applications, this book provides adequate insight into the current technology and upcoming developments in the domain of HdS. The reader will find an interesting text book with self-contained introductions to the principles of Real-Time Operating Systems (RTOS), the emerging BIOS successor UEFI, and the Hardware Abstraction Layer (HAL). Other chapters cover industrial applications, verification, and tool environments. Tool introductions cover the application of tools in the ASIP software tool chain (i.e. Tensilica) and the generation of drivers and OS components from C-based languages. Applications focus on telecommunication and automotive systems.
Although industry has been leveraging the advancements of component-oriented development and assembly (CODA) technology for some time, there has long been a need for a book that provides a complete overview of the multiple technologies that support CODA. Filling this need, Component-Oriented Development and Assembly supplies comprehensive coverage of the principles, practice, and paradigm of component-oriented development and assembly. The first part of the book provides the conceptual foundation for component-oriented software. Part II focuses on the various standard Java component models and describes how to develop a component-oriented system using these component models. Part III covers the various aspects of the component-oriented development paradigm. Based on the authors' research and teaching experience, the text focuses on the principles of component-oriented software development from a technical concepts perspective, designer's perspective, programmer's perspective, and manager's perspective. Covering popular component development frameworks based on Java, it is suitable as a textbook for component-oriented software for undergraduate and postgraduate courses. It is also an ideal reference for anyone looking to adopt the component-oriented development paradigm. The book provides readers with access to all the source code used in the book on a companion site (http://www.codabook.com). The source code for the CODA implementation of the case study presented in Chapter 11 is also hosted on the website. The website will also serve as a technical forum for further discussions on the topic and for any updates to the book.
PhoneGap is a standards-based, open-source development framework that can be deployed to any mobile device without losing the features of the native app-allowing for access to device contacts, the local file system, camera, and media on multiple platforms without requiring users to write a single line of code. Ideal for intermediate to advanced users, PhoneGap Build: Developing Cross Platform Mobile Applications in the Cloud offers the comprehensive coverage you need to harness the power of this dynamic tool. It provides complete coverage of the cloud computing platform and the theories behind cloud computing, using a series of engaging examples. The book explains the differences between existing mobile platforms, the different types of browsers they support, and the programming languages and integrated development environment required to develop apps for each of them. It then describes how PhoneGap makes the task of developing cross-platform mobile apps easier. This book will teach you how to use: HTML5, CSS3, and JavaScript to develop apps for devices across various mobile operating systems PhoneGap Build to develop mobile apps in the cloud PhoneGap with Sencha Touch and jQuery Mobile Back end databases to store and retrieve information The text starts with simpler applications and gradually moves toward describing advanced concepts and how to exploit different application programming interfaces and methods. By the time you finish the book, you will learn how to develop feature-rich mobile applications that can run on the cloud to support different platforms. Supplying authoritative guidance and proven best practices for designing cloud-based applications, the book is an ideal reference for cloud system developers, architects, and IT professionals. It is also suitable for use in instructional settings.
Computer Aided Software Engineering (CASE) tools typically support individual users in the automation of a set of tasks within a software development process. Such tools have helped organizations in their efforts to develop better software within budget and time constraints. However, many organizations are failing to take full advantage of CASE technology as they struggle to make coordinated use of collections of tools, often obtained at different times from different vendors. This book provides an in-depth analysis of the CASE tool integration problem, and describes practical approaches that can be used with current CASE technology to help your organization take greater advantage of integrated CASE.
Expert advice on C programming is hard to find. While much help is available for object-oriented programming languages, there's surprisingly little for the C language. With this hands-on guide, beginners and experienced C programmers alike will find guidance about design decisions, including how to apply them bit by bit to running code examples when building large-scale programs. Christopher Preschern, a leading member of the design patterns community, answers questions such as how to structure C programs, cope with error handling, or design flexible interfaces. Whether you're looking for one particular pattern or an overview of design options for a specific topic, this book shows you how to implement hands-on design knowledge specifically for the C programming language. You'll find design patterns for: Error handling Returning error information Memory management Returning data from C functions Data lifetime and ownership Flexible APIs Flexible iterator interfaces Organizing files in modular programs Escaping #ifdef Hell
This updated and completely revised edition of a bestseller extends the concepts and considerations of modern project management into the realm of project management oversight, control, and support. Illustrating the implications of project management in today's organizations, The Complete Project Management Office Handbook, Third Edition explains how to use the project management office (PMO) as a business integrator to influence project outcomes in a manner that serves both project and business management interests. Helping you determine if a PMO is right for your organization, this edition presents a five-stage PMO competency continuum to help you understand how to develop PMOs at different competency levels and associated functionalities. It also identifies five progressive PMO development levels to help you identify which level is best for your organization. Updates to this edition include: A refinement of the 20 PMO functions that guide PMO setup and operations A new section that provides an effective evaluation of PMO maturity indicators based on the prescribed 20 PMO functions presented in the handbook A new section on Establishing a Project Management Office that details a comprehensive process for determining the needs, purpose, and functionality for a new PMO Best practices that have cross-industry value and applicability The book includes checklists, detailed process steps, and descriptive guidance for developing PMO functional capability. The up-to-date PMO model defined will not only help you better understand business practices in project management, but will also help you to adapt and integrate those practices into the project management environment in your organization. For anyone associated with start-up and smaller PMOs, the book explains what can be done to create less rigorous PMO functional capabilities. It also includes helpful insights for those who need to specify and demonstrate "quick-wins" and early PMO-based accomplishments in their organization.
It's axiomatic to state that people fear what they do not understand, and this is especially true when it comes to technology. However, despite their prevalence, computers remain shrouded in mystery, and many users feel apprehensive when interacting with them. Smartphones have only exacerbated the issue. Indeed, most users of these devices leverage only a small fraction of the power they hold in their hands. How Things Work: The Computer Science Edition is a roadmap for readers who want to overcome their technophobia and harness the full power of everyday technology. Beginning with the basics, the book demystifies the mysterious world of computer science, explains its fundamental concepts in simple terms, and answers the questions many users feel too intimidated to ask. By the end of the book, readers will understand how computers and smart devices function and, more important, how they can make these devices work for them. To complete the picture, the book also introduces readers to the darker side of modern technology: security and privacy concerns, identity theft, and threats from the Dark Web.
It's axiomatic to state that people fear what they do not understand, and this is especially true when it comes to technology. However, despite their prevalence, computers remain shrouded in mystery, and many users feel apprehensive when interacting with them. Smartphones have only exacerbated the issue. Indeed, most users of these devices leverage only a small fraction of the power they hold in their hands. How Things Work: The Computer Science Edition is a roadmap for readers who want to overcome their technophobia and harness the full power of everyday technology. Beginning with the basics, the book demystifies the mysterious world of computer science, explains its fundamental concepts in simple terms, and answers the questions many users feel too intimidated to ask. By the end of the book, readers will understand how computers and smart devices function and, more important, how they can make these devices work for them. To complete the picture, the book also introduces readers to the darker side of modern technology: security and privacy concerns, identity theft, and threats from the Dark Web.
Improve your understanding of Scrum through the proven experience and collected wisdom of experts around the world. Based on real-life experiences, the 97 essays in this unique book provide a wealth of knowledge and expertise from established practitioners who have dealt with specific problems and challenges with Scrum. You'll find out more about the rules and roles of this framework, as well as tactics, strategies, specific patterns to use with Scrum, and stories from the trenches. You'll also gain insights on how to apply, tune, and tweak Scrum for your work. This guide is an ideal resource for people new to Scrum and those who want to assess and improve their understanding of this framework. Learn tips and tricks from some of the world's leading experts on Scrum Understand how leading practitioners deal with real-life problems Explore essays that address product ownership, collaboration, mastership, and the impact of Scrum on an organization Apply the solutions in this book to your own problems with Scrum
"Ontology-based Application Integration" introduces UI-level (User Interface Level) application integration and discusses current problems which can be remedied by using ontologies. It shows a novel approach for applying ontologies in system integration. While ontologies have been used for integration of IT systems on the database and on the business logic layer, integration on the user interface layer is a novel field of research. This book also discusses how end users, not only developers, can benefit from semantic technologies. "Ontology-based Application Integration" presents the development of a software framework including a detailed ontology about user interfaces and interactions. This includes a running case study of a real world integrated emergency management system. The last section of this book discusses useful features that can be built on top of the framework for improving the user experience with future integrated information systems. "Ontology-based Application Integration" is designed as a reference book for practitioners and researchers who understand and work with the principles of applying semantic web technologies to a software engineering problem. This book will also make an excellent reference or secondary text book for advanced-level students concentrating on computer science.
* Targests readers with a background in programming, interested in an introduction/refresher in statistical hypothesis testing * Uses Python throughout * Provides the reader with the opportunity of using the book whenever needed rather than following a sequential path.
Every information system brought into service in every type of organisation requires user acceptance testing. It is by far the most common activity carried out by non-IT specialists. This book is designed to be a hands-on manual for non-testing specialists to plan and carry out an effective acceptance test of an information system. It provides a structured and step-by-step approach to effective acceptance testing and identifies ways of making the process as simple and cost-effective as possible. "A UAT guide for users: that is a novel thought This fills a gap in my bookshelf, a volume I wish I had years ago. It would have helped me to help the business. But more than that: it would have helped business users to help themselves, and see that UAT is more than just a necessary evil, but has clear purpose, methods, goals and skills. This is a step by step guide that is clear and praise worthy. You never know, it could be a recruiting arm for professional testers in the future, brought in from the business." Peter Morgan, Testing Practitioner.
This book explains in detail how to define requirements modelling languages - formal languages used to solve requirement-related problems in requirements engineering. It moves from simple languages to more complicated ones and uses these languages to illustrate a discussion of major topics in requirements modelling language design. The book positions requirements problem solving within the framework of broader research on ill-structured problem solving in artificial intelligence and engineering in general. Further, it introduces the reader to many complicated issues in requirements modelling language design, starting from trivial questions and the definition of corresponding simple languages used to answer them, and progressing to increasingly complex issues and languages. In this way the reader is led step by step (and with the help of illustrations) to learn about the many challenges involved in designing modelling languages for requirements engineering. The book offers the first comprehensive treatment of a major challenge in requirements engineering and business analysis, namely, how to design and define requirements modelling languages. It is intended for researchers and graduate students interested in advanced topics of requirements engineering and formal language design.
Through analysis of in-depth interviews with seventy-three Hispanic immigrants in Central Virginia, this book offers a rare in-depth look at the views and circumstances of immigrants in a new receiving area. It provides an examination of the new migration trend including an analysis of immigrants' living and working conditions, their family life, and their plans for the future.
Open Source Data Warehousing and Business Intelligence is an all-in-one reference for developing open source based data warehousing (DW) and business intelligence (BI) solutions that are business-centric, cross-customer viable, cross-functional, cross-technology based, and enterprise-wide. Considering the entire lifecycle of an open source DW & BI implementation, its comprehensive coverage spans from basic concepts all the way through to customization. Highlighting the key differences between open source and vendor DW and BI technologies, the book identifies end-to-end solutions that are scalable, high performance, and stable. It illustrates the practical aspects of implementing and using open source DW and BI technologies to supply you with valuable on-the-project experience that can help you improve implementation and productivity. Emphasizing analysis, design, and programming, the text explains best-fit solutions as well as how to maximize ROI. Coverage includes data warehouse design, real-time processing, data integration, presentation services, and real-time reporting. With a focus on real-world applications, the author devotes an entire section to powerful implementation best practices that can help you build customer confidence while saving valuable time, effort, and resources.
Security for Software Engineers is designed to introduce security concepts to undergraduate software engineering students. The book is divided into four units, each targeting activities that a software engineer will likely be involved in within industry. The book explores the key areas of attack vectors, code hardening, privacy, and social engineering. Each topic is explored from a theoretical and a practical-application standpoint. Features: Targets software engineering students - one of the only security texts to target this audience. Focuses on the white-hat side of the security equation rather than the black-hat side. Includes many practical and real-world examples that easily translate into the workplace. Covers a one-semester undergraduate course. Describes all aspects of computer security as it pertains to the job of a software engineer and presents problems similar to that which an engineer will encounter in the industry. This text will equip students to make knowledgeable security decisions, be productive members of a security review team, and write code that protects a user's information assets.
The 7 Qualities of Highly Secure Software provides a framework for designing, developing, and deploying hacker-resilient software. It uses engaging anecdotes and analogies-ranging from Aesop's fables, athletics, architecture, biology, nursery rhymes, and video games-to illustrate the qualities that are essential for the development of highly secure software. Each chapter details one of the seven qualities that can make your software highly secure and less susceptible to hacker threats. Leveraging real-world experiences and examples, the book: Explains complex security concepts in language that is easy to understand for professionals involved in management, software development, and operations Specifies the qualities and skills that are essential for building secure software Highlights the parallels between the habits of effective people and qualities in terms of software security Praise for the Book: This will be required reading for my executives, security team, software architects and lead developers.-David W. Stender, CISSP, CSSLP, CAP, CISO of the US Internal Revenue Service Developing highly secure software should be at the forefront of organizational strategy and this book provides a framework to do so.-Troy Leach, CTO, PCI Security Standards Council This book will teach you the core, critical skills needed to raise the security bar on the attackers and swing the game in your favor.-Michael Howard, Principal Cyber Security Program Manager, Microsoft As a penetration tester, my job will be a lot harder as people read this book! -Kevin Johnson, Security Consultant, Secure Ideas
Large-Scale Simulation: Models, Algorithms, and Applications gives you firsthand insight on the latest advances in large-scale simulation techniques. Most of the research results are drawn from the authors papers in top-tier, peer-reviewed, scientific conference proceedings and journals. The first part of the book presents the fundamentals of large-scale simulation, including high-level architecture and runtime infrastructure. The second part covers middleware and software architecture for large-scale simulations, such as decoupled federate architecture, fault tolerant mechanisms, grid-enabled simulation, and federation communities. In the third part, the authors explore mechanisms such as simulation cloning methods and algorithms that support quick evaluation of alternative scenarios. The final part describes how distributed computing technologies and many-core architecture are used to study social phenomena. Reflecting the latest research in the field, this book guides you in using and further researching advanced models and algorithms for large-scale distributed simulation. These simulation tools will help you gain insight into large-scale systems across many disciplines. |
You may like...
Research Anthology on Architectures…
Information R Management Association
Hardcover
R13,368
Discovery Miles 133 680
|