Skip to Main Content
Art encompasses aesthetic metrics such as beauty, intellectual progression, and quality of workmanship. Engineering includes reliability and economy of construction. We expect our software systems to satisfy a large range of "-ilities," including an aesthetic of understandability; ease of construction, maintenance, and evolvability; an economy of execution; reliability; security from attack; interoperability; and so forth. Psychology's dual role in software systems plays out in both software creation and use. The history of software development includes elements of art, science, engineering, and fashion (though very little manufacturing). In software, the early emphasis on functional development yielded to structured programming, and, over the past 20 years, the rise of computer science's modernism: object-oriented technology.