![]() |
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
Often referred to as the "black art" because of its complexity and uncertainty, software estimation is not as difficult or puzzling as people think. In fact, generating accurate estimates is straightforward--once you understand the art of creating them. In his highly anticipated book, acclaimed author Steve McConnell unravels the mystery to successful software estimation--distilling academic information and real-world experience into a practical guide for working software professionals. Instead of arcane treatises and rigid modeling techniques, this guide highlights a proven set of procedures, understandable formulas, and heuristics that individuals and development teams can apply to their projects to help achieve estimation proficiency. Discover how to: Estimate schedule and cost--or estimate the functionality that can be delivered within a given time frame Avoid common software estimation mistakes Learn estimation techniques for you, your team, and your organization * Estimate specific project activities--including development, management, and defect correction Apply estimation approaches to any type of project--small or large, agile or traditional Navigate the shark-infested political waters that surround project estimates When many corporate software projects are failing, McConnell shows you what works for successful software estimation.
A developer's knowledge of a computing system's requirements is necessarily imperfect because organizations change. Many requirements lie in the future and are unknowable at the time the system is designed and built. To avoid burdensome maintenance costs developers must therefore rely on a system's ability to change gracefully-its flexibility. Flexible Software Design: Systems Development for Changing Requirements demonstrates the design principles and techniques that enable the design of software that empowers business staff to make functional changes to their systems with little or no professional IT intervention. The book concentrates on the design aspects of system development, the area with the most flexibility leverage. Divided into four parts, the text begins by introducing the fundamental concepts of flexibility, explaining the reality of imperfect knowledge and how development participants must change their thinking to implement flexible software. The second part covers design guidelines, stable identifiers, stable information structures, the Generic Entity Cloud concept, and regulatory mechanisms that give business staff control over system modifications. Part three relates strategic information systems planning to flexible systems. It examines the elicitation of requirements and the relevance of agile methods in a flexible systems environment. It also discusses practical aspects of stable identifier design and compares the testing of traditional and flexible software. In part four, the book concludes with details of the flexible UniverSIS system and an explanation of the applications and extensions of the Generic Entity Cloud tools. The combination of smart design and smart work offered in Flexible Software Design can materially benefit your organization by radically reducing the systems maintenance burden.
This book gathers chapters from some of the top international empirical software engineering researchers focusing on the practical knowledge necessary for conducting, reporting and using empirical methods in software engineering. Topics and features include guidance on how to design, conduct and report empirical studies. The volume also provides information across a range of techniques, methods and qualitative and quantitative issues to help build a toolkit applicable to the diverse software development contexts
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.
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.
This book is an introduction to graph transformation as a foundation to model-based software engineering at the level of both individual systems and domain-specific modelling languages. The first part of the book presents the fundamentals in a precise, yet largely informal way. Besides serving as prerequisite for describing the applications in the second part, it also provides a comprehensive and systematic survey of the concepts, notations and techniques of graph transformation. The second part presents and discusses a range of applications to both model-based software engineering and domain-specific language engineering. The variety of these applications demonstrates how broadly graphs and graph transformations can be used to model, analyse and implement complex software systems and languages. This is the first textbook that explains the most commonly used concepts, notations, techniques and applications of graph transformation without focusing on one particular mathematical representation or implementation approach. Emphasising the research and engineering methodologies used, it will be a valuable resource for graduate students, practitioners and researchers in software engineering, foundations of programming and formal methods.
"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.
Information Systems Development: Reflections, Challenges and New Directions, is the collected proceedings of the 20th International Conference on Information Systems Development held in Edinburgh, Scotland, August 24 - 26, 2011. It follows in the tradition of previous conferences in the series in exploring the connections between industry, research and education. These proceedings represent ongoing reflections within the academic community on established information systems topics and emerging concepts, approaches and ideas. It is hoped that the papers herein contribute towards disseminating research and improving practice
* 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.
This book provides techniques for offshore center managers and head office managers to motivate and manage globally distributed teams, which are spread across the offshore center and the head office, and thereby achieve higher productivity. Readers learn how to integrate the offshore center with the head office to make the offshore team an extension of the head office. While integrating teams with the head office, offshore center managers can still retain independence and authority to meet team aspirations. The book provides insight into devising new organizational structures to balance the authority and responsibilities of offshore center and head office managers. Head office managers responsible for managing globally distributed projects learn how to achieve a higher success rate on their projects and be better rewarded for their efforts in offshoring. Head office managers also learn techniques to make more significant contributions in their expatriate assignments to the offshore center. This book guides both the offshore center managers and the head office managers to fully realize the potential of the offshore center, which can result in higher revenues and profitability.
Going where no book on software measurement and metrics has previously gone, this critique thoroughly examines a number of bad measurement practices, hazardous metrics, and huge gaps and omissions in the software literature that neglect important topics in measurement. The book covers the major gaps and omissions that need to be filled if data about software development is to be useful for comparisons or estimating future projects. Among the more serious gaps are leaks in reporting about software development efforts that, if not corrected, can distort data and make benchmarks almost useless and possibly even harmful. One of the most common leaks is that of unpaid overtime. Software is a very labor-intensive occupation, and many practitioners work very long hours. However, few companies actually record unpaid overtime. This means that software effort is underreported by around 15%, which is too large a value to ignore. Other sources of leaks include the work of part-time specialists who come and go as needed. There are dozens of these specialists, and their combined effort can top 45% of total software effort on large projects. The book helps software project managers and developers uncover errors in measurements so they can develop meaningful benchmarks to estimate software development efforts. It examines variations in a number of areas that include: Programming languages Development methodology Software reuse Functional and nonfunctional requirements Industry type Team size and experience Filled with tables and charts, this book is a starting point for making measurements that reflect current software development practices and realities to arrive at meaningful benchmarks to guide successful software projects.
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.
Software is one of the most important products in human history and is widely used by all industries and all countries. It is also one of the most expensive and labor-intensive products in human history. Software also has very poor quality that has caused many major disasters and wasted many millions of dollars. Software is also the target of frequent and increasingly serious cyber-attacks. Among the reasons for these software problems is a chronic lack of reliable quantified data. This reference provides quantified data from many countries and many industries based on about 26,000 projects developed using a variety of methodologies and team experience levels. The data has been gathered between 1970 and 2017, so interesting historical trends are available. Since current average software productivity and quality results are suboptimal, this book focuses on "best in class" results and shows not only quantified quality and productivity data from best-in-class organizations, but also the technology stacks used to achieve best-in-class results. The overall goal of this book is to encourage the adoption of best-in-class software metrics and best-in-class technology stacks. It does so by providing current data on average software schedules, effort, costs, and quality for several industries and countries. Because productivity and quality vary by technology and size, the book presents quantitative results for applications between 100 function points and 100,000 function points. It shows quality results using defect potential and DRE metrics because the number one cost driver for software is finding and fixing bugs. The book presents data on cost of quality for software projects and discusses technical debt, but that metric is not standardized. Finally, the book includes some data on three years of software maintenance and enhancements as well as some data on total cost of ownership.
In business, driving value is a key strategy and typically starts at the top of an organization. In today's digital age, driving software value is also an important, and often overlooked, key strategy. Executives, and the corporate board, need to expect the highest level of business value from the software the organization is developing, buying, and selling. In today's digital transformation marketplace, it is imperative that organizations start driving business value from software development initiatives. For many years, the cost of software development challenged organizations with questions such as: How do we allocate software development costs? Should these costs be considered an overhead expense? Are we getting the most value possible for our investment? A fundamental problem has been built into these questions - the focus on cost. In almost every other part of the organization, maximizing profit or, in the case of a not-for-profit, maximizing the funds available, provides a clear focus with metrics to determine success or failure. In theory, simply aligning software spending with the maximizing profit goals should be sufficient to avoid any questions about value for money. Unfortunately, this alignment hasn't turned out to be so simple, and the questions persist, particularly at the strategic or application portfolio level. In this book, Michael D.S. Harris describes how a software business value culture-one where all stakeholders, including technology and business-have a clear understanding of the goals and expected business value from software development. The book shows readers how they can transform software development from a cost or profit center to a business value center. Only a culture of software as a value center enables an organization to constantly maximize business value flow through software development. If your organization is starting to ask how it can change software from a cost-center to a value-center, this book is for you.
While emerging technologies create massive opportunity, especially for investors and companies that seek more adaptable forms of economic growth than currently available, value is held inert by traditional approaches, patents, and other closed systems. Yet, open data, content, and information may be the key to mass innovation for future technologies, although they bring difficult challenges to private-industry models that depend on the established ideas of intellectual property. It is from this foundational observation that OpenXFORM (a blending of the words Open and the engineering abbreviation for Transformation) was developed and is explored and described in this book. The intent of the model design is to synthesize an approach to the process of innovation, inspired by natural systems and human-centric design processes. OpenXFORM describes how an open system of innovation can adapt to the unregulated world of information, data, and content; can decompose its own information to release to the open world; and can discover ways to find the points of synergy among the studied and tested methodologies that put human relationships first. This book presents an explicit innovation process that shows how to move from a breakthrough idea through a process that encourages innovative thinkers to test their assumptions, validate hypotheses, and tune and tweak their ideas, not only to drive solutions for users but also to meet the strategic goals of their companies. The anatomy of innovation through OpenXFORM contains the process for moving ideas from a flight of fancy to an explicit concept that is ready to produce.
Software analysis patterns play an important role in reducing the overall cost and compressing the time of software project lifecycles. However, building reusable and stable software analysis patterns is still considered a major and delicate challenge. This book proposes a novel concept for building analysis patterns based on software stability and is a modern approach for building stable, highly reusable, and widely applicable analysis patterns. The book also aims to promote better understanding of problem spaces and discusses how to focus requirements analysis accurately. It demonstrates a new approach to discovering and creating stable analysis patterns (SAPs). This book presents a pragmatic approach to understanding problem domains, utilizing SAPs for any field of knowledge, and modeling stable software systems, components, and frameworks. It helps readers attain the basic knowledge that is needed to analyze and extract analysis patterns from any domain of interest. Readers also learn to master methods to document patterns in an effective, easy, and comprehensible manner. Bringing significant contributions to the field of computing, this book is a unique and comprehensive reference manual on SAPs. It provides insight on handling the understanding of problem spaces and supplies methods and processes to analyze user requirements accurately as well as ways to use SAPs in building myriad cost-effective and highly maintainable systems. The book also shows how to link SAPs to the design phase thereby ensuring a smooth transition between analysis and design.
With the emergence of cloud computing, traditional approaches to software engineering must be adapted in order to take full advantage of the benefits promised by cloud technologies. This timely and authoritative text/reference presents the latest research on "Software Engineering Frameworks for the Cloud Computing Paradigm," drawn from an international selection of researchers and practitioners. The book offers both a discussion of relevant software engineering approaches and practical guidance on enterprise-wide software deployment in the cloud environment, together with real-world case studies. Topics and features: presents the state of the art in software engineering approaches for developing cloud-suitable applications; discusses the impact of the cloud computing paradigm on software engineering, including the semantic web; offers guidance and best practices for students and practitioners of cloud-based applications architecture; examines the stages of the software development lifecycle, with a focus on the requirements engineering and testing of cloud-based applications; reviews the efficiency and performance of cloud-based applications; explores feature-driven and cloud-aided software design, presenting strategies for cloud adoption and migration; provides relevant theoretical frameworks, practical approaches and current and future research directions. This practical and clearly-structured volume is an ideal self-study primer for students of cloud computing and software engineering. Software engineers, application developers and IT infrastructure managers will also find the work to be an invaluable reference.
Compiled by an experienced practitioner in the field, this book
contains definitions of the major terms used in Reliability
Engineering and Software Assessment. Approximately 2000 definitions
have been carefully selected from standards and literature
published by leading institutions such as the IEEE and IEC.
Alternative definitions of the same term are given where relevant,
enabling the reader to compare and contrast, thereby giving useful
insights into different aspects of the same term. There is also
extensive cross-referencing to make the book easy to use and
practical.
* Provides simple, conceptual descriptions of everyday technologies * Includes clear examples and diagrams that demonstrate the principles and techniques, not just a "how-to" punch list * Covers advanced topics for readers who want to dive into the deep end of the technology pool * Avoids jargon-where terminology does appear, the text will provide clear, concise definitions
Features Teaches software design by showing programmers how to build the tools they use every day. Each chapter includes exercises to help readers check and deepen their understanding. All the example code can be downloaded, re-used, and modified under an open license.
The work presented in this book is based on empirical study undertaken as a case study to understand the challenges faced in massively open online course (MOOC) based learning and experimentation to understand the challenges for presenting theoretical and practical courses. The book proposes a flexible online platform. This solution provides flexibility in distance learning processes including course enrollment, learning, evaluation, and outcome of degrees. The proposed system not only gives students freedom to choose their courses in accordance with their needs but also use earned credit towards online degrees of any university of their choice.
"I highly recommend Mr. Hobbs' book." - Stephen Thomas, PE, Founder and Editor of FunctionalSafetyEngineer.com Safety-critical devices, whether medical, automotive, or industrial, are increasingly dependent on the correct operation of sophisticated software. Many standards have appeared in the last decade on how such systems should be designed and built. Developers, who previously only had to know how to program devices for their industry, must now understand remarkably esoteric development practices and be prepared to justify their work to external auditors. Embedded Software Development for Safety-Critical Systems discusses the development of safety-critical systems under the following standards: IEC 61508; ISO 26262; EN 50128; and IEC 62304. It details the advantages and disadvantages of many architectural and design practices recommended in the standards, ranging from replication and diversification, through anomaly detection to the so-called "safety bag" systems. Reviewing the use of open-source components in safety-critical systems, this book has evolved from a course text used by QNX Software Systems for a training module on building embedded software for safety-critical devices, including medical devices, railway systems, industrial systems, and driver assistance devices in cars. Although the book describes open-source tools for the most part, it also provides enough information for you to seek out commercial vendors if that's the route you decide to pursue. All of the techniques described in this book may be further explored through hundreds of learned articles. In order to provide you with a way in, the author supplies references he has found helpful as a working software developer. Most of these references are available to download for free.
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.
This reference text provides the theoretical foundations, the emergence, and the application areas of Blockchain in an easy-to-understand manner that would be highly helpful for the researchers, academicians, and industry professionals to understand the disruptive potentials of Blockchain. It explains Blockchain concepts related to Industry 4.0, Smart Healthcare, and the Internet of Things (IoT) and explores Smart Contracts and Consensus algorithms. This book will serve as an ideal reference text for graduate students and academic researchers in electrical engineering, electronics and communication engineering, computer engineering, and information technology. This book * Discusses applications of blockchain technology in diverse sectors such as industry 4.0, education, finance, and supply chain. * Provides theoretical concepts, applications, and research advancements in the field of blockchain. * Covers industry 4.0 digitization platform and blockchain for data management in industry 4.0 in a comprehensive manner. * Emphasizes analysis and design of consensus algorithms, fault tolerance, and strategy to choose the correct consensus algorithm. * Introduces security issues in the industrial internet of things, internet of things, blockchain integration, and blockchain-based applications. The text presents in-depth coverage of theoretical concepts, applications and advances in the field of blockchain technology. This book will be an ideal reference for graduate students and academic researchers in diverse engineering fields such as electrical, electronics and communication, computer, and information technology.
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. |
You may like...
Essential Java for Scientists and…
Brian Hahn, Katherine Malan
Paperback
R1,266
Discovery Miles 12 660
Designing the User Interface: Strategies…
Ben Shneiderman, Catherine Plaisant, …
Paperback
R2,037
Discovery Miles 20 370
Research Anthology on Architectures…
Information R Management Association
Hardcover
R12,620
Discovery Miles 126 200
Hardware Accelerator Systems for…
Shiho Kim, Ganesh Chandra Deka
Hardcover
R3,950
Discovery Miles 39 500
|