Software Abstractions Logic Language And Analysis
Software is built on abstractions. Pick the right ones, and programming will flow naturally from design; modules will have small and simple interfaces; and new functionality will more likely fit in without extensive reorganization. Pick the wrong ones, and programming will be a series of nasty surprises: interfaces will become baroque and clumsy as they are forced to accommodate unanticipated interactions, and even the simplest of changes will be hard to make. No amount of refactoring, bar starting again from scratch, can rescue a system built on flawed concepts.Abstractions matter to users too. Novice users want programs whose abstractions are simple and easy to understand; experts want abstractions that are robust and general enough to be combined in new ways. When good abstractions are missing from the design, or erode as the system evolves, the resulting program grows barnacles of complexity. he user is then forced to master a mass of spurious details, to develop workarounds, and to accept frequent, inexplicable failures.
he core of software development, therefore, is the design of abstractions. An abstraction is not a module, or an interface, class, or method; it is a structure, pure and simpleâ€â€Âan idea reduced to its essential form. Since the same idea can be reduced to di?erent forms, abstractions are always, in a sense, inventions, even if the ideas they reduce existed before in the world outside the software. he best abstractions, however, capture their underlying ideas so naturally and convincingly that they seem more like discoveries.
TABLE OF CONTENT:
Chapter 01 - Introduction
Chapter 02 - A Whirlwind Tour
Chapter 03 - Logic
Chapter 04 - Language
Chapter 05 - Analysis
Chapter 06 - Examples
Appendix A - Exercises
Appendix B - Alloy Language Reference
Appendix C - Kernel Semantics
Appendix D - Diagrammatic Notation
Appendix E - Alternative Approaches
Password: ganelon
Random Posts
- Blueprints for High Availability 2nd Edition - Wiley
- Iczelion’s Win32 Assembly Language Tutorials
- File System Forensic Analysis - Addison Wesley
- Designing and Building Enterprise DMZs - Syngress
- History of Wireless - IEEE Press
- Professional ASP .NET 2.0 Server Control And Component Development (+source code)
- Just Enough German, 2nd Ed
- Beginning Information Cards and CardSpace
- Beginning JavaScript Second Edition
- 11 Steps to Create a Successful Web Site

















