The target of SQL tuning is the improvement of the existing execution plan. The authors discuss the removal of brakes in the execution plan. Such "brakes" or bottlenecks can be recognized by a formal analysis of the execution plan. For this purpose no data model knowledge is needed. This is especially beneficial for database administrators because they are usually not or insufficiently familiar with the data model. The book presents numerous practical examples with this method.
Books Guide: Programming
List of books on the topic of Programming.
Using agile methods and the tools of Visual Studio 2010, development teams can deliver higher-value software faster, systematically eliminate waste, and increase transparency throughout the entire development lifecycle. Now, Microsoft Visual Studio product owner Sam Guckenheimer and leading Visual Studio implementation consultant Neno Loje show how to make the most of Microsoft’s new Visual Studio 2010 Application Lifecycle Management (ALM) tools in your environment.
Following the familiar “Design Patterns” format, expert cloud developer Chris Moyer introduces proven patterns for cloud platforms from Amazon, Google, and other providers. Moyer demonstrates these patterns at work through extensive example code and case study applications for Amazon Web Services (AWS). As you increasingly move to the cloud, you’ll constantly encounter the challenges this book solves. You’ll rely on it for years–whenever you need a cloud solution you can trust.
One of the most exciting recent changes in the computing world is cloud computing. Cloud computing is a dramatic shift in how applications are developed and used---and even in what applications are. With cloud computing, developers are no longer building applications that run on a user's desktop computer. Instead, they're building services on the network that can be used by thousands of users at the same time.
Continuous integration is a software engineering process designed to minimize "integration hell." It's a coordinated development approach that blends the best practices in software delivery. For .NET developers, especially, adopting these new approaches and the tools that support them can require rethinking the development process altogether.
Continuous Testing (CT) is a developer practice that shortens the feedback loops established by test-driven development and continuous integration. Building on techniques used by Agile software development practitioners, Continuous Testing with Ruby shows you how to get instant feedback about both the quality of your code, and the quality of your tests.
Agile has become today’s dominant software development paradigm, but agile methods remain difficult to measure and improve. Essential Skills for the Agile Developer fills this gap from the bottom up, teaching proven techniques for assessing and optimizing both individual and team agile practices.
Scalability Rules is the easy-to-use scalability primer and reference for every architect, developer, web professional, and manager. Authors Martin L. Abbott and Michael T. Fisher have helped scale more than 200 hypergrowth Internet sites through their consulting practice. Now, drawing on their unsurpassed experience, they present 50 clear, proven scalability rules–and practical guidance for applying them.
Scrum In Action: Agile Software Project Management and Development is a practical how-to guide for software project teams on how to successfully deploy an Agile software framework with Scrum. It is clearly and concisely written and is the first practical guide with real world situations written by corporate practitioners.
Programmers who endure and succeed amidst swirling uncertainty and nonstop pressure share a common attribute: They care deeply about the practice of creating software. They treat it as a craft. They are professionals.
The Knowledge Solution. Stop Searching, Stand Out and Pay Off. The #1 ALL ENCOMPASSING Guide to Web 3.0.
An Important Message for ANYONE who wants to learn about Web 3.0 Quickly and Easily. . .
"Here's Your Chance To Skip The Struggle and Master Web 3.0, With the Least Amount of Effort, In 2 Days Or Less. . ."
With this book, you get 97 short and extremely useful programming tips from some of the most experienced and respected practitioners in the industry, including Uncle Bob Martin, Scott Meyers, Dan North, Linda Rising, Udi Dahan, Neal Ford, and many more.
As a software engineer, you recognize at some point that there's much more to your career than dealing with code. Is it time to become a manager? Tell your boss he’s a jerk? Join that startup? Author Michael Lopp recalls his own make-or-break moments with Silicon Valley giants such as Apple, Netscape, and Symantec in Being Geek—an insightful and entertaining book that will help you make better career decisions.
Most software developers have inherited legacy or brownfield projects that require maintenance, incremental improvements, or even cleaning up the mess another programmer left behind.
When carefully selected and used, Domain-Specific Languages (DSLs) may simplify complex code, promote effective communication with customers, improve productivity, and unclog development bottlenecks. In Domain-Specific Languages, noted software development expert Martin Fowler first provides the information software professionals need to decide if and when to utilize DSLs.
Performance is critical to the success of any web site, and yet today's web applications push browsers to their limits with increasing amounts of rich content and heavy use of Ajax. In this book, Steve Souders, web performance evangelist at Google and former Chief Performance Yahoo!, provides valuable techniques to help you optimize your site's performance.
Your software systems are the heart of your business–and they may be vulnerable. In Glitch, industry leader Jeff Papows, Ph.D., outlines the three converging forces that are leading to the proliferation of glitches. Papows explains why and how these glitches are affecting businesses, government agencies, and consumers and provides recommendations as to what we can do about them.
This book integrates key tools and processes into a comprehensive program for developing more robust and reliable technology-based products. Drawing on their extensive product development expertise, the authors present a complete process for ensuring product performance throughout the entire lifecycle, from understanding customers’ needs through manufacturing and post launch support.
Scrum, which was originally invented solely for software development, can now be applied to all types of projects. This book shows project managers how to implement Scrum by explaining the artifacts, rituals, and roles used. The text provides Scrum planning methods to control project scope and schedule as well as Scrum tracking methods to focus teams on improving throughput and streamlining communications.
Most security books on Java focus on cryptography and access control, but exclude key aspects such as coding practices, logging, and web application risk assessment. Encapsulating security requirements for web development with the Java programming platform, "Secure Java: For Web Application Development" covers secure programming, risk assessment, and threat modeling—explaining how to integrate these practices into a secure software development life cycle.
In SOA with .NET and Windows Azure, a team of top Microsoft technology experts team up with Thomas Erl to explore service-oriented computing with Microsoft's latest .NET and Windows Azure innovations. The authors show how modern service technology advancements within the Microsoft platform have increased the potential for applying and realizing service-orientation practices and goals.
To understand the principles and practice of software development, there is no better motivator than participating in a software project with real-world value and a life beyond the academic arena. Software Development: An Open Source Approach immerses students directly into an agile free and open source software (FOSS) development process.
Most of the software measures currently proposed to the industry bring few real benefits to either software managers or developers. This book looks at the classical metrology concepts from science and engineering, using them as criteria to propose an approach to analyze the design of current software measures and then design new software measures (illustrated with the design of a software measure that has been adopted as an ISO measurement standard).
Ruby on Rails strips complexity from the development process, enabling professional developers to focus on what matters most: delivering business value via clean and maintainable code. The Rails™ 3 Way is the only comprehensive, authoritative guide to delivering production-quality code with Rails 3.
Behaviour Driven Development is about writing software that matters. It is an approach to agile software development that takes cues from Test Driven Development, Domain Driven Design, and Acceptance Test Driven Planning.
You want to write professional-grade applications: Rails is a full-stack, open-source web framework, with integrated support for unit, functional, and integration testing. It enforces good design principles, consistency of code across your team (and across your organization), and proper release management.
Are you doing all you can to further your career as a software developer? With today's rapidly changing and ever-expanding technologies, being successful requires more than technical expertise. To grow professionally, you also need soft skills and effective learning techniques. Honing those skills is what this book is all about. Authors Dave Hoover and Adewale Oshineye have cataloged dozens of behavior patterns to help you perfect essential aspects of your craft.
Peter Seibel interviews 15 of the most interesting computer programmers alive today in Coders at Work, offering a brand-new companion volume to Apress’s highly acclaimed best-seller Founders at Work by Jessica Livingston.
Test-Driven Development (TDD) is now an established technique for delivering better software faster. TDD is based on a simple idea: Write tests for your code before you write the code itself. However, this "simple" idea takes skill and judgment to do well. Now there's a practical guide to TDD that takes you beyond the basic concepts.
Knowing how to create domain-specific languages (DSLs) can give you a huge productivity boost. Instead of writing code in a general-purpose programming language, you can first build a custom language tailored to make you efficient in a particular domain.
Chris Pine's book will teach you how to program. You'll learn to use your computer better, to get it to do what you want it to do. Starting with small, simple one-line programs to calculate your age in seconds, you'll see how to advance to fully structured, real programs. You'll learn the same technology used to drive modern dynamic websites and large, professional applications.
Real-time and embedded systems face the same development challenges as traditional software: shrinking budgets and shorter timeframes. However, these systems can be even more difficult to successfully develop due to additional requirements for timeliness, safety, reliability, minimal resource use, and, in some cases, the need to support rigorous industry standards.
Refactoring–the art of improving the design of existing code—has taken the world by storm. So has Ruby. Now, for the first time, there’s a refactoring workbook designed from the ground up for the dynamic Ruby language.
With refactoring, programmers can transform even the most chaotic software into well-designed systems that are far easier to evolve and maintain. What’s more, they can do it one step at a time, through a series of simple, proven steps. Now, there’s an authoritative and extensively updated version of Martin Fowler’s classic refactoring book that utilizes Ruby examples and idioms throughout–not code adapted from Java or any other environment.
It's been known for years that usability testing can dramatically improve products. But with a typical price tag of $5,000 to $10,000 for a usability consultant to conduct each round of tests, it rarely happens.
Software Engineering provides the software engineering fundamentals, principles and skills needed to develop and maintain high-quality software products. The software engineering processes and techniques covered include requirements specification, design, implementation, testing and management of software projects. This up-to-date book is modeled on the recommendations and guidelines prescribed in the Guide to the SWEBOK.
This introduction to software engineering and practice addresses both procedural and object-oriented development. Is thoroughly updated to reflect significant changes in software engineering, including modeling and agile methods. Emphasizes essential role of modeling design in software engineering. Applies concepts consistently to two common examples—a typical information system and a real-time system.
Software Estimation Best Practices, Tools & Techniques covers all facets of software estimation. It provides a detailed explanation of the various methods for estimating software size, development effort, cost, and schedule, including a comprehensive explanation of test effort estimation.
Agile methods are gaining more and more interest both in industry and in research. Many industries are transforming their way of working from traditional waterfall projects with long duration to more incremental, iterative and agile practices. At the same time, the need to evaluate and to obtain evidence for different processes, methods and tools has been emphasized.
This succinct book explains how you can apply the practices of Lean software development to dramatically increase productivity and quality. Based on techniques that revolutionized Japanese manufacturing, Lean principles are being applied successfully to product design, engineering, the supply chain, and now software development. With The Art of Lean Software Development, you'll learn how to adopt Lean practices one at a time rather than taking on the entire methodology at once.
Effective software development is no longer merely an IT concern: today, it is crucial to the entire enterprise. However, most businesspeople are not ready to make informed decisions about software initiatives. The Economics of Iterative Software Development: Steering Toward Better Business Results will prepare them.
Success in today's IT environment requires you to view your career as a business endeavor. In this book, you'll learn how to become an entrepreneur, driving your career in the direction of your choosing. You'll learn how to build your software development career step by step, following the same path that you would follow if you were building, marketing, and selling a product. After all, your skills themselves are a product.
Service Component Architecture (SCA) is a new programming model that enables developers to build distributed applications more efficiently and effectively than previous technologies. In Understanding SCA (Service Component Architecture), two leading experts offer the first complete and independent guide to SCA.
So you think you want to be Agile. But what does it mean? How can you develop software in an agile manner? How can you reap the benefits of agile modelling or Extreme Programming (XP)? What tools might you use to help you become more agile? This book tells you!
Even bad code can function. But if code isn't clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn't have to be that way.
For software to consistently deliver promised results, software development must mature into a true profession. Emergent Design points the way. As software continues to evolve and mature, software development processes become more complicated, relying on a variety of methodologies and approaches. This book illuminates the path to building the next generation of software. Author Scott L.
The Eclipse Modeling Framework enables developers to rapidly construct robust applications based on surprisingly simple models. Now, in this thoroughly revised Second Edition, the project’s developers offer expert guidance, insight, and examples for solving real-world problems with EMF, accelerating development processes, and improving software quality.
Companies moving toward flexible SOA architectures often face difficult information management and integration challenges. The master data they rely on is often stored and managed in ways that are redundant, inconsistent, inaccessible, non-standardized, and poorly governed. Using Master Data Management (MDM), organizations can regain control of their master data, improve corresponding business processes, and maximize its value in SOA environments.
his new book manages the unthinkable- it conveys crucial technical information to engineers without boring them to tears! In this unique reference, expert embedded designer Lisa Simone provides the solutions to typical embedded software debugging problems from a fresh new perspective.
With Joel’s newest book, More Joel on Software, you’ll get a feast of Joel’s opinions and impressions on software development, software design, running a software business, and so much more.
Learn the essentials of developing secure software in accordance with the most current industry standards, in this comprehensive instructional guide. "Secure Software Development: A Programmer's Guide" leads readers through the tasks and activities that successful computer programmers navigate on a daily basis, from reading and analyzing requirements to choosing development tools, to guarding against software vulnerabilities and attacks.
Inadequate governance might be the most widespread root cause of SOA failure. In SOA Governance, a team of IBM’s leading SOA governance experts share hard-won best practices for governing IT in any service-oriented environment.
There's a fundamental conflict in the software world, sometimes taking on the attributes of a war. On one side, managers search for ways to impose more discipline and control on software builders, and researchers advocate and sometimes seek to mandate formal methods for the same purpose. On the other side, software builders quietly continue to build software pretty much the way they always have, with freewheeling methods and creative solutions.
This book is a comprehensive and thought-provoking introduction to some of the most advanced concepts in current software management. The authors demonstrate how software development rhythms can be harmonized to achieve synergies, making them stronger together than they would be apart.
Software practitioners are rapidly discovering the immense value of Domain-Specific Languages (DSLs) in solving problems within clearly definable problem domains. Developers are applying DSLs to improve productivity and quality in a wide range of areas, such as finance, combat simulation, macro scripting, image generation, and more. But until now, there have been few practical resources that explain how DSLs work and how to construct them for optimal use.
One of the first comprehensive guides to testing every phase of software development and revision.
This book takes you on a journey through the wonderful world of FitNesse, a great web-based collaboration tool for software acceptance testing. FitNesse enables software developers and business people to build a shared understanding of the domain and helps produce software that is genuinely fit for purpose.
Anyone who develops software for a living needs a proven way to produce it better, faster, and cheaper. The Productive Programmer offers critical timesaving and productivity tools that you can adopt right away, no matter what platform you use.
Numerous books abound for the beginning programmer who wants to learn XML, but there are few learning resources available for those who are already proficient in XML and need expert-level advice to help maximize their workflow. Advanced XML Applications from the Experts at The XML Guild provides such a resource, written by the expert programmers at The XML Guild. The book is not intended to be another exhaustive XML bible.
How do the experts solve difficult problems in software development? In this unique and insightful book, leading computer scientists offer case studies that reveal how they found unusual, carefully designed solutions to high-profile projects. You will be able to look over the shoulder of major coding and design experts to see problems through their eyes.
For any software developer who has spent days in "integration hell," cobbling together myriad software components, Continuous Integration: Improving Software Quality and Reducing Risk illustrates how to transform integration from a necessary evil into an everyday part of the development process. The key, as the authors show, is to integrate regularly and often using continuous integration (CI) practices and techniques.
Software is easy to make, except when you want it to do something new, Rosenberg observes -- but the catch is that "the only software worth making is software that does something new." This two-tiered insight comes from years of observing a team led by Mitch Kapor (the creator of the Lotus 1-2-3 spreadsheet) in its efforts to create a "personal information manager" that can handle to-do lists as easily as events scheduling and address books.
Are you a tester who spends more time manually creating complex test data than using it? A business analyst who seemingly went to college all those years so you can spend your days copying data from reports into spreadsheets? A programmer who can't finish each day's task without having to scan through version control system output, looking for the file you want?
Great code clearly and consistently communicates your intentions, allowing other programmers to understand your code, rely on it, and modify it with confidence. But great code doesn't just happen. It is the outcome of hundreds of small but critical decisions programmers make every single day.
The second of a two-book series about business intelligence and reporting technology, Integrating and Extending BIRT introduces programmers to BIRT architecture and the reporting framework.
Microsoft has finally answered the prayers of system administrators and developers everywhere through the introduction of Windows PowerShell, a new scripting technology that enables the automation of system management tasks and the creation of system management tools.
This book addresses prominent projects in the open source movement, along with its enabling technologies, social characteristics, legal issues, business venues, and public and educational roles.
Get the practical guide to getting your development project off to a successful start!Zero in on key project-initiation tasks--and build a solid foundation for successful software development. In this concise guide, critically-acclaimed author Karl E. Wiegers fills a void in project management literature by focusing on the activities that are essential--but often overlooked--for launching any project.
Testing even a simple system can quickly turn into a potentially infinite task. Faced with tight costs and schedules, testers need to have a toolkit of practical techniques combined with hands-on experience and the right strategies in order to complete a successful project. World-renowned testing expert Rex Black provides you with the proven methods and concepts that test professionals must know.
The Art of Agile Development contains practical, down-to-earth guidance for anyone involved in or considering the agile method—and Extreme Programming in particular—to build reliable software. Agile development methods have become increasingly popular because too many software projects have failed to meet expected release dates, deliver the required features, or to match projected costs.
From a leader in the agile process movement, learn best practices for moving agile development with Scrum from the skunk works (small team) to the shop floor (the enterprise). Managers get case studies and practical guidance for managing the change processes for applying Scrum in the enterprise.
If you develop, test, or manage .NET software, you will find .NET Test Automation Recipes: A Problem-Solution Approach very useful. The book presents practical techniques for writing lightweight software test automation in a .NET environment and covers API testing thoroughly.
Agile Java™ Development With Spring, Hibernate and Eclipse is a book about robust technologies and effective methods which help bring simplicity back into the world of enterprise Java development. The three key technologies covered in this book, the Spring Framework, Hibernate and Eclipse, help reduce the complexity of enterprise Java development significantly.
With the award-winning book Agile Software Development: Principles, Patterns, and Practices, Robert C. Martin helped bring Agile principles to tens of thousands of Java and C++ programmers. Now .NET programmers have a definitive guide to agile methods with this completely updated volume from Robert C. Martin and Micah Martin, Agile Principles, Patterns, and Practices in C#.
Driven by the need for global excellence and customer value, agility and innovation have become imperative for business. However, most business process engineering and information system approaches address only operational efficiency and economics. This unique book closes this gap. It shows you how innovation can be systematized with normalized patterns of information.
Peer code review is happening behind the scenes at your competitor's shop. Are they wasting their time or gaining a competitive advantage? What type of review actually works? We've compiled 10 practical essays from industry experts giving specific techniques for effective peer code review:
Many programmers know how to write correct code - code that works. But not all know how to craft great code - code that is well written and easy to understand. Code Craft teaches programmers how to move beyond writing correct code to writing great code. The book covers code writing concerns, including code presentation style, variable naming, error handling, and security; and the wider issues of programming in the real world, such as good teamwork, development processes, and documentation.
Diomidis Spinellis' first book, Code Reading, showed programmers how to understand and modify key functional properties of software. Code Quality focuses on non-functional properties, demonstrating how to meet such critical requirements as reliability, security, portability, and maintainability, as well as efficiency in time and space.
In Joe Celko's SQL for Smarties: Advanced SQL Programming, he picks up where basic SQL training and experience leaves many database professionals and offers tips, techniques, and explanations that help readers extend their capabilities to top-tier SQL programming.
Twenty-seven weekends a year, the No Fluff Just Stuff conference rolls into another town, featuring the world's best technical speakers and writers. Up until now, you had to go to one of the shows to soak up their collective wisdom. Now, you can hold it in the palm of your hand.
The promise of Software Factories is to streamline and automate software development-and thus to produce higher-quality software more efficiently. The key idea is to promote systematic reuse at all levels and exploit economies of scope, which translates into concrete savings in planning, development, and maintenance efforts. However, the theory behind Software Factories can be overwhelming, because it spans many disciplines of software development.
Want to be a better developer? This books collects the personal habits, ideas, and approaches of successful agile software developers and presents them in a series of short, easy-to-digest tips. This isn't academic fluff; follow these ideas and you'll show yourself, your teammates, and your managers real results. These are the proven and effective agile practices that will make you a better developer.
This book will help you improve five areas of your career:
After completing this self-contained course on server-based Internet applications software, students who start with only the knowledge of how to write and debug a computer program will have learned how to build web-based applications on the scale of Amazon.com. Unlike the desktop applications that most students have already learned to build, server-based applications have multiple simultaneous users.
Often referred to as the "black art" because of its complexity and uncertainty, software estimation is not as hard or mysterious as people think. However, the art of how to create effective cost and schedule estimates has not been very well publicized. While the average software organization can struggle with project costs that run double their original estimates, some of the more sophisticated organizations achieve results with estimation errors as low as 5-10%.
Breakthrough Knowledge Transfer Techniques for Every Professional!
No matter where you work there are people with experience teaching people who need to learn. Everyone is part of this exchange yet few people know how to do it well. Now, there’s a comprehensive how-to manual for effective knowledge transfer: Teach What You Know.
Unrealistic schedules, unstable releases, continual overtime, and skyrocketing stress levels are legendary in the software development industry. Unlike traditional occupations such as accounting or administration, the software business is populated with programmers who are as creative and passionate about their work as musicians and artists.
The software industry has been struggling with how to create and release software that is more security-enhanced and reliable—the Security Development Lifecycle (SDL) provides a methodology that works. Adapted from Microsoft’s standard development process, SDL is a critical way to help reduce the number of security defects in code at every stage of the development process, from design to release.
Understanding Enterprise SOA gives technologists and business people an invaluable and until now missing integrated picture of the issues and their interdependencies. You will learn how to think in a big way, moving confidently between technology- and business-level concerns. Written in a comfortable, mentoring style by two industry insiders, the book draws conclusions from actual experiences of real companies in diverse industries, from manufacturing to genome research.
Validation and verification is an area of software engineering that has been around since the early stages of program development, especially one of its more known areas: testing. Testing, the dynamic side of validation and verification (V&V), has been complemented with other, more formal techniques of software engineering, and so the static verification traditional in formal methods has been joined by model checking and other techniques.
Mobile computing devices have evolved from fixed-purpose communications tools to compelling and extensible mass-market computing platforms. Now, they stand poised to offer truly ubiquitous and mobile computing—and to revolutionize the way people work, communicate, and interact with the world around them.
Master Java 5.0, object-oriented design, and Test-Driven Development (TDD) by learning them together. Agile Java weaves all three into a single coherent approach to building professional, robust software systems. Jeff Langr shows exactly how Java and TDD integrate throughout the entire development lifecycle, helping you leverage today's fastest, most efficient development techniques from the very outset.
In the second edition of this bestseller, the author continues to demystify the techniques associated with the field of artificial intelligence. It covers a wide variety of techniques currently defined as "AI" and shows how they can be useful in practical, everyday applications. This book covers both the theory and the practical applications to teach developers how to apply AI techniques in their own designs.
You will become a master at .NET database development with the help of Alison Balter's Mastering Database Development with .NET. You will learn step-by-step how to use data bound forms to build applications in the .NET framework. Alison will also show you how you can customize forms by adding combo boxes and list boxes. Or, if you already know how to create forms using an application wizard, discover the advantages and disadvantages associated with this technique.
Aspect-oriented software development (AOSD) is emerging as a proven approach for allowing the separate expression of multiple concerns along with technologies for knitting together these separate expressions into coherent systems. Thanks to its great promise as an approach to simplifying the development of complex systems, many expert observers view AOSD as a worthwhile successor to the prevalent object-oriented paradigm.
Today, software engineers must build systems that address an increasingly wide range of technical, business, and performance concerns. Doing so using conventional object-oriented techniques, they often find themselves producing tangled, incorrect, difficult-to-maintain code. Aspect-oriented software development (AOSD) overcomes this problem by enabling them to express concerns separately, and then compose modularized expressions into reliable, effective systems.
Since the 1980s, use cases have been a way to bring users into software design, but translating use cases into software has been an art, at best, because user goods often don't respect code boundaries. Now that aspect-oriented programming (AOP) can express crosscutting concerns directly in code, the man who developed use cases has proposed step-by-step methods for recognizing crosscutting concerns in use cases and writing the code in separate modules.
No one can disparage the ability to write good code. At its highest levels, it is an art. But no one can confuse writing good code with developing good software. The difference--in terms of challenges, skills, and compensation--is immense. Coder to Developer helps you excel at the many non-coding tasks entailed, from start to finish, in just about any successful development project.
Every day, all around the world, programmers have to recycle legacy data, translate from one vendor's proprietary format into another's, check that configuration files are internally consistent, and search through web logs to see how many people have downloaded the latest release of their product. This kind of "data crunching," may not be glamorous, but knowing how to do it efficiently is essential to being a good programmer.
Using Visual Studio .NET (VS .NET) for creating enterprise solutions, authors John Hansen and Carsten Thomsen have chosen to add the Unified Modeling Language (UML), for designing and documenting solutions, and the Microsoft Solutions Framework (MSF), for planning and managing projects.
eXtreme .NET shows developers and team leaders how to incorporate eXtreme programming (XP) practices with .NET-connected technologies to create high quality, low-cost code that will build better software. This practical, realistic guidebook systematically covers key elements of XP methodology in the specific context of the .NET Framework, Visual Studio .NET, Microsoft Visual C#, and related Microsoft .NET-enabled applications.
Software development projects can be fun, productive, and even daring. Yet they can consistently deliver value to a business and remain under control. Extreme Programming (XP) was conceived and developed to address the specific needs of software development conducted by small teams in the face of vague and changing requirements.
The Fit open source testing framework brings unprecedented agility to the entire development process. Unlike previous testing tools, Fit fully addresses the business value of software, not just technical quality. Using it, software customers, developers, and testers can clarify what software should do, compare that to what it does do, and systematically address the differences.
Learning Java Through Applications emphasizes Java's graphical capabilities and the ability to create graphical user interfaces. The book uses fifteen complete Java programs in order of increasing complexity, including geometric patterns, games, puzzles, number theory problems, and cryptography, to teach students the Java programming language and concepts.
Whatever your background, Maximizing ASP.NET will deepen your skills across all aspects of enterprise development: application design, test-driven development, modularization, optimization, and beyond. Packed with C# and VB.NET examples for both ASP.NET 2.0 and 1.1, this is no mere "cookbook." It is a superbly well-written guide to both the "hows" and "whys" of serious ASP.NET development.
If you are responsible for designing, implementing, or managing a quality software program, this updated edition of the Practical Guide to Software Quality Management now identifies 10 major components that make up a solid program in line with ISO 9001 quality management precepts.
Learn how to improve your Java coding skills using unit testing. Despite it's name, unit testing is really a coding technique, not a testing technique. This book shows how to write tests, but more importantly, goes where other books fear to tread and gives you concrete advice and examples of what to test. Discover the tricky hiding places where bugs breed, and how to catch them using the freely available Junit framework.
Ruby is an increasingly popular, fully object-oriented dynamic programming language, hailed by many practitioners as the finest and most useful language available today. When Ruby first burst onto the scene in the Western world, the Pragmatic Programmers were there with the definitive reference manual, Programming Ruby: The Pragmatic Programmer''s Guide.
From its first appearance in 1995, this book has been consistently well received by tutors and students alike. Now in its fourth edition, this textbook is highly regarded for providing a complete introduction to Software Project Management for both undergraduate and postgraduate students.
Offers a new path to success in the software industry. This book reaches out to managers, developers, and customers who use industry-standard methodologies, but whose projects still struggle to succeed.
"Software Testing, 2nd edition" provides practical insight into the world of software testing and quality assurance. Learn how to find problems in any computer program, how to plan an effective test approach and how to tell when software is ready for release. Updated from the previous edition in 2000 to include a chapter that specifically deals with testing software for security bugs, the processes and techniques used throughout the book are timeless.
"Sustainable Software Development" brings together principles and practices for building software that is technically superior, delivers exceptional business value, and can evolve rapidly to reflect any change to your business or technical environment.
Quality cannot be tested into software, it must be designed in and built in. Understanding and accepting this simple principle can be the first step to preventing serious system defects from reaching users.
The Rational Unified Process is a powerful tool for improving software development--but it doesn't go nearly far enough. Today's development organizations need to extend RUP to cover the entire IT lifecycle, including the cross-project and enterprise issues it largely ignores. The Enterprise Unified Process (EUP) does precisely that, enabling you to deliver systems that meet all the needs of today's businesses.
Over the course of a distinguished career, Joe Marasco earned a reputation as the go-to software project manager: the one to call when you were facing a brutally tough, make-or-break project. Marasco reflected on his experiences in a remarkable series of "Franklin's Kite" essays for The Rational Edge, Rational and IBM's online software development magazine.
Leaders of software-development projects face many challenges. First, you must produce a quality product on schedule and on budget. Second, you must foster and encourage a cohesive, motivated, and smoothly operating team. And third, you must maintain a clear and consistent focus on short- and long-term goals, while exemplifying quality standards and showing confidence and enthusiasm for your team and its efforts.
If you are a programmer, you need this book.
Eclipse is an integrated development environment (IDE) for software. It also represents an ideal, incorporating modularity, extensibility, and community. Contributing to Eclipse: Principles, Patterns, and Plug-Ins is therefore significantly more than a book about how to write plug-ins for the Eclipse framework.
Joel on Software covers every conceivable aspect of software programming—from the best way to write code, to the best way to design an office in which to write code! All programmers, all people who want to enhance their knowledge of programmers, and all who are trying to manage programmers will surely relate to Joel's musings.
When testing becomes a developer's habit good things tend to happen--good productivity, good code, and good job satisfaction. If you want some of that, there's no better way to start your testing habit, nor to continue feeding it, than with JUnit Recipes.
This book will teach developers and architects how to use PHP in a new wayâ€”as a tool for creating multi-tier frameworks into which useful applications can be built for a lower cost, easier use, and just as good or greater performance as those applications written with the Microsoft .NET framework or Enterprise Java.
Open Source .NET Development is the definitive guide on .NET development in an open-source environment. Readers will find in-depth information on using NAnt, NDoc, NUnit, Draco.NET, log4net, and Aspell.Net with both Visual Studio .NET and the Mono Project.
You code. And code. And code. You build only to rebuild. You focus on making your site compatible with almost every browser or wireless device ever put out there. Then along comes a new device or a new browser, and you start all over again.
You can get off the merry-go-round.
In this code-intensive book, the authors present a detailed overview of the concepts of AOP and AspectJ, and take you step-by-step through the process of building an application. Along the way, you'll learn how to adopt AspectJ and use it with your current software development tools and processes.
Software Project Management provides insight to the importance of careful project management. Topics are presented in the same order that they appear in the progression of actual projects. The author utilizes his creative writing background to teach these topics with the tone of a friend sitting beside each student, rather than as a general lecture on the material.
Test-Driven Development: A Practical Guide enables developers to write software that's simpler, leaner, more reliable...just plain better. Now, there's a TDD guide focused on real projects, real developers, real implementation challenges, and real code.
Presenting the state-of-the-art in component-based software testing, this new, cutting-edge resource offers you an in-depth understanding of the current issues, challenges, needs, and solutions in this critical component-based testing and quality assurance in an accessible tutorial format, making the material easy to comprehend and benefit from no matter what your professional level.
Practical, hands-on techniques for testing the design, globalization, performance, and security of Web applications. Whether you’re a novice or experienced Web tester, this hands-on guide provides you with the practical steps you’ll need to follow to rigorously test across multiple platforms and browsers.
Software testing is indispensable and is one of the most discussed topics in software development today. Many companies address this issue by assigning a dedicated software testing phase towards the end of their development cycle. However, quality cannot be tested into a buggy application. Early and continuous unit testing has been shown to be crucial for high quality software and low defect rates.
From the Back Cover
The one-stop guide for everyone getting started with eXtreme Programming!
* Making XP principles work in the real world
* Best practices for the entire project lifecycle: conceptualization through delivery
* Understand the role of every participant: developer, manager, and customer
* Specific solutions to the most common XP transitioning problems
Extreme Programming (XP) and the Unified Process (UP) have both caused quite a sensation in the software development community. Although XP offers a methodology for faster software development, many developers find that it does not explicitly include modeling time, which is crucial to ensure that a project meets its proposed requirements. UP developers, on the other hand, have found that the UP approach to modeling is too documentation-intensive and top heavy, thus impeding progress.
(From the Back Cover) Two of the most significant technological development trends of the past few years have been the Java 2 Platform, Enterprise Edition (J2EE), a platform specifically geared to the needs of enterprise systems, and the Rational Unified Process (RUP), a comprehensive development methodology.
When the pressure is on to root out an elusive software or hardware glitch, what's needed is a cool head courtesy of a set of rules guaranteed to work on any system, in any circumstance. Written in a frank but engaging style, Debugging provides simple, foolproof principles guaranteed to help find any bug quickly. This book makes those shelves of application-specific debugging books (on C++, Perl, Java, etc.) obsolete.
Web development teams have been operating in the dark for far too long. The lack of proven development methodologies for the Web environment has meant a constant struggle for developers to produce quality Web-based projects, on time and within budget.
The experienced programmer's complete guide to .NET Web development.
* Covers the entire process of .NET Web development!
* Includes extensive coverage of Web Forms, Web Services, SOAP and XML
* Contains a concise review tutorial on "classic" Web programming—perfect for developers migrating from traditional or client/server environments
Written as instruction for team members and leaders new to pair programming and as an improvement guide for experienced pair programmers, Pair Programming Illuminated explains both the principles underlying this method and its best practices. The authors, drawing on their own extensive experience, explain what works and what does not, what should be emphasized and what should be avoided.
Have you ever worked on a project that ran into serious snags? A project that was canceled after significant time and expense? Or one that delived an acceptable result, but the people involved would rather have jumped off a cliff than work together again?
The complete, practical handbook for effective UI design, development, and usability engineering.
The practical handbook of software project management-by practitioners, for practitioners! Quality Software Project Management is the practical, start-to-finish project management resource for every software professional-experienced managers and developers moving into leadership roles.
From the Back Cover: The process of designing and building today's dynamic Web applications comes with a host of challenges not typically solved by traditional project management methodologies. A wealth of practical resources, Real Web Project Management: Case Studies and Best Practices from the Trenches is a book of solutions for designing, managing, and delivering virtually any type of Web-based project under even the most challenging of conditions.
We often hear about software projects that are late, over budget, or unable to satisfy customer needs. Yet some organizations are able to manage project after project successfully with desired results. In this book, Pankaj Jalote looks at one such organization, Infosys Technologies, a highly regarded high maturity organization, and details the processes it has in place to manage projects.
Effective requirements development--an end-to-end process that works.
"Component-Based Software Engineering: Putting the Pieces Together" is an edited, state-of-the-art text composed of 42 chapters by 40 of the world's best known authors in the fields of component-based development, component-based software engineering, and component reuse. The book, although multi-authored, was designed from inception to read as if written by one author for the sake of the intended audience.
Executable UML is a graphical specification language. It combines a subset of the UML (Unified Modeling Language) graphical notation with executable semantics and timing rules taken from the Shlaer-Mellor Method - the best of both worlds. You can use this language to build a fully executable system specification consisting of class, state, and, action models. Unlike traditional specifications, an executable specification can be run, tested, debugged, and measured for performance.
In Executable UML, Leon Starr shows how to build precise class models that form the foundation of rigorous software specifications. These specifications can be tested, debugged and optimized to generate code for multiple languages and platforms. Leon presents a wide range of examples from his projects in the fields of science and engineering-focusing on real-time environments where precise and accurate software specification is especially critical.
(From the Back Cover)
(From the Back Cover)
This book provides Web developers and software test professionals with practical, experience-based guidance on Web application testing. Concise and straightforward, this book provides a framework for testing Web-based applications. It offers a guide to performing test execution using several leading automated test tools, as well as insight into which test tools to use and why.
Inspired by Jerry Weinberg's Web-based roundtable on software engineering and management--the SHAPE forum, for Software as a Human Activity Performed effectively--consultants James Bullock, Marie Benesh, and Jerry Weinberg reviewed thousands of postings and culled the most powerful, provocative points of debate. Reading this fast-paced dialogue among forty experts, software professionals will quickly benefit from the contributors' many years of combined experience.
An in-depth look at the pressing issues involved in protecting an e-business from external threats while safeguarding customer privacy. With billions of dollars at stake in e-commerce, companies are becoming much more concerned about security and privacy issues. Hackers have made headlines by breaking into Web sites that aggregate sensitive information about all of us, which has caused growing public concern about personal and financial privacy.
Another entry in the small but growing management library that suggests purposely slowing down and smelling the roses could actually boost productivity in today's 24/7 world, Tom DeMarco's Slack stands out because it is aimed at "the infernal busyness of the modern workplace." DeMarco writes, "Organizations sometimes become obsessed with efficiency and make themselves so busy that responsiveness and net effectiveness suffer." By intentionally creating downtime, or "slack," management will fin
This introduction to software engineering and practice addresses both procedural and object-oriented development. The book applies concepts consistently to two common examples—a typical information system and a real-time system. It combines theory with real, practical applications by providing an abundance of case studies and examples from the current literature. Expanded coverage of object-oriented development — a programming perspective being implemented by many companies.
Why do so many software projects fail? The reality is that many of these projects are led by programmers or developers thrown into the role of project manager without the necessary skills or training to see a project through successfully. Patricia Ensworth has written a hands-on survival guide designed to rescue the "accidental project manager" and help them to quickly ramp up on all key areas involved in software project management.
This book seeks to help developers and testers who are making the transition from testing traditional client/server, PC, and/or mainframe systems to testing rapidly changing Web sites and applications. This book explains the technologies that are typically used to build these Web sites/applications and suggests specific test cases and techniques that can be included in a Web site’s test plans.
The only book that covers Visual Basic for software testing, a large and very critical industry. Most testers need to know some programming to enhance their job abilities; but the problem is that all of the trade books, textbooks, and courses are directed toward developers. Mary Sweeney's book responds to a huge unmet need.
Software that performs required tasks and meets expectations; accurate estimation of time to completion and cost of development; the opportunity to decide which features to include and which to defer; frequent small releases that incorporate continual customer feedback; constant integration and automated testing that insures clean code and robust performance...These are some of the many benefits of Extreme Programming (XP), a software development approach especially geared for smaller teams f
The hallmarks of Extreme Programming--constant integration and automated testing, frequent small releases that incorporate continual customer feedback, and a teamwork approach--make it an exceptionally flexible and effective approach to software development.
The first edition of Programming Pearls was one of the most influential books I read early in my career, and many of the insights I first encountered in that book stayed with me long after I read it. Jon has done a wonderful job of updating the material. I am very impressed at how fresh the new examples seem. -Steve McConnell
Master project management, today's most critical business skill!
Scaling for E-Business presents analysis techniques for quantifying and projecting every element of your e-business site's performance -- and planning for the capacity you need, no matter what!
Software Configuration Management (SCM) is an essential software engineering discipline used to manage change in today's complex, fast-paced software development environment. SCM is used during all lifecycle phases and provides a structure for identifying and controlling changes to documentation, requirements, models, code, and Web artifacts such as HTML and XML files.
Software engineering is playing a more important role in computing and informatics, necessitated by the complexities inherent in large-scale software development. To deal with these difficulties, the conventional lifecycle approaches to software engineering are now giving way to the "process system" approach, encompassing development methods, infrastructure, organization, and management.
This book helps accelerate the development of high quality software using continuous process improvement. The book starts with an overview of basic quality principles and how you can apply the continuous improvement cycle to software testing. It then reviews waterfall lifecycle testing, followed by an extensive RAD testing methodology for client/server and the Internet. The final section provides a comprehensive analysis of modern testing tools.
Introduces a model for a mature software development process that accommodates flexibility, focusing on policies and procedures that define how software development is performed, and technologies available. Tells how to sell the business case for software process improvement, how to establish dialogue between developers and customers, and how to manage multiple constituencies, personalities, and issues.
This book presents an integrated framework for testing object-oriented software throughout the software engineering lifecycle. It discusses recipes for testing of requirements, designs, base classes, derived classes, and integrated systems. For each phase the authors describe objectives of testing, approaches used, testing techniques, ordered sets of activities, planned efforts, and acceptance criteria for transition to the next phase.
In this book, the authors provide an introduction to the essential activities involved in a software engineering project. Readers will come to understand technical skills in requirements/specification, analysis, design/implementation, and testing. These methods are treated fully, with a multitude of examples for readers to emulate.
For all new managers who are stressed out over how they're going to handle their new responsibilities, this book is the next best thing to a Swedish massage--the perfect stress reducer.
This indispensable guide prepares inexperienced managers for the realities of today's fast-paced business environment, providing real-world information that helps readers move comfortably into their new managerial positions.
Verification and Validation of Modern Software-Intensive Systems brings the classic approaches up to date to apply them to contemporary computing methods. Based on the latest standards and research, the authors cover V&V for areas that have not been previously treated collectively, including:
This book presents a solid Web project management method for building commercial Web sites. Developed by pres.co, a leading interactive agency, this refined eight-stage approach lets you closely manage your project's contributors, quality, costs, and schedules. Importantly, the book also details how to define, measure and understand the success of your project on an ongoing basis.
If you're a programmer using C++, Smalltalk, or Eiffel, or if you're about to migrate to object orientation for the first time, you need to know the most important principles of object-oriented design. For example: In a reliable design, why must a variable's cone of polymorphism lie within that of a method? Is connascence good or bad? How could the inherited methods of a superclass violate the invariant of a subclass—and how can you prevent this?
Writing use cases as a means of capturing the behavioral requirements of software systems and business processes is a practice that is quickly gaining popularity. Use cases provide a beneficial means of project planning because they clearly show how people will ultimately use the system being designed. On the surface, use cases appear to be a straightforward and simple concept.
Steve McConnell, a leader in defining software engineering's best practices, asserts that software development is entering a new era. Now's the time, McConnell says, for the industry to take notice and take action--and establish a true profession of software engineering.
An Embedded Software Primer is a clearly written, insightful manual for engineers interested in writing embedded-system software. The example-driven approach puts you on a fast track to understanding embedded-system programming and applying what you learn to your projects. This book will give you the necessary foundation to work confidently in this field.
Building on a basic knowledge of computer programming concepts, this book will help you to:
Finally, in one book we have a complete and detailed explanation of the Standard C++ Class library. This book brings together in one place a complete tutorial and reference on the latest ANSI/ISO standard for C++ class library.
In this book, a leading Sun Microsystems consultant presents start-to-finish techniques for software development, covering all three key elements of success: people, processes, and technology. Learn how to build a winning software development team, organize that team for success, and retain your best talent in today's extraordinarily competitive hiring environment. Learn how to use OO techniques from planning through testing.
Don't risk your software product's success through haphazard integration and release management. This book shows you "best practices" for every stage of a successful product release: source code control, product build, testing and defect tracking, code integration, software change management, and release engineering.
This volume is based on the experiences of eight industrial and one academic partner, from fields as diverse as oil and gas production, transportation, aerospace, nuclear power, and defence. Together they have carried out an in-depth examination of the issues involved in demonstrating through testing that acceptable safety integrity levels can be achieved.
In this indispensable book, a widely experienced business consultant provides a complete set of analytical tools essential to successful trouble-shooting, effective planning, and making better decisions faster, more confidently, and more often.
This landmark book provides a thorough overview of the Unified Process for software development, with a practical focus on modeling using the Unified Modeling Language (UML). The Unified Process goes beyond mere object-oriented analysis and design to spell out a proven family of techniques that supports the complete software development life cycle. The result is a component-based process that is use-case driven, architecture-centric, iterative, and incremental.
Cleanroom software engineering is a process for developing high-reliability software. The cleanroom process answers today's call for more reliable software and provides methods for more cost-effective software development. It accomplishes this by combining theory-based engineering technologies in project management, incremental development, software specification and design, correctness verification, and statistical quality certification.
This cutting-edge, how-to manual details proven methods for turning chronically late, over-budget and under-performing projects completely around. The author provides clear guidance on making practical and powerful changes to the way you manage projects. The book includes a complete discussion of the approach pioneered by Dr. Eli Goldratt called "Critical Chain Scheduling," the most significant new development in project scheduling in the last forty years.
This pragmatic book discusses software process improvement and organizational benchmarking with the Capability Maturity Model (CMM), ISO 9001, and the ISO/IEC 15504 standard (SPICE & Bootstrap).
This is a case-study book dealing with software failed projects, e.g., The Denver Airport problem. It categorizes these failed projects into the following areas: project objectives were not fully specified; projects were poorly planned; enabling project technology was not fully understood; absence of management methodology; insufficient expertise; and lack of understanding of the risks involved.
Harness the power, flexibility, and new functionality of Visual Test 6 to enhance the effectiveness of your testing projects. Using concrete scenarios and detailed examples, leading Visual Test expert and veteran trainer Tom Arnold guides you through the entire test automation process - covering both the programming and project management skills needed to deliver high-quality Windows or Web-based software applications on schedule and within budget.
Requirements engineering is one facet of large project development that is often overlooked. If more effort is put into the definition and documentation of what the system is to do, the end result will be more reliable and easier to improve. Requirements need formal analysis and review before the work begins. This book provides a guide to do this in a rigid, structured manner that will produce documentation and test plans needed to design a successful system.
This book provides a comprehensive description of software engineering including conventional development methods and advanced approaches, like object-oriented development and cleanroom software engineering. The book also addresses management issues such as project planning, risk management, quality assurance, and configuration management.
Millions of dollars are wasted and many managers' jobs are put on the line when computer systems do not live up to their expected performance, or fail outright. Concentrating on management skills and the tools needed for analysis and control, this book helps managers learn from others' mistakes to help prevent failure in their own companies.
This is the field guide for everyone involved in software development--especially those without formal management training. Acclaimed expert Steve McConnell maps out a proven approach to project management that you can learn and use successfully right away.
This book is in reference format. It is an excellent guide for developers, testers, and managers to look up terms in an easy-to-use format. It contains definitions of software quality terms as well as statistical data from research studies.
This paperback book describes the authors' top challenges of software testing and illustrates the tactics testers can use to avoid "lose-lose" situations. Each challenge is outlined with an overview, state of the practice, impact on testing, solutions to the challenge, guidelines for success and a plan of action. The summary chapter is a plan of action to improve testing, followed by four pages of resources.
This book attempts to show the differences between (1) traditional mainframe development and its related testing, and (2) Client/Server rapid-development models and their testing concerns. The book provides many interesting insights into Client/Server and what aspects require testing. It is apparent that the author has a strong development background and is not as well founded in testing and QA concepts.
This book will help organizations evolve from ad hoc software development processes to a clearly defined custom framework. The framework builds on existing knowledge, can be monitored, and delivers significantly improved object-oriented software quality throughout the entire project lifecycle.
This is the second of James Martin's books on object-oriented Methods. This book focuses on implementation procedures. It shows how to use object-oriented methods in conjunction with other technologies such as client/server, business reengineering, and rapid application development.
In this total update of the author's classic, quality guru Philip Crosby revisits and ultimately reaffirms the thinking he introduced in his earlier, tradition-shattering Quality is Free. In that volume, he took quality precepts learned at ITT and adapted in his great entrepreneurial experiment, Philip Crosby Associates (PCA), and rolled them out for the business world's lasting benefit.
This is volume four in a four-volume set. This book focuses on how to create the environment necessary to implement the processes and concepts described in the previous three volumes. The key focus is getting the required support and environment in place to support process improvement.
This book shows how applying risk management to each stage of the software engineering model can help the entire development process run on time and on budget. Starting with a concise overview of quality software, it identifies the potential threats associated with software development, explains how to establish an effective risk-management program, and details the six critical steps involved in applying the process.
The software testing process is the way in which people, tools, methods, measurements, and equipment are integrated to test a software product. This book offers a toolbox for the practical implementation of the testing process and how to improve it. Based on real-world issues and examples, it brings together the key methods of software testing with practical implementation techniques, and presents a simple, highly practical approach to those getting started.
Visual Test is a tool that allows one to automate the testing of a product that runs under Windows 95 and Windows NT. This book discusses Visual Test and how to use it to develop and launch quality products successfully. Visual Test will emulate user actions, reproduce steps, do compatibility testing and benchmarking, and is completely customizable. Learn the pitfalls to avoid when automating a project and give an estimation of time necessary to automate a product.
The authors describe the statistical techniques currently available for managing and controlling the quality of software during specification, design, production, and maintenance. The book includes real-world case studies. The statistical theory presented is designed to be comprehensible to those with a minimum of mathematical knowledge. It will be invaluable to practitioners and to students of software engineering.
This book is a classic high-level management theoretical text. Its contents strongly concentrate on management styles such as TQM (Total Quality Management) and QFD (Quality Function Deployment). Its subject matter lacks the practical descriptions of test procedures such as White Box testing, Black Box testing, Integration, etc.
If you're an object programmer, stop relying on trial and error to develop the practical expertise you need. Get faster results using the strategies and patterns (templates) presented in this book.
This book provides good, high-level descriptions of object definitions and relationships, the behavior of objects in systems design, and how they are operated on and controlled. It provides good modeling technique to use in analysis and design.
This book provides a how-to guide for understanding and practicing one of the new development paradigms: The OO rapid prototyper.
There are a growing number of users today who are turning to C for safety-critical development and many safety-critical systems are being written in C. However, there is no guidance available for the use of C in safety related work. This book provides developers and programmers with an essential critique of existing standards initiatives for safety critical development and an in-depth critique of the C language from a safety viewpoint.
We are building systems today--and using computers to control them—which have the potential for large-scale destruction of life and environment. More than ever, software engineers and system developers, as well as their managers, must understand the issues and develop the skills needed to anticipate and prevent accidents before they occur. Professionals should not require a catastrophe to happen before taking action.
This book provides a throrough overview of the entire software-development process, from initial specification to final testing. The individual components are described in a cohesive manner such that, if these guidelines are adhered to, the product will be accurate, maintainable, and well documented. The book is ideal for a college-level computer science course. It is also ideal for a software manager who is starting a new project and is in a position to enforce these policies.
(no abstract available)
This book is a collection of approximately seventy-five short pieces dealing with topics in the field of software requirements analysis, specification, and design.
Software Testing offers an up-to-date synthesis of information in the field of software testing. It is the only text to bring together the two fundamental approaches--functional and structural--with numerous practical examples and exercises. The material provides the basis for making well-informed choices regarding appropriate techniques. Part I focuses on the mathematics needed to understand and correctly apply the two fundamental approaches.
This book on systems management discusses important concerns for the development of systems from the perspective of information technology, information systems, and software systems engineering. It focuses on the systems management of processes for information technology and software development organizations.
This book provides a description and technical overview of the CMM, along with guidelines for improving software process management in general. It is a sequel to Watts Humphrey's work Managing the Software Process in that it structures the maturity framework presented in that book more formally.
This reference presents, in detail, an effective, step-by-step, cost-effective approach to software testing, which is based on common practice, with improvements inspired by academic testing research and practical experience. The approach is designed to be gradually adoptable, so that it does not disrupt current work. It scales down gracefully under schedule pressure.
Few books on software project management have been as influential and timeless as this one. With a blend of software engineering facts and thought-provoking opinions, Fred Brooks offers insight for anyone managing complex projects.
From the preface - The aim of this book lies in the integrated exposition of four aspects of quality assurance (planning administration, construction, analysis and psychological orientation) which form the framework for all kinds of quality assurance projects.
This book places quality in the context of best software engineering practice and provides a map for companies to develop their own quality system. The needs of small, medium-sized, and large organizations are covered. Detailed information is given regarding the international standards ISO-9001, ISO 9000-3, and ISO 9004-2, as well as the capability Maturity Model.
A basic book beginning with a general survey of the role of software testing and a number of testing methods including statement, dataflow, and domain testing along with the tools to support them.
There are two factors that make the usability of software one of the most important issues today. Both of them are closely related to the current growth of Internet technologies: (1) The quantity of software users and software products being produced and released to the market is growing exponentially; and (2) The "average software user" is more and more inexperienced.
The author (from Telecom Australia) describes particular tools, usability testing, and evaluation procedures. Most of these have been derived from behavioral and social science, but have been updated specifically to the human-computer interaction environment. Numerous examples show how and when the tools can be used most effectively.
This practical handbook of software construction covers the art and science of the entire development process, from designing to testing. Examples are provided in C, Pascal, Basic, Fortran, and Ada--but the focus is on programming techniques rather than the requirements of a specific programming language or environment.
This book focuses on the early phases of the software development lifecycle. The author discusses the latest research results from the requirements arena and examines techniques that will lend themselves to your particular problem. Each technique is followed by a case study illustrating how that technique can be applied to three real problems. The book is recommended for the practicing systems engineer, software analyst, or requirements writer.
This collection of software-project cases details potential barriers to success, explains how to preempt problems, and how to correct mistakes. Examples from actual software projects illustrate a range of poor, satisfactory, and successful endeavors. With the lessons learned on these past projects, you'll build a profile of the healthy project that will ensure the success of future efforts.
This book is organized in three parts--bug hunting basics, tools to support debugging, and more specialized techniques. It is recommended even for advanced practitioners concerned with developing better and more productive debugging skills.
Drawn from his experience as a Senior Software Design Engineer at Microsoft this book is written for developers and testers concerned about quality code.
This book is volume one in a four-volume set. It focuses on the theme that high-quality software demands high-quality management. Weinberg tackles the first requirement for developing quality software: learning to think correctly about problems, solutions, and quality itself.
This book is a collection of 13 articles, mostly from the UK, which highlight some of the more important and difficult aspects of risk management in a variety of contexts. Organizations struggle to survive by using new technologies and marketing new products which may put at risk employees, customers, shareholders, society, the environment, and our ecosystem. All aspects of risk analysis, assessment and management are addressed, extending from methodology to ethics.
The authors--who have a lot of experience inside Bell Labs--discuss successful implementation of software inspections. The book describes the steps in traditional inspections and explores ways to integrate inspections into existing development procedures. It discusses how to define inspection parameters and manage the process across the scope of an entire project, and how to train personnel and fine-tune the technique across a broad spectrum of projects.
Of the many books on software quality, this one offers a unique question-and-answer format. It emphasizes the most crucial quality considerations and places a strong focus on the quality-productivity link. A wealth of examples and attention to practical techniques make it easy to use. The book includes a number of examples in C.
This is one of the very few books we've seen that tries to make practical sense and takes formal mathematical methods through application. (This replaces Baber's earlier book, "The Spine of Software: Designing Provably Correct Software--Theory & Practice.")
This book outlines the general design of experimental tools created by quality guru Dorian Shainin. It explains seven popular Shainin techniques, offering case studies and practice exercises. It includes a comprehensive case study illustrating the technique on a company-wide scenario. It draws on actual experiences at Motorola.
A unique treatment, this book is designed to provide real answers to software acquisition managment--the processes of acquiring, via formal agreement with the developer (contract), software that has to be developed or has a rather large content requiring development.
This comprehensive book incorporates the perspective of the IEEE standards (Hollocker chaired the effort that produced the ANSI/lEEE Standard for Software Reviews and Audits). The book has fresh material with good coverage of software audits and an emphasis on the use of audits for what Hollocker refers to as a "controlled process evolution." The human side of reviews is not emphasized. The book’s 130-page appendix contains sample checklists, forms, and report documents.
Expert consultants Tom DeMarco and Tim Lister have combed through ten years' worth of software magazines and journals and selected thirty-one of the best articles on software issues. The articles were chosen for their fresh, new insights on the software profession as well as for their readability. More than a dozen sources are represented, including IEEE Computer, Software Practice & Experience, IEEE Transactions on Software Engineering, and Communications of the ACM.
(From the Back Cover) Based on the authors' extensive experience in the software industry, this volume describes and extensively illustrates practical techniques for transforming any software development endeavor into a visible, traceable, and hence manageable process.
The third in a series in software engineering, here is a timely and integrated approach designed to enhance productivity and assure quality software. Explores the development process in its entirety, from methodologies of development to the flow of work and responsibility within a project, to management controls needed to monitor and direct the process.
This book grew out of an internal class taught at AT&T Bell Laboratories. The authors also gained experience and insight by testing and refining the book’s ideas on a large number of software projects at AT&T. If offers the best coverage of reliability models and measurement we have seen. Examples and case-study problems are sprinkled liberally throughout, which help the reader understand some of the more theoretical material.
The author analyzes the full spectrum of detecting and removing bugs from computer programs during development and subsequent modification.
Stressing the basic but often ignored management concept of maximum efficiency and zero defects, the author details easy-to-implement programs and actual case histories designed to benefit the small businessman, the middle manager, and the supervisor, as well as the giant corporation.
(no abstract available)