![]() |
![]() |
Your cart is empty |
||
Books > Computing & IT > Computer programming > Software engineering
This work provides a comprehensive overview of research and practical issues relating to component-based development information systems (CBIS). Spanning the organizational, developmental, and technical aspects of the subject, the original research included here provides fresh insights into successful CBIS technology and application. Part I covers component-based development methodologies and system architectures. Part II analyzes different aspects of managing component-based development. Part III investigates component-based development versus commercial off-the-shelf products (COTS), including the selection and trading of COTS products.
Software Quality Assurance: Integrating Testing, Security, and Audit focuses on the importance of software quality and security. It defines various types of testing, recognizes factors that propose value to software quality, and provides theoretical and real-world scenarios that offer value and contribute quality to projects and applications. The practical synopsis on common testing tools helps readers who are in testing jobs or those interested in pursuing careers as testers. It also helps test leaders, test managers, and others who are involved in planning, estimating, executing, and maintaining software. The book is divided into four sections: The first section addresses the basic concepts of software quality, validation and verification, and audits. It covers the major areas of software management, software life cycle, and life cycle processes. The second section is about testing. It discusses test plans and strategy and introduces a step-by-step test design process along with a sample test case. It also examines what a tester or test lead needs to do before and during test execution and how to report after completing the test execution. The third section deals with security breaches and defects that may occur. It discusses documentation and classification of incidences as well as how to handle an occurrence. The fourth and final section provides examples of security issues along with a security policy document and addresses the planning aspects of an information audit. This section also discusses the definition, measurement, and metrics of reliability based on standards and quality metrics methodology CMM models. It discusses the ISO 15504 standard, CMMs, PSP, and TSP and includes an appendix containing a software process improvement sample document.
The Cloud in IoT-enabled Spaces addresses major issues and challenges in IoT-based solutions proposed for the Cloud. It paves the way for IoT-enabled spaces in the next generation cloud computing paradigm and opens the door for further innovative ideas. Topics include Cloud-based optimization in the IoT era, scheduling and routing, medium access, data caching, secure access, uncertainty, home automation, machine learning in wearable devices, energy monitoring, and plant phenotyping in farming. Smart spaces are solutions where Internet of Things (IoT)-enabling technologies have been employed towards further advances in the lifestyle. It tightly integrates with the existing Cloud infrastructure to impact several fields in academia and industry. The Cloud in IoT-enabled Spaces provides an overview of the issues around small spaces and proposes the most up-to-date alternatives and solutions. The objective is to pave the way for IoT-enabled spaces in the next-generation Cloud computing and open the door for further innovative ideas.
The reliability of software is becoming increasingly important to a large range of industries that rely on complex computer systems and machinery with computer control. The reliability of a system depends on both the hardware and the software that comprise the system. Although faults in design can continue to give problems, the issues and the techniques for meeting severe reliability requirements in hardware have been understood for some time. In the case of software both the techniques and a positive attitude of software developers to the achievement of reliability are much less well established. They are particularly crucial in the development of software dependent safety-critical systems. There are genuine differences between software and hardware: software has no physical existence; software includes data as well as logic; few software quality metrics exist; it is deceptively easy to introduce changes into software; effects of software changes propagate explosively; software developments have traditionally made very little use of pre-existing components; software may have much higher complexity than hardware (to the extent of attempting to implement functionality of a complicity that would be unacceptable for hardware). However, in many ways software development is like hardware development and can be managed and controlled using very similar techniques to those used in any other engineering discipline. The differences listed above are the very factors which make a genuine engineering approach essential for the successful development of reliable software. Improvements in the technology of software development have reached the point where the major issues have been identified and considerable progress has been made in addressing them. Methods for technical software development are well defined and practical working tools to support improved software production are commonly available. Experience shows that application of the right methods can bring significant improvements in quality and productivity, and this handbook brings together the various aspects of software development into an integrated coverage of the subject of developing reliable software. This handbook represents a unique reference work which provides: complete and comprehensive subject matter - based on real experience rather than hypothesis; straightforward reading - a reference point for technical staff, managers and customers; extensive references - for experts who require more in-depth subject coverage; appendices - containing technical material supporting the subject of software reliability. The Software Reliability Handbook provides an essential contribution to the successful production of reliable software systems. Sponsored by the Alvey Directorate, this book will be an essential tool for those involved with the increasing reliance placed on computer software in control systems of aircraft, power stations and vehicles, especially where life is at risk.
In many of nowadays web-based environments for electronic marketing and commerce, that present large multimedia product and service catalogues, it becomes more and more difficult to provide naive end users, such as private consumers or commercial business partners, with intuitive user interfaces to access the large multimedia collections describing the presented products and services. The same holds for marketing managers and other employees responsible for managing and maintaining the large and constantly changing set of multimedia information chunks and fragments contained in these collections. As a consequence, many efforts are devoted to improve the quality of the interaction between users and databases. Virtual Reality (VR) techniques are a promising interaction paradigm particularly suited to novice and/or occasional users. The users are facilitated in the database navigation since the system proposes them an environment that reproduces a real situation and gives the possibility of interacting by manipulating objects that have a direct correspondence with known objects.
Program management in a technical environment is as much art as it is science. Effective program managers are able to combine management and leadership skills for the good of the program and the people entrusted to them. This book illuminates the entire life cycle of the program-from the customer's original concept to successful completion. It includes many helpful ideas and insights into why programs and program managers can fail. Much more importantly, it provides insights about how program managers can succeed. Program Management in Defense and High Tech Environments is organized as a chronological "tale" of a program life cycle, with "side trips" that cover the important concepts of leadership, claims and claims avoidance, earned value measurement (EVM), communication basics, negotiations, and coaching. The book begins with an overview of program management, discussing the role of program managers, their required skills and experience, and the types of programs and contracts. The remainder of the book provides more detail on the program manager's role and the environment in which he or she works. Understanding that academic explanations of program management activities can be dry, the author uses true-to-life stories to present the nuts and bolts of the work. These stories illustrate the science of program management and the art that is necessary for success. The book discusses many of the common program pitfalls. It explains how to detect and avoid scope creep-the unintended expansion of program scope. It details both internal and external scope creep and stresses the importance of constant vigilance to prevent cost overruns and schedule delays. Program Management in Defense and High Tech Environments is a comprehensive guide for early- and mid-career program managers to understand what they need to do to be successful. It is also a valuable resource for later-career program managers who want to learn through other program managers' successes and failures.
In the decade since the idea of adapting the evidence-based paradigm for software engineering was first proposed, it has become a major tool of empirical software engineering. Evidence-Based Software Engineering and Systematic Reviews provides a clear introduction to the use of an evidence-based model for software engineering research and practice. The book explains the roles of primary studies (experiments, surveys, case studies) as elements of an over-arching evidence model, rather than as disjointed elements in the empirical spectrum. Supplying readers with a clear understanding of empirical software engineering best practices, it provides up-to-date guidance on how to conduct secondary studies in software engineering-replacing the existing 2004 and 2007 technical reports. The book is divided into three parts. The first part discusses the nature of evidence and the evidence-based practices centered on a systematic review, both in general and as applying to software engineering. The second part examines the different elements that provide inputs to a systematic review (usually considered as forming a secondary study), especially the main forms of primary empirical study currently used in software engineering. The final part provides practical guidance on how to conduct systematic reviews (the guidelines), drawing together accumulated experiences to guide researchers and students in planning and conducting their own studies. The book includes an extensive glossary and an appendix that provides a catalogue of reviews that may be useful for practice and teaching.
The book describes a fundamentally new approach to software dependability, considering a software system as an ever-changing system due to changes in service objectives, users' requirements, standards and regulations, and to advances in technology. Such a system is viewed as an Open System since its functions, structures, and boundaries are constantly changing. Thus, the approach to dependability is called Open Systems Dependability. The DEOS technology realizes Open Systems Dependability. It puts more emphasis on stakeholders' agreement and accountability achievement for business/service continuity than in elemental technologies.
Empirical research has now become an essential component of software engineering yet software practitioners and researchers often lack an understanding of how the empirical procedures and practices are applied in the field. Empirical Research in Software Engineering: Concepts, Analysis, and Applications shows how to implement empirical research processes, procedures, and practices in software engineering. Written by a leading researcher in empirical software engineering, the book describes the necessary steps to perform replicated and empirical research. It explains how to plan and design experiments, conduct systematic reviews and case studies, and analyze the results produced by the empirical studies. The book balances empirical research concepts with exercises, examples, and real-life case studies, making it suitable for a course on empirical software engineering. The author discusses the process of developing predictive models, such as defect prediction and change prediction, on data collected from source code repositories. She also covers the application of machine learning techniques in empirical software engineering, includes guidelines for publishing and reporting results, and presents popular software tools for carrying out empirical studies.
In his latest work, author Paul C Jorgensen takes his well-honed craftsman's approach to mastering model-based testing (MBT). To be expert at MBT, a software tester has to understand it as a craft rather than an art. This means a tester should have deep knowledge of the underlying subject and be well practiced in carrying out modeling and testing techniques. Judgment is needed, as well as an understanding of MBT the tools. The first part of the book helps testers in developing that judgment. It starts with an overview of MBT and follows with an in-depth treatment of nine different testing models with a chapter dedicated to each model. These chapters are tied together by a pair of examples: a simple insurance premium calculation and an event-driven system that describes a garage door controller. The book shows how simpler models-flowcharts, decision tables, and UML Activity charts-express the important aspects of the insurance premium problem. It also shows how transition-based models-finite state machines, Petri nets, and statecharts-are necessary for the garage door controller but are overkill for the insurance premium problem. Each chapter describes the extent to which a model can support MBT. The second part of the book gives testers a greater understanding of MBT tools. It examines six commercial MBT products, presents the salient features of each product, and demonstrates using the product on the insurance premium and the garage door controller problems. These chapters each conclude with advice on implementing MBT in an organization. The last chapter describes six Open Source tools to round out a tester's knowledge of MBT. In addition, the book supports the International Software Testing Qualifications Board's (ISTQB (R)) MBT syllabus for certification.
"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.
The Art and Science of Analyzing Software Data provides valuable information on analysis techniques often used to derive insight from software data. This book shares best practices in the field generated by leading data scientists, collected from their experience training software engineering students and practitioners to master data science. The book covers topics such as the analysis of security data, code reviews, app stores, log files, and user telemetry, among others. It covers a wide variety of techniques such as co-change analysis, text analysis, topic analysis, and concept analysis, as well as advanced topics such as release planning and generation of source code comments. It includes stories from the trenches from expert data scientists illustrating how to apply data analysis in industry and open source, present results to stakeholders, and drive decisions.
First Published in 2005. Routledge is an imprint of Taylor & Francis, an informa company.
Domain analysis is the process of studying the actions, knowledge production, knowledge dissemination, and knowledge-base of a community of commonality, such as an academic discipline or a professional community. The products of domain analysis range from controlled vocabularies and other knowledge organization systems, to scientific evidence about the growth and sharing of knowledge and the evolution of communities of discourse and practice.In the field of knowledge organization- both the science and the practice domain analysis is the basic research method for identifying the concepts that will be critical building blocks for knowledge organization systems. This book will survey the theoretical rationale for domain analysis, present tutorials in the specific methods of domain analysis, especially with regard to tools for visualizing knowledge domains.
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.
Data Science for Software Engineering: Sharing Data and Models presents guidance and procedures for reusing data and models between projects to produce results that are useful and relevant. Starting with a background section of practical lessons and warnings for beginner data scientists for software engineering, this edited volume proceeds to identify critical questions of contemporary software engineering related to data and models. Learn how to adapt data from other organizations to local problems, mine privatized data, prune spurious information, simplify complex results, how to update models for new platforms, and more. Chapters share largely applicable experimental results discussed with the blend of practitioner focused domain expertise, with commentary that highlights the methods that are most useful, and applicable to the widest range of projects. Each chapter is written by a prominent expert and offers a state-of-the-art solution to an identified problem facing data scientists in software engineering. Throughout, the editors share best practices collected from their experience training software engineering students and practitioners to master data science, and highlight the methods that are most useful, and applicable to the widest range of projects.
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.
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.
"For software developers of all experience levels looking to improve their results, and design and implement domain-driven enterprise applications consistently with the best current state of professional practice, Implementing Domain-Driven Design will impart a treasure trove of knowledge hard won within the DDD and enterprise application architecture communities over the last couple decades." -Randy Stafford, Architect At-Large, Oracle Coherence Product Development "This book is a must-read for anybody looking to put DDD into practice." -Udi Dahan, Founder of NServiceBus Implementing Domain-Driven Design presents a top-down approach to understanding domain-driven design (DDD) in a way that fluently connects strategic patterns to fundamental tactical programming tools. Vaughn Vernon couples guided approaches to implementation with modern architectures, highlighting the importance and value of focusing on the business domain while balancing technical considerations. Building on Eric Evans' seminal book, Domain-Driven Design, the author presents practical DDD techniques through examples from familiar domains. Each principle is backed up by realistic Java examples-all applicable to C# developers-and all content is tied together by a single case study: the delivery of a large-scale Scrum-based SaaS system for a multitenant environment. The author takes you far beyond "DDD-lite" approaches that embrace DDD solely as a technical toolset, and shows you how to fully leverage DDD's "strategic design patterns" using Bounded Context, Context Maps, and the Ubiquitous Language. Using these techniques and examples, you can reduce time to market and improve quality, as you build software that is more flexible, more scalable, and more tightly aligned to business goals. Coverage includes Getting started the right way with DDD, so you can rapidly gain value from it Using DDD within diverse architectures, including Hexagonal, SOA, REST, CQRS, Event-Driven, and Fabric/Grid-Based Appropriately designing and applying Entities-and learning when to use Value Objects instead Mastering DDD's powerful new Domain Events technique Designing Repositories for ORM, NoSQL, and other databases
Practical models and fundamental aspects of reuse-based software engineering This volume provides an overview of the current state and the future of reuse-based software engineering and discusses the vital technical, managerial, and organizational aspects of reuse in one treatment. It also shows how these fundamental aspects can be used in the development life cycle of component-based software and product line engineering. The authors present the basic foundations upon which reuse processes and approaches can be established and integrate theoretical concepts with applied practice. They also discuss the development of an effective large-scale discipline utilizing:
Reuse-Based Software Engineering offers in-depth discussion of these fundamental issues and total coverage of the state of the art. The inclusion of review questions and exercises makes it an excellent tutorial for both academics and professionals.
Mobile Applications Development with Android: Technologies and Algorithms presents advanced techniques for mobile app development, and addresses recent developments in mobile technologies and wireless networks. The book covers advanced algorithms, embedded systems, novel mobile app architecture, and mobile cloud computing paradigms. Divided into three sections, the book explores three major dimensions in the current mobile app development domain. The first section describes mobile app design and development skills, including a quick start on using Java to run an Android application on a real phone. It also introduces 2D graphics and UI design, as well as multimedia in Android mobile apps. The second part of the book delves into advanced mobile app optimization, including an overview of mobile embedded systems and architecture. Data storage in Android, mobile optimization by dynamic programming, and mobile optimization by loop scheduling are also covered. The last section of the book looks at emerging technologies, including mobile cloud computing, advanced techniques using Big Data, and mobile Big Data storage. About the Authors Meikang Qiu is an Associate Professor of Computer Science at Pace University, and an adjunct professor at Columbia University. He is an IEEE/ACM Senior Member, as well as Chair of the IEEE STC (Special Technical Community) on Smart Computing. He is an Associate Editor of a dozen of journals including IEEE Transactions on Computers and IEEE Transactions on Cloud Computing. He has published 320+ peer-reviewed journal/conference papers and won 10+ Best Paper Awards. Wenyun Dai is pursuing his PhD at Pace University. His research interests include high performance computing, mobile data privacy, resource management optimization, cloud computing, and mobile networking. His paper about mobile app privacy has been published in IEEE Transactions on Computers. Keke Gai is pursuing his PhD at Pace University. He has published over 60 peer-reviewed journal or conference papers, and has received three IEEE Best Paper Awards. His research interests include cloud computing, cyber security, combinatorial optimization, business process modeling, enterprise architecture, and Internet computing. .
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.
- the book provides a unique overview of the NCBI resources, including BLAST (which are foundational to bioinformatics), and how to use them, making it a great introduction to bioinformatics and a great resource for those just starting in an industry lab - whereas many bioinformatics books try to cover every aspect of the topic and easily confuse readers, this is highly practical and focuses on key resources and tools, and how to use them - the companion website contains tutorials, R and Python codes, instructor materials including slides, exercises, and problems for students
Hands-on guidance to creating great test-driven development practice Test-driven development (TDD) practice helps developers recognize a well-designed application, and encourages writing a test before writing the functionality that needs to be implemented. This hands-on guide provides invaluable insight for creating successful test-driven development processes. With source code and examples featured in both C# and .NET, the book walks you through the TDD methodology and shows how it is applied to a real-world application. You'll witness the application built from scratch and details each step that is involved in the development, as well as any problems that were encountered and the solutions that were applied. * Clarifies the motivation behind test-driven development (TDD), what it is, and how it works * Reviews the various steps involved in developing an application and the testing that is involved prior to implementing the functionality * Discusses unit testing and refactoring Professional Test-Driven Development with C# shows you how to create great TDD processes right away.
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. |
![]() ![]() You may like...
Mathematical Modelling for…
Tsuyoshi Takagi, Masato Wakayama, …
Hardcover
R4,433
Discovery Miles 44 330
A Real-Time In-Memory Discovery Service…
Jurgen Muller
Hardcover
Computing with Data - An Introduction to…
Guy Lebanon, Mohamed El-Geish
Hardcover
R2,907
Discovery Miles 29 070
C++ How to Program: Horizon Edition
Harvey Deitel, Paul Deitel
Paperback
R1,917
Discovery Miles 19 170
Handbook of Research on Modeling…
Sujata Dash, B. K. Tripathy, …
Hardcover
R7,069
Discovery Miles 70 690
|