Software Engineering: Principles and Practice
Hans van Vliet
Format: PDF / Kindle (mobi) / ePub
In-depth coverage of the latest advances in software engineering
Aimed at defining inherent problems and providing appropriate solutions when constructing large software systems, the study of software engineering is an essential practice in order to create and maintain successful software development. This new edition shows you how to appreciate the issues, design trade-offs, and teamwork required for successful software development. With a special emphasis placed on the managerial aspects and human factors involved in software projects, this book reflects the changes taking place within software engineering and includes a major update on architecture and the increasingly hybrid character of software engineering.
- Offers comprehensive coverage of the fundamentals of software engineering as well as revised and updated text on the latest advances in the field, including agile methods, open source, and UML2
- Incorporates discussion of commercial off-the-shelf products and open source
- Examines the impact of lightweight versus heavyweight methods, paying particular attention to agile approaches
- Addresses the globalization of software development and the impact of the Web
This new edition is an invaluable resource for anyone involved in software development and maintenance.
become a key ingredient of managing modern, distributed and global, software development. Tools for configuration and version management will be discussed more extensively in chapter 15. On one hand, configuration management entails procedures on how to handle changes to and versions of documents. On the other hand, it consists of tool support to maintain the version history and ensure an up to date version of the system. In planning-driven development, both aspects are important. In agile
that efficiency has highest priority, another may choose efficient use of memory, while yet a third will decide that writing a lot of code is what counts. Such widely diverging goals may lead to severe problems. Once project goals are established and the project is under way, performance of project members with respect to the project goals is to be monitored and assessed. This can be difficult, since much of what is being done is invisible and progress is hard to measure. Ideally, we would like
There exist numerous taxonomies of quality attributes. For each of these attributes, we need a precise definition, together with a metric that can be used to state quality goals, and to check that these quality goals are indeed being satisfied. Most quality attributes relate to aspects that are primarily of interest to the software developers. These engineer-oriented quality views are difficult to reconcile with the user-oriented ‘fitness for use’ aspects. For most quality attributes, the
method for programming measurement and estimation, IBM Systems Journal, 1977.) The weights Ï are defined by Ï ¼ ÐÓ ´È µ Here, È is the productivity change of factor . For the first factor from figure 7.3 (complexity of the user interface), the following holds: È ½ , so Ï½ . The variables can take on values , and , where the corresponding factor scores as low, average or high (and thus results in a high, average or low productivity, respectively). The productivity index obtained can be
arguments from entering the arena. Typical lines of reasoning that reflect political reasoning are: ¯ ¯ ¯ ¯ We were given 12 months to do the job, so it will take 12 months. This might be seen as a variation of Parkinson’s Law: work fills the time available. We know that our competitor put in a bid of $1M, so we need to schedule a bid of $0.9M. This is sometimes referred to as ‘price to win’. We want to show our product at the trade show next year, so the software needs to be written and tested