Practical Development Environments


Book Description

This book doesn't tell you how to write faster code, or how to write code with fewer memory leaks, or even how to debug code at all. What it does tell you is how to build your product in better ways, how to keep track of the code that you write, and how to track the bugs in your code. Plus some more things you'll wish you had known before starting a project. Practical Development Environments is a guide, a collection of advice about real development environments for small to medium-sized projects and groups. Each of the chapters considers a different kind of tool - tools for tracking versions of files, build tools, testing tools, bug-tracking tools, tools for creating documentation, and tools for creating packaged releases. Each chapter discusses what you should look for in that kind of tool and what to avoid, and also describes some good ideas, bad ideas, and annoying experiences for each area. Specific instances of each type of tool are described in enough detail so that you can decide which ones you want to investigate further. Developers want to write code, not maintain makefiles. Writers want to write content instead of manage templates. IT provides machines, but doesn't have time to maintain all the different tools. Managers want the product to move smoothly from development to release, and are interested in tools to help this happen more often. Whether as a full-time position or just because they are helpful, all projects have toolsmiths: making choices about tools, installing them, and then maintaining the tools that everyone else depends upon. This book is especially for everyone who ends up being a toolsmith for his or her group.




Software Engineering and Environment


Book Description

Software Engineering and Environment examines the various aspects of software development, describing a number of software life cycle models. Twelve in-depth chapters discuss the different phases of a software life cycle, with an emphasis on the object-oriented paradigm. In addition to technical models, algorithms, and programming styles, the author also covers several managerial issues key to software project management. Featuring an abundance of helpful illustrations, this cogent work is an excellent resource for project managers, programmers, and other computer scientists involved in software production.




Building Software Teams


Book Description

Why does poor software quality continue to plague enterprises of all sizes in all industries? Part of the problem lies with the process, rather than individual developers. This practical guide provides ten best practices to help team leaders create an effective working environment through key adjustments to their process. As a follow-up to their popular book, Building Maintainable Software, consultants with the Software Improvement Group (SIG) offer critical lessons based on their assessment of development processes used by hundreds of software teams. Each practice includes examples of goalsetting to help you choose the right metrics for your team. Achieve development goals by determining meaningful metrics with the Goal-Question-Metric approach Translate those goals to a verifiable Definition of Done Manage code versions for consistent and predictable modification Control separate environments for each stage in the development pipeline Automate tests as much as possible and steer their guidelines and expectations Let the Continuous Integration server do much of the hard work for you Automate the process of pushing code through the pipeline Define development process standards to improve consistency and simplicity Manage dependencies on third party code to keep your software consistent and up to date Document only the most necessary and current knowledge




Programming Fundamentals


Book Description

Programming Fundamentals - A Modular Structured Approach using C++ is written by Kenneth Leroy Busbee, a faculty member at Houston Community College in Houston, Texas. The materials used in this textbook/collection were developed by the author and others as independent modules for publication within the Connexions environment. Programming fundamentals are often divided into three college courses: Modular/Structured, Object Oriented and Data Structures. This textbook/collection covers the rest of those three courses.




Process-centered Software Engineering Environments


Book Description

Process-Centered Software Engineering Environments (PSEEs) represent a new generation of software engineering environments in which the processes used to produce and maintain software products are explicitly modeled in the environment. PSEEs hold the exciting promise of enabling a significant increase in both software productivity and quality. The book presents a comprehensive picture of this emerging technology while highlighting the key concepts and issues. The first chapter introduces some of the basic concepts and developments behind PSEEs and discusses the unifying role it plays in combining project management, software engineering, and process engineering. The second chapter reviews related process modeling and representation concepts, terminology, and issues. Chapter 3 analyzes the features of some example PSEEs and Chapter 4 takes an inside look at the implementation of these features by describing specific design choices made by researchers. The last chapter discusses the evolution of PSEEs to accommodate practical issues in actual work settings and to play a more significant role in the software life cycle. The text is a collection of influential papers that will bring the newcomer quickly up to speed on this fast-moving field. For the researcher, the issues described in the text present a challenge to be conquered and directions to pursue. For the practitioner, they represent benefits that may be gained in the application of PSEEs in the work environment.




Global Software Development


Book Description

Discusses the growing need for global software development and the foundations of development strategy. Progresses through development, emphasizing the differences between traditional and virtual management.




Building Tightly Integrated Software Development Environments: The IPSEN Approach


Book Description

This coherently written book is the final report on the IPSEN project on Integrated Software Project Support Environments devoted to the integration of tools for the development and maintenance of large software systems. The theoretical and application-oriented findings of this comprehensive project are presented in the following chapters: Overview: introduction, classification, and global approach; The outside perspective: tools, environments, their integration, and user interface; Internal conceptual modeling: graph grammar specifications; Realization: derivation of efficient tools, Current and future work, open problems; Conclusion: summary, evaluation, and vision. Also included is a comprehensive bibliography listing more than 1300 entries and a detailed index.




Modern Software Engineering


Book Description

Improve Your Creativity, Effectiveness, and Ultimately, Your Code In Modern Software Engineering, continuous delivery pioneer David Farley helps software professionals think about their work more effectively, manage it more successfully, and genuinely improve the quality of their applications, their lives, and the lives of their colleagues. Writing for programmers, managers, and technical leads at all levels of experience, Farley illuminates durable principles at the heart of effective software development. He distills the discipline into two core exercises: learning and exploration and managing complexity. For each, he defines principles that can help you improve everything from your mindset to the quality of your code, and describes approaches proven to promote success. Farley's ideas and techniques cohere into a unified, scientific, and foundational approach to solving practical software development problems within realistic economic constraints. This general, durable, and pervasive approach to software engineering can help you solve problems you haven't encountered yet, using today's technologies and tomorrow's. It offers you deeper insight into what you do every day, helping you create better software, faster, with more pleasure and personal fulfillment. Clarify what you're trying to accomplish Choose your tools based on sensible criteria Organize work and systems to facilitate continuing incremental progress Evaluate your progress toward thriving systems, not just more "legacy code" Gain more value from experimentation and empiricism Stay in control as systems grow more complex Achieve rigor without too much rigidity Learn from history and experience Distinguish "good" new software development ideas from "bad" ones Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.




Software Engineering Environments


Book Description

Report on the process session at chinon -- An introduction to the IPSE 2.5 project -- TRW's SEE sage -- MASP: A model for assisted software processes -- Goal oriented decomposition -- Its application for process modelling in the PIMS project -- A metaphor and a conceptual architecture for software development environments -- Configuration management with the NSE -- Experiments with rule based process modelling in an SDE -- Principles of a reference model for computer aided software engineering environments -- An overview of the inscape environment -- Tool integration in software engineering environments -- The PCTE contribution to Ada programming support environments (APSE) -- The Tooluse approach to integration -- An experimental Ada programming support environment in the HP CASEdge integration framework -- Experience and conclusions from the system engineering environment prototype PROSYT -- Issues in designing object management systems -- Experiencing the next generation computing environment -- Group paradigms in discretionary access controls for object management systems -- Typing in an object management system (OMS) -- Environment object management technology: Experiences, opportunities and risks -- Towards formal description and automatic generation of programming environments -- Use and extension of PCTE : The SPMMS information system -- User interface session -- CENTAUR: Towards a "software tool box" for programming environments -- List of participants.




Coder to Developer


Book Description

"Two thumbs up" —Gregory V. Wilson, Dr. Dobbs Journal (October 2004) 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. What's more, it equips you with the mindset and self-assurance required to pull it all together, so that you see every piece of your work as part of a coherent process. Inside, you'll find plenty of technical guidance on such topics as: Choosing and using a source code control system Code generation tools--when and why Preventing bugs with unit testing Tracking, fixing, and learning from bugs Application activity logging Streamlining and systematizing the build process Traditional installations and alternative approaches To pull all of this together, the author has provided the source code for Download Tracker, a tool for organizing your collection of downloaded code, that's used for examples throughout this book. The code is provided in various states of completion, reflecting every stage of development, so that you can dig deep into the actual process of building software. But you'll also develop "softer" skills, in areas such as team management, open source collaboration, user and developer documentation, and intellectual property protection. If you want to become someone who can deliver not just good code but also a good product, this book is the place to start. If you must build successful software projects, it's essential reading.