![]() |
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 real-world decision support systems, i.e., systems that have been running for some time and as such have been tested in real environments and complex situations; the cases are from various application domains and highlight the best practices in each stage of the system's life cycle, from the initial requirements analysis and design phases to the final stages of the project. Each chapter provides decision-makers with recommendations and insights into lessons learned so that failures can be avoided and successes repeated. For this reason unsuccessful cases, which at some point of their life cycle were deemed as failures for one reason or another, are also included. All decision support systems are presented in a constructive, coherent and deductive manner to enhance the learning effect. It complements the many works that focus on theoretical aspects or individual module design and development by offering 'good' and 'bad' practices when developing and using decision support systems. Combining high-quality research with real-world implementations, it is of interest to researchers and professionals in industry alike.
To achieve consistent software project success under the pressures of today's software development environment, software organizations require achievable plans including viable estimates of schedule, resources, and risks. To estimate realistically, you must understand how to apply sound estimation processes, tools, and data. Software Sizing, Estimation, and Risk Management: When Performance is Measured Performance Improves is a practical, hands-on discussion of the software estimation, planning, and control process. This includes critical factors that impact estimates, methods for selecting and applying appropriate measures to projects, proper software sizing, and processes to identify and manage risk. The authors use their expertise in sizing, estimation, process engineering, and risk management to clearly demonstrate problems that make many estimates crumble and solutions that provide successful project plans. The book offers insight not available anywhere else, enabling you to recognize and avoid downstream impacts resulting from poor estimates.
This book presents a comprehensive survey of the Vesta system for software configuration management (SCM). Vesta, unlike other SCM systems, is specifically designed to handle very large software projects comprising tens of millions of lines of code and beyond. Researchers in the field of software engineering and specialists in the construction of software development tools will especially benefit from this work, but it will also appeal to those responsible for designing and deploying configuration management solutions for large software systems. Three important but hard-to-achieve properties lie at the heart of Vesta's unique approach to software configuration management: Every build is repeatable Every build is incremental Every build is consistent To realize these properties in a practical SCM system, Vesta provides a novel repository to store the versions of the files that make up an evolving software system and a flexible language for writing modular configuration descriptions that define how the system is put together. This book explains in depth these facilities and the suite of tools that supports them, together with a methodology for applying them in practice. Readers who seek more information about Vesta may download the entire system as well as other publications, reference documents, and user documentation from the Vesta home page at http: //www.vestasys.org.
Updated to cover UML 2.0, this student textbook provides a practical understanding of software design and development using UML. Case studies are used to illustrate good practice.
How to Write Code You're Proud of . . . Every Single Day ". . . [A] timely and humble reminder of the ever-increasing complexity of our programmatic world and how we owe it to the legacy of humankind--and to ourselves--to practice ethical development. Take your time reading Clean Craftsmanship. . . . Keep this book on your go-to bookshelf. Let this book be your old friend--your Uncle Bob, your guide--as you make your way through this world with curiosity and courage." --From the Foreword by Stacia Heimgartner Viscardi, CST & Agile Mentor In Clean Craftsmanship, the legendary Robert C. Martin ("Uncle Bob") has written the principles that define the profession--and the craft--of software development. Uncle Bob brings together the disciplines, standards, and ethics you need to deliver robust, effective code and to be proud of all the software you write. Robert Martin, the best-selling author of Clean Code, provides a pragmatic, technical, and prescriptive guide to the foundational disciplines of software craftsmanship. He discusses standards, showing how the world's expectations of developers often differ from their own and helping you bring the two in sync. Bob concludes with the ethics of the programming profession, describing the fundamental promises all developers should make to their colleagues, their users, and, above all, themselves. With Uncle Bob's insights, all programmers and their managers can consistently deliver code that builds trust instead of undermining it--trust among users and throughout societies that depend on software for their survival. Moving towards the "north star" of true software craftsmanship: the state of knowing how to program well Practical, specific guidance for applying five core disciplines: test-driven development, refactoring, simple design, collaborative programming, and acceptance tests How developers and teams can promote productivity, quality, and courage The true meaning of integrity and teamwork among programmers, and ten specific commitments every software professional should make Register your book for convenient access to the book's companion videos, updates, and/or corrections as they become available. See inside book for details.
A wide range of modern computer applications require the performance and flexibility of parallel and distributed systems. Better software support is required if the technical advances in these systems are to be fully exploited by commerce and industry. This involves the provision of specialised techniques and tools as well as the integration of standard software engineering methods. This book will reflect current advances in this area, and will address issues of theory and practice with contributions from academia and industry. It is the aim of the book to provide a focus for information on this developing which will be of use to both researchers and practitioners.
Software engineering research can trace its roots to a few highly influential individuals. Among that select group is Leon J. Osterweil, who has been a major force in driving software engineering from its infancy to its modern reality. For more than three decades, Prof. Osterweil's work has fundamentally defined or significantly impacted major directions in software analysis, development tools and environments, and software process--all critical parts of software engineering as it is practiced today. His exceptional contributions to the field have been recognized with numerous awards and honors through his career, including the ACM SIGSOFT Outstanding Research Award, in recognition of his extensive and sustained research impact, and the ACM SIGSOFT Influential Educator Award, in recognition of his career-long achievements as an educator and mentor. In honor of Prof. Osterweil's profound accomplishments, this book was prepared for a special honorary event held during the 2011 International Conference on Software Engineering (ICSE). It contains some of his most important published works to date, together with several new articles written by leading authorities in the field, exploring the broad impact of his work in the past and how it will further impact software engineering research in the future. These papers, part of the core software engineering legacy and now available in one commented volume for the first time, are grouped into three sections: flow analysis for software dependability, the software lifecycle, and software process.
Software testing is rapidly evolving as a critical sub-discipline of software engineering. The industry needs professionals educated in the modern methods and tools of software testing and quality assurance. Based on the needs of software professionals, "Practical Software Testing" takes a unique approach to teaching readers how to effectively plan for testing, design test cases, test at multiple levels, organize a testing team, and optimize use of testing tools. It introduces testing concepts that are managerial-, technical-, and process-oriented, using the Testing Maturity Model (TMM) as a framework. Features: *includes a sample test plan, comprehensive exercises, and definitions for software testing and quality *introduces both technical and managerial aspects of testing in a clear and precise style, for integrated learning *balanced perspective and comprehensive view of all testing aspects *uses the TMM framework to introduce testing in a systematic, evolutionary way, and describes industrial TMM applications *covers testing topics with either procedurally based or object-oriented programming code With its accessible, practical, and well-focused framework, this new resource provides an integrated presentation of software-testing processes and practices. Professionals and practitioners in software testing, software quality assurance, or software validation and verification will benefit greatly from using this essential resource.
Voice recognition is here at last. Alexa and other voice assistants have now become widespread and mainstream. Is your app ready for voice interaction? Learn how to develop your own voice applications for Amazon Alexa. Start with techniques for building conversational user interfaces and dialog management. Integrate with existing applications and visual interfaces to complement voice-first applications. The future of human-computer interaction is voice, and we'll help you get ready for it. For decades, voice-enabled computers have only existed in the realm of science fiction. But now the Alexa Skills Kit (ASK) lets you develop your own voice-first applications. Leverage ASK to create engaging and natural user interfaces for your applications, enabling them to listen to users and talk back. You'll see how to use voice and sound as first-class components of user-interface design. We'll start with the essentials of building Alexa voice applications, called skills, including useful tools for creating, testing, and deploying your skills. From there, you can define parameters and dialogs that will prompt users for input in a natural, conversational style. Integrate your Alexa skills with Amazon services and other backend services to create a custom user experience. Discover how to tailor Alexa's voice and language to create more engaging responses and speak in the user's own language. Complement the voice-first experience with visual interfaces for users on screen-based devices. Add options for users to buy upgrades or other products from your application. Once all the pieces are in place, learn how to publish your Alexa skill for everyone to use. Create the future of user interfaces using the Alexa Skills Kit today. What You Need: You will need a computer capable of running the latest version of Node.js, a Git client, and internet access.
Building upon the success of best-sellers The Clean Coder and Clean Code, legendary software craftsman Robert C. "Uncle Bob" Martin shows how to bring greater professionalism and discipline to application architecture and design. As with his other books, Martin's Clean Architecture doesn't merely present multiple choices and options, and say "use your best judgment": it tells you what choices to make, and why those choices are critical to your success. Martin offers direct, no-nonsense answers to key architecture and design questions like: What are the best high level structures for different kinds of applications, including web, database, thick-client, console, and embedded apps? What are the core principles of software architecture? What is the role of the architect, and what is he/she really trying to achieve? What are the core principles of software design? How do designs and architectures go wrong, and what can you do about it? What are the disciplines and practices of professional architects and designers? Clean Architecture is essential reading for every software architect, systems analyst, system designer, and software manager -- and for any programmer who aspires to these roles or is impacted by their work.
The use of cyber-physical systems in recent computing, communication, and control methods to design and operate intelligent and autonomous systems using cutting-edge technologies has led to many advances. By studying emerging trends in these systems, programming techniques can be optimized and strengthened to create a higher level of effectiveness. Cyber-Physical Systems for Next-Generation Networks provides emerging research on using cyber-physical systems (CPS) as a method to control design and operation of intelligent systems through next-generation networks. While highlighting issues such as increasing CPS complexity due to components within physical and industrial systems, this publication explores information on real-time sensing, reasoning, and adaptation for cyber-physical systems while gaining an understanding of evolutionary computing for it. This book is a valuable resource for engineers, academicians, researchers, and graduate-level students seeking current research on CPS in cutting-edge technologies.
On behalf of the Organizing Committee for this event, we are glad to welcome you to IWASE 2006, the First International Workshop on Advanced Software Engineering. We hope you will enjoy the traditional Chilean hospitality and, of course, please tell us how we can make your visit a pleasant and useful experience. The goal of this Workshop is to create a new forum for researchers, professionals and educators to discuss advanced software engineering topics. A distinctive feature of this Workshop is its attempt to foster interactions between the Latin-American software engineering community and computer scientists around the world. This is an opportunity to discuss with other researchers or simply to meet new colleagues. IWASE 2006 has been organized to facilitate strong interactions among those attending it and to offer ample time for discussing each paper. IWASE 2006 attracted 28 submissions from 14 countries, 8 of them outside Latin-America. Each of the 28 articles was reviewed by at least three members of the Program Committee. As a result of this rigorous reviewing process, 13 papers were accepted: nine fiill papers and four work-in-progress papers. These papers were grouped in four tracks; software architecture, software modeling, software development process and experiences in software development.
Soft computing is playing an increasing role in the study of complex systems in science and engineering. There is a large spectrum of successful applications of soft computing in very different applications domains such as aerospace, communication, consumer appliances, electric power systems, process engineering, transportation, and manufacturing automation and robotics. It has taken a while to bring the early ideas of soft computing to an area and a discipline that seems to be more than appropriate for that. Here it is! This book studies SOFT computing in SOFTware engineering environment. The book is HARD in terms of its results. It covers a range of core topics from software engineering that are soft from its very nature: selection of components, software design, software reuse, software cost estimation and software processes. Soft computing differs from conventional (hard) computing in its ability to be tolerant of imprecision, uncertainty, partial truth, and approximation. The guiding principle of soft computing is: Exploit the tolerance for imprecision, uncertainty, partial truth, and approximation to achieve tractability, robustness and low solution cost. The role model for soft computing is the human mind. This seems to be a natural fit with software engineering, a human-based development activity based on sound engineering principles. A recent survey by researchers reveals that "Software Engineering research tends to be quite self-contained, not relying on other disciplines for its thinking".
This updated and reorganized Fifth edition of Software Testing: A Craftsman's Approach continues to be a valuable reference for software testers, developers, and engineers, by applying the strong mathematics content of previous editions to a coherent treatment of software testing. Responding to instructor and student survey input, the authors have streamlined chapters and examples. The Fifth Edition: Has a new chapter on feature interaction testing that explores the feature interaction problem and explains how to reduce tests Uses Java instead of pseudo-code for all examples including structured and object-oriented ones Presents model-based development and provides an explanation of how to conduct testing within model-based development environments Explains testing in waterfall, iterative, and agile software development projects Explores test-driven development, reexamines all-pairs testing, and explains the four contexts of software testing Thoroughly revised and updated, Software Testing: A Craftsman's Approach, Fifth Edition is sure to become a standard reference for those who need to stay up to date with evolving technologies in software testing.
Software engineering has advanced rapidly in recent years in parallel with the complexity and scale of software systems. New requirements in software systems yield innovative approaches that are developed either through introducing new paradigms or extending the capabilities of well-established approaches. Modern Software Engineering Concepts and Practices: Advanced Approaches provides emerging theoretical approaches and their practices. This book includes case studies and real-world practices and presents a range of advanced approaches to reflect various perspectives in the discipline.
Requirements engineering is one of the most complex and at the same time most crucial aspects of software engineering. It typically involves different stakeholders with different backgrounds. Constant changes in both the problem and the solution domain make the work of the stakeholders extremely dynamic. New problems are discovered, additional information is needed, alternative solutions are proposed, several options are evaluated, and new hands-on experience is gained on a daily basis. The knowledge needed to define and implement requirements is immense, often interdisciplinary and constantly expanding. It typically includes engineering, management and collaboration information, as well as psychological aspects and best practices. This book discusses systematic means for managing requirements knowledge and its owners as valuable assets. It focuses on potentials and benefits of "lightweight," modern knowledge technologies such as semantic Wikis, machine learning, and recommender systems applied to requirements engineering. The 17 chapters are authored by some of the most renowned researchers in the field, distilling the discussions held over the last five years at the MARK workshop series. They present novel ideas, emerging methodologies, frameworks, tools and key industrial experience in capturing, representing, sharing, and reusing knowledge in requirements engineering. While the book primarily addresses researchers and graduate students, practitioners will also benefit from the reports and approaches presented in this comprehensive work.
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 book presents the main theoretical foundations behind smart services as well as specific guidelines and practically proven methods on how to design them. Furthermore, it gives an overview of the possible implementation architectures and shows how the designed smart services can be realized with specific technologies. Finally, it provides four specific use cases that show how smart services have been realized in practice and what impact they have within the businesses. The first part of the book defines the basic concepts and aims to establish a shared understanding of terms, such as smart services, service systems, smart service systems or cyber-physical systems. On this basis, it provides an analysis of existing work and includes insights on how an organization incorporating smart services could enhance and adjust their management and business processes. The second part on the design of smart services elaborates on what constitutes a successful smart service and describes experiences in the area of interdisciplinary teams, strategic partnerships, the overall service systems and the common data basis. In the third part, technical reference architectures are presented in detail, encompassing topics on the design of digital twins in cyber physical systems, the communication between entities and sensors in the age of Industry 4.0 as well as data management and integration. The fourth part then highlights a number of analytical possibilities that can be realized and that can constitute or be part of smart services, including machine learning and artificial intelligence methods. Finally, the applicability of the introduced design and development method is demonstrated by considering specific real-world use cases. These include services in the industrial and mobility sector, which were developed in direct cooperation with industry partners. The main target audience of this book is industry-focused readers, especially practitioners from industry, who are involved in supporting and managing digital business. These include professionals working in business development, product management, strategy, and development, ranging from middle management to Chief Digital Officers. It conveys all the basics needed for developing smart services and successfully placing them on the market by explaining technical aspects as well as showcasing practical use cases.
This book fills the critical need for an in-depth technical reference providing the methods and techniques for building and maintaining confidence in many varities of system software. The intent is to help develop reliable answers to such critical questions as: 1) Are we building the right software for the need? and 2) Are we building the software right? Software Verification and Validation: An Engineering and Scientific Approach is structured for research scientists and practitioners in industry. The book is also suitable as a secondary textbook for advanced-level students in computer science and engineering.
This is a how-to book for solving geometric problems robustly or error free in actual practice. The contents and accompanying source code are based on the feature requests and feedback received from industry professionals and academics who want both the descriptions and source code for implementations of geometric algorithms. The book provides a framework for geometric computing using several arithmetic systems and describes how to select the appropriate system for the problem at hand. Key Features: A framework of arithmetic systems that can be applied to many geometric algorithms to obtain robust or error-free implementations Detailed derivations for algorithms that lead to implementable code Teaching the readers how to use the book concepts in deriving algorithms in their fields of application The Geometric Tools Library, a repository of well-tested code at the Geometric Tools website, https://www.geometrictools.com, that implements the book concepts
Poor performance is one of the main quality-related shortcomings that cause software projects to fail. Thus, the need to address performance concerns early during the software development process is fully acknowledged, and there is a growing interest in the research and software industry communities towards techniques, methods and tools that permit to manage system performance concerns as an integral part of software engineering. Model-based software performance analysis introduces performance concerns in the scope of software modeling, thus allowing the developer to carry on performance analysis throughout the software lifecycle. With this book, Cortellessa, Di Marco and Inverardi provide the cross-knowledge that allows developers to tackle software performance issues from the very early phases of software development. They explain the basic concepts of performance analysis and describe the most representative methodologies used to annotate and transform software models into performance models. To this end, they go all the way from performance primers through software and performance modeling notations to the latest transformation-based methodologies. As a result, their book is a self-contained reference text on software performance engineering, from which different target groups will benefit: professional software engineers and graduate students in software engineering will learn both basic concepts of performance modeling and new methodologies; while performance specialists will find out how to investigate software performance model building.
Diffusing Software Product and Process Innovations addresses the problems and issues surrounding successful diffusion of innovations in software. Everett Rogers' classic text, Diffusion of Innovations, provides a valuable framework for evaluating and applying technology transfer methods. In today's new economy, the most important innovations may well be new software products and processes. Topics covered in this valuable new book include: Implementation and coordination issues; New interpretations of diffusion theory; Diffusion of software processes; Contextual factors; Communication of information; Experience reports. This volume contains the edited proceedings of the Fourth Working Conference on Diffusing Software Product and Process Innovations, which was sponsored by the International Federation for Information Processing (IFIP) Working Group 8.6, and held in Banff, Canada in April 2001. It reflects the latest experiences of practitioners and theories of academics in this fast-changing field. |
You may like...
How to Cheat at Deploying and Securing…
Frank Thornton, Paul Sanghera
Paperback
R1,061
Discovery Miles 10 610
101 Ready To Use Microsoft Excel Macros
John Michaloudis, Bryan Hong
Hardcover
R936
Discovery Miles 9 360
Volunteered Geographic Information and…
Claudio Elizio Calazans Campelo, Michela Bertolotto, …
Hardcover
R5,194
Discovery Miles 51 940
Recent Results on Time-Delay Systems…
Emmanuel Witrant, Emilia Fridman, …
Hardcover
Vehicular ad hoc Networks - Standards…
Claudia Campolo, Antonella Molinaro, …
Hardcover
R4,834
Discovery Miles 48 340
Emerging Applications of Natural…
Sivaji Bandyopadhyay, Sudip Kumar Naskar, …
Hardcover
R4,956
Discovery Miles 49 560
|