1. Why POCS.Key
Total Page:16
File Type:pdf, Size:1020Kb
Symptoms of Complexity Prof. George Candea School of Computer & Communication Sciences Building Bridges A RTlClES A COMPUTER SCIENCE PERSPECTIVE OF BRIDGE DESIGN What kinds of lessonsdoes a classical engineering discipline like bridge design have for an emerging engineering discipline like computer systems Observation design?Case-study editors Alfred Spector and David Gifford consider the • insight and experienceof bridge designer Gerard Fox to find out how strong the parallels are. • bridges are normally on-time, on-budget, and don’t fall ALFRED SPECTORand DAVID GIFFORD • software projects rarely ship on-time, are often over- AS Gerry, let’s begin with an overview of THE DESIGN PROCESS bridges. AS What is the procedure for designing and con- GF In the United States, most highway bridges are budget, and rarely work exactly as specified structing a bridge? mandated by a government agency. The great major- GF It breaks down into three phases: the prelimi- ity are small bridges (with spans of less than 150 nay design phase, the main design phase, and the feet) and are part of the public highway system. construction phase. For larger bridges, several alter- There are fewer large bridges, having spans of 600 native designs are usually considered during the Blueprints for bridges must be approved... feet or more, that carry roads over bodies of water, preliminary design phase, whereas simple calcula- • gorges, or other large obstacles. There are also a tions or experience usually suffices in determining small number of superlarge bridges with spans ap- the appropriate design for small bridges. There are a proaching a mile, like the Verrazzano Narrows lot more factors to take into account with a large Bridge in New Yor:k. for structural integrity, earthquake and flood safety, etc. bridge: aesthetics, method of construction, cost of • materials, etc. The preliminary design report for a AS What are the requirements for a bridge? large bridge usually describes three or four alterna- GF There are several categories of requirements. tive bridge types, estimates their costs, and provides For instance, there are funcfionalify requirements: a rendering of what the bridge will look like. Usu- Foundations are inspected The lanes should be sufficiently wide, the bridge ally, the designer recommends one of the alterna- • should have safe barriers to deflect cars back onto tives to the client. There would also usually be hear- the roadway, and the lighting should be sufficient. ings to get the public’s reaction. There are serviceability requirements: We don’t want you don’t just build a pillar and test if it stands the bridge to vibrate excessively and scare people, DG Do you estimate both the initial cost and the • and we don’t want large cracks in concrete bridges. life-cycle cost for each of the alternatives? Of course, there is the ultimate strength requirement: GF Life-cycle costing is not in wide use for bridges, We don’t want the bridge to fail. Then there is an although I think it should be. For example, consider aesthetics requirement: The bridge should be pleas- the life-cycle cost of a bridge’s deck, the portion of ing to the eye. There’s also a long-term maintainability Fundamental difference: the bridge that comprises the riding surface. One requirement, which involves corrosion protection of • alternative is to design an orthotropic steel deck, various elements. For example, cables tend to be which can support traffic and also help to carry the very susceptible to stress corrosion, and therefore weight of the bridge itself. The alternative is a con- their protection is ‘very important. Finally, there is crete slab deck, which costs a lot less initially, but • laws of physics vs. laws of human intellect ... the cost-effectiveness requirement: The finished prod- does not last nearly as long as a steel deck. Since the uct should meet all of the above requirements at the initial cost is the primary thing that clients look at best possible cost. today, most new bridges in this country are being 01986 ACM OOOl-0762/66/0400-0268 7511 built with concrete decks. At the same time, many 268 Conmunications of fhe ACM April 1986 Volume 29 Number 4 George Candea Principles of Computer Systems 2 Four Symptoms of Complexity System • Large number of components • Large number of interconnections • Many irregularities and exceptions • High “Kolmogorov complexity” Interface Environment George Candea Principles of Computer Systems 3 Symptom #1: Many Components George Candea Principles of Computer Systems 4 Symptom #2: Many Interconnections srcpac abs devtools ypserv perl-io-stringyperl-mailtools openslp mdadm namcap memtest86+ v86d ppp grub gzip rsync perl-mime-tools snarf rp-pppoe grub2-efi-x86_64 ifenslave perl-convert-binhex fcpci xf86-video-nouveau screen capi4k-utils sed sshfs tiacx-firmware initscripts nilfs-utils python-iwscan isdn4k-utils lirc pptpclient mtools grep nano snd modemmanager dmraid nvidia-utils wireless_tools linux-firmware licenses bridge-utils cpio ntp perl-bit-vector perl-mime-lite nouveau-firmware procps perl-digest-nilsimsa kernel26 btrfs-progs-unstable ossp perl-carp-clan fcpcmcia ode yp-tools iproute2 ddrescue acl xf86-video-v4l b43-fwcutter nouveau-drm-lts nvidia-lts rfkill mkpxelinux rpcbind lzop perl-digest-hmac perl-mail-spf perl-mime-typesperl-email-date-format kbd sdparm parted perl-io-socket-ssl archboot minicom nfsidmap lvm2 udev hwdetect razor module-init-tools zd1211-firmware iptables pm-utils nvidia hddtemp bittorrent reiserfsprogs perl-soap-lite librpcsecgss perl-net-dns chkrootkit libmspack ipw2200-fw pcmciautils webmin perl-class-inspector pacman nvidia-173xx which fam fsarchiver spamassassin util-linux xf86-input-keyboard libdiscid linux-api-headers lzo2 perl-libwww re2c xf86-video-glint fuse ipw2100-fw gnu-netcat net-tools c-ares dhcpcd perl-passwd-md5 nfs-utils dosfstools perl-net-ip findutils syslinux usermin perl-digest-sha1 speedtouch lxsplit libtirpc ypbind-mt e2fsprogs perl-html-parser pacman-mirrorlistbash xf86-video-mach64 mkisolinux linux-atm partitionmanager perl-html-tagset tar mpck mksyslinux groff libgssglue networkmanager source-highlight gparted mkinitcpio perl-uri hdparm pyalpm kexec-tools xf86-video-unichrome xfsprogs mkbootcd enscript rssh xf86-video-rendition mkinitcpio-nfs-utils fping tree gksu lilo libirman libui-sh xf86-video-chips shadow dcron netcfg ethtool gpart haskell-http sysvinit gawk acpid wipe ghc tzdata jfsutils perl-template-toolkit ifplugd xf86-video-cirrus kernel26-lts iana-etc usbutils mkinitcpio-busybox progsreiserfs vpnc filesystem haskell-fgl lcab dmapi laptop-mode-tools haskell-transformers xf86-video-mga catdoc pdksh perl-appconfig haskell-opengl vim diffutils cdargs haskell-network di vim-buftabs testdisk aif haskell-regex-compat man-db mlocate link-grammar avfs dcfldd coreutils xf86-video-ark haskell-parallel sudo ftjam proftpd haskell-quickcheck haskell-text mtx qhull liboil gpm libvisual hexedit fakeroot haskell-regex-base xf86-video-sis glibc inetutils libdaemon libmpdclient haskell-regex-posix muparser xf86-video-dummy bftpd libcap haskell-stm libcdaudio pkg-config haskell-platform haskell-deepseq dvdrtools xf86-input-aiptek at attr xf86-video-xgi less docker tdb lzo perl-locale-gettext haskell-zlib make time run-parts gnome-nettool haskell-haskell-src netkit-bsd-finger whois haskell-cgi xf86-input-vmmouse pam_ldap haskell-hunit cpufrequtils perl-libintl-perl mpc samba quota-tools bison xf86-video-neomagic haskell-syb cloog nasm tcp_wrappers tftp-hpa sharutils haskell-glut isl cfitsio libtextcat xinetd haskell-html xf86-video-fbdev cd-discid flex bitlbee schedtool cronie glsof gettext cabal-install xf86-video-sisusb cracklib xf86-video-ast help2man fssos-nsvs xf86-video-s3virge haskell-xhtml libmpc xf86-video-xgixp logrotate vsftpd bin86 mod_perl python-pip haskell-parsec file diffstat libasyncns syslog-ng m4 gcc watchdog procmail imap irssi psmisc barcode pam xf86-input-joystick convmv python-distribute haskell-mtl ecl xf86-video-savage xf86-video-i128 perl-unicode-string sysklogd lsof srm python-virtualenv happy xaos mhash emovix subversion unison xf86-video-tdfx ncmpc eventlog perl-error dnsutils python-nose xf86-video-nv zile gpgme silc-toolkit ppl capi4hylafax libindi ggz-client-libs mcrypt perl-event libnova iputils libiodbc bash-completion xf86-video-i740 erlang setserial gmp libpipeline mt-st dmidecode perl-time-hires xf86-input-acecad cryptsetup xf86-video-siliconmotion perlperl-text-iconv idnkit iptraf-ng libedit linux_logo hyphen procinfo-ng wget gnupg2 pdns perl-net-upnp strace alex gen-init-cpio ncftp xf86-video-r128 libgcrypt xf86-input-mouse libldap imake hspell ispell lpsolve libmcrypt cowsay glade-perl perl-term-readkey libgpg-error squirrelmail xf86-input-void xf86-video-s3 hal re-alpine perl-fcgi cvsps naim eject patch apr-util perl-net-ssleay pm-quirks aalib mtr libggz gnugo pciutils git hal-info libassuan postfix xsp glib-perl fbset pmount gnuchess xf86-video-vesa libotr perl-netaddr-ip davfs2 xmlto libksba zsh keyutils vi figlet nss-mdns openldap db ocaml ncurses nss_ldap gconf-perl alsa-utils pwgen gsm xf86-video-voodoo mod_mono perl-anyevent storage-fixup indent cyrus-sasl-plugins lensfun htop dirmngr gdbm perl-yaml-syck ethstatus dnsmasq grml-zsh-config cifs-utils perl-test-pod beep dash xf86-video-apm apr mod_fastcgi perl-event-execflow libguess libmythes pylint xf86-video-tseng mp3wrap libmowgli libfetch talloc dialog cscope acpi jhead mod_fcgid perl-gtk2-ex-formfactory isapnptools ctags cyrus-sasl dvdrip multitail binutils libmcs