agile software development aspect-oriented software development barry boehm bertrand meyer charles bachman computer engineering computer program computer programming computer science computer software data model data modeling database model david parnas douglas mcilroy eclipse foundation edward yourdon electrical engineering enterprise architecture enterprise engineering ergonomics extreme programming formal methods fred brooks function model functional specification grady booch happy days history of software engineering ibm rational unified process idef information model iterative and incremental development ivar jacobson james rumbaugh kent beck management martin fowler mathematics metadata metamodeling modeling language niklaus wirth object-oriented programming object model pattern language philippe kruchten portland pattern repository programming paradigm project management purdue university quality management requirements analysis seattle post-intelligencer service-oriented architecture smalltalk software architecture software deployment software design software development software development methodology software development process software engineering software maintenance software quality software quality assurance software testing spiral model structured analysis systems development life cycle systems engineering the oregonian the wiki way tim berners-lee tom demarco tom gruber uml united states view model waterfall model watts humphrey website wiki wikisym wikiwikiweb wikimedia commons wikiquote