Software engineering is the profession that creates and maintains software applications by applying technologies and practices from computer science, project management, engineering, application domains, and other fields.
Software is the set of instructions that enables computer hardware to perform useful work. In the last decades of the twentieth century, cost reductions in computer hardware led to software becoming a ubiquitous component of the devices used by industrialized societies.
Software engineering, like traditional engineering disciplines, deals with issues of cost and reliability. Some software applications contain millions of lines of code that are expected to perform properly in the face of changing conditions.
As of 2002, the U. S. Bureau of Labor Statistics counts 675,000 computer software engineers holding jobs in the U.S., and there are estimated to be about one-and-a-half million practitioners in the E.U., Asia, and elsewhere; these figures are about 60% of the number of practitioners engaged in traditional engineering. SE pioneers include Barry Boehm, Fred Brooks, C. A. R. Hoare, and David Parnas. There is extensive debate about what SE is, who qualifies as an SE, who sets the standards, etc.
Software engineering is an integral part of studies in computer science and consequently foundational knowledge is critical to all students in the field...
Where should usability techniques and HCD knowledge be considered in the existing software development lifecycle to maximize benefits gained from SE and HCD approaches? This book provides an integrative answer while proposing a systematic approach for the adoption, assessment and deployment of usability engineering methods within software development teams...
Advances and Innovations in Systems, Computing Sciences and Software Engineering includes a set of rigorously reviewed world-class manuscripts addressing and detailing state-of-the-art research projects in the areas of Computing Sciences, Software Engineering and Systems...
Agent-Oriented Methodologies presents, analyzes and compares the most significant methodological approaches currently available for the creation of agent-oriented software systems...
Praise for Agile Estimating and Planning
"Traditional, deterministic approaches to planning and estimating simply don't cut it on the slippery slopes of today's dynamic, change-driven projects...
This book constitutes the refereed proceedings of the 10th International Conference on Agile Processes in Software Engineering and Extreme Programming, XP 2009, held in Sardinia, Italy, in May 2009...
This book constitutes the refereed proceedings of the 8th International Conference on Agile Processes in Software Engineering and eXtreme Programming, XP 2007, held in Como, Italy in June 2007...
The book reviews the Agile Manifesto and the 12 Agile PRinciples, and discusses in detail each practice of the six most widely recognized Agile methods...
n Agility and Discipline Made Easy, Rational Unified Process (RUP) and Open Unified Process (OpenUP) experts Per Kroll and Bruce MacIsaac share twenty well-defined best practices that you and your team can start adopting today to improve the agility, predictability, speed, and cost of software development...
If patterns are good ideas that can be re-applied to new situations, AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis looks at what goes wrong in software development, time and time again...
This book presents software tools, environments and realities dealing with creation, imitation and analysis of artefactual, virtual, and living forms, written by those who personally design and produce software, hardware, and art installations in artificial life, simulated complex systems, and virtual worlds...
"Being a certified bibliophile and a professional geek, I have more shelf space devoted to books on software methods than any reasonable human should possess...
Novel in its approach to software design, development, and management, Building Software: A Practitioner's Guide shows you how to successfully build and manage a system...
In this book, Peter Herzum and Oliver Sims present a complete component based strategy, the business component approach, that applies and extends component thinking to all aspects of the software life cycle for enterprise systems...
A step-by-step tutorial on how to execute the business rules approach from planning through implementation The business rules approach to application development represents a major evolution in software engineering and promises to be the most practical and desirable way to build systems...
Capability Maturity Model Integration(SM) (CMMI) has rapidly become a preferred means of improving organizational processes in industry and government...
Theoretical and practical tools to master matrix code design strategy and technique
Error correcting and detecting codes are essential to improving system reliability and have popularly been applied to computer systems and communication systems...
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...
This software protection guide describes the various ways crackers break registration keys, circumvent original CD checks, disable time limitations, and otherwise neutralize software protections...
Carefully researched over ten years and eagerly anticipated by the agile community, Crystal Clear: A Human-Powered Methodology for Small Teams is a lucid and practical introduction to running a successful agile project in your organization...
Defining and Deploying Software Processes provides expert guidance that allows you to create efficient and effective processes that let you better manage project schedules and software quality...
This unique and critical book shares no-fail secrets for building software and offers tried-and-true practices and principles for software design, development, and testing for mission-critical systems that must not fail...
This book presents an integrated technology, Design for Trustworthy Software (DFTS), to address software quality issues upstream such that the goal of software quality becomes that of preventing bugs in implementation rather than finding and eliminating them during and after implementation...
Build Applications, Websites, and Software Solutions that Feel Faster, More Efficient, and More Considerate of Users’ Time!
One hidden factor powerfully influences the way users react to your software, hardware, User Interfaces (UI), or web applications: how those systems utilize users’ time...
Leading software designers have recognized domain modeling and design as critical topics for at least twenty years, yet surprisingly little has been written about what needs to be done or how to do it...
Domain-Specific Modeling (DSM) is the latest approach to software development, promising to greatly increase the speed and ease of software creation...
In the 80s, Tracy Kidder's The Soul of a New Machine attempted to define the story of the development of a minicomputer: from the new science to the business and nascent culture of electronic hardware and software that was characteristic of that time...
Much as we hate to admit it, most prototyping practice lacks a sophisticated understanding of the broad concepts of prototypingand its strategic position within the development process...
A high-level introduction to new technologies andmethods in the field of software engineering
Recent years have witnessed rapid evolution of software engineering methodologies, and until now, there has been no single-source introduction to emerging technologies in the field...
This book constitutes the thoroughly refereed post-proceedings of the International Dagstuhl-Seminar on Empirical Software Engineering, held in Dagstuhl Castle, Germany in June 2006...
Requirements engineering is the process by which the requirements for software systems are gathered, analyzed, documented, and managed throughout their complete lifecycle...
Agile Development, in particular, eXtreme Programming (XP), has been gaining a lot of momentum because it can effectively address the problems plaguing software development such as mis-understanding customers' requirements, missing deadlines, over-budget, conflicts between customers and developers and poor maintainability of legacy systems...
Many would–be software entrepreneurs with expertise in many fields attempt to turn a homegrown application—one developed for use in their own business or profession—into a commercial product...
Functional and Object Oriented Analysis and Design: An Integrated Methodology teaches students of information systems, software engineering, computer science and related areas how to analyze and design information systems using the FOOM methodology...
This book constitutes the refereed proceedings of the 7th International Conference on Fundamental Approaches to Software Engineering, FASE 2004, held in Barcelona, Spain, in March/April 2004...
A self-contained treatment of fuzzy systems engineering, offering conceptual fundamentals, design methodologies, development guidelines, and carefully selected illustrative material
Forty years have passed since the birth of fuzzy sets, in which time a wealth of theoretical developments, conceptual pursuits, algorithmic environments, and other applications have emerged...
Provides 16 of the world's leading SQA experts sharing their practical experience with the full range of techniques available for managing software quality...
Head First Object-Oriented Analysis & Design shows you how to analyze, design, and write serious object-oriented software: software that's easy to reuse, maintain, and extend; software that doesn't hurt your head; software that lets you add new features without breaking the old ones...
How to Design for Software Reliability, Security, and Maintainability
Many enterprises unfortunately depend on software that is insecure, unreliable, and fragile...
The fields of HCI and Software Engineering have evolved almost independently of each other until the last decade, when it became apparent that an integrated and combined perspective would benefit the development of interactive software applications...
Implementing the IEEE Software Engineering Standards is a practical and professional guide to implementing the IEEE Software Engineering standards in your software development process...
Integrating Security and Software Engineering: Advances and Future Visions provides the first step towards narrowing the gap between security and software engineering...
Executives, engineering managers, project managers, engineers, and process improvement experts within engineering organizations need a resource that systematically translates the requirements of ISO 9001:2000 into a usable specification for engineers...
This groundbreaking book introduces you to a comprehensive approach to implementing Project Portfolio Management (PPM) to support and prioritize IT projects in both large and small companies...
This publication addresses the research in theoretical foundations, practical techniques, software tools, applications and / or practical experiences in knowledge-based software engineering...
In this definitive book, the R&D leader at one of the world's top software companies presents a complete conceptual framework for Internet-centered application development -- and practical insights into the component technologies that enable it...
The Practical, Start-to-Finish Guide to Planning and Leading Iterative Software Projects
Iterative processes have gained widespread acceptance because they help software developers reduce risk and cost, manage change, improve productivity, and deliver more effective, timely solutions...
As stakeholder relationships and business in general have become increasingly central to the unfolding of stakeholder thinking, important new topics have begun to take centre stage in both the worlds of practitioners and academics...
With increasing acceptance of agent-based computing, a great deal of new research related to the identification and definition of suitable models, and techniques to support the development of complex Multiagent Systems (MAS) has emerged...
Software quality is vitally important to the success of a business, as a single undetected error or defect during the software development process could have disastrous consequences during a business operation...
Businesses inevitably face a critical choice in the design and maintenance of their software systems: Dismantle older systems and completely replace them, or incrementally incorporate new technologies into existing systems...
Over the years, a variety of software process models have been designed to structure, describe and prescribe the software systems construction process...
In this eagerly awaited second edition, Grady Booch draws upon the rich and varied results of those projects and offers improved methods for object development and a new, unified notation...
The developer of the acclaimed Eiffel programming language comes through with one of the clearest and most informative books about computers ever committed to paper...
The Object-Oriented Thought Process, Second Edition will lay the foundation in object-oriented concepts and then explain how various object technologies are used...
Communication is one of the main activities in software projects, many such projects fail or encounter serious problems because the stakeholders involved have different understandings of the problem domain and/or they use different terminologies...
This groundbreaking resource offers you new insights for building and evolving open systems using the best mix of standards for your software development projects...
This book presents a unique method for decomposing a computer program along its execution paths, for simplifying the subprograms so produced, and for recomposing a program from its subprograms...
It is a scenario too familiar to the software industry: new software is delivered to customers and suddenly unforeseen and devastating bugs cause everything to crash...
Practical Formal Software Engineering is a textbook aimed at final year undergraduate and graduate students, emphasizing formal methods in writing robust code quickly...
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...
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 technological manual explores how software engineering principles can be used in tandem with software development tools to produce economical and reliable software that is faster and more accurate...
Intended to be the first book that anyone from an IT manager to a business manager will read to understand what Business Rules are and how they can be applied to their own situation...
The corporate market is now embracing free, "open source" software like never before, as evidenced by the recent success of the technologies underlying LAMP (Linux, Apache, MySQL, and PHP)...
This book provides valuable advice for project and application managers looking to minimize the number of crises they have to deal with and for IT practitioners seeking the practical solutions that lead to career advancement...
What Is This Book About?
This book is about the marriage of refactoring—the process of improving the design of existing code—with patterns, the classic solutions to recurring design problems...
New Concepts such as agile modeling, extreme programming, knowledge management, and organizational memory are stimulating new research ideas amoung researchers, and prompting new applications and software...
Is your organization maximizing the return on its investments of money, time, and manpower? Probably not, as most do not understand the implications their technical decisions have for these precious, limited resources...
“Companies have been implementing large agile projects for a number of years, but the ‘stigma’ of ‘agile only works for small projects’ continues to be a frequent barrier for newcomers and a rallying cry for agile critics...
SOA is the most important initiative facing IT today and is difficult to grasp; this book demystifies the complex topic of SOA and makes it accessible to all those people who hear the term but aren't really sure what it means
This team of well-respected authors explains that SOA is a collection of applications that enables resources to be available to other participants in a network using any service-based technology
Examines how SOA enables faster and cheaper application development and how it offers reusable code that can be used across various applications
Covers what SOA is, why it matters, how it can impact businesses, and how to take steps to implement SOA in a corporate environment
Current IT developments like component-based development and Web services have emerged as effective ways of building complex enterprise-scale information systems and providing enterprise application integration...
Even though Six Sigma programs have successfully been implemented in practice, many IT departments remain skeptical of the process or are unaware of how the tools can be used to improve system development...
In Software Abstractions Daniel Jackson introduces a new approach to software design that draws on traditional formal methods but exploits automated tools to find flaws as early as possible...
In such a business climate that demands a heightened understanding and keen ability to leverage essential technologies, one must understand every element of an agreement as critical and essential as the software user/vendor contract...
Presenting valuable information for professionals involved in maintaining and securing Microsoft systems and applications, Software Deployment, Updating, and Patching provides the skills necessary to develop a comprehensive strategy for updating and securing Microsoft systems with the latest packs and patches...
Software Development for Small Teams describes an entire software development project, from the initial customer contact through delivery of the software...
80% of software projects fail—here´s why the other 20% succeed!
Software Development is the most thorough, realistic guide to ´what works´ in software development—and how to make it happen in your organization...
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...
As modern organizations migrate from older information architectures to new Web-based systems, the discipline of software engineering is changing both in terms of technologies and methodologies...
Although the self-adaptability of systems has been studied in a wide range of disciplines, from biology to robotics, only recently has the software engineering community recognized its key role in enabling the development of future software systems that are able to self-adapt to changes that may occur in the system, its requirements, or the environment in which it is deployed...
A groundbreaking book in this field, Software Engineering Foundations: A Software Science Perspective integrates the latest research, methodologies, and their applications into a unified theoretical framework...
Software Engineering Measurement lays the basis for measurement standards so that software developers can begin to share experimental results in a meaningful way...
Learn how to attract and keep successful software professionals Software Engineering Quality Practices describes how software engineers and the managers that supervise them can develop quality software in an effective, efficient, and professional manner...
Software Engineering Techniques Applied to Agricultural Systems presents cutting-edge software engineering techniques for designing and implementing better agricultural software systems based on the object-oriented paradigm and the Unified Modeling Language (UML)...
Software Engineering with Microsoft Visual Studio Team System is written for any software team that is considering running a software project using Visual Studio Team System (VSTS), or evaluating modern software development practices for its use...
The book provides the reader with a clear understanding of what software reuse is, where the problems are, what benefits to expect, the activities, and different forms of software reuse...
Software engineering is widely recognized as one of the most exciting, stimulating, and profitable research areas, with a significant practical impact on the software industry...
Software has become omnipresent and vital in our information-based society, so all software producers should assume responsibility for its reliability...
Evolution of software has long been recognized as one of the most problematic and challenging areas in the field of software engineering, as evidenced by the high, often up to 60-80%, life-cycle costs attributed to this activity over the life of a software system...
The architects of the Software Factories method provide a detailed look at this faster, less expensive, and more reliable approach to application development...
Text explores the key issues underpinning software change, and discusses how these issues impact on the implementation of changes of software systems...
How many people do I need? When will the quality be good enough for commercial sale? Can this really be done in two weeks? Rather than relying on instinct, the authors of Software Measurement and Estimation offer a new, tested approach that includes the quantitative tools, data, and knowledge needed to make sound estimations...
If you have any responsibility for applying measurement to IT Application Development, Application Support or Outsourced Service supply in these areas this is the book for you!
You may be the Sponsor of a Software Metrics program, responsible for implementing such a program or part of a Benchmarking initiative...
Software Paradigms provides the first complete compilation of software paradigms commonly used to develop large software applications, with coverage ranging from discrete problems to full- scale applications...
This book constitutes the thoroughly refereed post-proceedings of the International Workshop on Software Measurement, IWSM-Mensura 2007, held in Palma de Mallorca, Spain, in November 2007...
Software Process Modeling brings together experts to discuss relevant results in software process modeling, and expresses their personal view of this field...
Using actual examples of software process improvement from the private sector and government, this work demonstrates how quality systems, measurement techniques and performance evaluations work...
Software product lines represent perhaps the most exciting paradigm shift in software development since the advent of high-level programming languages...
Software product Management and pricing are key success factors for any organization providing software, be it a software company or an organization responsible for software in a company that belongs to a different industry...
Preface We intend that this book provide you with a practical approach to gathering, analyzing, specifying, and managing software requirements throughout the software's life cycle...
“This book’s broad overview can help an organization choose a set of processes, policies, and techniques that are appropriate for its security maturity, risk tolerance, and development style...
Software Sizing, Estimation, and Risk Management: When Performance is Measured Performance Improves is a practical, hands-on discussion of the software estimation, planning, and control process...
This title provides a clear overview of the main methods, and has a practical focus that allows the reader to apply their knowledge to real-life situations...
Software Testing and Continuous Quality Improvement, Second Edition, illustrates a quality framework for software testing in traditional structured and unstructured environments...
This book addresses the most important techniques in improving the correctness of software, including correctness by construction (top-down refinement), program proving, static analysis and dynamic, execution-based analysis (testing and debugging)...
Software visualization encompasses the development and evaluation of methods for graphically representing different aspects of software, including its structure, its execution, and its evolution...
Explores some contributions that statistics can make to improving the reliability of software while reducing the cost of developing and maintaining it...
Strategic Software Engineering: An Interdisciplinary Approach addresses technical and scientific aspects of software development in a way that is accessible to a wide audience...
Successful Packaged Software Implementation guides IT departments through the selection and implementation of packaged software, pointing out potential pitfalls and how to avoid them...
Learn to develop systems that meet customer needs and organizational objectives Successful system development requires formulation and implementation of a sound technical strategy that accurately translates the user's operational needs into a physical solution to comply with their specifications and contract requirements...
Taking a step-by-step approach to systems analysis; this book provides a beginner's guide to the essential techniques necessary for successful systems analysis and design...
The Definitive Insider’s Guide to Auditing Software Security
This is one of the most detailed, sophisticated, and useful guides to software security auditing ever written...
The first best-practice, start-to-finish guide for the software build process
Managing builds is crucial to the profitable delivery of high- quality software; however, the build process has been one of the least-understood stages of the entire development lifecycle...
Focused on the best practices for writing code as well as on the methods to perform more effective debugging, The Debugger's Handbook promotes a natural debugging approach to writing code...
“The Xen hypervisor has become an incredibly strategic resource for the industry, as the focal point of innovation in cross-platform virtualization technology...
The ROI from Software Quality provides the tools needed for software engineers and project managers to calculate how much they should invest in quality, what benefits the investment will reap, and just how quickly those benefits will be realized...
ThoughtWorks is a well-known global consulting firm; ThoughtWorkers are leaders in areas of design, architecture, SOA, testing, and agile methodologies...
Is the Unified Process the be all and end all standard for developing object-oriented component-based software? This book is the final in a four-volume series that presents a critical review of the Unified Process...
Understanding Enterprise SOA gives technologists and business people an invaluable and until now missing integrated picture of the issues and their interdependencies...
If you've held back from developing open source or free software projects because you don't understand the implications of the various licenses, you're not alone...
Do you… · Use a computer to perform analysis or simulations in your daily work? · Write short scripts or record macros to perform repetitive tasks? · Need to integrate off-the-shelf software into your systems or require multiple applications to work together? · Find yourself spending too much time working the kinks out of your code? · Work with software engineers on a regular basis but have difficulty communicating or collaborating? If any of these sound familiar, then you may need a quick primer in the principles of software engineering...
Why Programs Fail is about bugs in computer programs, how to find them, how to reproduce them, and how to fix them in such a way that they do not occur anymore...