Concepts of open source, shareware, freeware; issues of software reuse, program libraries; software components; creation of additional libraries and other components; application program interfaces, principles of interface design; multimedia issues; storage management issues; the role of middleware; case studies